:root{--cream:#F8F5EF;--paper:#FFFDF8;--wine:#6E1F2A;--wine2:#4B121B;--gold:#B08A45;--olive:#5E6B55;--text:#303030;--muted:#746d64;--line:rgba(176,138,69,.28)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--paper);line-height:1.6}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:500;line-height:1.05;margin:0 0 22px}h1{font-size:clamp(44px,7vw,92px);color:#fff;text-shadow:0 3px 18px rgba(0,0,0,.38)}h2{font-size:clamp(34px,4vw,62px);color:var(--wine2)}h3{font-size:24px}.topbar{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:14px 34px;background:rgba(248,245,239,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--wine2);font-weight:700}.brand img{height:42px;width:42px;object-fit:contain;border-radius:50%}.topbar nav{display:flex;gap:22px;align-items:center}.topbar nav a{color:var(--wine2);text-decoration:none;font-size:14px}.mini-cta{background:var(--wine);color:#fff!important;padding:10px 16px;border-radius:999px}.hero{min-height:100vh;position:relative;display:grid;place-items:center;overflow:hidden}.hero-bg{position:absolute;inset:0}.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,8,9,.72),rgba(20,8,9,.25),rgba(20,8,9,.08))}.hero-bg img{width:100%;height:100%;object-fit:cover}.hero-content{position:relative;z-index:2;width:min(1120px,92%);padding-top:80px}.lead{font-size:clamp(18px,2vw,24px);max-width:720px;color:#fff;margin:0 0 32px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--gold);font-size:12px;font-weight:800;margin:0 0 16px}.cta{display:inline-block;background:var(--wine);color:#fff;text-decoration:none;padding:16px 28px;border-radius:999px;font-weight:800;letter-spacing:.02em;box-shadow:0 14px 34px rgba(110,31,42,.25);transition:.25s}.cta:hover{transform:translateY(-2px);background:var(--wine2)}.cta.light{background:var(--gold);color:#20160d}.cta.big{font-size:18px;padding:18px 34px}.text-cta{color:var(--wine);font-weight:800;text-decoration:none;border-bottom:1px solid var(--gold)}.section{padding:105px 0}.container{width:min(1180px,90%);margin:auto}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.reverse .image-card{order:1}.reverse .copy{order:2}.copy p{font-size:18px;color:var(--muted);margin-bottom:24px}.image-card{margin:0;border-radius:30px;overflow:hidden;box-shadow:0 28px 80px rgba(49,31,21,.14);background:#fff}.image-card img{display:block;width:100%;height:auto}.dark{background:linear-gradient(135deg,var(--wine2),#2b0a10);color:#fff}.dark h2,.dark h3{color:#fff}.dark p{color:#f4e8dc}.center{text-align:center}.center .narrow,.narrow{max-width:720px;margin:0 auto 34px;color:var(--muted);font-size:18px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:44px 0}.steps div{border:1px solid rgba(255,255,255,.18);border-radius:24px;padding:28px;background:rgba(255,255,255,.06)}.steps span{display:block;color:var(--gold);font-weight:900;margin-bottom:18px}.cream{background:var(--cream)}.checklist{list-style:none;padding:0;margin:26px 0}.checklist li{padding:12px 0 12px 34px;border-bottom:1px solid var(--line);position:relative}.checklist li:before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:900}.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:28px 0}.spec-grid span{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;color:var(--muted)}.spec-grid strong{display:block;color:var(--wine);font-size:26px;font-family:Georgia,serif}.collection{background:radial-gradient(circle at top,#fff, var(--cream))}.edition-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:42px 0}.edition{border:1px solid var(--line);border-radius:24px;background:#fff;padding:28px;min-height:170px;text-align:left}.edition span{color:var(--gold);font-weight:900;font-size:13px;text-transform:uppercase;letter-spacing:.12em}.edition strong{display:block;font-family:Georgia,serif;font-size:25px;color:var(--wine2);margin:18px 0}.edition em{font-style:normal;color:var(--olive);font-weight:800}.edition.active{box-shadow:0 20px 60px rgba(176,138,69,.22);border-color:var(--gold)}.trust-grid,.testimonial-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}.trust-grid div,.testimonial-grid blockquote{background:#fff;border:1px solid var(--line);border-radius:24px;padding:26px;margin:0}.testimonial-grid{grid-template-columns:repeat(3,1fr)}.narrow-wrap{max-width:900px}.accordion details{border-bottom:1px solid var(--line);padding:20px 0}.accordion summary{cursor:pointer;font-weight:800;color:var(--wine2);font-size:18px}.accordion p{color:var(--muted);margin:14px 0 0}.final{background:linear-gradient(180deg,var(--cream),#fff)}.final-logo{width:300px;height:300px;object-fit:contain;border-radius:50%;margin-bottom:20px}.availability{width:min(520px,100%);height:12px;border-radius:999px;background:#eadfce;margin:26px auto 10px;overflow:hidden}.availability span{display:block;height:100%;background:linear-gradient(90deg,var(--wine),var(--gold));border-radius:999px}.price-card{width:min(560px,100%);margin:28px auto 24px;background:#fff;border:1px solid var(--line);border-radius:30px;padding:30px 26px;box-shadow:0 24px 70px rgba(49,31,21,.12)}.price-card .price-label{display:block;text-transform:uppercase;letter-spacing:.16em;color:var(--gold);font-size:12px;font-weight:900;margin-bottom:8px}.price-card strong{display:block;font-family:Georgia,'Times New Roman',serif;color:var(--wine2);font-size:clamp(42px,6vw,68px);line-height:1;margin-bottom:18px}.price-card p{margin:8px auto;color:var(--muted);font-size:16px}.price-card p:first-of-type{color:var(--olive);font-weight:800}.small{font-size:13px;color:var(--muted)}footer{background:#211014;color:#f4e8dc;padding:34px 0}footer a{color:#f4e8dc;text-decoration:none;margin-left:18px}.footer-grid{display:flex;justify-content:space-between;gap:20px}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media(max-width:900px){.topbar{padding:12px 18px}.topbar nav a:not(.mini-cta){display:none}.two-col,.steps,.edition-grid,.trust-grid,.testimonial-grid{grid-template-columns:1fr}.reverse .image-card,.reverse .copy{order:initial}.section{padding:76px 0}.footer-grid{display:block}footer a{display:block;margin:10px 0 0}.hero-content{padding-top:120px}.brand span{display:none}}

/* =======================================================
   FORMULÁRIO DE RESERVA
======================================================= */

select{
    width:100%;
    padding:16px;
    font-size:16px;
    border:1px solid #DDD;
    border-radius:8px;
    background:#FFF;
    margin-top:5px;
    box-sizing:border-box;
}

select:focus{
    outline:none;
    border:1px solid #B08A45;
}

.lgpd{
    margin-top:30px;
    padding:20px;
    background:#FAF8F3;
    border-radius:10px;
    border:1px solid #E8E0D0;
    line-height:1.7;
    font-size:15px;
}

.lgpd input{
    width:auto;
    margin-right:10px;
}

.lgpd a{
    color:#6E1F2A;
    font-weight:600;
    text-decoration:none;
}

.lgpd a:hover{
    text-decoration:underline;
}

.reserva-info{
    margin-top:25px;
    padding:18px;
    background:#FFF8E8;
    border-left:5px solid #B08A45;
    border-radius:10px;
    color:#444;
    line-height:1.7;
}

.btnReserva{
    display:block;
    width:100%;
    text-align:center;
    height:72px;
    line-height:72px;
    background:#6E1F2A;
    color:#FFF;
    text-decoration:none;
    border-radius:10px;
    font-size:22px;
    font-weight:700;
    letter-spacing:.5px;
    transition:.3s;
}

.btnReserva:hover{
    background:#541620;
    transform:translateY(-2px);
    box-shadow:0 10px 25px rgba(110,31,42,.30);
}

.seguranca{
    margin-top:30px;
    padding:18px;
    background:#F7F7F7;
    border-radius:10px;
    text-align:center;
    color:#555;
    line-height:1.6;
    border:1px solid #E5E5E5;
}

.seguranca strong{
    color:#6E1F2A;
}

/* ==========================================================
   MENSAGENS DE ERRO
========================================================== */

.erro-reserva{
    background:#FFF2F2;
    border:1px solid #D9534F;
    color:#8A1F1F;
    padding:18px;
    border-radius:10px;
    margin-bottom:25px;
    font-size:16px;
    line-height:1.6;
}

.erro-reserva strong{
    display:block;
    margin-bottom:8px;
    font-size:18px;
}

.sucesso-reserva{
    background:#F2FFF3;
    border:1px solid #5CB85C;
    color:#2D6A2D;
    padding:18px;
    border-radius:10px;
    margin-bottom:25px;
}

/* =======================================================
   PÁGINA DE RESERVA - AMOR EM TAÇAS
   Complemento visual para reserva.html
======================================================= */

.reserva-page{
    min-height:100vh;
    padding:120px 20px 70px;
    background:radial-gradient(circle at top left,#fff,var(--cream) 42%,#efe4d2 100%);
}

.reserva-wrapper{
    width:min(1080px,100%);
    margin:0 auto;
    display:grid;
    grid-template-columns:.92fr 1.08fr;
    gap:34px;
    align-items:start;
}

.reserva-card,
.reserva-form-card{
    background:#FFFDF8;
    border:1px solid var(--line);
    border-radius:30px;
    box-shadow:0 24px 70px rgba(49,31,21,.12);
    overflow:hidden;
}

.reserva-card{
    padding:34px;
    position:sticky;
    top:105px;
}

.reserva-form-card{
    padding:42px;
}

.reserva-logo{
    display:block;
    width:180px;
    max-width:70%;
    margin:0 auto 24px;
}

.reserva-kicker{
    display:block;
    text-transform:uppercase;
    letter-spacing:.18em;
    color:var(--gold);
    font-size:12px;
    font-weight:900;
    margin-bottom:12px;
}

.reserva-title{
    font-family:Georgia,'Times New Roman',serif;
    font-size:clamp(34px,5vw,58px);
    color:var(--wine2);
    line-height:1.02;
    margin-bottom:18px;
}

.reserva-subtitle{
    color:var(--muted);
    font-size:18px;
    margin:0 0 26px;
}

.reserva-lista{
    list-style:none;
    padding:0;
    margin:24px 0;
}

.reserva-lista li{
    padding:12px 0 12px 32px;
    border-bottom:1px solid var(--line);
    position:relative;
    color:var(--muted);
}

.reserva-lista li:before{
    content:"✓";
    position:absolute;
    left:0;
    color:var(--gold);
    font-weight:900;
}

.reserva-preco{
    margin-top:24px;
    padding:24px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:24px;
    text-align:center;
}

.reserva-preco span{
    display:block;
    text-transform:uppercase;
    letter-spacing:.16em;
    color:var(--gold);
    font-size:12px;
    font-weight:900;
    margin-bottom:8px;
}

.reserva-preco strong{
    display:block;
    font-family:Georgia,'Times New Roman',serif;
    color:var(--wine2);
    font-size:50px;
    line-height:1;
}

.reserva-frete{
    margin-top:14px;
    color:var(--muted);
    font-size:14px;
}

.form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.form-full{
    grid-column:1 / -1;
}

.reserva-form label{
    display:block;
    margin:0 0 8px;
    font-weight:800;
    color:var(--wine2);
    font-size:14px;
}

.reserva-form input,
.reserva-form select{
    width:100%;
    min-height:54px;
    padding:15px 16px;
    border:1px solid #DDD;
    border-radius:12px;
    background:#FFF;
    color:var(--text);
    font-size:16px;
    font-family:Inter,Segoe UI,Arial,sans-serif;
    box-sizing:border-box;
    transition:.25s;
}

.reserva-form input:focus,
.reserva-form select:focus{
    outline:none;
    border-color:var(--gold);
    box-shadow:0 0 0 4px rgba(176,138,69,.12);
}

.reserva-form input[type="checkbox"]{
    width:auto;
    min-height:auto;
    accent-color:var(--wine);
}

.lgpd label{
    display:flex;
    gap:12px;
    align-items:flex-start;
    margin:0;
    color:#444;
    font-weight:500;
}

.lgpd input{
    margin-top:5px;
    flex:0 0 auto;
}

.reserva-info strong,
.seguranca strong{
    color:var(--wine2);
}

.btnReserva{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    text-transform:uppercase;
}

.btnReserva:after{
    content:"→";
    font-size:26px;
    line-height:1;
}

.progress-reserva{
    display:flex;
    gap:10px;
    margin:0 0 30px;
}

.progress-reserva span{
    flex:1;
    height:6px;
    border-radius:999px;
    background:#eadfce;
}

.progress-reserva span.active{
    background:linear-gradient(90deg,var(--wine),var(--gold));
}

@media(max-width:900px){
    .reserva-page{
        padding:95px 16px 50px;
    }

    .reserva-wrapper{
        grid-template-columns:1fr;
    }

    .reserva-card{
        position:relative;
        top:auto;
    }

    .reserva-form-card{
        padding:28px 22px;
    }

    .form-grid{
        grid-template-columns:1fr;
    }

    .btnReserva{
        min-height:72px;
        height:auto;
        padding:18px 14px;
        font-size:18px;
    }
}
