/* GoTripLocal — design system (v31).
   One stylesheet. Clean travel-marketplace look: Be Vietnam Pro, white + green/orange. Mobile-first. */

/* ---------- tokens ---------- */
:root{
  --paper:#ffffff;
  --paper-2:#f7faf7;
  --surface:#ffffff;
  --surface-warm:#f3f8f4;   /* near-white with a green hint: alternate sections, placeholders */
  --ink:#1b2420;
  --ink-soft:#414b46;
  --muted:#6b746f;
  --line:#e6ece7;
  --line-strong:#d3ddd5;

  /* brand — sampled from the logo: green #048913, orange #FF4800.
     Proportion rule (owner's brief): white ~70% · green ~20% (structure, icons, labels,
     mint sections, footer) · orange ~10% (only actions, prices and the hero highlight). */
  --forest:#048913;
  --forest-deep:#0a5c18;
  --forest-wash:#e1f0e4;    /* mint tiles / chips on white or mint */
  --orange:#ff4800;         /* decoration on dark (hero highlight) */
  --orange-ink:#d83c00;     /* buttons & prices: white text on this passes WCAG AA (4.55:1) */
  --orange-deep:#b93300;
  --on-dark:rgba(255,255,255,.84);
  --on-dark-muted:rgba(255,255,255,.62);

  --radius-s:10px;
  --radius:16px;
  --radius-l:22px;
  --shadow-s:0 1px 2px rgba(16,32,22,.04), 0 4px 14px -6px rgba(16,32,22,.10);
  --shadow-hover:0 16px 36px -14px rgba(16,32,22,.28), 0 2px 6px rgba(16,32,22,.05);
  --shadow:0 4px 12px -4px rgba(24,38,32,.10), 0 24px 48px -20px rgba(24,38,32,.22);
  --shadow-lg:0 8px 20px -6px rgba(24,38,32,.14), 0 40px 70px -28px rgba(24,38,32,.30);

  --wrap:1180px;
  --step:clamp(52px,6.5vw,92px);

  --sans:"Be Vietnam Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --display:var(--sans);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{
  overflow-x:clip;
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.2;letter-spacing:-.02em;margin:0;text-wrap:balance}
.ico{display:inline-block;flex:none;vertical-align:-.16em}
p{margin:0;text-wrap:pretty}
::selection{background:var(--forest);color:#fff}
:focus-visible{outline:2px solid var(--forest);outline-offset:3px;border-radius:4px}

/* reveal is opt-in: only hidden once JS marks <html class="js"> and reduced-motion is off */
@media (prefers-reduced-motion:no-preference){
  html.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
  html.js .reveal.is-in{opacity:1;transform:none}
}

/* ---------- layout primitives ---------- */
.container{width:min(var(--wrap),92vw);margin-inline:auto}
.section{padding-block:var(--step)}
.section--tight{padding-block:calc(var(--step) * .6)}
.section--warm{background:var(--surface-warm)}
.section--ink{background:var(--forest-deep);color:#ffffff}
.section--accent{background:var(--orange-ink);color:#fff}
.section--accent .eyebrow{color:#fff;opacity:.85}
.section--accent .cta-band p{color:rgba(255,255,255,.9)}
.section--accent .btn--light{color:var(--orange-deep)}
.section--accent .btn--light:hover{background:#fff}
.section--ink h1,.section--ink h2,.section--ink h3{color:#fff}

.eyebrow{
  font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--forest);margin:0 0 8px
}
.section--ink .eyebrow,.hero .eyebrow{color:rgba(255,255,255,.85)}

.section-head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:14px 28px;
  margin-bottom:28px;flex-wrap:wrap;position:relative
}
.section-head h2{font-size:clamp(24px,2.9vw,34px);font-weight:800;letter-spacing:-.025em}
.section-head p{color:var(--muted);max-width:60ch;margin-top:8px;font-size:15.5px}
.section--ink .section-head p{color:var(--on-dark)}

.textlink{
  font-weight:600;color:var(--forest);white-space:nowrap;
  border-bottom:1px solid currentColor;padding-bottom:2px
}
.textlink:hover{color:var(--forest-deep)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  padding:13px 22px;border-radius:999px;font-weight:600;font-size:15px;
  background:var(--orange-ink);color:#fff;border:1px solid var(--orange-ink);
  transition:transform .15s ease,background .15s ease;cursor:pointer
}
.btn:hover{background:var(--orange-deep);border-color:var(--orange-deep);transform:translateY(-1px)}
.btn--ghost{background:transparent;color:var(--forest);border-color:var(--line-strong)}
.btn--ghost:hover{background:var(--forest-wash);color:var(--forest-deep);border-color:var(--forest)}
.btn--light{background:#fff;color:var(--forest-deep);border-color:#fff}
.btn--light:hover{background:#f1f7f2}
.btn--sm{padding:9px 16px;font-size:14px}
.btn--outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.btn--outline-light:hover{background:rgba(255,255,255,.12);border-color:#fff}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--line);
  box-shadow:0 1px 12px -6px rgba(27,36,32,.12)
}
.site-header__bar{
  display:flex;align-items:center;gap:28px;
  height:84px
}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:54px;width:auto;display:block}
.brand--footer img{height:48px;max-width:220px}
.site-nav{display:flex;align-items:center;gap:30px;margin-left:auto;font-size:15px;font-weight:600;white-space:nowrap}
.site-nav>a,.nav-drop summary{color:var(--ink);padding-block:8px;border-bottom:2.5px solid transparent;transition:color .15s,border-color .15s}
.site-nav>a:hover,.site-nav>a[aria-current="page"]{color:var(--forest);border-color:var(--forest)}
.nav-drop{position:relative}
.nav-drop summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.nav-drop summary::-webkit-details-marker{display:none}
.nav-drop__chev{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.nav-drop[open] .nav-drop__chev{transform:translateY(1px) rotate(-135deg)}
.nav-drop summary:hover,.nav-drop[open] summary,.nav-drop summary[aria-current="page"]{color:var(--forest);border-color:var(--forest)}
.nav-drop__menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:8px;width:330px;box-shadow:0 18px 40px -12px rgba(27,36,32,.28),0 2px 6px rgba(27,36,32,.06);display:flex;flex-direction:column;gap:2px;z-index:70;white-space:normal}
.nav-drop__menu::before{content:"";position:absolute;top:-7px;left:50%;width:12px;height:12px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:translateX(-50%) rotate(45deg)}
.nav-drop__menu::after{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.nav-drop__menu a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;color:var(--ink);transition:background .15s}
.nav-drop__ico{flex:none;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:19px;background:var(--forest-wash)}
.nav-drop__txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.nav-drop__txt b{font-size:15px;font-weight:600}
.nav-drop__txt small{font-size:12.5px;font-weight:400;color:var(--muted);line-height:1.35}
.nav-drop__menu a:hover,.nav-drop__menu a[aria-current="page"]{background:var(--forest-wash)}
.nav-drop__menu a:hover b,.nav-drop__menu a[aria-current="page"] b{color:var(--forest)}
.site-header__actions{display:flex;align-items:center;gap:14px;flex:none}
.site-header__actions .btn{padding:12px 22px;font-size:15px}
.site-header__search{display:flex;color:var(--ink-soft);line-height:1}
.site-header__search:hover{color:var(--forest)}
.menu-toggle{display:none;margin-left:auto;flex-direction:column;gap:5px;width:40px;height:40px;
  align-items:center;justify-content:center;background:none;border:0;cursor:pointer;padding:0}
.menu-toggle span{display:block;width:24px;height:2.5px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.site-header[data-open="1"] .menu-toggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.site-header[data-open="1"] .menu-toggle span:nth-child(2){opacity:0}
.site-header[data-open="1"] .menu-toggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

@media (max-width:980px){
  .site-header__bar{height:70px}
  .brand img{height:44px}
  .menu-toggle{display:flex}
  .site-nav{
    position:fixed;inset:70px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;
    background:#fff;border-bottom:1px solid var(--line);font-size:16px;
    padding:6px 6vw 22px;margin:0;transform:translateY(-100%);visibility:hidden;max-height:calc(100vh - 70px);overflow:auto;
    transition:transform .25s ease,visibility 0s linear .25s;box-shadow:var(--shadow)
  }
  .site-header[data-open="1"] .site-nav{transform:translateY(0);visibility:visible;transition:transform .25s ease,visibility 0s}
  .site-nav>a,.nav-drop summary{padding:15px 0;border-bottom:1px solid var(--line)}
  .nav-drop summary{display:flex;justify-content:space-between}
  .site-header__actions .btn{display:none}
  .nav-drop__menu{position:static;transform:none;width:auto;box-shadow:none;border:0;margin:6px 0 8px;padding:0}
  .nav-drop__menu::before,.nav-drop__menu::after{display:none}
  .nav-drop__menu a{padding:9px 4px}
}

/* ---------- hero ---------- */
.hero{position:relative;color:#fff;isolation:isolate;min-height:min(88vh,720px);display:flex;align-items:flex-end}
.hero__media{position:absolute;inset:0;z-index:-2}
.hero__media img{width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(140% 90% at 80% 0%, transparent 30%, rgba(12,30,22,.45)),
    linear-gradient(180deg,rgba(12,30,22,.12) 0%,rgba(12,30,22,.28) 40%,rgba(12,30,22,.86) 100%)}
.hero__inner{padding-block:72px;max-width:680px;position:relative}
.hero__tag{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:#e9f2ec;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);
  backdrop-filter:blur(4px);padding:6px 13px;border-radius:999px;margin-bottom:20px}
.hero h1{font-size:clamp(38px,5.8vw,70px);font-weight:800;letter-spacing:-.035em;line-height:1.08}
.hero h1 em{font-style:normal;color:var(--orange)}
.hero p{margin-top:20px;font-size:clamp(16px,2vw,19.5px);color:#eef4f0;max-width:44ch;line-height:1.55}
.hero__search{display:flex;align-items:center;gap:12px;margin-top:28px;background:#fff;border-radius:16px;padding:8px 8px 8px 18px;max-width:600px;box-shadow:var(--shadow-lg);color:var(--muted)}
.hero__search input{flex:1;border:0;background:none;font:inherit;font-size:16px;color:var(--ink);outline:none;min-width:0;padding-block:10px}
.hero__search input::placeholder{color:var(--muted)}
.hero__search button{border:0;border-radius:11px;background:var(--orange-ink);color:#fff;font:inherit;font-weight:700;padding:13px 24px;cursor:pointer;transition:background .15s;white-space:nowrap}
.hero__search button:hover{background:var(--orange-deep)}

/* ---------- homepage ---------- */
.hero--home{min-height:0;align-items:stretch}
.hero--home::after{background:
    linear-gradient(90deg,rgba(10,28,18,.62) 0%,rgba(10,28,18,.30) 48%,rgba(10,28,18,.05) 80%),
    linear-gradient(180deg,rgba(10,28,18,.10) 0%,rgba(10,28,18,.18) 55%,rgba(10,28,18,.55) 100%)}
.hero--home .hero__inner{padding-block:clamp(64px,10vw,124px) clamp(100px,11vw,140px);max-width:720px}
.hero__tag .ico{color:#fff}
.hero__popular{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px;font-size:13.5px}
.hero__popular span{color:#e6efe9;font-weight:600;margin-right:2px}
.hero__popular a{padding:6px 13px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;font-weight:500;backdrop-filter:blur(6px);transition:background .15s}
.hero__popular a:hover{background:rgba(255,255,255,.28)}

.quick{position:relative;z-index:5;margin-top:-64px}
.quick__card{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:10px;
  box-shadow:0 22px 50px -22px rgba(10,40,20,.38),0 2px 6px rgba(10,40,20,.06)}
.quick__card a{display:flex;flex-direction:column;align-items:center;gap:5px;padding:16px 6px 14px;border-radius:14px;text-align:center;transition:background .15s}
.quick__card a:hover{background:var(--forest-wash)}
.quick__ico{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--forest-wash);color:var(--forest);margin-bottom:3px;transition:transform .2s}
.quick__card a:hover .quick__ico{transform:translateY(-2px)}
.quick__card b{font-size:15px;font-weight:700;line-height:1.2}
.quick__card small{font-size:12.5px;color:var(--muted)}
.teaser-card .quick__ico{width:46px;height:46px;border-radius:14px}
.trust{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.trust li{display:flex;gap:12px;align-items:flex-start}
.trust__ico{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--forest-wash);color:var(--forest)}
.trust b{display:block;font-size:14.5px;font-weight:700;line-height:1.3}
.trust small{display:block;font-size:13px;color:var(--muted);line-height:1.45;margin-top:3px}
@media (max-width:960px){.trust{grid-template-columns:1fr 1fr}}
@media (max-width:760px){
  .quick{margin-top:-44px}
  .quick__card{grid-template-columns:repeat(3,1fr);padding:6px;border-radius:18px}
  .quick__card a{padding:12px 2px 10px}
  .quick__ico{width:46px;height:46px;border-radius:14px}
  .quick__card b{font-size:14px}
  .trust{gap:16px 14px;margin-top:22px}
  .trust li{flex-direction:column;gap:8px}
}
.section--first{padding-top:clamp(44px,5.5vw,72px)}

.tabs>input{position:absolute;opacity:0;pointer-events:none}
.tabs__bar{display:flex;gap:8px;margin:-6px 0 24px;overflow-x:auto;scrollbar-width:none;padding:2px}
.tabs__bar::-webkit-scrollbar{display:none}
.tabs__bar label{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;
  font-weight:600;font-size:14.5px;color:var(--ink-soft);cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.tabs__bar label:hover{border-color:var(--forest);color:var(--forest)}
.tabs__panel{display:none}
.tabs>input:nth-of-type(1):checked~.tabs__panels>.tabs__panel:nth-child(1),
.tabs>input:nth-of-type(2):checked~.tabs__panels>.tabs__panel:nth-child(2),
.tabs>input:nth-of-type(3):checked~.tabs__panels>.tabs__panel:nth-child(3){display:block}
.tabs>input:nth-of-type(1):checked~.tabs__bar label:nth-child(1),
.tabs>input:nth-of-type(2):checked~.tabs__bar label:nth-child(2),
.tabs>input:nth-of-type(3):checked~.tabs__bar label:nth-child(3){background:var(--forest);border-color:var(--forest);color:#fff}
.tabs>input:nth-of-type(1):focus-visible~.tabs__bar label:nth-child(1),
.tabs>input:nth-of-type(2):focus-visible~.tabs__bar label:nth-child(2),
.tabs>input:nth-of-type(3):focus-visible~.tabs__bar label:nth-child(3){outline:2px solid var(--forest);outline-offset:2px}
.tabs__more{margin-top:22px}

.route-row{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:860px){.route-row{grid-template-columns:1fr}}
.route-card{display:flex;align-items:center;gap:16px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-s);transition:transform .2s,box-shadow .2s,border-color .2s}
.route-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:var(--line-strong)}
.route-card__n{flex:none;min-width:66px;height:62px;padding:0 8px;border-radius:14px;display:grid;place-items:center;background:var(--forest-wash);color:var(--forest-deep);font-weight:800;font-size:18px;letter-spacing:-.02em}
.route-card b{display:block;font-size:16.5px;font-weight:700;line-height:1.3}
.route-card div span{display:block;font-size:13.5px;color:var(--muted);margin-top:2px;line-height:1.45}
.route-card>.ico{margin-left:auto;color:var(--forest)}
.home-planner-link{margin-top:20px}

.about-md{display:grid;gap:clamp(28px,5vw,64px);grid-template-columns:1.1fr 1fr;align-items:start}
@media (max-width:860px){.about-md{grid-template-columns:1fr}}
.about-md h2{font-size:clamp(24px,2.8vw,32px);font-weight:800;letter-spacing:-.025em;margin-bottom:14px}
.about-md p{color:var(--ink-soft);line-height:1.75}
.about-md p a{color:var(--forest);text-decoration:underline;text-underline-offset:2px}
.about-md__list{list-style:none;margin:0;padding:0;counter-reset:md}
.about-md__list li{counter-increment:md;display:grid;grid-template-columns:36px 1fr;column-gap:12px;padding:14px 0;border-top:1px solid var(--line)}
.about-md__list li:last-child{border-bottom:1px solid var(--line)}
.about-md__list li::before{content:"0" counter(md);grid-row:span 2;font-weight:800;color:var(--forest);font-size:15px;line-height:1.5}
.about-md__list b{font-size:16px;font-weight:700}
.about-md__list span{font-size:14px;color:var(--muted);line-height:1.55;margin-top:2px}

/* ---------- admin-managed: notice bar, promo banners, contact list ---------- */
.announce{background:var(--forest-deep);color:#fff;text-align:center;font-size:14px;font-weight:600;line-height:1.4}
.announce>a,.announce>span{display:block;padding:9px 4vw;color:#fff}
.announce a:hover{background:var(--forest)}
.promo-row{padding-top:clamp(28px,4vw,40px)}
.promo-grid{display:grid;gap:16px;grid-template-columns:repeat(var(--n,1),minmax(0,1fr))}
.promo{display:block;border-radius:var(--radius);overflow:hidden;background:var(--surface-warm);aspect-ratio:2/1;box-shadow:var(--shadow-s);transition:transform .2s,box-shadow .2s}
.promo-grid[style*="--n:1"] .promo{aspect-ratio:4/1}
a.promo:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.promo img{width:100%;height:100%;object-fit:cover}
@media (max-width:760px){
  .promo-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-inline:-4vw;padding:2px 4vw 8px;scrollbar-width:none}
  .promo-grid::-webkit-scrollbar{display:none}
  .promo{flex:0 0 86%;scroll-snap-align:start;aspect-ratio:2/1!important}
  .promo-grid[style*="--n:1"] .promo{flex-basis:100%}
}
.about-md__body>*+*{margin-top:.9em}
.book-card__stack{display:grid;gap:8px;margin-top:16px}
.book-card__stack .btn{justify-content:center}
.contact-list{display:grid;gap:8px;margin-top:14px}
.contact-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-s);transition:border-color .15s,background .15s}
.contact-row:hover{border-color:var(--forest);background:var(--forest-wash)}
.contact-row__ico{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--forest-wash);color:var(--forest)}
.contact-row small{display:block;font-size:12.5px;color:var(--muted)}
.contact-row b{display:block;font-size:15px;font-weight:700}

/* ---------- floating contact, legal line, tour inclusions ---------- */
.fab{position:fixed;right:20px;bottom:20px;z-index:58;display:flex;flex-direction:column;gap:10px}
.fab__btn{display:inline-flex;align-items:center;gap:8px;padding:12px 18px 12px 14px;border-radius:999px;color:#fff;font-weight:700;font-size:15px;box-shadow:0 10px 26px -8px rgba(10,30,20,.45);transition:transform .15s,box-shadow .15s}
.fab__btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -8px rgba(10,30,20,.5)}
.fab__btn--zalo{background:var(--forest)}
.fab__btn--call{background:var(--orange-ink)}
@media (max-width:760px){
  .fab{right:14px;bottom:14px;gap:8px}
  .fab__btn{width:52px;height:52px;padding:0;justify-content:center}
  .fab__btn span{display:none}
}
/* place / tour / booking pages already have a fixed action bar on phones */
@media (max-width:900px){body.page-place .fab{display:none}}
.site-footer__legal{margin-top:28px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;font-size:13px;color:var(--on-dark-muted);line-height:1.6}
.site-footer__legal b{color:var(--on-dark);font-weight:600}
.site-footer__legal a{color:var(--on-dark)}
.bct-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.35);color:#fff!important;font-weight:600;font-size:13px;white-space:nowrap}
.bct-badge--light{margin-top:14px;border-color:var(--forest);color:var(--forest)!important;background:var(--forest-wash)}
.legal-box dl{margin:12px 0 0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:14px}
.legal-box dt{color:var(--muted)}
.legal-box dd{margin:0;font-weight:600}
.guide-split__aside>*+*{margin-top:16px}
.book-card__sub{display:block;margin-top:4px;font-size:13px;color:var(--muted);font-weight:500}
.incl{display:grid;gap:14px;grid-template-columns:1fr 1fr;margin-top:24px}
@media (max-width:620px){.incl{grid-template-columns:1fr}}
.incl__col{border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;background:var(--surface)}
.incl__col h3{font-size:16px;font-weight:700;margin-bottom:10px}
.incl__col ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.incl__col li{display:flex;gap:8px;align-items:flex-start;font-size:14.5px;line-height:1.5}
.incl__col li .ico{margin-top:3px}
.incl__col--yes .ico{color:var(--forest)}
.incl__col--no .ico{color:#c0392b}
.policy-list{margin:0;padding-left:1.2em;display:grid;gap:6px;color:var(--ink-soft)}
.place-main .policy-list{font-size:15.5px}

/* ---------- "no photo yet" panel ---------- */
.ph{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  text-align:center;overflow:hidden;background:
  radial-gradient(120% 90% at 15% 10%, var(--forest-wash), transparent 60%),
  linear-gradient(150deg, var(--paper-2), var(--surface-warm));
  color:var(--forest-deep)}
.ph::after{content:"";position:absolute;inset:0;opacity:.5;background-image:
  repeating-linear-gradient(115deg, rgba(24,63,49,.06) 0 1px, transparent 1px 22px)}
.ph[data-cat="luu-tru"]{background:radial-gradient(120% 90% at 15% 10%, #dff1e2, transparent 60%),linear-gradient(150deg,var(--paper-2),var(--surface-warm));color:var(--forest-deep)}
.ph__word{position:relative;font-family:var(--display);font-weight:700;font-size:clamp(18px,2vw,22px);letter-spacing:-.01em;line-height:1;opacity:.7}
.ph__sub{position:relative;font-family:var(--sans);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.ph__word::after{content:"";display:block;width:34px;height:2px;background:currentColor;opacity:.5;margin:12px auto 0}
.discover-card__media.ph .ph__word,.rec-card__media.ph .ph__word{font-size:12px;padding:0 6px}
.discover-card__media.ph .ph__word::after,.rec-card__media.ph .ph__word::after{margin-top:6px;width:18px}

/* ---------- cards (place / tour / guide share one look) ---------- */
.card-grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr))}
.guide-grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.place-card,.tour-card,.guide-card{
  display:flex;flex-direction:column;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-s);transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s ease
}
.place-card:hover,.tour-card:hover,.guide-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.place-card__media,.tour-card__media,.guide-card__media{position:relative;aspect-ratio:3/2;background:var(--surface-warm);overflow:hidden}
.place-card__media img,.tour-card__media img,.guide-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.place-card:hover .place-card__media img,.tour-card:hover .tour-card__media img,.guide-card:hover .guide-card__media img{transform:scale(1.05)}
.place-card__badges{position:absolute;left:10px;top:10px;display:flex;flex-wrap:wrap;gap:6px;z-index:2}
.place-card__badges span{
  background:rgba(255,255,255,.95);color:var(--ink);
  font-size:11.5px;font-weight:700;padding:5px 10px;border-radius:8px;
  box-shadow:0 1px 3px rgba(16,32,22,.16)
}
.place-card__badges span:first-child{background:var(--forest);color:#fff}
.place-card__body,.tour-card__body,.guide-card__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.card-cat{font-size:12.5px;font-weight:600;color:var(--forest)}
.place-card__body h3,.tour-card__body h3,.guide-card__body h3{font-size:17px;font-weight:700;line-height:1.32;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.place-card__body p,.guide-card__body p{color:var(--muted);font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.place-card__fit{display:flex;gap:6px;flex-wrap:wrap}
.place-card__fit small{background:var(--forest-wash);color:var(--forest-deep);font-size:11.5px;font-weight:500;padding:3px 9px;border-radius:6px}
.place-card__meta{margin-top:auto;display:flex;align-items:center;font-size:13px;color:var(--muted);padding-top:6px}
.place-card__loc{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.place-card__loc .ico{margin-right:4px;color:var(--muted)}
.place-card__price{font-weight:700;color:var(--orange-ink);font-size:14.5px;padding-top:6px;border-top:1px dashed var(--line-strong);margin-top:4px}
.tour-card__meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--ink-soft)}
.tour-card__meta span{display:inline-flex;align-items:center;gap:5px}
.tour-card__meta .ico{color:var(--forest)}
.tour-card__foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:12px;border-top:1px dashed var(--line-strong)}
.tour-card__price{font-weight:700;color:var(--orange-ink);font-size:15.5px}
.tour-card__price small{font-weight:500;color:var(--muted);font-size:12px}
.tour-card__go,.guide-card__go{display:inline-flex;align-items:center;gap:5px;color:var(--forest);font-weight:600;font-size:13.5px;white-space:nowrap}
.guide-card__go{margin-top:auto;padding-top:4px}

/* card rows: grid on desktop, swipe row on phones */
.card-row{display:grid;gap:22px;grid-template-columns:repeat(3,minmax(0,1fr))}
.card-row--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1080px){.card-row--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .card-row,.card-row--4{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;
    margin-inline:-4vw;padding:4px 4vw 14px;scroll-padding-inline:4vw;scrollbar-width:none}
  .card-row::-webkit-scrollbar{display:none}
  .card-row>*{flex:0 0 78%;scroll-snap-align:start}
  html.js .card-row .reveal{opacity:1;transform:none}
}
.teaser-card{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-s);transition:transform .2s,box-shadow .2s}
.teaser-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.teaser-card b{font-size:17px;font-weight:700}
.teaser-card>span:not(.quick__ico){font-size:14px;color:var(--muted);line-height:1.5}
.teaser-card small{margin-top:auto;display:inline-flex;align-items:center;gap:5px;color:var(--forest);font-weight:600;font-size:13.5px}

/* ---------- CTA band ---------- */
.cta-band{display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.cta-band h2{font-size:clamp(24px,3vw,34px);max-width:22ch}
.cta-band p{color:var(--on-dark);margin-top:10px;max-width:44ch}

/* ---------- empty state ---------- */
.empty{background:var(--surface-warm);border:1px dashed var(--line-strong);border-radius:var(--radius);padding:28px;text-align:center}
.empty b{font-family:var(--display);font-size:18px}
.empty p{color:var(--muted);font-size:14px;margin-top:6px}

/* ---------- footer ---------- */
.site-footer{background:var(--forest-deep);color:var(--on-dark);padding-block:56px 30px;font-size:14px}
.site-footer .brand{color:#fff}
.site-footer__top{display:grid;gap:40px;grid-template-columns:1.4fr 2fr}
@media (max-width:820px){.site-footer__top{grid-template-columns:1fr}}
.site-footer__brand p{margin-top:14px;color:var(--on-dark);max-width:38ch;line-height:1.6}
.site-footer__tag{margin-top:14px;font-size:12px;letter-spacing:.06em;color:var(--on-dark-muted)}
.site-footer__links{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
.site-footer__links b{display:block;color:#fff;font-family:var(--sans);font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}
.site-footer__links a,.site-footer__links span{display:block;padding:4px 0;color:var(--on-dark)}
.site-footer__links a:hover{color:#fff}
.site-footer__links span{color:var(--on-dark-muted)}
.site-footer__bottom{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--on-dark-muted);font-size:12.5px}
.site-footer__bottom a{color:var(--on-dark);border-bottom:1px solid rgba(255,255,255,.25)}
.site-footer__bottom a:hover{color:#fff}
.site-footer__social{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}
.site-footer__social a{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:var(--on-dark);font-size:12.5px;font-weight:500}
.site-footer__social a:hover{background:rgba(255,255,255,.1);color:#fff}

/* ---------- breadcrumb ---------- */
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--muted);margin-bottom:16px}
.breadcrumb a{color:var(--muted)}
.breadcrumb a:hover{color:var(--forest)}
.breadcrumb b{color:var(--ink-soft);font-weight:600;font-family:var(--sans)}
.breadcrumb span{opacity:.5}
.breadcrumb--light{color:rgba(255,255,255,.8)}
.breadcrumb--light a,.breadcrumb--light b{color:rgba(255,255,255,.9)}

/* ---------- subhero ---------- */
.subhero{position:relative;color:#fff;isolation:isolate;padding-block:clamp(40px,6vw,76px);background:var(--forest-deep)}
.subhero__media{position:absolute;inset:0;z-index:-2}
.subhero__media img{width:100%;height:100%;object-fit:cover}
.subhero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,28,18,.78) 0%,rgba(10,28,18,.5) 55%,rgba(10,28,18,.3) 100%)}
.subhero h1{font-size:clamp(28px,3.8vw,46px);font-weight:800;letter-spacing:-.03em;line-height:1.15;max-width:24ch}
.subhero p{margin-top:12px;color:#e2ece6;max-width:60ch;font-size:clamp(15px,1.6vw,17px)}
.subhero__meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.subhero__meta span{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);font-size:13.5px;font-weight:600;backdrop-filter:blur(6px)}
.subhero__meta .ico{color:#fff}
.subhero .eyebrow{color:rgba(255,255,255,.85)}

.chip{display:inline-block;padding:6px 13px;border:1px solid var(--line-strong);border-radius:999px;font-size:13px;color:var(--ink-soft)}
.chip:hover{border-color:var(--forest);color:var(--forest-deep);background:var(--forest-wash)}

.cta-band__actions{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.cta-band__btns{display:flex;flex-wrap:wrap;gap:10px}
.cta-band h2{font-weight:800;max-width:26ch}
.textlink--light{color:#ffffff;border-color:#ffffff}
.textlink--light:hover{color:#fff}

/* ---------- place detail ---------- */
.badge{display:inline-block;font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px;background:var(--surface-warm);color:var(--ink-soft);margin-right:6px}
.badge--verified{background:var(--forest-wash);color:var(--forest-deep)}
.badge--sponsored{background:#fff;color:var(--orange-ink);box-shadow:inset 0 0 0 1px var(--orange-ink)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}

.editor-note{margin-top:22px;background:var(--surface-warm);border-left:3px solid var(--forest);border-radius:0 var(--radius-s) var(--radius-s) 0;padding:18px 20px}
.editor-note span{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--forest);font-weight:600}
.editor-note p{margin-top:8px;color:var(--ink-soft);line-height:1.65}
.sidebox,.business-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-s)}
.sidebox h3{font-size:18px;margin:6px 0 10px}
.sidebox a{display:flex;justify-content:space-between;padding:11px 0;border-top:1px solid var(--line);color:var(--ink-soft);font-weight:500;font-size:14.5px}
.sidebox a:hover{color:var(--forest)}
.business-box{margin-top:18px;background:var(--forest-wash);border-color:#d6ebd9}
.business-box small{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--forest);font-weight:600}
.business-box b{display:block;font-family:var(--display);font-size:17px;margin:8px 0 6px}
.business-box p{font-size:13.5px;color:var(--ink-soft);margin-bottom:10px}

/* ---------- listing pages (category / collection) ---------- */
.section--list{padding-top:clamp(28px,4vw,44px)}
.section--line{border-top:1px solid var(--line)}
.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px 24px;flex-wrap:wrap;margin-bottom:20px}
.list-toolbar__chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.list-toolbar__label{font-size:13px;font-weight:600;color:var(--muted);margin-right:2px}
.list-toolbar .chip{padding:8px 15px;font-size:14px;font-weight:500;background:#fff}
.list-toolbar .chip--active{background:var(--forest);border-color:var(--forest);color:#fff;font-weight:600}
.list-toolbar__map{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:14.5px;color:var(--forest);padding:8px 14px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;transition:border-color .15s,background .15s}
.list-toolbar__map:hover{border-color:var(--forest);background:var(--forest-wash)}
@media (max-width:760px){
  .list-toolbar__chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-4vw;padding-inline:4vw;width:calc(100% + 8vw)}
  .list-toolbar__chips::-webkit-scrollbar{display:none}
  .list-toolbar__chips .chip{flex:none}
  .list-toolbar__label{display:none}
}
.help-strip{display:flex;align-items:center;gap:16px;padding:14px 18px;margin-bottom:24px;border-radius:var(--radius);background:var(--forest-wash);border:1px solid #cfe6d4}
.help-strip__ico{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#fff;color:var(--forest)}
.help-strip__txt{flex:1;min-width:0}
.help-strip__txt b{display:block;font-size:15.5px;font-weight:700}
.help-strip__txt small{display:block;font-size:13.5px;color:var(--ink-soft);margin-top:2px}
.help-strip__actions{display:flex;gap:8px;flex-wrap:wrap;flex:none}
@media (max-width:760px){.help-strip{flex-wrap:wrap}.help-strip__txt{flex-basis:calc(100% - 60px)}.help-strip__actions{width:100%}}
.lead-card{display:grid;grid-template-columns:1.2fr 1fr;margin-bottom:28px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-s);transition:box-shadow .22s,transform .22s}
.lead-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}
.lead-card__media{aspect-ratio:16/10;overflow:hidden;background:var(--surface-warm)}
.lead-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.lead-card:hover .lead-card__media img{transform:scale(1.04)}
.lead-card__body{padding:clamp(20px,3vw,36px);display:flex;flex-direction:column;justify-content:center;gap:10px}
.lead-card__body h2{font-size:clamp(21px,2.3vw,28px);font-weight:800;letter-spacing:-.02em;line-height:1.25}
.lead-card__body p{color:var(--ink-soft);font-size:15px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.lead-card .guide-card__go{margin-top:6px}
@media (max-width:760px){.lead-card{grid-template-columns:1fr}}
.guide-split{display:grid;gap:clamp(28px,5vw,56px);grid-template-columns:minmax(0,1fr) 320px;align-items:start}
@media (max-width:900px){.guide-split{grid-template-columns:1fr}}
.guide-split .cat-body{margin-bottom:0}
.guide-split__aside{position:sticky;top:104px}
@media (max-width:900px){.guide-split__aside{position:static}}
.sidebox a .ico{color:var(--forest);flex:none;margin-left:10px}

/* ---------- place detail (v31) ---------- */
.place-top{padding-top:22px}
.place-top__head{max-width:860px}
.place-top__head h1{font-size:clamp(28px,4vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1.15;margin:6px 0 10px}
.place-top__meta{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--ink-soft);font-size:14.5px}
.place-top__meta span{display:inline-flex;align-items:center;gap:6px}
.place-top__meta .ico{color:var(--forest)}
.place-top__badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pbadge{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;padding:5px 11px;border-radius:8px;background:var(--forest-wash);color:var(--forest-deep)}
.pbadge--strong{background:var(--forest);color:#fff}
.place-top__badges .badge{margin:0;border-radius:8px;font-size:12.5px}
.place-cover{margin-top:22px;border-radius:var(--radius-l);overflow:hidden;aspect-ratio:21/9;background:var(--surface-warm)}
.place-cover img{width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.place-cover{aspect-ratio:4/3;margin-inline:-4vw;border-radius:0}}
.place-body{padding-top:clamp(28px,4vw,44px)}
.place-layout{display:grid;gap:clamp(28px,4vw,52px);grid-template-columns:minmax(0,1fr) 360px;align-items:start}
@media (max-width:900px){.place-layout{grid-template-columns:1fr}}
.place-main h2{font-size:clamp(20px,2.2vw,24px);font-weight:800;margin:32px 0 14px}
.place-lead{font-size:clamp(16.5px,1.8vw,18.5px);line-height:1.7;color:var(--ink)}
.place-fit{margin-top:22px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.place-fit>b{font-size:14px;color:var(--muted);font-weight:600}
.place-fit>div{display:flex;flex-wrap:wrap;gap:8px}
.place-fit span{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid var(--line-strong);font-size:13.5px;font-weight:500}
.place-fit .ico{color:var(--forest)}
.fact-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.fact{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface)}
.fact>.ico{color:var(--forest);margin-top:2px}
.fact small{display:block;font-size:12.5px;color:var(--muted);margin-bottom:2px}
.fact b{font-weight:600;font-size:14.5px;line-height:1.45}
.fact a{color:var(--forest)}
.place-disclaimer{margin-top:22px;font-size:13px;color:var(--muted)}
.place-side{position:sticky;top:104px;display:grid;gap:16px}
@media (max-width:900px){.place-side{position:static}}
.book-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:22px;box-shadow:0 18px 44px -24px rgba(10,40,20,.35),0 1px 3px rgba(10,40,20,.05)}
.book-card__price small{display:block;font-size:13px;color:var(--muted)}
.book-card__price b{display:block;font-size:21px;font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1.3;margin-top:2px}
.book-card__primary{margin-top:16px}
.book-card__primary .btn{width:100%;justify-content:center;padding:14px 20px;font-size:16px}
.book-card__more{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.book-card__more .btn{justify-content:center;padding:10px 12px;font-size:14px}
.book-card__more .btn:last-child:nth-child(odd){grid-column:1/-1}
.book-card__help{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line-strong);font-size:13.5px;color:var(--ink-soft);line-height:1.5}
.book-card__help>.ico{color:var(--forest);margin-top:1px}
.book-card__help a{color:var(--forest);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.place-bar{display:none}
@media (max-width:900px){
  .place-bar{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:55;padding:10px 4vw calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -8px 24px -12px rgba(10,40,20,.25)}
  .place-bar .btn:first-child{flex:1;justify-content:center;padding:13px 16px}
  .place-bar__call{flex:none;width:50px;justify-content:center;padding:0}
  body.page-place{padding-bottom:76px}
}

/* ---------- how-it-works steps ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));counter-reset:st}
.steps li{counter-increment:st;position:relative;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-s)}
.steps li::before{content:counter(st);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--forest);color:#fff;font-weight:800;font-size:15px;margin-bottom:12px}
.steps b{display:block;font-size:16px;font-weight:700;line-height:1.3}
.steps span{display:block;font-size:14px;color:var(--muted);line-height:1.5;margin-top:4px}
.form-split .steps li{display:grid;grid-template-columns:34px 1fr;column-gap:14px;padding:14px 16px}
.form-split .steps li::before{grid-row:span 2;margin:0}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}
.place-cover--short{aspect-ratio:21/7}
.book-card__unit{font-size:13px;font-weight:500;color:var(--muted);margin-left:2px}
.place-card__cta{display:inline-flex;align-items:center;gap:5px;margin-top:10px;color:var(--forest);font-weight:600;font-size:13.5px}
.place-top__meta .textlink{font-size:14px}

/* ---------- article ---------- */
.article__wrap{width:min(760px,92vw);margin-inline:auto}
.article__head{padding-block:clamp(28px,4vw,48px) 8px}
.article__head h1{font-size:clamp(30px,4.4vw,48px);font-weight:800;letter-spacing:-.03em;line-height:1.15;margin:8px 0 14px}
.article__lead{font-size:clamp(17px,1.9vw,19.5px);color:var(--ink-soft);line-height:1.6}
.article__meta{margin-top:16px;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--muted)}
.article__meta span{display:inline-flex;align-items:center;gap:6px}
.article__meta .ico{color:var(--forest)}
.article__cover{width:min(1060px,92vw);margin:26px auto 0;border-radius:var(--radius-l);overflow:hidden;aspect-ratio:16/9;background:var(--surface-warm)}
.article__cover img{width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.article__cover{width:auto;margin-inline:-4vw;border-radius:0;aspect-ratio:3/2}}
.prose{padding-block:36px 40px;font-size:17.5px;line-height:1.8;color:var(--ink)}
.prose--in-layout{padding-block:0;margin-top:28px;font-size:17px}
.prose>*+*{margin-top:1.15em}
.prose h2{font-size:clamp(23px,2.8vw,29px);font-weight:800;letter-spacing:-.02em;line-height:1.25;margin-top:1.9em}
.prose h3{font-size:clamp(19px,2.2vw,22px);font-weight:700;margin-top:1.5em}
.prose a{color:var(--forest);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.prose a:hover{color:var(--forest-deep)}
.prose img{border-radius:var(--radius);margin-block:1.6em;box-shadow:var(--shadow-s)}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.45em}
.prose blockquote{margin:1.4em 0;padding:14px 18px;border-left:4px solid var(--forest);background:var(--surface-warm);border-radius:0 var(--radius-s) var(--radius-s) 0;color:var(--ink)}
.prose table{width:100%;border-collapse:collapse;font-size:15px;display:block;overflow-x:auto}
.prose th,.prose td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.prose thead th{background:var(--surface-warm);font-weight:700;font-size:14px}
.prose strong{font-weight:700}
.article-cta{margin:8px 0 56px}

/* ---------- search ---------- */
.search-title{font-size:clamp(28px,4vw,44px);margin:6px 0 20px}
.search-bar{display:flex;gap:8px;background:#fff;border:1px solid var(--line-strong);border-radius:999px;padding:5px 5px 5px 18px;max-width:480px}
.search-bar input{flex:1;border:0;background:none;font:inherit;outline:none;min-width:0}
.search-bar button{border:0;border-radius:999px;background:var(--orange-ink);color:#fff;font:inherit;font-weight:600;padding:10px 22px;cursor:pointer}
.search-count{margin-top:14px;color:var(--muted);font-size:14px}

/* ---------- discovery map ---------- */
.discover__search{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.discover__search input{flex:1;min-width:200px;padding:12px 16px;border:1px solid var(--line-strong);border-radius:999px;font:inherit;background:#fff;outline:none}
.discover__layout{display:grid;gap:26px;grid-template-columns:280px 1fr;align-items:start}
@media (max-width:920px){.discover__layout{grid-template-columns:1fr}}
.discover__filters{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;position:sticky;top:104px}
@media (max-width:920px){.discover__filters{position:static}}
.discover__filters-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.discover__filters-head b{font-family:var(--display);font-size:16px}
.discover__filters-head button{background:none;border:0;color:var(--forest);font-weight:600;font-size:13px;cursor:pointer}
.discover__group{padding:14px 0;border-top:1px solid var(--line)}
.discover__group>span{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-weight:600}
.discover__checks{display:grid;gap:9px}
.discover__checks label,.discover__selects label{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--ink-soft);cursor:pointer}
.discover__selects{display:grid;gap:12px}
.discover__selects label{flex-direction:column;align-items:stretch;gap:5px}
.discover__selects select{padding:9px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-s);font:inherit;background:#fff}
.discover__toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.discover__toolbar b{font-family:var(--display);font-size:18px}
.discover__toolbar .eyebrow{margin:0;display:inline}
.view-switch{display:flex;gap:4px;background:var(--surface-warm);border-radius:999px;padding:4px}
.view-switch button{border:0;background:none;padding:7px 13px;border-radius:999px;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink-soft);cursor:pointer}
.view-switch button.active{background:#fff;color:var(--forest-deep);box-shadow:var(--shadow-s)}
.discover-results{display:grid;gap:20px}
.discover-results.split{grid-template-columns:1fr 1fr}
.discover-results.list .discover-map{display:none}
.discover-results.list .discover-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.discover-results.map .discover-list{display:none}
.discover-results.map .discover-map{position:sticky;top:104px}
@media (max-width:920px){.discover-results.split{grid-template-columns:1fr}.discover-results.split .discover-map{height:340px}}
.discover-list{display:flex;flex-direction:column;gap:14px;align-content:start}
.discover-results.list .discover-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.discover-results.split .discover-list{max-height:72vh;overflow:auto;padding-right:4px}
.discover-card{flex:0 0 auto;display:flex;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-s)}
.discover-results.list .discover-card{flex-direction:column;gap:0}
.discover-card:hover{border-color:var(--forest)}
.discover-card__media{flex:0 0 110px;height:110px;background:var(--surface-warm);overflow:hidden}
.discover-results.list .discover-card__media{flex:none;width:100%;height:auto;aspect-ratio:3/2}
.discover-card__media img{width:100%;height:100%;object-fit:cover}
.discover-card__media--illus{background:linear-gradient(160deg,var(--forest-wash),var(--surface-warm))}
.discover-card__media--illus img{object-fit:contain;padding:16%}
.discover-card__body{padding:12px 14px 12px 0;display:flex;flex-direction:column;gap:5px;min-width:0}
.discover-results.list .discover-card__body{padding:14px}
.discover-card__body .tag{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--forest)}
.discover-card__body h3{font-size:16px}
.discover-card__body p{font-size:13px;color:var(--ink-soft);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.discover-card__meta{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--muted);margin-top:auto}
.tinybadge{background:var(--surface-warm);padding:2px 7px;border-radius:999px;font-size:11px}
.discover-map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);min-height:420px;position:relative}
.discover-map #map{position:absolute;inset:0}
.discover-map__note{position:absolute;left:10px;bottom:10px;z-index:500;background:rgba(255,255,255,.9);padding:4px 10px;border-radius:999px;font-size:11.5px;color:var(--ink-soft)}
.discover-loading{padding:24px;color:var(--muted);font-size:14px}
.leaflet-popup-content a{color:var(--forest);font-weight:600}

/* ---------- recommendation ---------- */
.rec__layout{display:grid;gap:32px;grid-template-columns:1.3fr 1fr;align-items:start}
@media (max-width:920px){.rec__layout{grid-template-columns:1fr}}
.rec__step{display:flex;gap:14px;margin:28px 0 14px}
.rec__step:first-child{margin-top:0}
.rec__step span{font-family:var(--display);font-size:15px;font-weight:600;color:var(--forest)}
.rec__step h2{font-size:20px}
.rec__step p{font-size:13px;color:var(--muted);margin-top:2px}
.rec__opts{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
.rec__opt{border:1px solid var(--line-strong);border-radius:var(--radius);padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:border-color .12s,background .12s}
.rec__opt:has(input:checked){border-color:var(--forest);background:var(--forest-wash)}
.rec__opt input{position:absolute;opacity:0}
.rec__opt b{font-family:var(--display);font-weight:600;font-size:15px}
.rec__opt small{color:var(--muted);font-size:12px}
.rec__grid{display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-top:6px}
@media (max-width:560px){.rec__grid{grid-template-columns:1fr}}
.rec__grid>label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--ink-soft)}
.rec__grid select{padding:9px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-s);font:inherit;background:#fff}
.rec__switch{flex-direction:row!important;align-items:center;gap:9px!important}
.rec__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.rec__locstatus{margin-top:10px;font-size:13px;color:var(--forest)}
.rec__panel{position:sticky;top:104px}
@media (max-width:920px){.rec__panel{position:static}}
.rec__sticky{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.rec__sticky h2{font-size:20px;margin:6px 0 14px}
.rec__results{display:grid;gap:12px;margin-bottom:14px}
.rec__placeholder{color:var(--muted);font-size:14px;line-height:1.6;padding:12px 0}
.rec-card{display:flex;gap:12px;border:1px solid var(--line);border-radius:var(--radius-s);overflow:hidden;background:var(--surface)}
.rec-card:hover{border-color:var(--forest)}
.rec-card__media{flex:0 0 84px;aspect-ratio:1/1;background:var(--surface-warm);overflow:hidden}
.rec-card__media img{width:100%;height:100%;object-fit:cover}
.rec-card__media--illus img{object-fit:contain;padding:14%}
.rec-card__body{padding:10px 12px 10px 0;min-width:0}
.rec-card__rank{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--forest);display:flex;justify-content:space-between;gap:8px}
.rec-card__rank span{color:var(--muted);font-weight:600}
.rec-card__body h3{font-size:15px;margin:3px 0 5px}
.rec-card__reasons{display:flex;flex-wrap:wrap;gap:4px}
.rec-card__reasons span{background:var(--surface-warm);font-size:11px;padding:2px 7px;border-radius:999px;color:var(--ink-soft)}
.rec-card__dist{font-size:11.5px;color:var(--forest);margin-top:5px}

/* ---------- planner ---------- */
.plan__layout{display:grid;gap:30px;grid-template-columns:1.3fr 1fr;align-items:start}
@media (max-width:920px){.plan__layout{grid-template-columns:1fr}}
.plan__step{display:flex;gap:14px;margin-bottom:22px}
.plan__step span{font-family:var(--display);font-size:15px;font-weight:600;color:var(--forest)}
.plan__step h2{font-size:19px;margin-bottom:10px}
.plan__choice{display:flex;flex-wrap:wrap;gap:8px}
.plan__choice label{border:1px solid var(--line-strong);border-radius:999px;padding:8px 15px;cursor:pointer;font-size:14px}
.plan__choice label:has(input:checked){border-color:var(--forest);background:var(--forest-wash);color:var(--forest-deep)}
.plan__choice input{position:absolute;opacity:0}
.plan__choice b{font-weight:600}
.plan__result{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;position:sticky;top:104px}
@media (max-width:920px){.plan__result{position:static}}
.plan__result h2{font-size:20px;margin:6px 0 16px}
.plan__timeline{display:grid;gap:0}
.plan__timeline>div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.plan__timeline b{font-family:var(--sans);font-weight:600;font-size:13px;color:var(--forest-deep)}
.plan__timeline span{font-size:14px;color:var(--ink-soft)}

/* ---------- booking ---------- */

.bk-form>label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:14px}
.bk-two{display:grid;gap:14px;grid-template-columns:1fr 1fr;margin-bottom:14px}
@media (max-width:520px){.bk-two{grid-template-columns:1fr}}
.bk-two label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--ink)}
.bk-form input,.bk-form textarea,.bk-form select{padding:12px 14px;border:1px solid var(--line-strong);border-radius:10px;font:inherit;font-size:15px;color:var(--ink);background:#fff;width:100%;transition:border-color .15s,box-shadow .15s}
.bk-form input:focus,.bk-form textarea:focus,.bk-form select:focus{outline:none;border-color:var(--forest);box-shadow:0 0 0 3px rgba(4,137,19,.15)}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:clamp(18px,3vw,28px);box-shadow:var(--shadow-s)}
.form-split{display:grid;gap:clamp(24px,4vw,56px);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start}
@media (max-width:900px){.form-split{grid-template-columns:1fr}}
.form-split__intro h2{font-size:clamp(24px,2.8vw,32px);font-weight:800;letter-spacing:-.025em;margin-bottom:10px}
.form-split__intro>p{color:var(--ink-soft);margin-bottom:22px}
.form-split .steps{grid-template-columns:1fr}
.bk-form textarea{min-height:90px;resize:vertical}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.bk-room{display:block;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-s);border-radius:var(--radius);padding:16px 18px;margin-bottom:12px;cursor:pointer}
.bk-room:has(input:checked){border-color:var(--forest);background:var(--forest-wash)}
.bk-room input{position:absolute;opacity:0}
.bk-room__head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.bk-room__head h3{font-size:17px}
.bk-room__head b{color:var(--orange-ink);white-space:nowrap;font-weight:800}
.bk-room__head b small{font-weight:500;color:var(--muted);font-size:12.5px}
.bk-room__meta span{display:inline-flex;align-items:center;gap:4px}
.bk-note{color:var(--muted);font-size:14px;margin:-6px 0 14px}
.bk-room__body p{font-size:13.5px;color:var(--ink-soft);margin:6px 0}
.bk-room__meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted)}
.bk-submit{margin-top:8px;width:100%;justify-content:center;padding:14px 20px;font-size:16px}
.bk-disclaimer{margin-top:12px;font-size:12.5px;color:var(--muted);line-height:1.55}
.bk-thanks{display:flex;justify-content:center}
.bk-thanks__card{max-width:520px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:40px 32px;box-shadow:var(--shadow-s)}
.bk-thanks__check{width:56px;height:56px;border-radius:999px;background:var(--forest);color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.bk-thanks__card h1{font-size:28px;margin:8px 0 14px}
.bk-thanks__card p{color:var(--ink-soft);margin-bottom:10px}
.bk-thanks__card .btn{margin-top:16px}

.bk-room-list{display:grid;gap:12px;margin-bottom:8px}
.bk-room-list .bk-room{margin:0}
.bk-room--static{cursor:default}

/* ---------- claim ---------- */
.claim{display:grid;gap:40px;grid-template-columns:1fr 1fr;align-items:start;margin-top:12px}
@media (max-width:860px){.claim{grid-template-columns:1fr}}
.claim__intro h1{font-size:clamp(28px,4vw,40px);margin:10px 0 14px}
.claim__intro>p{color:var(--ink-soft)}
.claim__place{display:flex;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin:20px 0}
.claim__place-img{flex:0 0 72px;height:72px;border-radius:var(--radius-s);overflow:hidden;background:var(--surface-warm)}
.claim__place-img img{width:100%;height:100%;object-fit:cover}
.claim__place-img--illus img{object-fit:contain;padding:12%}
.claim__place b{display:block;font-family:var(--display);font-size:17px;margin:4px 0 2px}
.claim__place small{color:var(--muted);font-size:13px}
.claim__benefits{list-style:none;padding:0;margin:18px 0;display:grid;gap:8px}
.claim__benefits li{padding-left:24px;position:relative;font-size:14px;color:var(--ink-soft)}
.claim__benefits li::before{content:"✓";position:absolute;left:0;color:var(--forest);font-weight:700}
.claim__note{font-size:13px;color:var(--muted);line-height:1.6}
.claim__form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-s)}
.claim__form h2{font-size:20px;margin-bottom:16px}
.claim__form label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--ink-soft);margin-bottom:14px}
.claim__form input,.claim__form select,.claim__form textarea{padding:11px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-s);font:inherit;background:#fff}
.claim__form textarea{min-height:90px;resize:vertical}
.claim__cols{display:grid;gap:12px;grid-template-columns:1fr 1fr}
@media (max-width:520px){.claim__cols{grid-template-columns:1fr}}

/* ---------- image credits ---------- */
.credit-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));margin-top:28px}
.credit-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.credit-card h3{font-size:17px;margin:8px 0 6px}
.credit-card p{font-size:13px;color:var(--ink-soft);margin-bottom:10px}

/* ---------- partner dashboard ---------- */
.pd-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:24px}
.pd-head h1{font-size:clamp(26px,3.6vw,38px);margin:8px 0 4px}
.pd-periods{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.pd-periods>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;text-align:center}
.pd-periods>div span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.pd-periods>div b{display:block;font-family:var(--display);font-size:28px;color:var(--forest-deep);margin-top:4px}
.pd-periods__active{border-color:var(--forest)!important;background:var(--forest-wash)!important}
.pd-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px;margin-bottom:20px}
.pd-metrics>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);padding:16px}
.pd-metrics span{font-size:18px}
.pd-metrics b{display:block;font-family:var(--display);font-size:24px;margin:4px 0}
.pd-metrics small{font-size:12px;color:var(--muted)}
.pd-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:16px}
.pd-card__head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.pd-card h2{font-size:19px}
.pd-cta{font-size:13px;color:var(--muted)}
.pd-cta b{font-family:var(--display);font-size:20px;color:var(--forest-deep)}
.pd-chart{display:flex;align-items:flex-end;gap:3px;height:120px}
.pd-bar{flex:1;display:flex;align-items:flex-end;height:100%}
.pd-bar i{display:block;width:100%;background:var(--forest);border-radius:3px 3px 0 0;min-height:4px}

/* ---------- utilities ---------- */
.stack>*+*{margin-top:var(--flow,20px)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* V18 — FAQ + category body */
.faq-section{background:#e9f4eb}
.faq-section .faq__item{border-color:#cfe3d3}
.faq{display:grid;gap:0;max-width:820px}
.faq__item{border-top:1px solid var(--line);padding:4px 0}
.faq__item:last-child{border-bottom:1px solid var(--line)}
.faq__item summary{list-style:none;cursor:pointer;padding:16px 0;font-family:var(--display);font-size:clamp(16px,2vw,19px);font-weight:560;display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";color:var(--forest);font-family:var(--sans);font-weight:400;font-size:22px;line-height:1}
.faq__item[open] summary::after{content:"–"}
.faq__a{padding:0 0 18px;color:var(--ink-soft);font-size:15px;line-height:1.65;max-width:64ch}
.faq__a a{color:var(--forest);text-decoration:underline;text-underline-offset:2px}
.faq__a p+p{margin-top:.7em}
.cat-body{max-width:70ch;margin-bottom:36px;color:var(--ink-soft);font-size:16px;line-height:1.7}
.cat-body>*+*{margin-top:1em}
.cat-body h2{font-family:var(--display);font-size:clamp(20px,2.4vw,25px);color:var(--ink);margin-top:1.4em}
.cat-body a{color:var(--forest);text-decoration:underline;text-underline-offset:2px}

/* V18 — category related links */
.cat-related{margin-top:32px;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline;padding-top:20px;border-top:1px solid var(--line)}
.cat-related>span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.cat-related a{color:var(--forest);font-weight:500;font-size:14.5px;border-bottom:1px solid var(--line-strong);padding-bottom:1px}
.cat-related a:hover{border-color:var(--forest)}

/* V18 — weather month table */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.month-table{width:100%;border-collapse:collapse;min-width:640px;font-size:14px}
.month-table th,.month-table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.month-table thead th{background:var(--surface-warm);font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}
.month-table tbody th{font-family:var(--display);font-weight:560;white-space:nowrap;color:var(--forest-deep)}
.month-table tbody tr:last-child th,.month-table tbody tr:last-child td{border-bottom:0}
.month-note{margin:14px 0 40px;font-size:13px;color:var(--muted)}

/* V23 — article table of contents */
.toc{margin:8px 0 34px;padding:18px 20px;background:var(--surface-warm);border:1px solid var(--line);border-radius:var(--radius);max-width:70ch}
.toc>b{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.toc ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.toc__i a{color:var(--forest);text-decoration:none;font-size:14.5px;line-height:1.4;border-bottom:1px solid transparent}
.toc__i a:hover{border-color:var(--forest)}
.toc__i--h3{padding-left:16px;font-size:13.5px}
.prose h2[id],.prose h3[id]{scroll-margin-top:104px}

/* V25 — live weather widget */
.wx{margin:8px 0 34px;max-width:70ch}
.wx__msg{padding:16px 18px;background:var(--surface-warm);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink-soft);font-size:14.5px}
.wx__now{display:flex;align-items:center;gap:18px;padding:18px 20px;background:var(--surface-warm);border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0}
.wx__temp{font-family:var(--display);font-size:44px;font-weight:560;line-height:1;color:var(--forest-deep)}
.wx__meta b{display:block;font-size:16px;margin-bottom:3px}
.wx__meta span{font-size:13px;color:var(--muted)}
.wx__fc{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius) var(--radius);overflow:hidden}
.wx__d{padding:12px 14px;text-align:center;border-right:1px solid var(--line)}
.wx__d:last-child{border-right:0}
.wx__d b{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.wx__d span{display:block;font-family:var(--display);font-size:16px;margin:3px 0}
.wx__d small{font-size:11.5px;color:var(--muted)}
.wx__src{margin-top:10px;font-size:12px;color:var(--muted)}

/* V30 — Tour catalog */
.chip--active{background:var(--forest);border-color:var(--forest);color:#fff}
.chip--active:hover{background:var(--forest-deep);border-color:var(--forest-deep);color:#fff}
