:root{
  --ink:#1C2426;
  --ink-2:#263437;
  --tan:#E2D4C0;
  --tan-2:#F3EBDC;
  --coral:#F0764B;
  --coral-deep:#D9633B;
  --teal:#4C7C88;
  --teal-deep:#3A5F69;
  --gold:#D2A32A;
  --gold-light:#F0CB7A;
  --text-dark:#211C15;
  --text-dim:#5A5346;
  --text-light:#F3EBDC;
  --text-light-dim:#C6BBA3;
  --max:1180px;
  --radius:2px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; font-size:18.5px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
}

body{
  margin:0;
  background:var(--tan);
  color:var(--text-dark);
  font-family:'Source Serif 4', Georgia, serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,.display{
  font-family:'Fraunces', Georgia, serif;
  font-weight:600;
  letter-spacing:-0.01em;
  margin:0;
}

.eyebrow{
  font-family:'Inter', sans-serif;
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--coral);
}

a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 28px;}

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--coral);
  outline-offset:3px;
}

/* ---------- NAV ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(28,36,38,0.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(210,163,42,0.25);
}
.nav-inner{
  max-width:var(--max); margin:0 auto; padding:12px 28px;
  display:flex; align-items:center; justify-content:space-between;
}
.brand{
  display:flex; align-items:center; gap:12px;
  font-family:'Fraunces', serif; color:var(--text-light);
  text-decoration:none; font-size:1.02rem; font-weight:600;
}
.brand img{ width:76px; height:76px; object-fit:contain; flex:none; }
.brand small{
  display:block; font-family:'Inter', sans-serif; font-weight:500;
  font-size:0.62rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--gold-light); margin-top:2px;
}
.nav-links{
  display:flex; align-items:center; gap:28px;
  font-family:'Inter', sans-serif; font-size:1rem; font-weight:500;
}
.nav-links a{
  text-decoration:none; color:var(--text-light-dim);
  padding:10px 4px; border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.nav-links a:hover, .nav-links a.active{color:var(--text-light); border-color:var(--coral);}
.nav-cta{
  background:var(--coral); color:var(--ink) !important;
  padding:13px 24px; border-radius:var(--radius);
  font-weight:600 !important; border-bottom:none !important;
}
.nav-cta:hover{background:var(--coral-deep); color:var(--text-light) !important;}
.nav-toggle{display:none; background:none; border:none; color:var(--text-light); font-size:1.5rem; cursor:pointer;}

@media (max-width:980px){
  .nav-links{
    position:fixed; inset:64px 0 auto 0; background:var(--ink);
    flex-direction:column; align-items:flex-start; gap:0;
    padding:8px 28px 20px; border-bottom:1px solid rgba(210,163,42,0.25);
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:transform .25s ease, opacity .25s ease;
    max-height:80vh; overflow-y:auto;
  }
  .nav-links.open{transform:translateY(0); opacity:1; pointer-events:auto;}
  .nav-links a{width:100%; padding:15px 0; font-size:1.05rem; border-bottom:1px solid rgba(210,163,42,0.12);}
  .nav-cta{margin-top:10px; display:inline-block;}
  .nav-toggle{display:block;}
}

/* ---------- PAGE HERO (sub-pages) ---------- */
.page-hero{
  background:
    radial-gradient(ellipse at 18% -10%, rgba(240,203,122,0.16), transparent 55%),
    radial-gradient(ellipse at 85% 110%, rgba(76,124,136,0.28), transparent 50%),
    linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
  color:var(--text-light);
  padding:64px 0 56px;
}
.page-hero .eyebrow{color:var(--gold-light);}
.page-hero h1{font-size:clamp(2.1rem,5vw,3.2rem); margin-top:10px;}
.page-hero p{font-family:'Inter', sans-serif; color:var(--text-light-dim); max-width:620px; margin-top:16px; font-size:1.02rem;}

/* ---------- reveal on scroll ---------- */
[data-reveal]{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
[data-reveal].in-view{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){ [data-reveal]{opacity:1; transform:none; transition:none;} }

/* ---------- SECTION SHELL ---------- */
section{padding:88px 0;}
.section-head{max-width:640px; margin-bottom:48px;}
.section-head h2{font-size:clamp(1.9rem, 3.6vw, 2.6rem); margin-top:10px; color:var(--text-dark);}
.section-head p{font-family:'Inter', sans-serif; color:var(--text-dim); font-size:1rem; margin-top:14px;}
.section-head.on-dark h2{color:var(--text-light);}
.section-head.on-dark p{color:var(--text-light-dim);}
.section-head.on-dark .eyebrow{color:var(--gold-light);}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

.btn{
  font-family:'Inter', sans-serif; font-weight:600; font-size:0.92rem;
  padding:14px 24px; border-radius:var(--radius); text-decoration:none;
  display:inline-flex; align-items:center; gap:8px; border:none; cursor:pointer;
  transition:transform .18s ease, background .18s ease, color .18s ease;
}
.btn-primary{background:var(--coral); color:var(--ink);}
.btn-primary:hover{background:var(--coral-deep); color:var(--text-light); transform:translateY(-2px);}
.btn-ghost{border:1px solid rgba(243,235,220,0.35); color:var(--text-light); background:transparent;}
.btn-ghost:hover{border-color:var(--gold-light); color:var(--gold-light); transform:translateY(-2px);}
.btn-outline{border:1px solid rgba(76,124,136,0.4); color:var(--teal-deep); background:transparent;}
.btn-outline:hover{background:var(--teal); color:var(--text-light); border-color:var(--teal);}

/* ---------- CARDS shared ---------- */
.card-dark{ background:var(--ink-2); border:1px solid rgba(210,163,42,0.2); color:var(--text-light); }
.card-light{ background:var(--tan-2); border:1px solid rgba(76,124,136,0.2); }

/* ---------- TESTIMONIALS ---------- */
.testimonials{background:var(--tan-2);}
.t-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; }
.t-card{
  background:var(--tan); border:1px solid rgba(76,124,136,0.2);
  padding:26px 24px; display:flex; flex-direction:column; gap:14px;
}
.t-quote{ font-family:'Fraunces', serif; font-style:italic; color:var(--text-dark); font-size:1.02rem; line-height:1.5; }
.t-quote::before{content:"\201C"; color:var(--coral); font-size:1.3em; line-height:0;}
.t-meta{
  font-family:'Inter', sans-serif; font-size:0.8rem; color:var(--teal-deep);
  font-weight:600; margin-top:auto; padding-top:8px; border-top:1px solid rgba(76,124,136,0.15);
}
.t-card.wide{grid-column:span 2;}
@media (max-width:940px){ .t-grid{grid-template-columns:1fr 1fr;} .t-card.wide{grid-column:span 2;} }
@media (max-width:640px){ .t-grid{grid-template-columns:1fr;} .t-card.wide{grid-column:span 1;} }

/* ---------- FORMS ---------- */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; max-width:760px; }
.form-grid .full{grid-column:1/-1;}
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{ font-family:'Inter', sans-serif; font-size:0.82rem; font-weight:600; color:var(--text-dim); }
.field input, .field select, .field textarea{
  font-family:'Inter', sans-serif; font-size:0.95rem;
  padding:12px 14px; border-radius:var(--radius); border:1px solid rgba(76,124,136,0.35);
  background:var(--tan-2); color:var(--text-dark);
}
.field textarea{resize:vertical; min-height:120px;}
@media (max-width:680px){ .form-grid{grid-template-columns:1fr;} }

/* ---------- LIST STYLE (giving ways, office hours etc) ---------- */
.info-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px; }
.info-list li{
  display:flex; gap:16px; align-items:flex-start;
  font-family:'Inter', sans-serif; font-size:0.95rem; color:var(--text-dim);
  padding-bottom:16px; border-bottom:1px solid rgba(76,124,136,0.15);
}
.info-list strong{ color:var(--text-dark); min-width:110px; flex:none; font-weight:600; }

/* ---------- FILTER BAR ---------- */
.filter-bar{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:36px; }
.filter-btn{
  font-family:'Inter', sans-serif; font-size:0.82rem; font-weight:600;
  padding:8px 16px; border-radius:20px; border:1px solid rgba(243,235,220,0.3);
  background:transparent; color:var(--text-light-dim); cursor:pointer;
  transition:background .18s ease, color .18s ease, border-color .18s ease;
}
.filter-btn:hover{border-color:var(--gold-light); color:var(--gold-light);}
.filter-btn.active{background:var(--coral); border-color:var(--coral); color:var(--ink);}

/* ---------- EPISODE / BLOG CARDS ---------- */
.ep-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:26px; }
.ep-card{
  text-decoration:none; color:var(--text-light);
  background:var(--ink-2); border:1px solid rgba(210,163,42,0.2);
  border-radius:var(--radius); overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform .22s ease, border-color .22s ease;
}
.ep-card:hover{transform:translateY(-5px); border-color:var(--coral);}
.ep-thumb{ position:relative; aspect-ratio:16/9; background:#0d1416; overflow:hidden; }
.ep-thumb img{width:100%; height:100%; object-fit:cover; opacity:0.88;}
.ep-play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.ep-play span{
  width:52px; height:52px; border-radius:50%;
  background:rgba(28,36,38,0.55); border:1px solid rgba(243,235,220,0.5);
  display:flex; align-items:center; justify-content:center;
  color:var(--text-light); transition:background .2s ease, transform .2s ease;
}
.ep-card:hover .ep-play span{background:var(--coral); transform:scale(1.08); border-color:var(--coral);}
.ep-body{padding:20px 22px 24px; display:flex; flex-direction:column; gap:8px; flex:1;}
.ep-tag{font-family:'Inter', sans-serif; font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-light);}
.ep-title{font-family:'Fraunces', serif; font-size:1.12rem; font-weight:600; line-height:1.3;}
.ep-desc{font-family:'Inter', sans-serif; font-size:0.86rem; color:var(--text-light-dim); margin:0;}
@media (max-width:940px){ .ep-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .ep-grid{grid-template-columns:1fr;} }

.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.blog-card{
  text-decoration:none; color:var(--text-dark);
  background:var(--tan-2); border:1px solid rgba(76,124,136,0.2);
  padding:26px; display:flex; flex-direction:column; gap:10px;
  transition:transform .2s ease, border-color .2s ease;
}
.blog-card:hover{transform:translateY(-4px); border-color:var(--coral);}
.blog-card .eyebrow{font-size:0.66rem;}
.blog-card h3{font-size:1.08rem; line-height:1.3;}
.blog-card p{font-family:'Inter',sans-serif; font-size:0.87rem; color:var(--text-dim); margin:0;}
.blog-card .read-more{ font-family:'Inter',sans-serif; font-size:0.82rem; font-weight:600; color:var(--teal-deep); margin-top:auto; }
@media (max-width:900px){ .blog-grid{grid-template-columns:1fr;} }

/* ---------- BOOK / RESOURCE CARDS ---------- */
.book-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:30px; }
.book-card{
  background:var(--tan-2); border:1px solid rgba(76,124,136,0.2);
  display:grid; grid-template-columns:110px 1fr;
}
.book-cover{
  background:linear-gradient(160deg, var(--ink) 0%, var(--ink-2) 100%);
  display:flex; align-items:center; justify-content:center; padding:14px;
}
.book-cover .mark{ font-family:'Fraunces', serif; color:var(--coral); font-size:1.5rem; text-align:center; line-height:1.15;}
.book-info{padding:22px 20px; display:flex; flex-direction:column; gap:10px;}
.book-info .eyebrow{font-size:0.66rem;}
.book-info h3{font-size:1.05rem; line-height:1.3;}
.book-info p{font-family:'Inter', sans-serif; font-size:0.85rem; color:var(--text-dim); margin:0;}
.book-info a{
  font-family:'Inter', sans-serif; font-size:0.82rem; font-weight:600; color:var(--teal-deep);
  text-decoration:none; margin-top:auto;
}
.book-card.soon{opacity:0.75;}
@media (max-width:940px){ .book-grid{grid-template-columns:1fr; max-width:520px; margin:0 auto;} }

/* ---------- SUBSCRIBE / CTA BAND ---------- */
.cta-band{
  background:
    radial-gradient(ellipse at 20% 20%, rgba(240,118,75,0.14), transparent 55%),
    var(--ink);
  color:var(--text-light); text-align:center;
}
.cta-band .wrap{max-width:640px;}
.cta-band h2{font-size:clamp(1.8rem,4vw,2.5rem); margin-top:10px; color:var(--text-light);}
.cta-band p{font-family:'Inter', sans-serif; color:var(--text-light-dim); margin-top:14px;}
.sub-form{ margin-top:32px; display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.sub-form input{
  font-family:'Inter', sans-serif; font-size:0.95rem;
  padding:14px 16px; border-radius:var(--radius); border:1px solid rgba(243,235,220,0.3);
  background:rgba(243,235,220,0.06); color:var(--text-light); min-width:260px;
}
.sub-form input::placeholder{color:var(--text-light-dim);}

/* ---------- FOOTER ---------- */
footer{background:var(--ink); border-top:1px solid rgba(210,163,42,0.2); padding:48px 0 32px; color:var(--text-light-dim);}
.footer-grid{ display:flex; justify-content:space-between; align-items:flex-start; gap:32px; flex-wrap:wrap; }
.footer-brand{display:flex; align-items:center; gap:10px; font-family:'Fraunces', serif; color:var(--text-light); font-size:1.05rem;}
.footer-brand img{width:76px; height:76px;}
.footer-verse{font-family:'Fraunces', serif; font-style:italic; color:var(--text-light); font-size:1.05rem; max-width:400px; margin-top:14px; line-height:1.55;}
.footer-cols{display:flex; gap:56px; flex-wrap:wrap;}
.footer-col h4{font-family:'Inter',sans-serif; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-light); margin-bottom:12px;}
.footer-col{display:flex; flex-direction:column; gap:9px; font-family:'Inter', sans-serif; font-size:0.86rem;}
.footer-col a{text-decoration:none; color:var(--text-light-dim); transition:color .2s ease;}
.footer-col a:hover{color:var(--gold-light);}
.footer-bottom{
  margin-top:38px; padding-top:22px; border-top:1px solid rgba(210,163,42,0.12);
  font-family:'Inter', sans-serif; font-size:0.78rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
}

/* ---------- NEWSLETTER GATE ---------- */
.gated-content{ display:none; }
.gated-content.revealed{ display:block; }
.gate-box{
  margin:32px 0; padding:32px 28px; background:var(--tan-2);
  border:1px solid rgba(76,124,136,0.3); text-align:center;
}
.gate-box.hidden{ display:none; }
.gate-box .gate-eyebrow{ color:var(--coral); }
.gate-box h3{ font-size:1.35rem; margin-top:8px; }
.gate-box p{ font-family:'Inter',sans-serif; font-size:0.92rem; color:var(--text-dim); margin-top:10px; max-width:440px; margin-left:auto; margin-right:auto; }
.gate-form{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:22px; }
.gate-form input{
  font-family:'Inter', sans-serif; font-size:0.95rem;
  padding:12px 14px; border-radius:var(--radius); border:1px solid rgba(76,124,136,0.35);
  background:var(--tan); color:var(--text-dark); min-width:240px;
}
.gate-status{ font-family:'Inter',sans-serif; font-size:0.85rem; margin-top:14px; min-height:20px; }
.gate-status.success{ color:var(--teal-deep); font-weight:600; }
.gate-status.error{ color:var(--coral-deep); }

/* ---------- NEWSLETTER PROMO SECTION ---------- */
.newsletter-promo{
  background:linear-gradient(160deg, var(--ink) 0%, var(--ink-2) 100%);
  color:var(--text-light); padding:48px 40px; display:grid;
  grid-template-columns:1.3fr 1fr; gap:40px; align-items:center;
  border:1px solid rgba(210,163,42,0.25);
}
.newsletter-promo h2{color:var(--text-light);}
.newsletter-promo p{font-family:'Inter',sans-serif; color:var(--text-light-dim); margin-top:12px;}
.newsletter-promo .sub-form{justify-content:flex-start; margin-top:0;}
@media (max-width:760px){ .newsletter-promo{grid-template-columns:1fr;} .newsletter-promo .sub-form{justify-content:center;} }

.article{ max-width:720px; margin:0 auto; }
.article h1{font-size:clamp(2rem,4.5vw,2.7rem); line-height:1.15;}
.article .meta{font-family:'Inter',sans-serif; font-size:0.85rem; color:var(--text-light-dim); margin-top:16px;}
.article-body{max-width:720px; margin:0 auto; padding-top:56px;}
.article-body p{font-size:1.08rem; color:var(--text-dark); margin-top:20px;}
.article-body blockquote{
  font-family:'Fraunces', serif; font-style:italic; font-size:1.15rem; color:var(--teal-deep);
  border-left:2px solid var(--coral); padding-left:22px; margin:32px 0;
}
