/* ═══════════════════════════════════════════════════════════════
   NOE base — Blue Sky Nonstop
   Every colour resolves through a token. A palette change is one
   :root block, not a hand-edit of 23 files.
   Palette locked 2026-07-24, applied 2026-08-10.
   ═══════════════════════════════════════════════════════════════ */

:root{
  /* ── blues ── */
  --noe-c-dark:      #12456e;  /* deep sky — footer, dark bands */
  --noe-c-dark2:     #1d5f92;  /* Logan blue — hover */
  --noe-c-dark3:     #2470a8;  /* card fills */
  --noe-c-cream:     #f3fafd;  /* cloud white */
  --noe-c-cream2:    #ffffff;
  --noe-c-sand:      #e2f1fa;  /* pale blue card fill */
  --noe-c-border:    #c6e1f0;

  /* ── pink. See THE PINK RULE below. ── */
  --noe-c-accentDeep:     #a3255a;  /* deep pink — ALL pink type */
  --noe-c-accent:         #cf3f76;  /* hot pink — rules, small marks only */
  --noe-c-accentPale:     #ffe7f0;  /* pale pink — ALL pink fills */
  --noe-c-accentPaleLine: #f3b0cd;
  --noe-c-onPale:         #8b3a5e;  /* body copy on a pale pink band */
  --noe-c-accentLight:    #ffb0cb;  /* blossom — pink type on navy */
  --noe-c-accentHero:     #ffdbe8;  /* hero italic accent word */

  /* ── pop ── */
  --noe-c-pop:       #f5b431;  /* sunshine — eyebrow rules */

  /* ── text ── */
  --noe-c-muted:      #547084;  /* secondary text ON LIGHT  (4.5:1+) */
  --noe-c-mutedOnDark:#a9cde6;  /* secondary text ON DARK   (4.5:1+) */

  /* ── type ── */
  --noe-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --noe-sans:  'Jost', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* ── surfaces ── */
  --noe-hero: linear-gradient(168deg,#2f83bd 0%,#1f6ba4 40%,#12456e 100%);
  --noe-pad:  clamp(24px, 5vw, 72px);

  /* ── legacy aliases (ported components from the pre-v2 pages;
     these two were missing, so --noe-radius fell back to 0 (square
     corners on every ported card/box) and --noe-ink was silently
     relying on inheritance) ── */
  --noe-radius: 2px;
  --noe-ink: var(--noe-c-dark);
}

/* ═══ THE PINK RULE (locked, Kyle 2026-07-24) ═══════════════════
   Pink appears either as dark-pink TYPE, or as a pale-pink FILL
   carrying dark-pink type. NEVER light text on a hot-pink block —
   including CTAs. --noe-c-accent (#cf3f76) is for hairlines and
   small marks only, never as a fill behind text.
   ═══════════════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--noe-c-cream);
  color:var(--noe-c-dark);
  font-family:var(--noe-sans);
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}

/* ─────────── skip link (a11y) ─────────── */
.noe-skip{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--noe-c-accentPale);color:var(--noe-c-accentDeep);
  padding:12px 20px;font-size:14px;font-weight:500;text-decoration:none;
}
.noe-skip:focus{left:8px;top:8px}

/* ═══════════════ HEADER ═══════════════
   Ported from the live site (Aug 2026) so the 23 existing pages keep their
   markup: dark navy bar, serif NOE wordmark, uppercase letterspaced Jost nav,
   on-dark dropdown. Two additions in v2: the brand mark sits beside the
   wordmark, and Plan Your Trip is a pale-pink button (.noe-hdr__cta).
   ═══════════════════════════════════════ */
.noe-hdr{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:18px var(--noe-pad);
  background:var(--noe-c-dark);
  border-bottom:1px solid rgba(198,225,240,.14);
}
.noe-hdr a{text-decoration:none}
.noe-hdr__mark{
  display:flex;align-items:center;gap:11px;flex:0 0 auto;
  font-family:var(--noe-serif);font-size:24px;font-weight:400;
  letter-spacing:.06em;line-height:1;color:var(--noe-c-cream);
}
.noe-hdr__mark svg{flex:0 0 auto;display:block}

.noe-hdr__nav{display:flex;gap:30px;align-items:center}
.noe-hdr__nav > a,.noe-hdr__dd > button{
  position:relative;
  font-family:var(--noe-sans);font-size:12px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--noe-c-mutedOnDark);
  padding:4px 0;white-space:nowrap;
  background:none;border:0;cursor:pointer;
}
.noe-hdr__nav > a:hover,.noe-hdr__dd > button:hover,
.noe-hdr__nav a[aria-current="page"]{color:var(--noe-c-accentHero)}
.noe-hdr__nav a[aria-current="page"]::after{
  content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:var(--noe-c-accent);
}

/* Plan Your Trip. Pale-pink fill, deep-pink type: the only permitted pink
   button, same as .noe-btn--p. Never light type on hot pink. */
.noe-hdr__nav > a.noe-hdr__cta{
  padding:10px 18px;
  background:var(--noe-c-accentPale);
  color:var(--noe-c-accentDeep);
  border:1px solid var(--noe-c-accentPaleLine);
}
.noe-hdr__nav > a.noe-hdr__cta:hover{background:#ffd9e8;color:var(--noe-c-accentDeep)}
.noe-hdr__nav > a.noe-hdr__cta::after{display:none}

/* dropdown */
.noe-hdr__dd{position:relative}
.noe-hdr__dd > button::after{content:' \25BE'}
.noe-hdr__menu{
  display:none;position:absolute;top:calc(100% + 14px);left:50%;
  transform:translateX(-50%);min-width:262px;padding:10px 0;
  background:var(--noe-c-dark2);border:1px solid rgba(198,225,240,.18);
  box-shadow:0 18px 40px rgba(0,0,0,.32);
}
/* bridges the 14px gap so the menu does not close as the cursor crosses it */
.noe-hdr__menu::before{content:'';position:absolute;bottom:100%;left:0;right:0;height:16px}
.noe-hdr__dd:hover .noe-hdr__menu,
.noe-hdr__dd:focus-within .noe-hdr__menu,
.noe-hdr__dd[data-open="true"] .noe-hdr__menu{display:block}
.noe-hdr__menu a{
  display:block;font-family:var(--noe-sans);font-size:13px;font-weight:400;
  letter-spacing:.02em;text-transform:none;padding:9px 22px;
  color:var(--noe-c-border);
}
.noe-hdr__menu a:hover{color:var(--noe-c-cream);background:rgba(207,63,118,.16)}
.noe-hdr__menu a small{
  display:block;font-size:11px;letter-spacing:.04em;
  color:var(--noe-c-mutedOnDark);text-transform:none;
}

/* burger */
.noe-hdr__toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;margin:-8px}
.noe-hdr__toggle span{
  display:block;width:22px;height:1.5px;margin:5px 0;
  background:var(--noe-c-cream);transition:transform .25s,opacity .25s;
}
.noe-hdr[data-open="true"] .noe-hdr__toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.noe-hdr[data-open="true"] .noe-hdr__toggle span:nth-child(2){opacity:0}
.noe-hdr[data-open="true"] .noe-hdr__toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

@media(max-width:1180px){
  .noe-hdr{padding:16px 24px;flex-wrap:wrap}
  .noe-hdr__toggle{display:block}
  .noe-hdr__nav{display:none;flex-direction:column;gap:0;width:100%;order:3;align-items:stretch}
  .noe-hdr[data-open="true"] .noe-hdr__nav{display:flex;padding-top:12px}
  .noe-hdr__nav > a,.noe-hdr__dd > button{
    padding:14px 0;width:100%;text-align:left;
    border-top:1px solid rgba(198,225,240,.12);
  }
  .noe-hdr__nav > a.noe-hdr__cta{
    margin-top:12px;padding:14px 18px;text-align:center;border:1px solid var(--noe-c-accentPaleLine);
  }
  .noe-hdr__menu{
    display:block;position:static;transform:none;min-width:0;
    background:transparent;border:0;box-shadow:none;padding:0 0 0 12px;
  }
  .noe-hdr__menu::before{display:none}
  .noe-hdr__menu a{padding:8px 0}
}

/* ═══════════════ SECTIONS ═══════════════ */
.noe-section{padding:clamp(52px,7vw,88px) var(--noe-pad)}
.noe-section--cream{background:var(--noe-c-cream)}
.noe-section--white{background:var(--noe-c-cream2)}
.noe-section--sand {background:var(--noe-c-sand)}
.noe-section--navy {background:var(--noe-c-dark);color:var(--noe-c-cream)}
.noe-section--pale {background:var(--noe-c-accentPale);color:var(--noe-c-onPale)}
.noe-inner{max-width:1180px;margin:0 auto}
.noe-article{max-width:74ch;margin:0 auto}

/* ── eyebrow ── */
.noe-eyebrow{
  display:flex;align-items:center;gap:12px;
  font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:var(--noe-c-muted);margin-bottom:18px;
}
.noe-eyebrow::before{content:'';width:30px;height:1px;background:var(--noe-c-pop);flex:0 0 auto}
.noe-eyebrow--onDark{color:var(--noe-c-accentLight)}
.noe-eyebrow--onPale{color:var(--noe-c-accentDeep)}

/* ── headings ── */
.noe-h1{font-family:var(--noe-serif);font-weight:300;font-size:clamp(40px,6.2vw,72px);
  line-height:1.05;letter-spacing:-.012em;margin:0 0 20px}
.noe-h2{font-family:var(--noe-serif);font-weight:300;font-size:clamp(30px,3.9vw,44px);
  line-height:1.12;margin:0 0 16px}
.noe-h3{font-family:var(--noe-serif);font-weight:400;font-size:clamp(21px,2.2vw,27px);
  line-height:1.2;margin:0 0 10px}
.noe-h1 em,.noe-h2 em{font-style:italic}
.noe-section--navy .noe-h1 em,.noe-section--navy .noe-h2 em{color:var(--noe-c-accentHero)}
.noe-lead{font-size:clamp(17px,1.6vw,19px);line-height:1.8;color:var(--noe-c-muted);
  max-width:62ch;margin:0 0 26px}
.noe-section--navy .noe-lead{color:var(--noe-c-mutedOnDark)}
.noe-section--pale .noe-lead{color:var(--noe-c-onPale)}

/* ═══════════════ BUTTONS ═══════════════
   Primary is a PALE PINK fill with DEEP PINK type. This is the
   feed pill, and it is the only permitted pink button. */
.noe-btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--noe-sans);font-size:15px;font-weight:500;letter-spacing:.01em;
  padding:14px 26px;text-decoration:none;border:1px solid transparent;cursor:pointer;
  transition:background .18s,border-color .18s,transform .18s;
}
.noe-btn:hover{transform:translateY(-1px)}
.noe-btn--p{background:var(--noe-c-accentPale);color:var(--noe-c-accentDeep);
  border-color:var(--noe-c-accentPaleLine)}
.noe-btn--p:hover{background:#ffd9e8}
.noe-btn--dark{background:var(--noe-c-dark);color:var(--noe-c-cream);border-color:var(--noe-c-dark)}
.noe-btn--dark:hover{background:var(--noe-c-dark2);border-color:var(--noe-c-dark2)}
.noe-btn--ghost{background:transparent;color:var(--noe-c-cream);border-color:rgba(255,255,255,.45)}
.noe-btn--ghost:hover{background:rgba(255,255,255,.10);border-color:#fff}
.noe-btn--ghostDark{background:transparent;color:var(--noe-c-dark);border-color:var(--noe-c-border)}
.noe-btn--ghostDark:hover{background:var(--noe-c-sand)}
.noe-btn__arrow{font-size:15px;line-height:1}

/* ═══════════════ HERO ═══════════════ */
.noe-hero{background:var(--noe-hero);color:#fff;position:relative;overflow:hidden}
.noe-hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,64px);
  align-items:center;max-width:1180px;margin:0 auto;
  padding:clamp(56px,7vw,92px) var(--noe-pad)}
.noe-hero .noe-h1{color:#fff}
/* the hero is a gradient, not .noe-section--navy — it needs the on-dark muted token
   explicitly or the lead paragraph renders slate-on-blue and is unreadable */
.noe-hero .noe-lead{color:var(--noe-c-mutedOnDark)}
.noe-hero .noe-h1 em{color:var(--noe-c-accentHero)}
.noe-hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
.noe-hero__note{margin:26px 0 0;font-size:13.5px;color:var(--noe-c-mutedOnDark);line-height:1.7}
.noe-hero__media{position:relative}
.noe-hero__ph{
  aspect-ratio:4/5;width:100%;
  background:linear-gradient(150deg,#3f92c8,#1d5f92 60%,#0f3a5e);
  border:1px solid rgba(255,255,255,.16);
  display:flex;align-items:flex-end;padding:22px;
}
.noe-hero__cap{font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--noe-c-mutedOnDark)}
@media(max-width:880px){
  .noe-hero__grid{grid-template-columns:1fr}
  .noe-hero__media{display:none}
}

/* ── split hero (home page). Matches the production layout: copy on a navy
   gradient at left, photograph bleeding to the right edge at full height,
   caption over the bottom-left of the image. ── */
/* column split and aspect are tuned together: the media column is held at 4/3,
   the native ratio of the hero photography, so object-fit crops nothing and the
   browser downsamples rather than upscaling. A squarer column was cropping ~25%
   off the sides and then enlarging what was left, which read as grain. */
.noe-hero--split{
  display:grid;grid-template-columns:.93fr 1.07fr;align-items:stretch;padding:0;
  /* The hero height is fixed rather than driven by the copy. At these
     proportions the media column lands near 1.28:1 against 4:3 source
     photography, so under 5% is cropped and the browser never enlarges. */
  min-height:clamp(480px,41vw,600px);
}
.noe-hero--split .noe-h1{font-size:clamp(34px,4.5vw,58px)}
.noe-hero--split .noe-lead{font-size:16.5px;line-height:1.7;margin-bottom:22px}
.noe-hero--split .noe-hero__copy{max-width:none;
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(36px,3.6vw,50px) clamp(24px,4.4vw,64px);
}
.noe-hero--split .noe-hero__media{position:relative;min-height:280px}
.noe-hero--split .noe-hero__media img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;object-position:center center;display:block;
}
.noe-hero--split .noe-hero__cap{
  position:absolute;left:24px;right:24px;bottom:18px;z-index:2;
  font-family:var(--noe-serif);font-style:italic;font-size:15px;letter-spacing:.01em;
  text-transform:none;color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.55);
}
/* keeps the caption legible over a bright sky without tinting the whole photo */
.noe-hero--split .noe-hero__media::after{
  content:'';position:absolute;inset:auto 0 0 0;height:34%;z-index:1;
  background:linear-gradient(to top,rgba(10,38,62,.62),rgba(10,38,62,0));
}
/* stack early: below ~1120px the copy column forces the media tall and narrow,
   which crops a third off the photo and enlarges what is left */
@media(max-width:1200px){
  .noe-hero--split{grid-template-columns:1fr;min-height:0}
  /* stacked: let the photo run at its natural ratio. Nothing is cropped and
     there is no letterbox from the desktop min-height. */
  .noe-hero--split .noe-hero__media{display:block;order:2;min-height:0}
  .noe-hero--split .noe-hero__media img{position:static;width:100%;height:auto}
  .noe-hero--split .noe-hero__media::after{height:26%}
}

/* ═══════════════ STAT STRIP ═══════════════ */
.noe-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--noe-c-border);border-block:1px solid var(--noe-c-border)}
.noe-stat{background:var(--noe-c-cream2);padding:26px 22px;text-align:center}
.noe-stat__n{font-family:var(--noe-serif);font-size:clamp(30px,3.4vw,40px);
  font-weight:300;line-height:1;color:var(--noe-c-dark);display:block}
.noe-stat__l{font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--noe-c-muted);margin-top:9px;display:block;line-height:1.5}
@media(max-width:700px){.noe-stats{grid-template-columns:repeat(2,1fr)}}

/* ═══════════════ CARDS ═══════════════ */
.noe-grid{display:grid;gap:3px}
.noe-grid--2{grid-template-columns:repeat(2,1fr)}
.noe-grid--3{grid-template-columns:repeat(3,1fr)}
.noe-grid--4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.noe-grid--3,.noe-grid--4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.noe-grid--2,.noe-grid--3,.noe-grid--4{grid-template-columns:1fr}}

.noe-card{
  position:relative;display:block;text-decoration:none;
  background:var(--noe-c-cream2);border:1px solid var(--noe-c-border);
  padding:30px 30px 34px;transition:border-color .18s,transform .18s;
}
.noe-card:hover{border-color:var(--noe-c-dark3);transform:translateY(-2px)}
.noe-card__cat{font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--noe-c-accentDeep);margin-bottom:11px}
.noe-card__t{font-family:var(--noe-serif);font-size:25px;font-weight:400;line-height:1.2;
  color:var(--noe-c-dark);margin-bottom:9px}
.noe-card__d{font-size:14.5px;line-height:1.75;color:var(--noe-c-muted);margin:0}
.noe-card__arrow{position:absolute;top:28px;right:28px;color:var(--noe-c-muted);
  font-size:17px;transition:color .18s,transform .18s}
.noe-card:hover .noe-card__arrow{color:var(--noe-c-accentDeep);transform:translate(2px,-2px)}
.noe-card--full{grid-column:1/-1}

.noe-pill{display:inline-block;font-size:10.5px;letter-spacing:.08em;
  color:var(--noe-c-dark);background:var(--noe-c-sand);
  border:1px solid var(--noe-c-border);padding:4px 11px;margin:14px 5px 0 0}

/* ═══════════════ ROUTE TABLE ═══════════════ */
.noe-routes{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}
@media(max-width:980px){.noe-routes{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.noe-routes{grid-template-columns:1fr}}
.noe-routes__col{background:var(--noe-c-cream2);border:1px solid var(--noe-c-border);padding:24px 26px}
.noe-routes__h{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--noe-c-accentDeep);margin-bottom:14px}
.noe-routes__list{list-style:none;margin:0;padding:0}
.noe-routes__list li{padding:9px 0;border-top:1px solid var(--noe-c-cream)}
.noe-routes__list li:first-child{border-top:0}
.noe-routes__list b{display:block;font-family:var(--noe-serif);font-size:19px;font-weight:400;
  color:var(--noe-c-dark);line-height:1.2}
.noe-routes__list span{display:block;font-size:12px;color:var(--noe-c-muted);
  line-height:1.5;margin-top:2px}
.noe-verified{font-size:12.5px;color:var(--noe-c-muted);font-style:italic;margin:20px 0 0}

/* ═══════════════ EMAIL CAPTURE ═══════════════ */
.noe-capture{background:var(--noe-c-accentPale);border:1px solid var(--noe-c-accentPaleLine);
  padding:clamp(32px,4.5vw,52px)}
.noe-capture .noe-h2{color:var(--noe-c-accentDeep)}
.noe-capture p{color:var(--noe-c-onPale);max-width:60ch}
.noe-form{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px;max-width:520px}
.noe-form input[type=email]{
  flex:1 1 240px;font-family:var(--noe-sans);font-size:15px;padding:14px 16px;
  border:1px solid var(--noe-c-accentPaleLine);background:#fff;color:var(--noe-c-dark);
}
.noe-form input[type=email]::placeholder{color:#b08099}
.noe-form input[type=email]:focus{outline:2px solid var(--noe-c-accentDeep);outline-offset:1px}
.noe-form__note{font-size:12.5px;color:var(--noe-c-onPale);margin:12px 0 0}

/* ═══════════════ DISCLOSURE ═══════════════ */
.noe-disclosure{
  font-size:13px;line-height:1.7;color:var(--noe-c-onPale);
  background:var(--noe-c-accentPale);border-left:2px solid var(--noe-c-accentPaleLine);
  padding:14px 20px;margin:0 0 30px;max-width:78ch;
}

/* ═══════════════ PRICING ═══════════════ */
.noe-tiers{display:grid;grid-template-columns:repeat(2,1fr);gap:3px}
@media(max-width:820px){.noe-tiers{grid-template-columns:1fr}}
.noe-tier{background:var(--noe-c-cream2);border:1px solid var(--noe-c-border);padding:36px 34px 40px;
  display:flex;flex-direction:column}
.noe-tier--feature{border-color:var(--noe-c-accentPaleLine);background:#fffdfe}
.noe-tier__n{font-family:var(--noe-serif);font-size:27px;font-weight:400;margin-bottom:6px}
.noe-tier__p{font-family:var(--noe-serif);font-size:52px;font-weight:300;line-height:1;
  color:var(--noe-c-dark);margin:10px 0 4px}
.noe-tier__p small{font-family:var(--noe-sans);font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--noe-c-muted);display:block;margin-top:10px}
.noe-tier ul{list-style:none;margin:22px 0 28px;padding:0}
.noe-tier li{position:relative;padding:9px 0 9px 26px;font-size:15px;line-height:1.65;
  border-top:1px solid var(--noe-c-cream)}
.noe-tier li:first-child{border-top:0}
.noe-tier li::before{content:'';position:absolute;left:2px;top:17px;width:9px;height:9px;
  border-radius:50%;background:var(--noe-c-accentLight)}
.noe-tier .noe-btn{margin-top:auto;justify-content:center}

/* ═══════════════ FAQ ═══════════════ */
.noe-faq{border-top:1px solid var(--noe-c-border);max-width:78ch}
.noe-faq__q{border-bottom:1px solid var(--noe-c-border);padding:22px 0}
.noe-faq__q h3{font-family:var(--noe-serif);font-size:22px;font-weight:400;margin:0 0 8px;
  color:var(--noe-c-dark)}
.noe-faq__q p{margin:0;font-size:15.5px;line-height:1.8;color:var(--noe-c-muted)}

/* ═══════════════ FOOTER ═══════════════ */
.noe-ftr{background:var(--noe-c-dark);color:var(--noe-c-mutedOnDark);
  padding:clamp(44px,5vw,64px) var(--noe-pad) 30px}
.noe-ftr__grid{max-width:1180px;margin:0 auto;display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;gap:36px}
@media(max-width:860px){.noe-ftr__grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.noe-ftr__grid{grid-template-columns:1fr}}
.noe-ftr__mark{font-family:var(--noe-serif);font-size:23px;color:#fff;margin:0 0 12px;display:block}
.noe-ftr p{font-size:14px;line-height:1.8;max-width:42ch;margin:0}
.noe-ftr h3,.noe-ftr h4{font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--noe-c-accentLight);margin:0 0 14px;font-weight:500}
.noe-ftr a{display:block;font-size:14px;color:var(--noe-c-mutedOnDark);
  text-decoration:none;margin-bottom:8px}
.noe-ftr a:hover{color:#fff}
.noe-ftr__base{max-width:1180px;margin:34px auto 0;padding-top:22px;
  border-top:1px solid rgba(169,205,230,.22);
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
  font-size:12px;letter-spacing:.03em}

/* ═══════════════ UTIL ═══════════════ */
.noe-mt0{margin-top:0}.noe-mb0{margin-bottom:0}
.noe-center{text-align:center}
.noe-narrow{max-width:70ch}
:focus-visible{outline:2px solid var(--noe-c-accentDeep);outline-offset:2px}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .noe-btn:hover,.noe-card:hover{transform:none}
}


/* ═══════════════ LEGACY COMPONENT LAYER ═══════════════
   Carried over from the 21 pre-v2 pages when their inline CSS was
   consolidated here (370 KB of duplicated <style> across 21 files, now
   one 22 KB cached stylesheet). The old palette used different token
   NAMES for identical hex VALUES, so those names are aliased to the v2
   tokens below and the component CSS is carried verbatim. A palette
   change is still one :root block.
   Rules that collide with a v2 component were dropped: v2 wins.
   ═══════════════════════════════════════════════════════ */
:root{
  --noe-navy:var(--noe-c-dark);
  --noe-navy-2:var(--noe-c-dark2);
  --noe-dark3:var(--noe-c-dark3);
  --noe-cream:var(--noe-c-cream);
  --noe-cream-2:var(--noe-c-cream2);
  --noe-taupe:var(--noe-c-sand);
  --noe-border:var(--noe-c-border);
  --noe-accentDeep:var(--noe-c-accentDeep);
  --noe-accent:var(--noe-c-accent);
  --noe-accentPale:var(--noe-c-accentPale);
  --noe-accentPaleLine:var(--noe-c-accentPaleLine);
  --noe-onPale:var(--noe-c-onPale);
  --noe-mutedOnDark:var(--noe-c-mutedOnDark);
  --noe-accentSoft:var(--noe-c-accentHero);
  --noe-muted:var(--noe-c-muted);
  --noe-pop:var(--noe-c-pop);
  --noe-sage:var(--noe-c-accentDeep);
  --noe-sage-light:var(--noe-c-accentHero);
}

.noe-block{display:block;width:100%;margin:0;padding:0;font-family:var(--noe-sans);line-height:1;}
.noe-eyebrow--on-dark{color:var(--noe-sage-light);}
.noe-body{font-family:var(--noe-sans);font-size:16px;font-weight:400;color:var(--noe-ink);line-height:1.85;}
.noe-btn--primary{color:#fff;background:var(--noe-sage);}
.noe-btn--primary:hover{opacity:.85;}
.noe-section--cream2{background:var(--noe-cream-2);}
.noe-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--noe-seam);width:100%;}
.noe-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--noe-seam);width:100%;}
.noe-card__icon{width:54px;height:54px;border:1px solid var(--noe-sage-light);background:rgba(207,63,118,.08);border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:var(--noe-sage);}
.noe-card__title{font-family:var(--noe-serif);font-size:26px;font-weight:400;color:var(--noe-navy);margin-bottom:10px;line-height:1.2;}
.noe-card__desc{font-family:var(--noe-sans);font-size:15px;color:var(--noe-muted);line-height:1.7;margin-bottom:20px;}
@media (max-width:768px){.noe-grid-2,.noe-grid-3{grid-template-columns:1fr;}}
.noe-ftr-copy{padding:18px 72px;background:var(--noe-navy-deep);font-family:'Jost',system-ui,sans-serif;font-size:11px;letter-spacing:.04em;color:var(--noe-copy);}
@media (max-width:768px){.noe-ftr-copy{padding:18px 24px;}}
/* full-width handled natively on Cloudflare */
.noe-block{width:100%;max-width:none;margin:0;}
/* ── destination guide page ── */
.dg-crumb{font-family:var(--noe-sans);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--noe-muted);margin-bottom:22px;}
.dg-crumb a{color:var(--noe-muted);text-decoration:none;}
.dg-byline{font-family:var(--noe-sans);font-size:13px;color:var(--noe-muted);margin-top:24px;}
.dg-facts{display:flex;flex-wrap:wrap;border:1px solid var(--noe-border);border-radius:var(--noe-radius);background:#fff;max-width:820px;margin:0 0 8px;}
.dg-facts__item{flex:1;min-width:130px;text-align:center;padding:20px 14px;border-right:1px solid var(--noe-border);}
.dg-facts__item:last-child{border-right:none;}
.dg-facts__v{font-family:var(--noe-serif);font-size:23px;color:var(--noe-navy);display:block;line-height:1.1;}
.dg-facts__k{font-family:var(--noe-sans);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--noe-muted);margin-top:6px;display:block;}
/* home-base + spokes */
.dg-base{background:#fff;border:1px solid var(--noe-border);border-radius:var(--noe-radius);padding:32px 36px;margin:28px 0 0;max-width:820px;}
.dg-base__label{font-family:var(--noe-sans);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--noe-sage);margin-bottom:8px;}
.dg-spokes{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;}
.dg-spokes li{font-family:var(--noe-sans);font-size:15px;color:var(--noe-ink);line-height:1.5;padding-left:18px;position:relative;}
.dg-spokes li::before{content:'→';position:absolute;left:0;color:var(--noe-sage);}
.dg-spokes strong{color:var(--noe-navy);font-weight:500;}
/* day-trip cards */
.dg-trips{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--noe-seam);margin-top:36px;}
.dg-trip{background:#fff;border:1px solid var(--noe-border);padding:28px 30px;}
.dg-trip__d{font-family:var(--noe-sans);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--noe-sage);margin-bottom:8px;}
.dg-trip__t{font-family:var(--noe-serif);font-size:24px;color:var(--noe-navy);line-height:1.2;margin-bottom:10px;}
.dg-trip__x{font-family:var(--noe-sans);font-size:14px;color:var(--noe-muted);line-height:1.7;}
/* cost module */
.dg-cost{max-width:820px;}
.dg-cost__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--noe-seam);margin-top:28px;}
.dg-cost__card{background:#fff;border:1px solid var(--noe-border);padding:30px 32px;}
.dg-cost__tag{font-family:var(--noe-sans);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--noe-sage);margin-bottom:6px;}
.dg-cost__big{font-family:var(--noe-serif);font-size:34px;color:var(--noe-navy);line-height:1;margin-bottom:4px;}
.dg-cost__sub{font-family:var(--noe-sans);font-size:13px;color:var(--noe-muted);margin-bottom:18px;}
.dg-cost__row{display:flex;justify-content:space-between;gap:12px;font-family:var(--noe-sans);font-size:14px;color:var(--noe-ink);padding:7px 0;border-top:1px solid #ece6db;}
.dg-cost__row span:last-child{color:var(--noe-navy);white-space:nowrap;}
.dg-scale{background:var(--noe-taupe);border:1px solid var(--noe-border);border-radius:var(--noe-radius);padding:26px 30px;margin-top:var(--noe-seam);}
.dg-scale h3{font-family:var(--noe-serif);font-weight:400;font-size:22px;color:var(--noe-navy);margin:0 0 8px;}
.dg-scale p{font-family:var(--noe-sans);font-size:15px;color:var(--noe-ink);line-height:1.75;margin:0 0 10px;}
.dg-scale p:last-child{margin-bottom:0;}
.dg-costnote{font-family:var(--noe-sans);font-size:12px;color:var(--noe-muted);line-height:1.6;margin-top:14px;max-width:820px;font-style:italic;}
/* gear banner */
.dg-gear{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;background:var(--noe-navy);border-radius:var(--noe-radius);padding:40px 48px;}
.dg-gear__t{font-family:var(--noe-serif);font-weight:300;font-size:32px;color:var(--noe-cream);line-height:1.15;margin:0 0 8px;}
.dg-gear__d{font-family:var(--noe-sans);font-size:15px;color:var(--noe-border);line-height:1.7;margin:0;max-width:60ch;}
/* book cross-link */
.dg-bookcta{display:grid;grid-template-columns:120px 1fr auto;gap:28px;align-items:center;background:var(--noe-taupe);border:1px solid var(--noe-border);border-radius:var(--noe-radius);padding:26px 32px;}
.dg-bookcta__t{font-family:var(--noe-serif);font-size:24px;color:var(--noe-navy);line-height:1.25;}
.dg-bookcta__d{font-family:var(--noe-sans);font-size:14px;color:var(--noe-muted);line-height:1.6;margin-top:6px;}

/* ── destination-page split hero: copy left, framed photo right, above the
   fold, nothing cropped. Photo is capped by max-height so a tall portrait
   original never forces a scroll before the reader sees the headline. ── */
.dg-hero-split{
  display:grid;grid-template-columns:1.05fr .95fr;align-items:center;
  gap:clamp(28px,4.5vw,64px);
  padding:clamp(40px,6vw,72px) var(--noe-pad);
}
.dg-hero-split__copy{max-width:560px;}
.dg-hero-split__media{display:flex;align-items:center;justify-content:center;min-width:0;}
.dg-hero-split__media img{
  width:auto;max-width:100%;height:auto;
  max-height:clamp(300px,36vw,440px);
  object-fit:contain;display:block;
  border:1px solid var(--noe-border);border-radius:var(--noe-radius);
  background:linear-gradient(150deg,var(--noe-navy-2),var(--noe-navy));
}
@media(max-width:900px){
  .dg-hero-split{grid-template-columns:1fr;padding:clamp(32px,7vw,48px) var(--noe-pad);}
  .dg-hero-split__media{order:2;margin-top:20px;}
  .dg-hero-split__media img{max-height:320px;}
  .dg-hero-split__copy{max-width:none;}
}

.dg-ph{position:relative;background:linear-gradient(150deg,var(--noe-navy-2),var(--noe-navy));border:1px solid var(--noe-border);border-radius:var(--noe-radius);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.dg-ph::after{content:attr(data-label);font-family:var(--noe-sans);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--noe-sage-light);padding:0 16px;text-align:center;line-height:1.5;}
.dg-ph.is-ph::before{content:'Add photo';position:absolute;top:12px;right:12px;z-index:2;font-family:var(--noe-sans);font-size:8px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--noe-sage);border:1px solid rgba(207,63,118,.4);border-radius:1px;padding:2px 7px;}
.dg-hero-img{aspect-ratio:21/9;margin:0;}
.dg-spread{aspect-ratio:3/4;}
@media (max-width:768px){.dg-spokes,.dg-trips,.dg-cost__grid{grid-template-columns:1fr;}.dg-gear{grid-template-columns:1fr;text-align:center;padding:32px 24px;}.dg-bookcta{grid-template-columns:1fr;text-align:center;}}
.dg-crumb,.dg-crumb a,.dg-byline{color:var(--noe-mutedOnDark) !important;}
.noe-ftr-copy{color:var(--noe-copy);}
.noe-eyebrow--on-dark{color:var(--noe-accentSoft);}
hairline edge */
  .noe-btn--primary{background:var(--noe-accentPale) !important;color:var(--noe-accentDeep,#a3255a) !important;
    border:1px solid var(--noe-accentPaleLine) !important;}
.noe-btn--primary:hover{background:#fff !important;opacity:1;}
.noe-card__icon{border-color:var(--noe-accentPaleLine);background:var(--noe-accentPale);color:var(--noe-sage);}
.noe-input:focus{border-color:var(--noe-accent);box-shadow:0 0 0 2px rgba(207,63,118,.25);}
/* --- contrast pass 2 (render-audit findings) --- */
  .noe-hero-sub,.noe-bookf-meta,.dg-bound__note{color:var(--noe-mutedOnDark) !important;}
.noe-dest-meta,.noe-dest-meta span,.dx-card__meta,.dx-card__meta span{color:var(--noe-border) !important;}
.noe-dest-tag,.dx-card__tag,.noe-dest-pill,.dx-pill{color:var(--noe-accentSoft) !important;}
.noe-hero-btn-p,.noe-bookf-btn-p,.noe-boundless .noe-social__btn{background:var(--noe-accentPale) !important;color:var(--noe-accentDeep) !important;
    border:1px solid var(--noe-accentPaleLine) !important;}
.noe-hero-btn-p:hover,.noe-bookf-btn-p:hover,.noe-boundless .noe-social__btn:hover{background:#fff !important;opacity:1 !important;}
.noe-social__btn{color:var(--noe-navy);background:var(--noe-cream);}
/* pink rule applied to the page-specific button variants too */
  .noe-hero-btn-p,.noe-bookf-btn-p,.noe-boundless .noe-social__btn{background:var(--noe-accentPale) !important;color:var(--noe-accentDeep) !important;
    border:1px solid var(--noe-accentPaleLine) !important;}
/* ── destinations index page ── */
.dx-region{margin-top:8px;}
.dx-region__head{display:flex; align-items:baseline; gap:14px; margin:48px 0 18px;}
.dx-region__t{font-family:var(--noe-serif); font-weight:300; font-size:32px; color:var(--noe-navy); line-height:1;}
.dx-region__c{font-family:var(--noe-sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--noe-muted);}
.dx-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:3px;}
.dx-card{position:relative; overflow:hidden; background:var(--noe-navy-2); text-decoration:none; display:block; aspect-ratio:4/5;}
.dx-card.is-ph{background:linear-gradient(150deg,#2c4054,var(--noe-navy));}
.dx-card.is-ph::before{content:'Add photo'; position:absolute; top:14px; right:14px; z-index:2; font-family:var(--noe-sans); font-size:8px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--noe-sage); border:1px solid rgba(207,63,118,.4); border-radius:1px; padding:2px 7px;}
.dx-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.dx-card:hover img{transform:scale(1.04);}
.dx-card__shade{position:absolute; left:0; right:0; bottom:0; height:70%; background:linear-gradient(to top, rgba(27,42,59,.94), transparent); z-index:1; pointer-events:none;}
.dx-card__info{position:absolute; left:22px; right:22px; bottom:22px; z-index:2;}
.dx-card__tag{font-family:var(--noe-sans); font-size:9px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--noe-sage-light); display:block; margin-bottom:6px;}
.dx-card__name{font-family:var(--noe-serif); font-size:26px; font-weight:300; color:var(--noe-cream); line-height:1.15; margin-bottom:9px;}
.dx-card__meta{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.dx-pill{font-family:var(--noe-sans); font-size:9px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; background:rgba(207,63,118,.22); color:var(--noe-sage-light); padding:2px 9px; border:1px solid rgba(207,63,118,.4); border-radius:1px;}
.dx-pill--soon{background:rgba(143,163,168,.18); color:#b8c4c7; border-color:rgba(143,163,168,.4);}
.dx-card--soon{pointer-events:none;}
.dx-card--soon .dx-card__name{color:#c9d2d4;}
@media (max-width:768px){.dx-grid{ grid-template-columns:1fr 1fr; }.dx-region__t{ font-size:26px; }}
.dg-ph::after{content:attr(data-label);font-family:var(--noe-sans);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--noe-sage-light);padding:0 16px;text-align:center;}
.noe-form--center{margin:0 auto;justify-content:center;}
.noe-input{flex:1;min-width:200px;padding:16px 18px;border:1px solid var(--noe-border);background:var(--noe-cream);font-family:var(--noe-sans);font-size:15px;color:var(--noe-navy);border-radius:var(--noe-radius);}
.noe-input::placeholder{color:#9aa9ae;}
.noe-input:focus{outline:none;border-color:var(--noe-sage);box-shadow:0 0 0 2px rgba(207,63,118,.25);}
.noe-form__btn{flex:0 0 auto;cursor:pointer;}
@media (max-width:768px){.noe-input,.noe-form__btn{width:100%;flex:1 1 100%;}}
.noe-h2--on-dark{color:var(--noe-cream);}
/* ── packing components ── */
.pk-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--noe-seam);margin-top:32px;}
.pk-cat{background:#fff;border:1px solid var(--noe-border);border-radius:var(--noe-radius);padding:28px 32px;}
.pk-cat__label{font-family:var(--noe-sans);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--noe-sage);margin-bottom:6px;display:flex;align-items:center;gap:10px;}
.pk-cat__label::before{content:'';width:18px;height:1px;background:var(--noe-sage);}
.pk-cat h3{font-family:var(--noe-serif);font-weight:400;font-size:23px;color:var(--noe-navy);margin:0 0 12px;line-height:1.2;}
.pk-list{list-style:none;margin:0;padding:0;}
.pk-list li{font-family:var(--noe-sans);font-size:15px;color:var(--noe-ink);line-height:1.55;padding:10px 0 10px 28px;position:relative;border-top:1px solid #efeae0;}
.pk-list li:first-child{border-top:none;}
.pk-list li::before{content:'';position:absolute;left:0;top:12px;width:13px;height:13px;border:1.5px solid var(--noe-sage);border-radius:2px;}
.pk-list strong{color:var(--noe-navy);font-weight:500;}
.pk-list em{color:var(--noe-muted);font-style:normal;}
.pk-list a{color:var(--noe-sage);text-decoration:underline;text-underline-offset:2px;}
.pk-tip{background:var(--noe-taupe);border:1px solid var(--noe-border);border-left:2px solid var(--noe-sage);border-radius:var(--noe-radius);padding:22px 26px;}
.pk-tip__k{font-family:var(--noe-sans);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--noe-sage);margin-bottom:8px;}
.pk-tip p{font-family:var(--noe-sans);font-size:15px;color:var(--noe-ink);line-height:1.7;margin:0;}
.pk-tip strong{color:var(--noe-navy);font-weight:500;}
.pk-tips-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--noe-seam);margin-top:32px;}
.pk-secthead{max-width:760px;}
.pk-secthead .noe-h2{margin-bottom:10px;}
@media (max-width:768px){.pk-grid,.pk-tips-grid,.noe-grid-2{grid-template-columns:1fr;}}
.noe-btn--outline{background:transparent;border:1px solid #41566a;color:var(--noe-cream);}
.noe-btn--outline:hover{background:var(--noe-navy-2);}
.dg-crumb{font-family:var(--noe-sans);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--noe-muted);margin-bottom:22px;}
.dg-base{background:#fff;border:1px solid var(--noe-border);border-radius:var(--noe-radius);padding:32px 36px;margin:28px 0 0;max-width:820px;}
.dg-base a{color:var(--noe-sage);}
.dg-spokes li::before{content:'\2192';position:absolute;left:0;color:var(--noe-sage);}
.dg-spokes a{color:var(--noe-sage);}
.dg-trips{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--noe-seam);margin-top:36px;}
.dg-trip__x a{color:var(--noe-sage);}
.dg-cost{max-width:820px;}
.dg-bound{max-width:980px;margin:0 auto;}
.dg-bound__pills{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 30px;}
.dg-bound__pill{font-family:var(--noe-sans);font-size:11px;letter-spacing:.05em;color:var(--noe-border);background:var(--noe-navy-2);border:1px solid #33485c;border-radius:1px;padding:6px 13px;}
.dg-bound__cta{display:flex;gap:16px;flex-wrap:wrap;align-items:center;}
.dg-bound__note{font-family:var(--noe-sans);font-size:12px;color:var(--noe-muted);line-height:1.7;margin:18px 0 0;max-width:60ch;}
.dg-bound__note a{color:var(--noe-sage-light);}
.dg-gear{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;background:var(--noe-navy);border-radius:var(--noe-radius);padding:40px 48px;}
.dg-bookcta{display:grid;grid-template-columns:120px 1fr auto;gap:28px;align-items:center;background:var(--noe-taupe);border:1px solid var(--noe-border);border-radius:var(--noe-radius);padding:26px 32px;}
@media (max-width:768px){.dg-spokes,.dg-trips,.dg-cost__grid{grid-template-columns:1fr;}.dg-gear{grid-template-columns:1fr;text-align:center;padding:32px 24px;}.dg-bookcta{grid-template-columns:1fr;text-align:center;}.noe-ftr-copy{padding:18px 24px;}}
.noe-block{display:block;font-family:var(--noe-sans);line-height:1;}
/* ── page-specific (book sales) ── */
.bk-hero{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.bk-price{font-family:var(--noe-serif); font-size:30px; color:var(--noe-navy); margin:18px 0 22px;}
.bk-price small{font-family:var(--noe-sans); font-size:13px; color:var(--noe-muted); letter-spacing:.02em;}
.bk-micro{font-family:var(--noe-sans); font-size:12px; color:var(--noe-muted); margin-top:14px; letter-spacing:0.02em;}
.bk-cover-img{width:100%; aspect-ratio:3/4; object-fit:cover; border:1px solid var(--noe-border); border-radius:var(--noe-radius); box-shadow:0 24px 60px -28px rgba(27,42,59,.5);}
.bk-spec{display:flex; flex-wrap:wrap; gap:0; border:1px solid var(--noe-border); border-radius:var(--noe-radius); margin-top:36px; max-width:760px; background:#fff;}
.bk-spec__item{flex:1; min-width:120px; text-align:center; padding:20px 16px; border-right:1px solid var(--noe-border);}
.bk-spec__item:last-child{border-right:none;}
.bk-spec__v{font-family:var(--noe-serif); font-size:24px; color:var(--noe-navy); display:block; line-height:1;}
.bk-spec__k{font-family:var(--noe-sans); font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--noe-muted); margin-top:6px; display:block;}
.bk-spread-img{width:100%; aspect-ratio:3/4; object-fit:cover; border:1px solid var(--noe-border); border-radius:var(--noe-radius); display:block; background:var(--noe-cream-2);}
.bk-ph{position:relative; background:linear-gradient(150deg,var(--noe-navy-2),var(--noe-navy)); border:1px solid var(--noe-border); border-radius:var(--noe-radius); display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; aspect-ratio:3/4;}
.bk-ph::after{content:attr(data-label); font-family:var(--noe-sans); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--noe-sage-light); padding:0 16px; line-height:1.5;}
.bk-quote{max-width:720px; margin:0 auto; text-align:center;}
.bk-quote p{font-family:var(--noe-serif); font-weight:300; font-style:italic; font-size:30px; line-height:1.4; color:var(--noe-cream);}
.bk-quote cite{font-family:var(--noe-sans); font-style:normal; font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:var(--noe-sage-light); display:block; margin-top:20px;}
.bk-author{display:grid; grid-template-columns:280px 1fr; gap:44px; align-items:start; max-width:880px;}
.bk-author__frame{width:280px; height:280px; border:1px solid var(--noe-border); border-radius:var(--noe-radius); overflow:hidden;}
.bk-author__photo{width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; object-position:center 25%; display:block; margin:0 !important;}
.bk-author__ph{width:100%; aspect-ratio:1; border-radius:50%; border:1px solid var(--noe-border); background:linear-gradient(150deg,var(--noe-navy-2),var(--noe-navy)); display:flex;align-items:center;justify-content:center;text-align:center;}
.bk-author__ph::after{content:attr(data-label); font-family:var(--noe-sans);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--noe-sage-light);padding:0 12px;line-height:1.5;}
.bk-faq h3{font-family:var(--noe-serif); font-weight:400; font-size:22px; color:var(--noe-navy); margin:28px 0 8px;}
.bk-faq p{font-family:var(--noe-sans); font-size:16px; color:var(--noe-ink); line-height:1.8; margin:0;}
.bk-words{display:grid; grid-template-columns:repeat(4,1fr); gap:3px; margin-top:36px;}
.bk-word{background:#fff; border:1px solid var(--noe-border); padding:22px 24px;}
.bk-word__fr{font-family:var(--noe-serif); font-size:24px; color:var(--noe-sage); line-height:1;}
.bk-word__say{font-family:var(--noe-sans); font-size:12px; color:var(--noe-muted); margin:6px 0 4px; font-style:italic;}
.bk-word__en{font-family:var(--noe-sans); font-size:14px; color:var(--noe-navy);}
@media (max-width:768px){.bk-hero{ grid-template-columns:1fr; gap:36px; }.bk-hero .bk-cover-img{ order:-1; max-width:320px; margin:0 auto; }.bk-quote p{ font-size:23px; }.bk-author{ grid-template-columns:1fr; gap:24px; }.bk-author__frame{ width:240px; height:240px; }.bk-author__ph{ max-width:240px; }.bk-words{ grid-template-columns:1fr 1fr; }}
