/* ============================================================
   Blossom Pelvic Wellness — core stylesheet
   Palette: warm ivory / blush / antique gold / charcoal
   ============================================================ */

:root{
  --ivory:#FCF9F5;
  --ivory-2:#F6F0E9;
  --blush:#F1DDDB;
  --blush-2:#E9C9C6;
  --rose:#C98F8C;
  --gold:#D9B96A;
  --gold-2:#7E5F1D;
  --gold-deep:#8C6A21;
  --char:#33302D;
  --char-soft:#5C5651;
  --line:rgba(51,48,45,.14);
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Jost","Helvetica Neue",Arial,sans-serif;
  --wrap:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--ivory);color:var(--char);
  font-family:var(--serif);font-size:25px;font-weight:500;line-height:1.72;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.narrow{max-width:820px;margin:0 auto;padding:0 32px}

/* ---------- type ---------- */
h1,h2,h3,h4,.ttl{
  font-family:var(--sans);font-weight:400;color:var(--char);
  letter-spacing:.1em;line-height:1.24;margin:0 0 .6em;
}
h1{font-size:clamp(2.352rem,5vw,4.822rem);letter-spacing:.15em}
h2{font-size:clamp(1.999rem,3.2vw,3.058rem)}
h3{font-size:1.434rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
p{margin:0 0 1.15em}
.lede{font-size:1.529rem;font-weight:500;color:var(--char-soft)}
.eyebrow{
  font-family:var(--sans);font-size:0.941rem;font-weight:500;
  letter-spacing:.3em;text-transform:uppercase;color:var(--gold-2);
  margin-bottom:1.4rem;display:block;
}
.eyebrow.on-dark{color:rgba(255,255,255,.85)}
.hero__figure img{mix-blend-mode:normal}
.rule{height:1px;background:var(--line);border:0;margin:0}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;font-family:var(--sans);font-size:0.988rem;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;text-decoration:none;
  padding:17px 34px;border:1px solid var(--char);color:var(--char);
  background:transparent;cursor:pointer;transition:.45s var(--ease);
}
.btn:hover{background:var(--char);color:var(--ivory)}
.btn--solid{background:var(--gold-deep);border-color:var(--gold-deep);color:#fff}
.btn--solid:hover{background:var(--char);border-color:var(--char)}
.btn--light{border-color:rgba(51,48,45,.45);color:var(--char);background:rgba(255,255,255,.5)}
.btn--light:hover{background:var(--char);color:var(--ivory);border-color:var(--char)}
.btn--sm{padding:13px 26px;font-size:0.894rem}

/* ---------- header ---------- */
.site-head{
  position:fixed;inset:0 0 auto 0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 34px;transition:.35s var(--ease);
  /* always visible, on every page and at every scroll position */
  background:rgba(252,249,245,.97);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--line);
}
.site-head.solid{background:rgba(252,249,245,.99);box-shadow:0 1px 0 var(--line),0 8px 26px rgba(51,48,45,.07)}
.brand{
  display:flex;align-items:center;gap:14px;
  font-family:var(--sans);font-weight:400;letter-spacing:.3em;
  text-transform:uppercase;font-size:1.176rem;text-decoration:none;color:var(--char);
}
.brand__mark{width:auto;height:28px;flex:none;transition:.35s var(--ease)}
.brand__txt{display:block;line-height:1.15}
.brand small{display:block;font-size:0.706rem;font-weight:500;letter-spacing:.26em;color:var(--gold-2);margin-top:5px}


.nav-desk{display:flex;gap:34px;align-items:center}
.nav-desk a{
  font-family:var(--sans);font-size:0.964rem;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;text-decoration:none;color:var(--char);opacity:.92;transition:.3s;
}
.nav-desk a:hover,.nav-desk a[aria-current="page"]{opacity:1;color:var(--gold-deep)}


.burger{background:none;border:0;padding:8px;cursor:pointer;display:none;flex-direction:column;gap:6px;width:38px}
.burger span{display:block;height:1px;background:var(--char);transition:.35s var(--ease)}
.burger span:last-child{width:60%;margin-left:auto}

/* mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:70;background:var(--ivory);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;
  opacity:0;pointer-events:none;transition:.5s var(--ease);
}
.drawer.open{opacity:1;pointer-events:auto}
.drawer a{
  font-family:var(--sans);font-weight:400;font-size:1.352rem;letter-spacing:.22em;
  text-transform:uppercase;text-decoration:none;padding:12px;color:var(--char);
}
.drawer .close{position:absolute;top:26px;right:34px;background:none;border:0;font-size:2.352rem;cursor:pointer;color:var(--char);font-family:var(--sans);font-weight:200}

/* ---------- social rail ---------- */
.rail{
  position:fixed;left:26px;top:50%;transform:translateY(-50%);z-index:55;
  display:flex;flex-direction:column;gap:22px;
}
.rail a{opacity:.7;transition:.3s}
.rail a:hover{opacity:1;transform:translateX(2px)}
.rail svg{width:16px;height:16px;fill:var(--char)}


/* hero logo lockup */
.hero__logo{width:auto;height:clamp(60px,7vw,88px);margin:0 0 26px}
.banner .hero__logo{margin-bottom:18px}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:flex-end;
  padding:100px 0 12vh;overflow:hidden;background:var(--blush);
}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover}
.hero__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(252,249,245,.92) 0%,rgba(252,249,245,.72) 34%,rgba(252,249,245,.18) 66%,rgba(252,249,245,0) 100%);
}
.hero__inner{position:relative;z-index:2;display:flex;align-items:flex-end;gap:40px;width:100%}
.hero__copy{max-width:660px}
.hero__copy h1{color:var(--char)}
.hero__copy p{color:var(--char-soft);font-size:1.411rem;max-width:540px}
.hero__cta{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px}
.hero__figure{margin-left:auto;align-self:flex-end;flex:0 0 auto}
.hero__figure img{height:clamp(380px,60vh,640px);width:auto;filter:drop-shadow(-12px 16px 34px rgba(90,70,66,.18))}

/* vertical scroll marker (echo of reference design) */
.scrollmark{
  position:absolute;left:34px;bottom:16vh;z-index:3;
  border:1px solid rgba(51,48,45,.3);padding:26px 12px;
  writing-mode:vertical-rl;text-orientation:upright;
  font-family:var(--sans);font-size:0.706rem;letter-spacing:.3em;color:var(--char-soft);
  text-transform:uppercase;opacity:.9;
}
.hero__hair{position:absolute;left:34px;right:34px;bottom:5vh;height:1px;background:rgba(51,48,45,.18);z-index:3}

/* page banner (interior pages) */
.banner{
  position:relative;min-height:56vh;display:flex;align-items:flex-end;
  padding:100px 0 8vh;overflow:hidden;background:var(--blush);
}
.banner__bg{position:absolute;inset:0}
.banner__bg img{width:100%;height:100%;object-fit:cover}
.banner__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(252,249,245,.93) 0%,rgba(252,249,245,.7) 40%,rgba(252,249,245,.22) 100%)}
.banner .wrap{position:relative;z-index:2}
.banner h1{color:var(--char);margin-bottom:.2em}
.banner p{color:var(--char-soft);max-width:600px}

/* ---------- sections ---------- */
section{position:relative}
.sec{padding:clamp(70px,10vw,130px) 0}
.sec--blush{background:var(--blush)}
.sec--ivory2{background:var(--ivory-2)}
.sec--gold{background:var(--gold-deep);color:#fff}
.sec--gold h2,.sec--gold h3{color:#fff}
.sec--gold p{color:rgba(255,255,255,.92)}
/* light-on-gold: small caps must not sit dark-gold on gold */
.sec--gold .eyebrow,.cred .eyebrow{color:rgba(255,255,255,.92)}
.sec--gold .lede{color:rgba(255,255,255,.92)}
.sec--gold a{color:#fff}

.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);align-items:center}
.split--narrow{grid-template-columns:.9fr 1.1fr}
.split__media{position:relative}

/* portrait treatments */
.portrait-arch{
  border-radius:50% 50% 12px 12px/34% 34% 8px 8px;overflow:hidden;
  background:linear-gradient(170deg,var(--blush),var(--ivory-2));
}
.portrait-arch img{width:100%;mix-blend-mode:normal}
.portrait-circle{
  width:min(420px,100%);aspect-ratio:1;border-radius:50%;overflow:hidden;
  background:radial-gradient(circle at 50% 34%,var(--blush) 0%,var(--ivory-2) 74%);
  display:flex;align-items:flex-end;justify-content:center;
}
.portrait-circle img{width:104%;transform:translateY(2%)}
.portrait-free img{filter:drop-shadow(-10px 14px 32px rgba(60,40,40,.2))}
.portrait-cap{
  font-family:var(--sans);font-size:0.729rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-2);margin-top:18px;
}

/* floating petal accents */
.petal{position:absolute;pointer-events:none;opacity:.5}

/* ---------- condition / feature grids ---------- */
.grid{display:grid;gap:2px;background:var(--line)}
.grid--5{grid-template-columns:repeat(5,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.cell{background:var(--ivory);padding:34px 26px;transition:.4s var(--ease)}
.cell:hover{background:var(--blush)}
.cell .ico{width:34px;height:34px;margin-bottom:16px;stroke:var(--gold-deep);fill:none;stroke-width:1.1}
.cell h4{font-family:var(--sans);font-weight:300;font-size:0.964rem;letter-spacing:.16em;text-transform:uppercase;margin:0}
.cell p{font-size:1.117rem;color:var(--char-soft);margin:.6em 0 0}

.ticks{list-style:none;padding:0;margin:0;columns:2;column-gap:48px}
.ticks li{position:relative;padding-left:32px;margin-bottom:14px;break-inside:avoid}
.ticks li::before{
  content:"";position:absolute;left:0;top:.62em;width:13px;height:7px;
  border-left:1px solid var(--gold-deep);border-bottom:1px solid var(--gold-deep);
  transform:rotate(-45deg);
}
.sec--gold .ticks li::before{border-color:rgba(255,255,255,.85)}

/* steps */
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;background:var(--line)}
.step{background:var(--ivory);padding:40px 24px;counter-increment:s}
.step::before{
  content:"0" counter(s);display:block;font-family:var(--sans);font-weight:200;
  font-size:2.47rem;letter-spacing:.06em;color:var(--blush-2);margin-bottom:14px;
}
.step h4{font-family:var(--sans);font-weight:300;font-size:0.941rem;letter-spacing:.16em;text-transform:uppercase;margin:0 0 .5em}
.step p{font-size:1.117rem;color:var(--char-soft);margin:0}

/* service list */
.svc{border-top:1px solid var(--line);padding:36px 0;display:grid;grid-template-columns:.6fr 1.4fr;gap:40px}
.svc:last-child{border-bottom:1px solid var(--line)}
.svc h3{margin:0}
.svc p{margin:0;color:var(--char-soft)}

/* stats / credentials */
.creds{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:rgba(255,255,255,.22)}
.cred{background:var(--gold-deep);padding:38px 22px;text-align:center}
.cred b{display:block;font-family:var(--sans);font-weight:400;font-size:2.822rem;letter-spacing:.04em;color:#fff}
.cred span{font-family:var(--sans);font-size:0.87rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.92)}

/* faq */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none;cursor:pointer;padding:26px 46px 26px 0;position:relative;
  font-family:var(--sans);font-weight:300;font-size:1.176rem;letter-spacing:.08em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
  font-family:var(--sans);font-weight:400;font-size:1.764rem;color:var(--gold-2);transition:.3s;
}
.faq details[open] summary::after{content:"–"}
.faq .ans{padding:0 60px 28px 0;color:var(--char-soft)}

/* quote */
.quote{text-align:center;max-width:820px;margin:0 auto}
.quote p{font-size:clamp(1.588rem,2.6vw,2.352rem);font-style:italic;line-height:1.5;color:var(--char)}
.quote cite{
  display:block;font-style:normal;font-family:var(--sans);font-size:0.776rem;
  letter-spacing:.3em;text-transform:uppercase;color:var(--gold-2);margin-top:22px;
}

/* cta band */
.cta-band{position:relative;padding:clamp(80px,12vw,150px) 0;text-align:center;overflow:hidden;background:var(--blush)}
.cta-band__bg{position:absolute;inset:0}
.cta-band__bg img{width:100%;height:100%;object-fit:cover;opacity:.55}
.cta-band .wrap{position:relative;z-index:2}
.cta-band h2{max-width:760px;margin-inline:auto}

/* forms */
.form{display:grid;gap:22px;grid-template-columns:1fr 1fr}
.field{display:flex;flex-direction:column;gap:8px}
.field--full{grid-column:1/-1}
.field label{font-family:var(--sans);font-size:0.918rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--char)}
.field input,.field select,.field textarea{
  font-family:var(--serif);font-size:1.199rem;color:var(--char);
  background:transparent;border:0;border-bottom:1px solid var(--line);
  padding:10px 2px;transition:.3s;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold-deep);box-shadow:0 0 0 3px rgba(140,106,33,.16)}
.field textarea{min-height:130px;resize:vertical}
.checks{display:grid;gap:10px}
.checks label{display:flex;gap:12px;align-items:flex-start;font-family:var(--serif);font-size:1.176rem;letter-spacing:0;text-transform:none;color:var(--char)}
.checks input{width:16px;height:16px;margin-top:6px;accent-color:var(--gold-deep)}
.form-note{font-size:1.14rem;color:var(--char-soft);grid-column:1/-1}
.tabs{display:flex;gap:2px;background:var(--line);margin-bottom:44px;flex-wrap:wrap}
.tabs button{
  flex:1;min-width:170px;background:var(--ivory);border:0;padding:18px 14px;cursor:pointer;
  font-family:var(--sans);font-size:0.776rem;letter-spacing:.22em;text-transform:uppercase;color:var(--char-soft);transition:.3s;
}
.tabs button.active{background:var(--gold-deep);color:#fff}
.panel{display:none}
.panel.active{display:block}

/* blog */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line)}
.post{background:var(--ivory);padding:38px 30px;display:flex;flex-direction:column;gap:12px;transition:.4s var(--ease)}
.post:hover{background:var(--blush)}
.post .tag{font-family:var(--sans);font-size:0.846rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-2)}
.post h3{text-transform:none;letter-spacing:.06em;font-size:1.529rem;margin:0}
.post p{font-size:1.153rem;color:var(--char-soft);margin:0}

/* footer */
.foot{background:var(--char);color:rgba(255,255,255,.9);padding:80px 0 34px;font-size:1.212rem}
.foot a{color:rgba(255,255,255,.9);text-decoration:none;transition:.3s}
.foot a:hover{color:var(--gold)}
.foot__top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:44px;padding-bottom:52px}
.foot h4{font-family:var(--sans);font-weight:500;font-size:0.918rem;letter-spacing:.2em;text-transform:uppercase;color:#fff;margin:0 0 20px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:11px;font-size:1.153rem}
.foot__brand{font-family:var(--sans);font-weight:400;letter-spacing:.3em;text-transform:uppercase;font-size:1.176rem;color:#fff;margin-bottom:16px}
.foot__bot{border-top:1px solid rgba(255,255,255,.14);padding-top:26px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:1.035rem;color:rgba(255,255,255,.72)}
.disclaimer{font-size:1.035rem;color:rgba(255,255,255,.68);max-width:760px;margin-top:14px}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(26px);transition:1s var(--ease)}
.rv.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media(max-width:1080px){
  .grid--5{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .creds{grid-template-columns:repeat(2,1fr)}
  .posts{grid-template-columns:repeat(2,1fr)}
  .foot__top{grid-template-columns:1fr 1fr}
  .rail{display:none}
}
@media(max-width:900px){
  .nav-desk{display:none}
  .burger{display:flex}
  .hero__figure{display:none}
}
@media(max-width:760px){
  body{font-size:20px}
  h1{font-size:clamp(1.999rem,7.4vw,2.705rem);letter-spacing:.1em}
  .hero__copy p{font-size:1.199rem}
  .lede{font-size:1.27rem}
  .hero{min-height:88vh;padding-bottom:10vh}
  .wrap,.narrow{padding:0 22px}
  .split,.split--narrow{grid-template-columns:1fr}
  .grid--5,.grid--3,.grid--2{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr}
  .posts{grid-template-columns:1fr}
  .ticks{columns:1}
  .svc{grid-template-columns:1fr;gap:14px}
  .form{grid-template-columns:1fr}
  .scrollmark{display:none}
  .site-head{padding:12px 20px}
  .brand{gap:10px;font-size:0.964rem;letter-spacing:.24em}
  .brand__mark{height:22px}
  .brand small{font-size:0.635rem}
  .hero{padding-bottom:14vh}
  .hero__logo{height:clamp(52px,13vw,70px)}
}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ---------- falling petals ---------- */
.petal-canvas{
  position:absolute;inset:0;z-index:1;pointer-events:none;
}
.hero .wrap,.hero .scrollmark,.hero__hair{z-index:3}

/* ---------- in-page jump links ---------- */
[id]{scroll-margin-top:110px}
.jump{
  display:flex;gap:clamp(18px,3vw,36px);flex-wrap:wrap;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;
}
.jump a{
  font-family:var(--sans);font-size:0.918rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  text-decoration:none;color:var(--char-soft);transition:.3s var(--ease);
}
.jump a:hover{color:var(--gold-deep)}
