@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;600;700&display=swap');

:root{
    --terracotta:#D96A43;
    --olive:#788C50;
    --navy:#16233B;
    --cream:#F7F3EC;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
    margin:0;
    font-family:'Manrope',sans-serif;
    background:var(--cream);
    color:var(--navy);
    line-height:1.7;
}

.container{width:min(1100px,90%);margin:auto;}
.hero{
    min-height:85vh;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    position:relative;
    overflow:hidden;
    background-color:#304030;
    color:white;
}
.hero-carousel{position:absolute; inset:0; z-index:0;}
.hero-carousel img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .8s ease;
}
.hero-carousel img.active{opacity:1;}
.hero-overlay{
    position:absolute; inset:0;
    background:linear-gradient(rgba(42,30,20,.45), rgba(42,50,30,.45));
    z-index:1;
}
.hero-content{position:relative; z-index:2; max-width:900px; padding:40px;}
.logo{font-size:4rem; font-weight:700; margin-bottom:2rem;}
.logo .vi{color:#F8B18F;}
.logo .vicini{color:#C8D9A7;}
h1{font-size:3rem; line-height:1.1; margin-bottom:1rem;}
.lead{font-size:1.35rem; max-width:700px; margin:0 auto 2rem;}
.btn{
    display:inline-block; padding:14px 28px; border-radius:999px; text-decoration:none; font-weight:600; margin:8px; transition:all .25s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--terracotta); color:white;}
.btn-secondary{background:white; color:var(--navy);}
section{padding:30px 0;}
.section-title{text-align:center; font-size:2.3rem; margin-bottom:25px;}
.section-intro{text-align:center; max-width:750px; margin:0 auto 50px;}
.grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:25px;}
.card{background:white; padding:28px; border-radius:20px; box-shadow:0 10px 30px rgba(0,0,0,.08); transition:all .25s ease;}
.card:hover{transform:translateY(-5px); box-shadow:0 20px 40px rgba(0,0,0,.12);}
.card h3{margin-top:0;}
.story{max-width:800px; margin:auto; text-align:center;}
.cta{text-align:center; margin-top:40px;}
.waitlist{background:white;}
form{display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:30px;}
label{display:block; margin-bottom:8px; font-weight:600;}
input[type=email],input[type=text],select,textarea{width:350px; max-width:100%; padding:15px; border:1px solid #ddd; border-radius:10px; font-family:inherit;}
textarea{min-height:120px; resize:vertical;}
.form-row{display:flex; gap:12px; width:100%;}
.form-row > div{flex:1; min-width:180px;}
.full-width{width:100%;}
.checkbox-grid{width:100%; border:none; padding:0; margin:0 0 10px 0;}
.checkbox-grid legend{font-weight:700; margin-bottom:8px;}
.checkbox-grid .checkbox-item{display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:8px; border:1px solid #eee; background:white; margin-bottom:8px;}
.form-message{width:100%; text-align:center; padding:12px 16px; border-radius:10px; margin-top:10px; font-weight:600;}
.form-message.success{background:#E9F7EF; color:#11623B; border:1px solid #C8E6D5;}
.form-message.error{background:#FFEDEE; color:#8B1E1E; border:1px solid #F5C6C6;}
button{padding:15px 24px; border:none; border-radius:10px; background:var(--terracotta); color:white; font-weight:600; cursor:pointer;}
footer{background:var(--navy); color:white; text-align:center; padding:30px 20px;}
footer p{margin:8px 0;}
@media (max-width:768px){
    .hero{min-height:70vh;}
    h1{font-size:2.6rem;}
    .lead{font-size:1.1rem;}
    .section-title{font-size:1.8rem;}
    section{padding:70px 0;}
    .logo{font-size:2.3rem;}
}
