:root{--bk:#0d0b09;--bk2:#1a1612;--wh:#fff;--bl:#1877F2;--bld:#0B63C4;--blt:#6fb0ff;--am:#FFB020;--mut:#d6cfc6;--ff:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;--fb:Figtree,system-ui,sans-serif;--bar:76px}
*{box-sizing:border-box;margin:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;color-scheme:dark;-webkit-tap-highlight-color:transparent}
a,button,input,textarea,label{touch-action:manipulation}
body{background:var(--bk);color:var(--wh);font:400 1.0625rem/1.5 var(--fb);overflow-x:hidden;padding-bottom:calc(var(--bar) + env(safe-area-inset-bottom))}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--am);outline-offset:3px}
.skip{position:fixed;left:8px;top:-60px;z-index:100;background:var(--am);color:#000;padding:12px 16px;border-radius:8px;font-weight:700}
.skip:focus{top:8px}
.prog{position:fixed;inset:0 0 auto 0;height:4px;z-index:60;background:#0d0b09}
.prog i{display:block;height:100%;width:100%;background:var(--am);transform-origin:left;transform:scaleX(0)}

/* top */
.top{position:fixed;inset:4px 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:8px 16px 24px;gap:12px;background:linear-gradient(rgba(13,11,9,.85),rgba(13,11,9,0))}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;min-height:44px;color:var(--wh)}
.logo{width:44px;height:38px;color:var(--wh);}
.bw{font:900 2rem/1 var(--ff);letter-spacing:.02em;}
.top .nav,.top .tel,.top .top-cta{display:none}
.mb{margin-left:auto;width:48px;height:48px;border-radius:50%;border:0;background:rgba(13,11,9,.85);color:#fff;font-size:1.5rem;cursor:pointer}
.menu{position:fixed;inset:0;z-index:48;background:rgba(13,11,9,.97);display:flex;flex-direction:column;justify-content:center;gap:4px;padding:90px 24px 100px}
.menu[hidden]{display:none}
.menu a{font:900 clamp(2.6rem,13vw,4rem)/1.05 var(--ff);text-transform:uppercase;text-decoration:none;min-height:56px;display:flex;align-items:center;opacity:0;transform:translateX(-24px);animation:mi .5s cubic-bezier(.2,.7,.2,1) forwards}
.menu a:nth-child(2){animation-delay:.05s}.menu a:nth-child(3){animation-delay:.1s}.menu a:nth-child(4){animation-delay:.15s}.menu a:nth-child(5){animation-delay:.2s}.menu a:nth-child(6){animation-delay:.25s;color:var(--am)}
@keyframes mi{to{opacity:1;transform:none}}
.lang{display:flex;background:rgba(13,11,9,.85);border-radius:99px;padding:3px}
.lang button{min-width:48px;min-height:44px;border:0;border-radius:99px;background:none;color:var(--wh);font:700 .9rem var(--fb);cursor:pointer}
.lang button[aria-pressed=true]{background:var(--wh);color:#000}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 24px;border-radius:99px;border:2px solid transparent;font:700 1.05rem var(--fb);text-decoration:none;cursor:pointer;transition:transform .15s}
.btn:active{transform:scale(.97)}
.btn-blue{background:var(--bld);color:#fff}
.btn-blue:hover{background:#0A56AA}
.btn-ghost{background:rgba(13,11,9,.5);border-color:var(--wh);color:#fff;}
.btn-xl{min-height:60px;font-size:1.15rem;padding:0 32px}

/* screens (mobile first: full-bleed photo) */
.scr{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;isolation:isolate}
.ph{position:absolute;inset:0;z-index:-1}
.ph img{width:100%;height:100%;object-fit:cover}
.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(13,11,9,.94) 0%,rgba(13,11,9,.78) 34%,rgba(13,11,9,.25) 66%,rgba(13,11,9,.5) 100%)}
.tx{padding:96px 20px calc(28px + var(--bar));display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.big{font:900 clamp(3.4rem,19vw,6.2rem)/.86 var(--ff);text-transform:uppercase;letter-spacing:.012em;text-wrap:balance}
.big em{font-style:normal;color:var(--am)}
html[lang=es] .big{line-height:1} /* las tildes (Ó, É) chocaban con la línea de arriba */
.lead{font-size:1.15rem;max-width:36ch;color:#f3eee8}
.tag{display:inline-flex;gap:8px;align-items:center;font:600 .95rem var(--fb);letter-spacing:.01em;color:var(--mut)}
.hint{display:flex;gap:8px;align-items:center;color:var(--mut);font-size:.9rem}
.plain,.wiz,.strip{background:var(--bk2)}


/* chips */
.chips{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;margin:8px -20px 0;padding:4px 20px 8px;width:calc(100% + 40px);scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;scroll-snap-align:start;min-height:56px;padding:0 24px;border-radius:99px;border:2px solid rgba(255,255,255,.55);background:rgba(13,11,9,.6);color:#fff;font:700 1.05rem var(--fb);cursor:pointer;}
.chip[aria-selected=true]{background:var(--wh);color:#000;border-color:var(--wh)}

/* steps */
.steps{list-style:none;padding:0;display:grid;gap:20px;width:100%}
.steps li{display:flex;gap:16px;align-items:flex-start}
.steps b{font:900 3rem/1 var(--ff);color:var(--am);min-width:2.4ch}
.steps strong{display:block;font:800 1.5rem/1.1 var(--ff);text-transform:uppercase;letter-spacing:.02em}
.steps span{color:#f3eee8;display:block;margin-top:4px}

/* reel */
.strip{justify-content:center;gap:12px;padding-bottom:20px}
.strip .tx{padding-bottom:0}
.reel{display:flex;gap:12px;overflow-x:auto;padding:8px 20px 12px;scroll-snap-type:x proximity;scrollbar-width:none}
.reel::-webkit-scrollbar{display:none}
.reel button{flex:0 0 76%;aspect-ratio:3/4;border:0;padding:0;border-radius:20px;overflow:hidden;cursor:pointer;scroll-snap-align:center;background:#000}
.reel img{width:100%;height:100%;object-fit:cover}

/* wizard */
.wiz{justify-content:center;gap:12px;padding-bottom:12px}
.wiz .tx{padding-top:72px;padding-bottom:0}.wiz .lead{display:none}
.wiz .big{font-size:clamp(2.8rem,14vw,4.4rem)}
.form{padding:8px 20px 20px;display:flex;flex-direction:column;gap:16px;width:100%;max-width:560px}
.stepno{font:800 1.4rem var(--ff);color:var(--am);letter-spacing:.04em;font-variant-numeric:tabular-nums}
fieldset{border:0;padding:0;min-width:0}
legend,.form h3{font:800 1.7rem/1 var(--ff);text-transform:uppercase;margin-bottom:12px}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:48px;padding:4px 12px;border-radius:12px;border:2px solid #5a524a;font-weight:700;font-size:.98rem;line-height:1.2;cursor:pointer}
.opt input:checked+span{background:var(--wh);color:#000;border-color:var(--wh)}
.opt input:focus-visible+span{outline:3px solid var(--am);outline-offset:3px}
.form label{display:block;font-weight:700;margin:12px 0 8px}
.form input:not([type=radio]),.form textarea{width:100%;min-height:56px;padding:12px 16px;border-radius:12px;border:2px solid #5a524a;background:var(--bk);color:#fff;font:400 1.1rem var(--fb)}
.form textarea{min-height:72px;resize:vertical}
.err{color:#ffb4a8;min-height:1.4em;margin-top:8px}
.sum{display:grid;gap:10px;margin-bottom:12px}
.sum div{border-bottom:1px solid #4a423a;padding-bottom:8px}
.sum dt{font-size:.9rem;color:var(--mut)}
.sum dd{font-size:1.15rem;overflow-wrap:anywhere}
.small{color:var(--mut);font-size:.95rem}
.nav2{display:flex;gap:8px;margin-top:8px}
.nav2 #next{flex:1}

/* footer */
.foot{background:#000;padding:48px 20px 24px;display:grid;gap:24px}
.foot ul{list-style:none;padding:0;display:grid;gap:8px}
.foot li{display:flex;gap:12px;align-items:center;min-height:44px}
.foot li i,.area i{color:var(--mut);font-size:1.4rem}
.foot a{text-decoration:underline;text-underline-offset:3px}
.area{display:flex;gap:12px;color:var(--mut)}
.big2{font-size:4rem}

/* bar */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:55;display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#0d0b09;border-top:1px solid #3a332c}
.bar::after{content:"";position:absolute;left:0;right:0;top:100%;height:160px;background:#0d0b09}
.bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;border-radius:16px;text-decoration:none;font:700 .82rem var(--fb);background:#2a241e}
.bar a i{font-size:1.4rem}
.bar a.main{background:var(--bld);font-size:.9rem}

/* lightbox */
dialog{overscroll-behavior:contain;border:0;background:#000;color:#fff;width:100%;height:100dvh;max-width:none;max-height:none;padding:0}
dialog::backdrop{background:#000}
dialog[open]{display:flex;align-items:center;justify-content:center}
#lbimg{max-width:100%;max-height:100dvh;object-fit:contain}
dialog button{position:absolute;width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;font-size:1.5rem;cursor:pointer}
.lbx{top:12px;right:12px}.lbp{left:8px;top:50%}.lbn{right:8px;top:50%}

/* dots */
.dots{display:none}

@media (hover:hover){.chip:hover{border-color:var(--am)}}

/* desktop: two columns */
@media (min-width:900px){
  :root{--bar:0px}
  body{padding-bottom:0}
  .top{padding:10px 48px 24px}
  .top .nav{display:flex;gap:6px;margin-left:auto}
  .nav a{display:flex;align-items:center;min-height:44px;padding:0 14px;text-decoration:none;font-weight:500}
  .nav a:hover{color:var(--am)}
  .top .tel{display:flex;align-items:center;gap:8px;min-height:44px;text-decoration:none;font-weight:700}
  .top .top-cta{display:inline-flex;min-height:46px}
  .bar,.mb,.menu{display:none!important}
  .scr{display:grid;scroll-snap-align:start;grid-template-columns:1fr 1fr;align-items:stretch;overflow:visible}
  .scr>.ph{overflow:hidden;position:relative;z-index:0;inset:auto;min-height:100vh;min-height:100svh;grid-column:2;grid-row:1}
  .scr>.ph::after{background:linear-gradient(to right,rgba(13,11,9,.55),transparent 30%)}
  .scr>.tx{grid-column:1;grid-row:1;justify-content:center;padding:120px 72px 72px 8vw;background:var(--bk)}
  .scr.alt>.ph{grid-column:1}.scr.alt>.tx{grid-column:2;padding:120px 8vw 72px 72px}
  .big{font-size:clamp(5rem,8.6vw,9.5rem)}
  .lead{font-size:1.3rem;max-width:34ch}
  .hint{display:none}
  .chips{flex-wrap:wrap;overflow:visible;margin:12px 0 0;width:100%;padding:0}
  .chip{min-height:52px}
  .plain>.tx{grid-column:1}
  .strip{display:flex;justify-content:center;background:var(--bk2);padding:90px 0 40px}
  .strip .tx{padding:0 8vw;background:none}
  .reel{padding:12px 8vw 12px}
  .reel button{flex:0 0 clamp(260px,24vw,380px)}
  .wiz{display:grid;grid-template-columns:1fr 1fr;align-items:center}
  .wiz>.tx{grid-column:1;background:none}
  .wiz>.form{grid-column:2;grid-row:1;justify-self:center;padding:96px 48px 48px}
  .foot{grid-template-columns:1fr 1.3fr 1fr;padding:64px 8vw;align-items:start}
  .dots{display:flex;flex-direction:column;position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:55;gap:2px}
  .dots a{display:block;width:44px;height:28px;position:relative;text-decoration:none}
  .dots a::before{content:"";position:absolute;right:16px;top:9px;width:10px;height:10px;border-radius:50%;background:#fff;opacity:.55;box-shadow:0 0 0 2px rgba(0,0,0,.55);transition:.2s}
  .dots a[aria-current=true]::before{background:var(--am);opacity:1;transform:scale(1.5)}
  .dots a span{position:absolute;right:44px;top:2px;background:#000;color:#fff;padding:2px 10px;border-radius:99px;font-size:.8rem;white-space:nowrap;opacity:0;pointer-events:none}
  .dots a:hover span,.dots a:focus-visible span{opacity:1}
}
@media (min-width:900px) and (max-height:700px){.scr>.tx{padding-top:96px}}

/* motion */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .7s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.js .rv.in{opacity:1;transform:none}
.js .reel .rv{transform:translateX(40px) scale(.96)}
/* ponytail: entrada de foto al llegar a la pantalla */
.js .scr:not(#hero) .ph img{transform:scale(1.07)}
.js .scr.on:not(#hero) .ph img{transform:none;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.js .big em{display:inline-block}


.chip,.btn,.reel button,.opt span{transition:transform .2s,background .2s,border-color .2s,color .2s}
.reel button:active{transform:scale(.97)}

@media (hover:hover){.reel button:hover img{opacity:.85}.opt span:hover{border-color:var(--am)}}
.reel img{transition:opacity .2s}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.js .rv{opacity:1;transform:none}}

.scr{scroll-margin-top:0}
.anytime{display:flex;align-items:center;gap:8px;margin-top:16px;min-height:44px;color:#fff;text-decoration:none;font:600 1rem/1.3 var(--fb)}
.anytime i{font-size:1.5rem;color:var(--mut)}
.anytime b{color:var(--am);white-space:nowrap}

.legal{color:var(--mut);font-size:.95rem;grid-column:1/-1}
.legal a,.small a{color:inherit;text-underline-offset:3px}

/* páginas de servicio (build-pages.py) */
.lang-link{margin-left:auto;display:flex;align-items:center;min-height:44px;padding:0 16px;border-radius:99px;background:rgba(13,11,9,.85);font-weight:700;text-decoration:none}
.crumb{font-size:.95rem;color:var(--mut)}
.crumb a{color:inherit;text-underline-offset:3px}
.sv{max-width:72ch;margin:0 auto;padding:48px 20px 64px}
.sv p{margin-top:12px;color:#f3eee8}
.sv h2{font:800 clamp(1.8rem,7vw,2.6rem)/1 var(--ff);text-transform:uppercase;margin-top:48px}
.sv-list{margin-top:20px;padding:0;list-style:none;display:grid;gap:8px}
.sv-list li{padding:12px 16px;border-radius:12px;background:var(--bk2)}
.sv-gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:16px}
.sv-gal img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:16px}
.sv details{border-bottom:1px solid #3a332c;padding:12px 0}
.sv details:first-of-type{margin-top:12px}
.sv summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}
.sv-cta{margin-top:48px;padding:24px;border-radius:20px;background:var(--bk2);display:grid;gap:12px;justify-items:start}
.sv-cta h2{margin-top:0}
.sv-links{padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.sv-links a{display:flex;align-items:center;min-height:44px;padding:0 16px;border-radius:99px;border:2px solid #5a524a;text-decoration:none;font-weight:700}
.sv-links a[aria-current]{background:var(--wh);color:#000;border-color:var(--wh)}
.foot .svcs{grid-column:1/-1;list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px}
.foot .svcs a{text-decoration:underline;text-underline-offset:3px}
@media (min-width:900px){.svp .lang-link{margin-left:0}.svp .top .tel{margin-left:auto}}
@media (min-width:900px){.svp .big{font-size:clamp(4rem,6vw,7rem)}}
