:root{
  --cream:#FBF7EF;
  --cream-deep:#F3ECDD;
  --forest:#2E4A3A;
  --forest-deep:#243B2E;
  --sage:#8FAE94;
  --sage-soft:#DCE7DD;
  --terracotta:#C46F4F;
  --terracotta-soft:#E8C9BB;
  --charcoal:#3A3A36;
  --pink:#EFC9C2;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Laila',serif;
  background:var(--cream);
  color:var(--charcoal);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}

/* ---------- top bar ---------- */
.topbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 6vw;background:var(--cream);
}
.wordmark{
  font-family:'Chewy',cursive;font-size:1.6rem;color:var(--forest);
  letter-spacing:.5px;text-decoration:none;
}
.wordmark span{color:var(--terracotta);}
.topnav{display:flex;gap:32px;align-items:center;}
.topnav a{text-decoration:none;color:var(--charcoal);font-size:.95rem;font-weight:500;}
.topnav a:hover,.topnav a.active{color:var(--terracotta);}
.nav-cta{
  background:var(--forest);color:var(--cream)!important;
  padding:10px 22px;border-radius:999px;font-weight:600;
  transition:background .2s ease;
}
.nav-cta:hover{background:var(--forest-deep);}
@media(max-width:860px){.topnav a:not(.nav-cta){display:none;}}

/* ---------- shared bits ---------- */
.eyebrow{
  display:inline-block;font-size:.85rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--terracotta);background:var(--terracotta-soft);
  padding:6px 16px;border-radius:999px;margin-bottom:26px;
}
.btn-primary{
  display:inline-block;
  background:var(--terracotta);color:#fff;text-decoration:none;
  font-weight:600;font-size:1.02rem;
  padding:16px 34px;border-radius:999px;
  box-shadow:0 8px 22px rgba(196,111,79,.35);
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(196,111,79,.42);}
.btn-forest{
  display:inline-block;
  background:var(--forest);color:#fff;text-decoration:none;
  font-weight:600;font-size:1rem;
  padding:14px 30px;border-radius:999px;
  transition:background .2s ease;
}
.btn-forest:hover{background:var(--forest-deep);}
.btn-secondary{
  color:var(--forest);font-weight:600;text-decoration:none;
  border-bottom:2px solid var(--sage);padding-bottom:2px;
}
.btn-secondary:hover{color:var(--terracotta);border-color:var(--terracotta);}
.section{padding:10vh 6vw;}
.section-inner{max-width:1100px;margin:0 auto;}
.section-title{
  font-family:'Caprasimo',serif;font-weight:400;
  font-size:clamp(1.9rem,3.4vw,2.8rem);
  line-height:1.2;color:var(--forest);margin-bottom:18px;
}
.section-kicker{
  font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--terracotta);font-weight:600;margin-bottom:14px;display:block;
}
.center{text-align:center;}

/* ---------- hero ---------- */
.hero{
  display:grid;grid-template-columns:1.05fr .95fr;gap:5vw;
  align-items:center;padding:5vh 6vw 10vh;
  position:relative;overflow:hidden;
}
.hero::before{
  content:"";position:absolute;right:-180px;top:-180px;
  width:520px;height:520px;background:var(--sage-soft);
  border-radius:50%;z-index:0;
}
.hero-text{position:relative;z-index:2;}
h1{
  font-family:'Caprasimo',serif;font-weight:400;
  font-size:clamp(2.3rem,4.4vw,3.6rem);
  line-height:1.13;color:var(--forest);margin-bottom:24px;
}
h1 em{font-style:normal;color:var(--terracotta);position:relative;white-space:nowrap;}
h1 em::after{
  content:"";position:absolute;left:0;bottom:4px;
  width:100%;height:10px;background:var(--pink);
  z-index:-1;border-radius:4px;
}
.subhead{font-size:1.08rem;max-width:34em;margin-bottom:36px;color:#57554e;}
.btn-row{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-bottom:26px;}
.cred{font-size:.88rem;color:#7a776d;max-width:30em;}
.cred strong{color:var(--forest);font-weight:600;}
.hero-photo{position:relative;z-index:1;justify-self:center;}
.arch{
  width:min(400px,38vw);aspect-ratio:4/5.1;
  border-radius:220px 220px 26px 26px;overflow:hidden;
  box-shadow:0 24px 60px rgba(46,74,58,.25);border:10px solid #fff;
}
.arch img{width:100%;height:100%;object-fit:cover;object-position:50% 62%;}
.photo-caption{
  margin:-24px auto 0;position:relative;z-index:3;
  background:#fff;
  padding:14px 20px;border-radius:16px;
  box-shadow:0 10px 30px rgba(0,0,0,.12);
  font-size:.86rem;max-width:300px;line-height:1.5;
}
.photo-caption b{
  font-family:'Chewy',cursive;font-weight:400;color:var(--forest);
  display:block;font-size:1rem;
}
@media(max-width:900px){
  .hero{grid-template-columns:1fr;padding-top:2vh;}
  .hero-photo{order:-1;}
  .arch{width:min(320px,78vw);}
  .photo-caption{max-width:280px;}
}

/* ---------- dark band section ---------- */
.dark{
  background:var(--forest);color:var(--cream);
  position:relative;overflow:hidden;
}
.dark::after{
  content:"";position:absolute;left:-140px;bottom:-140px;
  width:420px;height:420px;background:rgba(143,174,148,.15);border-radius:50%;
}
.dark .section-inner{position:relative;z-index:1;}
.dark .section-title{color:#fff;}
.dark .section-title em{font-style:normal;color:var(--pink);}
.dark .section-kicker{color:var(--sage);}
.dark p{color:#E9E4D6;}
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:6vw;}
.split p{margin-bottom:1.2em;font-size:1.04rem;}
.split p:last-child{margin-bottom:0;}
.freeze-line{font-family:'Chewy',cursive;font-size:1.35rem;color:var(--pink);}
@media(max-width:900px){.split{grid-template-columns:1fr;}}

/* ---------- benefits ---------- */
.benefits{background:var(--cream);}
.benefit-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:26px;margin-top:44px;
}
@media(max-width:1000px){.benefit-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.benefit-grid{grid-template-columns:1fr;}}
.benefit{
  background:#fff;border-radius:22px;padding:32px 28px;
  box-shadow:0 10px 30px rgba(46,74,58,.08);
  border-top:5px solid var(--sage);
}
.benefit:nth-child(2){border-top-color:var(--terracotta);}
.benefit:nth-child(3){border-top-color:var(--pink);}
.benefit:nth-child(4){border-top-color:var(--forest);}
.benefit h3{
  font-family:'Caprasimo',serif;font-weight:400;
  font-size:1.15rem;color:var(--forest);margin-bottom:10px;line-height:1.35;
}
.benefit p{font-size:.96rem;color:#57554e;}

/* ---------- steps ---------- */
.steps{background:var(--cream-deep);}
.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin:44px 0 36px;}
@media(max-width:900px){.step-grid{grid-template-columns:1fr;}}
.step{
  background:#fff;border-radius:22px;padding:36px 30px;
  box-shadow:0 10px 30px rgba(46,74,58,.08);position:relative;
}
.step-num{
  font-family:'Caprasimo',serif;
  width:46px;height:46px;border-radius:50%;
  background:var(--terracotta);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;margin-bottom:18px;
}
.step h3{
  font-family:'Caprasimo',serif;font-weight:400;
  font-size:1.2rem;color:var(--forest);margin-bottom:10px;
}
.step p{font-size:.97rem;color:#57554e;}

/* ---------- method phases ---------- */
.phase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:44px;}
@media(max-width:900px){.phase-grid{grid-template-columns:1fr;}}
.phase{
  background:#fff;border-radius:22px;padding:36px 30px;
  box-shadow:0 10px 30px rgba(46,74,58,.08);
  border-left:6px solid var(--sage);
}
.phase:nth-child(2){border-left-color:var(--terracotta);}
.phase:nth-child(3){border-left-color:var(--forest);}
.phase .phase-tag{
  font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--terracotta);display:block;margin-bottom:8px;
}
.phase h3{
  font-family:'Caprasimo',serif;font-weight:400;
  font-size:1.35rem;color:var(--forest);margin-bottom:12px;
}
.phase p{font-size:.97rem;color:#57554e;}

/* ---------- two doors ---------- */
.doors{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:44px;}
.door{
  border-radius:26px;padding:44px 38px;
  display:flex;flex-direction:column;align-items:flex-start;gap:16px;
}
.door.free{background:var(--sage-soft);}
.door.paid{background:var(--terracotta-soft);}
.door h3{
  font-family:'Caprasimo',serif;font-weight:400;
  font-size:1.45rem;color:var(--forest);line-height:1.3;
}
.door p{font-size:1rem;color:#4c5a4d;}
.door .btn-primary,.door .btn-forest{margin-top:auto;}
@media(max-width:820px){.doors{grid-template-columns:1fr;}}

/* ---------- quote / why block ---------- */
.why{background:var(--cream);}
.why-card{
  background:#fff;border-radius:26px;
  padding:52px 56px;box-shadow:0 14px 40px rgba(46,74,58,.1);
  display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:center;
}
.why-photo{
  width:180px;height:180px;border-radius:50%;overflow:hidden;
  border:8px solid var(--sage-soft);flex-shrink:0;
}
.why-photo img{width:100%;height:100%;object-fit:cover;}
.why-card h2{
  font-family:'Caprasimo',serif;font-weight:400;
  font-size:1.6rem;color:var(--forest);margin-bottom:14px;
}
.why-card p{color:#57554e;}
@media(max-width:820px){
  .why-card{grid-template-columns:1fr;text-align:center;padding:40px 26px;}
  .why-photo{margin:0 auto;}
}

/* ---------- FAQ ---------- */
.faq{background:var(--cream-deep);}
.faq-list{max-width:760px;margin:40px auto 0;}
.faq-list details{
  background:#fff;border-radius:16px;
  margin-bottom:14px;padding:22px 28px;
  box-shadow:0 6px 18px rgba(46,74,58,.07);
}
.faq-list summary{
  font-weight:600;color:var(--forest);cursor:pointer;
  font-size:1.02rem;list-style:none;position:relative;padding-right:34px;
}
.faq-list summary::after{
  content:"+";position:absolute;right:0;top:-2px;
  font-family:'Caprasimo',serif;font-size:1.4rem;color:var(--terracotta);
  transition:transform .2s ease;
}
.faq-list details[open] summary::after{transform:rotate(45deg);}
.faq-list details p{margin-top:14px;color:#57554e;font-size:.98rem;}

/* ---------- pricing ---------- */
.price-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:26px;margin-top:44px;
}
@media(max-width:1000px){.price-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.price-grid{grid-template-columns:1fr;}}
.price-card{
  background:#fff;border-radius:24px;padding:38px 32px;
  box-shadow:0 10px 30px rgba(46,74,58,.08);
  display:flex;flex-direction:column;gap:12px;
  border-top:5px solid var(--sage);
}
.price-card.featured{
  border-top-color:var(--terracotta);
  box-shadow:0 18px 44px rgba(196,111,79,.22);
}
.price-card .tag{
  align-self:flex-start;
  font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  background:var(--terracotta-soft);color:var(--terracotta);
  padding:4px 12px;border-radius:999px;
}
.price-card h3{
  font-family:'Caprasimo',serif;font-weight:400;
  font-size:1.25rem;color:var(--forest);line-height:1.3;
}
.price{
  font-family:'Caprasimo',serif;font-size:2.1rem;color:var(--terracotta);
}
.price small{font-family:'Laila',serif;font-size:.9rem;color:#7a776d;}
.price-card p{font-size:.94rem;color:#57554e;}
.price-card .btn-forest{margin-top:auto;align-self:stretch;text-align:center;font-size:.95rem;padding:12px 26px;white-space:nowrap;}
.terms{
  background:#fff;border-radius:22px;padding:40px 44px;
  box-shadow:0 10px 30px rgba(46,74,58,.08);margin-top:50px;
}
.terms h3{
  font-family:'Caprasimo',serif;font-weight:400;
  font-size:1.3rem;color:var(--forest);margin-bottom:16px;
}
.terms p{font-size:.97rem;color:#57554e;margin-bottom:12px;}
.terms p:last-child{margin-bottom:0;}

/* ---------- about ---------- */
.about-hero{
  display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center;
  padding:6vh 6vw 8vh;
}
.about-hero .arch{width:min(380px,40vw);}
.about-body{max-width:720px;margin:0 auto;}
.about-body p{margin-bottom:1.3em;font-size:1.05rem;color:#4a4a44;}
.about-photos{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:22px;margin:50px auto;max-width:760px;
}
@media(max-width:600px){.about-photos{grid-template-columns:1fr;}}
.about-photos figure{
  border-radius:20px;overflow:hidden;
  box-shadow:0 12px 30px rgba(46,74,58,.14);
  background:#fff;
}
.about-photos img{width:100%;height:260px;object-fit:cover;}
.about-photos figcaption{
  padding:12px 16px;font-size:.85rem;color:#57554e;
}
@media(max-width:900px){.about-hero{grid-template-columns:1fr;}}

/* ---------- footer band ---------- */
.band{text-align:center;padding:10vh 6vw;background:var(--cream);}
.band .sig{
  font-family:'Caprasimo',serif;
  font-size:clamp(1.7rem,3vw,2.4rem);
  color:var(--forest);margin-bottom:14px;
}
.band p{max-width:38em;margin:0 auto 30px;color:#57554e;}
footer{
  background:var(--forest-deep);color:#cfdccf;
  padding:34px 6vw;text-align:center;font-size:.88rem;
}
footer a{color:#fff;text-decoration:none;}
footer a:hover{color:var(--pink);}
footer .foot-links{display:flex;gap:26px;justify-content:center;margin-bottom:14px;flex-wrap:wrap;}
