/* ===========================================================
   SILVA PHYSIOTHERAPY & WELLNESS — shared styles
   =========================================================== */
:root{
  --sage:#9EB4AA; --sage-deep:#7E978C; --sage-grey:#959D8D; --sage-dark:#5E6F66;
  --cream:#F5F3EF; --cream-2:#EFEBE4; --grey-light:#EBEBEB;
  --ink:#3A423D; --ink-soft:#5E665F; --white:#FFFFFF;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans-sub:'Josefin Sans', sans-serif;
  --sans-body:'Mulish', system-ui, sans-serif;
  --maxw:1240px; --pad:clamp(1.25rem,5vw,5.5rem);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans-body);color:var(--ink);background:var(--cream);line-height:1.8;font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.1;color:var(--ink);}
h1{font-size:clamp(2.8rem,6vw,5rem);letter-spacing:.01em;}
h2{font-size:clamp(2rem,4.4vw,3.4rem);}
h3{font-size:clamp(1.35rem,2.4vw,1.9rem);}
h4{font-size:1.2rem;}
p{font-size:1.04rem;}
.eyebrow{font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.34em;font-size:.72rem;font-weight:400;color:var(--sage-grey);margin-bottom:1.2rem;display:block;}

.btn{display:inline-block;font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.2em;font-size:.74rem;padding:1.05rem 2.4rem;background:var(--sage-deep);color:var(--white);border:1px solid var(--sage-deep);transition:.35s ease;cursor:pointer;border-radius:2px;}
.btn:hover{background:transparent;color:var(--sage-deep);}
.btn.ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,.75);}
.btn.ghost:hover{background:var(--white);color:var(--ink);}
.btn.dark{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn.dark:hover{background:var(--ink);color:var(--cream);}

.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s ease, transform 1s ease;}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.12s;} .reveal.d2{transition-delay:.24s;} .reveal.d3{transition-delay:.36s;}

.placeholder-note{display:inline-block;font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.15em;font-size:.58rem;color:#9c6b4f;background:#f3e7df;border:1px dashed #cfa183;padding:.25rem .6rem;margin-bottom:.8rem;border-radius:2px;}

/* ---------- NAV ---------- */
header.nav{position:fixed;top:0;left:0;right:0;z-index:60;padding:1.3rem 0;transition:background .4s ease, box-shadow .4s ease, padding .4s ease;}
header.nav.scrolled,header.nav.solid{background:rgba(245,243,239,.96);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(0,0,0,.05);}
header.nav.solid{padding:.85rem 0;}
.nav-inner{display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;flex-direction:column;line-height:1;}
.brand .bn{font-family:var(--serif);font-size:1.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--white);padding-left:.22em;transition:color .4s ease;}
.brand .bs{font-family:var(--sans-sub);font-size:.54rem;letter-spacing:.34em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-top:.35rem;padding-left:.24em;transition:color .4s ease;}
header.nav.scrolled .brand .bn,header.nav.solid .brand .bn{color:var(--ink);}
header.nav.scrolled .brand .bs,header.nav.solid .brand .bs{color:var(--sage-grey);}
.navlinks{display:flex;gap:2.2rem;align-items:center;}
.navlinks a{font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;color:var(--white);transition:color .25s, opacity .25s;opacity:.92;}
header.nav.scrolled .navlinks a,header.nav.solid .navlinks a{color:var(--ink);}
.navlinks a:hover{opacity:1;color:var(--sage);}
header.nav.scrolled .navlinks a:hover,header.nav.solid .navlinks a:hover{color:var(--sage-deep);}
.navlinks a.nav-cta{border:1px solid currentColor;padding:.6rem 1.35rem;opacity:1;}
.navlinks a.nav-cta:hover{background:var(--sage-deep);border-color:var(--sage-deep);color:var(--white);}
.navlinks a.active{opacity:1;color:var(--sage);}
header.nav.scrolled .navlinks a.active,header.nav.solid .navlinks a.active{color:var(--sage-deep);}
.menu-btn{display:none;background:none;border:none;font-size:1.7rem;color:var(--white);cursor:pointer;z-index:70;}
header.nav.scrolled .menu-btn,header.nav.solid .menu-btn{color:var(--ink);}

/* ---------- HERO (home) ---------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;color:var(--white);overflow:hidden;}
.hero-bg{position:absolute;inset:0;background:url('../images/hero.jpg') center 30%/cover no-repeat;transform:scale(1.05);}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(40,48,44,.45),rgba(58,66,61,.55) 60%,rgba(94,111,102,.6));}
.hero .wrap{position:relative;z-index:2;padding-top:8rem;padding-bottom:6rem;width:100%;}
.hero .eyebrow{color:rgba(245,243,239,.85);}
.hero h1{color:var(--white);max-width:15ch;margin:.3rem 0 1.6rem;text-shadow:0 2px 30px rgba(0,0,0,.25);}
.hero p.lead{font-size:1.18rem;max-width:34rem;margin-bottom:2.4rem;color:rgba(245,243,239,.95);font-weight:300;}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;}
.scroll-cue{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:2;font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.25em;font-size:.62rem;color:rgba(245,243,239,.8);text-align:center;}
.scroll-cue .line{width:1px;height:42px;background:rgba(245,243,239,.6);margin:.6rem auto 0;animation:cue 2s ease-in-out infinite;transform-origin:top;}
@keyframes cue{0%,100%{transform:scaleY(.4);opacity:.4;}50%{transform:scaleY(1);opacity:1;}}

/* ---------- PAGE HERO (inner pages) ---------- */
.page-hero{position:relative;min-height:54vh;display:flex;align-items:flex-end;color:var(--white);overflow:hidden;}
.page-hero .ph-bg{position:absolute;inset:0;background-size:cover;background-position:center 35%;}
.page-hero .ph-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(58,66,61,.35),rgba(58,66,61,.66));}
.page-hero .wrap{position:relative;z-index:2;padding-top:9rem;padding-bottom:3.4rem;width:100%;}
.page-hero .eyebrow{color:rgba(245,243,239,.85);}
.page-hero h1{color:var(--white);text-shadow:0 2px 24px rgba(0,0,0,.25);}

/* ---------- SECTIONS ---------- */
section{padding:clamp(4rem,8vw,7rem) 0;}
.section-head{max-width:48rem;margin-bottom:3rem;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.lede{font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,2.6vw,2rem);color:var(--sage-deep);line-height:1.4;}
.prose p{color:var(--ink-soft);margin-bottom:1.2rem;max-width:60ch;}
.bg-white{background:var(--white);} .bg-cream{background:var(--cream);} .bg-cream2{background:var(--cream-2);}

/* values strip */
.values{background:var(--white);border-bottom:1px solid var(--grey-light);}
.values .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;padding:3rem 0;}
.value{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;}
.value .ic{font-family:var(--serif);font-size:1.6rem;color:var(--sage-deep);}
.value .t{font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;color:var(--ink);font-weight:500;}
.value .s{font-size:.92rem;color:var(--ink-soft);}

/* about split */
.about-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(2rem,6vw,5rem);align-items:center;}
.arch-frame{position:relative;}
.arch-frame img{width:100%;height:clamp(440px,60vh,640px);object-fit:cover;border-radius:50% 50% 6px 6px / 26% 26% 6px 6px;}
.arch-frame::before{content:"";position:absolute;inset:-18px -18px 18px -18px;border:1px solid var(--sage);border-radius:50% 50% 6px 6px / 26% 26% 6px 6px;z-index:-1;opacity:.55;}
.sig{font-family:var(--serif);font-style:italic;font-size:1.7rem;color:var(--sage-deep);margin-top:.5rem;}

/* service cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;}
.card{background:var(--cream);border-radius:4px;overflow:hidden;transition:transform .4s ease, box-shadow .4s ease;display:flex;flex-direction:column;}
.bg-cream .card{background:var(--white);}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(94,111,102,.16);}
.card .ph{height:230px;overflow:hidden;}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease;}
.card:hover .ph img{transform:scale(1.07);}
.card .body{padding:1.8rem 1.7rem 2.1rem;flex:1;display:flex;flex-direction:column;}
.card h3{font-size:1.45rem;margin-bottom:.5rem;}
.card p{font-size:.96rem;color:var(--ink-soft);}
.card .more{margin-top:auto;font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;color:var(--sage-deep);padding-top:1rem;}
.tag-soon{display:inline-block;font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.12em;font-size:.56rem;color:var(--sage-grey);border:1px solid var(--sage);border-radius:20px;padding:.18rem .6rem;margin-left:.5rem;vertical-align:middle;}

/* approach split */
.approach{background:var(--sage-dark);color:var(--cream);}
.approach .eyebrow{color:rgba(245,243,239,.75);}
.approach h2{color:var(--white);}
.approach .intro{max-width:46rem;margin-bottom:3.2rem;}
.approach .intro p{color:rgba(245,243,239,.9);}
.split{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
.split .panel{position:relative;border-radius:5px;overflow:hidden;min-height:420px;display:flex;align-items:flex-end;}
.split .panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease;}
.split .panel:hover img{transform:scale(1.06);}
.split .panel .cap{position:relative;z-index:2;padding:2rem;background:linear-gradient(transparent,rgba(46,54,49,.85));width:100%;}
.split .panel .cap h3{color:var(--white);margin-bottom:.4rem;}
.split .panel .cap p{color:rgba(245,243,239,.92);font-size:.98rem;}

/* quote band */
.band{position:relative;color:var(--white);text-align:center;}
.band-bg{position:absolute;inset:0;background-size:cover;background-position:center 35%;}
.band-bg::after{content:"";position:absolute;inset:0;background:rgba(58,66,61,.62);}
.band .wrap{position:relative;z-index:2;padding:7rem 0;}
.band p{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,3.2vw,2.5rem);line-height:1.4;max-width:44rem;margin:0 auto;color:var(--white);}

/* testimonials */
.testi{background:var(--cream);text-align:center;}
.quote{max-width:48rem;margin:0 auto;}
.quote p{font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.45;color:var(--ink);}
.quote .who{font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;color:var(--sage-grey);margin-top:1.6rem;}

/* gallery */
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
.gal-grid .g{overflow:hidden;border-radius:4px;height:clamp(260px,34vw,420px);}
.gal-grid .g img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease;}
.gal-grid .g:hover img{transform:scale(1.07);}

/* booking band */
.booking{position:relative;color:var(--white);text-align:center;}
.booking-bg{position:absolute;inset:0;background:url('../images/booking-bg.jpg') center 40%/cover no-repeat;}
.booking-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(94,111,102,.78),rgba(58,66,61,.82));}
.booking .wrap{position:relative;z-index:2;padding:7rem 0;}
.booking h2{color:var(--white);}
.booking p{max-width:40rem;margin:1rem auto 2.2rem;color:rgba(245,243,239,.95);}
.billing-row{display:flex;gap:2.5rem;justify-content:center;flex-wrap:wrap;margin-top:2.6rem;}
.billing-row .pill{font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--cream);opacity:.95;}

/* conditions / lists */
.chips{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem;}
.chips span{font-family:var(--sans-body);font-size:.92rem;color:var(--ink);background:var(--white);border:1px solid var(--grey-light);border-radius:30px;padding:.5rem 1.1rem;}
.bg-cream .chips span{background:var(--cream-2);border-color:var(--cream-2);}
.checklist{list-style:none;display:grid;gap:.7rem;margin-top:1rem;}
.checklist li{position:relative;padding-left:1.7rem;color:var(--ink-soft);}
.checklist li::before{content:"\2713";position:absolute;left:0;top:0;color:var(--sage-deep);font-weight:600;}

/* bio block */
.bio{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:start;}
.bio .portrait img{width:100%;border-radius:4px;}
.bio .credentials{font-family:var(--serif);font-style:italic;color:var(--sage-deep);font-size:1.2rem;margin-bottom:1.2rem;}

/* FAQ accordion */
.faq-list{max-width:62rem;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--grey-light);}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:1.5rem 3rem 1.5rem 0;position:relative;font-family:var(--serif);font-size:clamp(1.2rem,2.2vw,1.55rem);color:var(--ink);}
.faq-q::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:var(--sans-body);font-size:1.6rem;color:var(--sage-deep);transition:transform .3s ease;}
.faq-item.open .faq-q::after{transform:translateY(-50%) rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .45s ease;}
.faq-a-inner{padding:0 0 1.6rem;color:var(--ink-soft);}
.faq-a-inner p{margin-bottom:.9rem;}
.faq-a-inner ul{margin:.4rem 0 .9rem 1.2rem;}
.faq-a-inner strong{color:var(--ink);font-weight:600;}

/* contact / forms */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);}
.info-line{margin-bottom:1.7rem;}
.info-line .lbl{font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;color:var(--sage-grey);margin-bottom:.35rem;}
.info-line .val{font-size:1.06rem;color:var(--ink);}
.map-ph{min-height:300px;border-radius:5px;overflow:hidden;position:relative;display:flex;align-items:flex-end;background:url('../images/gallery-3.jpg') center/cover no-repeat;margin-top:1rem;}
.map-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,rgba(58,66,61,.7));}
.map-ph .cap{position:relative;z-index:2;padding:1.4rem;color:var(--white);font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;}
form.cform{display:grid;gap:1.1rem;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}
.cform label{font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.14em;font-size:.64rem;color:var(--sage-grey);display:block;margin-bottom:.4rem;}
.cform input,.cform select,.cform textarea{width:100%;background:var(--white);border:1px solid var(--grey-light);border-radius:3px;padding:.85rem 1rem;font-family:var(--sans-body);font-size:1rem;color:var(--ink);outline:none;transition:border-color .25s;}
.bg-cream .cform input,.bg-cream .cform select,.bg-cream .cform textarea{background:var(--white);}
.cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--sage-deep);}
.cform textarea{min-height:140px;resize:vertical;}

/* footer */
footer{background:var(--ink);color:var(--cream);padding:4rem 0 2.4rem;}
.foot-inner{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem;}
.foot-brand{font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;font-size:1.4rem;margin-bottom:.5rem;}
.foot-brand small{display:block;font-family:var(--sans-sub);font-size:.52rem;letter-spacing:.3em;margin-top:.4rem;color:rgba(245,243,239,.6);}
.foot-col h4{color:var(--cream);font-family:var(--sans-sub);text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:500;margin-bottom:1rem;}
.foot-col p,.foot-col a{font-size:.9rem;color:rgba(245,243,239,.7);line-height:1.9;display:block;}
.foot-col a:hover{color:var(--cream);}
.foot-fine{text-align:center;font-size:.76rem;color:rgba(245,243,239,.5);margin-top:2.5rem;border-top:1px solid rgba(255,255,255,.1);padding-top:1.8rem;}

/* responsive */
@media(max-width:900px){
  .about-grid,.split,.cards,.values .wrap,.gal-grid,.contact-grid,.bio,.frow,.foot-inner{grid-template-columns:1fr;}
  .cards{gap:1.4rem;} .values .wrap{gap:1.6rem;} .foot-inner{gap:2.2rem;}
  .arch-frame img{height:60vh;}
  .navlinks{position:fixed;inset:0 0 0 30%;background:var(--cream);flex-direction:column;justify-content:center;gap:2rem;transform:translateX(100%);transition:transform .4s ease;box-shadow:-12px 0 40px rgba(0,0,0,.14);}
  .navlinks.open{transform:translateX(0);}
  .navlinks a,header.nav.scrolled .navlinks a,header.nav.solid .navlinks a{color:var(--ink);}
  .menu-btn{display:block;}
  .gal-grid .g:nth-child(3){display:none;}
}
