/* ============================================================
   Matasia Nursing Home - brand stylesheet
   Palette + type lifted from the Matasia "Community Pulse" brand kit.
   ============================================================ */

:root{
  /* --- brand core --- */
  --navy:        #23125B;
  --navy-deep:   #1A0E45;
  --navy-ink:    #150A38;
  --blue:        #0A8CFF;
  --pink:        #FF2E8A;
  --pink-deep:   #E01F76;
  --purple:      #6B4FA1;
  --lav:         #C9B8E6;
  --lav-soft:    #EFEAF8;

  /* --- neutrals --- */
  --paper:       #FFFFFF;
  --paper-2:     #FAFAFD;
  --mist:        #F4F3FA;
  --line:        #E7E4F2;
  --body:        #5B5473;
  --body-soft:   #7E7794;

  /* --- gradients --- */
  --g-pink:      linear-gradient(96deg, #FF2E8A 0%, #E8207F 55%, #D91A93 100%);
  --g-navy:      linear-gradient(120deg, #2B1770 0%, #23125B 55%, #1B0E4A 100%);
  --g-cta:       linear-gradient(102deg, #C2178E 0%, #7B1E8E 34%, #3A1A78 66%, #23125B 100%);
  --g-topbar:    linear-gradient(90deg, #1E0F52 0%, #2A1770 50%, #1E0F52 100%);

  /* --- scale (4pt) --- */
  --sp-1: .25rem; --sp-2: .5rem;  --sp-3: .75rem; --sp-4: 1rem;
  --sp-5: 1.5rem; --sp-6: 2rem;   --sp-7: 3rem;   --sp-8: 4rem;
  --sp-9: 5.5rem;

  --r-sm: 0.5rem; --r-md: 0.875rem; --r-lg: 1.25rem; --r-xl: 1.75rem; --r-pill: 62.4375rem;

  --sh-1: 0 2px 8px rgba(35,18,91,.06);
  --sh-2: 0 8px 24px rgba(35,18,91,.08);
  --sh-3: 0 18px 48px rgba(35,18,91,.14);
  --sh-pink: 0 10px 26px rgba(255,46,138,.32);

  --shell: 75rem;
  --gutter-wide: clamp(1.25rem, 3vw, 3rem);
  --header-h: 4.875rem;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top: calc(var(--admin-bar-h) + var(--header-h) + 1rem); }
/* Large screens: sizes are in rem, so stepping up the root font size scales
   type, spacing, icons and the content width together. Up to 1599px the
   site renders exactly as designed. */
@media (min-width:1600px){ html{ font-size:106.25%; } }
@media (min-width:1920px){ html{ font-size:112.5%; } }
@media (min-width:2400px){ html{ font-size:125%; } }
@media (min-width:3000px){ html{ font-size:150%; } }
@media (min-width:3600px){ html{ font-size:175%; } }
/* Logged-in users get WordPress's fixed admin bar; keep sticky UI below it.
   Under 601px the bar scrolls away with the page, so no offset is needed. */
:root{ --admin-bar-h:0px; }
html:has(> body.admin-bar){ --admin-bar-h:32px; }
@media (max-width:782px){ html:has(> body.admin-bar){ --admin-bar-h:46px; } }
@media (max-width:600px){ html:has(> body.admin-bar){ --admin-bar-h:0px; } }
body{
  margin:0;
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  font-size:1rem; line-height:1.65; color:var(--body);
  background:var(--paper);
  overflow-x:hidden;      /* fallback */
  overflow-x:clip;        /* keeps position:sticky working */
  -webkit-font-smoothing:antialiased;
}
img,svg,video{ display:block; max-width:100%; }
img{ height:auto; }
h1,h2,h3,h4,p,figure,blockquote{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
hr{ border:0; border-top:1px solid var(--line); margin:0; }

/* icon defaults: line icons drawn with currentColor strokes */
svg:not(.sprite){ fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.sprite{ position:absolute; width:0; height:0; overflow:hidden; }

:focus-visible{ outline:3px solid var(--pink); outline-offset:3px; border-radius:0.25rem; }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--navy); color:#fff; padding:.75rem 1.25rem; border-radius:0 0 var(--r-md) 0;
}
.skip-link:focus{ left:0; }

.shell{ width:min(100% - 2.5rem, var(--shell)); margin-inline:auto; }
/* Full-width variant for the top bar, header and hero: logo and hero copy sit near the left edge. */
.shell--wide{ width:calc(100% - 2 * var(--gutter-wide)); }

/* ---------- shared type ---------- */
.eyebrow{
  display:inline-block;
  font-size:.6875rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:#C21768; margin-bottom:var(--sp-4);
}
.services .eyebrow{
  border:1.5px solid rgba(255,46,138,.5); border-radius:var(--r-pill);
  padding:.3rem .9rem; letter-spacing:.1em;
}
.h2{
  font-size:clamp(1.6rem, 1.15rem + 1.55vw, 2.15rem);
  line-height:1.18; font-weight:700; letter-spacing:-.02em; color:var(--navy);
}
.h2--sm{ font-size:clamp(1.3rem, 1.05rem + .85vw, 1.6rem); }
.txt-pink{ color:var(--pink); }
.lede{ font-size:.9375rem; line-height:1.8; color:var(--body); max-width:46ch; }

/* ---------- buttons ---------- */
.btn{
  --btn-bg:var(--navy); --btn-fg:#fff; --btn-bd:transparent;
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  min-height:3rem; padding:.75rem 1.5rem;
  border-radius:var(--r-pill); border:1.6px solid var(--btn-bd);
  background:var(--btn-bg); color:var(--btn-fg);
  font-size:.875rem; font-weight:600; letter-spacing:.01em;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease);
  will-change:transform;
}
.btn svg{ width:1.125rem; height:1.125rem; flex:none; }
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }
.btn--sm{ min-height:2.625rem; padding:.5rem 1.1rem; font-size:.8125rem; }

.btn--navy{ background:var(--g-navy); box-shadow:0 8px 20px rgba(35,18,91,.22); }
.btn--navy:hover{ box-shadow:0 14px 30px rgba(35,18,91,.3); }

.btn--pink{ background:var(--g-pink); box-shadow:var(--sh-pink); }
.btn--pink:hover{ box-shadow:0 16px 34px rgba(255,46,138,.42); }

.btn--outline{ background:#fff; color:#C21768; --btn-bd:var(--pink); }
.btn--outline:hover{ background:var(--pink); color:#fff; box-shadow:var(--sh-pink); }

.btn--ghost-pink{ background:#fff; color:#C21768; --btn-bd:#C21768; box-shadow:var(--sh-1); }
.btn--ghost-pink:hover{ background:#C21768; color:#fff; --btn-bd:#C21768; box-shadow:var(--sh-pink); }

.btn--white{ background:#fff; color:var(--pink); box-shadow:0 10px 24px rgba(20,8,60,.28); }
.btn--white:hover{ color:var(--pink-deep); }

/* ============================================================
   TOP BAR
   ============================================================ */
.topbar{ background:var(--g-topbar); color:#EDE9F8; font-size:.75rem; }
.topbar__inner{
  display:flex; align-items:center; gap:var(--sp-5);
  min-height:2.625rem; padding-block:.4rem; flex-wrap:wrap;
}
.pill-open{ display:flex; align-items:center; gap:.4rem; flex:none; }
.pill-open__badge{
  background:var(--g-pink); color:#fff; font-weight:700; font-size:.6875rem;
  letter-spacing:.06em; text-transform:uppercase;
  padding:.3rem .85rem; border-radius:var(--r-pill);
  box-shadow:0 4px 12px rgba(255,46,138,.4);
}
.pill-open__pulse{ width:2.5rem; height:0.75rem; color:var(--pink); stroke-width:1.6; }

.topbar__list{ display:flex; align-items:center; gap:var(--sp-5); flex-wrap:wrap; }
.topbar__list a{ display:inline-flex; align-items:center; gap:.5rem; transition:color .2s; }
.topbar__list a:hover{ color:#fff; }
.topbar__ico{
  display:grid; place-items:center; width:1.375rem; height:1.375rem; flex:none;
  border-radius:50%; background:rgba(255,255,255,.14);
}
.topbar__ico svg{ width:0.75rem; height:0.75rem; stroke-width:2; }

.topbar__mail{ display:none; }
.topbar__addr{
  display:none; align-items:center; gap:.5rem; margin-left:auto;
  color:#D9D2EE;
}
.topbar__addr svg{ width:0.8125rem; height:0.8125rem; flex:none; color:#fff; }

/* ============================================================
   HEADER
   ============================================================ */
.header{
  position:sticky; top:var(--admin-bar-h); z-index:80;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  transition:box-shadow .3s var(--ease), background-color .3s var(--ease);
}
.header::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:linear-gradient(90deg,var(--pink),var(--blue) 55%,var(--navy));
  opacity:0; transition:opacity .3s var(--ease); pointer-events:none;
}
.header.is-stuck{
  background:#fff;
  box-shadow:0 1px 0 rgba(35,18,91,.08), 0 10px 30px rgba(35,18,91,.16);
}
.header.is-stuck::after{ opacity:1; }
.header__inner{
  display:flex; align-items:center; gap:var(--sp-4);
  min-height:var(--header-h);
}

.brand{ display:flex; align-items:center; gap:.7rem; flex:none; }
.brand__mark{
  width:2.875rem; height:2.875rem; border-radius:0.6875rem; flex:none;
  border:2px solid var(--navy); background:#fff; object-fit:contain; padding:1px;
}
.brand__text{ display:grid; line-height:1; }
.brand__name{
  font-size:1.1rem; font-weight:700; letter-spacing:.13em;
  color:var(--navy); text-transform:uppercase;
}
.brand__sub{
  font-size:.6875rem; font-weight:600; letter-spacing:.155em;
  color:var(--navy); text-transform:uppercase; margin-top:.24rem;
}
.brand__tag{
  display:flex; align-items:center; gap:.28em;
  font-size:.5625rem; font-weight:600; font-style:italic; letter-spacing:.015em;
  color:#C21768; margin-top:.3rem;
}
.brand__tag svg{ width:.95em; height:.95em; flex:none; stroke-width:2.4; }

.nav{ display:flex; align-items:center; margin-left:auto; }
.nav__close, .nav__cta{ display:none; }
.nav__list{ display:flex; align-items:center; gap:clamp(.9rem, 1.6vw, 1.9rem); }
.nav__link{
  position:relative; display:inline-flex; align-items:center; gap:.3rem;
  padding:.45rem 0; font-size:.875rem; font-weight:600; color:var(--navy);
  transition:color .2s;
}
.nav__link::after{
  content:''; position:absolute; left:0; right:0; bottom:-2px; height:2.5px;
  background:var(--pink); border-radius:2px;
  transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
}
.nav__link:hover{ color:var(--pink); }
.nav__link:hover::after, .nav__link.is-active::after{ transform:scaleX(1); }
.nav__link.is-active{ color:var(--pink); }
.nav__caret{ width:0.875rem; height:0.875rem; stroke-width:2.4; }

.nav__item--has-menu{ position:relative; }
.submenu{
  position:absolute; top:calc(100% + 0.875rem); left:50%; translate:-50% 0;
  min-width:13.125rem; padding:.6rem; border-radius:var(--r-md);
  background:#fff; box-shadow:var(--sh-3); border:1px solid var(--line);
  opacity:0; visibility:hidden; transform:translateY(0.5rem);
  transition:opacity .22s var(--ease), transform .22s var(--ease), visibility .22s;
}
.submenu::before{ content:''; position:absolute; inset:-14px 0 100% 0; }
.nav__item--has-menu:hover .submenu,
.nav__item--has-menu:focus-within .submenu{ opacity:1; visibility:visible; transform:translateY(0); }
.submenu a{
  display:block; padding:.55rem .8rem; border-radius:var(--r-sm);
  font-size:.8125rem; font-weight:500; color:var(--navy);
  transition:background-color .2s, color .2s;
}
.submenu a:hover{ background:var(--lav-soft); color:var(--pink); }

.header__cta{ flex:none; margin-left:var(--sp-5); }

.burger{
  display:none; width:2.875rem; height:2.875rem; margin-left:auto;
  border-radius:0.75rem; background:var(--lav-soft);
  padding:0.8125rem 0.75rem; flex-direction:column; justify-content:space-between;
}
.burger span{ display:block; height:2.5px; border-radius:2px; background:var(--navy); transition:.3s var(--ease); }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(0.4688rem) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; isolation:isolate; overflow:hidden;
  background:linear-gradient(175deg,#FFFFFF 0%,#FBFAFE 45%,#F3F0FB 100%);
  padding-bottom:clamp(3rem, 6vw, 5rem);
}
.hero__blob{
  position:absolute; z-index:-2; top:-34%; right:-15%;
  width:min(66vw,49.375rem); aspect-ratio:1/1.12;
  background:
    radial-gradient(58% 52% at 26% 30%, rgba(201,184,230,.5), transparent 68%),
    linear-gradient(146deg,#5B37B8 0%,#3A1E8E 46%,#23125B 100%);
  border-radius:52% 48% 62% 38% / 44% 56% 44% 56%;
  opacity:.96;
}
.br-lg{ display:none; }
.hero__leaf{
  position:absolute; z-index:-1; top:14%; left:44%; width:min(22vw,15rem); aspect-ratio:1;
  background:radial-gradient(circle at 40% 40%, rgba(201,184,230,.42), transparent 62%);
  filter:blur(2px);
}
.hero__grid{
  display:grid; gap:var(--sp-6);
  grid-template-columns:minmax(0,1fr);
  padding-top:clamp(2rem, 4vw, 3.25rem);
}
.hero__copy{ position:relative; z-index:3; }

.hero__title{
  font-size:clamp(2.4rem, 1.2rem + 5vw, 4.05rem);
  line-height:1.06; font-weight:700; letter-spacing:-.035em; color:var(--navy);
}
.hero__line{ display:block; }
.hero__line--pink{ color:var(--pink); display:flex; align-items:center; gap:.45em; flex-wrap:wrap; }
.hero__heart{
  width:.62em; height:.62em; flex:none; color:var(--pink);
  stroke-width:2.2; margin-top:.06em;
  animation:beat 2.6s var(--ease) infinite;
}
@keyframes beat{ 0%,72%,100%{transform:scale(1)} 78%{transform:scale(1.14)} 84%{transform:scale(1)} 90%{transform:scale(1.09)} }

.hero__lede{
  margin-top:var(--sp-5); font-size:clamp(.9375rem,.88rem + .2vw,1.0625rem);
  line-height:1.7; color:var(--body); max-width:34ch;
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:var(--sp-3); margin-top:var(--sp-6); }
.hero__actions .btn{ min-width:10.625rem; }

.trust{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(9.375rem,1fr));
  gap:var(--sp-4) var(--sp-5); margin-top:clamp(2rem,4vw,2.75rem);
}
.trust__item{ display:flex; align-items:center; gap:.65rem; }
.trust__ico{ width:1.4375rem; height:1.4375rem; flex:none; color:var(--navy); stroke-width:1.4; }
.trust__item span{ display:grid; font-size:.6875rem; line-height:1.45; color:var(--body-soft); }
.trust__item strong{ font-size:.75rem; font-weight:600; color:var(--navy); }
.trust__item span{ white-space:nowrap; }

/* --- hero media --- */
.hero__media{ position:relative; z-index:2; }
.hero__frame{
  position:relative; overflow:hidden;
  aspect-ratio:4/3; border-radius:var(--r-xl);
  box-shadow:0 26px 60px rgba(35,18,91,.24);
}
/* soft blend along the left edge so the photo melts into the hero field */
.hero__frame::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(100deg, rgba(247,245,252,.96) 0%, rgba(247,245,252,0) 16%);
  opacity:0;
}
.hero__photo{
  width:100%; height:100%;
  object-fit:cover; object-position:5% 26%;
}
.hero__card{
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.7);
  border-radius:var(--r-lg); box-shadow:var(--sh-3);
  padding:var(--sp-4) var(--sp-5);
  margin-top:calc(var(--sp-5) * -1); margin-inline:var(--sp-4);
  position:relative; z-index:3;
}
.hero__card-row{ display:flex; align-items:flex-start; gap:.8rem; }
.hero__card-ico{
  display:grid; place-items:center; width:2.25rem; height:2.25rem; flex:none;
  border-radius:50%; border:2px solid var(--pink); color:var(--pink);
}
.hero__card-ico svg{ width:1.1875rem; height:1.1875rem; }
.hero__card-label{ font-size:.8125rem; font-weight:600; color:var(--navy); }
.hero__card-big{ font-size:1.6rem; font-weight:700; color:var(--navy); line-height:1.1; letter-spacing:-.01em; }
.hero__card-rule{ margin-block:var(--sp-3); }
.hero__card-addr{ font-size:.8125rem; line-height:1.55; color:var(--body); }

/* ---------- wave dividers ---------- */
.wave{
  position:absolute; left:0; width:100%; pointer-events:none;
  display:block; height:clamp(2.875rem, 6.6vw, 6.5rem);
  overflow:visible;
}
.wave--top{ bottom:0; }
.wave--bottom{ top:0; transform:translateY(-99%); }
/* the divider SVGs draw their own strokes, so opt out of the global icon reset */
.wave path{ stroke-linejoin:round; }

/* ============================================================
   SERVICES
   ============================================================ */
.services{
  position:relative;
  background:linear-gradient(180deg,#F7F5FC 0%,#FBFAFE 60%,#FFFFFF 100%);
  padding-block:clamp(2.25rem,4vw,3.25rem) clamp(2.25rem,4vw,3.25rem);
}
.services__grid{
  display:grid; gap:clamp(1.75rem,3vw,2.75rem);
  grid-template-columns:minmax(0,1fr);
  align-items:start;
}
.services__intro .h2{ margin-bottom:var(--sp-4); }
.services__intro .btn{ margin-top:var(--sp-5); }

.cards{ display:grid; gap:var(--sp-4); grid-template-columns:repeat(auto-fit,minmax(14.375rem,1fr)); }
.card{
  display:flex; align-items:flex-start; gap:var(--sp-3);
  background:#fff; border:1px solid var(--line); border-radius:var(--r-md);
  padding:var(--sp-4);
  box-shadow:var(--sh-1);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.card:hover{ transform:translateY(-5px); box-shadow:var(--sh-3); border-color:rgba(255,46,138,.32); }
.card__ico{
  width:2.875rem; height:2.875rem; flex:none; object-fit:contain;
  transition:transform .35s var(--ease);
}
.card:hover .card__ico{ transform:scale(1.08) rotate(-3deg); }
.card__title{ font-size:.875rem; font-weight:600; color:var(--navy); margin-bottom:.25rem; }
.card__text{ font-size:.75rem; line-height:1.55; color:var(--body-soft); }

/* ============================================================
   WHY CHOOSE US
   ============================================================ */
.why{ background:#fff; padding-block:clamp(1.75rem,3.2vw,2.75rem); }
.why__grid{
  display:grid; gap:clamp(1.5rem,2.6vw,2.25rem);
  grid-template-columns:minmax(0,1fr);
  align-items:center;
}
.why__media{
  position:relative; border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--sh-3); isolation:isolate;
}
.why__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.why__media::after{
  content:''; position:absolute; inset:auto 0 0 0; height:52%;
  background:linear-gradient(to top, rgba(21,10,56,.7), transparent);
  pointer-events:none;
}
.why__play{
  position:absolute; z-index:2; top:var(--sp-4); right:var(--sp-4);
  display:inline-flex; align-items:center; gap:.5rem;
  min-height:2.75rem; padding:.5rem 1rem .5rem .6rem;
  border-radius:var(--r-pill);
  background:rgba(255,255,255,.92); color:var(--navy);
  font-size:.8125rem; font-weight:600;
  box-shadow:var(--sh-2); backdrop-filter:blur(6px);
  transition:transform .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease);
}
.why__play svg{
  width:1.625rem; height:1.625rem; flex:none; padding:0.3125rem;
  border-radius:50%; background:var(--g-pink); color:#fff;
  fill:currentColor; stroke:none;
}
.why__play:hover{ transform:scale(1.04); background:#fff; color:var(--pink); }
.why__badge{
  position:absolute; z-index:2; left:var(--sp-4); bottom:var(--sp-4);
  display:flex; align-items:center; gap:.7rem;
  padding:.7rem 1.1rem .7rem .7rem; border-radius:var(--r-md);
  background:linear-gradient(120deg, rgba(43,23,112,.92), rgba(27,14,74,.92));
  backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.14);
  color:#fff; font-size:.8125rem; font-weight:600; line-height:1.35;
}
.why__badge img{ width:2.125rem; height:2.125rem; flex:none; }

.why__copy .h2{ margin-bottom:var(--sp-4); }
.why__copy .btn{ margin-top:var(--sp-5); }

.pillars{ display:grid; gap:var(--sp-4); position:relative; }
.pillars::before{
  content:''; position:absolute; left:0.3125rem; top:0.875rem; bottom:0.875rem; width:1.5px;
  background:linear-gradient(180deg, rgba(255,46,138,.45), rgba(201,184,230,.5));
}
.pillar{ position:relative; display:grid; grid-template-columns:auto auto 1fr; align-items:start; gap:.75rem; padding-left:1.625rem; }
.pillar__dot{
  position:absolute; left:0; top:0.3125rem; width:0.6875rem; height:0.6875rem; border-radius:50%;
  background:var(--pink); box-shadow:0 0 0 4px rgba(255,46,138,.14);
}
.pillar__check{ width:1.125rem; height:1.125rem; flex:none; color:var(--pink); margin-top:2px; }
.pillar h3{ font-size:.875rem; font-weight:600; color:var(--navy); margin-bottom:.1rem; }
.pillar p{ font-size:.8125rem; line-height:1.55; color:var(--body-soft); max-width:26ch; }

/* ============================================================
   STATS
   ============================================================ */
.stats-wrap{ background:#fff; padding-block:var(--sp-4) var(--sp-3); }
.stats{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr));
  gap:var(--sp-5);
  background:var(--g-navy); border-radius:var(--r-lg);
  padding:clamp(1.5rem,3vw,2.1rem) clamp(1.25rem,3vw,2.5rem);
  box-shadow:0 18px 44px rgba(35,18,91,.26);
  position:relative; overflow:hidden;
}
.stats::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(70% 120% at 85% 10%, rgba(107,79,161,.5), transparent 60%);
}
.stat{ display:flex; align-items:center; gap:var(--sp-4); position:relative; z-index:1; }
.stat + .stat::before{
  content:''; position:absolute; left:calc(var(--sp-5) / -2); top:8%; bottom:8%;
  width:1px; background:rgba(255,255,255,.2);
}
.stat__ico{
  display:grid; place-items:center; width:3.25rem; height:3.25rem; flex:none;
  border-radius:50%; background:#fff; color:var(--navy);
}
.stat__ico svg{ width:1.6875rem; height:1.6875rem; }
.stat__num{ font-size:clamp(1.4rem,1.1rem + 1vw,1.8rem); font-weight:700; color:#fff; line-height:1.15; letter-spacing:-.01em; }
.stat__label{ font-size:.8125rem; color:#D8D1EC; }

/* ============================================================
   CTA BANNER
   ============================================================ */
/* ============================================================
   INSURANCE STRIP (replaces the appointment banner)
   ============================================================ */
.insurers-wrap{ background:#fff; padding-block:var(--sp-3) clamp(1.5rem,3vw,2.25rem); }
.insurers{
  display:grid; gap:var(--sp-5); align-items:center;
  padding:clamp(1.25rem,3vw,2rem) clamp(1.25rem,3.5vw,2.75rem);
  border-radius:var(--r-xl); background:#fff;
  border:1px solid var(--line); box-shadow:var(--sh-2);
}
.insurers__title{ margin-top:.35rem; color:var(--navy); font-size:clamp(1.15rem,.95rem + 1vw,1.6rem); line-height:1.25; letter-spacing:-.01em; }
.insurers__more{
  display:inline-flex; align-items:center; gap:.4rem; margin-top:var(--sp-3);
  color:var(--pink-deep); font-size:.8125rem; font-weight:600;
}
.insurers__more svg{ width:1rem; height:1rem; transition:transform .2s var(--ease); }
.insurers__more:hover svg{ transform:translateX(3px); }
.insurers__list{ display:flex; flex-wrap:wrap; gap:var(--sp-3); }
.insurers__item{
  display:grid; align-content:center; justify-items:center; text-align:center;
  flex:1 1 9rem; min-height:5.25rem; padding:var(--sp-3) var(--sp-4);
  border-radius:var(--r-md); background:var(--paper-2); border:1px solid var(--line);
}
.insurers__item--logo{ background:#fff; }
.insurers__logo{ width:auto; max-width:100%; max-height:3.25rem; object-fit:contain; }
.insurers__name{ color:var(--navy); font-size:1.15rem; font-weight:700; letter-spacing:.02em; }
.insurers__detail{ margin-top:.2rem; color:var(--body-soft); font-size:.6875rem; line-height:1.4; }
@media (min-width:900px){
  .insurers{ grid-template-columns:minmax(0,15rem) minmax(0,1fr); gap:clamp(1.5rem,4vw,3.5rem); }
}

.cta-wrap{ background:#fff; padding-block:var(--sp-3) clamp(1.5rem,3vw,2.25rem); }
.cta{
  position:relative; overflow:hidden; isolation:isolate;
  display:grid; gap:var(--sp-5); align-items:center;
  grid-template-columns:minmax(0,1fr);
  background:var(--g-cta); border-radius:var(--r-lg);
  padding:clamp(1.5rem,3vw,2rem) clamp(1.5rem,3vw,2.5rem);
  box-shadow:0 18px 44px rgba(90,20,110,.3);
  color:#fff;
}
.cta__glow{
  position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(45% 130% at 8% 40%, rgba(255,255,255,.2), transparent 60%),
    radial-gradient(60% 160% at 78% 105%, rgba(10,140,255,.55), transparent 62%);
}
.cta__ico{
  display:grid; place-items:center; width:4.125rem; height:4.125rem; flex:none;
  border-radius:50%; background:#fff; color:var(--navy);
  box-shadow:0 10px 26px rgba(20,8,60,.3);
}
.cta__ico svg{ width:2.125rem; height:2.125rem; }
.cta__title{ font-size:clamp(1.15rem,.95rem + 1vw,1.6rem); font-weight:700; line-height:1.28; letter-spacing:-.01em; }
.cta__note{ font-size:.8125rem; color:rgba(255,255,255,.86); margin-top:.5rem; }
.cta__actions{ display:flex; flex-wrap:wrap; gap:var(--sp-3); }
.cta__actions .btn{ min-width:11.25rem; }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.voices{ background:linear-gradient(180deg,#FFFFFF,#FAF9FE); padding-block:clamp(1rem,2vw,1.5rem) clamp(1.75rem,3.2vw,2.5rem); }
.voices__grid{ display:grid; gap:var(--sp-5); grid-template-columns:minmax(0,1fr); align-items:center; }
.voices__intro .h2{ max-width:12ch; }

/* On phones the slider is a grid item whose flex track can outgrow its column,
   which widens the mobile layout viewport and pushes the cards off-screen.
   Pinning the box (and zeroing the automatic min size) keeps it inside the shell. */
.voices__grid > *{ min-width:0; }
.voices__slider{ width:100%; max-width:100%; min-width:0; padding-bottom:var(--sp-4); }
.voices__slider .swiper-wrapper{ align-items:stretch; }
.voices__slider .swiper-slide{ width:100%; max-width:100%; }
@media (min-width:560px){ .voices__slider .swiper-slide{ width:calc((100% - 16px) / 2); } }
@media (min-width:1024px){ .voices__slider .swiper-slide{ width:calc((100% - 32px) / 3); } }
.quote{
  display:flex; flex-direction:column; height:auto;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-md);
  padding:var(--sp-5); box-shadow:var(--sh-1);
  transition:box-shadow .3s var(--ease), transform .3s var(--ease);
}
.quote:hover{ box-shadow:var(--sh-2); transform:translateY(-3px); }
.quote__mark{ width:1.625rem; height:1.25rem; color:var(--navy); opacity:.9; }
.quote__stars{
  position:absolute; top:var(--sp-5); right:var(--sp-5);
  color:var(--pink); font-size:.8125rem; letter-spacing:.12em;
}
.quote{ position:relative; }
.quote__text{
  margin:var(--sp-3) 0 auto; font-size:.8125rem; line-height:1.7;
  color:var(--body); font-style:normal;
}
.quote__by{ display:flex; align-items:center; gap:.7rem; margin-top:var(--sp-5); }
.quote__avatar{
  display:grid; place-items:center; width:2.625rem; height:2.625rem; flex:none;
  border-radius:50%; background:var(--g-navy); color:#fff;
  font-size:.8125rem; font-weight:600; letter-spacing:.03em;
  box-shadow:0 0 0 3px rgba(201,184,230,.4);
}
.quote__by span{ display:grid; font-size:.75rem; color:var(--body-soft); line-height:1.45; }
.quote__by strong{ font-size:.8125rem; font-weight:600; color:var(--navy); }

.voices__dots{ display:flex; justify-content:center; gap:.4rem; margin-top:var(--sp-3); }
.voices__dots .swiper-pagination-bullet{
  width:0.4375rem; height:0.4375rem; margin:0 !important; opacity:1;
  background:var(--lav); transition:width .3s var(--ease), background-color .3s var(--ease);
}
.voices__dots .swiper-pagination-bullet-active{ width:1.25rem; border-radius:var(--r-pill); background:var(--pink); }

/* ============================================================
   VISIT / MAP
   ============================================================ */
.visit{ background:#FAF9FE; padding-block:clamp(1rem,2vw,1.5rem) clamp(2rem,4vw,3rem); }
.visit__panel{
  display:grid; gap:var(--sp-5); grid-template-columns:minmax(0,1fr);
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(1.5rem,3vw,2rem); box-shadow:var(--sh-2);
  align-items:center;
}
.visit__col--info .h2{ margin-bottom:var(--sp-4); }
.visit__list{ display:grid; gap:var(--sp-3); }
.visit__list li{ display:flex; align-items:flex-start; gap:.7rem; font-size:.8125rem; line-height:1.6; color:var(--body); }
.visit__list a{ display:inline-flex; align-items:center; min-height:1.625rem; transition:color .2s; }
.visit__phones{ display:grid; gap:.15rem; }
.visit__list a:hover{ color:var(--pink); }
.visit__list li:first-child{ font-weight:600; color:var(--navy); }
.visit__ico{
  display:grid; place-items:center; width:1.625rem; height:1.625rem; flex:none;
  border-radius:50%; background:var(--navy); color:#fff;
}
.visit__ico svg{ width:0.8125rem; height:0.8125rem; stroke-width:2; }

.visit__col--hours{
  border:1px solid var(--line); border-radius:var(--r-md);
  padding:var(--sp-4) var(--sp-5); background:var(--paper-2);
}
.visit__mini{ font-size:.6875rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; color:var(--purple); margin-bottom:var(--sp-3); }
.visit__hours{ display:flex; align-items:center; gap:.55rem; font-size:1.05rem; font-weight:700; color:var(--navy); }
.visit__hours svg{ width:1.5rem; height:1.5rem; flex:none; color:var(--navy); }
.visit__sub{ font-size:.75rem; line-height:1.6; color:var(--body); margin-top:.5rem; }
.visit__col--hours hr{ margin-block:var(--sp-4); }
.visit__foot{ font-size:.75rem; color:var(--body); }
.visit__h3{ font-size:.9375rem; font-weight:600; color:var(--navy); margin-bottom:.5rem; }
.visit__col--find .btn{ margin-top:var(--sp-4); }

.visit__map{
  min-height:clamp(11.875rem,26vw,14.0625rem); border-radius:var(--r-md); overflow:hidden;
  border:1px solid var(--line); background:#EAE7F4;
  position:relative; z-index:0;
}
.visit__map-status{
  position:absolute; inset:0; display:grid; place-items:center; padding:var(--sp-5);
  color:var(--navy); background:linear-gradient(135deg,#EFEAF8,#F8F6FC);
  font-size:.8125rem; font-weight:600; text-align:center;
}
.visit__map-fallback{ padding:var(--sp-5); font-size:.8125rem; color:var(--body); }
.leaflet-container{ font-family:inherit; background:#EAE7F4; }
.leaflet-control-attribution{ font-size:0.5625rem; }
.map-pin{
  width:2.375rem; height:3.125rem; filter:drop-shadow(0 6px 10px rgba(35,18,91,.35));
  animation:pinDrop .7s var(--ease) both;
}
@keyframes pinDrop{ from{ transform:translateY(-26px); opacity:0 } to{ transform:translateY(0); opacity:1 } }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{
  position:relative; margin-top:clamp(2.25rem,4.5vw,3.75rem);
  background:var(--g-navy); color:#DCD6EF;
  padding-top:clamp(2rem,4vw,3rem);
}
.footer__grid{
  display:grid; gap:clamp(1.75rem,3vw,2.5rem);
  grid-template-columns:minmax(0,1fr);
  padding-bottom:clamp(2rem,4vw,2.75rem);
}
.brand--light .brand__mark{ border-color:rgba(255,255,255,.85); }
.brand--light .brand__name,
.brand--light .brand__sub{ color:#fff; }
.brand--light .brand__tag{ color:var(--pink); }

.footer__blurb{ font-size:.8125rem; line-height:1.7; color:#C4BCDF; margin-top:var(--sp-4); max-width:34ch; }
.social{ display:flex; gap:.6rem; margin-top:var(--sp-4); }
.social a{
  display:grid; place-items:center; width:2.25rem; height:2.25rem;
  border-radius:50%; background:#fff; color:var(--navy);
  transition:transform .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease);
}
.social a svg{ width:1.125rem; height:1.125rem; }
.social a:hover{ transform:translateY(-3px); background:var(--pink); color:#fff; }

.footer__h{
  font-size:.75rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase;
  color:#fff; margin-bottom:var(--sp-4);
}
.footer__col ul{ display:grid; gap:.55rem; }
.footer__col a{ font-size:.8125rem; color:#C4BCDF; transition:color .2s, padding-left .2s; }
.footer__col a:hover{ color:#fff; padding-left:3px; }
.footer__contact li{ display:flex; align-items:flex-start; gap:.65rem; font-size:.8125rem; line-height:1.6; color:#C4BCDF; }
.footer__contact a{ display:inline-flex; align-items:center; min-height:2rem; }
.footer__ico{
  display:grid; place-items:center; width:1.625rem; height:1.625rem; flex:none;
  border-radius:50%; background:#fff; color:var(--navy);
}
.footer__ico svg{ width:0.8125rem; height:0.8125rem; stroke-width:2; }

.footer__hours{ text-align:left; }
.footer__clock{ width:3.25rem; height:3.25rem; color:#fff; stroke-width:2; margin-bottom:.6rem; }
.footer__clock text{ font-size:0.8125rem; font-weight:700; fill:#fff; stroke:none; font-family:'Poppins',sans-serif; }
.footer__hours-t{ font-size:.8125rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#fff; }
.footer__hours-s{ font-size:.8125rem; line-height:1.6; color:#C4BCDF; margin-top:.35rem; }

.footer__bar{ border-top:1px solid rgba(255,255,255,.13); }
.footer__bar-in{
  display:flex; flex-wrap:wrap; gap:var(--sp-3) var(--sp-5);
  align-items:center; justify-content:space-between;
  padding-block:var(--sp-4); font-size:.6875rem; color:#B2A9D1;
}
.footer__bar ul{ display:flex; gap:var(--sp-5); }
.footer__bar a{ transition:color .2s; }
.footer__bar a:hover{ color:#fff; }

/* ============================================================
   VIDEO LIGHTBOX
   ============================================================ */
.lightbox{ position:fixed; inset:0; z-index:150; display:grid; place-items:center; padding:var(--sp-4); }
.lightbox[hidden]{ display:none; }
.lightbox__backdrop{ position:absolute; inset:0; background:rgba(21,10,56,.82); backdrop-filter:blur(6px); animation:fade .3s var(--ease); }
.lightbox__inner{
  position:relative; width:min(100%,56.25rem);
  border-radius:var(--r-lg); overflow:hidden; box-shadow:0 30px 80px rgba(0,0,0,.5);
  animation:pop .35s var(--ease);
}
.lightbox video{ width:100%; aspect-ratio:848/478; background:#000; }
.lightbox__close{
  position:absolute; top:0.625rem; right:0.625rem; z-index:2;
  display:grid; place-items:center; width:2.625rem; height:2.625rem;
  border-radius:50%; background:rgba(255,255,255,.92); color:var(--navy);
  transition:background-color .2s, transform .2s;
}
.lightbox__close:hover{ background:#fff; transform:rotate(90deg); }
.lightbox__close svg{ width:1.25rem; height:1.25rem; stroke-width:2.4; }
@keyframes fade{ from{opacity:0} to{opacity:1} }
@keyframes pop{ from{opacity:0; transform:scale(.94)} to{opacity:1; transform:scale(1)} }
body.is-locked{ overflow:hidden; }

/* ---------- floating call button (small screens) ---------- */
.fab-call{
  position:fixed; z-index:90; right:1rem; bottom:1rem;
  display:none; place-items:center; width:3.5rem; height:3.5rem;
  border-radius:50%; background:var(--g-pink); color:#fff;
  box-shadow:var(--sh-pink);
  animation:ring 3.4s var(--ease) infinite;
}
.fab-call svg{ width:1.5rem; height:1.5rem; stroke-width:2; }
body.is-locked .fab-call{ display:none; }

/* Floating WhatsApp button, matching the coming-soon page */
.fab-wa{
  position:fixed; z-index:91; right:1.25rem; bottom:1.25rem;
  display:grid; place-items:center; width:4rem; height:4rem;
  border-radius:50%;
  background:linear-gradient(140deg,#45E57F 0%,#25D366 46%,#079C4A 100%); color:#fff;
  box-shadow:0 14px 34px rgba(7,156,74,.45);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  animation:fab-float 4.5s var(--ease) infinite;
}
.fab-wa svg{ width:2rem; height:2rem; stroke-width:1.8; }
/* two rings breathing outward, so the button reads as "talk to us now" */
.fab-wa::before,.fab-wa::after{
  content:''; position:absolute; inset:0; border-radius:50%;
  border:2px solid rgba(37,211,102,.55);
  animation:fab-ripple 2.8s var(--ease) infinite; pointer-events:none;
}
.fab-wa::after{ animation-delay:1.4s; }
.fab-wa:hover{ transform:scale(1.07); box-shadow:0 20px 44px rgba(7,156,74,.55); }
.fab-wa:active{ transform:scale(.98); }
.fab-wa:focus-visible{ outline:3px solid var(--navy); outline-offset:4px; }
body.is-locked .fab-wa{ display:none; }
@keyframes fab-float{ 0%,100%{ translate:0 0 } 50%{ translate:0 -5px } }
@keyframes fab-ripple{ 0%{ transform:scale(1); opacity:.75 } 70%,100%{ transform:scale(1.75); opacity:0 } }
@keyframes ring{ 0%,88%,100%{ transform:rotate(0) } 91%{ transform:rotate(-13deg) } 94%{ transform:rotate(11deg) } 97%{ transform:rotate(-7deg) } }

/* ============================================================
   REVEAL (falls back to visible if JS/GSAP never runs)
   ============================================================ */
.js [data-reveal]{ opacity:0; transform:translateY(1.625rem); }
.js [data-reveal].is-in{ opacity:1; transform:none; transition:opacity .7s var(--ease), transform .7s var(--ease); }

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* --- small phones --- */
@media (max-width:479px){
  .shell{ width:calc(100% - 2rem); }
  .hero__actions .btn{ flex:1 1 100%; }
  .cta__actions .btn{ flex:1 1 100%; }
  .stats{ gap:var(--sp-4); }
  .stat + .stat::before{ display:none; }
  .fab-call{ display:grid; }
  /* stack the call button above WhatsApp */
  .fab-wa{ right:1rem; bottom:1rem; width:3.625rem; height:3.625rem; }
  .fab-wa svg{ width:1.8125rem; height:1.8125rem; }
  .fab-call{ bottom:calc(1rem + 3.625rem + 0.875rem); }
}

/* --- phones / small tablets: off-canvas nav --- */
@media (max-width:1099px){
  /* below the split hero the blob is ambient wash, not a hard disc */
  .hero__blob{
    top:-8%; right:-32%; width:min(96vw,45rem); aspect-ratio:1/.78;
    opacity:.16; filter:blur(38px);
  }
  .hero__leaf{ display:none; }
}

@media (max-width:1023px){
  .burger{ display:flex; }
  .header__cta{ display:none; }

  /* backdrop-filter would make the header the containing block for the
     position:fixed drawer, trapping it inside the header's box */
  .header{ backdrop-filter:none; -webkit-backdrop-filter:none; background:#fff; }
  .header.is-stuck{ background:#fff; }

  .nav{
    position:fixed; inset:var(--admin-bar-h) 0 0 auto; z-index:120;
    width:min(88vw,22.5rem); margin:0;
    flex-direction:column; align-items:stretch; justify-content:flex-start;
    gap:var(--sp-4);
    background:#fff; box-shadow:-14px 0 44px rgba(35,18,91,.2);
    padding:calc(var(--sp-7) + .5rem) var(--sp-5) var(--sp-6);
    overflow-y:auto;
    transform:translateX(100%); visibility:hidden;
    transition:transform .38s var(--ease), visibility .38s;
  }
  .nav.is-open{ transform:none; visibility:visible; }

  .nav__close{
    display:grid; place-items:center; position:absolute; top:0.875rem; right:0.875rem;
    width:2.625rem; height:2.625rem; border-radius:50%; background:var(--lav-soft); color:var(--navy);
  }
  .nav__close svg{ width:1.25rem; height:1.25rem; stroke-width:2.4; }

  .nav__list{ flex-direction:column; align-items:stretch; gap:0; }
  .nav__list > li{ border-bottom:1px solid var(--line); }
  .nav__link{ justify-content:space-between; padding:.95rem 0; font-size:1rem; }
  .nav__link::after{ display:none; }

  .submenu{
    position:static; translate:none; transform:none; opacity:1; visibility:visible;
    box-shadow:none; border:0; padding:0 0 .6rem .6rem; min-width:0;
    display:none;
  }
  .nav__item--has-menu.is-open .submenu{ display:block; }
  .nav__item--has-menu.is-open .nav__caret{ transform:rotate(180deg); }
  .nav__caret{ transition:transform .3s var(--ease); }

  .nav__cta{ display:inline-flex; margin-top:var(--sp-4); }

  .nav-backdrop{
    position:fixed; inset:0; z-index:110;
    background:rgba(21,10,56,.5); backdrop-filter:blur(3px);
    opacity:0; transition:opacity .35s var(--ease);
  }
  .nav-backdrop.is-on{ opacity:1; }
}

/* --- tablets --- */
@media (min-width:640px){
  .hero__card{ margin-inline:var(--sp-6); }
  .voices__slider .quote__text{ font-size:.84rem; }
}

@media (min-width:600px){
  .topbar__mail{ display:list-item; }
}

@media (min-width:768px){
  .topbar__addr{ display:flex; }
  .hero__grid{ padding-top:clamp(2.5rem,4vw,3.5rem); }
  .why__grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .why__media{ grid-row:span 2; }
  .visit__panel{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .visit__col--map{ grid-column:span 2; }
  .footer__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .voices__grid{ grid-template-columns:minmax(11.25rem,.9fr) minmax(0,3fr); }
  .cta{ grid-template-columns:auto minmax(0,1fr); }
  .cta__actions{ grid-column:1/-1; }
}

/* --- laptops --- */
@media (min-width:1024px){
  .services__grid{ grid-template-columns:minmax(20rem,1fr) minmax(0,1.85fr); }
  .cards{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .why__grid{ grid-template-columns:minmax(0,1.22fr) minmax(0,1.06fr) minmax(12.5rem,.72fr); }
  .why__media{ grid-row:auto; }
  .footer__grid{ grid-template-columns:1.35fr .75fr .95fr 1.3fr .9fr; }
  .footer__col, .footer__hours{ border-left:1px solid rgba(255,255,255,.13); padding-left:clamp(1.25rem,2vw,2rem); }
  .visit__panel{ grid-template-columns:1.15fr .85fr 1.3fr .9fr; }
  .visit__col--map{ grid-column:auto; }
  .cta{ grid-template-columns:auto minmax(0,1fr) auto; }
  .cta__actions{ grid-column:auto; }
}

/* --- desktop: the two-column hero from the reference design --- */
@media (min-width:1100px){
  .hero{ padding-bottom:clamp(5rem,8vw,8rem); }
  .hero__grid{
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
    gap:var(--sp-5);
    align-items:start;
  }
  .hero__copy{ padding-top:clamp(1.5rem,3vw,3rem); padding-bottom:var(--sp-6); }
  .hero__media{
    margin-right:calc(var(--gutter-wide) * -1);
    margin-top:calc(var(--sp-4) * -1);
  }
  .hero__frame{
    aspect-ratio:auto; height:clamp(28.125rem, 40vw, 36.25rem);
    border-radius:var(--r-xl) 0 0 var(--r-xl);
    box-shadow:0 24px 56px rgba(35,18,91,.2);
  }
  .hero__frame::after{ opacity:1; }
  .hero__photo{ object-position:5% 26%; }
  .hero__card{
    position:absolute; right:clamp(1rem,2.2vw,2rem); bottom:clamp(1rem,2.2vw,2rem);
    width:15rem; margin:0;
  }
  .trust{ grid-template-columns:repeat(4,auto); justify-content:start; gap:var(--sp-4); }
  .trust__item span{ font-size:.625rem; }
  .trust__item strong{ font-size:.6875rem; }
  .trust__ico{ width:1.3125rem; height:1.3125rem; }
}

@media (min-width:1280px){
  .br-lg{ display:inline; }
  .hero__lede{ max-width:38ch; }
}

/* ---------- motion preferences ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .js [data-reveal]{ opacity:1 !important; transform:none !important; }
}

/* ---------- print ---------- */
@media print{
  .topbar,.header,.wave,.fab-call,.fab-wa,.lightbox,.voices__slider,.visit__map{ display:none !important; }
  body{ color:#000; }
  .hero,.services,.why,.stats-wrap,.cta-wrap,.visit,.footer{ background:#fff !important; }
}

/* ============================================================
   INNER PAGES AND SERVICES
   ============================================================ */
.screen-reader-text{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.header-sentinel{ position:absolute; top:0; width:1px; height:1px; pointer-events:none; }
.inner-page{ background:linear-gradient(180deg,#F8F6FC 0%,#FFFFFF 36%); min-height:60dvh; }
.inner-hero{ padding-block:clamp(4rem,8vw,7rem); background:linear-gradient(135deg,#F0EBF8 0%,#FFFFFF 72%); }
.inner-hero__content{ max-width:51.25rem; }
.inner-hero h1,.service-hero h1{
  color:var(--navy); font-size:clamp(2.25rem,1.55rem + 3vw,4.5rem);
  line-height:1.05; letter-spacing:-.045em; max-width:13ch;
}
.inner-hero__content>p:last-child,.service-hero__lede{
  margin-top:var(--sp-5); max-width:62ch; color:var(--body); font-size:clamp(1rem,.92rem + .35vw,1.2rem); line-height:1.8;
}
.service-directory{ padding-block:clamp(3rem,7vw,6rem); }
.service-directory__grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-5); }
.service-directory__item>a{
  display:grid; grid-template-columns:5.5rem minmax(0,1fr); gap:var(--sp-5); align-items:center;
  min-height:11.25rem; padding:clamp(1.25rem,3vw,2rem); border:1px solid var(--line);
  border-radius:var(--r-lg); background:#fff; box-shadow:var(--sh-1);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease);
}
.service-directory__item>a:hover{ transform:translateY(-3px); box-shadow:var(--sh-2); border-color:rgba(255,46,138,.35); }
.service-directory__media{ display:grid; place-items:center; min-height:5.5rem; border-radius:var(--r-md); background:var(--lav-soft); }
.service-directory__media img{ width:4rem; height:4rem; object-fit:contain; }
.service-directory__copy{ display:grid; gap:.6rem; }
.service-directory__title{ color:var(--navy); font-size:clamp(1.1rem,1rem + .4vw,1.35rem); font-weight:700; }
.service-directory__summary{ color:var(--body); font-size:.9rem; line-height:1.65; }
.service-directory__action{ display:inline-flex; align-items:center; gap:.45rem; color:var(--pink-deep); font-size:.8rem; font-weight:700; }
.service-directory__action svg{ width:1rem; height:1rem; transition:transform .2s var(--ease); }
.service-directory__item>a:hover .service-directory__action svg{ transform:translateX(3px); }
.service-empty{ padding:var(--sp-7); text-align:center; border-radius:var(--r-lg); background:#fff; border:1px solid var(--line); }
.service-empty h2{ color:var(--navy); }
.service-empty p{ margin:var(--sp-3) auto var(--sp-5); }
.breadcrumbs{ display:flex; flex-wrap:wrap; gap:.5rem; padding-block:var(--sp-5); font-size:.78rem; color:var(--body-soft); }
.breadcrumbs a{ color:var(--navy); font-weight:600; }
.breadcrumbs a:hover{ color:var(--pink-deep); }
.service-article{ padding-bottom:clamp(3rem,7vw,6rem); }
.service-hero{
  display:grid; grid-template-columns:1fr; gap:var(--sp-6); align-items:center;
  padding:clamp(1.5rem,4vw,3.5rem); border-radius:var(--r-xl); background:#fff;
  border:1px solid var(--line); box-shadow:var(--sh-2);
}
.service-hero__copy .btn{ margin-top:var(--sp-6); }
.service-hero__media{
  display:grid; place-items:center; min-height:16.25rem; overflow:hidden;
  border-radius:var(--r-lg); background:linear-gradient(145deg,#F0EBF8,#FBF9FD);
}
.service-hero__media img{ width:100%; height:100%; min-height:16.25rem; object-fit:cover; }
.service-hero__media img[src*="/derived/icon-"]{ width:8.75rem; height:8.75rem; min-height:0; object-fit:contain; }
.service-details{ display:grid; grid-template-columns:1fr; gap:var(--sp-5); padding-block:clamp(2.5rem,6vw,5rem); }
.service-detail{ padding:clamp(1.5rem,4vw,2.5rem); border-radius:var(--r-lg); border:1px solid var(--line); background:#fff; }
.service-detail--tint{ background:var(--lav-soft); border-color:transparent; }
.service-detail h2,.service-content h2,.service-availability h2,.service-guidance h2,.inner-cta h2{
  margin-bottom:var(--sp-3); color:var(--navy); font-size:clamp(1.25rem,1.1rem + .6vw,1.7rem); line-height:1.25;
}
.service-detail p,.service-content p,.service-availability p,.service-guidance p,.inner-cta p{ color:var(--body); line-height:1.8; }
.service-content{ max-width:48.75rem; margin-bottom:clamp(2.5rem,6vw,5rem); }
.service-content>*+*{ margin-top:var(--sp-4); }
.service-availability{
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:var(--sp-5); align-items:start;
  padding:clamp(1.5rem,4vw,2.5rem); border-radius:var(--r-lg); background:var(--g-navy); color:#fff;
}
.service-availability h2,.service-availability p{ color:#fff; }
.service-availability__icon{ display:grid; place-items:center; width:3.25rem; height:3.25rem; border-radius:50%; background:var(--pink); }
.service-availability__icon svg{ width:1.5625rem; height:1.5625rem; }
.service-guidance{ margin-top:var(--sp-5); padding:var(--sp-5); border-left:4px solid var(--pink); background:#FFF5FA; border-radius:0 var(--r-md) var(--r-md) 0; }
.inner-cta{
  display:flex; flex-direction:column; align-items:flex-start; gap:var(--sp-5);
  margin-block:clamp(2.5rem,6vw,5rem); padding:clamp(1.5rem,4vw,2.75rem);
  border-radius:var(--r-lg); background:linear-gradient(120deg,#F0EBF8,#FFFFFF); border:1px solid var(--line);
}
.card__link{ display:flex; align-items:flex-start; gap:var(--sp-3); width:100%; }

@media (min-width:768px){
  .service-directory__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-hero{ grid-template-columns:minmax(0,1.1fr) minmax(18.75rem,.9fr); }
  .service-details{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .inner-cta{ flex-direction:row; align-items:center; justify-content:space-between; }
  .inner-cta .btn{ flex:none; }
}

@media (max-width:767px){
  .inner-hero{ padding-block:3.25rem; }
  .service-directory__item>a{ grid-template-columns:4.25rem minmax(0,1fr); gap:var(--sp-4); min-height:0; }
  .service-directory__media{ min-height:4.25rem; }
  .service-directory__media img{ width:3.125rem; height:3.125rem; }
  .service-availability{ grid-template-columns:1fr; }
}

/* ============================================================
   APPOINTMENT FORM
   ============================================================ */
.appointment-layout{
  display:grid; grid-template-columns:1fr; gap:clamp(2rem,5vw,4.5rem);
  align-items:start; padding-block:clamp(3rem,7vw,6rem);
}
.appointment-layout__form>h2{ color:var(--navy); font-size:clamp(1.6rem,1.3rem + 1vw,2.25rem); line-height:1.2; }
.appointment-layout__intro{ margin-top:.7rem; color:var(--body-soft); }
.appointment-form-wrap{ margin-top:var(--sp-6); }
.appointment-form{ display:grid; gap:var(--sp-5); }
.appointment-form__row{ display:grid; grid-template-columns:1fr; gap:var(--sp-5); }
.form-field{ display:grid; gap:.5rem; }
.form-field label{ color:var(--navy); font-size:.85rem; font-weight:700; }
.form-field input,.form-field select,.form-field textarea{
  width:100%; min-height:3.125rem; padding:.75rem .9rem; border:1.5px solid #CFC9DF;
  border-radius:var(--r-sm); background:#fff; color:var(--navy); font:inherit;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.form-field textarea{ min-height:8.125rem; resize:vertical; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  outline:0; border-color:var(--pink-deep); box-shadow:0 0 0 3px rgba(224,31,118,.15);
}
.form-help{ color:#675F7D; font-size:.78rem; line-height:1.6; }
.appointment-form__row+.form-help{ margin-top:calc(var(--sp-4) * -1); }
.form-consent{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:.75rem; align-items:start; color:#514A67; font-size:.82rem; line-height:1.65; }
.form-consent input{ width:1.25rem; height:1.25rem; margin-top:2px; accent-color:var(--pink-deep); }
.form-consent a{ color:var(--pink-deep); font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.appointment-form__urgent{ padding:var(--sp-4); border-left:4px solid var(--pink); border-radius:0 var(--r-sm) var(--r-sm) 0; background:#FFF3F8; color:#514A67; font-size:.82rem; }
.appointment-form__honeypot{ position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.form-notice{ margin-bottom:var(--sp-5); padding:var(--sp-4); border-radius:var(--r-sm); font-size:.9rem; }
.form-notice--success{ color:#164C37; background:#E8F6EF; border:1px solid #9BCDB5; }
.form-notice--error{ color:#7B1739; background:#FFF0F5; border:1px solid #E9A7BF; }
.appointment-contact{
  padding:clamp(1.5rem,4vw,2.5rem); border-radius:var(--r-lg);
  background:var(--g-navy); color:#fff; box-shadow:var(--sh-3);
}
.appointment-contact__icon{ display:grid; place-items:center; width:3.25rem; height:3.25rem; margin-bottom:var(--sp-5); border-radius:50%; background:var(--pink); }
.appointment-contact__icon svg{ width:1.5625rem; height:1.5625rem; }
.appointment-contact h2{ color:#fff; font-size:clamp(1.35rem,1.15rem + .6vw,1.75rem); }
.appointment-contact p{ margin-top:var(--sp-3); color:#D9D3EA; line-height:1.75; }
.appointment-contact .btn{ margin-top:var(--sp-5); background:#fff; color:var(--navy); box-shadow:none; }
.appointment-contact__note{ font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }

@media (min-width:768px){
  .appointment-form__row{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (min-width:1024px){
  .appointment-layout{ grid-template-columns:minmax(0,1.45fr) minmax(18.75rem,.65fr); }
  .appointment-contact{ position:sticky; top:calc(var(--admin-bar-h) + var(--header-h) + var(--sp-5)); }
}
.appointment-form .btn:disabled{ opacity:.72; cursor:wait; transform:none; box-shadow:none; }

/* ============================================================
   CORE CONTENT PAGES
   ============================================================ */
.standard-page__content{ padding-block:clamp(3rem,7vw,6rem); }
.standard-page__image{ margin-bottom:var(--sp-7); overflow:hidden; border-radius:var(--r-lg); box-shadow:var(--sh-2); }
.standard-page__image img{ width:100%; max-height:35rem; object-fit:cover; }
.prose{ color:var(--body); font-size:1rem; line-height:1.85; }
.prose>*{ max-width:72ch; }
.prose>*+*{ margin-top:var(--sp-4); }
.prose h2,.prose h3{ color:var(--navy); line-height:1.25; }
.prose h2{ margin-top:var(--sp-7); font-size:clamp(1.35rem,1.15rem + .75vw,1.9rem); }
.prose h3{ margin-top:var(--sp-5); font-size:1.15rem; }
.prose ul,.prose ol{ display:grid; gap:.55rem; padding-left:1.3rem; }
.prose ul{ list-style:disc; }
.prose ol{ list-style:decimal; }
.prose a{ color:var(--pink-deep); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.section-heading{ margin-bottom:clamp(1.5rem,4vw,2.5rem); max-width:45rem; }
.section-heading h2,.story__copy h2,.facility-feature__copy h2,.contact-layout__intro h2{
  color:var(--navy); font-size:clamp(1.6rem,1.25rem + 1.3vw,2.45rem); line-height:1.15; letter-spacing:-.025em;
}
.section-heading p{ margin-top:var(--sp-3); color:var(--body); line-height:1.8; }
.story{
  display:grid; grid-template-columns:1fr; gap:clamp(2rem,6vw,5rem); align-items:center;
  padding-block:clamp(3rem,7vw,6rem);
}
.story__media{ overflow:hidden; border-radius:var(--r-xl); box-shadow:var(--sh-3); }
.story__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.story__copy .prose{ margin-top:var(--sp-5); }
.story__copy .btn{ margin-top:var(--sp-6); }
.founder{
  display:grid; grid-template-columns:1fr; gap:clamp(2rem,6vw,5rem); align-items:center;
  padding-block:clamp(3rem,7vw,6rem); border-top:1px solid var(--line);
}
.founder__media{ max-width:23.75rem; overflow:hidden; border-radius:var(--r-xl); box-shadow:var(--sh-3); }
.founder__media img{ width:100%; aspect-ratio:9/13; object-fit:cover; }
.founder__copy{ max-width:40rem; }
.founder__copy h2{ margin-top:var(--sp-2); color:var(--navy); font-size:clamp(1.6rem,1.25rem + 1.3vw,2.45rem); line-height:1.15; letter-spacing:-.025em; }
.founder__aka{ margin-top:.35rem; color:var(--pink-deep); font-weight:600; }
.founder__copy p:not(.eyebrow):not(.founder__aka){ margin-top:var(--sp-4); color:var(--body); line-height:1.8; }
.purpose{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); padding-bottom:clamp(3rem,7vw,6rem); }
.purpose article{ padding:clamp(1.5rem,3.5vw,2.5rem); border-radius:var(--r-lg); background:var(--lav-soft); }
.purpose article:last-child{ background:var(--navy); }
.purpose h2{ color:var(--navy); font-size:1.15rem; }
.purpose p{ margin-top:var(--sp-3); color:var(--body); font-size:clamp(1rem,.95rem + .3vw,1.2rem); line-height:1.7; }
.purpose article:last-child h2,.purpose article:last-child p{ color:#fff; }
.values-grid--compact li{ display:flex; align-items:center; gap:var(--sp-3); }
.values-grid--compact svg{ flex:none; margin-bottom:0; }
.patient-info{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); padding-bottom:clamp(3rem,7vw,6rem); }
.patient-info article{ padding:clamp(1.25rem,3vw,2rem); border-radius:var(--r-lg); border:1px solid var(--line); background:#fff; }
.patient-info h2{ color:var(--navy); font-size:1.15rem; }
.patient-info p{ margin-top:.55rem; color:var(--body-soft); font-size:.87rem; line-height:1.75; }
.patient-info .patient-info__lead{ color:var(--navy); font-size:1.05rem; font-weight:700; }
.patient-info__list{ display:grid; gap:.5rem; margin-top:var(--sp-4); }
.patient-info__list li{ display:flex; align-items:center; gap:.6rem; color:var(--navy); font-weight:600; }
.patient-info__list svg{ flex:none; width:1.25rem; height:1.25rem; color:var(--pink); }
.values-section{ padding-bottom:clamp(3rem,7vw,6rem); }
.values-grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); }
.values-grid li{ padding:var(--sp-5); border-radius:var(--r-md); background:#fff; border:1px solid var(--line); }
.values-grid svg{ width:1.5rem; height:1.5rem; margin-bottom:var(--sp-4); color:var(--pink); }
.values-grid h3{ color:var(--navy); font-size:1rem; }
.values-grid p{ margin-top:.35rem; color:var(--body-soft); font-size:.86rem; line-height:1.7; }
.facility-feature{
  display:grid; grid-template-columns:1fr; gap:clamp(2rem,6vw,5rem); align-items:center;
  padding-block:clamp(3rem,7vw,6rem);
}
.facility-feature__media{ position:relative; overflow:hidden; border-radius:var(--r-xl); box-shadow:var(--sh-3); }
.facility-feature__media>img{ width:100%; aspect-ratio:16/11; object-fit:cover; }
.facility-feature__copy .prose{ margin-top:var(--sp-5); }
.facility-feature__note{ margin-top:var(--sp-5); padding:var(--sp-4); border-left:4px solid var(--pink); background:#FFF3F8; border-radius:0 var(--r-sm) var(--r-sm) 0; color:var(--body); }
.facility-feature__copy .btn{ margin-top:var(--sp-5); }
.facility-gallery{ padding-bottom:clamp(3rem,7vw,6rem); }
.facility-gallery__grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); }
.facility-gallery li{ display:flex; }
.facility-gallery figure{ position:relative; flex:1; min-height:0; aspect-ratio:4/3; overflow:hidden; border-radius:var(--r-lg); box-shadow:var(--sh-2); background:var(--lav-soft); }
.facility-gallery img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.facility-gallery figure:hover img{ transform:scale(1.03); }
.facility-gallery figcaption{
  position:absolute; left:var(--sp-3); bottom:var(--sp-3); padding:.35rem .8rem; border-radius:62.4375rem;
  background:rgba(35,18,91,.82); color:#fff; font-size:.8rem; font-weight:600;
}
.facility-services{ padding-bottom:clamp(3rem,7vw,6rem); }
.facility-services ul{ display:grid; grid-template-columns:1fr; gap:var(--sp-3); }
.facility-services a{
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4);
  min-height:3.875rem; padding:var(--sp-4) var(--sp-5); border-radius:var(--r-md);
  background:#fff; border:1px solid var(--line); color:var(--navy); font-weight:700;
  transition:border-color .2s var(--ease),transform .2s var(--ease);
}
.facility-services a:hover{ border-color:rgba(255,46,138,.4); transform:translateX(3px); }
.facility-services svg{ width:1.125rem; height:1.125rem; color:var(--pink); }
.families-intro{ padding-block:clamp(3rem,6vw,5rem); }
.families-intro .prose{ max-width:47.5rem; }
.families-intro .btn{ margin-top:var(--sp-6); }
.visit-guide{ padding-bottom:clamp(3rem,7vw,6rem); }
.visit-guide__grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); }
.visit-guide article{ padding:clamp(1.25rem,3vw,2rem); border-radius:var(--r-lg); border:1px solid var(--line); background:#fff; }
.visit-guide article:first-child{ background:var(--lav-soft); border-color:transparent; }
.visit-guide__icon{ display:grid; place-items:center; width:2.75rem; height:2.75rem; margin-bottom:var(--sp-5); border-radius:50%; background:var(--navy); color:#fff; }
.visit-guide__icon svg{ width:1.3125rem; height:1.3125rem; }
.visit-guide h3{ color:var(--navy); font-size:1.05rem; }
.visit-guide article p{ margin-top:.45rem; color:var(--body-soft); font-size:.87rem; line-height:1.75; }
.contact-layout{ padding-block:clamp(3rem,7vw,6rem); }
.contact-layout__intro{ max-width:47.5rem; }
.contact-layout__intro .prose{ margin-top:var(--sp-5); }
.contact-methods{ display:grid; grid-template-columns:1fr; gap:var(--sp-4); margin-top:clamp(2rem,5vw,4rem); }
.contact-methods li{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:var(--sp-4); padding:var(--sp-5); border-radius:var(--r-lg); background:#fff; border:1px solid var(--line); }
.contact-methods>li>span{ display:grid; place-items:center; width:2.75rem; height:2.75rem; border-radius:50%; background:var(--lav-soft); color:var(--navy); }
.contact-methods svg{ width:1.3125rem; height:1.3125rem; }
.contact-methods h3{ color:var(--navy); font-size:.95rem; margin-bottom:.35rem; }
.contact-methods a,.contact-methods p{ display:block; color:var(--body); font-size:.86rem; line-height:1.75; overflow-wrap:anywhere; }
.contact-methods a:hover{ color:var(--pink-deep); }
.contact-actions{ display:flex; flex-wrap:wrap; gap:var(--sp-3); margin-top:var(--sp-6); }
.contact-actions .btn--outline{ --btn-fg:var(--navy); --btn-bd:var(--navy); background:#fff; }

@media (min-width:640px){
  .values-grid,.facility-services ul,.contact-methods{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .purpose,.patient-info{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .facility-gallery__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (min-width:768px){
  .story,.facility-feature{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); }
  .founder{ grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
  .values-grid--compact{ grid-template-columns:repeat(4,minmax(0,1fr)); }
  .visit-guide__grid{ grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); grid-template-rows:repeat(2,auto); }
  .visit-guide article:first-child{ grid-row:1 / span 2; display:flex; flex-direction:column; justify-content:center; }
}

@media (max-width:767px){
  .story,.facility-feature{ padding-block:2.5rem; }
  .contact-actions{ flex-direction:column; }
  .contact-actions .btn{ width:100%; }
}

@media (min-width:1024px){
  /* Any number of photos: a leftover last photo widens to fill its row. */
  .facility-gallery__grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .facility-gallery li:last-child:nth-child(3n+1){ grid-column:1 / -1; }
  .facility-gallery li:last-child:nth-child(3n+1) figure{ aspect-ratio:21/8; }
  .facility-gallery li:last-child:nth-child(3n+2){ grid-column:span 2; }
  .facility-gallery li:last-child:nth-child(3n+2) figure{ aspect-ratio:auto; }
}

@media (min-width:640px) and (max-width:1023px){
  .facility-gallery li:last-child:nth-child(odd){ grid-column:1 / -1; }
  .facility-gallery li:last-child:nth-child(odd) figure{ aspect-ratio:2/1; }
}

/* Large screens: let the hero copy keep pace with the full-bleed photo. */
@media (min-width:1600px){
  .hero__title{ font-size:clamp(4.05rem, 1rem + 2.9vw, 5.5rem); }
  .hero__lede{ font-size:1.125rem; max-width:38ch; }
  .hero__actions .btn{ min-width:11.5rem; }
  .trust__item span{ font-size:.6875rem; }
  .trust__item strong{ font-size:.8125rem; }
}
