/* Cabañas MX · página de venta · mobile first */
:root{
  --verde:#2f4a3a;--verde-esc:#1f3328;--crema:#f6efe4;--papel:#fffaf2;--tinta:#1d1a16;--suave:#5b5248;
  --terra:#c4621f;--terra-esc:#8f430f;--linha:#e6dccb;--ok:#2f7a4a;--sol:#f4c542;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--tinta);font:17px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--verde)}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:700;line-height:1.15;margin:0 0 14px;letter-spacing:-.01em}
h1{font-size:25px}
h2{font-size:24px;margin-top:6px}
h3{font-size:19px}
p{margin:0 0 14px}
.wrap{max-width:680px;margin:0 auto;padding:0 16px}
section{padding:34px 0}
section.papel{background:var(--crema)}
[id]{scroll-margin-top:64px}

/* barra fixa */
.barra{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--verde);color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.barra-txt{margin:0;flex:1;font-size:12.5px;line-height:1.3;font-weight:600}
.btn{display:block;text-align:center;text-decoration:none;font-weight:800;color:#fff;background:var(--terra);border:0;border-radius:14px;cursor:pointer;font-family:inherit;box-shadow:0 5px 0 var(--terra-esc);transition:transform .08s,box-shadow .08s}
.btn:active{transform:translateY(3px);box-shadow:0 2px 0 var(--terra-esc)}
.btn-mini{flex:none;font-size:13px;padding:9px 11px;border-radius:10px;box-shadow:0 3px 0 var(--terra-esc);white-space:nowrap}
.btn-grande{width:100%;font-size:18px;line-height:1.25;padding:17px 14px;margin:20px 0 8px;letter-spacing:.01em}
.micro{font-size:13.5px;color:var(--suave);text-align:center;margin:6px 0 0}

/* hero */
.hero{padding:18px 0 28px;background:linear-gradient(180deg,var(--crema),var(--papel))}
.etiqueta{display:inline-block;font-size:12.5px;font-weight:700;color:var(--verde);background:#e3ebe2;border-radius:999px;padding:5px 11px;margin:0 0 12px}
.sub{font-size:16.5px;color:var(--tinta)}
.sub strong{color:var(--terra-esc);font-size:1.08em}
.checks{list-style:none;padding:0;margin:0}
.checks li{position:relative;padding:0 0 9px 30px;font-size:15.5px;line-height:1.4}
.checks svg,.lista svg{position:absolute;left:0;top:1px;width:22px;height:22px;color:#fff;background:var(--ok);border-radius:50%;padding:3px}
.montagem{position:relative;margin:24px 0 0;padding-bottom:18px}
.m-render{border-radius:16px;width:100%;box-shadow:0 10px 26px rgba(40,30,10,.18)}
.m-plano{position:absolute;left:-6px;bottom:0;width:58%;border-radius:8px;border:3px solid #fff;box-shadow:0 6px 18px rgba(0,0,0,.2);transform:rotate(-3deg)}
.m-cel{position:absolute;right:6px;bottom:-4px;width:31%;border:5px solid #1d1a16;border-radius:20px;overflow:hidden;background:#1d1a16;box-shadow:0 10px 24px rgba(0,0,0,.3)}
.m-cel img{width:100%}
.selo{position:absolute;top:-14px;right:-4px;width:86px;height:86px;border-radius:50%;background:var(--sol);color:var(--tinta);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(8deg);box-shadow:0 6px 16px rgba(0,0,0,.22);border:3px dashed rgba(0,0,0,.25)}
.selo b{font-family:Fraunces,Georgia,serif;font-size:27px;line-height:1}
.selo span{font-size:12px;font-weight:800;letter-spacing:.08em}

/* listas */
.lista{list-style:none;padding:0;margin:0 0 10px}
.lista li{position:relative;padding:0 0 12px 30px}
.lista li::before{content:"";position:absolute;left:4px;top:8px;width:12px;height:12px;border-radius:3px;background:var(--verde);transform:rotate(45deg)}
.h-no{margin-top:22px}
.lista-no li::before{background:#b6402e;border-radius:50%;transform:none}
.destaque{background:var(--papel);border-left:5px solid var(--terra);border-radius:10px;padding:14px 16px}

/* 12 cabañas */
.cabanas{display:grid;gap:14px;margin:18px 0}
.cab{background:#fff;border:1px solid var(--linha);border-radius:14px;overflow:hidden}
.cab img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--crema)}
.cab-txt{padding:12px 14px 6px}
.cab h3{margin:0 0 4px;display:flex;align-items:center;gap:8px}
.cab .n{font:800 13px system-ui,sans-serif;color:#fff;background:var(--verde);border-radius:6px;padding:2px 6px}
.cab p{font-size:15px;margin:0 0 8px}
.cab .tam{color:var(--terra-esc);font-weight:700}
.cab .pags{font-weight:800;color:var(--verde);font-size:14px}
.total-pags{font-size:17px}
.extra{display:flex;gap:12px;align-items:flex-start;margin:0 0 14px}
.extra .ico{flex:none;width:42px;height:42px;border-radius:12px;background:var(--verde);color:#fff;display:flex;align-items:center;justify-content:center}
.extra .ico svg{width:24px;height:24px}
.extra p{margin:0}
.regalos{display:grid;gap:14px;margin-top:6px}
.regalo{background:var(--crema);border-radius:14px;padding:12px}
.regalo img{border-radius:8px;margin:0 0 10px;width:100%}
.regalo p{margin:0}
.ico-r{width:20px;height:20px;vertical-align:-4px;margin-right:6px;color:var(--terra)}

/* provas */
.prova{margin:18px 0 22px}
.prova a{position:relative;display:block}
.prova img{width:100%;border-radius:10px;border:1px solid var(--linha);background:#fff;box-shadow:0 6px 18px rgba(40,30,10,.1)}
.prova figcaption{font-size:15px;color:var(--suave);margin-top:8px}
.zoom{position:absolute;right:8px;bottom:8px;width:34px;height:34px;border-radius:50%;background:rgba(29,26,22,.75);color:#fff;display:flex;align-items:center;justify-content:center}
.zoom svg{width:18px;height:18px}
.prova-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.prova.cel{margin:8px 0 14px}
.prova.cel img{border:5px solid #1d1a16;border-radius:20px}

/* passos */
.passos{list-style:none;padding:0;margin:0}
.passos li{background:#fff;border:1px solid var(--linha);border-radius:12px;padding:12px 14px;margin:0 0 10px}

/* tabela do preço */
.leva{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;margin:6px 0 18px}
.leva td{padding:11px 12px;border-bottom:1px solid var(--linha);font-size:15.5px;vertical-align:middle}
.leva td:last-child{text-align:right;width:40px}
.leva svg{width:22px;height:22px;color:var(--ok)}
.leva .tot td{background:var(--verde);color:#fff;font-size:16.5px;text-align:left;width:auto}
.leva .tot td{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}

/* checkout */
#comprar{background:var(--verde);padding:30px 0}
#checkout{background:#fff;border-radius:18px;padding:20px 16px 18px;box-shadow:0 14px 34px rgba(0,0,0,.25)}
#checkout h2{text-align:center}
.campo{display:block;font-weight:700;font-size:15px;margin:14px 0 6px}
.campo span{font-weight:400;color:var(--suave)}
#checkout input[type=text],#checkout input[type=email],#checkout input[type=tel]{width:100%;font:17px system-ui,sans-serif;padding:13px 12px;border:2px solid var(--linha);border-radius:10px;background:var(--papel)}
#checkout input:focus{outline:none;border-color:var(--verde)}
.dica{font-size:13px;color:var(--suave);margin-top:5px}
.metodos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.metodo{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;border:2px solid var(--linha);border-radius:12px;padding:12px 6px;font-weight:800;cursor:pointer;font-size:15.5px}
.metodo small{font-weight:400;font-size:12.5px;color:var(--suave)}
.metodo svg{width:28px;height:28px;color:var(--verde)}
.metodo input{position:absolute;opacity:0;pointer-events:none}
.metodo:has(input:checked){border-color:var(--verde);background:#eef4ee;box-shadow:0 0 0 2px var(--verde) inset}
.bump{display:flex;gap:12px;align-items:flex-start;margin:18px 0 6px;padding:12px;border:2px dashed var(--terra);border-radius:12px;background:#fff6ec;cursor:pointer;font-size:14px;line-height:1.45}
.bump input{flex:none;width:24px;height:24px;margin:2px 0 0;accent-color:var(--terra)}
.bump img{flex:none;width:64px;border-radius:6px}
.bump b{display:block;font-size:15.5px;margin-bottom:4px;color:var(--terra-esc)}
.total{display:flex;justify-content:space-between;font-weight:800;font-size:18px;border-top:2px solid var(--linha);margin-top:16px;padding-top:12px}
.erro{display:none;color:#a3193f;font-weight:700;font-size:15px;margin:8px 0}
.seguro{display:flex;gap:6px;align-items:center;justify-content:center;font-size:13px;color:var(--suave);margin-top:10px}
.seguro svg{width:16px;height:16px}
#enviar[disabled]{opacity:.7;cursor:wait}

/* garantia */
.garantia{display:flex;gap:14px;align-items:flex-start}
.selo-g{flex:none;width:72px;height:72px;border-radius:50%;background:var(--verde);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid var(--sol)}
.selo-g b{font-family:Fraunces,Georgia,serif;font-size:28px;line-height:1}
.selo-g span{font-size:12px;font-weight:700}

/* faq */
details{background:#fff;border:1px solid var(--linha);border-radius:12px;margin:0 0 10px;padding:0 14px}
summary{cursor:pointer;font-weight:800;padding:14px 22px 14px 0;list-style:none;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:0;top:11px;font-size:22px;color:var(--terra)}
details[open] summary::after{content:"–"}
details p{font-size:15.5px}

/* final + rodapé */
.final{background:var(--crema);text-align:center}
.cierre{font-size:13.5px;color:var(--suave);margin-top:18px}
footer{background:var(--verde-esc);color:#d9e2da;font-size:13.5px;padding:22px 0 30px;text-align:center}
footer a{color:#fff}
footer p{margin:0 0 8px}

@media (min-width:640px){
  h1{font-size:36px}h2{font-size:29px}
  .barra{padding:9px 20px}.barra-txt{font-size:14px}
  .cabanas{grid-template-columns:1fr 1fr}
  .regalos{grid-template-columns:1fr 1fr}
  .btn-grande{font-size:20px}
}

/* páginas legais */
.legal{padding:28px 0 40px}
.legal h1{font-size:28px}
.legal h2{font-size:20px;margin-top:22px}
.legal p,.legal li{font-size:16px}
