/* ============================================================
   DESTINATION LORE — Premium edition (Editorial Luxury / Adriatic)
   Shared base for premium pages. Fraunces display + Plus Jakarta Sans.
   Load AFTER the two Google Fonts families. Pages add small inline
   <style> blocks only for page-unique pieces.
   ============================================================ */
:root{
  --paper:#F6F1E8;          /* warm cream */
  --paper-2:#EFE8DB;        /* deeper cream band */
  --surface:#FFFFFF;
  --surface-soft:#FCFAF4;
  --ink:#1B1A17;            /* deep espresso */
  --ink-soft:#3A372F;
  --muted:#736B5E;          /* muted brown-grey */
  --faint:#9A917F;
  --teal:#0E6E68;           /* Adriatic deep teal */
  --teal-bright:#15938B;
  --teal-wash:#E4EEEB;
  --terra:#B65A2C;          /* terracotta accent */
  --terra-soft:#C8743F;
  --gold:#B7892F;
  --line:rgba(27,26,23,.10);
  --line-soft:rgba(27,26,23,.06);
  --shadow-amb:0 22px 60px -28px rgba(40,33,22,.32);
  --shadow-soft:0 10px 34px -22px rgba(40,33,22,.30);
  --ease:cubic-bezier(.32,.72,0,1);
  --ease-soft:cubic-bezier(.22,1,.36,1);
  --mx:clamp(1.25rem,5vw,3rem);
  --maxw:1180px;
  --readw:46rem;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"Plus Jakarta Sans",system-ui,sans-serif;
  font-size:clamp(1.02rem,.55vw + .9rem,1.16rem);
  line-height:1.72;font-weight:400;letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
::selection{background:var(--teal);color:#fff}
img{max-width:100%;display:block}
a{color:var(--teal);text-decoration:none}

/* film grain overlay */
.grain{
  position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.038;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* reading progress */
.progress{
  position:fixed;top:0;left:0;height:2px;width:0;z-index:70;
  background:linear-gradient(90deg,var(--teal),var(--terra));
  transition:width .12s linear;
}

/* ---------- Floating glass nav ---------- */
.nav-wrap{position:fixed;top:0;left:0;right:0;z-index:55;display:flex;justify-content:center;
  padding:clamp(.8rem,2vw,1.4rem) var(--mx);pointer-events:none}
.nav{
  pointer-events:auto;display:flex;align-items:center;gap:clamp(1rem,3vw,2.2rem);
  background:rgba(252,250,244,.72);backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 14px 40px -24px rgba(40,33,22,.5);
  border-radius:999px;padding:.5rem .5rem .5rem 1.15rem;
  transition:transform .6s var(--ease),box-shadow .6s var(--ease),background .4s ease;
  max-width:calc(var(--maxw) + 1rem);width:100%;
}
.nav.scrolled{box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 18px 48px -22px rgba(40,33,22,.6)}
.nav__brand{display:flex;align-items:center;gap:.6rem;font-family:"Fraunces",serif;
  font-weight:600;font-size:1.05rem;color:var(--ink);letter-spacing:-.01em;margin-right:auto}
.nav__brand img{width:34px;height:34px}
.nav__links{display:flex;gap:1.6rem;list-style:none;margin:0;padding:0}
.nav__links a{color:var(--ink-soft);font-weight:500;font-size:.92rem;position:relative;padding:.2rem 0}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-2px;height:1.5px;width:0;
  background:var(--teal);transition:width .4s var(--ease)}
.nav__links a:hover{color:var(--teal)}
.nav__links a:hover::after{width:100%}
.nav__cta{display:inline-flex;align-items:center;gap:.55rem;background:var(--ink);color:#fff;
  border-radius:999px;padding:.55rem .55rem .55rem 1.05rem;font-weight:600;font-size:.9rem;
  transition:transform .4s var(--ease),background .4s ease}
.nav__cta .ic{width:30px;height:30px;border-radius:999px;background:rgba(255,255,255,.14);
  display:grid;place-items:center;transition:transform .4s var(--ease)}
.nav__cta:hover{background:var(--teal)}
.nav__cta:hover .ic{transform:translate(2px,-1px)}
.nav__cta:active{transform:scale(.97)}
.burger{display:none;width:42px;height:42px;border-radius:999px;border:none;cursor:pointer;
  background:transparent;position:relative}
.burger span{position:absolute;left:11px;right:11px;height:1.8px;background:var(--ink);
  transition:transform .5s var(--ease),opacity .3s ease;border-radius:2px}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){bottom:16px}
.burger.open span:nth-child(1){top:20px;transform:rotate(45deg)}
.burger.open span:nth-child(2){bottom:20px;transform:rotate(-45deg)}

/* mobile overlay menu */
.menu{position:fixed;inset:0;z-index:54;background:rgba(28,26,23,.55);
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;
  opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility .5s}
.menu.open{opacity:1;visibility:visible}
.menu a{font-family:"Fraunces",serif;font-size:clamp(2rem,9vw,3.2rem);color:#fff;font-weight:500;
  letter-spacing:-.02em;opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.menu.open a{opacity:1;transform:none}
.menu.open a:nth-child(1){transition-delay:.1s}
.menu.open a:nth-child(2){transition-delay:.16s}
.menu.open a:nth-child(3){transition-delay:.22s}
.menu.open a:nth-child(4){transition-delay:.28s}

/* ---------- shared primitives ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.7rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.24em;color:var(--teal);
  padding:.38rem .85rem;border-radius:999px;background:var(--teal-wash);
  border:1px solid rgba(14,110,104,.14)}
.eyebrow--light{color:#fff;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22)}
.section{padding-block:clamp(4rem,9vw,7.5rem)}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--mx)}
.read{max-width:var(--readw);margin-inline:auto}
h2,h3,h4{font-family:"Fraunces",serif;font-weight:600;letter-spacing:-.02em;color:var(--ink);line-height:1.12}
h2{font-size:clamp(2rem,4.4vw,3.2rem);margin:0 0 1.1rem}
h3{font-size:clamp(1.35rem,2.4vw,1.85rem);margin:2.6rem 0 .8rem;letter-spacing:-.015em}
h4{font-size:1.18rem}
.read p{margin:0 0 1.25rem;color:var(--ink-soft)}
.read ul,.read ol{margin:0 0 1.5rem;padding:0;list-style:none}
.read ul li{position:relative;padding-left:1.7rem;margin-bottom:.85rem;color:var(--ink-soft)}
.read ul li::before{content:"";position:absolute;left:.1rem;top:.62em;width:7px;height:7px;
  border-radius:50%;background:var(--terra);box-shadow:0 0 0 4px rgba(182,90,44,.12)}
.read ol{counter-reset:ol;list-style:none}
.read ol li{position:relative;padding-left:2.4rem;margin-bottom:1rem;color:var(--ink-soft);counter-increment:ol}
.read ol li::before{content:counter(ol);position:absolute;left:0;top:.05em;width:1.7rem;height:1.7rem;
  border-radius:.55rem;background:var(--teal-wash);color:var(--teal);font-family:"Fraunces",serif;
  font-weight:600;font-size:.85rem;display:grid;place-items:center}
.read a:not(.btn){border-bottom:1px solid rgba(14,110,104,.32);transition:border-color .3s,color .3s}
.read a:not(.btn):hover{color:var(--terra);border-color:var(--terra)}
.lead{font-family:"Fraunces",serif;font-size:clamp(1.3rem,2.2vw,1.65rem);line-height:1.5;
  font-weight:400;color:var(--ink);letter-spacing:-.01em}

/* section heading block */
.shead{max-width:var(--readw);margin:0 auto clamp(2rem,4vw,3rem)}
.shead.is-wide{max-width:none}
.shead.is-center{text-align:center;margin-inline:auto}
.shead .eyebrow{margin-bottom:1.1rem}
.shead p{color:var(--muted);margin:.5rem 0 0}

/* reveal */
.reveal{opacity:0;transform:translateY(32px);filter:blur(6px);
  transition:opacity .9s var(--ease-soft),transform .9s var(--ease-soft),filter .9s var(--ease-soft)}
.reveal.in{opacity:1;transform:none;filter:none}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100dvh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero__bg{position:absolute;inset:0;z-index:-2}
.hero__bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:heroZoom 18s var(--ease-soft) forwards}
@keyframes heroZoom{to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(20,18,14,.42) 0%,rgba(20,18,14,.12) 32%,rgba(20,18,14,.55) 78%,rgba(20,18,14,.86) 100%)}
.hero__inner{max-width:var(--maxw);margin-inline:auto;padding:0 var(--mx) clamp(3.5rem,8vw,6rem);width:100%}
.hero h1{font-family:"Fraunces",serif;color:#fff;font-weight:500;letter-spacing:-.025em;
  font-size:clamp(2.6rem,7vw,5.6rem);line-height:1.02;margin:1.3rem 0 0;max-width:18ch;
  text-shadow:0 2px 40px rgba(0,0,0,.3)}
.hero h1 em{font-style:italic;font-weight:400;color:#F2D9C4}
.hero__lead{color:rgba(255,255,255,.9);font-size:clamp(1.05rem,1.5vw,1.3rem);max-width:46ch;
  margin:1.6rem 0 0;line-height:1.6;text-shadow:0 1px 20px rgba(0,0,0,.4)}
.hero__meta{margin-top:1.8rem;color:rgba(255,255,255,.78);font-size:.92rem;display:flex;
  align-items:center;gap:.7rem;flex-wrap:wrap}
.hero__meta a{color:#fff;border-bottom:1px solid rgba(255,255,255,.4)}
.hero__meta .dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.5)}
.scrollcue{position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);z-index:1;
  color:rgba(255,255,255,.7);font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;
  display:flex;flex-direction:column;align-items:center;gap:.6rem}
.scrollcue .ln{width:1px;height:42px;background:linear-gradient(rgba(255,255,255,.7),transparent);
  animation:cue 2.2s var(--ease-soft) infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}40%{transform:scaleY(1);transform-origin:top}
  60%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- double-bezel card ---------- */
.bezel{background:rgba(27,26,23,.04);border:1px solid var(--line-soft);
  border-radius:1.9rem;padding:.5rem}
.bezel__core{background:var(--surface);border-radius:calc(1.9rem - .5rem);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.7),var(--shadow-soft);overflow:hidden}

/* ---------- author band ---------- */
.author{margin-top:-4.5rem;position:relative;z-index:2}
.author__card{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.2rem,3vw,2.2rem);
  align-items:center;padding:clamp(1.6rem,3vw,2.4rem)}
.author__badge{width:74px;height:74px;border-radius:999px;background:var(--teal);color:#fff;
  display:grid;place-items:center;font-family:"Fraunces",serif;font-size:1.7rem;font-weight:600;
  box-shadow:0 10px 24px -12px rgba(14,110,104,.7)}
.author__name{font-family:"Fraunces",serif;font-weight:600;font-size:1.15rem;margin:0}
.author__cred{color:var(--muted);font-size:.95rem;margin:.3rem 0 0;line-height:1.55}
.author__quote{grid-column:1/-1;font-family:"Fraunces",serif;font-style:italic;font-size:1.15rem;
  line-height:1.5;color:var(--ink);border-top:1px solid var(--line);padding-top:1.3rem;margin-top:.4rem}

/* intro */
.intro{padding-top:clamp(3rem,6vw,5rem)}
.updated{display:inline-flex;align-items:center;gap:.6rem;font-size:.82rem;color:var(--muted);
  background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.45rem 1rem;
  margin-bottom:1.8rem}
.updated .pip{width:7px;height:7px;border-radius:50%;background:#3a9d54;box-shadow:0 0 0 4px rgba(58,157,84,.16)}

/* ---------- facts strip ---------- */
.facts{display:flex;flex-wrap:wrap;gap:clamp(1.4rem,4vw,3.2rem);margin:2.4rem 0 0;
  padding:1.6rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fact__v{font-family:"Fraunces",serif;font-size:clamp(1.6rem,3vw,2.3rem);font-weight:600;
  color:var(--teal);line-height:1}
.fact__k{font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);
  margin-top:.4rem;font-weight:600}

/* ---------- TOC ---------- */
.toc{margin-top:2.4rem}
.toc__grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.toc__item{display:flex;align-items:baseline;gap:.9rem;padding:.85rem 1.1rem;border-radius:.9rem;
  transition:background .35s var(--ease),transform .35s var(--ease);color:var(--ink-soft)}
.toc__item:hover{background:var(--teal-wash);transform:translateX(4px)}
.toc__num{font-family:"Fraunces",serif;font-size:.8rem;color:var(--teal);font-weight:600;min-width:1.6rem}
.toc__label{font-weight:500;font-size:.98rem}

/* ---------- pull quote ---------- */
.pull{max-width:54rem;margin:clamp(3rem,6vw,5rem) auto;text-align:center;position:relative}
.pull__mark{font-family:"Fraunces",serif;font-size:5rem;line-height:0;color:var(--terra);
  opacity:.32;display:block;height:2.2rem}
.pull q{font-family:"Fraunces",serif;font-style:italic;font-weight:400;quotes:none;
  font-size:clamp(1.5rem,3.4vw,2.4rem);line-height:1.32;color:var(--ink);letter-spacing:-.015em}
.pull cite{display:block;margin-top:1.4rem;font-style:normal;font-size:.85rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted)}

/* ---------- photo break ---------- */
.photo{margin:clamp(3rem,6vw,5rem) 0;position:relative}
.photo--full{max-width:var(--maxw)}
.photo figure{margin:0}
.photo .frame{border-radius:1.9rem;overflow:hidden;box-shadow:var(--shadow-amb);position:relative}
.photo img{width:100%;height:clamp(280px,52vw,580px);object-fit:cover;transform:scale(1.02);
  transition:transform 1.4s var(--ease-soft)}
.photo:hover img{transform:scale(1.06)}
.photo figcaption{margin-top:1rem;font-size:.9rem;color:var(--muted);font-style:italic;
  font-family:"Fraunces",serif;max-width:50ch;line-height:1.5}

/* ---------- callout ---------- */
.callout{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;padding:clamp(1.4rem,3vw,2rem);margin:2.4rem 0}
.callout__ic{width:44px;height:44px;border-radius:.95rem;display:grid;place-items:center;flex-shrink:0;
  font-size:1.2rem;font-weight:700}
.callout__body h4{font-family:"Fraunces",serif;font-size:1.18rem;margin:.1rem 0 .55rem}
.callout__body p{margin:0 0 .7rem;color:var(--ink-soft);font-size:.97rem;line-height:1.6}
.callout__body p:last-child{margin-bottom:0}
.callout--tip .callout__ic{background:var(--teal-wash);color:var(--teal)}
.callout--tip{background:linear-gradient(180deg,rgba(228,238,235,.55),rgba(228,238,235,.2));
  border:1px solid rgba(14,110,104,.16);border-radius:1.5rem}
.callout--warn .callout__ic{background:rgba(182,90,44,.12);color:var(--terra)}
.callout--warn{background:linear-gradient(180deg,rgba(182,90,44,.08),rgba(182,90,44,.02));
  border:1px solid rgba(182,90,44,.2);border-radius:1.5rem}

/* ---------- premium data / comparison table ---------- */
.ptable{margin:2.6rem 0}
.ptable .bezel__core{padding:.4rem}
.ptable__scroll{overflow-x:auto;border-radius:1.1rem;-webkit-overflow-scrolling:touch}
table.dl{width:100%;border-collapse:collapse;font-size:.93rem;min-width:560px}
table.dl thead th{background:var(--ink);color:#fff;font-family:"Plus Jakarta Sans",sans-serif;
  font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;text-align:left;
  padding:1rem 1.1rem;white-space:nowrap}
table.dl thead th:first-child{border-top-left-radius:1rem}
table.dl thead th:last-child{border-top-right-radius:1rem}
table.dl tbody td{padding:1rem 1.1rem;border-bottom:1px solid var(--line-soft);color:var(--ink-soft);
  vertical-align:top;line-height:1.5}
table.dl tbody tr:nth-child(even){background:var(--surface-soft)}
table.dl tbody td:first-child{font-weight:500;color:var(--ink)}
table.dl tbody tr:last-child td{border-bottom:none}
table.dl tbody tr.is-best{background:var(--teal-wash)}
table.dl tbody tr.is-best td:first-child{box-shadow:inset 3px 0 0 var(--teal)}
table.dl tbody tr.is-best td:first-child strong{color:var(--teal)}
.ptable__note{font-size:.84rem;color:var(--muted);font-style:italic;margin:1rem 0 0;max-width:60ch}
.ptable__note a{color:var(--teal)}

/* ---------- VS route comparison cards ---------- */
.vs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin:2.6rem 0}
.vs__card{padding:1.6rem 1.5rem;height:100%;display:flex;flex-direction:column}
.vs__rank{font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;font-weight:600;color:var(--faint)}
.vs__name{font-family:"Fraunces",serif;font-size:1.3rem;font-weight:600;margin:.5rem 0 .8rem;line-height:1.15}
.vs__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}
.vs__tag{font-size:.78rem;padding:.3rem .7rem;border-radius:999px;background:var(--surface-soft);
  border:1px solid var(--line);color:var(--muted)}
.vs__desc{font-size:.92rem;color:var(--muted);margin:0 0 1.2rem;line-height:1.55}
.vs__price{margin-top:auto;font-family:"Fraunces",serif;font-size:1.4rem;font-weight:600;color:var(--ink)}
.vs__price small{display:block;font-family:"Plus Jakarta Sans",sans-serif;font-size:.74rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.12em;color:var(--faint);margin-bottom:.2rem}
.vs__card.is-winner{background:var(--ink)}
.vs__card.is-winner .vs__rank{color:var(--terra-soft)}
.vs__card.is-winner .vs__name,.vs__card.is-winner .vs__price{color:#fff}
.vs__card.is-winner .vs__desc{color:rgba(255,255,255,.72)}
.vs__card.is-winner .vs__tag{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.8)}
.vs__card.is-winner .vs__price small{color:rgba(255,255,255,.5)}
.vs .bezel.is-winner{background:rgba(27,26,23,.06)}

/* ---------- journey timeline ---------- */
.timeline{position:relative;margin:2.6rem 0;padding-left:0}
.tl{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(1rem,3vw,2rem);
  padding:clamp(1.4rem,3vw,2rem) clamp(1.4rem,3vw,2.2rem);text-decoration:none;color:var(--ink);
  transition:transform .5s var(--ease)}
.tl+.tl{margin-top:1rem}
.tl:hover{transform:translateY(-3px)}
.tl__num{font-family:"Fraunces",serif;font-weight:600;font-size:clamp(2.4rem,5vw,3.4rem);
  color:var(--teal);line-height:.9;display:flex;flex-direction:column;align-items:center}
.tl__num small{font-family:"Plus Jakarta Sans",sans-serif;font-size:.6rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:.2rem}
.tl__route{font-family:"Fraunces",serif;font-weight:600;font-size:clamp(1.1rem,2vw,1.4rem);margin:0 0 .3rem}
.tl__hi{color:var(--muted);font-size:.95rem;margin:0;line-height:1.5}
.tl__dist{text-align:right;color:var(--faint);font-size:.82rem;font-weight:500;white-space:nowrap;
  display:flex;align-items:center;gap:.6rem}
.tl__arrow{width:38px;height:38px;border-radius:999px;background:var(--teal-wash);color:var(--teal);
  display:grid;place-items:center;transition:transform .5s var(--ease),background .4s ease;flex-shrink:0}
.tl:hover .tl__arrow{transform:translate(3px,-2px);background:var(--teal);color:#fff}

/* ---------- region / topic card grid ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin:2.8rem 0}
.tcard{display:flex;flex-direction:column;border-radius:1.5rem;overflow:hidden;background:var(--surface);
  border:1px solid var(--line-soft);text-decoration:none;box-shadow:var(--shadow-soft);
  transition:transform .55s var(--ease),box-shadow .4s}
.tcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-amb)}
.tcard__img{height:210px;overflow:hidden;position:relative}
.tcard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-soft)}
.tcard:hover .tcard__img img{transform:scale(1.07)}
.tcard__tag{position:absolute;top:1rem;left:1rem;font-size:.68rem;text-transform:uppercase;
  letter-spacing:.14em;font-weight:600;color:#fff;background:rgba(20,18,14,.55);
  backdrop-filter:blur(8px);padding:.35rem .8rem;border-radius:999px}
.tcard__body{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.tcard__body h3{font-size:1.22rem;margin:0}
.tcard__body p{color:var(--muted);font-size:.9rem;margin:0;line-height:1.55;flex:1}
.tcard__meta{color:var(--teal);font-size:.78rem;letter-spacing:.04em;margin-top:.4rem;font-weight:600}

/* ---------- chips (grape varieties etc.) ---------- */
.chipset{margin:1.4rem 0 2.4rem}
.chipset__h{font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);
  font-weight:600;margin:0 0 .9rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0;margin:0}
.chips li{padding:0;margin:0}
.chips li::before{display:none}
.chip{display:inline-flex;flex-direction:column;gap:.15rem;padding:.7rem 1.1rem;border-radius:1rem;
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-soft);
  transition:transform .4s var(--ease),box-shadow .4s}
.chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-amb)}
.chip strong{font-family:"Fraunces",serif;font-size:1rem;color:var(--ink);font-weight:600}
.chip span{font-size:.8rem;color:var(--muted)}
.chip--white strong{color:var(--gold)}
.chip--red strong{color:var(--terra)}

/* ---------- pairing list ---------- */
.pairing{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.4rem;list-style:none;padding:0;margin:2rem 0}
.pairing li{position:relative;padding:1rem 1.1rem 1rem 1.1rem;border-radius:1rem;background:var(--surface-soft);
  border:1px solid var(--line-soft);color:var(--ink-soft);font-size:.93rem;line-height:1.45}
.pairing li::before{display:none}
.pairing li strong{color:var(--ink);font-family:"Fraunces",serif;font-weight:600}

/* ---------- CTA block ---------- */
.cta{position:relative;border-radius:2rem;overflow:hidden;min-height:340px;display:flex;
  align-items:flex-end;box-shadow:var(--shadow-amb);margin:clamp(3rem,6vw,4.5rem) 0}
.cta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.cta::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(110deg,rgba(20,18,14,.82) 8%,rgba(20,18,14,.5) 48%,rgba(20,18,14,.12) 100%)}
.cta__inner{padding:clamp(2rem,4vw,3rem);max-width:36rem}
.cta h3{color:#fff;font-size:clamp(1.6rem,3vw,2.3rem);margin:1rem 0 .7rem}
.cta p{color:rgba(255,255,255,.85);margin:0 0 1.6rem;font-size:1rem}
.btn{display:inline-flex;align-items:center;gap:.7rem;background:#fff;color:var(--ink);
  border-radius:999px;padding:.7rem .7rem .7rem 1.4rem;font-weight:600;font-size:.95rem;
  transition:transform .45s var(--ease),background .4s ease,color .4s ease;border:none;cursor:pointer}
.btn .ic{width:34px;height:34px;border-radius:999px;background:rgba(27,26,23,.08);display:grid;
  place-items:center;transition:transform .45s var(--ease)}
.btn:hover{background:var(--teal);color:#fff}
.btn:hover .ic{background:rgba(255,255,255,.2);transform:translate(3px,-2px)}
.btn:active{transform:scale(.97)}

/* ---------- mantra ---------- */
.mantra{text-align:center;max-width:46rem;margin:clamp(3rem,6vw,5rem) auto 0}
.mantra__q{font-family:"Fraunces",serif;font-style:italic;font-size:clamp(1.4rem,3vw,2.1rem);
  line-height:1.4;color:var(--teal);letter-spacing:-.01em}
.mantra__s{color:var(--muted);margin-top:1rem;font-size:1rem}

/* ---------- FAQ ---------- */
.faq{max-width:var(--readw);margin-inline:auto;margin-top:2.6rem}
.qa{border-bottom:1px solid var(--line)}
.qa__q{width:100%;text-align:left;background:none;border:none;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;gap:1.5rem;
  padding:1.5rem 0;font-family:"Fraunces",serif;font-size:clamp(1.1rem,1.8vw,1.3rem);font-weight:600;
  color:var(--ink);transition:color .3s}
.qa__q:hover{color:var(--teal)}
.qa__sign{width:32px;height:32px;flex-shrink:0;border-radius:999px;border:1px solid var(--line);
  position:relative;transition:transform .5s var(--ease),background .4s,border-color .4s}
.qa__sign::before,.qa__sign::after{content:"";position:absolute;left:50%;top:50%;background:var(--teal);
  transition:transform .5s var(--ease)}
.qa__sign::before{width:12px;height:1.6px;transform:translate(-50%,-50%)}
.qa__sign::after{width:1.6px;height:12px;transform:translate(-50%,-50%)}
.qa.open .qa__sign{background:var(--teal);border-color:var(--teal);transform:rotate(90deg)}
.qa.open .qa__sign::before,.qa.open .qa__sign::after{background:#fff}
.qa.open .qa__sign::after{transform:translate(-50%,-50%) scaleY(0)}
.qa__a{overflow:hidden;max-height:0;transition:max-height .55s var(--ease)}
.qa__a div{padding:0 0 1.5rem;color:var(--ink-soft);font-size:.98rem;line-height:1.65}
.qa__a a{color:var(--teal);border-bottom:1px solid rgba(14,110,104,.3)}

/* ---------- related ---------- */
.related{background:var(--ink);color:#fff}
.related h2{color:#fff}
.related .eyebrow{color:#fff;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.8rem}
.rcard{display:flex;flex-direction:column;border-radius:1.5rem;overflow:hidden;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);text-decoration:none;
  transition:transform .55s var(--ease),background .4s,border-color .4s}
.rcard:hover{transform:translateY(-6px);background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.2)}
.rcard__img{height:200px;overflow:hidden;position:relative}
.rcard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-soft)}
.rcard:hover .rcard__img img{transform:scale(1.07)}
.rcard__tag{position:absolute;top:1rem;left:1rem;font-size:.68rem;text-transform:uppercase;
  letter-spacing:.16em;font-weight:600;color:#fff;background:rgba(20,18,14,.55);
  backdrop-filter:blur(8px);padding:.35rem .8rem;border-radius:999px}
.rcard__body{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.rcard__body h3{color:#fff;font-size:1.2rem;margin:0}
.rcard__body p{color:rgba(255,255,255,.7);font-size:.9rem;margin:0;line-height:1.55;flex:1}
.rcard__meta{color:rgba(255,255,255,.45);font-size:.78rem;letter-spacing:.04em;margin-top:.4rem}

/* ---------- footer ---------- */
.foot{background:#15140F;color:rgba(255,255,255,.7);padding:clamp(3rem,6vw,5rem) 0 2.5rem}
.foot__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2.5rem;
  padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.1)}
.foot__brand{font-family:"Fraunces",serif;font-size:1.5rem;color:#fff;font-weight:600;max-width:18ch}
.foot__brand span{color:var(--terra-soft)}
.foot__cols{display:flex;gap:clamp(2rem,5vw,4rem);flex-wrap:wrap}
.foot__col h4{color:#fff;font-family:"Plus Jakarta Sans",sans-serif;font-size:.78rem;
  text-transform:uppercase;letter-spacing:.16em;margin:0 0 1rem}
.foot__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.foot__col a{color:rgba(255,255,255,.6);font-size:.92rem;transition:color .3s}
.foot__col a:hover{color:#fff}
.foot__bar{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;align-items:center;padding-top:2rem;
  font-size:.82rem;color:rgba(255,255,255,.45)}
.foot__bar .sep{opacity:.4}

/* ---------- responsive ---------- */
@media(max-width:880px){
  .nav__links,.nav__cta{display:none}
  .burger{display:block}
  .vs{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr;gap:1rem}
  .rgrid{grid-template-columns:1fr;gap:1rem}
  .toc__grid{grid-template-columns:1fr}
  .pairing{grid-template-columns:1fr}
}
@media(max-width:560px){
  .author__card{grid-template-columns:1fr;text-align:left}
  .tl{grid-template-columns:auto 1fr;gap:1.1rem}
  .tl__dist{display:none}
  .tl__num{flex-direction:row;align-items:baseline;gap:.4rem;font-size:2.2rem}
  .callout{grid-template-columns:1fr}
  .facts{gap:1.4rem 2rem}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important}
  .reveal{opacity:1;transform:none;filter:none;transition:none}
  html{scroll-behavior:auto}
}
