/* CamioloProjects typography reference: Inter for content and headings, Fraunces only where explicitly retained. */
:root{--font-ui:"Inter",Arial,sans-serif;--font-accent:"Fraunces",Georgia,serif;}
body,button,input,textarea,select{font-family:var(--font-ui);}
h1,h2,h3{font-family:var(--font-ui);font-weight:600;line-height:1.16;letter-spacing:-.018em;text-wrap:balance;}
.brand{font-family:var(--font-accent);}
.eyebrow,.btn,.card .price .dur{font-family:var(--font-ui);}

/* Hero: original CorpusVitaeFit logo with a balanced text-and-photo layout. */
.hero{background:linear-gradient(118deg,rgba(245,238,224,.98),rgba(239,229,211,.82));}
.hero .wrap{position:relative;z-index:2;max-width:1060px;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,330px);gap:clamp(34px,6vw,76px);align-items:center;}
.hero-copy{min-width:0;max-width:620px;}
.hero-logo{display:block;width:120px;height:120px;object-fit:contain;margin:0 0 14px;filter:none;}
.hero-practice{position:relative;right:auto;top:auto;width:100%;margin:0;z-index:2;}
.hero-practice img{width:100%;height:auto;display:block;aspect-ratio:3/4;object-fit:contain;background:rgba(255,253,248,.52);border-radius:20px;box-shadow:0 22px 44px rgba(31,66,51,.22);border:5px solid rgba(255,253,248,.85);}
.hero-practice figcaption{text-align:center;}
.hero h1{font-size:clamp(2.35rem,5.3vw,4rem);max-width:650px;}
.hero p.lead{font-size:clamp(1.05rem,1vw + .8rem,1.2rem);line-height:1.62;}

/* Readable treatment cards with stable heading and price proportions. */
.card{padding:25px 24px;min-height:218px;}
.card h3{font-family:var(--font-ui);font-size:clamp(1.08rem,.5vw + .96rem,1.28rem);font-weight:600;line-height:1.25;letter-spacing:-.012em;overflow-wrap:normal;hyphens:none;margin:0;}
.card .desc{font-size:.94rem;line-height:1.62;margin:10px 0 20px;}
.card .price{gap:16px;padding-top:15px;margin-top:auto;}
.card .price .dur{font-size:.73rem;font-weight:700;letter-spacing:.095em;line-height:1.35;}
.card .price .chf{font-family:var(--font-ui);font-size:1.1rem;font-weight:700;letter-spacing:-.01em;white-space:nowrap;}

@media(max-width:760px){
  .hero .wrap{grid-template-columns:1fr;gap:28px;}
  .hero-copy{max-width:none;}
  .hero-practice{width:min(340px,100%);margin:0 auto;}
  .hero-logo{width:104px;height:104px;margin-bottom:12px;}
  .card{min-height:0;}
}
@media(max-width:520px){
  .hero-logo{width:92px;height:92px;}
  .card{padding:22px 20px;}
  .card .price{align-items:flex-start;flex-direction:column;gap:5px;}
}
