/* ============================================================
   CAM — homepage compositions. Depends on cam.css.
   ============================================================ */

/* ---- Hero: full-screen image (video-ready), text overlaid -- */
.hero--full{position:relative;min-height:100svh;display:flex;align-items:center;
  border-bottom:1px solid var(--rule);overflow:hidden}
.hero__bg{position:absolute;inset:0}
.hero__bg img,.hero__bg video{width:100%;height:100%;object-fit:cover;object-position:68% 30%;display:block}
.hero__scrim{position:absolute;inset:0;
  background:linear-gradient(78deg,rgba(20,18,17,.82) 0%,rgba(20,18,17,.55) 40%,rgba(20,18,17,.06) 72%),
             linear-gradient(0deg,rgba(20,18,17,.45) 0%,rgba(20,18,17,0) 40%)}
.hero__inner{position:relative;z-index:2;max-width:var(--maxw);width:100%;margin-inline:auto;
  padding:7rem var(--gutter) 4rem}
.hero__inner .eyebrow{color:var(--blush)}
.hero__inner .display{color:var(--cream);margin-top:var(--s-2);max-width:7.5em}
.hero__inner .display em{color:var(--blush)}

.hero__lead{margin-top:var(--s-3)!important;max-width:34rem;color:var(--cream-70)}
.hero__cta{margin-top:var(--s-4)!important}
.btn--light{background:var(--cream);color:var(--charcoal)}
.btn--light:hover{background:var(--blush);color:var(--charcoal)}
.btn--glass{background:transparent;color:var(--cream);border:1px solid rgba(250,247,242,.55)}
.btn--glass:hover{border-color:var(--cream);background:rgba(250,247,242,.08)}
.hero__caption{position:absolute;right:0;bottom:0;z-index:2;padding:.9rem 1.25rem;
  background:rgba(20,18,17,.78);color:var(--cream-45);border-radius:var(--r-md) 0 0 0;
  font-size:.625rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;line-height:1}

/* ---- Statement --------------------------------------------- */
.statement{text-align:center;max-width:52rem;margin-inline:auto}
.statement .h2{margin-block:var(--s-3)}
.statement .lead{margin-inline:auto}

/* ---- Decade tiles ------------------------------------------ */
.decades{display:grid;grid-template-columns:repeat(4,1fr);margin-top:var(--s-5);
  border-top:1px solid var(--rule-dark)}
.decade{
  display:flex;flex-direction:column;gap:var(--s-2);
  padding:var(--s-4) var(--s-3) var(--s-4) 0;
  border-right:1px solid var(--rule-dark);
  transition:background .35s var(--ease),padding-left .35s var(--ease);
}
.decade:last-child{border-right:0}
.decade:hover{background:rgba(250,247,242,.05);padding-left:var(--s-2)}
.decade__num{font-family:var(--serif);font-size:var(--fs-numeral);font-weight:300;line-height:.95;
  letter-spacing:-.03em}
.decade__key{font-size:var(--fs-eyebrow);font-weight:500;letter-spacing:.26em;text-transform:uppercase;
  color:var(--blush)}
.decade__copy{font-size:var(--fs-sm);color:var(--cream-70);line-height:1.7;flex:1}
.decade__go{font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--cream-45)}
.decade:hover .decade__go{color:var(--cream)}

/* ---- Treatment category cards ------------------------------ */
.cats{margin-top:var(--s-5)}
.cat{display:flex;flex-direction:column}
.cat .media{margin-bottom:var(--s-3)}
.cat .media img{transition:transform 1.1s var(--ease)}
.cat:hover .media img{transform:scale(1.035)}
.cat__title{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-2);
  padding-bottom:var(--s-2);border-bottom:1px solid var(--rule)}
.cat__idx{font-size:var(--fs-xs);letter-spacing:.18em;color:var(--ink-40)}
.cat__list{margin-top:var(--s-2);flex:1}
.cat__list li{font-size:var(--fs-sm);color:var(--ink-70);padding-block:.42rem;
  border-bottom:1px solid rgba(184,176,166,.3)}
.cat__foot{margin-top:var(--s-3)}

/* ---- Providers --------------------------------------------- */
.lead-provider{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,5rem);align-items:center;margin-top:var(--s-5)}
.lead-provider .media{background:var(--charcoal)}
.lead-provider__body>*+*{margin-top:var(--s-3)}
.lead-provider__body .body{max-width:none}
.provider-quote{font-family:var(--serif);font-size:var(--fs-h3);font-weight:300;font-style:italic;
  line-height:1.35;letter-spacing:-.005em;color:var(--cream);max-width:32rem}
.team{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s-3);margin-top:var(--s-6);
  padding-top:var(--s-4);border-top:1px solid var(--rule-dark)}
.member .media{background:var(--charcoal);margin-bottom:var(--s-2)}
.member__name{font-family:var(--serif);font-size:1.3rem;font-weight:400;line-height:1.2}
.member__role{font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--cream-45);
  margin-top:.4rem}
.member .plate{aspect-ratio:4/5;background:transparent;border:1px solid var(--rule-dark);
  align-items:center;justify-content:center;flex-direction:column;gap:.75rem;margin-bottom:var(--s-2)}
.member .plate::after{color:var(--cream-45);letter-spacing:.2em;text-align:center}
.member .plate .initial{font-family:var(--serif);font-size:3rem;font-weight:300;color:var(--cream-45);
  line-height:1}

/* ---- Reviews ----------------------------------------------- */
.reviews{margin-top:var(--s-5)}
.review{border:1px solid var(--rule);background:var(--white);padding:var(--s-4);
  min-height:15rem;display:flex;flex-direction:column;justify-content:space-between}
.review__glyph{font-family:var(--serif);font-size:3.25rem;line-height:.7;color:var(--taupe)}
.review__slot{font-size:var(--fs-sm);color:var(--ink-55);line-height:1.7;margin-block:var(--s-3)}
.review__meta{font-size:.625rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-40);
  padding-top:var(--s-2);border-top:1px solid var(--rule)}

/* ---- Financing --------------------------------------------- */
.finance{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-4);align-items:center;
  padding-block:var(--s-4);border-block:1px solid var(--rule)}
.finance .small{font-size:var(--fs-body);color:var(--ink-70)}
.finance__body>*+*{margin-top:var(--s-2)}

/* ---- Journal ----------------------------------------------- */
.posts{margin-top:var(--s-5)}
.post{display:flex;flex-direction:column;gap:var(--s-2);padding-top:var(--s-3);
  border-top:1px solid var(--charcoal);transition:opacity .3s var(--ease)}
.post__tag{font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-40)}
.post__title{font-family:var(--serif);font-size:var(--fs-h3);font-weight:400;line-height:1.22;
  letter-spacing:-.005em;max-width:22ch}
.post:hover .post__title{font-style:italic}
.post__read{font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-40);
  margin-top:auto;padding-top:var(--s-2)}

/* ---- Closing CTA ------------------------------------------- */
.close-cta{text-align:center;max-width:44rem;margin-inline:auto}
.close-cta>*+*{margin-top:var(--s-3)}
.close-cta .btn-row{justify-content:center;margin-top:var(--s-4)!important}
.close-cta__tel{margin-top:var(--s-4)!important;font-size:var(--fs-sm);color:var(--cream-45)}
.close-cta__tel a{border-bottom:1px solid var(--cream-45);padding-bottom:2px}

/* ---- Responsive -------------------------------------------- */
@media (max-width:1024px){
        .hero__lead{max-width:none}
  .decades{grid-template-columns:repeat(2,1fr)}
  .decade{border-bottom:1px solid var(--rule-dark);padding-right:var(--s-3)}
  .decade:nth-child(2n){border-right:0}
  .team{grid-template-columns:repeat(3,1fr);gap:var(--s-4) var(--s-3)}
  .lead-provider{grid-template-columns:1fr;gap:var(--s-4)}
  .lead-provider .media{max-width:26rem}
}
@media (max-width:760px){
    .finance{grid-template-columns:1fr}
  .team{grid-template-columns:repeat(2,1fr)}
  .decades{grid-template-columns:1fr}
  .decade{border-right:0;padding-right:0}
  .review{min-height:0}
}

/* Jasmine feature portrait placeholder — fills the 4x5 media frame on the dark band */
.lead-provider .plate--tall{width:100%;height:100%;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;
 background:transparent;border:1px solid var(--rule-dark);position:relative}
.lead-provider .plate--tall .initial{font-family:var(--serif);font-size:64px;color:var(--taupe);font-style:italic}
.lead-provider .plate--tall:after{content:attr(data-label);position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
 font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe);white-space:nowrap}


/* ---- Rounded corners on homepage components ---- */
.cat .media{border-radius:var(--r-lg)}
.review-card,.review{border-radius:var(--r-md)}
.journal-card{border-radius:var(--r-md)}
.member .media,.member .plate{border-radius:var(--r-md)}
.lead-provider .media,.lead-provider .plate--tall{border-radius:var(--r-lg)}
.fin,.financing{border-radius:var(--r-md)}

/* decade tiles: inner tiles get left padding; first stays on the gutter */
.decade{padding-left:var(--s-3)}
.decade:first-child{padding-left:0}
/* hero credit chip: discreet on mobile */
@media (max-width:760px){.hero__caption{font-size:.55rem;padding:.55rem .8rem;letter-spacing:.12em;max-width:72%}}
