
:root{
  --paper:#f5ead9;
  --paper2:#fff9ef;
  --rose:#9e5f5b;
  --soft:#d8ada3;
  --ink:#1b1713;
  --gold:#987141;
  --line:#b89466;
  --charcoal:#27221f;
  --display:"Italiana",Georgia,serif;
  --serif:"Cormorant Garamond",Georgia,serif;
  --script:"Shadows Into Light",cursive;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:
    radial-gradient(circle at 15% 0%,rgba(255,255,255,.72),transparent 28%),
    linear-gradient(#faf2e6,#edddc7);
  color:var(--ink);
  font-family:var(--serif);
  line-height:1.6;
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.08;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
}
a{color:inherit}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;background:#000;color:#fff;padding:10px;z-index:100}

.approved-screen{position:relative;width:100%;line-height:0;background:var(--paper)}
.approved-screen>img{display:block;width:100%;height:auto}
.hotspots{position:absolute;inset:0;pointer-events:none}
.spot{position:absolute;display:block;pointer-events:auto}
.spot:focus{outline:3px solid rgba(158,95,91,.7);outline-offset:2px}
.nav-home{left:36.9%;top:7.6%;width:5.1%;height:4.2%}
.nav-about{left:43.2%;top:7.6%;width:5.2%;height:4.2%}
.nav-services{left:49.6%;top:7.6%;width:6%;height:4.2%}
.nav-process{left:57.4%;top:7.6%;width:8.5%;height:4.2%}
.nav-faq{left:67.3%;top:7.6%;width:4.1%;height:4.2%}
.nav-contact{left:72.5%;top:7.6%;width:6.2%;height:4.2%}
.header-cta{left:81.6%;top:6.5%;width:10.7%;height:5.5%}
.hero-cta{left:56.3%;top:48.4%;width:15.8%;height:5.2%}
.text-cta{left:55.1%;top:53.7%;width:18.4%;height:5.7%}

.mobile-bar{display:none}

main{background:linear-gradient(#faf2e6,#edddc7)}
.editorial{
  width:min(1120px,calc(100% - 36px));
  margin:auto;
  padding:95px 0;
}
.about{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:56px;
  align-items:center;
}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--rose);font-weight:700}
.blush{color:var(--soft)}
h1,h2{font-family:var(--display);font-weight:400;line-height:1.05}
h1{font-size:clamp(3rem,5vw,5.2rem)}
h2{font-size:clamp(2.6rem,4.6vw,4.8rem)}
.about p{font-size:1.18rem}
.paper-note{
  background:var(--paper2);
  border:1px solid var(--gold);
  padding:36px;
  box-shadow:0 18px 38px rgba(50,32,20,.11);
}
.script{font-family:var(--script);font-size:1.75rem;color:var(--rose)}
.small-rule{text-align:center;color:var(--gold);margin:22px 0}
.mini{font-size:.95rem}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:.9rem 1.3rem;
  text-decoration:none;
  border:1px solid var(--rose);
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.rose{background:var(--rose);color:#fff}
.dark{background:var(--charcoal);border-color:var(--charcoal);color:#fff}

.dark-panel{background:var(--charcoal);color:#fff;padding:95px 0}
.section-wrap{width:min(1160px,calc(100% - 36px));margin:auto}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.service-grid article{min-height:235px;border:1px solid rgba(216,173,163,.45);padding:30px}
.service-grid span{font-family:var(--display);font-size:1.45rem;color:var(--soft)}
.service-grid h3{font-family:var(--display);font-size:1.65rem;font-weight:400}
.not-therapy{margin:30px auto 0;padding:20px 24px;max-width:900px;background:var(--soft);color:var(--ink);text-align:center}

.process{display:grid;grid-template-columns:.75fr 1.25fr;gap:65px}
.timeline{position:relative}
.timeline:before{content:"";position:absolute;left:25px;top:28px;bottom:28px;width:1px;background:var(--line)}
.timeline article{display:grid;grid-template-columns:52px 1fr;gap:24px;margin-bottom:34px;position:relative}
.timeline b{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--rose);color:white;z-index:1}
.timeline h3{font-family:var(--display);font-weight:400;font-size:1.65rem;margin:0}
.timeline p{margin:5px 0}

.library{padding:95px 0;background:var(--paper)}
.library-intro{max-width:760px;font-size:1.14rem}
.library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:920px;margin:42px auto 0}
.library-grid article{
  min-height:310px;
  background:var(--paper2);
  border:1px solid var(--gold);
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  text-align:center;
  box-shadow:0 14px 30px rgba(40,25,15,.1)
}
.library-grid small{letter-spacing:.14em}
.library-grid h3{font-family:var(--display);font-size:1.7rem;font-weight:400}
.library-grid p{font-family:var(--script);font-size:1.25rem;color:var(--rose)}

.faq{display:grid;grid-template-columns:.75fr 1.25fr;gap:65px}
.faq-list details{border-top:1px solid var(--line);padding:19px 0}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:700;font-size:1.16rem}

.contact{
  padding:90px max(5vw,36px);
  background:var(--rose);
  color:#fff;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:65px;
}
.contact-links{display:grid;gap:9px;margin-top:24px}
.contact-links a{text-decoration:none}
.discount{margin-top:28px;font-family:var(--script);font-size:1.4rem;color:#ffe9e2}
form{
  background:var(--paper2);
  color:var(--ink);
  padding:38px;
  display:grid;
  gap:16px;
  box-shadow:0 25px 55px rgba(74,40,40,.2);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:grid;gap:6px;font-weight:600}
input,textarea,select{width:100%;padding:13px 14px;border:1px solid var(--line);background:#fff;font:inherit}
fieldset{border:1px solid var(--line);display:flex;gap:18px;flex-wrap:wrap}
.choice,.consent{display:flex;grid-template-columns:auto 1fr;align-items:flex-start;gap:8px;font-weight:400}
.choice input,.consent input{width:auto;margin-top:5px}
.form-note{font-size:.88rem}

footer{background:var(--ink);color:#fff;text-align:center;padding:55px 24px 28px}
.footer-brand strong{display:block;font-family:var(--display);font-size:2rem;letter-spacing:.16em}
.footer-brand span{display:block;font-family:var(--script);font-size:1.1rem;color:var(--soft)}
.footer-links{display:flex;justify-content:center;gap:21px;flex-wrap:wrap;margin:25px 0}
.footer-links a{text-decoration:none}
.footer-links.legal{opacity:.76;font-size:.92rem}

@media(max-width:900px){
  .approved-screen>img{width:150%;max-width:none;transform:translateX(-16.6%)}
  .hotspots{display:none}
  .mobile-bar{
    display:flex;
    position:sticky;
    top:0;
    z-index:50;
    align-items:center;
    justify-content:space-between;
    padding:14px 18px;
    background:rgba(255,249,239,.96);
    border-bottom:1px solid var(--line);
  }
  .mobile-logo{text-decoration:none;font-family:var(--display);letter-spacing:.11em}
  .mobile-logo small{display:block;font-family:var(--script);color:var(--rose);letter-spacing:0}
  .mobile-bar button{border:1px solid var(--ink);background:transparent;padding:.5rem .75rem;font:inherit}
  #mobile-menu{
    display:none;
    position:absolute;
    right:16px;
    top:68px;
    min-width:210px;
    padding:18px;
    background:var(--paper2);
    border:1px solid var(--gold);
    flex-direction:column;
    gap:12px;
  }
  #mobile-menu.open{display:flex}
  #mobile-menu a{text-decoration:none}
  .about,.process,.faq,.contact{grid-template-columns:1fr}
  .service-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .approved-screen>img{width:210%;transform:translateX(-28%)}
  .editorial{padding:70px 0}
  .service-grid,.library-grid{grid-template-columns:1fr}
  .contact{padding:70px 20px}
  form{padding:27px 20px}
  .form-row{grid-template-columns:1fr}
  .button{width:100%}
}
