:root { --onyx:#151411; --ivory:#EEE8DD; --taupe:#8C8173; --bronze:#B59A70; --line:#35312b; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; background:var(--onyx); color:var(--ivory); }
body { font-family:Inter,system-ui,sans-serif; }
button,input { font:inherit; }
.shell { height:100svh; min-height:560px; position:relative; overflow:hidden; padding:34px clamp(24px,6vw,88px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; row-gap:18px; }
.shell::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.3; background:radial-gradient(circle at 80% 0%,rgba(181,154,112,.11),transparent 35%),linear-gradient(120deg,transparent 0 48%,rgba(238,232,221,.018) 48% 49%,transparent 49%); }
.brand { position:relative; display:flex; align-items:center; gap:12px; z-index:2; }
.brand__mark { width:58px; height:44px; border-radius:8px; object-fit:contain; object-position:center; }
.brand__word { font-family:Archivo,sans-serif; font-weight:500; letter-spacing:.02em; }
.progress { position:absolute; top:0; left:0; right:0; height:3px; background:#26231f; }
.progress span { display:block; height:100%; width:0; background:var(--bronze); transition:width .5s cubic-bezier(.2,.7,.2,1); }
form { position:relative; min-width:0; min-height:0; }
.step { position:absolute; inset:0; display:grid; align-content:safe center; max-width:620px; overflow-y:auto; padding:24px 0 58px; opacity:0; transform:translateY(18px); pointer-events:none; visibility:hidden; transition:opacity .28s ease,transform .28s ease; scrollbar-width:none; }
.step::-webkit-scrollbar { display:none; }
.step--active { opacity:1; transform:none; visibility:visible; pointer-events:auto; }
.eyebrow,.counter { margin:0 0 24px; color:var(--bronze); font-size:12px; font-weight:500; letter-spacing:.17em; }
h1,h2,label,legend { font-family:Archivo,sans-serif; font-weight:400; }
h1 { font-size:clamp(38px,4.6vw,56px); line-height:1.08; letter-spacing:-.035em; max-width:620px; margin:0; }
h1 span { display:block; }
h2,label,legend { display:block; font-size:clamp(30px,4vw,48px); line-height:1.12; letter-spacing:-.025em; margin:0 0 30px; }
.accent { width:58px; height:2px; background:var(--bronze); margin:32px 0 24px; }
.lead { color:var(--taupe); font-size:clamp(17px,2vw,21px); line-height:1.6; font-weight:300; max-width:620px; margin:0 0 34px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:34px; border:0; border-radius:8px; background:var(--bronze); color:var(--onyx); padding:16px 21px; font-weight:500; text-decoration:none; cursor:pointer; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); background:#c4a980; }
.button:focus-visible,.choice:has(input:focus-visible) { outline:2px solid var(--ivory); outline-offset:4px; }
input[type=text],input[type=tel] { display:block; width:min(100%,650px); border:0; border-bottom:1px solid var(--taupe); outline:0; background:transparent; color:var(--ivory); caret-color:var(--bronze); font-family:Archivo,sans-serif; font-size:clamp(25px,4vw,42px); padding:8px 0 14px; margin-bottom:24px; border-radius:0; box-shadow:0 0 0 transparent; transition:border-color .25s ease,box-shadow .25s ease; }
input[type=text]:focus,input[type=tel]:focus { border-bottom-color:var(--bronze); box-shadow:0 1px 0 var(--bronze); }
input::placeholder { color:#5e574d; }
fieldset { border:0; padding:0; margin:0; }
.choices { display:grid; gap:12px; max-width:650px; }
.choice { display:block; cursor:pointer; }
.choice input { position:absolute; opacity:0; }
.choice span { display:flex; align-items:center; gap:15px; border:1px solid var(--line); border-radius:8px; padding:17px 19px; transition:border .2s,background .2s,transform .2s; }
.choice b { display:grid; place-items:center; width:26px; height:26px; border:1px solid var(--bronze); border-radius:4px; color:var(--bronze); font-size:12px; }
.choice:hover span { border-color:var(--taupe); transform:translateX(3px); }
.choice input:checked + span { border-color:var(--bronze); background:rgba(181,154,112,.1); }
.choice input:checked + span b { background:var(--bronze); color:var(--onyx); }
.error { min-height:20px; color:var(--bronze); font-size:13px; }
.privacy { max-width:560px; color:var(--taupe); font-size:12px; line-height:1.5; }
.whatsapp-badge { width:52px; height:52px; display:grid; place-items:center; border:1px solid var(--bronze); border-radius:50%; color:var(--bronze); margin-bottom:28px; }
.whatsapp-badge svg { width:28px; height:28px; fill:currentColor; }
.button--whatsapp { min-width:310px; justify-content:space-between; }
.button__label { display:inline-flex; align-items:center; gap:10px; }
.button__label svg { width:22px; height:22px; fill:currentColor; }
.success .lead span { color:var(--ivory); }
.step-nav { position:absolute; right:clamp(24px,6vw,88px); bottom:50px; display:flex; gap:6px; z-index:3; }
.step-nav button { width:42px; height:42px; border:1px solid var(--line); background:transparent; color:var(--bronze); border-radius:6px; cursor:pointer; }
.step-nav button:disabled { opacity:.25; cursor:default; }
footer { align-self:end; color:var(--taupe); font-size:12px; letter-spacing:.03em; }
footer span { color:var(--bronze); margin:0 8px; }
@media (max-width:700px) {
  .shell { padding:24px; grid-template-rows:auto minmax(0,1fr) auto; row-gap:12px; }
  .brand__word { display:none; }
  .step { padding:20px 0 80px; }
  h1 { font-size:clamp(36px,10vw,46px); }
  .step-nav { right:24px; bottom:24px; }
  footer { display:none; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
