/* =========================================================================
   KIRAN AIYAR — DESIGN SYSTEM
   Warm Editorial Authority: deep forest + warm ivory, editorial serif +
   humanist sans, a single recurring "horizon line" signature motif.
   ========================================================================= */

/* ---- Tokens ------------------------------------------------------------ */
:root{
  /* Color */
  --ivory:        #F7F4ED;
  --ivory-deep:   #EEE7D8;
  --paper:        #FBFAF6;
  --forest:       #183B32;
  --forest-deep:  #0F2721;
  --forest-tint:  #E7EDE9;
  --charcoal:     #252724;
  --charcoal-soft:#54564F;
  --sage:         #8A9B82;
  --sage-deep:    #5E7057;
  --gold:         #C29B62;
  --gold-deep:    #96723F;
  --line:         rgba(37,39,36,0.13);
  --line-on-dark: rgba(247,244,237,0.20);
  --white:        #FFFFFF;

  /* Type */
  --font-display: 'Source Serif 4', 'Iowan Old Style', Georgia, serif;
  --font-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --fs-hero:   clamp(2.6rem, 5.6vw, 4.9rem);
  --fs-h1:     clamp(2.2rem, 4.2vw, 3.4rem);
  --fs-h2:     clamp(1.7rem, 2.9vw, 2.4rem);
  --fs-h3:     clamp(1.3rem, 1.9vw, 1.6rem);
  --fs-lead:   clamp(1.15rem, 1.6vw, 1.4rem);
  --fs-body-lg:1.1875rem;
  --fs-body:   1.0625rem;
  --fs-small:  0.9375rem;
  --fs-eyebrow:0.8rem;

  /* Layout */
  --maxw: 1240px;
  --maxw-narrow: 780px;
  --maxw-mid: 980px;
  --gutter: clamp(1.5rem, 5vw, 4rem);
  --section-pad: clamp(4.5rem, 9vw, 8.5rem);
  --radius-sm: 6px;
  --radius-md: 14px;
  --radius-pill: 999px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---- Reset --------------------------------------------------------------*/
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}
body{
  margin:0;
  background:var(--ivory);
  color:var(--charcoal);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p,figure{ margin:0; }
button{ font:inherit; background:none; border:none; cursor:pointer; color:inherit; }
input,textarea,select{ font:inherit; }
svg{ display:block; }

:focus-visible{
  outline: 2.5px solid var(--gold-deep);
  outline-offset: 3px;
  border-radius: 2px;
}

h1,h2,h3{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.12;
  letter-spacing:-0.01em;
  color:var(--forest-deep);
}

.container{
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.container--narrow{ max-width:var(--maxw-narrow); }
.container--mid{ max-width:var(--maxw-mid); }

section{ position:relative; }
.section{ padding-block:var(--section-pad); }
.section--tight{ padding-block: clamp(3rem,6vw,5rem); }
.bg-ivory-deep{ background:var(--ivory-deep); }
.bg-forest{ background:var(--forest); color:var(--ivory); }
.bg-forest-deep{ background:var(--forest-deep); color:var(--ivory); }
.bg-forest h1, .bg-forest h2, .bg-forest h3,
.bg-forest-deep h1, .bg-forest-deep h2, .bg-forest-deep h3{ color:var(--ivory); }
.bg-paper{ background:var(--paper); }

/* ---- Type utilities ------------------------------------------------------*/
.eyebrow{
  font-family:var(--font-body);
  font-size:var(--fs-eyebrow);
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold-deep);
}
.bg-forest .eyebrow, .bg-forest-deep .eyebrow{ color:var(--gold); }
.lead{
  font-size:var(--fs-lead);
  color:var(--charcoal-soft);
  line-height:1.55;
  max-width:60ch;
}
.bg-forest .lead, .bg-forest-deep .lead{ color:rgba(247,244,237,0.82); }
.serif-italic{ font-family:var(--font-display); font-style:italic; font-weight:400; }
.small-caps-note{ font-size:var(--fs-small); color:var(--charcoal-soft); }

/* ---- Signature motif: the horizon line ----------------------------------
   A hairline with a small hollow marker — used at section breaks to signal
   quiet, continuous progress rather than a dramatic before/after. */
.horizon{
  display:flex; align-items:center; gap:0;
  width:100%;
  margin-block: clamp(2.5rem, 5vw, 4.5rem);
}
.horizon::before{
  content:"";
  height:1px;
  background:var(--line);
  flex:1 1 auto;
  transform-origin:left center;
  transform:scaleX(1);
  transition:transform 1.1s var(--ease);
}
.horizon__mark{
  width:9px; height:9px; border-radius:50%;
  border:1.5px solid var(--gold);
  background:transparent;
  flex:none;
  margin-left:-1px;
  opacity:1;
  transition:opacity .6s ease .5s;
}
html.js-reveal .horizon::before{ transform:scaleX(0); }
html.js-reveal .horizon.is-visible::before{ transform:scaleX(1); }
html.js-reveal .horizon__mark{ opacity:0; }
html.js-reveal .horizon.is-visible .horizon__mark{ opacity:1; }
.horizon--center{ justify-content:center; }
.horizon--center::before{ display:none; }
.horizon--short{ max-width:120px; margin-inline:0; }
.bg-forest .horizon::before, .bg-forest-deep .horizon::before{ background:var(--line-on-dark); }

/* ---- Buttons ---------------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  padding: 0.95rem 1.9rem;
  border-radius: var(--radius-pill);
  font-family:var(--font-body);
  font-weight:600;
  font-size: 0.98rem;
  letter-spacing:0.01em;
  transition: background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
  white-space:nowrap;
}
.btn:active{ transform:translateY(1px); }
.btn-primary{
  background:var(--forest);
  color:var(--ivory);
  border:1.5px solid var(--forest);
}
.btn-primary:hover{ background:var(--forest-deep); border-color:var(--forest-deep); }
.btn-gold{
  background:var(--gold);
  color:var(--forest-deep);
  border:1.5px solid var(--gold);
}
.btn-gold:hover{ background:var(--gold-deep); border-color:var(--gold-deep); color:var(--ivory); }
.btn-ghost{
  background:transparent;
  color:var(--forest);
  border:1.5px solid var(--forest);
}
.btn-ghost:hover{ background:var(--forest); color:var(--ivory); }
.bg-forest .btn-ghost, .bg-forest-deep .btn-ghost, .hero .btn-ghost{ color:var(--ivory); border-color:var(--line-on-dark); }
.bg-forest .btn-ghost:hover, .bg-forest-deep .btn-ghost:hover, .hero .btn-ghost:hover{ background:var(--ivory); color:var(--forest-deep); border-color:var(--ivory); }
.btn-text{
  display:inline-flex; align-items:center; gap:.4rem;
  border-radius:0;
  padding:0;
  color:var(--forest);
  font-weight:600;
  border-bottom:1.5px solid var(--gold);
}
.btn-text svg{ width:16px; height:16px; flex:none; transition:transform .25s var(--ease); }
.btn-text:hover svg{ transform:translateX(3px); }
.btn-text:hover{ border-color:var(--forest); }
.bg-forest .btn-text, .bg-forest-deep .btn-text{ color:var(--ivory); }
.btn svg{ width:16px; height:16px; transition:transform .25s var(--ease); }
.btn:hover svg{ transform:translateX(3px); }
.btn-row{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }

/* ---- Nav ---------------------------------------------------------------*/
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--ivory);
  border-bottom:1px solid var(--line);
}
.nav{
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
  height:78px;
  display:flex; align-items:center; justify-content:space-between;
}
.nav__logo{
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.28rem;
  letter-spacing:0.01em;
  color:var(--forest-deep);
  display:flex; align-items:center; gap:.55rem;
}
.nav__logo .mark{ width:26px; height:26px; flex:none; }
.nav__links{ display:flex; align-items:center; gap:2.1rem; }
.nav__links a{
  font-size:0.95rem; font-weight:500; color:var(--charcoal);
  position:relative; padding-block:.3rem;
}
.nav__links a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1.5px;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform .25s var(--ease);
}
.nav__links a:hover::after, .nav__links a[aria-current="page"]::after{ transform:scaleX(1); }
.nav__links a[aria-current="page"]{ color:var(--forest-deep); font-weight:600; }
.nav__cta{ display:flex; align-items:center; gap:1.6rem; }
.nav__cta .btn{ padding:0.68rem 1.4rem; font-size:0.9rem; }
.nav__toggle{
  display:none; width:44px; height:44px; align-items:center; justify-content:center;
  border-radius:50%;
}
.nav__toggle span, .nav__toggle span::before, .nav__toggle span::after{
  content:""; display:block; width:22px; height:1.6px; background:var(--forest-deep);
  position:relative; transition:transform .25s var(--ease), opacity .2s ease;
}
.nav__toggle span::before{ position:absolute; top:-7px; }
.nav__toggle span::after{ position:absolute; top:7px; }
.nav__toggle[aria-expanded="true"] span{ background:transparent; }
.nav__toggle[aria-expanded="true"] span::before{ transform:translateY(7px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span::after{ transform:translateY(-7px) rotate(-45deg); }

@media (max-width: 900px){
  .nav__links{
    position:fixed; top:78px; left:0; right:0; height:calc(100vh - 78px); height:calc(100dvh - 78px);
    background:var(--ivory);
    flex-direction:column; align-items:flex-start; justify-content:flex-start;
    padding:2.2rem var(--gutter) 6rem; gap:0;
    transform:translateX(100%); transition:transform .35s var(--ease);
    overflow-y:auto;
  }
  .nav__links.is-open{ transform:translateX(0); }
  .nav__links a{ width:100%; padding-block:1.05rem; font-size:1.15rem; border-bottom:1px solid var(--line); }
  .nav__cta{ position:fixed; left:0; right:0; bottom:0; padding:1.2rem var(--gutter); background:var(--ivory); border-top:1px solid var(--line); transform:translateY(100%); transition:transform .35s var(--ease); z-index:101; }
  .nav__cta.is-open{ transform:translateY(0); }
  .nav__cta .btn{ width:100%; justify-content:center; padding:1rem; }
  .nav__toggle{ display:inline-flex; }
}

/* ---- Footer --------------------------------------------------------------*/
.site-footer{ background:var(--forest-deep); color:var(--ivory); }
.footer-top{ padding-block: clamp(3.5rem, 6vw, 5.5rem); }
.footer-grid{
  display:grid; grid-template-columns: 1.3fr 0.8fr 0.8fr 1fr; gap: 3rem;
}
.footer-brand .nav__logo{ color:var(--ivory); margin-bottom:1rem; }
.footer-brand p{ color:rgba(247,244,237,0.72); max-width:32ch; font-size:var(--fs-small); }
.footer-col h4{ font-family:var(--font-body); font-size:0.82rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); margin-bottom:1.1rem; font-weight:600; }
.footer-col ul{ display:flex; flex-direction:column; gap:.7rem; }
.footer-col a{ color:rgba(247,244,237,0.82); font-size:var(--fs-small); }
.footer-col a:hover{ color:var(--ivory); text-decoration:underline; text-underline-offset:3px; }
.footer-bottom{
  border-top:1px solid var(--line-on-dark);
  padding-block:1.5rem;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
  font-size:0.85rem; color:rgba(247,244,237,0.6);
}
.footer-bottom a{ color:rgba(247,244,237,0.6); }
.footer-bottom a:hover{ color:var(--ivory); }
.footer-legal{ display:flex; gap:1.4rem; flex-wrap:wrap; }

@media (max-width:820px){
  .footer-grid{ grid-template-columns:1fr 1fr; gap:2.4rem; }
}
@media (max-width:560px){
  .footer-grid{ grid-template-columns:1fr; gap:2.2rem; }
}

/* ---- Newsletter band -------------------------------------------------- */
.stay-connected{
  display:grid; grid-template-columns: 1fr auto; gap:2.5rem; align-items:center;
  padding: clamp(2.2rem,4vw,3rem);
  background:var(--forest);
  border-radius: var(--radius-md);
}
.stay-connected h3{ color:var(--ivory); font-size:var(--fs-h3); margin-bottom:.4rem; }
.stay-connected p{ color:rgba(247,244,237,0.78); font-size:var(--fs-small); max-width:46ch; }
.stay-form{ display:flex; gap:.7rem; flex-wrap:wrap; }
.stay-form input[type="email"]{
  background:rgba(247,244,237,0.08);
  border:1.5px solid var(--line-on-dark);
  color:var(--ivory);
  padding:0.85rem 1.2rem;
  border-radius:var(--radius-pill);
  min-width:250px;
  flex:1 1 250px;
}
.stay-form input[type="email"]::placeholder{ color:rgba(247,244,237,0.5); }
.stay-form input[type="email"]:focus-visible{ outline-color:var(--gold); }
@media (max-width:760px){
  .stay-connected{ grid-template-columns:1fr; }
}

/* ---- Hero ----------------------------------------------------------------*/
.hero{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items:stretch;
  min-height: 86vh;
  background:var(--forest-deep);
  color:var(--ivory);
  overflow:hidden;
}
.hero__content{
  display:flex; flex-direction:column; justify-content:center;
  padding: clamp(3rem,6vw,6rem) clamp(1.75rem,5vw,5rem);
  position:relative; z-index:2;
}
.hero__kicker{
  font-size:var(--fs-eyebrow); letter-spacing:0.16em; text-transform:uppercase;
  color:var(--gold); font-weight:600; margin-bottom:1.6rem;
  display:flex; align-items:center; gap:.7rem;
}
.hero__kicker::before{ content:""; width:26px; height:1px; background:var(--gold); }
.hero h1{
  font-size:var(--fs-hero); color:var(--ivory); font-weight:600;
  max-width:14ch;
}
.hero__lede{
  margin-top:1.7rem; font-size:var(--fs-lead); color:rgba(247,244,237,0.82);
  max-width:44ch; line-height:1.6;
}
.hero .btn-row{ margin-top:2.4rem; }
.hero__photo{
  position:relative; overflow:hidden;
}
.hero__photo img{
  width:100%; height:100%; object-fit:cover; object-position:center 15%;
}
.hero__photo::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(100deg, var(--forest-deep) 0%, rgba(15,39,33,0.35) 30%, rgba(15,39,33,0) 55%);
}
@media (max-width:980px){
  .hero{ grid-template-columns:1fr; min-height:auto; }
  .hero__photo{ height:56vh; order:-1; }
  .hero__photo::after{ background:linear-gradient(0deg, var(--forest-deep) 0%, rgba(15,39,33,0.05) 40%); }
  .hero__content{ padding-top:2.6rem; }
  .hero h1{ max-width:none; }
}

/* ---- Personal intro ("Hey, I'm Kiran") ---------------------------------- */
.intro{
  display:grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2.5rem,6vw,5.5rem);
  align-items:center;
}
.intro__photo{ border-radius: var(--radius-md); overflow:hidden; }
.intro__photo img{ width:100%; height:100%; object-fit:cover; }
.intro__text h2{ margin-bottom:1.3rem; }
.intro__text p + p{ margin-top:1.1rem; }
.intro__text p{ font-size:var(--fs-body-lg); color:var(--charcoal-soft); max-width:56ch; }
.intro__sign{ font-family:var(--font-display); font-style:italic; font-size:1.3rem; color:var(--forest); margin-top:1.6rem; }
@media (max-width:900px){
  .intro{ grid-template-columns:1fr; }
  .intro__photo{ max-width:340px; }
}

/* ---- Editorial pathways (Reimaginer / Book / Resources) -----------------*/
.pathways{ display:flex; flex-direction:column; }
.pathway{
  display:grid; grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items:center;
  padding-block: clamp(2.6rem, 5vw, 4rem);
  border-top:1px solid var(--line);
}
.pathway:last-child{ border-bottom:1px solid var(--line); }
.pathway__num{ font-family:var(--font-display); font-size:0.95rem; color:var(--gold-deep); font-weight:600; margin-bottom:1rem; letter-spacing:.04em; }
.pathway__figure{ order:2; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:5/4; }
.pathway__figure img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.pathway:hover .pathway__figure img{ transform:scale(1.035); }
.pathway__figure.is-graphic{ background:var(--forest-tint); }
.pathway h3{ font-size:var(--fs-h2); margin-bottom:1rem; }
.pathway p{ color:var(--charcoal-soft); font-size:var(--fs-body-lg); max-width:52ch; margin-bottom:1.5rem; }
.pathway:nth-child(even) .pathway__figure{ order:0; }
@media (max-width:820px){
  .pathway{ grid-template-columns:1fr; }
  .pathway__figure{ order:-1 !important; aspect-ratio:4/3; }
}

/* ---- Philosophy (Dignity / Home / Connection / Purpose / Progress) -------*/
.philosophy{
  display:grid; grid-template-columns: repeat(5, 1fr);
  border-top:1px solid var(--line-on-dark);
}
.philosophy__item{
  padding: clamp(1.8rem,3vw,2.6rem) clamp(1rem,2vw,1.6rem);
  border-right:1px solid var(--line-on-dark);
}
.philosophy__item:last-child{ border-right:none; }
.philosophy__item .num{ font-size:0.8rem; color:var(--gold); letter-spacing:.08em; margin-bottom:1rem; display:block; font-weight:600;}
.philosophy__item h4{ font-family:var(--font-display); font-size:1.28rem; color:var(--ivory); margin-bottom:.7rem; font-weight:600; }
.philosophy__item p{ color:rgba(247,244,237,0.72); font-size:var(--fs-small); }
@media (max-width:980px){
  .philosophy{ grid-template-columns:repeat(2,1fr); }
  .philosophy__item{ border-right:1px solid var(--line-on-dark); border-bottom:1px solid var(--line-on-dark); }
  .philosophy__item:nth-child(2n){ border-right:none; }
}
@media (max-width:560px){
  .philosophy{ grid-template-columns:1fr; }
  .philosophy__item{ border-right:none !important; }
}

/* ---- Book feature ("Free book. What's the catch?") -----------------------*/
.book-feature{
  display:grid; grid-template-columns: 0.85fr 1.15fr; gap:clamp(2.5rem,6vw,5rem); align-items:center;
}
.book-feature__cover{
  aspect-ratio:5/7; border-radius:var(--radius-sm);
  background: linear-gradient(155deg, var(--forest) 0%, var(--forest-deep) 100%);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:2.2rem; color:var(--ivory);
  box-shadow: 0 30px 60px -20px rgba(15,39,33,0.45);
  position:relative;
  overflow:hidden;
}
.book-feature__cover::before{
  content:""; position:absolute; inset:14px; border:1px solid rgba(247,244,237,0.28); pointer-events:none;
}
.book-feature__cover .eyebrow{ color:var(--gold); }
.book-feature__cover .cover-title{ font-family:var(--font-display); font-size:1.9rem; line-height:1.15; margin-top:.8rem; }
.book-feature__cover .cover-author{ font-size:0.95rem; letter-spacing:.05em; text-transform:uppercase; opacity:.85; }
.catch-list{ display:flex; flex-direction:column; gap:1.6rem; margin-block:1.8rem; }
.catch-item{ display:flex; gap:1.1rem; }
.catch-item .n{
  font-family:var(--font-display); font-size:1.1rem; color:var(--gold-deep);
  width:2.4rem; height:2.4rem; border:1.5px solid var(--gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex:none;
}
.catch-item h4{ font-family:var(--font-body); font-weight:600; font-size:1.05rem; color:var(--forest-deep); margin-bottom:.35rem; }
.catch-item p{ color:var(--charcoal-soft); font-size:var(--fs-body); }
@media (max-width:860px){
  .book-feature{ grid-template-columns:1fr; }
  .book-feature__cover{ max-width:280px; }
}

/* ---- Resource library grid ------------------------------------------------*/
.res-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:1.6rem; }
.res-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:2rem 1.7rem; display:flex; flex-direction:column; gap:1rem;
  transition: border-color .25s var(--ease), transform .25s var(--ease);
}
.res-card:hover{ border-color:var(--sage); transform:translateY(-3px); }
.icon{ width:38px; height:38px; color:var(--forest); flex:none; }
.res-card h4{ font-family:var(--font-display); font-size:1.2rem; color:var(--forest-deep); }
.res-card p{ font-size:var(--fs-small); color:var(--charcoal-soft); flex:1; }
@media (max-width:980px){ .res-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .res-grid{ grid-template-columns:1fr; } }

/* ---- Story / timeline ------------------------------------------------- */
.story-line{ position:relative; padding-left: clamp(1.6rem, 4vw, 3rem); }
.story-line::before{
  content:""; position:absolute; left:0; top:6px; bottom:6px; width:1px; background:var(--line);
}
.story-step{ position:relative; padding-bottom: clamp(2.4rem, 4vw, 3.4rem); }
.story-step:last-child{ padding-bottom:0; }
.story-step::before{
  content:""; position:absolute; left:calc(-1 * clamp(1.6rem,4vw,3rem)); top:6px;
  width:9px; height:9px; margin-left:-4.5px; border-radius:50%; background:var(--ivory);
  border:1.5px solid var(--gold);
}
.story-step .eyebrow{ margin-bottom:.5rem; display:block; }
.story-step h3{ font-size:var(--fs-h3); margin-bottom:.6rem; }
.story-step p{ color:var(--charcoal-soft); max-width:60ch; }

/* ---- Generic content blocks -------------------------------------------- */
.split{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,5rem); align-items:start;
}
@media (max-width:860px){ .split{ grid-template-columns:1fr; } }
.two-col-text{ column-count:1; }
.prose{ max-width:68ch; }
.prose p{ color:var(--charcoal-soft); font-size:var(--fs-body-lg); line-height:1.7; }
.prose p + p{ margin-top:1.2rem; }
.prose h3{ font-size:var(--fs-h3); margin-top:2.4rem; margin-bottom:.9rem; }
.pull-quote{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(1.35rem,2.4vw,1.8rem); color:var(--forest-deep);
  line-height:1.4; max-width:42ch; border-left:2px solid var(--gold); padding-left:1.6rem;
}

/* ---- Atmospheric generative panel (stand-in for stock photography) ------ */
.atmos{
  position:relative; overflow:hidden; border-radius:var(--radius-md);
  background:
    radial-gradient(120% 90% at 15% 15%, rgba(194,155,98,0.20), transparent 55%),
    radial-gradient(90% 90% at 85% 85%, rgba(138,155,130,0.35), transparent 60%),
    linear-gradient(160deg, var(--forest-tint) 0%, var(--ivory-deep) 100%);
}
.atmos::before{
  content:""; position:absolute; inset:0; opacity:0.5;
  background-image: repeating-linear-gradient(100deg, rgba(37,39,36,0.035) 0 1px, transparent 1px 60px);
}
.atmos-lines{ position:absolute; inset:0; width:100%; height:100%; }

/* ---- Cards: guests / articles / books ----------------------------------- */
.card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
@media (max-width:900px){ .card-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .card-grid{ grid-template-columns:1fr; } }
.content-card{ display:flex; flex-direction:column; }
.content-card__figure{ aspect-ratio:4/3; border-radius:var(--radius-sm); overflow:hidden; margin-bottom:1.1rem; }
.content-card__figure img{ width:100%; height:100%; object-fit:cover; }
.content-card .tag{ font-size:0.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin-bottom:.5rem; }
.content-card h4{ font-family:var(--font-display); font-size:1.18rem; color:var(--forest-deep); margin-bottom:.5rem; }
.content-card p{ font-size:var(--fs-small); color:var(--charcoal-soft); }

/* ---- Forms --------------------------------------------------------------*/
.form{ display:flex; flex-direction:column; gap:1.35rem; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.35rem; }
@media (max-width:600px){ .form-row{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:.5rem; }
.field label{ font-size:0.88rem; font-weight:600; color:var(--forest-deep); }
.field .hint{ font-size:0.82rem; color:var(--charcoal-soft); font-weight:400; }
.field input, .field textarea, .field select{
  padding:0.9rem 1.05rem; border:1.5px solid var(--line); border-radius:var(--radius-sm);
  background:var(--paper); color:var(--charcoal); width:100%;
}
.field textarea{ resize:vertical; min-height:130px; }
.field input:focus-visible, .field textarea:focus-visible, .field select:focus-visible{
  outline:2px solid var(--sage-deep); outline-offset:1px; border-color:var(--sage-deep);
}
.field-error{ font-size:0.82rem; color:#9C4A2E; display:none; }
.field.has-error input, .field.has-error textarea{ border-color:#9C4A2E; }
.field.has-error .field-error{ display:block; }
.radio-group{ display:flex; flex-wrap:wrap; gap:.8rem; }
.radio-chip{
  border:1.5px solid var(--line); border-radius:var(--radius-pill);
  padding:0.65rem 1.2rem; font-size:0.92rem; cursor:pointer; transition:all .2s ease;
}
.radio-chip input{ position:absolute; opacity:0; pointer-events:none; }
.radio-chip:has(input:checked){ background:var(--forest); color:var(--ivory); border-color:var(--forest); }
.radio-chip:has(input:focus-visible){ outline:2px solid var(--sage-deep); outline-offset:2px; }
.form-note{ font-size:0.85rem; color:var(--charcoal-soft); }
.form-status{ font-size:0.92rem; padding:.9rem 1.1rem; border-radius:var(--radius-sm); display:none; }
.form-status.is-success{ display:block; background:var(--forest-tint); color:var(--forest-deep); }
.form-status.is-error{ display:block; background:#F4E6E0; color:#8B3A22; }

/* ---- Page header (interior pages) ---------------------------------------*/
.page-header{
  padding-top: clamp(3.2rem, 6vw, 5.5rem);
  padding-bottom: clamp(2.6rem, 5vw, 4rem);
}
.page-header .eyebrow{ margin-bottom:1.2rem; }
.page-header h1{ font-size:var(--fs-h1); max-width:18ch; }
.page-header .lead{ margin-top:1.4rem; }
.breadcrumb{ font-size:0.85rem; color:var(--charcoal-soft); margin-bottom:1.6rem; display:flex; gap:.5rem; align-items:center; }
.breadcrumb a:hover{ text-decoration:underline; }

/* ---- Coming soon panel ---------------------------------------------------*/
.coming-soon{
  border:1.5px dashed var(--sage); border-radius:var(--radius-md);
  padding: clamp(2rem,4vw,3rem); display:flex; flex-direction:column; gap:1rem;
  background:var(--paper);
}
.coming-soon .eyebrow{ color:var(--sage-deep); }

/* ---- Utility -------------------------------------------------------------*/
.mt-0{ margin-top:0 !important; }
.center{ text-align:center; margin-inline:auto; }
.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;
}
.skip-link{
  position:absolute; left:1rem; top:-60px; background:var(--forest); color:var(--ivory);
  padding:.8rem 1.3rem; border-radius:var(--radius-sm); z-index:200; transition:top .2s ease;
}
.skip-link:focus{ top:1rem; }

/* Reveals are visible by default (no-JS / slow-JS safe). Only once main.js
   confirms IntersectionObserver is wired up does html.js-reveal switch them
   to animate in on scroll. */
html.js-reveal .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
html.js-reveal .reveal.is-visible{ opacity:1; transform:translateY(0); }

.tag-list{ display:flex; flex-wrap:wrap; gap:.6rem; }
.tag{
  font-size:0.8rem; padding:.4rem .85rem; border-radius:var(--radius-pill);
  border:1px solid var(--line); color:var(--charcoal-soft);
}

table.compare{ width:100%; border-collapse:collapse; }
table.compare th, table.compare td{ text-align:left; padding:0.9rem 1rem; border-bottom:1px solid var(--line); font-size:var(--fs-small); }
table.compare th{ font-family:var(--font-display); font-weight:600; color:var(--forest-deep); }

.org-list{ display:flex; flex-direction:column; }
.org-item{ display:flex; justify-content:space-between; align-items:center; gap:1.5rem; padding:1.5rem 0; border-top:1px solid var(--line); flex-wrap:wrap; }
.org-item:last-child{ border-bottom:1px solid var(--line); }
.org-item h4{ font-family:var(--font-display); font-size:1.1rem; color:var(--forest-deep); }
.org-item p{ font-size:var(--fs-small); color:var(--charcoal-soft); max-width:52ch; }

@media (max-width: 900px){
  .footer-top{ padding-block:3rem; }
}
