:root{
    --cream:#FBF4EC;
    --card:#FFFFFF;
    --terracotta:#C1622D;
    --terracotta-dark:#A34F22;
    --sage:#7C9473;
    --sage-dark:#5E7454;
    --ink:#3A2E27;
    --muted:#7A6D63;
    --line:#EBDFD1;
}

*{margin:0;padding:0;box-sizing:border-box;}

section[id]{scroll-margin-top:80px;}

body{
    font-family:'Nunito Sans',system-ui,sans-serif;
    background:var(--cream);
    color:var(--ink);
    line-height:1.65;
}

h1,h2,h3{
    font-family:'Fraunces',Georgia,serif;
    font-weight:600;
    color:var(--ink);
    line-height:1.18;
}

.wrap{width:min(1120px,92%);margin:0 auto;position:relative;}
a{color:inherit;}

/* Header */
.site-header{
    background:rgba(251,244,236,.92);
    backdrop-filter:blur(6px);
    position:sticky;
    top:0;
    z-index:50;
    border-bottom:1px solid var(--line);
}
.header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:16px 0;
}
.brand{
    display:flex;
    align-items:center;
    gap:9px;
    text-decoration:none;
    font-family:'Fraunces',serif;
    font-weight:600;
    font-size:19px;
    color:var(--ink);
}
.brand em{font-style:normal;color:var(--terracotta-dark);}
.main-nav{display:flex;align-items:center;gap:26px;}
.main-nav a{
    text-decoration:none;
    font-weight:700;
    font-size:14.5px;
    color:var(--muted);
}
.nav-cta{
    background:var(--sage-dark);
    color:#fff !important;
    padding:10px 18px;
    border-radius:50px;
}

/* Hero */
.hero{
    padding:70px 0 90px;
    position:relative;
    overflow:hidden;
}
.blob{
    position:absolute;
    border-radius:58% 42% 62% 38% / 45% 55% 45% 55%;
    filter:blur(2px);
    opacity:.35;
    z-index:0;
}
.blob-a{
    width:420px;height:420px;
    background:var(--sage);
    top:-140px;right:-120px;
    opacity:.22;
}
.blob-b{
    width:280px;height:280px;
    background:var(--terracotta);
    bottom:-120px;left:-80px;
    opacity:.16;
}
.hero-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:56px;
    align-items:start;
    z-index:1;
}
.eyebrow{
    display:inline-block;
    font-size:13px;
    font-weight:800;
    color:var(--terracotta-dark);
    background:#F5E3D4;
    padding:7px 16px;
    border-radius:50px;
    margin-bottom:22px;
}
.hero h1{
    font-size:46px;
    margin-bottom:20px;
}
.lede{
    font-size:17.5px;
    color:var(--muted);
    max-width:50ch;
    margin-bottom:26px;
}
.trust-row{
    list-style:none;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.trust-row li{
    font-size:13px;
    font-weight:700;
    background:var(--card);
    border:1px solid var(--line);
    color:var(--ink);
    padding:8px 16px;
    border-radius:50px;
}

.hero-banner{display:none;}
.hero-form-panel{
    background:var(--card);
    border-radius:22px;
    box-shadow:0 20px 55px rgba(58,46,39,.12);
    padding:6px;
}
.form-disclaimer{
    font-size:11.5px;
    line-height:1.6;
    color:var(--muted);
    text-align:center;
    padding:14px 20px 6px;
}
.form-disclaimer a{color:var(--terracotta-dark);}

/* Honest section */
.honest{padding:20px 0 80px;}
.honest-grid{
    background:var(--card);
    border-radius:20px;
    padding:44px 46px;
    border:1px solid var(--line);
}
.honest h2{font-size:26px;margin-bottom:22px;}
.honest-list{
    display:grid;
    gap:16px;
}
.honest-list p{
    font-size:15.5px;
    color:var(--muted);
}
.honest-list strong{color:var(--ink);}

/* How it works */
.how{padding:70px 0;}
.how h2{
    font-size:32px;
    text-align:center;
    margin-bottom:50px;
}
.v-steps{
    max-width:680px;
    margin:0 auto;
    display:grid;
    gap:0;
    position:relative;
}
.v-steps::before{
    content:"";
    position:absolute;
    left:19px;
    top:12px;
    bottom:12px;
    width:2px;
    background-image:linear-gradient(var(--line) 60%, transparent 0);
    background-size:2px 10px;
    background-repeat:repeat-y;
}
.v-step{
    display:grid;
    grid-template-columns:40px 1fr;
    gap:20px;
    padding-bottom:34px;
    position:relative;
}
.v-dot{
    width:40px;height:40px;
    border-radius:50%;
    background:var(--terracotta-dark);
    color:#fff;
    font-family:'Fraunces',serif;
    font-weight:600;
    font-size:17px;
    display:flex;align-items:center;justify-content:center;
    z-index:1;
}
.v-step h3{font-size:18px;margin-bottom:6px;}
.v-step p{font-size:14.5px;color:var(--muted);}

/* Why */
.why{padding:70px 0 90px;}
.why h2{
    font-size:30px;
    text-align:center;
    margin-bottom:44px;
}
.why-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
}
.why-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:16px;
    padding:26px 22px;
}
.why-mark{
    width:30px;height:30px;
    border-radius:8px;
    background:#E7EEE0;
    display:flex;align-items:center;justify-content:center;
    margin-bottom:14px;
}
.why-card h3{font-size:16.5px;margin-bottom:8px;}
.why-card p{font-size:13.5px;color:var(--muted);}

/* FAQ */
.faq{padding:80px 0;}
.faq h2{font-size:30px;text-align:center;margin-bottom:44px;}
.faq-list{max-width:780px;margin:0 auto;}
.faq-group-label{
    font-family:'Nunito Sans',sans-serif;
    font-size:12.5px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--terracotta-dark);
    margin:28px 0 12px;
}
.faq-group-label:first-child{margin-top:0;}
.faq details{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:16px;
    margin-bottom:14px;
    padding:0 24px;
}
.faq summary{
    cursor:pointer;
    list-style:none;
    padding:20px 0;
    font-weight:700;
    font-size:15.5px;
    position:relative;
    padding-right:28px;
    font-family:'Fraunces',serif;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
    content:"+";
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    font-size:20px;
    color:var(--terracotta);
}
.faq details[open] summary::after{content:"\2212";}
.faq details p{
    padding-bottom:20px;
    color:var(--muted);
    font-size:14.5px;
}

/* CTA */
.cta{
    background:var(--sage-dark);
    padding:70px 0;
    text-align:center;
}
.cta h2{color:#fff;font-size:28px;margin-bottom:10px;}
.cta p{color:#fff;margin-bottom:24px;}
.btn-primary{
    display:inline-block;
    background:#fff;
    color:var(--sage-dark);
    padding:14px 30px;
    border-radius:50px;
    text-decoration:none;
    font-weight:800;
}

/* Footer */
.site-footer{
    background:#F0E6D8;
    color:#6B5D4F;
}
.footer-top{
    display:flex;
    justify-content:space-between;
    gap:40px;
    flex-wrap:wrap;
    padding:40px 0 28px;
    border-bottom:1px solid #E2D4C0;
}
.footer-brand-name{
    display:block;
    font-family:'Fraunces',serif;
    font-weight:600;
    font-size:18px;
    color:var(--ink);
    margin-bottom:6px;
}
.footer-brand p{font-size:13px;color:#8A7C6E;}
.footer-links{display:flex;gap:60px;}
.footer-col{display:flex;flex-direction:column;}
.footer-col h4{
    font-family:'Nunito Sans',sans-serif;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#9C8C7A;
    margin-bottom:14px;
}
.footer-col a{
    display:block;
    font-size:13.5px;
    color:#7A6D5F;
    text-decoration:none;
    margin-bottom:10px;
}
.footer-col a:hover{color:var(--terracotta-dark);}
.footer-bottom{padding:28px 0 40px;}
.legal{
    font-size:12.5px;
    line-height:1.85;
    max-width:960px;
    margin-bottom:16px;
}
.copyright{font-size:12px;}

/* Focus states */
a:focus-visible,
button:focus-visible,
summary:focus-visible{
    outline:2px solid var(--terracotta-dark);
    outline-offset:3px;
    border-radius:4px;
}

@media (max-width:900px){
    .hero-grid{grid-template-columns:1fr;}
    .hero-banner{
        display:block;
        order:1;
        text-align:center;
        font-size:13px;
        font-weight:800;
        color:var(--terracotta-dark);
        background:#F5E3D4;
        padding:9px 16px;
        border-radius:50px;
        margin-bottom:4px;
    }
    .hero-form-panel{order:2;}
    .hero-copy{order:3;}
    .why-grid{grid-template-columns:repeat(2,1fr);}
    .main-nav a:not(.nav-cta){display:none;}
    .hero h1{font-size:34px;}
    .honest-grid{padding:32px 26px;}
    .footer-top{flex-direction:column;gap:28px;}
    .footer-links{gap:40px;}
}

/* Legal pages */
.legal-page{padding:50px 0 90px;}
.legal-page .wrap{max-width:780px;}
.legal-back{
    display:inline-block;
    font-size:13.5px;
    font-weight:700;
    color:var(--terracotta-dark);
    text-decoration:none;
    margin-bottom:28px;
}
.legal-page h1{font-family:'Fraunces',serif;font-size:34px;margin-bottom:8px;}
.legal-updated{font-size:13px;color:var(--muted);margin-bottom:36px;}
.legal-page section{margin-bottom:30px;}
.legal-page h2{font-family:'Fraunces',serif;font-size:19px;margin-bottom:10px;}
.legal-page p, .legal-page li{font-size:14.5px;color:var(--muted);margin-bottom:12px;}
.legal-page ul, .legal-page ol{padding-left:22px;margin-bottom:12px;}
.legal-page a{color:var(--terracotta-dark);}
.legal-page table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13.5px;}
.legal-page th,.legal-page td{border:1px solid var(--line);padding:10px 12px;text-align:left;color:var(--muted);}
.legal-page th{background:var(--card);color:var(--ink);}
.unsub-form{display:flex;gap:10px;max-width:420px;margin:18px 0 8px;}
.unsub-form input{
    flex:1;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:8px;
    font-size:14px;
    font-family:inherit;
}
.unsub-form button{
    background:var(--sage-dark);
    color:#fff;
    border:none;
    padding:12px 22px;
    border-radius:8px;
    font-weight:700;
    font-size:14px;
    cursor:pointer;
}
.container {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1;
}