/* ==========================================================================
   NISBA TRAVELS · design system
   Palette and type continuity from nisbatravels.com, rebuilt as hand-written CSS.
   01 tokens · 02 reset · 03 type · 04 layout · 05 buttons · 06 header
   07 hero · 08 matcher · 09 cards · 10 themes · 11 months · 12 destinations
   13 proof · 14 journal · 15 footer · 16 overlays · 17 utilities · 18 responsive
   ========================================================================== */

/* ---------------------------------------------------------------- 01 TOKENS */
@font-face{font-family:'Fraunces';src:url('../fonts/fraunces.woff2') format('woff2');font-weight:300 800;font-display:swap;font-style:normal;size-adjust:100%}
@font-face{font-family:'Inter';src:url('../fonts/inter.woff2') format('woff2');font-weight:300 800;font-display:swap;font-style:normal}

:root{
  /* brand */
  --pine:#0e3b32; --pine-2:#0a2c26; --pine-3:#134a3f;
  --saffron:#e6a03c; --saffron-soft:#f3c877; --saffron-deep:#c8822a;
  --cream:#fbf7f0; --cream-deep:#f4ece0; --cream-3:#efe4d4;
  --ink:#0a1613; --stone:#6b6257; --chinar:#b8492a; --lake:#1b6a86; --moss:#2c7a63;

  /* semantic (light) */
  --bg:var(--cream); --bg-2:#fffdf9; --bg-3:var(--cream-deep);
  --fg:var(--ink); --fg-2:#3b4741; --fg-3:var(--stone);
  --line:rgba(10,22,19,.11); --line-2:rgba(10,22,19,.2);
  --card:#fffdf9; --glass:rgba(251,247,240,.82); --glass-line:rgba(255,255,255,.6);
  --accent:var(--saffron-deep);

  --shadow-lift:0 1px 2px rgba(10,22,19,.04),0 12px 32px -12px rgba(10,22,19,.18);
  --shadow-float:0 24px 60px -24px rgba(10,22,19,.35);
  --shadow-xl:0 40px 90px -40px rgba(10,22,19,.45);
  --shadow-glow:0 0 0 1px rgba(230,160,60,.25),0 20px 50px -20px rgba(230,160,60,.45);

  /* type */
  --font-display:'Fraunces',ui-serif,Georgia,serif;
  --font-sans:'Inter',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --t--1:clamp(.78rem,.76rem + .08vw,.83rem);
  --t-0:clamp(.94rem,.91rem + .12vw,1.02rem);
  --t-1:clamp(1.06rem,1rem + .28vw,1.22rem);
  --t-2:clamp(1.3rem,1.16rem + .7vw,1.72rem);
  --t-3:clamp(1.62rem,1.3rem + 1.5vw,2.5rem);
  --t-4:clamp(2rem,1.4rem + 2.8vw,3.7rem);
  --t-5:clamp(2.5rem,1.4rem + 5vw,5.6rem);

  /* structure */
  --container:1280px; --gutter:clamp(1.05rem,4vw,2.5rem);
  --section:clamp(3.6rem,8vw,7.5rem);
  --header-h:76px;
  --r-sm:10px; --r:16px; --r-card:24px; --r-xcard:34px;
  --ease:cubic-bezier(.22,1,.36,1); --ease-out:cubic-bezier(0,0,.2,1);
}

[data-theme="dark"]{
  --bg:#08211c; --bg-2:#0b2a24; --bg-3:#0f342c;
  --fg:#f6f1e7; --fg-2:#cfd8d0; --fg-3:#9aaba1;
  --line:rgba(246,241,231,.13); --line-2:rgba(246,241,231,.24);
  --card:#0c2b25; --glass:rgba(8,33,28,.8); --glass-line:rgba(255,255,255,.1);
  --accent:var(--saffron-soft);
  --shadow-lift:0 1px 2px rgba(0,0,0,.3),0 12px 32px -12px rgba(0,0,0,.55);
  --shadow-float:0 24px 60px -24px rgba(0,0,0,.7);
  --shadow-xl:0 40px 90px -40px rgba(0,0,0,.8);
  --cream:#0b2a24; --cream-deep:#0f342c;
}

/* ----------------------------------------------------------------- 02 RESET */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{
  font-family:var(--font-sans);font-size:var(--t-0);line-height:1.65;
  color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;overflow-x:hidden;
  transition:background .5s var(--ease),color .5s var(--ease);
}
body.locked{overflow:hidden}
img,svg,video{display:block;max-width:100%;height:auto}
svg{width:1em;height:1em;flex:none}
svg[style*="height:auto"]{width:100%}
img{height:auto}
img{background:var(--bg-3)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
ul,ol{list-style:none;padding:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
::selection{background:var(--saffron);color:#1a1206}

h1,h2,h3,h4{
  font-family:var(--font-display);font-weight:500;line-height:1.04;
  letter-spacing:-.021em;text-wrap:balance;
  font-variation-settings:'SOFT' 0,'WONK' 0;
}
p{text-wrap:pretty}
.skip{position:fixed;top:-100px;left:1rem;z-index:999;background:var(--pine);color:#fff;padding:.8rem 1.2rem;border-radius:0 0 12px 12px;transition:top .25s;font-weight:600}
.skip:focus{top:0}

/* ------------------------------------------------------------------ 03 TYPE */
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.eyebrow::before{content:'';width:24px;height:1px;background:currentColor;opacity:.55}
.lede{font-size:var(--t-1);color:var(--fg-2);line-height:1.55}
.muted{color:var(--fg-3)}
.serif{font-family:var(--font-display)}
.italic{font-style:italic;font-variation-settings:'SOFT' 40,'WONK' 1}
.on-dark{color:#f6f1e7}
.on-dark .muted{color:rgba(246,241,231,.62)}
.measure{max-width:62ch}
.measure-sm{max-width:46ch}

/* ---------------------------------------------------------------- 04 LAYOUT */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.container-wide{max-width:1520px;margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section);position:relative}
.section-tight{padding-block:clamp(2.4rem,5vw,4.2rem)}
.section-cream{background:var(--bg-2)}
.section-pine{background:var(--pine-2);color:#f6f1e7}
.section-pine h2,.section-pine h3{color:#fbf8f1}
.grid{display:grid;gap:clamp(1rem,2.2vw,1.7rem)}
.flex{display:flex}
.center{align-items:center}
.between{justify-content:space-between}
.wrap{flex-wrap:wrap}
.section-head{max-width:52rem}
.section-head h2{font-size:var(--t-3);margin-top:.9rem}
.section-head p{color:var(--fg-3);margin-top:1rem;max-width:44rem}
.section-head-split{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.section-head-split>div{max-width:44rem}

.link-arrow{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:.84rem;color:var(--fg);padding-bottom:2px;border-bottom:1px solid transparent;transition:gap .3s var(--ease),color .25s,border-color .25s}
.link-arrow:hover{gap:.85rem;color:var(--accent);border-color:currentColor}
.link-arrow svg{width:15px;height:15px;flex:none}

/* --------------------------------------------------------------- 05 BUTTONS */
.btn{
  --bg-btn:var(--pine);--fg-btn:#fbf8f1;
  position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.9rem 1.5rem;border-radius:999px;background:var(--bg-btn);color:var(--fg-btn);
  font-weight:600;font-size:.875rem;letter-spacing:.005em;white-space:nowrap;
  box-shadow:var(--shadow-lift);overflow:hidden;cursor:pointer;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .3s,color .3s;
}
.btn::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.24),transparent 75%);transform:translateX(-130%);transition:transform .7s var(--ease)}
.btn:hover::after{transform:translateX(130%)}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-float)}
.btn:active{transform:translateY(0) scale(.99)}
.btn svg{width:16px;height:16px;flex:none}
.btn-saffron{--bg-btn:linear-gradient(115deg,var(--saffron),var(--saffron-soft));--fg-btn:#1d1405;font-weight:700;box-shadow:0 8px 24px -12px rgba(200,130,42,.7)}
.btn-ghost{--bg-btn:transparent;--fg-btn:var(--fg);border:1px solid var(--line-2);box-shadow:none}
.btn-ghost:hover{--bg-btn:var(--fg);--fg-btn:var(--bg)}
.btn-light{--bg-btn:rgba(255,255,255,.14);--fg-btn:#fff;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(12px)}
.btn-light:hover{--bg-btn:#fff;--fg-btn:var(--pine-2)}
.btn-block{width:100%}
.btn-sm{padding:.6rem 1.05rem;font-size:.8rem}
.btn-lg{padding:1.05rem 2rem;font-size:.95rem}

.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.42rem .82rem;border-radius:999px;background:var(--bg-3);color:var(--fg-2);font-size:.74rem;font-weight:600;border:1px solid transparent;transition:background .25s,color .25s,transform .25s,border-color .25s;white-space:nowrap}
.chip:hover{transform:translateY(-1px)}
.chip-on{background:var(--pine);color:#fbf8f1;border-color:transparent}
[data-theme="dark"] .chip-on{background:var(--saffron);color:#1d1405}
.chip-outline{background:transparent;border-color:var(--line-2)}
.tag{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .65rem;border-radius:999px;font-size:.66rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(10px)}
.tag-saffron{background:var(--saffron);color:#1d1405;border-color:transparent}
.tag-pine{background:var(--pine);color:#fbf8f1;border-color:transparent}
.tag-soft{background:var(--bg-3);color:var(--fg-2);border-color:transparent;letter-spacing:.06em}

/* ---------------------------------------------------------------- 06 HEADER */
.progress{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--saffron-deep),var(--saffron-soft));z-index:300;transition:width .1s linear}

.header{position:fixed;inset:0 0 auto 0;z-index:200;height:var(--header-h);display:flex;align-items:center;border-bottom:1px solid transparent;transition:height .35s var(--ease),background .4s,border-color .4s,box-shadow .4s,backdrop-filter .4s}
.header .container{display:flex;align-items:center;gap:1.2rem}
.header.stuck{height:66px;background:var(--glass);backdrop-filter:blur(20px) saturate(170%);-webkit-backdrop-filter:blur(20px) saturate(170%);border-bottom-color:var(--line);box-shadow:0 12px 30px -26px rgba(10,22,19,.5)}

body[data-overlay="true"] .header:not(.stuck){color:#fff;background:none}
/* soft scrim behind the bar without adding padding (padding shifted the logo off-centre) */
body[data-overlay="true"] .header:not(.stuck)::before{content:'';position:absolute;inset:0 0 auto 0;height:calc(var(--header-h) + 1.4rem);
  background:linear-gradient(180deg,rgba(5,20,16,.6),rgba(5,20,16,.18) 62%,rgba(5,20,16,0));pointer-events:none;z-index:-1}
body[data-overlay="true"] .header:not(.stuck) .brand-name,
body[data-overlay="true"] .header:not(.stuck) .nav-link{text-shadow:0 1px 14px rgba(5,20,16,.55)}
body[data-overlay="true"] .header:not(.stuck) .brand-name,
body[data-overlay="true"] .header:not(.stuck) .nav-link,
body[data-overlay="true"] .header:not(.stuck) .icon-btn{color:#fff}
body[data-overlay="true"] .header:not(.stuck) .brand-sub{color:rgba(255,255,255,.7)}
body[data-overlay="true"] .header:not(.stuck) .logo-mark{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.32);color:#fff}
body[data-overlay="true"] .header:not(.stuck) .btn-ghost{--fg-btn:#fff;border-color:rgba(255,255,255,.35)}
body[data-overlay="true"] .header:not(.stuck) .nav-link::after{background:#fff}

.brand{display:flex;align-items:center;gap:.65rem;flex:none}
.logo-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(150deg,var(--pine),var(--pine-3));color:var(--saffron-soft);border:1px solid rgba(255,255,255,.12);transition:transform .5s var(--ease);flex:none}
.brand:hover .logo-mark{transform:rotate(-7deg) scale(1.06)}
.logo-mark svg{width:23px;height:23px}
.brand-text{display:grid;line-height:1.12}
.brand-name{font-family:var(--font-display);font-size:1.1rem;font-weight:600;letter-spacing:-.015em}
.brand-sub{font-size:.53rem;letter-spacing:.26em;text-transform:uppercase;font-weight:600;color:var(--fg-3);margin-top:2px}

.nav{display:flex;align-items:center;gap:.15rem;margin-left:auto}
.nav-link{position:relative;padding:.5rem .7rem;border-radius:999px;font-size:.85rem;font-weight:500;transition:color .25s}
.nav-link::after{content:'';position:absolute;left:.7rem;right:.7rem;bottom:.24rem;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.nav-link:hover::after,.nav-link[aria-current="page"]::after{transform:scaleX(1)}
.nav-link:hover{color:var(--accent)}
.nav-item{position:relative}
.mega{position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,10px);width:min(680px,90vw);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-xl);padding:1rem;opacity:0;pointer-events:none;transition:opacity .28s,transform .35s var(--ease);display:grid;grid-template-columns:1fr 1fr;gap:.25rem;color:var(--fg)}
.nav-item:hover .mega,.nav-item:focus-within .mega{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.mega a{display:grid;gap:.15rem;padding:.65rem .75rem;border-radius:12px;transition:background .2s}
.mega a:hover{background:var(--bg-3)}
.mega strong{font-size:.87rem;font-weight:600}
.mega span{font-size:.75rem;color:var(--fg-3)}
.mega-head{grid-column:1/-1;font-size:.64rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);padding:.4rem .75rem .2rem}

.header-actions{display:flex;align-items:center;gap:.3rem;flex:none}
.icon-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;position:relative;border:1px solid transparent;transition:background .25s,transform .25s,color .25s,border-color .25s}
.icon-btn:hover{background:rgba(128,128,128,.14);transform:translateY(-1px)}
.icon-btn svg{width:18px;height:18px}
.badge{position:absolute;top:1px;right:-1px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--saffron);color:#1d1405;font-size:.6rem;font-weight:800;display:grid;place-items:center;transform:scale(0);transition:transform .3s var(--ease)}
.badge.on{transform:scale(1)}
.burger{display:none}

/* drawer */
.drawer{position:fixed;inset:0;z-index:250;background:var(--bg);display:grid;grid-template-rows:auto 1fr auto;padding:1rem var(--gutter) 1.6rem;transform:translateY(-103%);transition:transform .6s var(--ease);overflow-y:auto;color:var(--fg)}
.drawer.open{transform:none}
.drawer-top{display:flex;align-items:center;justify-content:space-between}
.drawer-nav{display:grid;align-content:center;padding-block:1.5rem}
.drawer-nav a{display:flex;align-items:baseline;gap:.8rem;padding:.45rem 0;border-bottom:1px solid var(--line);font-family:var(--font-display);font-size:clamp(1.5rem,6.5vw,2.2rem);transition:color .25s,padding-left .3s var(--ease)}
.drawer-nav a:hover{color:var(--accent);padding-left:.5rem}
.drawer-nav i{font-family:var(--font-sans);font-style:normal;font-size:.66rem;font-weight:800;color:var(--accent)}
.drawer-foot{display:grid;gap:.7rem}
.drawer-foot .meta{display:flex;gap:1rem;flex-wrap:wrap;font-size:.78rem;color:var(--fg-3)}

/* ------------------------------------------------------------------ 07 HERO */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding-top:calc(var(--header-h) + 2.5rem);padding-bottom:clamp(1.2rem,3vw,2.4rem);overflow:hidden;color:#fff;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media img{width:100%;height:100%;object-fit:cover;animation:heroPan 28s ease-in-out infinite alternate;transform-origin:58% 52%}
@keyframes heroPan{from{transform:scale(1.05) translate3d(0,0,0)}to{transform:scale(1.15) translate3d(-1.4%,-1%,0)}}
.hero::after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 85% at 4% 62%,rgba(5,20,16,.74) 0%,rgba(5,20,16,.42) 42%,transparent 72%),linear-gradient(180deg,rgba(5,20,16,.62) 0%,rgba(5,20,16,.16) 26%,rgba(5,20,16,.5) 62%,rgba(5,20,16,.94) 100%),radial-gradient(115% 70% at 84% 8%,rgba(230,160,60,.22),transparent 62%)}
.hero-grain{position:absolute;inset:0;z-index:-1;opacity:.2;pointer-events:none;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}

.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:auto}
.hero-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem .45rem .5rem;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(14px);font-size:.72rem;font-weight:600;letter-spacing:.02em}
.hero-badge b{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:var(--saffron);color:#1d1405;font-size:.6rem}
.hero-right{text-align:right;font-size:.73rem;line-height:1.55;color:rgba(255,255,255,.86);max-width:230px}
.hero-right strong{display:block;font-family:var(--font-display);font-size:1.35rem;color:#fff;font-weight:500;margin-bottom:2px}
.hero-inner{display:grid;gap:clamp(1.3rem,3.5vw,2.4rem)}
.hero h1{font-size:var(--t-5);line-height:1.04;letter-spacing:-.035em;max-width:17ch;margin-top:.3rem}
.hero h1 .accent{display:block;font-style:italic;color:var(--saffron-soft);font-variation-settings:'SOFT' 60,'WONK' 0}
.hero-sub{max-width:44ch;color:rgba(255,255,255,.93);font-size:var(--t-1);line-height:1.55}
.hero-row{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.hero-meta{display:flex;gap:1.4rem;flex-wrap:wrap;font-size:.75rem;color:rgba(255,255,255,.82);margin-top:.2rem}
.hero-meta span{display:inline-flex;align-items:center;gap:.4rem}
.hero-meta svg{width:14px;height:14px;color:var(--saffron-soft)}
.hero-scroll{position:absolute;right:var(--gutter);bottom:1.6rem;writing-mode:vertical-rl;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.55);display:flex;align-items:center;gap:.7rem}
.hero-scroll::after{content:'';width:1px;height:56px;background:linear-gradient(rgba(255,255,255,.55),transparent);animation:scrollLine 2.6s ease-in-out infinite}
@keyframes scrollLine{0%,100%{transform:scaleY(.25);opacity:.3}50%{transform:scaleY(1);opacity:1}}

/* --------------------------------------------------------------- 08 MATCHER */
.matcher{background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);border-radius:var(--r-xcard);box-shadow:var(--shadow-xl);color:var(--fg);overflow:hidden}
.matcher-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--line)}
.matcher-title{display:flex;align-items:center;gap:.55rem;font-size:.7rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--fg-3)}
.matcher-title svg{width:14px;height:14px;color:var(--accent)}
.matcher-reset{font-size:.74rem;font-weight:700;color:var(--fg-3);transition:color .25s}
.matcher-reset:hover{color:var(--chinar)}
.matcher-body{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.2rem;padding:.7rem}
.m-field{display:grid;gap:.15rem;padding:.5rem .75rem;border-radius:12px;min-width:0;transition:background .25s}
.m-field:hover,.m-field:focus-within{background:rgba(128,128,128,.11)}
.m-field>span{font-size:.58rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}
.m-field select,.m-field input{border:0;background:transparent;padding:0;width:100%;min-width:0;font-size:.9rem;font-weight:600;color:var(--fg);appearance:none;cursor:pointer;text-overflow:ellipsis}
.m-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b6257' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;padding-right:1.1rem}
.matcher-btn{grid-column:1/-1;min-height:50px;border-radius:14px;padding-inline:1.3rem;margin-top:.35rem}
.matcher-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:0 1.1rem .9rem;font-size:.72rem;color:var(--fg-3)}
.matcher-foot strong{color:var(--fg);font-weight:700}
.matcher-count{display:inline-flex;align-items:center;gap:.4rem}
.matcher-count b{font-family:var(--font-display);font-size:1rem;color:var(--accent)}

/* ----------------------------------------------------------------- 09 CARDS */
.grid-trips{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.5rem)}
.trip{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s}
.trip:hover{transform:translateY(-5px);box-shadow:var(--shadow-float);border-color:transparent}
.trip-media{position:relative;aspect-ratio:16/11;overflow:hidden}
.trip-media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.trip:hover .trip-media img{transform:scale(1.06)}
.trip-tags{position:absolute;top:.75rem;left:.75rem;display:flex;gap:.35rem;flex-wrap:wrap;z-index:2;max-width:calc(100% - 3.6rem)}
.save{position:absolute;top:.65rem;right:.65rem;z-index:3;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(8,25,21,.42);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(10px);color:#fff;transition:background .3s,transform .3s}
.save:hover{transform:scale(1.1);background:rgba(8,25,21,.68)}
.save svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;transition:fill .3s,stroke .3s}
.save[aria-pressed="true"]{background:var(--chinar);border-color:transparent}
.save[aria-pressed="true"] svg{fill:#fff;stroke:#fff}
.trip-dur{position:absolute;bottom:.75rem;left:.75rem;z-index:2;padding:.35rem .7rem;border-radius:999px;background:rgba(255,253,249,.94);color:var(--pine-2);font-size:.68rem;font-weight:800;letter-spacing:.05em}
.trip-body{padding-bottom:1.05rem;padding:1rem 1.1rem 1.15rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.trip-theme{display:flex;align-items:center;gap:.4rem;font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--fg-3)}
.trip-theme i{width:5px;height:5px;border-radius:50%;background:var(--accent);display:inline-block}
.trip-title{font-size:1.12rem;line-height:1.22;letter-spacing:-.015em}
.trip-title a::after{content:'';position:absolute;inset:0;z-index:1}
.trip-sum{font-size:.84rem;color:var(--fg-3);line-height:1.5}
.trip-facts{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.1rem}
.trip-facts span{font-size:.67rem;font-weight:600;color:var(--fg-2);padding:.22rem .5rem;border-radius:6px;background:var(--bg-3)}
.trip-foot{margin-top:auto;padding-top:.85rem;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.trip-months{display:flex;gap:2px;align-items:center}
.trip-months i{width:100%;min-width:6px;height:14px;border-radius:2px;background:var(--line-2);flex:1}
.trip-months i.on{background:var(--accent)}
.trip-months-l{font-size:.62rem;color:var(--fg-3);font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.3rem;display:block}
.trip-cta{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:800;color:var(--accent);white-space:nowrap;flex:none;position:relative;z-index:2;transition:gap .3s var(--ease)}
.trip-cta:hover{gap:.6rem}
.trip-cta svg{width:14px;height:14px}
.fit{font-size:.7rem;font-weight:800;color:var(--moss);display:inline-flex;align-items:center;gap:.3rem}
.fit::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(44,122,99,.16)}

/* ---------------------------------------------------------------- 10 THEMES */
.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.7rem,1.5vw,1rem)}
.theme-card{position:relative;overflow:hidden;border-radius:var(--r-card);min-height:220px;display:flex;align-items:flex-end;padding:1.1rem;color:#fff;isolation:isolate;transition:transform .5s var(--ease)}
.theme-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1s var(--ease)}
.theme-card::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(4,16,13,.9) 6%,rgba(4,16,13,.35) 52%,rgba(4,16,13,.08) 100%)}
.theme-card:hover{transform:translateY(-4px)}
.theme-card:hover img{transform:scale(1.07)}
.theme-card h3{font-size:1.1rem;line-height:1.15}
.theme-card p{font-size:.76rem;color:rgba(255,255,255,.76);margin-top:.3rem;line-height:1.45;display:none}
.theme-card:hover p{display:block}
.theme-card span{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;color:var(--saffron-soft);margin-top:.5rem}

/* ---------------------------------------------------------------- 11 MONTHS */
.month-chart{display:grid;grid-template-columns:repeat(12,1fr);gap:.35rem;align-items:end;margin-top:1.6rem}
.month-bar{display:grid;gap:.45rem;justify-items:center;cursor:pointer;background:none;border:0;padding:0}
.month-bar .b{width:100%;border-radius:8px 8px 4px 4px;background:var(--bg-3);position:relative;transition:background .35s,transform .35s var(--ease);min-height:8px}
.month-bar .b::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,var(--saffron-soft),var(--saffron-deep));opacity:0;transition:opacity .35s}
.month-bar:hover .b{transform:translateY(-3px)}
.month-bar[aria-selected="true"] .b::before{opacity:1}
.month-bar[aria-selected="true"] .m{color:var(--fg);font-weight:800}
.month-bar .m{font-size:.66rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3);transition:color .3s}
.month-bar.now .m::after{content:'';display:block;width:4px;height:4px;border-radius:50%;background:var(--chinar);margin:.15rem auto 0}
.month-panel{margin-top:1.5rem;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-xcard);overflow:hidden;display:grid;grid-template-columns:.9fr 1.1fr}
.month-panel-media{position:relative;min-height:260px}
.month-panel-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.month-panel-body{padding:clamp(1.2rem,3vw,2.2rem);display:grid;gap:.6rem;align-content:center}
.month-panel-body h3{font-size:var(--t-2)}
.month-panel-body p{font-size:.9rem;color:var(--fg-3)}
.month-list{display:grid;gap:.4rem;margin-top:.4rem}
.month-list a{display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;border-radius:10px;border:1px solid var(--line);transition:background .25s,border-color .25s}
.month-list a:hover{background:var(--bg-3);border-color:transparent}
.month-list strong{font-size:.84rem;font-weight:600}
.month-list span{font-size:.72rem;color:var(--fg-3);margin-left:auto;white-space:nowrap}

/* ----------------------------------------------------------- 12 DESTINATIONS */
.region-head{display:flex;align-items:baseline;gap:.8rem;margin-bottom:1.1rem}
.region-head h3{font-size:var(--t-2)}
.region-head span{font-size:.74rem;font-weight:700;color:var(--fg-3);letter-spacing:.08em;text-transform:uppercase}
.dest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.7rem,1.5vw,1rem)}
.dest{position:relative;overflow:hidden;border-radius:var(--r-card);min-height:260px;display:flex;align-items:flex-end;padding:1.1rem;color:#fff;isolation:isolate;text-align:left}
.dest img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1s var(--ease)}
.dest::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(4,16,13,.92) 4%,rgba(4,16,13,.28) 55%,transparent 100%)}
.dest:hover img{transform:scale(1.07)}
.dest-body{display:grid;gap:.15rem}
.dest-region{font-size:.62rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--saffron-soft)}
.dest h4{font-family:var(--font-display);font-size:1.3rem;font-weight:500;line-height:1.1}
.dest p{font-size:.76rem;color:rgba(255,255,255,.78);line-height:1.45}
.dest-meta{display:flex;gap:.6rem;font-size:.68rem;color:rgba(255,255,255,.66);margin-top:.35rem;flex-wrap:wrap}
.dest-meta span{display:inline-flex;align-items:center;gap:.25rem}
.dest-meta svg{width:11px;height:11px}

/* ----------------------------------------------------------------- 13 PROOF */
.proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,3vw,2.4rem);align-items:center}
.platforms{display:grid;gap:.6rem}
.platform{display:flex;align-items:center;gap:.9rem;padding:.9rem 1rem;border-radius:var(--r);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);transition:background .3s,transform .3s var(--ease)}
.platform:hover{background:rgba(255,255,255,.11);transform:translateX(4px)}
.platform b{font-family:var(--font-display);font-size:1.3rem;color:var(--saffron-soft);font-weight:500;line-height:1}
.platform div{display:grid;line-height:1.3}
.platform strong{font-size:.86rem;font-weight:600}
.platform span{font-size:.72rem;color:rgba(246,241,231,.6)}
.platform svg{width:14px;height:14px;margin-left:auto;opacity:.5}
/* light variant: used outside the pine band */
.section:not(.section-pine) .platform{background:var(--card);border-color:var(--line);}
.section:not(.section-pine) .platform:hover{background:var(--bg-3)}
.section:not(.section-pine) .platform b{color:var(--accent)}
.section:not(.section-pine) .platform span{color:var(--fg-3)}
.section:not(.section-pine) .platform svg{opacity:.4;color:var(--fg-3)}
.quote{background:var(--bg-2);color:var(--fg);border:1px solid var(--line);border-radius:var(--r-card);padding:1.5rem;display:grid;gap:.9rem}
.quote-who{color:var(--fg)}
.quote-who strong{color:var(--fg)}
.quote-who div span{color:var(--fg-3)}
.quote blockquote{color:var(--fg-2)}
/* copy on dark pine bands */
.section-pine .muted,.section-pine p.muted,.section-pine .note{color:rgba(246,241,231,.66)}
.section-pine .eyebrow{color:var(--saffron-soft)}
.quote-mark{font-family:var(--font-display);font-size:3rem;line-height:.6;color:var(--accent);opacity:.45}
.quote blockquote{font-family:var(--font-display);font-size:1.06rem;line-height:1.5;letter-spacing:-.01em;color:var(--fg-2)}
.quote-who{display:flex;align-items:center;gap:.6rem;margin-top:.2rem}
.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.74rem;background:linear-gradient(140deg,var(--pine-3),var(--pine-2));color:#fff;flex:none}
.quote-who strong{font-size:.82rem;display:block}
.quote-who span{font-size:.7rem;color:var(--fg-3)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}
.stat{background:var(--bg-2);padding:clamp(1rem,2.5vw,1.8rem)}
.stat-num{font-family:var(--font-display);font-size:clamp(1.9rem,4vw,2.9rem);line-height:1;letter-spacing:-.03em;display:flex;align-items:baseline;gap:.05rem}
.stat-num small{font-size:.42em;color:var(--accent)}
.stat-l{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin-top:.5rem}

.values{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1rem,2vw,1.6rem)}
.value{padding:1.2rem;border-radius:var(--r);border:1px solid var(--line);background:var(--card)}
.value h4{font-size:1.02rem;margin-bottom:.4rem}
.value p{font-size:.86rem;color:var(--fg-3);line-height:1.55}

/* ----------------------------------------------------------------- 14 BLOG */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.5rem)}
.post{display:grid;gap:.6rem;align-content:start}
.post-media{overflow:hidden;border-radius:var(--r);aspect-ratio:16/10}
.post-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.post:hover .post-media img{transform:scale(1.05)}
.post-meta{display:flex;gap:.7rem;font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-3)}
.post-meta span:first-child{color:var(--accent)}
.post h3{font-size:1.08rem;line-height:1.25}
.post p{font-size:.85rem;color:var(--fg-3);line-height:1.5}

/* ------------------------------------------------------------------ 15 CTA */
.cta-band{position:relative;overflow:hidden;border-radius:var(--r-xcard);padding:clamp(1.8rem,5vw,4rem);color:#fff;isolation:isolate;display:grid;gap:1.2rem;justify-items:start}
.cta-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.cta-band::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(5,20,16,.94) 8%,rgba(5,20,16,.6) 55%,rgba(5,20,16,.22))}
.cta-band h2{font-size:var(--t-4);max-width:22ch}
.cta-band p{max-width:48ch;color:rgba(255,255,255,.82)}

/* ----------------------------------------------------------------- 16 FOOTER */
.footer{background:var(--pine-2);color:rgba(246,241,231,.72);padding-block:clamp(2.4rem,6vw,4rem) 1.4rem;position:relative;overflow:hidden}
.footer a{transition:color .25s}
.footer a:hover{color:var(--saffron-soft)}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.15fr;gap:clamp(1.4rem,3.5vw,2.6rem)}
.footer-brand .brand-name{color:#fbf8f1}
.footer-brand p{font-size:.85rem;margin-top:.9rem;max-width:32ch;line-height:1.6}
.footer-brand .logo-mark{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:var(--saffron-soft)}
.footer-col h4{font-family:var(--font-sans);font-size:.64rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:rgba(246,241,231,.45);margin-bottom:.9rem}
.footer-col ul{display:grid;gap:.5rem;font-size:.855rem}
.footer-contact li{display:flex;gap:.55rem;font-size:.855rem;line-height:1.5}
.footer-contact svg{width:14px;height:14px;color:var(--saffron-soft);flex:none;margin-top:.28rem}
.socials{display:flex;gap:.45rem;margin-top:1.1rem}
.socials a{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);color:#f6f1e7;transition:background .3s,transform .3s,color .3s}
.socials a:hover{background:var(--saffron);border-color:transparent;color:#1d1405;transform:translateY(-3px)}
.socials svg{width:15px;height:15px}
.footer-bottom{margin-top:clamp(1.8rem,4vw,3rem);padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.75rem;color:rgba(246,241,231,.5)}
.footer-bottom nav{display:flex;gap:1.1rem;flex-wrap:wrap}
.footer-mark{position:absolute;right:-1%;bottom:-8%;font-family:var(--font-display);font-size:clamp(5rem,17vw,14rem);color:rgba(255,255,255,.03);pointer-events:none;line-height:1;letter-spacing:-.04em;user-select:none}

/* --------------------------------------------------------------- 17 OVERLAYS */
.fabs{position:fixed;right:clamp(.85rem,2.2vw,1.5rem);bottom:clamp(.85rem,2.2vw,1.5rem);z-index:180;display:grid;gap:.5rem;justify-items:end}
.fab{width:clamp(48px,12vw,52px);height:clamp(48px,12vw,52px);border-radius:50%;display:grid;place-items:center;background:var(--pine);color:#fff;box-shadow:var(--shadow-float);position:relative;transition:transform .35s var(--ease),background .3s}
.fab:hover{transform:translateY(-3px) scale(1.04)}
.fab svg{width:22px;height:22px}
.fab-wa{background:#25d366;color:#06301a}
.fab-wa::before{content:'';position:absolute;inset:0;border-radius:50%;background:#25d366;animation:pulse 2.8s ease-out infinite;z-index:-1}
@keyframes pulse{0%{transform:scale(1);opacity:.5}70%,100%{transform:scale(1.75);opacity:0}}
.fab-top{width:42px;height:42px;background:var(--bg-2);color:var(--fg);border:1px solid var(--line-2);opacity:0;pointer-events:none;transform:translateY(10px)}
.fab-top.on{opacity:1;pointer-events:auto;transform:none}
.fab-top svg{width:17px;height:17px}
.fab-label{position:absolute;right:calc(100% + .55rem);top:50%;transform:translateY(-50%);background:var(--pine);color:#fff;font-size:.7rem;font-weight:700;padding:.3rem .55rem;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
.fab:hover .fab-label{opacity:1;transform:translateY(-50%) translateX(-2px)}

.overlay{position:fixed;inset:0;z-index:260;background:rgba(5,20,16,.58);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);display:grid;place-items:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .35s;overflow-y:auto}
.overlay.open{opacity:1;pointer-events:auto}
.modal{width:min(900px,100%);max-height:92svh;overflow-y:auto;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-xcard);box-shadow:var(--shadow-xl);transform:translateY(18px) scale(.985);opacity:0;transition:transform .45s var(--ease),opacity .35s;position:relative}
.overlay.open .modal{transform:none;opacity:1}
.modal-wide{width:min(1120px,100%)}
.modal-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.2rem;background:var(--bg-2);border-bottom:1px solid var(--line)}
.modal-head h3{font-size:1.05rem}
.modal-body{padding:clamp(1rem,2.5vw,1.7rem)}
.x-btn{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-2);transition:background .25s,transform .3s}
.x-btn:hover{background:var(--bg-3);transform:rotate(90deg)}
.x-btn svg{width:15px;height:15px}

/* itinerary sheet */
.itin-hero{position:relative;aspect-ratio:21/9;overflow:hidden}
.itin-hero img{width:100%;height:100%;object-fit:cover}
.itin-hero-body{position:absolute;inset:auto 0 0 0;padding:clamp(1rem,3vw,1.7rem);padding-top:6rem;color:#fff;background:linear-gradient(rgba(4,16,13,0),rgba(4,16,13,.55) 42%,rgba(4,16,13,.95))}
.itin-hero-body h2,.itin-hero-body h3{color:#fff}
.itin-hero-body h2{font-size:var(--t-2);max-width:26ch}
.itin-meta{display:flex;gap:1.1rem;flex-wrap:wrap;margin-top:.55rem;font-size:.78rem;color:rgba(255,255,255,.84)}
.itin-meta span{display:inline-flex;align-items:center;gap:.32rem}
.itin-meta svg{width:13px;height:13px;color:var(--saffron-soft)}
.itin-cols{display:grid;grid-template-columns:1.5fr .85fr;gap:1.6rem;align-items:start}
.itin-side{position:sticky;top:1rem;background:var(--bg-3);border-radius:var(--r);padding:1.1rem;display:grid;gap:.7rem}
.itin-side dl{display:grid;gap:.5rem;font-size:.82rem}
.itin-side dt{font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3)}
.itin-side dd{font-weight:600}
.route-pill{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;font-size:.72rem;font-weight:600;color:var(--fg-2)}
.route-pill i{width:5px;height:5px;border-radius:50%;background:var(--accent)}
.day{display:grid;grid-template-columns:54px 1fr;gap:.9rem;padding-block:1rem;border-bottom:1px dashed var(--line-2)}
.day:last-child{border-bottom:0}
.day-n{font-family:var(--font-display);font-size:.9rem;color:var(--accent);border:1px solid var(--line-2);border-radius:10px;height:38px;display:grid;place-items:center;font-weight:600;background:var(--bg-2)}
.day h4{font-family:var(--font-sans);font-size:.93rem;font-weight:700;letter-spacing:0;line-height:1.35}
.day p{font-size:.85rem;color:var(--fg-3);margin-top:.3rem;line-height:1.55}
.day-tags{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.45rem}
.day-tags span{font-size:.66rem;font-weight:600;padding:.2rem .45rem;border-radius:6px;background:var(--bg-3);color:var(--fg-2)}
.day-facts{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:.45rem;font-size:.7rem;color:var(--fg-3)}
.day-facts span{display:inline-flex;align-items:center;gap:.25rem}
.day-facts svg{width:11px;height:11px;color:var(--accent)}
.incl{display:grid;grid-template-columns:1fr 1fr;gap:.45rem 1.2rem;margin-top:.7rem}
.incl li{display:flex;gap:.45rem;font-size:.83rem;color:var(--fg-2);line-height:1.5}
.incl svg{width:14px;height:14px;flex:none;margin-top:.18rem}
.incl .yes svg{color:var(--moss)}
.incl .no svg{color:var(--chinar)}

/* palette */
.palette{position:fixed;inset:0;z-index:280;display:grid;place-items:start center;padding:11vh 1rem 1rem;background:rgba(5,20,16,.52);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .3s}
.palette.open{opacity:1;pointer-events:auto}
.palette-box{width:min(640px,100%);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-xl);overflow:hidden;transform:translateY(-12px);transition:transform .35s var(--ease)}
.palette.open .palette-box{transform:none}
.palette-input{display:flex;align-items:center;gap:.65rem;padding:.9rem 1.05rem;border-bottom:1px solid var(--line)}
.palette-input svg{width:17px;height:17px;color:var(--fg-3);flex:none}
.palette-input input{border:0;background:none;outline:none;width:100%;font-size:1rem}
.palette-list{max-height:52vh;overflow-y:auto;padding:.45rem}
.p-group{font-size:.62rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);padding:.6rem .7rem .25rem}
.p-item{display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;padding:.6rem .7rem;border-radius:10px;font-size:.875rem;font-weight:500;transition:background .2s}
.p-item:hover,.p-item.active{background:var(--bg-3)}
.p-item svg{width:15px;height:15px;color:var(--accent);flex:none}
#planMatchOut .p-item svg{width:14px;height:14px}
#planMatchOut .p-item{padding:.55rem .65rem}
.p-item .k{margin-left:auto;font-size:.64rem;color:var(--fg-3);border:1px solid var(--line-2);padding:.1rem .35rem;border-radius:5px;white-space:nowrap}
.palette-hint{display:flex;gap:1rem;padding:.55rem 1rem;border-top:1px solid var(--line);font-size:.68rem;color:var(--fg-3)}

/* concierge */
.concierge{position:fixed;right:clamp(.85rem,2.2vw,1.5rem);bottom:calc(clamp(.85rem,2.2vw,1.5rem) + 112px);width:min(376px,calc(100vw - 1.7rem));z-index:190;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-xl);overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;max-height:min(560px,76svh);transform:translateY(16px) scale(.97);opacity:0;pointer-events:none;transition:transform .45s var(--ease),opacity .3s;transform-origin:bottom right}
.concierge.open{transform:none;opacity:1;pointer-events:auto}
.concierge-head{display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem;background:linear-gradient(120deg,var(--pine-2),var(--pine-3));color:#fff}
.concierge-head .avatar{width:32px;height:32px;font-size:.66rem;background:rgba(255,255,255,.16)}
.concierge-head strong{font-size:.85rem;display:block}
.concierge-head span{font-size:.66rem;opacity:.72;display:flex;align-items:center;gap:.3rem}
.dot{width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.25)}
.concierge-head button{margin-left:auto;color:#fff;opacity:.85}
.concierge-head svg{width:15px;height:15px}
.chat-log{padding:.9rem;display:grid;gap:.5rem;overflow-y:auto;align-content:start}
.msg{max-width:86%;padding:.6rem .8rem;border-radius:13px;font-size:.83rem;line-height:1.5}
.msg-bot{background:var(--bg-3);border-top-left-radius:4px;justify-self:start}
.msg-user{background:var(--pine);color:#f6f1e7;border-top-right-radius:4px;justify-self:end}
.msg a{color:var(--accent);font-weight:700;text-decoration:underline}
.chat-quick{display:flex;gap:.3rem;flex-wrap:wrap;padding:0 .9rem .6rem}
.chat-quick button{font-size:.7rem;font-weight:600;padding:.35rem .6rem;border-radius:999px;border:1px solid var(--line-2);color:var(--fg-2);transition:background .25s,color .25s}
.chat-quick button:hover{background:var(--pine);color:#fff;border-color:transparent}
.chat-form{display:flex;gap:.35rem;padding:.6rem;border-top:1px solid var(--line)}
.chat-form input{flex:1;border:1px solid var(--line-2);background:var(--bg);border-radius:999px;padding:.5rem .85rem;font-size:.83rem;outline:none}
.chat-form input:focus{border-color:var(--accent)}
.chat-form button{width:36px;height:36px;border-radius:50%;background:var(--pine);color:#fff;display:grid;place-items:center;flex:none}
.chat-form svg{width:15px;height:15px}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:290;background:rgba(4,14,11,.95);display:grid;place-items:center;padding:1.2rem;opacity:0;pointer-events:none;transition:opacity .3s}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox img{max-height:86svh;border-radius:var(--r)}
.lightbox-cap{color:rgba(255,255,255,.78);font-size:.8rem;margin-top:.7rem;text-align:center}
.lightbox-x{position:absolute;top:1.1rem;right:1.1rem;color:#fff;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3)}
.lightbox-x svg{width:17px;height:17px}

/* toast */
.toast{position:fixed;left:50%;bottom:1.3rem;transform:translate(-50%,20px);background:var(--pine);color:#f6f1e7;padding:.75rem 1.15rem;border-radius:999px;font-size:.82rem;font-weight:600;box-shadow:var(--shadow-float);z-index:300;opacity:0;pointer-events:none;transition:opacity .3s,transform .4s var(--ease);display:flex;align-items:center;gap:.45rem;max-width:calc(100vw - 2rem)}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast svg{width:15px;height:15px;color:var(--saffron-soft);flex:none}

/* forms */
.input,.select,.textarea{width:100%;padding:.8rem .95rem;border-radius:12px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--fg);font-size:.9rem;transition:border-color .25s,box-shadow .25s}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--saffron);box-shadow:0 0 0 4px rgba(230,160,60,.16)}
.textarea{min-height:112px;resize:vertical}
.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%236b6257' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .95rem center;padding-right:2.3rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.field{display:grid;gap:.3rem}
.field-full{grid-column:1/-1}
.field label,.field>span.lbl{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3)}
.note{font-size:.72rem;color:var(--fg-3)}
.std-opts{display:grid;gap:.4rem}
.std-opt{display:flex;gap:.6rem;align-items:flex-start;padding:.65rem .8rem;border-radius:12px;border:1px solid var(--line-2);cursor:pointer;transition:border-color .25s,background .25s}
.std-opt:hover{background:var(--bg-3)}
.std-opt input{margin-top:.22rem;accent-color:var(--saffron-deep);flex:none}
.std-opt>span{display:grid;gap:.1rem}
.std-opt strong{font-size:.84rem;display:block;letter-spacing:.01em;text-transform:none}
.std-opt span{font-size:.74rem;color:var(--fg-3);line-height:1.4}
.std-opt:has(input:checked){border-color:var(--saffron);background:rgba(230,160,60,.08)}
.addon-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.addon{display:flex;gap:.5rem;align-items:flex-start;padding:.55rem .7rem;border-radius:10px;border:1px solid var(--line);cursor:pointer;transition:background .25s,border-color .25s}
.addon:hover{background:var(--bg-3)}
.addon input{margin-top:.2rem;accent-color:var(--saffron-deep);flex:none}
.addon strong{font-size:.79rem;display:block;font-weight:600}
.addon small{font-size:.7rem;color:var(--fg-3);line-height:1.35;display:block}
.brief{display:grid;gap:.45rem;font-size:.83rem}
.brief div{display:flex;justify-content:space-between;gap:.7rem;border-bottom:1px dashed var(--line-2);padding-bottom:.4rem}
.brief dt{color:var(--fg-3);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.brief dd{font-weight:600;text-align:right}

/* accordion */
.acc{display:grid;gap:.5rem;max-width:60rem}
.acc-item{border:1px solid var(--line);border-radius:var(--r);background:var(--card);overflow:hidden;transition:border-color .3s,box-shadow .3s}
.acc-item[open]{border-color:var(--line-2);box-shadow:var(--shadow-lift)}
.acc-item summary{list-style:none;cursor:pointer;padding:1rem 1.15rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:600;font-size:.93rem}
.acc-item summary::-webkit-details-marker{display:none}
.acc-item summary::after{content:'+';font-family:var(--font-display);font-size:1.25rem;color:var(--accent);transition:transform .35s var(--ease);flex:none;line-height:1}
.acc-item[open] summary::after{transform:rotate(45deg)}
.acc-body{padding:0 1.15rem 1.1rem;color:var(--fg-3);font-size:.88rem;line-height:1.6}

/* timeline */
.timeline{display:grid;gap:0;position:relative;margin-top:1.5rem}
.tl{display:grid;grid-template-columns:88px 1fr;gap:1rem;padding-block:1rem;border-bottom:1px solid var(--line)}
.tl:last-child{border-bottom:0}
.tl-year{font-family:var(--font-display);font-size:1.15rem;color:var(--accent);font-weight:600}
.tl h4{font-size:.95rem;font-weight:700;font-family:var(--font-sans)}
.tl p{font-size:.85rem;color:var(--fg-3);margin-top:.2rem}

/* page hero */
.page-hero{position:relative;margin-top:calc(var(--header-h) * -1);padding-top:calc(var(--header-h) + clamp(2.5rem,7vw,5rem));padding-bottom:clamp(2.2rem,5vw,4rem);color:#fff;overflow:hidden;isolation:isolate}
.page-hero>picture{position:absolute;inset:0;z-index:-2;display:block}
.page-hero>picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,20,16,.8) 0%,rgba(5,20,16,.5) 45%,rgba(5,20,16,.94) 100%)}
.page-hero h1{font-size:var(--t-4);margin-top:.9rem;max-width:22ch}
.page-hero p{max-width:52ch;color:rgba(255,255,255,.84);margin-top:.9rem}
.crumb{display:flex;gap:.45rem;font-size:.72rem;color:rgba(255,255,255,.62)}
.crumb a:hover{color:var(--saffron-soft)}
.crumb span:last-child{color:rgba(255,255,255,.9)}
.count-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .8rem;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(12px);font-size:.72rem;font-weight:600}

/* toolbar */
.toolbar{display:flex;gap:.8rem;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.toolbar-row{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}
.results-line{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;font-size:.8rem;color:var(--fg-3);padding-block:.9rem}
.results-line b{color:var(--fg);font-weight:700}
.empty{grid-column:1/-1;text-align:center;padding:3rem 1rem}
.empty h3{font-size:1.3rem;margin-bottom:.4rem}
.empty p{color:var(--fg-3);max-width:40ch;margin:0 auto 1.1rem}

/* --------------------------------------------------------------- 18 UTILS */
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease-out),transform .9s var(--ease-out);transition-delay:var(--d,0ms);will-change:opacity,transform}
[data-reveal].in{opacity:1;transform:none}
[data-reveal="left"]{transform:translateX(-28px)}
[data-reveal="right"]{transform:translateX(28px)}
[data-reveal="scale"]{transform:scale(.965)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.6rem}.mt-4{margin-top:2.4rem}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.6rem,4vw,3.6rem);align-items:center}
.split-rev>:first-child{order:2}
.split-media{position:relative}
.split-media img{border-radius:var(--r-card);box-shadow:var(--shadow-float);width:100%;aspect-ratio:4/3.2;object-fit:cover}
.split-badge{position:absolute;bottom:-1.2rem;left:-1.2rem;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);padding:.85rem 1.05rem;box-shadow:var(--shadow-lift);display:grid;gap:.1rem;max-width:200px}
.split-badge strong{font-family:var(--font-display);font-size:1.4rem;letter-spacing:-.02em}
.split-badge span{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);font-weight:700}
.feat-list{display:grid;gap:.8rem;margin-top:1.3rem}
.feat-list li{display:flex;gap:.7rem;align-items:flex-start}
.fi{flex:none;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--bg-3);color:var(--accent)}
.fi svg{width:16px;height:16px}
.feat-list strong{display:block;font-size:.9rem;font-weight:600}
.feat-list span{font-size:.82rem;color:var(--fg-3);line-height:1.5}
.marquee{border-block:1px solid var(--line);background:var(--bg-2);overflow:hidden;padding-block:.8rem;display:flex;gap:2.5rem;user-select:none;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee-track{display:flex;gap:2.5rem;flex:none;animation:marquee 40s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--font-display);font-size:.95rem;color:var(--fg-2);white-space:nowrap}
.marquee-item::after{content:'✦';color:var(--accent);font-size:.65rem}
@keyframes marquee{to{transform:translateX(-100%)}}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;counter-reset:s}
.step{position:relative;padding-top:2.4rem}
.step::before{counter-increment:s;content:'0' counter(s);position:absolute;top:0;left:0;font-family:var(--font-display);font-size:1.4rem;color:var(--accent)}
.step::after{content:'';position:absolute;top:1rem;left:3rem;right:-1.4rem;height:1px;background:var(--line-2)}
.step:last-child::after{display:none}
.step h3{font-size:1.02rem;margin-bottom:.35rem}
.step p{font-size:.84rem;color:var(--fg-3)}

/* ------------------------------------------------------------ 19 RESPONSIVE */
@media(max-width:1240px){
  .nav{gap:0}
  .nav-link{padding:.5rem .55rem;font-size:.81rem}
  .nav-link::after{left:.55rem;right:.55rem}
  .header-actions{gap:.15rem}
}
@media(max-width:1080px){
  .nav{display:none}.burger{display:grid}.header-cta{display:none}
  .grid-trips{grid-template-columns:repeat(2,1fr)}
  .theme-grid{grid-template-columns:repeat(2,1fr)}
  .dest-grid{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .step:nth-child(2)::after{display:none}
  .footer-grid{grid-template-columns:1fr 1fr}
  .blog-grid{grid-template-columns:1fr 1fr}
  .matcher-body{grid-template-columns:1fr 1fr}
  .matcher-btn{grid-column:1/-1;min-height:48px}
  .month-panel{grid-template-columns:1fr}
  .month-panel-media{min-height:200px}
  .proof-grid{grid-template-columns:1fr}
  .itin-cols{grid-template-columns:1fr!important}
  .itin-side{position:static!important}
}
@media(max-width:860px){
  .split{grid-template-columns:1fr}
  .split-rev>:first-child{order:0}
  .split-badge{left:1rem;bottom:-1rem;padding:.7rem .9rem}
  .hero-right{display:none}
  .hero{min-height:93svh}
  .hero-scroll{display:none}
  .values{grid-template-columns:1fr}
  .incl{grid-template-columns:1fr}
  .footer-mark{display:none}
}
@media(max-width:640px){
  :root{--header-h:66px}
  .hero h1{font-size:clamp(2.1rem,10vw,2.9rem);max-width:100%}
  .hero h1 .accent{display:inline}
  .hero-sub{font-size:.93rem}
  .hero-row .btn{flex:1 1 auto}
  .hero-badge{font-size:.65rem;padding:.38rem .7rem .38rem .4rem}
  .brand-sub{display:none}
  .matcher-body{grid-template-columns:1fr 1fr;padding:.5rem}
  .matcher-foot{font-size:.66rem}
  .grid-trips,.blog-grid{grid-template-columns:1fr}
  .theme-grid,.dest-grid{grid-template-columns:1fr 1fr}
  .theme-card,.dest{min-height:180px}
  .theme-card p{display:none!important}
  .stats{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr;gap:1.1rem}
  .step::after{display:none}
  .footer-grid{grid-template-columns:1fr}
  .month-chart{gap:.2rem}
  .month-bar .m{font-size:.56rem;letter-spacing:0}
  .month-list span{display:none}
  .form-grid,.addon-grid{grid-template-columns:1fr}
  .day{grid-template-columns:42px 1fr;gap:.7rem}
  .itin-hero{aspect-ratio:16/11}
  .concierge{bottom:calc(clamp(.85rem,2.2vw,1.5rem) + 108px);max-height:72svh}
  .section-head h2{font-size:clamp(1.5rem,6.6vw,2rem)}
  .cta-band h2{font-size:clamp(1.6rem,7vw,2.2rem)}
  .acc-item summary{font-size:.87rem;padding:.85rem 1rem}
  .tl{grid-template-columns:64px 1fr}
  .toolbar{align-items:stretch}
  .toolbar-row{width:100%}
  .toolbar-row .input,.toolbar-row .select{flex:1;min-width:0}
}
@media(max-width:420px){
  .header-actions .icon-btn{width:36px;height:36px}
  .logo-mark{width:36px;height:36px;border-radius:11px}
  .brand-name{font-size:1rem}
  .fab svg{width:20px;height:20px}
  .theme-grid,.dest-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  .matcher-body{grid-template-columns:1fr}
  .month-bar .m{font-size:.52rem}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  [data-reveal]{opacity:1!important;transform:none!important}
}
@media print{
  .header,.fabs,.concierge,.matcher,.overlay,.toast,.progress,.footer .socials{display:none!important}
  body{background:#fff;color:#000}
  .modal{box-shadow:none;border:0;max-height:none}
}

/* ------------------------------------------------- 20 MOBILE LINK MENUS (JS) */
.menu-more{display:none}
.collapsed>.menu-hidden{display:none!important}
@media(max-width:640px){
  .menu-more{display:block;width:100%;margin:.6rem 0 0;padding:.62rem .9rem;border:1px dashed var(--line-2);border-radius:12px;font-size:.76rem;font-weight:700;letter-spacing:.04em;color:var(--fg-2);background:transparent;transition:border-color .25s,color .25s}
  .menu-more:hover{border-color:var(--saffron);color:var(--accent)}
  .footer .menu-more{margin:.5rem 0 .2rem}
}

/* ------------------------------------------------- 21 BRAND LOGO (real asset) */
/* The supplied artwork already contains the wordmark, so it is used alone -
   no typeset brand text beside it. Two files swap on background.            */
.brand{display:flex;align-items:center;gap:0;padding-block:.3rem}
/* the supplied lockup already sets the name, so no typeset brand text is used.
   Sized so the wordmark inside it stays legible: ~20px cap height in a 66px bar */
.brand-mark{display:block;height:clamp(44px,5.8vw,54px);width:auto;max-width:none;flex:none;
  transition:height .35s var(--ease),transform .5s var(--ease)}
.brand-mark-light{display:none}
.header.stuck .brand-mark{height:clamp(38px,4.8vw,44px)}
body[data-overlay="true"] .header:not(.stuck) .brand-mark-dark{display:none}
body[data-overlay="true"] .header:not(.stuck) .brand-mark-light{display:block}
.brand .brand-text{display:none}
.brand:hover .brand-mark{transform:rotate(-5deg) scale(1.04)}
.footer-logo{display:block;margin-bottom:1rem}
.footer-logo img{height:62px;width:auto}
/* paths inside a stylesheet resolve against the stylesheet itself */
[data-theme="dark"] .footer-logo img,
.section-pine .footer-logo img{content:url("../img/logo/nisba-logo-light.png")}
.drawer-top .brand-mark{height:40px}
/* full lockup, given room to read */
.brand-lockup{display:block;height:auto;width:min(320px,72vw)}

/* --------------------------------------------- 22 "RIGHT NOW" MONTH + TEMP STRIP */
/* A light finish rather than a glass slab: a whisper of fill, a hairline border
   and a soft shadow, so it reads clearly on the photograph without becoming a box. */
.hero-now{display:flex;align-items:center;gap:clamp(.45rem,1.2vw,.85rem);flex-wrap:wrap;
  margin-top:clamp(.95rem,2.2vw,1.3rem);margin-bottom:clamp(1rem,2.4vw,1.35rem);
  padding:.62rem .85rem;color:#fff;
  background:linear-gradient(135deg,rgba(255,255,255,.13),rgba(255,255,255,.045) 55%,rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.16);border-radius:14px;
  box-shadow:0 14px 34px -26px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,255,255,.1)}
.now-temp{display:inline-flex;align-items:center;gap:.34rem;font-family:var(--font-display);
  font-size:clamp(1.05rem,1.9vw,1.28rem);line-height:1;font-weight:600;color:#21160a;
  letter-spacing:-.02em;padding:.3rem .56rem .32rem;border-radius:999px;
  background:linear-gradient(135deg,var(--saffron-soft),var(--saffron));
  box-shadow:0 6px 16px -8px rgba(230,160,60,.75);flex:none}
.now-temp small{font-family:var(--font-sans);font-size:.46rem;font-weight:800;letter-spacing:.11em;
  text-transform:uppercase;color:rgba(33,22,10,.62)}
.now-rule{width:1px;height:18px;background:rgba(255,255,255,.18);flex:none}
.now-where{display:flex;align-items:baseline;gap:.15rem .45rem;flex-wrap:wrap;flex:1 1 0;min-width:0}
.now-date{font-size:.58rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.7);white-space:nowrap}
.now-sky{font-size:.79rem;font-weight:600;color:#fff;text-shadow:0 1px 16px rgba(5,20,16,.45)}
.now-note{font-size:.66rem;color:rgba(255,255,255,.66);font-weight:500;white-space:nowrap}
.now-links{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-left:auto}
.now-links-l{font-size:.5rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;
  color:rgba(255,255,255,.55);white-space:nowrap}
.now-links a{display:inline-flex;align-items:baseline;gap:.3rem;font-size:.72rem;font-weight:600;color:#fff;
  white-space:nowrap;position:relative;transition:color .22s}
.now-links a::before{content:'';position:absolute;left:0;right:0;bottom:-3px;height:1px;
  background:currentColor;opacity:.3;transition:opacity .22s}
.now-links a:hover{color:var(--saffron-soft)}
.now-links a:hover::before{opacity:.9}
.now-links a i{font-style:normal;font-size:.56rem;font-weight:600;color:rgba(255,255,255,.55);letter-spacing:.02em}

@media(max-width:1080px){
  .now-links{margin-left:0;width:100%;padding-top:.1rem}
}
/* mobile: stack it, centre it, and give every row room to breathe */
@media(max-width:640px){
  .hero-now{flex-direction:column;align-items:center;text-align:center;
    gap:.5rem;padding:.78rem .8rem .85rem;border-radius:16px;
    margin-top:1.05rem;margin-bottom:1.05rem}
  .now-rule{display:none}
  .now-where{flex-direction:column;align-items:center;gap:.16rem;flex:none;width:100%}
  .now-where .now-note{display:none}
  .now-note{white-space:normal}
  .now-links{justify-content:center;gap:.4rem .85rem;width:100%;
    padding-top:.5rem;border-top:1px solid rgba(255,255,255,.13)}
  .now-links-l{display:none}
  .now-links a{font-size:.75rem}
}

/* ---------------------------------------------------------- 23 REVIEW CARDS */
.quote-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.66rem;color:var(--fg-3)}
.quote-src{font-weight:800;letter-spacing:.1em;text-transform:uppercase;font-size:.6rem;padding:.16rem .45rem;border-radius:6px;
  background:rgba(44,122,99,.14);color:var(--moss)}
.quote[data-source="tripadvisor"] .quote-src{background:rgba(184,73,42,.14);color:var(--chinar)}
.quote-head time{margin-left:auto;font-weight:600;white-space:nowrap}
.stars{display:inline-flex;gap:1px;color:var(--saffron-deep)}
.stars i{font-style:normal;font-size:.68rem;letter-spacing:0}
.review-wall{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-top:1.6rem}
.review-wall .quote blockquote{font-size:.95rem;line-height:1.55}
.review-wall .quote:nth-child(-n+2) blockquote{font-size:1.02rem}

/* ----------------------------------------------------------- responsive bits */
@media(max-width:860px){
  .review-wall{grid-template-columns:1fr}
}

/* full brand lockup on the About hero */
.about-lockup{margin-top:clamp(1.6rem,4vw,2.6rem);padding-top:clamp(1.2rem,3vw,1.8rem);border-top:1px solid rgba(255,255,255,.22);max-width:380px}
.about-lockup img{width:100%;height:auto}

/* transparent PNGs must not inherit the placeholder background from the reset */
.brand-mark,.footer-logo img,.about-lockup img{background:none!important}
/* hero eyebrow over photography needs the extra weight */
.hero .eyebrow{color:var(--saffron-soft);text-shadow:0 1px 14px rgba(5,20,16,.7)}

/* reviews page: scores pinned to the top of a long wall */
#reviewWall{grid-template-columns:1fr!important}
.proof-grid.align-start{align-items:start}
.review-total{font-size:.82rem;color:var(--fg-2);margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--line-2)}
.review-total b{font-family:var(--font-display);font-size:1.1rem;color:var(--accent);font-weight:500}

/* footer sits on pine in both themes, so it always needs the light lockup */
.footer .footer-logo img{filter:none}
.footer .footer-logo{opacity:.98}
.footer-brand p{color:rgba(246,241,231,.72)}
.footer .footer-mark{color:rgba(255,255,255,.05)}

/* link arrow on the pine proof band was rendering in near-black */
.section-pine .link-arrow{color:var(--saffron-soft)}
.section-pine .link-arrow:hover{color:#fff}
.section-pine .quote{background:#fbf7f0;color:#0a1613}
[data-theme="dark"] .section-pine .quote{background:#123f36;color:#f6f1e7}

/* the lockup carries a descender in the heart tail, so nudge it onto the optical centre */
.header .brand-mark{transform:translateY(1px)}
