@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600&display=swap');

:root{
  --ink:#18302b; --muted:#5e6e68; --cream:#f5f1e8; --paper:#fffdf8;
  --sage:#91a88b; --deep:#244a41; --accent:#c7774a; --line:#d9ded7;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;font-family:"DM Sans",system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.65}
a{color:inherit}.wrap{width:min(1160px,calc(100% - 40px));margin:auto}.narrow{max-width:790px;text-align:center}
.site-header{position:sticky;top:0;z-index:10;background:rgba(255,253,248,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(36,74,65,.08)}
.nav{height:78px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;gap:11px;align-items:center;text-decoration:none;line-height:1.05}.brand-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--deep);color:white;font-weight:700;letter-spacing:-1px}.brand strong,.brand small{display:block}.brand small{font-size:.82rem;color:var(--muted);margin-top:4px;letter-spacing:.06em;text-transform:uppercase}
nav{display:flex;align-items:center;gap:26px}nav a{text-decoration:none;font-size:.94rem;font-weight:600}.nav-cta{background:var(--deep);color:#fff;padding:10px 16px;border-radius:999px}.menu{display:none;border:0;background:none;font-size:1.6rem}
.hero{background:var(--cream);overflow:hidden}.hero-grid{min-height:650px;display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;padding:70px 0}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:700;color:var(--accent);margin:0 0 13px}
h1,h2{font-family:"Fraunces",Georgia,serif;letter-spacing:-.035em;line-height:1.06;margin:0}h1{font-size:clamp(3.1rem,6vw,5.6rem);max-width:760px}h1 em{font-style:normal;color:var(--deep)}h2{font-size:clamp(2.25rem,4vw,3.6rem);margin-bottom:20px}h3{font-size:1.25rem;margin:10px 0 6px}
.lead{font-size:1.19rem;max-width:650px;color:var(--muted);margin:25px 0 30px}.actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-block;border:0;border-radius:999px;padding:14px 20px;text-decoration:none;font:inherit;font-weight:700;cursor:pointer}.primary{background:var(--deep);color:#fff}.secondary{border:1px solid var(--deep);background:transparent}.full{width:100%;text-align:center}.trust-row{display:flex;flex-wrap:wrap;gap:20px;margin-top:32px;font-size:.9rem;font-weight:600;color:var(--deep)}
.hero-art{background:#dfe9dc;border-radius:44% 56% 60% 40% / 46% 40% 60% 54%;padding:10px}.hero-art svg{width:100%;display:block}.sun{fill:#e9c77f}.mountain-back{fill:#7f9e8a}.mountain-front{fill:#577c68}.field{fill:#b7c9a5}.path{fill:none;stroke:#e8d7af;stroke-width:38;stroke-linecap:round}.house{fill:#f6ead3}.roof{fill:#914f39}.door{fill:#52705f}
.intro{padding:95px 0 65px}.intro p:last-child{font-size:1.15rem;color:var(--muted)}.section{padding:90px 0}.services{background:#f8f9f5}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:35px}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:25px;box-shadow:0 8px 30px rgba(32,61,54,.04)}.card p{margin:0;color:var(--muted)}.icon{font-size:1.7rem}.notice{margin-top:26px;background:#eef3ea;border-radius:14px;padding:18px 22px;display:flex;gap:16px;align-items:flex-start}.notice span{color:var(--muted)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.quote-card,.family-card,.join-card{background:var(--cream);padding:45px;border-radius:25px}.quote-card blockquote{font-family:"Fraunces",Georgia,serif;font-size:2rem;line-height:1.2;margin:0 0 20px}.quote-card p{color:var(--muted)}
.pricing{background:var(--deep);color:white}.pricing .eyebrow{color:#eab68f}.price-box{margin-top:35px;border:1px solid rgba(255,255,255,.22);border-radius:22px;padding:38px;display:grid;grid-template-columns:.8fr 1.2fr;gap:40px}.price{font-family:"Fraunces";font-size:4.5rem}.per{font-size:1.25rem}.price-box p,.pricing .small{color:#d8e4df}.price-box ul{columns:2;column-gap:35px}.price-box li{margin:10px 0}.center{text-align:center}
.families{background:#fff}.family-card{font-family:"Fraunces";font-size:1.65rem}.big-icon{font-size:2.6rem}.small{font-size:.87rem;color:var(--muted)}.join{background:#f8f9f5}.ticks{padding:0;list-style:none}.ticks li{margin:9px 0}.ticks li:before{content:"✓";margin-right:10px;color:var(--accent);font-weight:700}.join-card{background:#dfe9dc}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.contact-details p{margin:20px 0}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:var(--cream);padding:30px;border-radius:20px}.contact-form label{font-size:.87rem;font-weight:700}.contact-form input,.contact-form select,.contact-form textarea{width:100%;margin-top:5px;border:1px solid #cbd3cc;background:white;border-radius:9px;padding:12px;font:inherit}.contact-form label:last-of-type{grid-column:1/-1}.contact-form button{width:max-content}.form-note{font-size:.8rem;color:var(--muted);grid-column:1/-1;margin:0}
footer{background:#142923;color:#e9eee9;padding:55px 0 25px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr .55fr;gap:50px}.footer-grid p{color:#afc1b9}.footer-brand .brand-mark{background:#fff;color:var(--deep)}.footer-brand small{color:#afc1b9}.footer-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:35px;padding-top:22px;display:flex;justify-content:space-between;gap:30px;font-size:.78rem;color:#91a79e}
@media(max-width:820px){nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--paper);padding:22px;flex-direction:column;border-bottom:1px solid var(--line)}nav.open{display:flex}.menu{display:block}.hero-grid,.split,.contact-grid,.price-box{grid-template-columns:1fr}.hero-grid{padding:55px 0}.hero-art{max-width:530px;margin:auto}.cards{grid-template-columns:1fr 1fr}.reverse>div:first-child{order:2}.contact-form{grid-template-columns:1fr}.contact-form label:last-of-type{grid-column:auto}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.price-box ul{columns:1}}
@media(max-width:560px){.wrap{width:min(100% - 28px,1160px)}h1{font-size:3.35rem}.cards{grid-template-columns:1fr}.section{padding:70px 0}.intro{padding:70px 0 35px}.hero-grid{min-height:auto}.hero-art{display:none}.trust-row{display:grid;gap:8px}.notice{display:block}.quote-card,.family-card,.join-card{padding:28px}.contact-form{padding:20px}}


.form-hero{background:var(--cream);padding:80px 0 55px}
.form-hero h1{font-size:clamp(2.8rem,5vw,4.7rem)}
.form-page-wrap{max-width:960px}
.long-form{display:grid;gap:24px}
.form-section{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 8px 30px rgba(32,61,54,.04)}
.form-section h2{font-size:2rem;margin-bottom:18px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-grid label,.block-label{font-size:.9rem;font-weight:700}
.form-grid input,.form-grid select,.form-grid textarea,.block-label textarea{
  width:100%;margin-top:6px;border:1px solid #cbd3cc;background:#fff;border-radius:9px;padding:12px;font:inherit
}
.full{grid-column:1/-1}
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin-bottom:18px}
.check-grid label,.consent{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.check-grid input,.consent input{margin-top:5px}
.notice-text{background:#eef3ea;border-radius:12px;padding:16px 18px;color:var(--deep)}
@media(max-width:700px){
  .form-grid,.check-grid{grid-template-columns:1fr}
  .full{grid-column:auto}
  .form-section{padding:22px}
}


.bot-field{
  position:absolute!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;
  height:1px!important;width:1px!important;margin:-1px!important;padding:0!important;border:0!important
}
.field-help{display:block;font-size:.78rem;font-weight:400;color:var(--muted);margin-top:4px}
.legal-copy{max-width:850px}
.legal-copy h2{font-size:2rem;margin-top:40px}
.draft-banner{background:#fff2d6;border:1px solid #e6c474;border-radius:12px;padding:16px 18px;margin-bottom:30px}

/* Consent checkbox rows: keep the checkbox beside the wording */
.form-grid .consent{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:10px;
  text-align:left;
}
.form-grid .consent input[type="checkbox"]{
  width:auto;
  min-width:16px;
  height:16px;
  flex:0 0 16px;
  margin:4px 0 0 0;
  padding:0;
}
.form-grid .consent span{
  display:block;
  flex:1 1 auto;
  min-width:0;
  margin:0;
  text-align:left;
}
