:root{
  --blue:#84c9e0;
  --blue-2:#bfe5f1;
  --peach:#f4b99a;
  --peach-2:#f8d5c2;
  --sand:#e7e1db;
  --ink:#18313c;
  --ink-soft:#39505a;
  --paper:#f8f4f1;
  --white:#fff;
  --radius:28px;
  --shadow:0 20px 60px rgba(24,49,60,.14);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;font-family:"Montserrat",Arial,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.modal-open{overflow:hidden}
button,a{font:inherit}
button{border:0;background:none;padding:0;cursor:pointer}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.skip{position:fixed;left:12px;top:-60px;z-index:9999;background:#fff;color:#000;padding:10px 14px;border-radius:999px}.skip:focus{top:12px}
.wa-icon{width:18px;height:18px;fill:currentColor;display:block;flex:0 0 auto}

/* HOME — mobile first */
.portal{position:relative;display:grid;grid-template-rows:60svh 40svh;min-height:100svh;background:#0f2028;color:#fff;overflow:hidden}
.portal-brand{position:absolute;z-index:8;top:max(20px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(53vw,220px);text-align:center;pointer-events:none}
.portal-brand img{width:100%;filter:drop-shadow(0 3px 8px rgba(0,0,0,.58)) drop-shadow(0 0 20px rgba(0,0,0,.22))}
.portal-panel{position:relative;overflow:hidden;isolation:isolate;min-height:0}
.portal-panel>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.8,.2,1),filter .4s ease}
.portal-physio>img{object-position:center 42%}
.portal-wellness>img{object-position:64% 42%}
.panel-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,17,22,.18),rgba(8,17,22,.08) 28%,rgba(8,17,22,.62) 100%);z-index:1}
.portal-wellness .panel-overlay{background:linear-gradient(180deg,rgba(27,17,16,.10),rgba(27,17,16,.08) 28%,rgba(27,17,16,.56) 100%)}
.portal-copy{position:absolute;z-index:2;left:20px;right:20px;bottom:20px}
.eyebrow{display:block;font-size:.59rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700}
.portal-copy h1{margin:8px 0 14px;font-size:clamp(2.65rem,12.6vw,5.15rem);line-height:.9;letter-spacing:-.052em;font-weight:500;text-wrap:balance}
.portal-wellness .portal-copy h1{font-size:clamp(2.55rem,11.8vw,4.9rem)}
.portal-cta{display:inline-flex;align-items:center;gap:10px;padding:0 0 5px;border-bottom:1px solid rgba(255,255,255,.72);color:#fff;font-size:.63rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;text-shadow:0 2px 12px rgba(0,0,0,.34)}
.portal-cta b{font-size:.92rem;font-weight:500;transition:transform .25s ease}.portal-panel:hover .portal-cta b{transform:translate(3px,-3px)}
.portal-contact{position:absolute;z-index:9;top:max(18px,env(safe-area-inset-top));right:14px;display:flex;gap:7px}
.portal-contact a{height:36px;border:1px solid rgba(255,255,255,.45);background:rgba(26,39,44,.20);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 5px 18px rgba(0,0,0,.08)}
.quick-wa{width:36px;border-radius:50%}.quick-call{padding:0 12px;border-radius:999px;font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700}
.portal-location{position:absolute;z-index:5;left:20px;bottom:9px;font-size:.54rem;text-transform:uppercase;letter-spacing:.15em;font-weight:600;color:rgba(255,255,255,.78);pointer-events:none}

/* VIEWS */
.universe{display:none;min-height:100vh;background:linear-gradient(145deg,#eef8fb 0%,#f7f4f1 46%,#fff0e8 100%)}
.universe.active{display:block}
body.view-open .portal{display:none}

/* Persistent translucent brand nav */
.topbar{position:fixed;z-index:60;top:0;left:0;right:0;height:62px;padding:0 12px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:linear-gradient(100deg,rgba(42,103,125,.90),rgba(92,94,96,.88) 50%,rgba(164,101,76,.90));backdrop-filter:blur(22px) saturate(130%);-webkit-backdrop-filter:blur(22px) saturate(130%);border-bottom:1px solid rgba(255,255,255,.18);box-shadow:0 8px 28px rgba(12,29,36,.18);color:#fff}
.back{justify-self:start;display:inline-flex;align-items:center;gap:7px;color:#fff;font-size:.61rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.back span{font-size:1.1rem}.back em{font-style:normal}
.brand-button{width:126px}.brand-button img{width:100%;filter:drop-shadow(0 2px 8px rgba(0,0,0,.22))}
.nav-contact{justify-self:end;display:flex;align-items:center;gap:6px}.nav-contact a{height:34px;display:inline-flex;align-items:center;justify-content:center;color:#fff;border:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.10);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.nav-wa{width:34px;border-radius:50%}.nav-call{padding:0 10px;border-radius:999px;font-size:.56rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.nav-contact a:hover{background:rgba(255,255,255,.20)}

/* Hero */
.cover{position:relative;height:66svh;min-height:500px;overflow:hidden;background:#1c2f37;color:#fff}
.cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cover-physio>img{object-position:47% 52%}.cover-wellness>img{object-position:62% 40%}
.cover-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,23,29,.18),rgba(11,23,29,.06) 28%,rgba(11,23,29,.72) 100%)}
.cover-wellness .cover-overlay{background:linear-gradient(180deg,rgba(29,18,18,.12),rgba(29,18,18,.05) 28%,rgba(29,18,18,.66) 100%)}
.cover-copy{position:absolute;z-index:2;left:20px;right:20px;bottom:30px}
.cover-copy h2{margin:9px 0 19px;font-size:clamp(3.15rem,15vw,5.6rem);line-height:.86;letter-spacing:-.06em;font-weight:500}
.primary-cta,.secondary-cta{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:999px;padding:0 16px;font-size:.61rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700}
.primary-cta{background:#fff;color:#17323e;box-shadow:0 10px 26px rgba(0,0,0,.15)}.secondary-cta{color:#fff;border:1px solid rgba(255,255,255,.62);background:rgba(255,255,255,.08);backdrop-filter:blur(10px)}

/* Service cards */
.services-section{padding:46px 16px 18px}
.section-heading{margin:0 4px 20px}.section-heading>span{display:block;font-size:.59rem;text-transform:uppercase;letter-spacing:.17em;font-weight:700;color:#58707a}.section-heading h2{margin:7px 0 0;font-size:clamp(2.2rem,10vw,3.9rem);line-height:.94;letter-spacing:-.055em;font-weight:500;color:var(--ink)}
.physio-card-grid,.wellness-card-grid{display:grid;gap:12px}
.service-card{position:relative;display:block;width:100%;height:36svh;min-height:300px;border-radius:22px;overflow:hidden;color:#fff;text-align:left;background:#16303a;box-shadow:var(--shadow);isolation:isolate}
.service-card.card-primary{height:47svh;min-height:380px}
.service-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.78) saturate(.82);transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .35s ease}
.card-primary>img{object-position:52% 46%}.card-secondary:nth-child(2)>img{object-position:center 48%}.card-secondary:nth-child(3)>img{object-position:center 38%}
.card-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,22,28,.18),rgba(10,22,28,.28) 42%,rgba(10,22,28,.84) 100%);z-index:1}
.card-content{position:absolute;z-index:2;left:19px;right:19px;bottom:18px;display:block}.card-content small{display:block;font-size:.58rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;margin-bottom:8px}.card-content strong{display:block;font-size:clamp(1.75rem,8vw,3.2rem);line-height:.96;letter-spacing:-.045em;font-weight:500;max-width:14ch}.card-content em{display:block;margin-top:9px;font-style:normal;font-size:.67rem;line-height:1.45;color:rgba(255,255,255,.82);max-width:38ch}.card-content b{display:inline-block;margin-top:15px;font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;border-bottom:1px solid rgba(255,255,255,.58);padding-bottom:4px}

/* All services CTA */
.all-services-strip{margin:16px 16px 18px;padding:22px;border-radius:24px;background:linear-gradient(120deg,rgba(244,185,154,.96),rgba(229,224,218,.98) 52%,rgba(132,201,224,.95));box-shadow:0 18px 45px rgba(24,49,60,.12);display:grid;gap:18px}.all-services-strip span{display:block;font-size:.61rem;line-height:1.5;color:#39545e}.all-services-strip h2{margin:5px 0 0;font-size:clamp(1.7rem,8vw,3rem);line-height:.98;letter-spacing:-.045em;font-weight:500}.all-services-strip button{justify-self:start;display:inline-flex;align-items:center;gap:12px;min-height:42px;padding:0 15px;border-radius:999px;background:#17323e;color:#fff;font-size:.59rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700}.all-services-strip button b{font-size:.9rem;font-weight:500}

/* Contact */
.contact-panel{position:relative;height:48svh;min-height:420px;overflow:hidden;background:#17323e;color:#fff}.contact-panel>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 44%}.contact-panel-wellness>img{object-position:center 30%}.contact-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,22,28,.10),rgba(10,22,28,.68) 100%)}.contact-copy{position:absolute;z-index:2;left:20px;right:20px;bottom:28px}.contact-copy h2{font-size:clamp(2.7rem,12vw,5rem);line-height:.9;letter-spacing:-.055em;font-weight:500;margin:8px 0 10px}.contact-copy p{margin:0 0 17px;font-size:.66rem;line-height:1.5;color:rgba(255,255,255,.82)}.contact-actions{display:flex;gap:8px;flex-wrap:wrap}

/* Footer */
.footer{position:relative;background:#f7f2ee;padding:34px 20px 24px}.footer:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--peach),var(--sand),var(--blue))}.footer-inner{display:grid;gap:24px}.footer-brand img{width:165px}.footer-brand p{margin:11px 0 0;font-size:.67rem;line-height:1.65;color:#5a6d75}.footer-col{display:grid;gap:8px;align-content:start}.footer-col strong{font-size:.59rem;text-transform:uppercase;letter-spacing:.14em;color:#687c84;margin-bottom:3px}.footer-col a,.footer-col span,.footer-col button{font-size:.67rem;line-height:1.5;color:#1d3742;text-align:left}.footer-col button{text-decoration:underline;text-underline-offset:4px}.footer-bottom{padding-top:16px;border-top:1px solid rgba(24,49,60,.12);display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.58rem;color:#74848a}.footer-bottom a{text-decoration:underline;text-underline-offset:3px}

/* Bottom sheets / modals */
.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center}.modal-backdrop{position:absolute;inset:0;background:rgba(10,22,28,.48);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}.sheet{position:relative;z-index:1;width:100%;max-height:86svh;overflow:auto;border-radius:26px 26px 0 0;background:#faf7f4;padding:28px 20px 26px;box-shadow:0 -24px 70px rgba(18,37,45,.22)}.sheet-close{position:sticky;float:right;top:0;width:36px;height:36px;border-radius:50%;background:#ebe5e0;color:#18313c;font-size:1.4rem;line-height:1;z-index:3}.sheet-kicker{display:block;padding-top:5px;font-size:.59rem;text-transform:uppercase;letter-spacing:.15em;font-weight:700;color:#6a7d84}.sheet h2{margin:8px 0 20px;font-size:clamp(2.15rem,9vw,4.2rem);line-height:.94;letter-spacing:-.05em;font-weight:500}.sheet h3{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;margin:20px 0 8px}.sheet-lead{font-size:.78rem;line-height:1.75;color:#425962;max-width:68ch}.quote{font-size:1.13rem;line-height:1.6;letter-spacing:-.02em;margin:22px 0;color:#25434f}.price-list{display:grid}.price-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end;padding:12px 0;border-bottom:1px solid rgba(24,49,60,.11)}.price-list span{font-size:.69rem;line-height:1.35}.price-list b{font-size:.72rem;white-space:nowrap}.sheet-note{font-size:.66rem;line-height:1.6;color:#687a81}.sheet-cta{margin-top:22px;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:999px;background:linear-gradient(105deg,var(--peach),#e5dfda 52%,var(--blue));color:#17313d;font-size:.59rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700}.all-services-grid{display:grid;gap:24px}.two-col-list{display:grid}.beauty-full{min-width:0}

/* Desktop / tablet */
@media (min-width:760px){
  .portal{grid-template-rows:1fr;grid-template-columns:60fr 40fr;min-height:100svh}
  .portal-brand{top:24px;width:245px}
  .portal-copy{left:clamp(30px,4vw,62px);right:28px;bottom:clamp(38px,6vh,68px)}
  .portal-copy h1{font-size:clamp(4rem,7.8vw,8rem);margin-top:10px}.portal-wellness .portal-copy h1{font-size:clamp(3.2rem,5.5vw,5.8rem)}
  .portal-cta{font-size:.64rem}.portal-location{left:30px;bottom:18px}.portal-contact{top:18px;right:18px}.portal-contact a{height:42px}.quick-wa{width:42px}.quick-call{padding:0 15px;font-size:.61rem}
  .portal-panel:hover>img{transform:scale(1.028)}

  .topbar{height:68px;padding:0 22px}.brand-button{width:168px}.back{font-size:.64rem}.nav-contact a{height:38px}.nav-wa{width:38px}.nav-call{padding:0 14px;font-size:.61rem}
  .cover{height:72svh;min-height:590px}.cover-copy{left:clamp(32px,6vw,92px);right:auto;bottom:58px;max-width:720px}.cover-copy h2{font-size:clamp(4.4rem,8.4vw,8.2rem);margin-bottom:24px}
  .primary-cta,.secondary-cta{min-height:46px;padding:0 19px;font-size:.65rem}

  .services-section{padding:72px clamp(28px,5vw,74px) 24px}.section-heading{margin:0 0 28px}.section-heading h2{font-size:clamp(3rem,5vw,5rem)}
  .physio-card-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);grid-template-rows:1fr 1fr;gap:16px}.physio-card-grid .card-primary{grid-row:1/3;height:72svh;min-height:620px}.physio-card-grid .card-secondary{height:auto;min-height:302px}
  .wellness-card-grid{grid-template-columns:1fr 1fr;gap:16px}.wellness-card-grid .service-card{height:62svh;min-height:520px}
  .service-card{border-radius:30px}.card-content{left:28px;right:28px;bottom:26px}.card-content strong{font-size:clamp(2.15rem,3.7vw,4rem)}.card-content em{font-size:.72rem}.card-content b{font-size:.62rem}
  .service-card:hover>img{transform:scale(1.035);filter:brightness(.82) saturate(.86)}

  .all-services-strip{margin:24px clamp(28px,5vw,74px) 28px;padding:30px 34px;border-radius:30px;grid-template-columns:1fr auto;align-items:end}.all-services-strip h2{font-size:clamp(2.2rem,3.8vw,4rem)}.all-services-strip button{justify-self:end;min-height:46px;padding:0 18px;font-size:.62rem}

  .contact-panel{height:54svh;min-height:500px}.contact-copy{left:clamp(32px,6vw,92px);right:auto;bottom:52px}.contact-copy h2{font-size:clamp(4rem,7vw,7rem)}.contact-copy p{font-size:.72rem}

  .footer{padding:46px clamp(28px,5vw,74px) 28px}.footer-inner{grid-template-columns:1.35fr 1fr 1fr;gap:38px}.footer-brand img{width:190px}.footer-bottom{grid-column:1/-1}.footer-col a,.footer-col span,.footer-col button,.footer-brand p{font-size:.7rem}

  .modal{align-items:center;padding:24px}.sheet{width:min(720px,92vw);max-height:88svh;border-radius:30px;padding:34px 34px 30px}.sheet-wide{width:min(1080px,94vw)}.sheet-close{position:absolute;right:24px;top:24px}.all-services-grid{grid-template-columns:1fr 1fr;gap:28px 46px}.beauty-full{grid-column:1/-1}.two-col-list{grid-template-columns:1fr 1fr;column-gap:38px}
}

@media (min-width:1100px){
  .portal-brand{width:265px}.cover-physio>img{object-position:center 46%}.cover-wellness>img{object-position:65% 42%}
  .physio-card-grid .card-primary{min-height:660px}.wellness-card-grid .service-card{min-height:560px}
}

@media (max-width:420px){
  .quick-call{display:none}.back em{display:none}.back span{font-size:1.2rem}.brand-button{width:116px}.nav-call{font-size:0;width:34px;padding:0;border-radius:50%}.nav-call:after{content:"☎";font-size:.86rem}.portal-brand{width:min(56vw,205px)}
}

@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* V7 — home hierarchy / 50–50 portal / brand navbar */
.portal{
  grid-template-rows:1fr 1fr;
  min-height:100svh;
  padding-top:62px;
  background:#132c36;
}
.portal-nav{
  position:absolute;
  z-index:20;
  top:0;left:0;right:0;
  height:62px;
  padding:0 12px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  color:#fff;
  background:linear-gradient(105deg,rgba(239,166,128,.93) 0%,rgba(181,190,190,.88) 50%,rgba(93,181,211,.92) 100%);
  backdrop-filter:blur(20px) saturate(135%);
  -webkit-backdrop-filter:blur(20px) saturate(135%);
  border-bottom:1px solid rgba(255,255,255,.30);
  box-shadow:0 6px 24px rgba(21,55,68,.12);
}
.portal-nav-location{
  justify-self:start;
  font-size:.54rem;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:700;
  text-shadow:0 1px 10px rgba(29,63,75,.18);
}
.portal-nav-brand{width:122px;justify-self:center}
.portal-nav-brand img{width:100%;filter:drop-shadow(0 1px 6px rgba(31,57,67,.20))}
.portal-nav-contact{justify-self:end;display:flex;align-items:center;gap:6px}
.portal-nav-contact a{
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  border:1px solid rgba(255,255,255,.50);
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  text-shadow:0 1px 8px rgba(20,56,70,.14);
}
.portal-nav-contact .nav-wa{width:34px;border-radius:50%}
.portal-nav-contact .nav-call{padding:0 10px;border-radius:999px;font-size:.56rem;text-transform:uppercase;letter-spacing:.10em;font-weight:700}
.portal-panel{min-height:0}
.portal-copy{bottom:18px}
.home-footer{display:block}
body.view-open .home-footer{display:none}

/* Main universe nav: same Dulce palette, lighter and cleaner */
.topbar{
  background:linear-gradient(105deg,rgba(235,159,120,.93) 0%,rgba(172,185,187,.90) 50%,rgba(86,176,207,.92) 100%);
  border-bottom:1px solid rgba(255,255,255,.30);
  box-shadow:0 6px 24px rgba(21,55,68,.12);
}

@media (min-width:760px){
  .portal{
    grid-template-rows:1fr;
    grid-template-columns:1fr 1fr;
    padding-top:68px;
  }
  .portal-nav{height:68px;padding:0 22px}
  .portal-nav-brand{width:168px}
  .portal-nav-location{font-size:.60rem}
  .portal-nav-contact a{height:38px}
  .portal-nav-contact .nav-wa{width:38px}
  .portal-nav-contact .nav-call{padding:0 14px;font-size:.61rem}
  .portal-copy h1{font-size:clamp(3.45rem,5.65vw,6.25rem)}
  .portal-wellness .portal-copy h1{font-size:clamp(3.35rem,5.35vw,5.95rem)}
}

@media (max-width:420px){
  .portal-nav{grid-template-columns:44px 1fr auto}
  .portal-nav-location{font-size:0;width:44px}
  .portal-nav-location:before{content:""}
  .portal-nav-brand{width:116px}
  .portal-nav-contact .nav-call{font-size:0;width:34px;padding:0;border-radius:50%}
  .portal-nav-contact .nav-call:after{content:"☎";font-size:.86rem}
}

.map-link,.inline-map,.footer-map{color:inherit;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.map-link:hover,.inline-map:hover,.footer-map:hover{opacity:.78}.contact-copy .map-link{color:#fff}.sheet-note .inline-map{font-weight:600}.footer-col .footer-map{font-size:.67rem;line-height:1.5;color:#1d3742}.footer-col .footer-map:hover{opacity:.72}
