/* ==========================================================================
   Hillsborough Psychological Services — site stylesheet
   Brand: cartographic wayfinding. Cream field, River Blue structure,
   Trading Path Gold used sparingly. EB Garamond display + Mulish body.
   ========================================================================== */

:root{
  --river:#2F4A5C;
  --river-lt:#3C5C72;
  --sage:#6B7F6A;
  --sage-lt:#8A9A88;
  --gold:#C1A47C;
  --gold-dk:#A2814F;      /* darker gold for link text on cream (contrast) */
  --taupe:#BDB6A8;
  --cream:#F4F1E8;
  --offwhite:#FBFAF5;
  --ink:#2A3A43;          /* body text */
  --muted:#6E7B77;        /* secondary text */
  --line:#DBD5C7;         /* hairlines on cream */

  --serif:"EB Garamond", Georgia, "Times New Roman", serif;
  --sans:"Mulish", system-ui, -apple-system, sans-serif;

  --wrap:1140px;
  --narrow:720px;
  --pad:clamp(1.2rem, 5vw, 2.5rem);
  --radius:14px;
  --shadow:0 18px 44px -28px rgba(47,74,92,.45);
  --shadow-sm:0 8px 22px -16px rgba(47,74,92,.4);
}

/* ---------- reset / base ---------- */
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  font-size:1.02rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%; display:block;}
a{color:var(--river); text-decoration:none;}
h1,h2,h3,h4{font-family:var(--serif); color:var(--river); font-weight:500; line-height:1.12; margin:0;}
p{margin:0 0 1.05rem;}
p:last-child{margin-bottom:0;}
::selection{background:var(--gold); color:#2b241a;}

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

/* ---------- layout ---------- */
.wrap{width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad);}
.narrow{max-width:var(--narrow); margin-inline:auto;}
.section{padding-block:clamp(3.4rem, 7.5vw, 6.4rem);}
.section--tight{padding-block:clamp(2.4rem, 5vw, 4rem);}
.section--river{background:var(--river); color:#E7E9E4;}
.section--sage{background:#EEF0EA;}
.section--band{position:relative; overflow:hidden;}
.section--band::before{
  content:""; position:absolute; inset:0;
  background:url(assets/topo-contours.svg) center/cover no-repeat;
  opacity:.22; pointer-events:none;
}
.section--band > .wrap{position:relative; z-index:1;}
.center{text-align:center;}
.stack-sm > * + *{margin-top:.6rem;}

/* ---------- typography helpers ---------- */
.display{font-size:clamp(2.6rem, 6.2vw, 4.6rem); letter-spacing:-.01em;}
.h1{font-size:clamp(2.05rem, 4.8vw, 3.25rem);}
.h2{font-size:clamp(1.62rem, 3.4vw, 2.35rem);}
.h3{font-size:clamp(1.18rem, 2.2vw, 1.5rem);}
.lead{font-size:clamp(1.08rem, 1.7vw, 1.32rem); line-height:1.55; color:var(--ink);}
.muted{color:var(--muted);}
.serif{font-family:var(--serif);}

.eyebrow{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--sans); font-weight:700; font-size:.75rem;
  letter-spacing:.19em; text-transform:uppercase; color:var(--sage);
  margin:0 0 1rem;
}
.eyebrow::before{
  content:""; width:22px; height:2px; background:var(--gold); display:inline-block;
}
.section--river .eyebrow{color:var(--gold);}
.section--river .eyebrow::before{background:var(--gold);}
.section--river h1,.section--river h2,.section--river h3{color:#FBFAF5;}

/* prose column */
.prose p{max-width:66ch;}
.prose > * + h2{margin-top:2.4rem;}
.prose > * + h3{margin-top:1.9rem;}
.prose h2 + p, .prose h3 + p{margin-top:.7rem;}
.prose a:not(.btn){color:var(--gold-dk); border-bottom:1px solid var(--gold); padding-bottom:1px;}
.prose a:not(.btn):hover{color:var(--river);}

/* ---------- divider (gold rule + diamond) ---------- */
.divider{display:flex; align-items:center; justify-content:center; gap:.9rem; margin:0 auto;}
.divider::before,.divider::after{content:""; height:1px; width:min(90px,14vw); background:var(--gold);}
.divider i{width:7px; height:7px; background:var(--gold); transform:rotate(45deg); display:block;}
.divider--left{justify-content:flex-start;}
.divider--left::before{display:none;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--sans); font-weight:700; font-size:.92rem; letter-spacing:.01em;
  padding:.82rem 1.5rem; border-radius:999px; cursor:pointer;
  border:1.5px solid transparent; transition:transform .18s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
  text-align:center; line-height:1;
}
.btn:active{transform:translateY(1px);}
.btn--gold{background:var(--gold); color:#2b241a; box-shadow:var(--shadow-sm);}
.btn--gold:hover{background:#cdb28c; transform:translateY(-2px);}
.btn--river{background:var(--river); color:var(--cream);}
.btn--river:hover{background:var(--river-lt); transform:translateY(-2px);}
.btn--ghost{background:transparent; color:var(--river); border-color:var(--taupe);}
.btn--ghost:hover{border-color:var(--river); background:rgba(47,74,92,.04);}
.section--river .btn--ghost{color:var(--cream); border-color:rgba(244,241,232,.4);}
.section--river .btn--ghost:hover{border-color:var(--gold); color:var(--gold);}
.btn .arw{font-size:1.05em; transition:transform .2s ease;}
.btn:hover .arw{transform:translateX(3px);}

.btn-row{display:flex; flex-wrap:wrap; gap:.85rem;}
.btn-row.center{justify-content:center;}

/* text link with arrow */
.tlink{
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:var(--sans); font-weight:700; font-size:.92rem; color:var(--river);
  border-bottom:2px solid var(--gold); padding-bottom:2px;
}
.tlink .arw{transition:transform .2s ease;}
.tlink:hover .arw{transform:translateX(3px);}
.section--river .tlink{color:var(--gold);}

/* ==========================================================================
   Header / nav
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(244,241,232,.86);
  backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:70px;}
.brand{display:flex; align-items:center; gap:.7rem;}
.brand-mark{width:42px; height:42px; flex:0 0 auto;}
.brand-word{
  font-family:var(--serif); font-weight:600; color:var(--river);
  text-transform:uppercase; letter-spacing:.14em; line-height:1.18;
  font-size:clamp(.66rem,1.5vw,.78rem);
}
.site-nav{display:flex; align-items:center; gap:1.6rem;}
.site-nav a:not(.btn){
  font-family:var(--sans); font-weight:600; font-size:.92rem; color:var(--river);
  padding:.3rem 0; position:relative;
}
.site-nav a:not(.btn)::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .22s ease;
}
.site-nav a:not(.btn):hover::after,
.site-nav a[aria-current="page"]::after{transform:scaleX(1);}
.site-nav a[aria-current="page"]{color:var(--river-lt);}
.nav-cta{padding:.6rem 1.15rem; font-size:.86rem;}

.nav-toggle{
  display:none; flex-direction:column; gap:5px; width:44px; height:40px;
  align-items:center; justify-content:center; background:transparent; border:0; cursor:pointer;
}
.nav-toggle span{width:24px; height:2px; background:var(--river); transition:transform .25s ease, opacity .2s ease;}

@media (max-width:900px){
  .nav-toggle{display:flex;}
  .site-nav{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--cream); border-bottom:1px solid var(--line);
    padding:.4rem var(--pad) 1.2rem;
    box-shadow:var(--shadow); transform-origin:top;
    max-height:0; overflow:hidden; opacity:0; transition:max-height .3s ease, opacity .25s ease, padding .3s ease;
  }
  .site-nav.open{max-height:80vh; opacity:1; padding-block:.6rem 1.3rem;}
  .site-nav a:not(.btn){padding:.85rem .2rem; border-bottom:1px solid var(--line);}
  .site-nav a:not(.btn)::after{display:none;}
  .nav-cta{margin-top:1rem; justify-content:center;}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{position:relative; overflow:hidden; background:var(--cream); isolation:isolate;}
.hero::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background:url(assets/topo-contours.svg) center/cover no-repeat; opacity:.28;
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(130% 90% at 50% -10%, rgba(60,92,114,.10) 0%, rgba(244,241,232,0) 45%),
    linear-gradient(180deg, rgba(244,241,232,0) 55%, rgba(244,241,232,.92) 100%);
}
.hero-inner{padding-block:clamp(3.6rem, 9vw, 7rem); text-align:center;}
.hero .display{max-width:16ch; margin-inline:auto;}
.hero .lead{max-width:60ch; margin:1.4rem auto 0; color:var(--ink);}
.hero-tagline{
  font-family:var(--serif); font-style:italic; font-size:clamp(1.05rem,1.7vw,1.28rem);
  color:var(--sage); margin-top:1.4rem;
}
.hero .btn-row{margin-top:2rem;}
.hero-mark{width:120px; height:120px; margin:0 auto 1.6rem; opacity:.95;}

/* small compass motif used as section marker */
.mark-motif{width:40px; height:40px; opacity:.9;}

/* ==========================================================================
   Two doors
   ========================================================================== */
.doors{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem;}
.door{
  position:relative; display:flex; flex-direction:column; gap:.7rem;
  background:var(--offwhite); border:1px solid var(--line); border-radius:var(--radius);
  padding:2rem 1.9rem; overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.door::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--gold);
  transform:scaleY(0); transform-origin:top; transition:transform .3s ease;
}
.door:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--taupe);}
.door:hover::before{transform:scaleY(1);}
.door .door-mark{width:34px; height:34px; margin-bottom:.3rem;}
.door h3{font-size:1.4rem;}
.door p{color:var(--muted); font-size:.98rem; flex:1;}
.door .tlink{margin-top:.4rem; align-self:flex-start;}

/* ==========================================================================
   Cards / feature grids
   ========================================================================== */
.grid{display:grid; gap:1.3rem;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}

.card{
  background:var(--offwhite); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.7rem 1.6rem; transition:transform .2s ease, box-shadow .2s ease;
}
.card--lift:hover{transform:translateY(-3px); box-shadow:var(--shadow-sm);}
.card h3{font-size:1.28rem; margin-bottom:.5rem;}
.card p{color:var(--muted); font-size:.97rem; margin-bottom:0;}
.card .kicker{
  font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold-dk); display:block; margin-bottom:.6rem;
}
.card-mark{width:30px; height:30px; margin-bottom:.9rem;}

/* assessment type rows */
.types{display:grid; gap:1rem;}
.type-row{
  display:grid; grid-template-columns:auto 1fr; gap:1.2rem; align-items:start;
  background:var(--offwhite); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.5rem 1.6rem;
}
.type-row .type-ico{
  width:46px; height:46px; border-radius:50%; background:#EEF0EA;
  display:grid; place-items:center; color:var(--river); flex:0 0 auto;
}
.type-row .type-ico svg{width:24px; height:24px;}
.type-row h3{font-size:1.22rem; margin-bottom:.35rem;}
.type-row p{margin-bottom:0; color:var(--muted); font-size:.97rem;}

/* ==========================================================================
   Callout / quote
   ========================================================================== */
.callout{
  background:#EEF0EA; border-left:4px solid var(--gold);
  border-radius:0 var(--radius) var(--radius) 0;
  padding:1.6rem 1.8rem; margin:0;
}
.callout p{font-family:var(--serif); font-size:clamp(1.15rem,2vw,1.5rem); line-height:1.4; color:var(--river); margin:0;}
.callout cite{display:block; margin-top:.8rem; font-family:var(--sans); font-style:normal; font-weight:700; font-size:.85rem; letter-spacing:.04em; color:var(--sage);}
.section--river .callout{background:rgba(255,255,255,.06); border-left-color:var(--gold);}
.section--river .callout p{color:#FBFAF5;}

/* pull statement (big centered serif) */
.statement{font-family:var(--serif); font-size:clamp(1.5rem,3.3vw,2.4rem); line-height:1.3; color:var(--river); max-width:20ch;}

/* ==========================================================================
   Tiers (Therapeutic Assessment)
   ========================================================================== */
.tiers{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem;}
.tier{
  background:var(--offwhite); border:1px solid var(--line); border-radius:var(--radius);
  padding:2rem 1.9rem; display:flex; flex-direction:column;
}
.tier--flag{border:1.5px solid var(--gold); box-shadow:var(--shadow-sm); position:relative;}
.tier--flag::after{
  content:"The flagship"; position:absolute; top:-.75rem; right:1.4rem;
  background:var(--gold); color:#2b241a; font-family:var(--sans); font-weight:700;
  font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; padding:.28rem .7rem; border-radius:999px;
}
.tier .tier-name{font-family:var(--serif); font-size:1.5rem; color:var(--river); margin-bottom:.3rem;}
.tier .tier-sub{font-size:.9rem; color:var(--muted); margin-bottom:1.1rem;}
.tier ul{list-style:none; margin:0 0 1.4rem; padding:0; display:grid; gap:.65rem;}
.tier li{display:grid; grid-template-columns:auto 1fr; gap:.6rem; font-size:.96rem; color:var(--ink);}
.tier li::before{content:""; width:8px; height:8px; margin-top:.5rem; background:var(--gold); transform:rotate(45deg);}
.tier .btn{margin-top:auto;}

/* add-on buckets */
.addons{display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem;}
.addon h3{font-size:1.15rem; margin-bottom:.5rem; color:var(--river);}
.addon .verb{color:var(--gold-dk); font-style:italic; font-family:var(--serif);}
.addon ul{list-style:none; margin:.6rem 0 0; padding:0; display:grid; gap:.5rem;}
.addon li{font-size:.94rem; color:var(--muted); padding-left:1.1rem; position:relative;}
.addon li::before{content:"—"; position:absolute; left:0; color:var(--gold);}

/* ==========================================================================
   Process — "the trail"
   ========================================================================== */
.trail{position:relative; margin-top:2.5rem; display:grid; gap:2.1rem;}
.trail::before{
  content:""; position:absolute; left:19px; top:8px; bottom:8px; width:2px;
  background:repeating-linear-gradient(var(--gold) 0 8px, transparent 8px 16px);
}
.trail-step{position:relative; display:grid; grid-template-columns:auto 1fr; gap:1.3rem; align-items:start;}
.trail-dot{
  width:40px; height:40px; border-radius:50%; background:var(--cream);
  border:2px solid var(--river); color:var(--river); display:grid; place-items:center;
  font-family:var(--serif); font-weight:600; font-size:1.15rem; z-index:1; flex:0 0 auto;
}
.trail-step:last-child .trail-dot{border-color:var(--gold); background:var(--gold); color:#2b241a;}
.trail-step h3{font-size:1.2rem; margin-bottom:.35rem;}
.trail-step p{margin-bottom:0; color:var(--muted); font-size:.98rem;}

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq{border-bottom:1px solid var(--line);}
.faq summary{
  list-style:none; cursor:pointer; padding:1.15rem 2.4rem 1.15rem 0; position:relative;
  font-family:var(--serif); font-size:1.15rem; color:var(--river); font-weight:500;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:"+"; position:absolute; right:.4rem; top:50%; transform:translateY(-50%);
  font-family:var(--sans); font-weight:400; font-size:1.5rem; color:var(--gold-dk); transition:transform .2s ease;
}
.faq[open] summary::after{content:"–";}
.faq .faq-body{padding:0 0 1.3rem; color:var(--muted); max-width:70ch;}
.faq .faq-body p{margin-bottom:.8rem;}

/* ==========================================================================
   Media / figures (photo slots that look good empty)
   ========================================================================== */
.figure{border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:#EEF0EA;}
.figure img{width:100%; height:100%; object-fit:cover;}
.figure figcaption{font-size:.8rem; color:var(--muted); padding:.6rem .9rem; background:var(--offwhite);}
.media-slot{
  position:relative; border-radius:var(--radius); overflow:hidden;
  background:linear-gradient(135deg,#EAECE4,#E3E7DD);
  border:1px dashed var(--taupe); min-height:280px; display:grid; place-items:center;
}
.media-slot::before{
  content:""; position:absolute; inset:0; background:url(assets/topo-contours.svg) center/cover; opacity:.4;
}
.media-slot .slot-note{position:relative; z-index:1; text-align:center; color:var(--sage); font-family:var(--sans); font-size:.82rem; letter-spacing:.03em; max-width:26ch; padding:1rem;}
.media-slot .slot-note svg{width:34px; height:34px; margin:0 auto .6rem; opacity:.7;}

.portrait{border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-sm);}
.portrait img{width:100%; height:auto; display:block;}

/* two-column split (text + media) */
.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.6rem,4vw,3.2rem); align-items:center;}
.split--wide-text{grid-template-columns:1.15fr .85fr;}

/* ==========================================================================
   Contact form
   ========================================================================== */
.form-card{
  background:var(--offwhite); border:1px solid var(--line); border-radius:var(--radius);
  padding:clamp(1.6rem,4vw,2.6rem); box-shadow:var(--shadow-sm);
}
.field{margin-bottom:1.1rem;}
.field label{display:block; font-family:var(--sans); font-weight:700; font-size:.82rem; letter-spacing:.03em; color:var(--river); margin-bottom:.4rem;}
.field input,.field textarea{
  width:100%; font-family:var(--sans); font-size:1rem; color:var(--ink);
  background:var(--cream); border:1.5px solid var(--line); border-radius:10px; padding:.8rem .95rem;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.field input:focus,.field textarea:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(193,164,124,.18);}
.field textarea{resize:vertical; min-height:130px;}
.field .hint{font-size:.78rem; color:var(--muted); margin-top:.35rem;}
.form-note{font-size:.82rem; color:var(--muted); margin-top:.4rem;}
.form-msg{display:none; border-radius:10px; padding:.9rem 1.1rem; font-size:.92rem; margin-top:1rem;}
.form-msg.show{display:block;}
.form-msg.ok{background:#e8efe6; color:#3a5b3a; border:1px solid #c4d8bf;}
.form-msg.err{background:#f6e9e6; color:#7a3b2f; border:1px solid #e2c3bb;}
.honey{position:absolute; left:-9999px; opacity:0;}

/* contact detail list */
.contact-list{list-style:none; margin:0; padding:0; display:grid; gap:1rem;}
.contact-list li{display:grid; grid-template-columns:auto 1fr; gap:.9rem; align-items:start;}
.contact-list .ci{width:38px; height:38px; border-radius:50%; background:#EEF0EA; display:grid; place-items:center; color:var(--river);}
.contact-list .ci svg{width:19px; height:19px;}
.contact-list .lab{font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--sage); font-weight:700;}
.contact-list a,.contact-list span{color:var(--ink); font-size:1rem;}
.contact-list a:hover{color:var(--gold-dk);}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{background:var(--river); color:#CBD3D0;}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1.2fr; gap:2.2rem; padding-block:clamp(3rem,6vw,4.2rem) 2rem;}
.footer-brand img{width:min(260px,80%); height:auto; margin-bottom:1rem;}
.footer-place{font-family:var(--serif); font-style:italic; color:var(--gold); font-size:1.05rem; margin:0;}
.footer-col h3{font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:#8FA0A6; margin:0 0 1rem;}
.footer-col{display:flex; flex-direction:column; gap:.6rem;}
.footer-col a,.footer-col span{color:#CBD3D0; font-size:.94rem;}
.footer-col a:hover{color:var(--gold);}
.footer-fine{border-top:1px solid rgba(255,255,255,.12); padding-block:1.6rem 2.4rem;}
.foot-crisis{max-width:70ch; font-size:.85rem; line-height:1.55; color:#DDE3E0; margin:0 0 1rem;}
.foot-crisis a{color:var(--gold); font-weight:700;}
.foot-crisis a:hover{text-decoration:underline;}
.foot-disclaimer{font-size:.76rem; line-height:1.55; color:#8FA0A6; margin:0;}
.foot-disclaimer a{color:#B9C3C0; border-bottom:1px solid rgba(255,255,255,.25);}
.foot-disclaimer a:hover{color:var(--gold);}
.foot-credit{font-size:.7rem; line-height:1.5; color:#6E7F85; margin:.75rem 0 0; letter-spacing:.01em;}
.foot-credit a{color:#88979C; border-bottom:1px solid rgba(255,255,255,.14);}
.foot-credit a:hover{color:var(--gold);}

/* ==========================================================================
   CTA band
   ========================================================================== */
.cta-band{text-align:center;}
.cta-band .h2{max-width:20ch; margin:0 auto 1rem;}
.cta-band p{max-width:56ch; margin:0 auto 1.8rem;}

/* ==========================================================================
   Reveal on scroll
   ========================================================================== */
/* Content is ALWAYS visible by default. Reveal animation only engages once
   site.js confirms it's running by adding html.reveal-ready. If CSS loads but
   JS fails, or JS is blocked/slow, everything simply shows — never blank. */
html.reveal-ready [data-reveal]{opacity:0; transform:translateY(18px);}
html.reveal-ready [data-reveal]{transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);}
html.reveal-ready [data-reveal].is-visible{opacity:1; transform:none;}
html.reveal-ready [data-reveal][data-delay="1"]{transition-delay:.08s;}
html.reveal-ready [data-reveal][data-delay="2"]{transition-delay:.16s;}
html.reveal-ready [data-reveal][data-delay="3"]{transition-delay:.24s;}
@media (prefers-reduced-motion: reduce){
  html.reveal-ready [data-reveal]{opacity:1 !important; transform:none !important;}
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:860px){
  .grid-3,.grid-4{grid-template-columns:1fr 1fr;}
  .addons{grid-template-columns:1fr;}
  .split,.split--wide-text{grid-template-columns:1fr; gap:2rem;}
  .split .split-media{order:-1;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:1.8rem;}
  .footer-brand{grid-column:1 / -1;}
}
@media (max-width:620px){
  .doors,.grid-2,.grid-3,.grid-4,.tiers{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .hero-inner{text-align:left;}
  .hero .display,.hero .lead{margin-inline:0;}
  .btn-row.center{justify-content:flex-start;}
  .type-row{grid-template-columns:1fr;}
  .type-row .type-ico{margin-bottom:.2rem;}
}

/* ===== v3 additions: status pill, fee schedule, credentials ===== */
.pill{display:inline-block;font:700 .7rem/1 'Mulish',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#2F4A5C;background:rgba(193,164,124,.16);border:1px solid rgba(193,164,124,.55);border-radius:999px;padding:.5rem 1rem;margin-bottom:1.2rem}
.fee-group{margin-top:2.4rem}
.fee-group + .fee-group{margin-top:3.2rem}
.fee-item{padding:1.2rem 0;border-bottom:1px solid rgba(47,74,92,.13)}
.fee-item:last-child{border-bottom:none}
.fee-line{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.fee-name{font-family:'EB Garamond',serif;font-size:1.3rem;font-weight:600;color:#2F4A5C;margin:0}
.fee-price{font-family:'EB Garamond',serif;font-size:1.3rem;font-weight:600;color:#A2814F;white-space:nowrap}
.fee-desc{margin:.5rem 0 0;max-width:70ch;color:#5A6672;font-size:.98rem}
.tag-soon{display:inline-block;font:700 .6rem/1 'Mulish',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#6B7F6A;border:1px solid rgba(107,127,106,.55);border-radius:999px;padding:.32rem .62rem;margin-left:.55rem;vertical-align:middle}
.fee-core{background:#FBFAF5;border:1px solid #d8d3c6;border-radius:12px;padding:1.5rem 1.6rem;margin-top:2.4rem}
.fee-core-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.fee-tag{display:inline-block;font:700 .62rem/1 'Mulish',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#463415;background:#C1A47C;border-radius:999px;padding:.42rem .8rem}
.fee-core-name{font-family:'EB Garamond',serif;font-size:1.55rem;font-weight:600;color:#2F4A5C;margin:.85rem 0 .55rem;line-height:1.15}
.fee-core-price{font-family:'EB Garamond',serif;font-size:1.9rem;font-weight:600;color:#A2814F;white-space:nowrap}
.fee-core-desc{margin:0;color:#4f5b60;line-height:1.6}
.fee-subhead{margin-top:2.8rem}
.fee-lead{color:#6b7076;font-size:.95rem;line-height:1.55;margin:.4rem 0 0;max-width:62ch}
.creds{list-style:none;margin:1.4rem 0 0;padding:0}
.creds li{padding:.55rem 0 .55rem 1.6rem;position:relative;border-bottom:1px solid rgba(47,74,92,.1);font-size:.98rem}
.creds li:last-child{border-bottom:none}
.creds li::before{content:"";position:absolute;left:0;top:1.05rem;width:.55rem;height:.55rem;background:#C1A47C;transform:rotate(45deg)}
