/* =========================================================
   Wellness NPs — shared design system
   Direction: "Quiet Luxury" — cream + layered browns + brushed gold
   Display: Cormorant Garamond | Body: Jost
   ========================================================= */

:root{
  /* palette */
  --cream:#FFF8F0;
  --cream-2:#F4EFE6;
  --ivory:#FFFFFF;
  --white:#FFFFFF;
  --espresso:#4B2E2B;
  --coffee:#3A2321;
  --walnut:#8C5A3C;
  --mocha:#9B6A47;
  --camel:#C08552;
  --sand:#E7CDB0;
  --gold:#C08552;
  --gold-soft:#D29F6E;

  --text:#4B2E2B;
  --text-soft:#6E4A3A;
  --text-muted:#9A7A66;
  --line:rgba(75,46,43,0.13);
  --line-strong:rgba(75,46,43,0.25);

  /* type */
  --font-display:"Cormorant Garamond", Georgia, serif;
  --font-body:"Jost", "Helvetica Neue", Arial, sans-serif;

  /* layout */
  --container:1180px;
  --gutter:clamp(20px,5vw,64px);
  --radius:2px;            /* sharp, editorial luxury — almost no rounding */
  --radius-img:4px;

  --section-y:clamp(64px,9vw,140px);
}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  font-family:var(--font-body);
  background:var(--cream);
  color:var(--text);
  font-weight:300;
  font-size:clamp(15px,1.05vw,17px);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}

::selection{background:var(--gold);color:var(--ivory)}

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

/* ---------- typography ---------- */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.08;color:var(--espresso);letter-spacing:.005em;text-wrap:balance}
h1{font-size:clamp(2.6rem,6.4vw,5.1rem);font-weight:500}
h2{font-size:clamp(2rem,4.4vw,3.45rem)}
h3{font-size:clamp(1.45rem,2.4vw,1.95rem)}
h4{font-size:clamp(1.15rem,1.6vw,1.35rem)}
p{max-width:62ch}

.eyebrow{
  font-family:var(--font-body);
  font-weight:500;
  font-size:.72rem;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--gold);
  display:inline-flex;
  align-items:center;
  gap:.7em;
}
.eyebrow::before{
  content:"";
  width:34px;height:1px;background:var(--gold);
  display:inline-block;
}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:34px;height:1px;background:var(--gold);display:inline-block}

.lede{font-size:clamp(1.1rem,1.5vw,1.3rem);color:var(--text-soft);font-weight:300}
.serif-accent{font-family:var(--font-display);font-style:italic;color:var(--walnut)}

/* ---------- layout helpers ---------- */
.container{width:100%;max-width:var(--container);margin:0 auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-y)}
.section--tight{padding-block:clamp(48px,6vw,86px)}
.bg-cream2{background:var(--cream-2)}
.bg-ivory{background:var(--ivory)}
.bg-dark{background:var(--espresso);color:var(--sand)}
.bg-dark h1,.bg-dark h2,.bg-dark h3,.bg-dark h4{color:var(--ivory)}
.bg-dark p{color:#E0CCBC}

.center{text-align:center}
.mx-auto{margin-inline:auto}
.measure{max-width:60ch}
.measure-wide{max-width:74ch}
.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:2.8rem}

/* hairline divider with center node — recurring signature */
.rule{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 auto}
.rule::before,.rule::after{content:"";height:1px;width:64px;background:var(--line-strong)}
.rule .node{width:6px;height:6px;border:1px solid var(--gold);transform:rotate(45deg)}

/* monogram seal */
.seal{
  width:46px;height:46px;border:1px solid var(--gold);
  display:grid;place-items:center;border-radius:50%;
  font-family:var(--font-display);font-size:1.15rem;font-weight:600;
  color:var(--gold);letter-spacing:.02em;flex:none;
}

/* ---------- buttons ---------- */
.btn{
  --bg:var(--espresso);--fg:var(--ivory);--bd:var(--espresso);
  display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--font-body);font-weight:400;
  font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;
  padding:1.05em 2em;background:var(--bg);color:var(--fg);
  border:1px solid var(--bd);border-radius:var(--radius);
  cursor:pointer;transition:background .35s ease,color .35s ease,transform .35s ease,border-color .35s ease;
}
.btn:hover{background:var(--walnut);border-color:var(--walnut);transform:translateY(-2px)}
.btn .arrow{transition:transform .35s ease}
.btn:hover .arrow{transform:translateX(4px)}
.btn--ghost{--bg:transparent;--fg:var(--espresso);--bd:var(--line-strong)}
.btn--ghost:hover{--fg:var(--ivory);background:var(--walnut);border-color:var(--walnut)}
.btn--gold{--bg:var(--gold);--fg:var(--ivory);--bd:var(--gold)}
.btn--gold:hover{--bg:var(--gold-soft);border-color:var(--gold-soft)}
.btn--onDark{--bg:var(--gold);--fg:#3A2321;--bd:var(--gold)}
.btn--onDark:hover{--bg:var(--ivory);--fg:var(--espresso);border-color:var(--ivory)}
.btn-row{display:flex;flex-wrap:wrap;gap:14px}

/* text link */
.tlink{display:inline-flex;align-items:center;gap:.5em;color:var(--walnut);
  font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;
  border-bottom:1px solid var(--line-strong);padding-bottom:3px;transition:color .3s,border-color .3s}
.tlink:hover{color:var(--gold);border-color:var(--gold)}

/* ---------- header / nav ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  transition:background .3s;
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:16px}
.brand{display:flex;align-items:center;gap:14px}
.brand .seal{width:40px;height:40px;font-size:1rem}
.brand-name{font-family:var(--font-display);font-size:1.4rem;font-weight:600;color:var(--espresso);line-height:1}
.brand-sub{display:block;font-family:var(--font-body);font-size:.6rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--text-muted);margin-top:3px}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-links a{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft);
  position:relative;padding-block:6px;transition:color .3s}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--espresso)}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width .35s}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{width:100%}
.nav-cta{display:flex;align-items:center;gap:16px}
.nav-cta .btn{padding:.85em 1.5em}

/* dropdown */
.has-sub{position:relative}
.submenu{
  position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(8px);
  background:var(--ivory);border:1px solid var(--line);min-width:248px;
  padding:10px;opacity:0;visibility:hidden;transition:opacity .28s,transform .28s;
  box-shadow:0 24px 50px -28px rgba(44,30,21,.5);
}
.has-sub:hover .submenu,.has-sub:focus-within .submenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.submenu a{display:block;padding:11px 14px;text-transform:none;letter-spacing:.02em;font-size:.92rem;color:var(--text-soft)}
.submenu a:hover{background:var(--cream-2);color:var(--espresso)}
.submenu a::after{display:none}

.nav-toggle{display:none;background:none;border:1px solid var(--line-strong);width:46px;height:46px;
  cursor:pointer;flex-direction:column;gap:5px;align-items:center;justify-content:center;border-radius:var(--radius)}
.nav-toggle span{width:20px;height:1.5px;background:var(--espresso);transition:.3s}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--cream)}
.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center;
  padding-block:clamp(56px,8vw,118px)}
.hero h1{margin-top:22px}
.hero .lede{margin-top:26px;max-width:46ch}
.hero .btn-row{margin-top:38px}
.hero-trust{margin-top:34px;display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center;
  font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
.hero-trust span{display:inline-flex;align-items:center;gap:.6em}
.hero-trust .node{width:5px;height:5px;background:var(--gold);transform:rotate(45deg)}

/* hero visual: framed image placeholder + contour signature */
.hero-figure{position:relative;aspect-ratio:4/5;border:1px solid var(--line-strong);
  background:linear-gradient(150deg,var(--sand),var(--camel) 60%,var(--walnut));
  border-radius:var(--radius-img);overflow:hidden}
.hero-figure .contour{position:absolute;inset:0;opacity:.5;mix-blend-mode:soft-light}
.hero-figure .ph-label{position:absolute;left:18px;bottom:16px;color:rgba(251,246,238,.92);
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase}
.hero-figure .seal-badge{position:absolute;top:18px;right:18px;width:62px;height:62px;border:1px solid rgba(251,246,238,.7);
  border-radius:50%;display:grid;place-items:center;color:var(--ivory);font-family:var(--font-display);
  font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;text-align:center;line-height:1.25;background:rgba(44,30,21,.16)}

/* ambient contour texture for full sections */
.contour-bg{position:absolute;inset:0;pointer-events:none;opacity:.06}

/* ---------- trust band ---------- */
.trust-band{border-block:1px solid var(--line);background:var(--ivory)}
.trust-band .container{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px;padding-block:34px}
.trust-item{flex:1 1 200px}
.trust-item .num{font-family:var(--font-display);font-size:clamp(2.2rem,3.6vw,3rem);color:var(--walnut);line-height:1}
.trust-item .lab{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-top:8px}

/* ---------- section headers ---------- */
.sec-head{max-width:64ch}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head h2{margin-top:18px}
.sec-head p{margin-top:18px}
.sec-head.center p{margin-inline:auto}

/* ---------- service grid ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:clamp(40px,5vw,64px)}
.svc-card{background:var(--ivory);padding:clamp(28px,3vw,42px);display:flex;flex-direction:column;
  min-height:300px;transition:background .4s ease}
.svc-card:hover{background:var(--cream)}
.svc-card .idx{font-family:var(--font-display);font-size:1rem;color:var(--gold);letter-spacing:.1em}
.svc-card h3{margin-top:auto;padding-top:30px}
.svc-card p{font-size:.96rem;color:var(--text-soft);margin-top:14px;flex:0}
.svc-card .tlink{margin-top:24px;align-self:flex-start}

/* feature/benefit list */
.benefits{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--line);
  border:1px solid var(--line);margin-top:clamp(36px,4vw,56px)}
.benefit{background:var(--ivory);padding:clamp(24px,2.6vw,36px)}
.benefit h4{display:flex;align-items:baseline;gap:.7em}
.benefit h4 .b-no{font-family:var(--font-body);font-size:.7rem;letter-spacing:.2em;color:var(--gold);
  border:1px solid var(--gold);width:30px;height:30px;display:inline-grid;place-items:center;border-radius:50%;flex:none}
.benefit p{font-size:.95rem;color:var(--text-soft);margin-top:14px}

/* check list */
.checks{display:grid;gap:16px;margin-top:8px}
.checks li{position:relative;padding-left:34px;color:var(--text-soft)}
.checks li::before{content:"";position:absolute;left:0;top:.55em;width:14px;height:7px;
  border-left:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(-45deg)}
.checks li strong{color:var(--espresso);font-weight:500}

/* split: text + visual */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,80px);align-items:center}
.split--narrow{grid-template-columns:1.1fr .9fr}
.figure{aspect-ratio:1/1;border:1px solid var(--line-strong);border-radius:var(--radius-img);
  background:linear-gradient(150deg,var(--sand),var(--mocha));position:relative;overflow:hidden}
.figure .ph-label{position:absolute;left:18px;bottom:16px;color:rgba(251,246,238,.92);
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase}
.figure .contour{position:absolute;inset:0;opacity:.45;mix-blend-mode:soft-light}

/* ---------- process steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:clamp(40px,5vw,60px)}
.step{background:var(--ivory);padding:clamp(26px,3vw,40px)}
.step .s-no{font-family:var(--font-display);font-size:2.6rem;color:var(--gold);line-height:1}
.step h4{margin-top:18px}
.step p{font-size:.93rem;color:var(--text-soft);margin-top:12px}

/* ---------- testimonial ---------- */
.quote{max-width:50ch;margin-inline:auto;text-align:center}
.quote blockquote{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.3rem);
  font-style:italic;line-height:1.32;color:var(--ivory)}
.quote .who{margin-top:28px;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin:clamp(36px,4vw,52px) auto 0;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:24px 44px 24px 0;position:relative;
  font-family:var(--font-display);font-size:clamp(1.2rem,1.9vw,1.55rem);color:var(--espresso)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);
  font-family:var(--font-body);font-weight:300;font-size:1.6rem;color:var(--gold);transition:transform .3s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq .ans{padding:0 44px 26px 0;color:var(--text-soft);max-width:70ch}

/* ---------- consult CTA band ---------- */
.consult{position:relative;overflow:hidden;background:var(--espresso);color:var(--sand)}
.consult .container{position:relative;text-align:center;padding-block:clamp(60px,8vw,110px)}
.consult h2{color:var(--ivory)}
.consult p{color:#E0CCBC;margin:20px auto 0}
.consult .btn-row{justify-content:center;margin-top:36px}

/* ---------- footer ---------- */
.site-footer{background:#3A2321;color:#D8C3B4;padding-block:clamp(56px,7vw,88px) 30px}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.site-footer .brand-name{color:var(--ivory)}
.site-footer h5{font-family:var(--font-body);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-soft);margin-bottom:18px}
.site-footer a{color:#D8C3B4;font-size:.92rem;display:block;padding:5px 0;transition:color .3s}
.site-footer a:hover{color:var(--ivory)}
.footer-about p{color:#BBA08E;font-size:.92rem;margin-top:18px;max-width:38ch}
.footer-contact p{color:#D8C3B4;font-size:.92rem;margin:5px 0}
.footer-bottom{border-top:1px solid rgba(255,248,240,.16);margin-top:50px;padding-top:26px;
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;font-size:.78rem;color:#A98B78}
.disclaimer{font-size:.74rem;line-height:1.7;color:#A98B78;margin-top:24px;max-width:none}

/* ---------- breadcrumb ---------- */
.crumb{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);
  padding-top:30px}
.crumb a:hover{color:var(--walnut)}
.crumb span{color:var(--walnut)}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .btn,.btn .arrow,.svc-card,.nav-links a::after{transition:none}
}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  .nav-links,.nav-cta .btn{display:none}
  .nav-toggle{display:flex}
  .nav-links.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    align-items:flex-start;gap:0;background:var(--ivory);border-bottom:1px solid var(--line);
    padding:10px var(--gutter) 24px}
  .nav-links.open a{padding:14px 0;width:100%;border-bottom:1px solid var(--line)}
  .nav-links.open .submenu{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;
    border:none;padding:0 0 0 16px;min-width:0}
  .nav-links.open .has-sub > a::after{display:none}
  .hero-inner{grid-template-columns:1fr;gap:40px}
  .hero-figure{aspect-ratio:5/4;order:-1}
  .split,.split--narrow{grid-template-columns:1fr;gap:36px}
  .benefits{grid-template-columns:1fr}
}
@media (max-width:560px){
  .svc-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .trust-band .container{gap:22px}
  .trust-item{flex:1 1 40%}
}

/* =========================================================
   Additions — "boutique" inspiration layer
   (star ratings, trust marquee, photo cluster, statements,
    team cards, testimonial cards, awards band)
   ========================================================= */

/* star rating */
.stars{display:inline-flex;gap:3px;line-height:0}
.stars svg{width:17px;height:17px;display:block}
.stars svg path{fill:var(--gold)}
.rating{display:flex;align-items:center;gap:14px;margin-top:32px;flex-wrap:wrap}
.rating .rtext{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}

/* trust marquee */
.marquee{overflow:hidden;border-block:1px solid var(--line);background:var(--ivory);padding-block:20px}
.marquee-track{display:flex;width:max-content;animation:scroll-x 42s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{display:inline-flex;align-items:center;white-space:nowrap;padding-inline:30px;
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--walnut)}
.marquee-item::before{content:"";width:5px;height:5px;background:var(--gold);transform:rotate(45deg);margin-right:30px}
@keyframes scroll-x{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}}

/* editorial photo cluster */
.cluster{display:grid;grid-template-columns:1.12fr .88fr;grid-template-rows:auto auto;gap:16px}
.cluster .ph{border:1px solid var(--line-strong);border-radius:var(--radius-img);overflow:hidden;position:relative;
  background:linear-gradient(150deg,var(--sand),var(--mocha))}
.cluster .ph .ph-label{position:absolute;left:14px;bottom:11px;color:rgba(251,246,238,.92);
  font-size:.62rem;letter-spacing:.16em;text-transform:uppercase}
.cluster .ph1{grid-row:1/3;aspect-ratio:3/4}
.cluster .ph2{aspect-ratio:4/3;background:linear-gradient(150deg,var(--camel),var(--walnut))}
.cluster .ph3{aspect-ratio:4/3;background:linear-gradient(150deg,var(--sand),var(--camel))}

/* big statement */
.statement{text-align:center}
.statement .big{font-family:var(--font-display);font-size:clamp(2rem,5.2vw,4rem);line-height:1.1;
  max-width:20ch;margin-inline:auto;color:var(--espresso)}
.bg-dark .statement .big{color:var(--ivory)}
.statement p{margin:26px auto 0}

/* team */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,38px);margin-top:clamp(40px,5vw,62px)}
.team-card .portrait{aspect-ratio:4/5;border:1px solid var(--line-strong);border-radius:var(--radius-img);
  overflow:hidden;background:linear-gradient(150deg,var(--sand),var(--mocha));position:relative}
.team-card .portrait .ph-label{position:absolute;left:14px;bottom:12px;color:rgba(251,246,238,.92);
  font-size:.64rem;letter-spacing:.16em;text-transform:uppercase}
.team-card h4{margin-top:22px}
.team-card .role{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-top:7px}
.team-card p{font-size:.92rem;color:var(--text-soft);margin-top:13px}

/* testimonial cards */
.tcards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:clamp(40px,5vw,60px)}
.tcard{background:var(--ivory);padding:clamp(26px,3vw,40px);display:flex;flex-direction:column}
.tcard .stars{margin-bottom:20px}
.tcard blockquote{font-family:var(--font-display);font-style:italic;font-size:1.28rem;line-height:1.42;color:var(--espresso)}
.tcard .who{margin-top:auto;padding-top:24px;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted)}

/* awards / credentials band */
.awards{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:clamp(34px,4vw,50px)}
.award{display:flex;align-items:center;gap:13px;border:1px solid var(--line);padding:15px 22px;background:var(--ivory)}
.award .seal{width:34px;height:34px;font-size:.85rem}
.award .a-t{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--walnut)}

@media (max-width:820px){
  .cluster{grid-template-columns:1fr 1fr}
  .cluster .ph1{grid-row:auto;aspect-ratio:4/5}
  .team-grid{grid-template-columns:1fr 1fr}
  .tcards{grid-template-columns:1fr}
}
@media (max-width:560px){
  .cluster{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr}
}

/* =========================================================
   Brand logo, real imagery, white surfaces
   ========================================================= */
.bg-white{background:var(--white)}
.brand-logo-mark{height:40px;width:auto;display:block;flex:none}
.footer-logo{height:64px;width:auto;display:block}
.ph-img{width:100%;height:100%;object-fit:cover;display:block}
.hero-figure .ph-img{object-position:50% 16%}
.provider-photo{aspect-ratio:4/5;border:1px solid var(--line-strong);border-radius:var(--radius-img);
  overflow:hidden;background:var(--cream-2)}
.provider-photo .ph-img{object-position:50% 12%}
/* dark sections get a faint warm separation now that surfaces are white */
.bg-cream2{background:var(--cream-2)}

/* =========================================================
   Polished placeholders — branded motif panels until real
   photos are added (hide "add photo" labels, add watermark)
   ========================================================= */
.ph-label{display:none}
.ph{position:relative}
.ph::after{content:"";position:absolute;inset:0;
  background:url("logo-mark.png") center/46% no-repeat;opacity:.2;mix-blend-mode:soft-light}
.figure .ph-label{display:none}

/* =========================================================
   Single-column treatment for sections with no image
   ========================================================= */
.hero-inner.solo{grid-template-columns:minmax(0,860px);justify-content:center}
.split.solo{grid-template-columns:minmax(0,820px);justify-content:center}

/* framed real photo (natural ratio, no crop) */
.photo-frame{border:1px solid var(--line-strong);border-radius:var(--radius-img);overflow:hidden;
  box-shadow:0 30px 60px -40px rgba(75,46,43,.45)}
.photo-frame img{display:block;width:100%;height:auto}
