@font-face{
  font-family:'Cormorant';
  font-style:normal;
  font-weight:300 600;
  font-display:swap;
  src:url('/assets/fonts/cormorant-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Cormorant';
  font-style:italic;
  font-weight:300 500;
  font-display:swap;
  src:url('/assets/fonts/cormorant-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Manrope';
  font-style:normal;
  font-weight:300 600;
  font-display:swap;
  src:url('/assets/fonts/manrope-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Geist Mono';
  font-style:normal;
  font-weight:400 500;
  font-display:swap;
  src:url('/assets/fonts/geist-mono-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --ivory:#FBF8FA;
  --paper:#FFFFFF;
  --pearl:#EFF8F7;
  --powder:#F5E6F0;
  --blush:#E9C5D2;
  --rose:#DFA7B9;
  --mauve:#B97892;
  --rose-gold:#CDB8D8;
  --champagne-rose:#E0AFC0;
  --wine:#78384F;
  --wine-soft:#98576B;
  --aubergine:#342631;
  --plum:#241820;
  --nav-deep:rgba(86,74,82,.78);
  --nav-deep-strong:rgba(86,74,82,.94);
  --teal-deep:#1F3D3C;
  --teal:#2D5F5C;
  --teal-soft:#4F827E;
  --teal-mist:#B9D9D4;
  --ink:#251720;
  --ink-soft:#6B5159;
  --line:rgba(37,23,32,.14);
  --line-soft:rgba(37,23,32,.07);

  --cream:var(--ivory);
  --bone:var(--pearl);
  --sand:var(--powder);
  --mist:var(--blush);
  --clay:var(--wine);
  --champagne:var(--champagne-rose);
  --sage:var(--wine-soft);
  --sage-deep:var(--wine);
  --moss:var(--aubergine);

  --serif:'Cormorant', Georgia, 'Times New Roman', ui-serif, serif;
  --sans:'Manrope', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --mono:'Geist Mono', 'SF Mono', Menlo, Consolas, ui-monospace, monospace;

  --shadow:0 30px 80px -40px rgba(37,23,32,.28), 0 8px 24px -16px rgba(37,23,32,.14);
  --shadow-soft:0 24px 60px -30px rgba(107,45,64,.18);
  --shadow-card:0 24px 70px rgba(37,23,32,.08);
  --radius-tight:3px;
  --radius-card:22px;
  --focus-ring:2px solid rgba(107,45,64,.24);
  --surface-card:rgba(255,253,249,.86);
  --surface-fresh:linear-gradient(135deg, #ffffff 0%, #f8fbfb 58%, #fff8fb 100%);
  --surface-rose:linear-gradient(135deg, #ffffff 0%, #fff6fa 100%);
  --surface-teal:linear-gradient(135deg, #ffffff 0%, #f7fbfb 100%);
  --surface-lilac:linear-gradient(135deg, #ffffff 0%, #fbf8fa 100%);
  --surface-deep:linear-gradient(135deg, #342631 0%, #4b3040 100%);
  --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.14  0 0 0 0 0.09  0 0 0 0 0.12  0 0 0 0.10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

:focus-visible{
  outline:var(--focus-ring);
  outline-offset:3px;
}

.btn,
.btn-primary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  border:0;
  border-radius:var(--radius-tight);
  background:var(--wine);
  color:var(--ivory);
  padding:.92rem 1.25rem;
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.15em;
  line-height:1;
  text-transform:uppercase;
  text-decoration:none;
  cursor:pointer;
  transition:background .22s ease, color .22s ease, border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.btn:hover,
.btn-primary:hover{
  background:var(--wine-soft);
}
.cta-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  padding:.7rem 1.6rem;
  background:var(--wine);
  color:var(--ivory);
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.18em;
  line-height:1;
  text-transform:uppercase;
  text-decoration:none;
  border-radius:var(--radius-tight);
  transition:background .22s ease, color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.cta-btn:hover{
  background:var(--wine-soft);
}
a.cta-btn,
a.cta-btn:hover{
  color:var(--ivory);
  text-decoration:none;
}
.btn.secondary,
.btn-ghost{
  background:transparent;
  color:var(--wine);
  border:1px solid var(--wine);
}
.btn.secondary:hover,
.btn-ghost:hover{
  background:var(--wine);
  color:var(--ivory);
}
.btn:disabled,
.btn-primary:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.btn[hidden],
.message[hidden]{
  display:none;
}

.form-card,
.panel,
.preview-card,
.faq-item,
.spoke-card,
.hub-cta,
.article-cta,
.post-card,
.related-card,
.credentials,
.about-cta,
.result-box{
  background:var(--surface-card);
  border:1px solid var(--line-soft);
  box-shadow:var(--shadow-card);
}
.article-cta,
.post-card,
.related-card,
.credentials,
.about-cta,
.result-box{
  border-radius:var(--radius-tight);
}
.post-card,
.related-card{
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s cubic-bezier(.2,.7,.2,1);
}
.post-card:hover,
.related-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow);
}
.spoke-card{
  border-radius:var(--radius-tight);
  transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;
}
.spoke-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow);
}
.spoke-card.upcoming{
  background:rgba(255,253,249,.54);
  box-shadow:none;
}
.hub-cta{
  border-radius:var(--radius-tight);
}

input,
select,
textarea{
  font:inherit;
}
input:focus,
select:focus,
textarea:focus{
  outline:var(--focus-ring);
  outline-offset:2px;
}
.form-card input,
.form-card select,
.email-box input,
.email-box select{
  width:100%;
  border:1px solid var(--line);
  background:var(--paper);
  padding:.78rem .85rem;
  color:var(--ink);
  border-radius:0;
}

@media(prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
}

/* === canonical navigation (id-scoped so it wins over per-page rules) === */
nav#nav,
header#nav{
  position:sticky; top:0; z-index:900;
  background:rgba(52,38,49,.90);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
  backdrop-filter:saturate(150%) blur(14px);
  border-bottom:1px solid rgba(251,248,250,.10);
}
#nav .nav-inner{
  max-width:1280px; margin:0 auto;
  padding:.35rem clamp(1.25rem,4vw,3.5rem);
  display:flex; align-items:center; gap:1.5rem;
}
#nav .brand,
#nav .nav-logo{
  font-family:'Cormorant',Georgia,serif; font-size:1.35rem; font-weight:400;
  color:var(--ivory); text-decoration:none; letter-spacing:.01em;
  margin-right:auto; display:inline-flex; align-items:center; gap:.3em;
  min-height:44px; padding:.25rem 0;
}
#nav .brand em{ color:var(--champagne-rose); font-style:italic; }
#nav .nav-links{
  display:flex; align-items:center; gap:.25rem;
  list-style:none; margin:0; padding:0;
}
#nav .nav-links li{ list-style:none; }
#nav .nav-links a,
#nav .nav-group-btn{
  font-family:'Geist Mono',ui-monospace,monospace;
  font-size:.75rem; line-height:1.4; font-weight:400;
  text-transform:uppercase; letter-spacing:.1em;
  color:rgba(251,248,250,.86); text-decoration:none;
  display:inline-flex; align-items:center; gap:.4rem;
  min-height:44px; padding:.5rem .7rem;
  background:none; border:0; cursor:pointer;
  border-radius:6px;
  transition:color .25s cubic-bezier(.2,.7,.2,1), background-color .25s cubic-bezier(.2,.7,.2,1);
}
#nav .nav-links a:hover,
#nav .nav-links a:focus-visible,
#nav .nav-group-btn:hover,
#nav .nav-group-btn:focus-visible{
  color:var(--ivory); background:rgba(251,248,250,.10);
}
#nav .nav-links a[aria-current="page"]{ color:var(--champagne-rose); }
#nav .nav-group{ position:relative; }
#nav .nav-group-btn::after{
  content:''; width:.36rem; height:.36rem; margin-top:-.18rem;
  border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);
  transition:transform .25s cubic-bezier(.2,.7,.2,1);
}
#nav .nav-group-btn[aria-expanded="true"]::after{ transform:rotate(-135deg); margin-top:.12rem; }
#nav .nav-panel{
  position:absolute; top:calc(100% + .35rem); left:0; min-width:16rem;
  display:none; flex-direction:column; padding:.5rem;
  background:var(--aubergine); border:1px solid rgba(251,248,250,.12);
  border-radius:10px; box-shadow:0 18px 40px rgba(37,23,32,.34);
}
#nav .nav-panel.is-open{ display:flex; }
#nav .nav-panel a{
  width:100%; justify-content:flex-start;
  letter-spacing:.06em; color:rgba(251,248,250,.88);
}
#nav .nav-links a.nav-cta{
  color:var(--ivory); background:var(--wine);
  padding-left:1.1rem; padding-right:1.1rem; margin-left:.4rem;
}
#nav .nav-links a.nav-cta:hover{ background:var(--wine-soft); }
#nav .nav-toggle{
  display:none; align-items:center; justify-content:center;
  width:44px; height:44px; padding:0; margin-left:auto;
  background:none; border:0; color:var(--ivory); cursor:pointer;
}
body{ padding-top:0; }
@media(max-width:860px){
  #nav .nav-toggle{ display:inline-flex; }
  #nav .nav-links{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    padding:.5rem clamp(1.25rem,4vw,3.5rem) 1.25rem;
    background:var(--aubergine);
    border-bottom:1px solid rgba(251,248,250,.12);
  }
  #nav .nav-links.is-open{ display:flex; }
  #nav .nav-links a,
  #nav .nav-group-btn{ width:100%; justify-content:flex-start; min-height:48px; }
  #nav .nav-panel{
    position:static; display:none; min-width:0; padding:0 0 0 .7rem;
    background:none; border:0; box-shadow:none;
  }
  #nav .nav-panel.is-open{ display:flex; }
  #nav .nav-links a.nav-cta{ margin:.6rem 0 0; justify-content:center; }
}

/* Tap targets and legibility floor: nothing interactive under 44px, no label under 12px. */
footer a{ display:inline-block; min-height:44px; padding-top:.55rem; padding-bottom:.55rem; }
footer li{ list-style:none; }
body .eyebrow, body .crumb, body .crumb a, body figcaption, body .article-meta span,
body .sc-label, body .b-label, body .btn, body .label, body .lbl, body .in,
body .contact-label, body .card-label, body .card-cta, body .blog-social,
body .article-social, body .foot-label, body .f-label, body .disc-label{
  font-size:max(.75rem,12px); line-height:1.4;
}

/* An image that fails to load falls back to a calm surface instead of a hole. */
img{ background:var(--pearl); }


/* === classes replacing former inline styles === */
.section-title{ margin-top:1.5rem; }
.section-title em{ font-weight:500; font-style:italic; }
.section-intro{ max-width:55ch; margin-top:1.4rem; font-size:1.02rem; line-height:1.7; }
.form-note{ font-size:1rem; color:var(--ink-soft); }
.label-plain{ text-transform:none; letter-spacing:0; color:var(--ink-soft); }
