:root{
  --green:#15715b;        /* 山岭绿 */
  --green-d:#0f5645;
  --terra:#c0552f;        /* 苗乡陶红 */
  --terra-d:#9c3f22;
  --ink:#1f2a24;
  --muted:#5d6b63;
  --bg:#fbfaf7;
  --card:#ffffff;
  --line:#e6e3da;
  --radius:14px;
  --maxw:1120px;
  --shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(21,113,91,.06);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased;
}
a{color:var(--green);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
html,body{overflow-x:clip}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
h1,h2,h3{line-height:1.25;color:var(--green-d);letter-spacing:-.01em}
h1{font-size:clamp(28px,4.4vw,46px);margin:.2em 0 .4em}
h2{font-size:clamp(22px,3vw,32px);margin:1.6em 0 .6em}
h3{font-size:19px;margin:1.2em 0 .4em;color:var(--ink)}
p{margin:.6em 0}
.lead{font-size:clamp(16px,2vw,19px);color:var(--muted);max-width:70ch}
.muted{color:var(--muted)}

/* Header */
header.site{position:sticky;top:0;z-index:50;background:rgba(251,250,247,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:baseline;gap:8px;font-weight:800;color:var(--green-d);font-size:20px}
.brand small{font-weight:600;color:var(--muted);font-size:13px}
.lang{display:flex;gap:2px;align-items:center;font-size:13px;font-weight:700;margin-left:auto}
.lang a{color:var(--muted);padding:5px 8px;border-radius:8px}
.lang a:hover{text-decoration:none;color:var(--green)}
.lang a.active{color:#fff;background:var(--green)}
.navlinks{display:flex;gap:22px;align-items:center}
.navlinks a{color:var(--ink);font-weight:600;font-size:15px}
.navlinks a:hover{color:var(--green);text-decoration:none}
.btn{display:inline-block;background:var(--terra);color:#fff;padding:11px 20px;border-radius:999px;font-weight:700;font-size:15px;box-shadow:var(--shadow)}
.btn:hover{background:var(--terra-d);text-decoration:none}
.btn.ghost{background:transparent;color:var(--green);border:1.5px solid var(--green)}
.menu-btn{display:none;background:none;border:0;font-size:26px;cursor:pointer;color:var(--green-d);padding:9px;min-width:44px;min-height:44px;display:inline-grid;place-items:center}
.navlinks a.btn{width:auto;text-align:center;margin-top:10px;align-self:flex-start}

/* Hero */
.hero{padding:64px 0 40px}
.hero .tag{display:inline-block;background:#eaf4f0;color:var(--green-d);font-weight:700;font-size:13px;padding:5px 12px;border-radius:999px;margin-bottom:14px}
.hero h1 span{color:var(--terra)}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}
.hero-art{margin-top:28px;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);background:linear-gradient(135deg,#15715b,#0f5645);color:#fff;padding:28px}
.hero-art h3{color:#fff}
.stat-row{display:flex;gap:26px;flex-wrap:wrap;margin-top:14px}
.stat b{display:block;font-size:26px;color:#fff}
.stat span{font-size:14px;opacity:.85}

/* Sections */
section{padding:40px 0}
.alt{background:#f3f6f2}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:18px;margin-top:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.card h3{margin-top:0}
.step{display:flex;gap:14px;align-items:flex-start;margin:14px 0}
.step .n{flex:0 0 34px;height:34px;width:34px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800}
.pill{display:inline-block;background:#eaf4f0;color:var(--green-d);font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;margin:2px 4px 2px 0}

/* Pricing */
.tier{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px;margin-top:20px}
.price{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);position:relative}
.price.best{border:2px solid var(--terra)}
.price .badge{position:absolute;top:-12px;right:18px;background:var(--terra);color:#fff;font-size:12px;font-weight:700;padding:4px 12px;border-radius:999px}
.price .name{font-size:20px;font-weight:800;color:var(--green-d)}
.price .desc{color:var(--muted);min-height:46px}
.price ul{margin:14px 0;padding-left:18px}
.price li{margin:6px 0}
.price .amt{font-size:26px;font-weight:800;color:var(--ink);margin:8px 0}

/* FAQ */
.faq-item{border:1px solid var(--line);border-radius:12px;margin:10px 0;background:#fff;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:0;padding:16px 18px;font-size:16px;font-weight:700;color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;gap:12px}
.faq-q .ic{color:var(--green);font-weight:800}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;padding:0 18px}
.faq-a p{padding-bottom:16px}

/* Destinations */
.dest{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:18px;margin-top:18px}
.dest .card img{width:100%;height:150px;object-fit:cover;border-radius:10px;margin-bottom:12px;background:#dfe7e1}

/* CTA band */
.cta-band{background:linear-gradient(135deg,#15715b,#0f5645);color:#fff;border-radius:18px;padding:34px;margin:30px 0}
.cta-band h2{color:#fff}
.cta-band a.btn{background:#fff;color:var(--green-d)}

/* Footer */
footer.site{border-top:1px solid var(--line);background:#f3f6f2;padding:34px 0;margin-top:30px;font-size:14px}
footer .cols{display:flex;flex-wrap:wrap;gap:30px;justify-content:space-between}
footer h4{margin:0 0 8px;color:var(--green-d)}
.disclaimer{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.disclaimer b{color:var(--ink)}

/* 404 */
.errbox{text-align:center;padding:80px 0}
.errbox .code{font-size:90px;font-weight:900;color:var(--green);line-height:1}

@media (max-width:900px){
  .navlinks{position:absolute;top:64px;left:0;right:0;background:var(--bg);flex-direction:column;gap:0;padding:8px 20px 16px;border-bottom:1px solid var(--line);display:none}
  .navlinks.open{display:flex}
  .navlinks a{padding:12px 0;border-bottom:1px solid var(--line);width:100%}
  .menu-btn{display:block}
}
/* Destination full catalog */
.catalog .region{padding:0;margin-top:34px}
.rhead{display:flex;align-items:baseline;gap:12px;border-bottom:2px solid var(--line);padding-bottom:8px;margin:0 0 16px}
.rhead h2{margin:0;font-size:clamp(20px,2.6vw,26px)}
.rcount{font-size:13px;color:var(--muted);font-weight:600}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:14px}
.dcard{border:1px solid var(--line);border-radius:var(--radius);padding:14px 15px;background:var(--card);display:flex;flex-direction:column;gap:7px;box-shadow:var(--shadow)}
.dcard h3{margin:0;font-size:16px;line-height:1.3;color:var(--ink)}
.dcard h3 a{color:var(--ink)}
.dcard h3 a:hover{color:var(--green);text-decoration:none}
.dtag{display:inline-block;font-size:11.5px;font-weight:700;color:var(--green-d);background:#eaf4f0;border-radius:6px;padding:2px 8px;align-self:flex-start}
.dmeta{margin:0;font-size:13px;color:var(--muted);line-height:1.5}
.dlink{margin-top:auto;font-size:13.5px;color:var(--green);font-weight:700}
.dlink:hover{text-decoration:underline}

/* Destination detail page */
.breadcrumb{font-size:14px;color:var(--muted);margin:18px 0 4px}
.breadcrumb a{color:var(--muted);font-weight:600}
.breadcrumb a:hover{color:var(--green);text-decoration:none}
.detail-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;margin:4px 0 2px}
.detail-head h1{margin:0}
.detail-sub{color:var(--muted);font-size:15px;margin:2px 0 14px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px;margin:16px 0 8px}
.fact{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--card);box-shadow:var(--shadow)}
.fact dt{font-size:11.5px;font-weight:700;color:var(--green-d);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.fact dd{margin:0;font-size:15px;color:var(--ink);line-height:1.5}
.fact dd a{font-weight:600}
.nearby{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:14px;margin-top:14px}
.nearby .dcard h3{font-size:16px;margin:0}
.nearby .dcard h3 a{color:var(--ink)}
.nearby .dcard h3 a:hover{color:var(--green);text-decoration:none}
.sect-intro{color:var(--muted);max-width:70ch;font-size:15px}

/* Mobile sticky CTA — conversion bar, thumb-reachable, non-blocking */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;
  background:var(--green);color:#fff;text-align:center;font-weight:800;font-size:16px;
  padding:14px 16px;box-shadow:0 -4px 16px rgba(0,0,0,.14)}
.sticky-cta:hover{text-decoration:none;background:var(--green-d);color:#fff}
@media (max-width:900px){
  .sticky-cta{display:block}
  body{padding-bottom:54px}
}

@media (max-width:600px){
  .hero{padding:40px 0 24px}
  .stat-row{gap:16px}
}

/* Hero mini-stepper (process clarity, above the fold) */
.hero-steps{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:22px;font-size:14.5px;color:var(--muted)}
.hero-steps .hs{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 14px;box-shadow:var(--shadow);color:var(--ink);font-weight:600}
.hero-steps .hs b{flex:0 0 22px;height:22px;width:22px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:13px}
.hero-steps .hs-ar{color:var(--green);font-weight:800;font-size:18px}
.src-note{margin-top:14px;font-size:12.5px;color:var(--muted);line-height:1.5}
.src-note::before{content:"\2020 ";opacity:.6}
/* Consultation lead form (about page) */
.lead-form{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin-bottom:22px}
.lead-form h3{margin-top:0}
.lead-form .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px}
.lead-form label{display:block;font-size:13px;font-weight:700;color:var(--green-d);margin-bottom:5px}
.lead-form input,.lead-form textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff;color:var(--ink)}
.lead-form input:focus,.lead-form textarea:focus{outline:2px solid var(--green);outline-offset:1px}
.lead-form textarea{min-height:84px;resize:vertical}
.lead-form .submit{margin-top:14px}
@media (max-width:600px){ .lead-form .grid{grid-template-columns:1fr} }
/* Mobile: enlarge language-switch tap targets to >=44px (accessibility bar) */
@media (max-width:900px){
  .lang a{min-width:44px;min-height:44px;display:inline-grid;place-items:center}
}

/* ---------- Feature: destinations filter ---------- */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:18px 0 6px;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.filters .f-search{flex:1 1 220px;min-width:180px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff;color:var(--ink)}
.filters .f-sel{padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff;color:var(--ink);min-height:44px}
.filters .f-free{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}
.filters .f-free input{min-width:18px;min-height:18px}
.filters .f-reset{padding:10px 14px;border:1px solid var(--green);background:#fff;color:var(--green);border-radius:10px;font-weight:700;cursor:pointer;min-height:44px}
.filters .f-count{margin-left:auto;font-size:13px;font-weight:700;color:var(--muted)}
@media (max-width:600px){ .filters .f-count{flex-basis:100%;margin-left:0} }

/* ---------- Feature: save-to-plan buttons ---------- */
.save-plan.saved{background:var(--green-d);border-color:var(--green-d)}
.save-hint{font-size:14px}

/* ---------- Feature: my plan list ---------- */
.mp-item{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:10px 0;box-shadow:var(--shadow)}
.mp-n{flex:0 0 26px;height:26px;width:26px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px}
.mp-body{flex:1 1 auto}
.mp-body a{font-weight:700;font-size:16px;color:var(--ink)}
.mp-x{flex:0 0 auto;width:40px;height:40px;border:0;background:#f3f6f2;color:var(--terra);border-radius:10px;font-size:22px;line-height:1;cursor:pointer}
.mp-x:hover{background:#e7cfc6}
#myplan-bar{display:flex;gap:12px;margin:16px 0}
#myplan-bar .btn{min-height:44px}

/* ---------- Feature: tools (packing + festival) ---------- */
.pk-group{margin:14px 0}
.pk-group h4{margin:0 0 8px;color:var(--green-d)}
.pk-item{display:flex;align-items:flex-start;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line);cursor:pointer;font-size:15px}
.pk-item input{margin-top:3px;min-width:18px;min-height:18px}
#pack-bar,#fest-bar{margin:14px 0}
#fest-out{margin-top:10px;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
#fest-month{padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;min-height:44px;background:#fff;color:var(--ink)}

/* ---------- Feature: draft itinerary ---------- */
.dr-day{display:flex;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px dashed var(--line);font-size:15px}
.dr-day b{color:var(--green-d);min-width:64px}
#draft-output{margin-top:18px;padding:18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:none}
#draft-form .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px;margin-top:12px}
#draft-form label{display:block;font-size:13px;font-weight:700;color:var(--green-d);margin-bottom:5px}
#draft-form input[type=number],#draft-form select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff;color:var(--ink);min-height:44px}
#draft-form .checks{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
#draft-form .checks label{font-weight:600;color:var(--ink);display:flex;align-items:center;gap:6px}

/* ---------- Feature: map page ---------- */
#map{width:100%;height:62vh;min-height:420px;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);margin-top:14px}
.leaflet-popup-content{font-size:14px;line-height:1.5}
.leaflet-popup-content a{font-weight:700}

/* ---------- Feature: king-kong region nav (destinations) ---------- */
.kk{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px}
.kk-item{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 15px;font-size:13.5px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,color .15s;white-space:nowrap}
.kk-item:hover{border-color:var(--green)}
.kk-item.active{background:var(--green);color:#fff;border-color:var(--green)}
.kk-item:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media (max-width:600px){ .kk{gap:6px} .kk-item{padding:7px 12px;font-size:12.5px} }

/* ---------- Print: only the plan content ---------- */
@media print{
  header.site,footer.site,.sticky-cta,.filters,.cta-band,.save-hint,.nav,#myplan-bar{display:none !important}
  body{padding:0}
  .mp-item{box-shadow:none;border:1px solid #ccc}
  a[href]:after{content:""}
}

/* brand badge (2026-11-08 rebrand: 中国贵州旅游推荐官) */
.brand-badge{display:inline-flex;align-items:center;justify-content:center;background:#15715b;color:#fff;font-weight:700;font-size:.7em;line-height:1;padding:.28em .34em;border-radius:6px;margin-right:.5em;letter-spacing:.12em;vertical-align:2px}
.brand small{opacity:.65;font-weight:400}


/* ---------- P0 2026-11-09: lead form status + consent + legal links ---------- */
.lead-status{margin:12px 0;padding:10px 14px;border-radius:6px;font-size:14px;line-height:1.5}
.lead-status[hidden]{display:none}
.lead-status.wait{background:#eef4f1;color:#2b5b4c;border:1px solid #cfe0d8}
.lead-status.ok{background:#e8f5ee;color:#146b4d;border:1px solid #b9e2cd}
.lead-status.err{background:#fdf0ef;color:#a62c2c;border:1px solid #f0c9c6}
.lead-consent{display:flex;align-items:flex-start;gap:8px;margin:12px 0;font-size:13px;line-height:1.6}
.lead-consent input{margin-top:4px;flex:none}
.lead-consent a{text-decoration:underline}
.legal-links{margin:12px 0;font-size:13px}
.legal-links a{text-decoration:underline}
