*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  /* ── TURQUOISE SCALE · built out from the logo mark ──────────────
     The logo turquoise is a light tint. It reads beautifully as a fill
     but cannot carry white text (2.2:1). So it's used at full strength
     for fills, icons, borders and the booking button — and stepped
     darker only where text has to sit on top of it.                  */
  --brand:        #7FB5A3;  /* EXACT logo turquoise · fills, icons, borders */
  --brand-bright: #8FC9B5;  /* lifted tint · booking button, glow           */
  --brand-soft:   #EAF3EF;  /* pale wash · section backgrounds              */

  --navy:       #277A66;   /* turquoise-forward · 5.2:1 on white   ✓AA    */
  --navy-deep:  #277A66;   /* links & accents   · 5.2:1 on white   ✓AA    */
  --navy-dark:  #1F6455;   /* dark panels       · 6.8:1 w/ white   ✓AA    */

  --charcoal:  #14312A;    /* deep turquoise-black · 14:1 on white ✓AAA   */
  --tan:       #E4DED2;
  --beige:     #F4F2EC;
  --beige-dk:  #DAD3C6;
  --white:     #FFFFFF;
  --muted:     #5F736C;    /* body copy · 5.6:1 on white           ✓AA    */
  --line:      #E2DDD4;
}

html{scroll-behavior:smooth;}
body{
  font-family:'Jost',sans-serif;
  color:var(--charcoal);
  background:var(--white);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.serif{font-family:'Cormorant Garamond',serif;}
.script{font-family:'Parisienne',cursive;}

.wrap{max-width:1240px;margin:0 auto;padding:0 6%;}

/* ── ANNOUNCE ── */
.announce{
  background:var(--navy);color:rgba(255,255,255,.85);text-align:center;
  font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  padding:.7rem 1rem;font-weight:400;
}
.announce a{color:var(--white);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:1px;}

/* ── NAV ── */
/*  Sticky nav was running backdrop-filter:blur(14px), which forces the
    browser to re-sample everything behind it on every scroll frame — the
    usual cause of stutter during video playback. At 97% opacity the blur
    was invisible anyway, so it's gone. Solid background + its own
    compositing layer instead.                                             */
nav{
  background:#FFFFFF;
  border-bottom:1px solid var(--line);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:1.1rem 5%;position:sticky;top:0;z-index:100;gap:2rem;
  transform:translateZ(0);
}
.nav-group{display:flex;gap:2.2rem;list-style:none;align-items:center;}
.nav-group.right{justify-content:flex-end;}
.nav-group a{
  text-decoration:none;color:var(--muted);font-size:.7rem;
  font-weight:400;letter-spacing:.18em;text-transform:uppercase;
  transition:color .25s;white-space:nowrap;
}
.nav-group a:hover{color:var(--navy);}
.nav-logo{
  text-decoration:none;line-height:1.1;display:flex;align-items:center;
  gap:.85rem;justify-content:center;
}
.logo-mark{width:46px;height:46px;flex-shrink:0;}
.logo-rule{width:1px;height:38px;background:var(--beige-dk);flex-shrink:0;}
.logo-type{text-align:left;}
.nav-logo .name{
  font-family:'Cormorant Garamond',serif;font-size:1.65rem;font-weight:600;
  letter-spacing:.01em;color:var(--navy);display:block;line-height:1;
}
.nav-logo .cred{
  font-size:.53rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);display:block;margin-top:5px;font-weight:400;
}
.burger{display:none;background:none;border:none;font-size:1.3rem;color:var(--navy);cursor:pointer;}

/* ── HERO ── */
.hero{position:relative;background:var(--beige);overflow:hidden;}
.hero-inner{
  display:grid;grid-template-columns:1fr 1fr;min-height:640px;align-items:center;
}
.hero-copy{padding:6rem 4rem 8rem 8%;}
.hero-eyebrow{
  font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--navy);font-weight:500;margin-bottom:1.75rem;
}
.hero-h1{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.1rem,3.6vw,3.4rem);font-weight:300;
  line-height:1.22;color:var(--charcoal);letter-spacing:-.01em;margin-bottom:1.5rem;
}
.hero-h1 em{font-style:italic;color:var(--navy);}
.hero-sub{
  font-size:.94rem;color:var(--muted);max-width:400px;
  line-height:1.85;margin-bottom:2.5rem;font-weight:300;
}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;}

.btn{
  display:inline-block;text-decoration:none;font-size:.66rem;
  letter-spacing:.22em;text-transform:uppercase;font-weight:500;
  padding:1.05rem 2.4rem;transition:all .3s;border:1px solid transparent;
}
.btn-solid{background:var(--navy);color:var(--white);}
.btn-solid:hover{background:var(--navy-dark);}

/*  ── BOOKING BUTTON ────────────────────────────────────────────────
    Bright logo turquoise fill with near-black turquoise text.
    Contrast 7.4:1 — clears WCAG AAA, and reads far louder against the
    white nav than dark-on-white ever could. Hover adds a turquoise glow
    and a 1px lift so it registers as the primary action on the page.    */
.btn-book{
  background:var(--brand-bright);
  color:var(--charcoal);
  border:1px solid var(--brand-bright);
  font-weight:600;
  box-shadow:0 2px 10px rgba(127,181,163,.45);
  transition:background .25s ease,box-shadow .25s ease,transform .25s ease;
}
.btn-book:hover,.btn-book:focus-visible{
  background:var(--brand);
  border-color:var(--brand);
  color:var(--charcoal);
  box-shadow:0 6px 22px rgba(127,181,163,.7);
  transform:translateY(-1px);
}
.btn-book:focus-visible{outline:2px solid var(--navy-dark);outline-offset:3px;}
@media (prefers-reduced-motion:reduce){
  .btn-book{transition:none;}
  .btn-book:hover{transform:none;}
}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--navy);}
.btn-outline:hover{background:var(--navy);color:var(--white);}
.btn-light{background:var(--white);color:var(--navy);}
.btn-light:hover{background:var(--tan);}

/*  HERO IMAGE
    ── Ships with a stock placeholder. REPLACE with Michelle's real headshot
       (images/michelle-1.jpg) before this ever goes live.
    ── AI PROMPT (Midjourney / Higgsfield / DALL·E):
       "Editorial portrait of a warm, professional Filipino-Canadian woman
        therapist in her fifties with long silver-streaked dark hair, seated
        on a sage-green sofa in a bright modern therapy office, soft natural
        window light from camera left, relaxed genuine smile, hands resting
        in lap, muted sage and cream interior, shallow depth of field,
        85mm lens, vertical 4:5, calm and trustworthy mood, no text"
    ── Gradient below is a permanent fallback: if the URL ever fails,
       the section still renders as designed rather than breaking.          */
.hero-media{
  position:relative;min-height:640px;
  background-image:url('images/michelle-1.jpg'),
                   linear-gradient(150deg,#BEDCD1 0%,#9FC9BA 40%,#7FB5A3 100%);
  background-size:cover,cover;
  background-position:center 18%,center;
  background-repeat:no-repeat;
}
.hero-media::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(244,242,236,.45) 0%,rgba(244,242,236,0) 40%);
}

/* wave divider */
.wave{display:block;width:100%;height:auto;position:relative;z-index:2;margin-top:-2px;}

/* ── FAMILIAR ── */
.familiar{background:var(--white);padding:5.5rem 6% 6.5rem;text-align:center;}
.monogram{
  width:74px;height:74px;border:1.5px solid var(--brand);border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin:0 auto 1.75rem;
  font-family:'Cormorant Garamond',serif;font-size:1.35rem;letter-spacing:.08em;
  color:var(--navy);background:var(--brand-soft);
}
.eyebrow-c{
  font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--navy);font-weight:500;margin-bottom:2rem;
}
.familiar-lead{
  font-family:'Cormorant Garamond',serif;font-size:clamp(1.5rem,2.7vw,2.2rem);
  font-weight:300;line-height:1.45;color:var(--charcoal);
  max-width:760px;margin:0 auto 1.75rem;
}
.familiar-sub{
  font-size:.9rem;color:var(--muted);max-width:600px;margin:0 auto;
  line-height:1.9;font-weight:300;
}

/* ── MARQUEE ── */
.marquee-band{background:var(--beige);padding:2.5rem 0 0;overflow:hidden;position:relative;}
/*  Marquee animates transform only (never left/margin) so it stays on the
    compositor thread and can't block painting while the video plays.      */
.marquee{
  display:flex;white-space:nowrap;animation:slide 32s linear infinite;
  will-change:transform;transform:translateZ(0);
}
@media (prefers-reduced-motion:reduce){.marquee{animation:none;}}
.marquee span{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(4rem,10vw,9rem);font-weight:300;
  color:var(--white);letter-spacing:.02em;padding-right:3rem;line-height:1;
}
@keyframes slide{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ── ABOUT ── */
.about{background:var(--beige);padding:0 6% 6.5rem;margin-top:-2.5rem;}
.about-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;
  max-width:1240px;margin:0 auto;
}
.collage{position:relative;height:520px;}
.collage-a,.collage-b{position:absolute;overflow:hidden;}
/*  ABOUT PORTRAIT
    ── AI PROMPT: "Candid three-quarter portrait of a Filipino-Canadian woman
       therapist in her fifties, seated in a cream armchair, looking slightly
       off-camera with a warm open expression, holding a book, gold-framed
       abstract art on a pale wall behind, rubber plant to the right, soft
       diffused daylight, sage and cream palette, 50mm, vertical 4:5"        */
.collage-a{
  width:64%;height:82%;top:0;right:4%;
  background-image:url('images/michelle-2.jpg'),
                   linear-gradient(160deg,#BEDCD1 0%,#9FC9BA 100%);
  background-size:cover,cover;background-position:center 20%,center;background-repeat:no-repeat;
  box-shadow:0 18px 50px rgba(47,107,88,.18);
}
.collage-b{
  width:42%;height:46%;bottom:1%;left:0;
  background:var(--brand);display:flex;align-items:center;justify-content:center;
  box-shadow:0 14px 36px rgba(47,107,88,.16);
}
.collage-b .stat{text-align:center;padding:1rem;}
.collage-b .stat-n{
  font-family:'Cormorant Garamond',serif;font-size:2.6rem;font-weight:300;
  color:var(--white);line-height:1;display:block;
}
.collage-b .stat-l{
  font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.92);display:block;margin-top:.6rem;line-height:1.6;
}

.about-script{
  font-family:'Parisienne',cursive;font-size:2.3rem;color:var(--navy);
  margin-bottom:.5rem;line-height:1.2;
}
.about-h2{
  font-family:'Cormorant Garamond',serif;font-size:clamp(1.5rem,2.4vw,2rem);
  font-weight:300;line-height:1.45;color:var(--charcoal);margin-bottom:1.5rem;
}
.about p{font-size:.88rem;color:var(--muted);line-height:1.95;margin-bottom:1.1rem;font-weight:300;}
.about p strong{color:var(--charcoal);font-weight:500;}
.about .pronouns{
  font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--navy-deep);font-weight:500;margin-bottom:1.35rem;
  padding-bottom:1.1rem;border-bottom:1px solid var(--beige-dk);
}

/* ── APPROACH ── */
.approach{display:grid;grid-template-columns:1fr 1fr;min-height:520px;}
.approach-left{
  background:var(--navy);padding:5.5rem 5% 5.5rem 8%;
  display:flex;flex-direction:column;justify-content:center;
}
.approach-left .eyebrow-c{color:rgba(255,255,255,.5);text-align:left;}
.approach-h2{
  font-family:'Cormorant Garamond',serif;font-size:clamp(1.9rem,3.2vw,2.8rem);
  font-weight:300;line-height:1.25;color:var(--white);margin-bottom:2.25rem;
}
.approach-list{list-style:none;display:flex;flex-direction:column;gap:0;}
.approach-list li{
  color:rgba(255,255,255,.82);font-size:.76rem;letter-spacing:.2em;
  text-transform:uppercase;padding:.95rem 0;
  border-bottom:1px solid rgba(255,255,255,.14);font-weight:300;
}
.approach-list li:first-child{border-top:1px solid rgba(255,255,255,.14);}
.approach-right{
  background:var(--brand-soft);position:relative;min-height:620px;
  display:flex;align-items:center;justify-content:center;padding:3.5rem 3rem;
}

/* ── VIDEO ──
   Perf notes:
   · preload="metadata" — pulls dimensions/duration only, not the file.
     Page weight stays flat until the visitor actually presses play.
   · translateZ(0) + will-change promote the player to its own GPU layer,
     so scrolling never forces a repaint of the video surface.
   · contain:paint scopes repaints to this box.
   · No backdrop-filter anywhere near the player — that's the single most
     common cause of dropped frames during scroll.                          */
/*  Portrait / vertical video — filmed on a phone, so the frame is 9:16
    to match. Width is capped so the resulting height stays inside the
    section rather than stretching it to ~800px.                          */
.video-wrap{
  width:100%;max-width:290px;position:relative;
  transform:translateZ(0);
  will-change:transform;
  backface-visibility:hidden;
  contain:paint;
}
.video-frame{
  position:relative;width:100%;aspect-ratio:9/16;
  background:var(--navy-dark);overflow:hidden;border-radius:4px;
  box-shadow:0 18px 50px rgba(47,107,88,.22);
}
.video-frame video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block;
  transform:translateZ(0);
  background:var(--navy-dark);
}
/*  Two paths listed: the clean lowercase name sits on top, the current
    name underneath. Whichever exists renders — so this works before and
    after you rename the folder.                                          */
.video-poster{
  position:absolute;inset:0;z-index:2;border:none;padding:0;cursor:pointer;
  background-image:url('images/michelle-2.jpg');
  background-size:cover,cover;background-position:center 20%,center 20%;
  background-repeat:no-repeat,no-repeat;
  transition:opacity .35s ease;
}
.video-poster::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(36,86,70,.15),rgba(36,86,70,.45));
}
.video-poster.is-hidden{opacity:0;pointer-events:none;}
.play-btn{
  position:absolute;top:50%;left:50%;
  width:74px;height:74px;margin:-37px 0 0 -37px;z-index:3;
  border-radius:50%;background:rgba(255,255,255,.94);
  display:flex;align-items:center;justify-content:center;
  transition:transform .3s ease,background .3s ease;
  box-shadow:0 8px 28px rgba(36,86,70,.3);
}
.video-poster:hover .play-btn{transform:scale(1.08);background:#fff;}
.video-poster:focus-visible{outline:3px solid var(--navy-dark);outline-offset:3px;}
.play-btn svg{width:26px;height:26px;fill:var(--navy);margin-left:4px;}
.video-cap{
  margin-top:1.1rem;text-align:center;font-size:.68rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
}
@media (prefers-reduced-motion:reduce){
  .video-poster,.play-btn{transition:none;}
}

/* ── SECTION HEADS ── */
.sec{padding:6.5rem 6%;}
.sec-head{text-align:center;max-width:660px;margin:0 auto 3.5rem;}
.sec-h2{
  font-family:'Cormorant Garamond',serif;font-size:clamp(1.9rem,3.2vw,2.8rem);
  font-weight:300;line-height:1.25;color:var(--charcoal);margin-bottom:1rem;
}
.sec-h2 em{font-style:italic;color:var(--navy);}
.sec-sub{font-size:.88rem;color:var(--muted);line-height:1.9;font-weight:300;}

/* ── SERVICES ── */
.services{background:var(--white);}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem;max-width:1180px;margin:0 auto;}
.svc-card{
  background:var(--white);border:1px solid var(--line);
  padding:2.75rem 2.25rem;display:flex;flex-direction:column;
  transition:all .35s;position:relative;
}
.svc-card:hover{border-color:var(--navy);transform:translateY(-5px);box-shadow:0 20px 44px rgba(43,76,126,.1);}
.svc-card.featured{background:var(--beige);border-color:var(--beige-dk);}
.svc-flag{
  position:absolute;top:0;right:2.25rem;transform:translateY(-50%);
  background:var(--brand-bright);color:var(--charcoal);font-size:.55rem;
  letter-spacing:.2em;text-transform:uppercase;padding:.4rem .9rem;font-weight:600;
}
.svc-num{font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);margin-bottom:1.35rem;}
.svc-title{
  font-family:'Cormorant Garamond',serif;font-size:1.55rem;font-weight:400;
  color:var(--charcoal);margin-bottom:.35rem;line-height:1.25;
}
.svc-dur{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin-bottom:1.25rem;}
.svc-desc{font-size:.85rem;color:var(--muted);line-height:1.85;font-weight:300;flex:1;margin-bottom:1.75rem;}
.svc-price{
  font-family:'Cormorant Garamond',serif;font-size:2.5rem;font-weight:300;
  color:var(--navy);line-height:1;padding-top:1.35rem;border-top:2px solid var(--brand);
}
.svc-price span{font-family:'Jost',sans-serif;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:block;margin-top:.5rem;}

.rate-note{
  max-width:1180px;margin:2.5rem auto 0;background:var(--beige);
  padding:2rem 2.5rem;display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:center;
}
.rate-note h4{
  font-family:'Cormorant Garamond',serif;font-size:1.25rem;font-weight:400;
  color:var(--charcoal);white-space:nowrap;
}
.rate-note p{font-size:.82rem;color:var(--muted);line-height:1.8;font-weight:300;}
.cancel-note{
  margin-top:1rem;padding-top:1rem;border-top:1px solid var(--beige-dk);
}
.cancel-note strong{color:var(--charcoal);font-weight:600;display:block;margin-bottom:.15rem;}

/* ── SPECIALTIES ── */
.specialties{background:var(--beige);}
.filters{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-bottom:2.75rem;}
.filter-btn{
  background:transparent;border:1px solid var(--beige-dk);color:var(--muted);
  font-family:'Jost',sans-serif;font-size:.63rem;letter-spacing:.2em;
  text-transform:uppercase;padding:.7rem 1.5rem;cursor:pointer;transition:all .25s;
}
.filter-btn:hover{border-color:var(--navy);color:var(--navy);}
.filter-btn.active{background:var(--brand-bright);border-color:var(--brand-bright);color:var(--charcoal);font-weight:600;}

.spec-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--beige-dk);border:1px solid var(--beige-dk);max-width:1180px;margin:0 auto;
}
.spec-item{
  background:var(--white);padding:1.5rem 1.5rem;font-size:.78rem;
  color:var(--charcoal);letter-spacing:.04em;transition:all .28s;
  display:flex;align-items:center;gap:.7rem;font-weight:300;
}
.spec-item::before{content:'';width:6px;height:6px;background:var(--brand);border-radius:50%;flex-shrink:0;transition:all .28s;}
.spec-item:hover{background:var(--navy);color:var(--white);}
.spec-item:hover::before{background:var(--tan);opacity:1;}
.spec-item.hide{display:none;}

/* ── MODALITIES ── */
.mods{background:var(--white);}
.mod-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);max-width:1180px;margin:0 auto;}
.mod{background:var(--white);transition:background .3s;}
.mod:hover{background:var(--brand-soft);}
.mod-body{padding:2.5rem 2.75rem 3rem;}
/*  MODALITY IMAGERY — see AI prompts on each .mod-photo rule below.
    Each has a gradient fallback so a failed URL never breaks the layout.   */
.mod-photo{
  height:190px;background-size:cover;background-position:center;
  background-repeat:no-repeat;position:relative;
}
.mod-photo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(36,86,70,.05) 0%,rgba(36,86,70,.22) 100%);
}
/*  AI PROMPT: "Sunlit wooded walking trail in autumn, dappled light through
    maple canopy, soft focus path receding, two indistinct figures walking
    side by side far in the distance, warm calm mood, no faces, 35mm"       */
.mod-photo.walk{
  background-image:url('https://images.unsplash.com/photo-1441974231531-c6227db76b6e?auto=format&fit=crop&w=1000&q=80'),
                   linear-gradient(150deg,#9FC9BA,#4E8C74);
}
/*  AI PROMPT: "Abstract close-up of soft rippling water surface catching
    light, gentle rhythmic bilateral waves, muted sage and slate blue,
    calm meditative, macro, no people, no text"                            */
.mod-photo.emdr{
  background-image:url('https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=1000&q=80'),
                   linear-gradient(150deg,#BEDCD1,#5E9C85);
}
/*  AI PROMPT: "Overhead flat lay of art therapy materials on pale wood —
    watercolour paints, brushes in a jar, torn coloured paper, oil pastels,
    open sketchbook with abstract marks, soft natural light, warm neutral
    palette with sage accents, no hands, no text"                          */
.mod-photo.arts{
  background-image:url('https://images.unsplash.com/photo-1513364776144-60967b0f800f?auto=format&fit=crop&w=1000&q=80'),
                   linear-gradient(150deg,#E4DED2,#C0B49E);
}
/*  AI PROMPT: "Empty circle of comfortable armchairs in a bright airy room,
    soft daylight through sheer curtains, plants in corners, warm neutral
    and sage tones, welcoming and safe, wide angle, no people"             */
.mod-photo.group{
  background-image:url('https://images.unsplash.com/photo-1521737711867-e3b97375f902?auto=format&fit=crop&w=1000&q=80'),
                   linear-gradient(150deg,#9FC9BA,#2F6B58);
}
.mod-icon{
  width:52px;height:52px;border-radius:50%;background:var(--brand-soft);
  display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;
  border:1px solid var(--brand);
}
.mod-icon svg{width:24px;height:24px;stroke:var(--navy);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;}
.mod-label{font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;color:var(--navy-deep);margin-bottom:.75rem;font-weight:500;}
.mod h3{
  font-family:'Cormorant Garamond',serif;font-size:1.65rem;font-weight:400;
  color:var(--charcoal);line-height:1.25;margin-bottom:.9rem;
}
.mod p{font-size:.87rem;color:var(--muted);line-height:1.9;font-weight:300;margin-bottom:1rem;}
.mod ul{list-style:none;margin-top:1.1rem;}
.mod ul li{
  font-size:.82rem;color:var(--muted);font-weight:300;line-height:1.7;
  padding-left:1.35rem;position:relative;margin-bottom:.55rem;
}
.mod ul li::before{
  content:'';width:5px;height:5px;background:var(--brand);border-radius:50%;
  position:absolute;left:0;top:.6em;
}
@media(max-width:860px){.mod-grid{grid-template-columns:1fr;}.mod-body{padding:2.25rem 1.85rem 2.5rem;}}

/* ── JOURNAL ──
   Full articles, always visible. No excerpts, no expand buttons, no jump
   links. Alternating image/text blocks keep the text at a comfortable
   reading measure (~68 characters) instead of squeezing long-form copy
   into narrow grid columns.                                            */
.articles{background:var(--beige);}
.art-list{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:5rem;}

.art-piece{
  display:grid;grid-template-columns:0.85fr 1.15fr;gap:3.5rem;
  align-items:start;scroll-margin-top:110px;
}
/*  Display order — "What to Expect in Your First Session" runs first,
    since it's the piece a nervous first-time client most needs.
    Image sits left / right / left down the page.                       */
.art-piece.a3{order:1;}
.art-piece.a1{order:2;}
.art-piece.a2{order:3;}
.art-piece.a1 .art-visual{order:2;}
.art-piece.a1 .art-text{order:1;}

.art-visual{position:sticky;top:110px;}
.art-image{
  width:100%;aspect-ratio:4/5;
  background-size:cover;background-position:center center;background-repeat:no-repeat;
  box-shadow:0 18px 44px rgba(31,100,85,.16);position:relative;
}
/*  Each photo keeps a frame close to its own shape, so the subject sits
    centred rather than being sliced by a box it was never cropped for.
    a3 therapy room 2486x2590 (square) · a2 shoreline walk 5587x3725 (3:2) */
.art-piece.a3 .art-image{aspect-ratio:1/1;}
.art-piece.a2 .art-image{aspect-ratio:3/2;}
.art-image::after{content:'';position:absolute;left:0;right:0;bottom:0;height:5px;}
.art-piece.a1 .art-image::after{background:var(--brand-bright);}
.art-piece.a2 .art-image::after{background:#C9A227;}
.art-piece.a3 .art-image::after{background:var(--navy-dark);}

.art-tag{
  margin-top:1.1rem;font-size:.58rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--navy-deep);font-weight:600;
}

.art-text{max-width:640px;}
.art-text h3{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.85rem,3vw,2.5rem);font-weight:400;
  color:var(--charcoal);line-height:1.2;margin-bottom:1.5rem;
  padding-bottom:1.25rem;border-bottom:1px solid var(--beige-dk);
}
.art-text p{
  font-size:.95rem;color:var(--muted);line-height:1.95;
  font-weight:300;margin-bottom:1.15rem;
}
.art-text p.standfirst{
  font-family:'Cormorant Garamond',serif;font-size:1.25rem;
  font-style:italic;color:var(--navy-dark);line-height:1.65;
  margin-bottom:1.75rem;font-weight:300;
}
.art-text h4{
  font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:600;
  color:var(--charcoal);margin:2.25rem 0 .75rem;
}
.art-text strong{color:var(--charcoal);font-weight:500;}
.art-text ul{list-style:none;margin:1rem 0 1.5rem;}
.art-text li{
  font-size:.92rem;color:var(--muted);line-height:1.85;font-weight:300;
  padding-left:1.5rem;position:relative;margin-bottom:.75rem;
}
.art-text li::before{
  content:'';width:6px;height:6px;background:var(--brand);border-radius:50%;
  position:absolute;left:0;top:.66em;
}
.art-close{
  margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--beige-dk);
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);font-weight:400;
}
.art-close a{color:var(--navy);text-decoration:none;border-bottom:1px solid var(--brand);padding-bottom:1px;}
.art-close a:hover{border-color:var(--navy);}

/*  A long URL inside a sentence breaks across two lines and reads as two
    separate addresses. Giving it its own line keeps it whole and clickable. */
.link-line{
  display:block;margin-top:.3rem;white-space:nowrap;
  font-size:.86em;letter-spacing:.01em;
}

/* ── RESOURCE LINKS ── */
.res-block{
  max-width:1180px;margin:4.5rem auto 0;padding-top:3.5rem;
  border-top:1px solid var(--beige-dk);
}
.res-head{
  font-family:'Cormorant Garamond',serif;font-size:1.75rem;font-weight:400;
  color:var(--charcoal);margin-bottom:.6rem;
}
.res-intro{font-size:.88rem;color:var(--muted);font-weight:300;margin-bottom:2.25rem;max-width:560px;line-height:1.85;}
.res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.res-card{
  background:var(--white);border:1px solid var(--line);border-left:3px solid var(--brand);
  padding:1.9rem 1.75rem;text-decoration:none;display:block;
  transition:transform .3s ease,box-shadow .3s ease;
}
.res-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(31,100,85,.12);}
.res-card h4{
  font-family:'Cormorant Garamond',serif;font-size:1.25rem;font-weight:500;
  color:var(--charcoal);margin-bottom:.55rem;line-height:1.3;
}
.res-card p{font-size:.83rem;color:var(--muted);line-height:1.8;font-weight:300;margin-bottom:.9rem;}
.res-card span{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--navy);font-weight:600;}

/*  Expanded resource content — each card anchors down to its own block
    so the "Read More" links go somewhere real.                        */
.res-detail{
  max-width:820px;margin:3.5rem auto 0;padding-top:2.5rem;
  border-top:1px solid var(--beige-dk);scroll-margin-top:110px;
}
.res-detail h3{
  font-family:'Cormorant Garamond',serif;font-size:1.75rem;font-weight:500;
  color:var(--charcoal);margin-bottom:1rem;
}
.res-detail h4{
  font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:600;
  color:var(--navy-dark);margin:1.75rem 0 .6rem;
}
.res-detail p{font-size:.9rem;color:var(--muted);line-height:1.9;font-weight:300;margin-bottom:1rem;}
.res-detail strong{color:var(--charcoal);font-weight:500;}
.res-detail em{color:var(--charcoal);font-style:italic;}
.res-detail ul{list-style:none;margin:.5rem 0 1.25rem;}
.res-detail li{
  font-size:.88rem;color:var(--muted);line-height:1.8;font-weight:300;
  padding-left:1.4rem;position:relative;margin-bottom:.6rem;
}
.res-detail li::before{
  content:'';width:5px;height:5px;background:var(--brand);border-radius:50%;
  position:absolute;left:0;top:.68em;
}

@media(max-width:900px){
  .art-piece{grid-template-columns:1fr;gap:2rem;}
  .art-piece.a1 .art-visual{order:1;}
  .art-piece.a1 .art-text{order:2;}
  .art-visual{position:static;}
  .art-image{aspect-ratio:16/10;}
  .art-list{gap:3.5rem;}
  .res-grid{grid-template-columns:1fr;}
}

/* ── CREDENTIALS ── */
.creds{background:var(--white);padding:5rem 6%;border-top:1px solid var(--line);}
.creds-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2rem;max-width:1180px;margin:0 auto;text-align:center;}
.cred-item{padding:0 1rem;}
.cred-badge{
  width:58px;height:58px;border:1.5px solid var(--brand);border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin:0 auto 1.1rem;
  font-family:'Cormorant Garamond',serif;font-size:.85rem;letter-spacing:.06em;
  color:var(--navy);font-weight:500;background:var(--brand-soft);
}
.cred-item h4{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--charcoal);font-weight:500;margin-bottom:.5rem;}
.cred-item p{font-size:.78rem;color:var(--muted);line-height:1.7;font-weight:300;}

/* ── QUOTE ── */
.quote-band{
  background:var(--navy);padding:5.5rem 6%;text-align:center;
}
.quote-band blockquote{
  font-family:'Cormorant Garamond',serif;font-size:clamp(1.4rem,2.6vw,2.1rem);
  font-weight:300;font-style:italic;color:var(--white);line-height:1.5;
  max-width:820px;margin:0 auto 1.5rem;
}
.quote-band cite{
  font-style:normal;font-size:.65rem;letter-spacing:.28em;
  text-transform:uppercase;color:rgba(255,255,255,.55);
}

/* ── CONTACT ── */
.contact{background:var(--beige);padding:6.5rem 6%;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;max-width:1180px;margin:0 auto;align-items:start;}
.contact-h2{
  font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3.4vw,3rem);
  font-weight:300;line-height:1.2;color:var(--charcoal);margin-bottom:1.25rem;
}
.contact-h2 em{font-style:italic;color:var(--navy);}
.contact-lead{font-size:.9rem;color:var(--muted);line-height:1.9;margin-bottom:2.5rem;font-weight:300;max-width:420px;}

.detail-row{
  display:grid;grid-template-columns:120px 1fr;gap:1.5rem;
  padding:1.15rem 0;border-bottom:1px solid var(--beige-dk);align-items:start;
}
.detail-row:first-of-type{border-top:1px solid var(--beige-dk);}
.detail-label{font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--navy);font-weight:500;padding-top:3px;}
.detail-value{font-size:.86rem;color:var(--charcoal);line-height:1.75;font-weight:300;}
.detail-value a{color:var(--charcoal);text-decoration:none;border-bottom:1px solid var(--beige-dk);transition:border-color .25s;}
.detail-value a:hover{border-color:var(--navy);}

.book-card{background:var(--white);padding:3rem 2.75rem;border:1px solid var(--line);}
.book-card h3{
  font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:400;
  color:var(--charcoal);margin-bottom:.6rem;
}
.book-card > p{font-size:.85rem;color:var(--muted);line-height:1.85;margin-bottom:1.75rem;font-weight:300;}
.field{margin-bottom:1.1rem;}
.field label{display:block;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:.5rem;}
.field input,.field select,.field textarea{
  width:100%;background:var(--beige);border:1px solid transparent;
  padding:.85rem .95rem;font-family:'Jost',sans-serif;font-size:.85rem;
  color:var(--charcoal);transition:border-color .25s;font-weight:300;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--navy);}
.field textarea{resize:vertical;min-height:96px;}
.book-card button{
  width:100%;background:var(--brand-bright);color:var(--charcoal);border:none;
  padding:1.15rem;font-family:'Jost',sans-serif;font-size:.68rem;
  letter-spacing:.22em;text-transform:uppercase;font-weight:600;
  cursor:pointer;margin-top:.5rem;
  box-shadow:0 2px 10px rgba(127,181,163,.45);
  transition:background .25s ease,box-shadow .25s ease,transform .25s ease;
}
.book-card button:hover{
  background:var(--brand);
  box-shadow:0 6px 22px rgba(127,181,163,.7);
  transform:translateY(-1px);
}
.book-card button:focus-visible{outline:2px solid var(--navy-dark);outline-offset:3px;}
.form-fine{font-size:.66rem;color:var(--muted);text-align:center;margin-top:1rem;font-weight:300;letter-spacing:.04em;line-height:1.9;}
.form-fine a{color:var(--navy);text-decoration:none;border-bottom:1px solid var(--brand);padding-bottom:1px;font-weight:500;}
.form-fine a:hover{border-color:var(--navy);}

/*  Privacy notice — sits above the submit button so it's read before
    anyone types, not after. Turquoise rule ties it to the brand rather
    than making it look like a legal warning.                          */
.form-privacy{
  background:var(--brand-soft);border-left:3px solid var(--brand);
  padding:.85rem 1rem;margin:.35rem 0 .25rem;
  font-size:.7rem;line-height:1.75;color:var(--muted);font-weight:300;
}
.form-privacy strong{color:var(--charcoal);font-weight:600;display:block;margin-bottom:.2rem;}

/* ── FOOTER ── */
/*  Footer sits on deep turquoise rather than near-black, so it reads as
    part of the brand family. Text opacities lifted at the same time —
    they were dim enough to be borderline against a dark ground.          */
footer{background:var(--navy-dark);color:rgba(255,255,255,.78);padding:4.5rem 6% 2rem;}
.foot-grid{
  display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:3rem;
  max-width:1180px;margin:0 auto 3.5rem;
}
.foot-logo .name{
  font-family:'Cormorant Garamond',serif;font-size:1.35rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--white);display:block;margin-bottom:.4rem;
}
.foot-logo .cred{font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:var(--brand);}
.foot-logo p{font-size:.8rem;line-height:1.85;margin-top:1.25rem;max-width:300px;font-weight:300;}
.foot-col h5{font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--brand);margin-bottom:1.35rem;font-weight:600;}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:.7rem;}
.foot-col a,.foot-col li{font-size:.8rem;color:rgba(255,255,255,.8);text-decoration:none;transition:color .25s;font-weight:300;line-height:1.6;}
.foot-col a:hover{color:var(--brand);}
.foot-bottom{
  max-width:1180px;margin:0 auto;padding-top:2rem;
  border-top:1px solid rgba(143,201,181,.25);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
}
.foot-bottom p,.foot-bottom a{font-size:.7rem;color:rgba(255,255,255,.62);text-decoration:none;letter-spacing:.04em;font-weight:300;}

.crisis{
  background:rgba(143,201,181,.12);border-left:3px solid var(--brand-bright);
  padding:1.1rem 1.35rem;margin-top:1.5rem;
}
.crisis strong{color:var(--brand-bright);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.4rem;font-weight:600;}
.crisis p{font-size:.76rem;line-height:1.7;margin:0;font-weight:300;color:rgba(255,255,255,.85);}

/* ── CRISIS ── */
.crisis-sec{background:var(--white);padding:5.5rem 6%;border-top:1px solid var(--line);scroll-margin-top:100px;}
.crisis-lead{
  background:#FFF4F2;border-left:4px solid #C0392B;padding:1.5rem 1.75rem;
  max-width:1180px;margin:0 auto 2.5rem;
}
.crisis-lead strong{display:block;font-size:1.05rem;color:#8E2A1F;margin-bottom:.4rem;font-weight:600;}
.crisis-lead p{font-size:.92rem;color:#6B3B34;line-height:1.8;font-weight:300;}
.help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;max-width:1180px;margin:0 auto;}
.help-card{background:var(--brand-soft);border:1px solid var(--brand);padding:1.6rem 1.5rem;}
.help-card h4{
  font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:600;
  color:var(--charcoal);margin-bottom:.35rem;line-height:1.3;
}
.help-num{font-size:1.05rem;font-weight:600;color:var(--navy);margin-bottom:.5rem;letter-spacing:.01em;}
.help-num a{color:var(--navy);text-decoration:none;border-bottom:1px solid var(--brand);}
.help-card p{font-size:.82rem;color:var(--muted);line-height:1.75;font-weight:300;}
.help-note{
  max-width:1180px;margin:2.25rem auto 0;font-size:.82rem;color:var(--muted);
  font-weight:300;line-height:1.8;padding-top:1.5rem;border-top:1px solid var(--line);
}

/* ── PRIVACY ── */
.legal{background:var(--beige);padding:5.5rem 6%;scroll-margin-top:100px;}
.legal-inner{max-width:860px;margin:0 auto;}
.legal-inner h3{
  font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:600;
  color:var(--charcoal);margin:2rem 0 .6rem;
}
.legal-inner h3:first-of-type{margin-top:0;}
.legal-inner p{font-size:.88rem;color:var(--muted);line-height:1.9;font-weight:300;margin-bottom:.9rem;}
.legal-inner strong{color:var(--charcoal);font-weight:500;}
.legal-inner ul{list-style:none;margin:.5rem 0 1.1rem;}
.legal-inner li{
  font-size:.86rem;color:var(--muted);line-height:1.8;font-weight:300;
  padding-left:1.4rem;position:relative;margin-bottom:.5rem;
}
.legal-inner li::before{
  content:'';width:5px;height:5px;background:var(--brand);border-radius:50%;
  position:absolute;left:0;top:.65em;
}
.legal-updated{font-size:.72rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:2rem;}

@media(max-width:900px){.help-grid{grid-template-columns:1fr;}}

/* ── SERVICE AREAS ── */
.areas{background:var(--beige);padding:5rem 6%;border-top:1px solid var(--beige-dk);}
.areas-inner{max-width:1180px;margin:0 auto;}
.areas-head{margin-bottom:2.5rem;}
.areas-head h3{
  font-family:'Cormorant Garamond',serif;font-size:1.85rem;font-weight:300;
  color:var(--charcoal);margin-bottom:.6rem;
}
.areas-head p{font-size:.85rem;color:var(--muted);font-weight:300;max-width:560px;line-height:1.85;}
.areas-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;}
.areas-col h5{
  font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--navy);font-weight:500;margin-bottom:1.1rem;
  padding-bottom:.7rem;border-bottom:1px solid var(--beige-dk);
}
.areas-col ul{list-style:none;display:flex;flex-direction:column;gap:.65rem;}
.areas-col a{
  font-size:.82rem;color:var(--charcoal);text-decoration:none;
  font-weight:300;transition:color .25s;line-height:1.55;display:block;
}
.areas-col a:hover{color:var(--navy);}
@media(max-width:860px){.areas-cols{grid-template-columns:1fr;gap:2rem;}}

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .svc-grid{grid-template-columns:1fr;}
  .spec-grid{grid-template-columns:repeat(2,1fr);}
  .creds-grid{grid-template-columns:repeat(2,1fr);gap:2.5rem 1.5rem;}
  .foot-grid{grid-template-columns:1fr 1fr;gap:2.5rem;}
}
@media(max-width:860px){
  nav{grid-template-columns:1fr auto 1fr;padding:1rem 5%;}
  .nav-group{display:none;}
  .burger{display:block;justify-self:start;}
  .nav-group.right{display:flex;}
  .nav-group.right a:not(.btn-mini){display:none;}

  .hero-inner{grid-template-columns:1fr;min-height:auto;}
  .hero-copy{padding:4rem 7% 4.5rem;order:2;}
  .hero-media{min-height:380px;order:1;}
  .hero-sub{max-width:none;}

  .about-grid{grid-template-columns:1fr;gap:3rem;}
  .collage{height:400px;order:2;}
  .approach{grid-template-columns:1fr;}
  .approach-left{padding:4.5rem 7%;}
  .approach-right{min-height:300px;}
  .contact-grid{grid-template-columns:1fr;gap:3rem;}
  .rate-note{grid-template-columns:1fr;gap:1rem;}
  .rate-note h4{white-space:normal;}
  .sec{padding:4.5rem 7%;}
}
@media(max-width:560px){
  .spec-grid{grid-template-columns:1fr;}
  .creds-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .detail-row{grid-template-columns:1fr;gap:.4rem;}
  .book-card{padding:2.25rem 1.75rem;}
  .hero-ctas{flex-direction:column;align-items:stretch;}
  .btn{text-align:center;}
}


/* ══ MULTI-PAGE ADDITIONS ═══════════════════════════════════════════ */

/*  Split navigation — three links left, logo centred, two links plus the
    booking button right. Matches the original single-page layout.      */
nav{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:2rem;
}
.nav-left{display:flex;gap:2.4rem;list-style:none;align-items:center;justify-content:flex-start;}
.nav-group.right{display:flex;gap:2.4rem;list-style:none;align-items:center;justify-content:flex-end;}
.nav-left a,.nav-group.right a{
  text-decoration:none;color:var(--muted);font-size:.72rem;font-weight:400;
  letter-spacing:.18em;text-transform:uppercase;transition:color .25s;white-space:nowrap;
}
.nav-left a:hover,.nav-group.right a:hover{color:var(--navy);}

/* Current page */
.nav-left a.is-active,
.nav-group.right a.is-active{color:var(--navy);font-weight:600;position:relative;}
.nav-left a.is-active::after,
.nav-group.right a.is-active::after{
  content:'';position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--brand);
}
.nav-group.right .btn-book{color:var(--charcoal);letter-spacing:.22em;}
.nav-group.right .btn-book::after{display:none;}

/* Mobile drawer — separate list so both nav groups collapse into one menu */
.nav-toggle{
  display:none;background:none;border:none;cursor:pointer;
  font-size:1.4rem;color:var(--navy);padding:.25rem .5rem;line-height:1;
}
.nav-mobile{display:none;}

@media(max-width:1000px){
  .nav-left a,.nav-group.right a{font-size:.66rem;letter-spacing:.14em;}
  .nav-left,.nav-group.right{gap:1.5rem;}
}
@media(max-width:860px){
  nav{grid-template-columns:auto 1fr auto;gap:1rem;padding:1rem 5%;}
  .nav-left{display:none;}
  .nav-group.right li:not(:last-child){display:none;}
  .nav-toggle{display:block;}
  .nav-mobile{
    display:none;list-style:none;background:#FFFFFF;
    border-bottom:1px solid var(--line);
    box-shadow:0 12px 28px rgba(31,100,85,.1);
    position:sticky;top:0;z-index:99;
  }
  .nav-mobile.is-open{display:block;}
  .nav-mobile li{border-top:1px solid var(--line);}
  .nav-mobile a{
    display:block;padding:1rem 6%;text-decoration:none;color:var(--muted);
    font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;
  }
  .nav-mobile a.is-active{color:var(--navy);font-weight:600;}
  .nav-mobile .nav-mobile-cta{
    background:var(--brand-bright);color:var(--charcoal);font-weight:600;
  }
}

/* Page banner on interior pages */
.page-head{background:var(--beige);padding:4.5rem 6% 4rem;border-bottom:1px solid var(--beige-dk);}
.page-head-inner{max-width:1180px;margin:0 auto;}
.page-head .eyebrow-c{text-align:left;margin-bottom:1rem;}
.page-head h1{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.2rem,5vw,3.6rem);font-weight:300;line-height:1.1;
  color:var(--charcoal);letter-spacing:-.02em;margin-bottom:1rem;
}
.page-head h1 em{font-style:italic;color:var(--navy);}
.page-head p{font-size:1rem;color:var(--muted);max-width:620px;line-height:1.85;font-weight:300;}
@media(max-width:860px){.page-head{padding:3rem 7% 2.75rem;}}

/* Cross-page prompt */
.next-step{background:var(--brand-soft);padding:4rem 6%;text-align:center;border-top:1px solid var(--brand);}
.next-step h3{
  font-family:'Cormorant Garamond',serif;font-size:clamp(1.6rem,3vw,2.2rem);
  font-weight:300;color:var(--charcoal);margin-bottom:.8rem;
}
.next-step p{font-size:.92rem;color:var(--muted);max-width:520px;margin:0 auto 1.75rem;font-weight:300;line-height:1.8;}
.next-step .btn{margin:.35rem;}

/*  Service-area pages planned but not yet built — plain text, not dead links. */
.area-soon{font-size:.82rem;color:var(--muted);font-weight:300;line-height:1.55;display:block;opacity:.75;}

/*  Consultation button is now a mailto link rather than a form submit,
    so it needs the button styling applied to an anchor.               */
.btn-emaillink{
  display:block;width:100%;text-align:center;text-decoration:none;
  background:var(--brand-bright);color:var(--charcoal);border:none;
  padding:1.15rem;font-family:'Jost',sans-serif;font-size:.68rem;
  letter-spacing:.22em;text-transform:uppercase;font-weight:600;
  cursor:pointer;margin-top:.5rem;
  box-shadow:0 2px 10px rgba(127,181,163,.45);
  transition:background .25s ease,box-shadow .25s ease,transform .25s ease;
}
.btn-emaillink:hover{
  background:var(--brand);
  box-shadow:0 6px 22px rgba(127,181,163,.7);
  transform:translateY(-1px);
}
.btn-emaillink:focus-visible{outline:2px solid var(--navy-dark);outline-offset:3px;}
