/* ==========================================================================
   Dr Sekwati theme: main stylesheet
   Mobile-first. Breakpoints: 600 / 900 / 1100 (nav) / 1200.
   Sections:  1 Fonts  2 Tokens  3 Base  4 Layout  5 Components
              6 Header  7 Home  8 About  9 Areas  10 Patient info
              11 Contact  12 Footer  13 Generic pages  14 Utilities
   ========================================================================== */

/* 1. FONTS (self-hosted, latin subset, swap) ----------------------------- */
@font-face{font-family:"Cinzel";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/cinzel-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Cinzel";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/cinzel-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/montserrat-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/montserrat-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/montserrat-latin-600-normal.woff2") format("woff2")}

/* 2. TOKENS --------------------------------------------------------------- */
:root{
  --sage:#BACABA;          /* buttons, top bar, footer, number circles */
  --ink:#2A3524;           /* text on sage */
  --green:#55683B;         /* headings, links, thin icons */
  --olive:#3E5030;         /* text on cream bands */
  --cream:#E9EDDC;         /* warm pale bands */
  --mist:#E6EDE5;          /* pale green bands */
  --alt:#F4F6F1;           /* alternate ground */
  --body:#3C4837;          /* body text */
  --muted:#4A5645;         /* secondary text */
  --line:#E1E7DF;          /* hairlines */
  --gold:#C5A772;          /* decorative only: lines, borders (not for text) */
  --gold-d:#7C6736;        /* small gold labels (passes AA) */
  --gold-ft:#5F4C20;       /* gold text on sage */
  --white:#fff;
  --serif:"Cinzel","Trajan Pro",Georgia,serif;
  --sans:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --gutter:clamp(20px,4.4vw,48px);
  --max:1200px;
  --sec:clamp(56px,8vw,88px);
}

/* 3. BASE ----------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--white);color:var(--body);font-family:var(--sans);font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:clip}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
img{max-width:100%;height:auto;display:block}
a{color:var(--green);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
p a,.faq a:not(.pill){text-decoration:underline;text-underline-offset:3px}
a.btn:hover,.nav a:hover,.site-footer a:hover{text-decoration:none}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:2px}
.site-footer :focus-visible,.topbar :focus-visible{outline-color:var(--ink);box-shadow:0 0 0 6px rgba(255,255,255,.65)}
.skip{position:absolute;left:12px;top:-100px;z-index:100;background:var(--ink);color:#fff;padding:12px 18px;font-weight:600}
.skip:focus{top:12px}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

h1,h2{font-family:var(--serif);font-weight:400;color:var(--green);letter-spacing:.01em;line-height:1.16;overflow-wrap:break-word}
h1{font-size:clamp(2rem,1.3rem + 3vw,3.375rem);letter-spacing:.005em;line-height:1.12}
h2{font-size:clamp(1.75rem,1.25rem + 1.9vw,2.75rem)}
h3{font-size:1.125rem;line-height:1.4;font-weight:600;color:var(--ink)}

/* 4. LAYOUT --------------------------------------------------------------- */
.wrap{width:100%;max-width:calc(var(--max) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.sec{position:relative;padding-block:var(--sec);overflow:hidden}
.sec--alt{background:var(--alt)}
.sec--mist{background:var(--mist)}
.sec--cream{background:var(--cream);color:var(--olive)}
.sec--cream h2,.sec--cream .lead{color:var(--olive)}
.sec--gold-top{border-top:3px solid var(--gold)}
.sec--tight{padding-block:clamp(44px,6vw,72px)}
.center{text-align:center}
.measure{max-width:780px;margin-inline:auto}

/* watermark mark (decorative, pre-faded) */
.mark{position:absolute;pointer-events:none;background:url("../img/mark.webp") no-repeat center/contain;opacity:.14;width:clamp(140px,22vw,300px);aspect-ratio:300/457}
.mark--tr{right:-20px;top:-24px}
.mark--br{right:max(0px,calc(50% - 560px));bottom:-60px}

/* 5. COMPONENTS ----------------------------------------------------------- */
.eyebrow{display:block;font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--gold-d)}
.rule{width:56px;height:2px;background:var(--gold);margin-block:22px}
.rule--c{margin-inline:auto}
.hr{height:1px;background:rgba(197,167,114,.7);margin-block:26px}
.lead{font-size:clamp(1.0625rem,1rem + .35vw,1.3125rem);line-height:1.6;color:var(--olive)}
.lead--b{font-weight:600;color:var(--ink)}
.text{font-size:1.0625rem;line-height:1.75}
.stack>*+*{margin-top:1.1em}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7em;min-height:48px;padding:.8rem 1.5rem;background:var(--sage);color:var(--ink);font:600 .75rem/1.3 var(--sans);letter-spacing:.15em;text-transform:uppercase;border:1px solid var(--sage);border-radius:2px;cursor:pointer;text-align:center;transition:filter .2s}
.btn:hover{filter:brightness(1.08)}
.btn svg{flex:none}
.btn--lg{padding:1.05rem 1.9rem;font-size:.78rem;letter-spacing:.17em}
.btn--outline{background:transparent;border-color:var(--gold);color:var(--olive)}
.btn--ghost{background:transparent;border-color:rgba(42,53,36,.45);min-height:44px}
.link-gold{display:inline-flex;align-items:center;min-height:44px;font-size:.78rem;letter-spacing:.17em;text-transform:uppercase;font-weight:600;color:var(--green);border-bottom:2px solid var(--gold);padding-block:4px}
.link-gold:hover{text-decoration:none;border-color:var(--green)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.note{display:flex;align-items:flex-start;gap:8px;font-size:.875rem;line-height:1.5;color:var(--muted)}
.note svg{flex:none;margin-top:2px;stroke:var(--gold-d)}
.ico{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.card{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--gold);padding:24px}
.num{font-family:var(--serif);font-size:1.75rem;line-height:1;color:var(--gold-d)}

/* FAQ list */
.faq{display:grid;gap:32px 72px;margin-top:44px}
.faq__item{border-top:1px solid var(--gold);padding-top:22px}
.faq__item p{margin-top:10px;font-size:1rem;line-height:1.7}
.faq__item .actions{margin-top:16px;gap:10px}
.pill{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border:1px solid var(--sage);background:var(--mist);border-radius:999px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--ink)}
.pill:hover{text-decoration:none;background:var(--sage)}
@media (min-width:900px){.faq--2{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* CTA band */
.cta{background:var(--cream);color:var(--olive);text-align:center}
.cta h2{color:var(--olive)}
.cta p{margin-top:18px;font-size:1.125rem}
.cta .btn{margin-top:30px}
.cta--mist{background:var(--mist)}

/* 6. HEADER --------------------------------------------------------------- */
.topbar{background:var(--sage);color:var(--ink);font-size:.8125rem;letter-spacing:.03em}
.topbar__in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 24px;padding-block:6px}
.topbar__info{display:none;align-items:center;gap:18px}
.dia{width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}
.topbar__links{display:flex;align-items:center;gap:8px 14px;width:100%;justify-content:center;white-space:nowrap}
.topbar .btn{padding:.3rem .8rem;font-size:.75rem;min-height:44px;letter-spacing:.1em}
.topbar a:not(.btn){color:var(--ink);font-weight:500;display:inline-flex;align-items:center;min-height:44px;padding-inline:6px}
@media (min-width:700px){
  .topbar__info{display:flex}
  .topbar__links{width:auto}
  .topbar .btn,.topbar a:not(.btn){min-height:32px}
}

.site-header{position:relative;z-index:20;background:var(--white);border-bottom:1px solid var(--line)}
.site-header__in{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:16px}
.logo{display:block;flex:none}
.logo img{height:48px;width:auto}
.nav-toggle{display:none;align-items:center;justify-content:center;width:48px;height:48px;background:none;border:1px solid var(--line);border-radius:2px;color:var(--green);cursor:pointer}
.js .nav-toggle{display:inline-flex}
.nav-toggle .ico{width:24px;height:24px}
.nav-toggle .ico-close{display:none}
.nav-open .nav-toggle .ico-close{display:block}
.nav-open .nav-toggle .ico-menu{display:none}
/* Without JS the menu simply stays visible, stacked under the logo. */
.site-header__in{flex-wrap:wrap}
.nav{width:100%;padding-bottom:16px}
.js .nav{display:none;position:absolute;left:0;right:0;top:100%;width:auto;background:var(--white);border-bottom:1px solid var(--line);box-shadow:0 24px 40px -28px rgba(31,42,27,.4);padding:8px var(--gutter) 24px}
.js .nav-open .nav{display:block}
.nav ul{display:flex;flex-direction:column}
.nav li a{display:flex;align-items:center;min-height:52px;font-size:.8125rem;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line)}
.nav li a[aria-current="page"]{color:var(--green);box-shadow:inset 3px 0 0 var(--gold);padding-left:14px}
.nav .btn{width:100%;margin-top:18px}
@media (min-width:1100px){
  .site-header__in{min-height:88px;flex-wrap:nowrap}
  .logo img{height:56px}
  .js .nav-toggle,.nav-toggle{display:none}
  .nav,.js .nav{display:block;position:static;width:auto;border:0;box-shadow:none;padding:0;background:none}
  .nav__row{display:flex;align-items:center;gap:34px}
  .nav ul{flex-direction:row;gap:34px}
  .nav li a{min-height:44px;font-size:.75rem;border-bottom:2px solid transparent;box-shadow:none!important;padding-left:0!important}
  .nav li a[aria-current="page"]{border-bottom-color:var(--gold)}
  .nav li a:hover{color:var(--green)}
  .nav .btn{width:auto;margin:0;padding:.85rem 1.5rem}
}

/* 7. HOME ----------------------------------------------------------------- */
.hero{position:relative;background:linear-gradient(100deg,#F3F6F1 0%,#E2EAE0 40%,var(--sage) 100%)}
.hero__media{position:relative;height:300px;overflow:hidden;background:#C9B99A}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 26%}
.hero__media::after{content:"";position:absolute;inset:0 auto 0 0;width:30%;background:linear-gradient(90deg,rgba(31,42,27,.28),transparent)}
.hero__card{position:relative;margin:-56px var(--gutter) 0;padding:32px 24px 36px;background:var(--white);border:1px solid rgba(197,167,114,.7);box-shadow:0 40px 90px -40px rgba(31,42,27,.45);max-width:640px}
.hero__card::before{content:"";display:block;width:56px;height:2px;background:var(--gold);margin-bottom:22px}
.hero__card h1{font-size:clamp(1.9rem,1.35rem + 2.4vw,3.125rem);line-height:1.12}
.hero__card p{margin-top:20px;font-size:1.0625rem;color:var(--body)}
.hero__card .actions{margin-top:26px;gap:12px 22px}
.hero__card .note{flex:1 1 100%}
.hero{padding-bottom:40px}
@media (min-width:600px){.hero__media{height:380px}.hero__card{padding:44px 44px 40px;margin-inline:auto;width:calc(100% - var(--gutter)*2)}}
@media (min-width:1024px){
  .hero{height:700px;padding:0;overflow:hidden}
  .hero__media{position:absolute;inset:0 0 0 auto;width:58%;height:auto}
  .hero::before{content:"";position:absolute;top:0;bottom:0;right:58%;width:2px;background:var(--gold);z-index:1}
  .hero__card{position:absolute;left:clamp(32px,6.6vw,96px);top:50%;transform:translateY(-50%);margin:0;width:min(580px,calc(42% - 24px));min-width:480px;padding:52px 52px 46px;z-index:2}
}
@media (min-width:1024px) and (max-width:1199px){.hero__card{min-width:0;width:calc(50% - 24px);padding:40px 36px}.hero__card h1{font-size:2.5rem}}

/* story */
.story{display:grid;gap:44px;align-items:center}
.portrait{position:relative;width:min(calc(100% - 28px),340px);aspect-ratio:340/380;margin-left:28px}
.portrait::before{content:"";position:absolute;left:-28px;top:28px;width:100%;height:100%;background:var(--sage)}
.portrait__img{position:absolute;inset:0;border:6px solid var(--gold);overflow:hidden;background:#E4E6E6}
.portrait__img img{width:100%;height:100%;object-fit:cover}
.story h2{color:var(--olive)}
.story .lead{margin-top:26px}
.story .rule{margin-block:26px}
.story .btn{margin-top:32px}
@media (min-width:900px){.story{grid-template-columns:340px 1fr;gap:clamp(48px,8vw,110px)}.portrait{margin-left:36px;width:340px}}

/* credentials bar */
.creds{background:var(--sage);color:var(--ink);padding-block:32px}
.creds__label{display:block;text-align:center;font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600}
.creds__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}
.creds__item{padding:14px 12px;text-align:center}
.creds__item:nth-child(n+3){border-top:1px solid rgba(42,53,36,.35)}
.creds__item:nth-child(even){border-left:1px solid rgba(42,53,36,.35)}
.creds__item b{display:block;font:700 1.0625rem/1.2 var(--serif);color:var(--ink)}
.creds__item span{display:block;margin-top:8px;font-size:.8125rem;line-height:1.5;color:#2F3B28}
.creds__lang{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:20px;font-size:.9375rem;text-align:left}
.creds__lang svg{flex:none}
@media (min-width:900px){
  .creds__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .creds__item{padding:0 24px}
  .creds__item:nth-child(n+3){border-top:0}
  .creds__item:nth-child(even){border-left:0}
  .creds__item+.creds__item{border-left:1px solid rgba(42,53,36,.35)}
}

/* areas of care (home grid) */
.areas__label{display:block;margin-top:40px;text-align:center;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--muted)}
.areas{display:grid;gap:12px;margin-top:20px;counter-reset:a}
.areas li{display:flex;align-items:center;gap:16px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--gold);padding:16px 18px}
.areas .num{font-size:1.5rem;min-width:2.1rem}
.areas li span.t{font-size:1rem;line-height:1.45;font-weight:500;color:var(--ink)}
.sec .more{margin-top:44px;text-align:center}
@media (min-width:600px){.areas{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media (min-width:1100px){
  .areas{grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
  .areas li{display:block;padding:26px 24px;min-height:176px}
  .areas .num{display:block;font-size:1.75rem}
  .areas li span.t{display:block;margin-top:16px;font-size:1.03rem}
}

/* care that helps you understand */
.under{display:grid}
.under__img{aspect-ratio:4/3;overflow:hidden;background:#D9C9AE;border:6px solid #fff;box-shadow:0 30px 70px -40px rgba(31,42,27,.45)}
.under__img img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.under__card{position:relative;margin:-36px 14px 0;padding:30px 24px;background:var(--mist);border-top:3px solid var(--gold);box-shadow:0 30px 70px -40px rgba(31,42,27,.3)}
.under__card p{margin-top:20px;font-size:1.0625rem;line-height:1.75;color:#34402E}
@media (min-width:900px){
  .under{position:relative;display:block;height:560px}
  .under__img{position:absolute;left:0;top:0;width:min(620px,52%);height:540px;aspect-ratio:auto;border-width:8px}
  .under__card{position:absolute;left:min(540px,45%);right:0;top:64px;margin:0;padding:52px 56px}
}

/* steps */
.steps{display:grid;gap:36px 24px;margin-top:52px;position:relative}
.step{text-align:left;display:grid;grid-template-columns:56px 1fr;gap:4px 20px}
.step__n{grid-row:span 2;width:56px;height:56px;border-radius:50%;background:var(--sage);display:flex;align-items:center;justify-content:center;font:400 1.5rem/1 var(--serif);color:var(--ink);box-shadow:0 0 0 6px var(--alt);position:relative}
.step h3{align-self:end}
.step p{font-size:.97rem;line-height:1.7;color:var(--body)}
@media (min-width:640px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){
  .steps{grid-template-columns:repeat(4,minmax(0,1fr))}
  .steps::before{content:"";position:absolute;top:28px;left:12.5%;right:12.5%;height:2px;background:var(--gold);opacity:.7}
  .step{display:block;text-align:center;padding-inline:12px}
  .step__n{margin-inline:auto}
  .step h3{margin-top:26px;font-size:1.125rem}
  .step p{margin-top:10px}
}

/* 8. ABOUT ---------------------------------------------------------------- */
.about{display:grid;gap:48px;align-items:center;justify-items:center}
.arch{position:relative;width:min(calc(100% - 18px),300px);aspect-ratio:300/360;margin-right:18px}
.arch::before{content:"";position:absolute;left:-18px;top:18px;width:100%;height:100%;border:2px solid var(--gold);border-radius:150px 150px 0 0}
.arch__img{position:absolute;inset:0;border-radius:150px 150px 0 0;overflow:hidden;background:#E4E6E6}
.arch__img img{width:100%;height:100%;object-fit:cover}
.about__txt{position:relative;width:100%}
.about__txt h1{margin-top:14px}
.about__role{margin-top:16px;font:600 1.0625rem/1.4 var(--sans);color:var(--ink)}
.about__quals{margin-top:4px;font-family:var(--serif);font-size:1rem;color:var(--gold-d);font-weight:700;letter-spacing:.02em}
.about__txt .stack{margin-top:24px}
.chips{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:28px}
.chips__label{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--gold-d);margin-right:8px;flex:1 1 100%}
.chip{padding:8px 18px;border:1px solid var(--sage);background:var(--white);border-radius:999px;font-size:.875rem;font-weight:500;color:var(--ink)}
@media (min-width:900px){.about{grid-template-columns:300px 1fr;gap:clamp(56px,8vw,110px);justify-items:stretch}.arch{margin-inline:18px 0}.chips__label{flex:none}}

.quote{position:relative;max-width:860px;margin-inline:auto}
.quote__mark{display:block;font:400 5rem/.7 var(--serif);color:var(--gold);height:34px;margin-top:14px}
.quote h2{margin-top:10px}
.quote p{margin-top:1.1em;font-size:1.0625rem;line-height:1.8;color:var(--olive)}
.quote p:last-child{font-size:1.25rem;line-height:1.6;color:var(--olive);font-weight:500}

/* 9. AREAS OF CARE PAGE --------------------------------------------------- */
.intro{padding-block:clamp(48px,7vw,80px)}
.intro .wrap>*{position:relative}
.intro h1{margin-top:14px;max-width:900px}
.intro .lead{margin-top:24px;max-width:760px}
.intro .text{margin-top:16px;max-width:760px}
.intro--wide h1{max-width:none}
.area-grid{display:grid;gap:18px}
.area-card{padding:26px 26px 28px}
.area-card h3{margin-top:14px;font-size:1.1875rem}
.area-card p{margin-top:8px;font-size:1rem;line-height:1.65}
@media (min-width:800px){.area-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}}
.invest{display:grid;gap:36px;align-items:center}
.invest .btn{margin-top:30px}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.tile{background:rgba(255,255,255,.7);border:1px solid rgba(197,167,114,.7);padding:22px 16px;text-align:center;font:500 1rem/1.4 var(--sans);color:var(--ink)}
.invest__box{background:var(--white);border-top:3px solid var(--gold);padding:28px 26px}
.invest__box h3{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-d)}
.invest__box p{margin-top:16px;font-size:.9375rem;color:var(--muted)}
@media (min-width:900px){.invest{grid-template-columns:1fr 1fr;gap:72px}}

/* 10. PATIENT INFORMATION ------------------------------------------------- */
.pi{display:grid;gap:56px}
.pi h2{font-size:clamp(1.6rem,1.2rem + 1.2vw,2rem)}
.bring{margin-top:22px;border:1px solid var(--line);border-top:3px solid var(--gold);background:var(--alt);padding:26px 24px}
.checks li{display:flex;gap:14px;padding-block:12px;border-bottom:1px solid var(--line);font-size:1rem;line-height:1.55;color:var(--ink)}
.checks li:last-child{border-bottom:0}
.checks svg{flex:none;margin-top:3px;stroke:var(--green)}
.bring__note{margin-top:14px;font-size:.9375rem;color:var(--muted)}
.emerg{margin-top:22px;background:var(--cream);border-left:3px solid var(--gold);padding:22px 24px}
.emerg h3{font-size:1.0625rem;color:var(--olive)}
.emerg p{margin-top:8px;font-size:.9375rem;color:var(--olive)}
.pi .faq{margin-top:26px}
@media (min-width:1000px){.pi{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px}}

/* 11. CONTACT ------------------------------------------------------------- */
.ccards{display:grid;gap:18px;margin-top:40px}
.ccard{padding:28px 26px;display:flex;flex-direction:column;align-items:flex-start;border-top-color:var(--gold)}
.ccard .circ{width:56px;height:56px;border-radius:50%;background:var(--sage);display:flex;align-items:center;justify-content:center;color:var(--ink)}
.ccard h3{margin-top:18px;font-family:var(--serif);font-weight:400;font-size:1.375rem;color:var(--green)}
.ccard p{margin-top:4px;font-size:.9375rem;color:var(--muted)}
.ccard .btn{margin-top:22px}
@media (min-width:800px){.ccards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.enq{display:grid;gap:40px}
.enq__intro .note{margin-top:14px}
.form{display:grid;gap:18px}
.form__row{display:grid;gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--ink)}
.field label small{font-weight:400;letter-spacing:.04em;text-transform:none;color:#55604F;font-size:.8125rem}
.field input,.field textarea{width:100%;min-height:54px;padding:12px 16px;border:1px solid #8A9B88;background:var(--white);border-radius:2px;font:400 1rem/1.5 var(--sans);color:var(--ink)}
.field textarea{min-height:150px;resize:vertical}
.field input:focus-visible,.field textarea:focus-visible{outline:3px solid var(--ink);outline-offset:1px;border-color:var(--ink)}
.field ::placeholder{color:#66715F;opacity:1}
.form__consent{font-size:.875rem;color:var(--muted)}
.alert{padding:16px 20px;border-left:4px solid var(--green);background:var(--white);font-size:1rem;color:var(--ink)}
.alert--err{border-left-color:#8A2B1F}
@media (min-width:640px){.form__row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){.enq{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:72px}}
.find{display:grid;gap:44px}
.find__txt{display:grid;gap:44px;align-content:start}
.find address{font-style:normal;margin-top:20px;font-size:1.0625rem;line-height:1.75;color:var(--ink)}
.find .note{margin-top:16px}
.find .btn{margin-top:26px}
.hours{margin-top:22px;border-top:1px solid var(--gold)}
.hours div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:1rem;color:var(--ink)}
.hours dt{font-weight:500}
.hours dd{text-align:right;color:var(--muted)}
.map{min-height:320px;border:8px solid #fff;box-shadow:0 30px 70px -40px rgba(31,42,27,.45);background:var(--mist)}
.map iframe{display:block;width:100%;height:100%;min-height:304px;border:0}
@media (min-width:900px){.find:not(.find--map) .find__txt{grid-template-columns:1fr 1fr;gap:72px}.find--map{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px}}
.emband{display:grid;gap:18px;align-items:center}
.emband .ring{width:72px;height:72px;border:1.5px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--olive)}
.emband h2{font-size:clamp(1.5rem,1.2rem + 1vw,2.125rem);color:var(--olive)}
.emband p{font-size:1.0625rem;color:var(--olive)}
@media (min-width:800px){.emband{grid-template-columns:72px minmax(0,340px) 1fr;gap:32px}}

/* 12. FOOTER -------------------------------------------------------------- */
.site-footer{background:var(--sage);color:var(--ink);padding:56px 0 28px}
.site-footer a{color:var(--ink)}
.foot{display:grid;gap:36px;padding-bottom:36px}
.foot__logo img{height:56px;width:auto}
.foot p{margin-top:22px;font-size:.9375rem;line-height:1.7;max-width:34ch}
.foot h2{font:600 .75rem/1.3 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold-ft)}
.foot ul{margin-top:14px;display:flex;flex-direction:column;gap:2px}
.foot li a{display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem}
.foot .btn{margin-bottom:10px}
.foot address{font-style:normal;margin-top:16px;font-size:.9375rem;line-height:1.7}
.foot address+address{margin-top:14px}
.foot__btns{margin-top:14px;display:flex;flex-direction:column;align-items:flex-start;gap:0}
.foot__btns a:not(.btn){display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem}
@media (min-width:700px){.foot{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 48px}}
@media (min-width:1000px){.foot{grid-template-columns:1.5fr 1fr 1fr 1.4fr;gap:56px}}
.emerg-line{padding:18px 0;border-top:1px solid rgba(95,76,32,.35);border-bottom:1px solid rgba(95,76,32,.35);font-size:.875rem;color:var(--gold-ft)}
.legal{display:flex;flex-direction:column;gap:14px;margin-top:20px;font-size:.8125rem}
.legal ul{display:flex;flex-wrap:wrap;gap:0 22px}
.legal li a{display:inline-flex;align-items:center;min-height:44px}
.legal a{text-decoration:underline;text-underline-offset:3px}
@media (min-width:900px){.legal{flex-direction:row;align-items:center;justify-content:space-between}.legal li a{min-height:32px}}

/* 13. GENERIC PAGES ------------------------------------------------------- */
.prose{max-width:760px}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:1.75rem;margin-top:1.6em}
.prose h3{font-size:1.2rem;margin-top:1.4em}
.prose ul,.prose ol{padding-left:1.3em;list-style:revert}
.prose a{text-decoration:underline;text-underline-offset:3px}
.nf{padding-block:clamp(72px,12vw,140px);text-align:center}

/* 14. PRINT --------------------------------------------------------------- */
@media print{.topbar,.nav,.nav-toggle,.mark,.hero__media::after{display:none!important}body{font-size:11pt}.sec{padding-block:24px}}

/* 15. CONTACT FORM 7 (enquiry form on the Contact page) ------------------------
   Styles the existing "Appointment enquiry" form. Works with the form code from
   either Blume package (v1: ds-cf-… classes, v2/v3: form__row / field classes). */
.enq__form .wpcf7{width:100%}
.enq__form .wpcf7-form{display:grid;gap:18px;background:var(--white);border-top:3px solid var(--gold);padding:clamp(24px,4vw,44px);box-shadow:0 30px 70px -40px rgba(31,42,27,.35)}
.enq__form .wpcf7-form br{display:none}
.enq__form .wpcf7-form p{margin:0}
.enq__form .wpcf7 .hidden-fields-container{display:none}
.enq__form .wpcf7-form-control-wrap{display:block}
.enq__form .ds-cf-grid{display:grid;gap:18px}
.enq__form .field,.enq__form .ds-cf-field{display:flex;flex-direction:column;gap:8px}
.enq__form label{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--ink);line-height:1.4}
.enq__form label small,.enq__form label span{font-weight:400;letter-spacing:.04em;text-transform:none;color:#55604F;font-size:.8125rem}
.enq__form input.wpcf7-text,.enq__form input.wpcf7-email,.enq__form input.wpcf7-tel,.enq__form input.wpcf7-number,.enq__form select.wpcf7-select,.enq__form textarea.wpcf7-textarea{width:100%;min-height:54px;padding:12px 16px;border:1px solid #8A9B88;background:var(--white);border-radius:2px;font:400 1rem/1.5 var(--sans);color:var(--ink);box-shadow:none}
.enq__form textarea.wpcf7-form-control{min-height:150px;resize:vertical}
.enq__form .wpcf7-form-control:focus-visible{outline:3px solid var(--ink);outline-offset:1px;border-color:var(--ink)}
.enq__form ::placeholder{color:#66715F;opacity:1}
.enq__form .form__consent,.enq__form .ds-cf-consent{font-size:.875rem;color:var(--muted)}
.enq__form .ds-cf-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 28px}
.enq__form .wpcf7-submit{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:1.05rem 1.9rem;background:var(--sage);color:var(--ink);font:600 .78rem/1.3 var(--sans);letter-spacing:.17em;text-transform:uppercase;border:1px solid var(--sage);border-radius:2px;cursor:pointer;width:auto}
.enq__form .wpcf7-submit:hover,.enq__form .wpcf7-submit:focus{background:var(--sage);color:var(--ink);filter:brightness(1.08)}
.enq__form .wpcf7-spinner{margin:0 0 0 12px}
.enq__form .wpcf7-not-valid-tip{font-size:.875rem;margin-top:6px;color:#8A2B1F}
.enq__form .wpcf7 form .wpcf7-response-output{margin:6px 0 0;padding:16px 20px;border:0;border-left:4px solid var(--green);background:var(--mist);font-size:1rem;color:var(--ink)}
.enq__form .wpcf7 form.invalid .wpcf7-response-output,.enq__form .wpcf7 form.failed .wpcf7-response-output,.enq__form .wpcf7 form.spam .wpcf7-response-output{border-left-color:#8A2B1F}
@media (min-width:640px){.enq__form .form__row,.enq__form .ds-cf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}

/* 16. LEGAL PAGES (Terms of use, Medical disclaimer, Privacy notice, PAIA manual) */
.intro .legal-updated{margin-top:14px}
.sec.legal-sec{overflow:visible}
.legal-page{display:grid;grid-template-columns:minmax(0,1fr);gap:36px;align-items:start}
.legal-nav{border-top:3px solid var(--gold);background:var(--alt);padding:20px 22px}
.legal-nav h2{font:600 .75rem/1.3 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold-d)}
.legal-nav ul{margin-top:10px}
.legal-nav li a{display:flex;align-items:center;min-height:44px;border-bottom:1px solid var(--line);font-size:.9375rem;font-weight:500;color:var(--ink)}
.legal-nav li:last-child a{border-bottom:0}
.legal-nav li a[aria-current="page"]{color:var(--green);box-shadow:inset 3px 0 0 var(--gold);padding-left:12px}
.legal-nav li a:hover{color:var(--green);text-decoration:none}
.prose.legal-doc{max-width:760px;color:var(--body)}
.legal-doc h2{font-size:clamp(1.35rem,1.15rem + .7vw,1.75rem);margin-top:1.8em;scroll-margin-top:24px}
.legal-doc>h2:first-child{margin-top:0}
.legal-doc h3{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-d);margin-top:1.4em}
.legal-doc ul{padding-left:1.3em;list-style:disc}
.legal-doc li{margin-top:.4em}
.legal-doc li::marker{color:var(--gold-d)}
.legal-doc a{text-decoration:underline;text-underline-offset:3px}
.legal-box{background:var(--alt);border-left:3px solid var(--gold);padding:18px 22px;line-height:1.65}
.prose .legal-box p+p{margin-top:2px}
.legal-box a[data-c]{white-space:nowrap}
@media (min-width:1000px){.legal-page{grid-template-columns:260px minmax(0,1fr);gap:72px}.legal-nav{position:sticky;top:24px}}
@media print{.legal-nav{display:none}}

/* 17. ADMIN BAR / PARENT THEME GUARDS ---------------------------------------- */
body.admin-bar .legal-nav{top:56px}
.site-header .nav-toggle:hover,.site-header .nav-toggle:focus{background:none;color:var(--green)}
