/* Reial Serveis Gràfics · web renovada (demo SecureCore) */
:root{--naranja:#F7B373;--naranja-o:#E8914A;--naranja-c:#FDE9D6;--negro:#141414;--negro2:#1E1E1F;--gris:#5F6268;--gris2:#9A9DA3;--linea:#E7E2DA;--crema:#FAF7F2;--blanco:#fff;
 --f-titulo:'Montserrat',system-ui,sans-serif;--f-texto:'Inter',system-ui,sans-serif;--radio:18px;--sombra:0 24px 60px -30px rgba(20,20,20,.35)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font:16px/1.65 var(--f-texto);color:var(--negro);background:var(--crema);overflow-x:hidden}
img,video,svg{max-width:100%;display:block}
.veh-svg{overflow:hidden;width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--f-titulo);line-height:1.1;letter-spacing:-.02em}
button,input,select,textarea{font:inherit;color:inherit}
.wrap{width:min(1240px,100% - 40px);margin-inline:auto}
section{padding:96px 0}
.naranja{color:var(--naranja-o)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:700 12px/1 var(--f-titulo);letter-spacing:.16em;text-transform:uppercase;color:var(--naranja-o)}
.eyebrow::before{content:"";width:28px;height:2px;background:currentColor;border-radius:2px}
.oscuro .eyebrow,.hero .eyebrow{color:var(--naranja)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 24px;border-radius:999px;font:700 15px/1 var(--f-titulo);border:2px solid transparent;cursor:pointer;transition:.25s;white-space:nowrap}
.btn svg{width:18px;height:18px;transition:transform .25s}
.btn:hover svg{transform:translateX(3px)}
.btn-naranja{background:var(--naranja);color:var(--negro)}
.btn-naranja:hover{background:var(--naranja-o);transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(232,145,74,.7)}
.btn-negro{background:var(--negro);color:#fff}
.btn-negro:hover{background:#000;transform:translateY(-2px)}
.btn-borde{border-color:rgba(255,255,255,.4);color:#fff}
.btn-borde:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-borde.osc{border-color:var(--negro);color:var(--negro)}
.btn-borde.osc:hover{background:var(--negro);color:#fff}

/* barra superior y cabecera */
.topbar{background:var(--negro);color:#c9cbcf;font-size:13px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:40px}
.topbar a:hover{color:#fff}
.tb-izq,.tb-der{display:flex;gap:22px;align-items:center}
.tb-izq span b{color:#fff;font-weight:600}
.lang{display:flex;border:1px solid #3a3a3c;border-radius:999px;overflow:hidden}
.lang a{padding:4px 11px;font:700 11px/1.4 var(--f-titulo);letter-spacing:.06em}
.lang a.on{background:var(--naranja);color:var(--negro)}
.header{position:sticky;top:0;z-index:50;background:rgba(250,247,242,.88);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid rgba(20,20,20,.06);transition:box-shadow .3s}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}
.marca{display:flex;align-items:center;gap:12px;flex-shrink:0}
.marca svg.r{width:44px;height:44px;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.marca:hover svg.r{transform:rotate(-12deg) scale(1.05)}
.marca .txt{display:flex;flex-direction:column;line-height:1}
.marca .txt b{font:800 22px/1 var(--f-titulo);letter-spacing:.04em}
.marca .txt small{font:600 9.5px/1.2 var(--f-titulo);letter-spacing:.24em;color:var(--gris);margin-top:4px}
.nav{display:flex;align-items:center;gap:4px}
.nav>a{padding:10px 13px;border-radius:999px;font:600 14px/1 var(--f-titulo);color:#3a3c40;transition:.2s}
.nav>a:hover{background:rgba(20,20,20,.06);color:var(--negro)}
.nav>a.activo{background:var(--negro);color:#fff}
.nav .acceso{display:inline-flex;gap:7px;align-items:center}
.nav .acceso svg{width:16px;height:16px}
.nav .btn{margin-left:8px;padding:13px 20px}
.burger{display:none;width:46px;height:46px;border:0;background:var(--negro);border-radius:12px;cursor:pointer;position:relative}
.burger span{position:absolute;left:13px;right:13px;height:2px;background:#fff;border-radius:2px;transition:.3s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:22px}.burger span:nth-child(3){top:28px}
.burger.x span:nth-child(1){top:22px;transform:rotate(45deg)}.burger.x span:nth-child(2){opacity:0}.burger.x span:nth-child(3){top:22px;transform:rotate(-45deg)}

/* portada */
.hero{position:relative;min-height:calc(100vh - 116px);min-height:calc(100svh - 116px);display:flex;align-items:center;color:#fff;overflow:hidden;background:var(--negro);padding:80px 0}
.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(14,14,14,.92) 0%,rgba(14,14,14,.6) 48%,rgba(14,14,14,.15) 100%)}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr .85fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(40px,6.2vw,86px);font-weight:800;margin:20px 0 22px}
.hero h1 em{font-style:normal;color:var(--naranja);display:inline-block}
.hero h1 .sub{display:block;font-size:.42em;font-weight:600;letter-spacing:-.01em;color:#d9dbde;margin-top:14px}
.hero .lead{font-size:clamp(17px,1.5vw,20px);color:#d3d5d9;max-width:600px}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero-datos{display:flex;gap:28px;flex-wrap:wrap;margin-top:44px;padding-top:28px;border-top:1px solid rgba(255,255,255,.14)}
.hero-datos div b{display:block;font:800 30px/1 var(--f-titulo);color:#fff}
.hero-datos div span{font-size:13px;color:#aeb1b6}
.hero-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(16px);border-radius:24px;padding:28px}
.hero-card h3{font-size:20px;margin-bottom:6px}
.hero-card>p{color:#b9bcc1;font-size:14px;margin-bottom:18px}
.hero-card a.op{display:flex;gap:14px;align-items:center;padding:14px;border-radius:14px;transition:.2s;border:1px solid transparent}
.hero-card a.op:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.12)}
.hero-card a.op .ic{width:44px;height:44px;border-radius:12px;background:var(--naranja);color:var(--negro);display:grid;place-items:center;flex-shrink:0}
.hero-card a.op .ic svg{width:22px;height:22px}
.hero-card a.op b{display:block;font:700 15px/1.25 var(--f-titulo)}
.hero-card a.op small{color:#aeb1b6;font-size:13px}
.hero-card a.op .fl{margin-left:auto;width:18px;color:var(--naranja);opacity:0;transform:translateX(-6px);transition:.2s}
.hero-card a.op:hover .fl{opacity:1;transform:none}

.cinta{background:var(--naranja);color:var(--negro);overflow:hidden;padding:18px 0;border-block:2px solid var(--negro)}
.cinta .pista{display:flex;gap:48px;width:max-content;animation:cinta 38s linear infinite;font:800 22px/1 var(--f-titulo);text-transform:uppercase;letter-spacing:.02em}
.cinta .pista span{display:flex;align-items:center;gap:48px}
.cinta .pista span::after{content:"✦";font-size:16px}
@keyframes cinta{to{transform:translateX(-50%)}}

.sec-cab{max-width:760px;margin-bottom:52px}
.sec-cab.centro{margin-inline:auto;text-align:center}
.sec-cab.centro .eyebrow::after{content:"";width:28px;height:2px;background:currentColor;border-radius:2px}
.sec-cab h2{font-size:clamp(32px,4vw,54px);font-weight:800;margin:16px 0 14px}
.sec-cab p{font-size:18px;color:var(--gris)}
.oscuro{background:var(--negro);color:#fff}
.oscuro .sec-cab p{color:#aeb1b6}
.blanco{background:#fff}

.servicios{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.serv{position:relative;border-radius:var(--radio);overflow:hidden;min-height:420px;display:flex;align-items:flex-end;color:#fff;isolation:isolate;background:#222}
.serv .foto{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .8s cubic-bezier(.2,.8,.2,1);z-index:-2}
.serv::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(0,0,0,.85) 100%);z-index:-1}
.serv:hover .foto{transform:scale(1.07)}
.serv .cuerpo{padding:28px}
.serv .num{font:800 13px/1 var(--f-titulo);color:var(--naranja);letter-spacing:.12em}
.serv h3{font-size:26px;margin:10px 0 8px}
.serv p{color:#d8dadd;font-size:15px;max-height:0;opacity:0;overflow:hidden;transition:.45s}
.serv:hover p,.serv:focus-visible p{max-height:120px;opacity:1}
.serv .mas{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font:700 14px/1 var(--f-titulo);color:var(--naranja)}
.serv .mas svg{width:16px}

/* bloque flotas con vehículo que cambia */
.flota{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center}
.flota h2{font-size:clamp(32px,4vw,52px);font-weight:800;margin:16px 0}
.flota p.l{color:#b9bcc1;font-size:18px}
.lista-ok{list-style:none;margin:26px 0 30px;display:grid;gap:12px}
.lista-ok li{display:flex;gap:12px;align-items:flex-start}
.lista-ok li::before{content:"";width:22px;height:22px;flex-shrink:0;margin-top:2px;border-radius:50%;background:var(--naranja) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23141414' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/13px no-repeat}
.oscuro .lista-ok li{color:#dfe1e4}
.escena-veh{background:linear-gradient(180deg,#232325,#19191a);border:1px solid #2c2c2e;border-radius:26px;padding:28px 24px 22px;position:relative}
.escena-veh .modelos{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.escena-veh .modelos button{border:1px solid #3a3a3c;background:transparent;color:#cfd1d5;padding:9px 14px;border-radius:999px;font:600 13px/1 var(--f-titulo);cursor:pointer;transition:.2s}
.escena-veh .modelos button.on,.escena-veh .modelos button:hover{background:var(--naranja);color:var(--negro);border-color:var(--naranja)}
.escena-veh .lienzo{aspect-ratio:16/8;display:grid;place-items:center;transition:opacity .25s,transform .35s}
.escena-veh .lienzo.cambia{opacity:0;transform:translateX(30px)}
.escena-veh .lienzo svg{width:100%;height:100%}
.escena-veh .pie-esc{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;padding-top:16px;border-top:1px solid #2e2e30;color:#9ea1a6;font-size:13px}
.escena-veh .pie-esc b{color:#fff;font:700 15px var(--f-titulo)}
.escena-veh .sello{position:absolute;top:-14px;right:20px;background:var(--naranja);color:var(--negro);font:800 12px/1 var(--f-titulo);padding:9px 13px;border-radius:999px;letter-spacing:.04em;box-shadow:0 10px 24px -10px rgba(247,179,115,.8)}

.proceso{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;counter-reset:p}
.paso{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:26px 22px;position:relative;transition:.3s}
.paso:hover{transform:translateY(-6px);box-shadow:var(--sombra)}
.paso::before{counter-increment:p;content:"0" counter(p);font:800 40px/1 var(--f-titulo);color:var(--naranja);display:block;margin-bottom:16px}
.paso h3{font-size:18px;margin-bottom:8px}
.paso p{color:var(--gris);font-size:14.5px}

.galeria{columns:4 260px;column-gap:16px}
.galeria figure{break-inside:avoid;margin-bottom:16px;border-radius:16px;overflow:hidden;position:relative;cursor:zoom-in;background:#ddd}
.galeria figure img{width:100%;transition:transform .6s}
.galeria figure:hover img{transform:scale(1.05)}
.galeria figcaption{position:absolute;left:10px;bottom:10px;right:10px;background:rgba(20,20,20,.78);color:#fff;font:600 13px/1.3 var(--f-titulo);padding:8px 12px;border-radius:10px;opacity:0;transform:translateY(6px);transition:.3s}
.galeria figure:hover figcaption{opacity:1;transform:none}
.filtros-g{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.filtros-g button{border:1.5px solid var(--linea);background:#fff;padding:10px 16px;border-radius:999px;font:600 14px/1 var(--f-titulo);cursor:pointer;transition:.2s}
.filtros-g button.on,.filtros-g button:hover{background:var(--negro);border-color:var(--negro);color:#fff}
.galeria figure.oculta{display:none}
.visor{position:fixed;inset:0;z-index:200;background:rgba(10,10,10,.92);display:none;place-items:center;padding:24px}
.visor.on{display:grid}
.visor img{max-height:86vh;border-radius:14px}
.visor button{position:absolute;top:18px;right:18px;width:46px;height:46px;border-radius:50%;border:0;background:#fff;font-size:22px;cursor:pointer}

.resenas{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.resena{background:#fff;border-radius:var(--radio);padding:28px;border:1px solid var(--linea)}
.estrellas{color:#F5A623;letter-spacing:2px;font-size:18px}
.resena p{margin:14px 0 18px;font-size:16px}
.resena small{color:var(--gris);font-size:13px}
.nota-g{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:34px;flex-wrap:wrap}
.nota-g .n{font:800 46px/1 var(--f-titulo)}
.nota-g a{text-decoration:underline;text-underline-offset:3px;color:var(--gris)}

.tienda{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}
.tienda img{border-radius:24px;box-shadow:var(--sombra)}
.horario{display:grid;grid-template-columns:auto 1fr;gap:6px 22px;margin:22px 0 28px;font-size:15px}
.horario span{color:var(--gris)}
.horario .hoy{font-weight:700;color:var(--negro)}
.estado-ab{display:inline-flex;align-items:center;gap:8px;font:700 13px/1 var(--f-titulo);padding:8px 12px;border-radius:999px;background:#E9F7EE;color:#1F7A3E}
.estado-ab.cerrado{background:#FCECEA;color:#B42318}
.estado-ab::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;animation:late 1.6s infinite}
@keyframes late{50%{opacity:.3}}

.cta-banda{background:var(--naranja);border-radius:28px;padding:56px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;position:relative;overflow:hidden}
.cta-banda::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;border:40px solid rgba(255,255,255,.25)}
.cta-banda h2{font-size:clamp(28px,3.4vw,44px);font-weight:800;max-width:680px}
.cta-banda p{font-size:18px;margin-top:10px;max-width:620px}
.cta-banda .acciones{display:flex;gap:12px;flex-wrap:wrap;position:relative;z-index:1}

/* páginas interiores */
.pag-cab{position:relative;background:var(--negro);color:#fff;padding:110px 0 90px;overflow:hidden}
.pag-cab .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.32}
.pag-cab::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,20,20,.95),rgba(20,20,20,.35))}
.pag-cab .wrap{position:relative;z-index:2}
.migas{font-size:13px;color:#aeb1b6;margin-bottom:22px}
.migas a:hover{color:#fff}
.pag-cab h1{font-size:clamp(38px,5.4vw,72px);font-weight:800;margin:16px 0 18px;max-width:900px}
.pag-cab h1 em{font-style:normal;color:var(--naranja)}
.pag-cab p{font-size:19px;color:#d3d5d9;max-width:680px}
.bloque{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:80px 0;border-bottom:1px solid var(--linea)}
.bloque:last-child{border-bottom:0}
.bloque.inv .foto{order:-1}
.bloque h2{font-size:clamp(28px,3.2vw,42px);font-weight:800;margin:14px 0 16px}
.bloque p{color:var(--gris);font-size:17px}
.bloque .foto img{border-radius:24px;box-shadow:var(--sombra);width:100%;aspect-ratio:1/1;object-fit:cover}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 26px}
.chips span{background:#fff;border:1px solid var(--linea);padding:8px 13px;border-radius:999px;font:600 13.5px/1 var(--f-titulo)}
.tarjetas{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tarjeta{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:28px;transition:.3s}
.tarjeta:hover{transform:translateY(-5px);box-shadow:var(--sombra)}
.tarjeta .ic{width:52px;height:52px;border-radius:14px;background:var(--naranja-c);color:var(--naranja-o);display:grid;place-items:center;margin-bottom:18px}
.tarjeta .ic svg{width:26px;height:26px}
.tarjeta h3{font-size:20px;margin-bottom:8px}
.tarjeta p{color:var(--gris);font-size:15px}
.tarjeta .dur{display:inline-block;margin-top:14px;font:700 12px/1 var(--f-titulo);padding:7px 10px;border-radius:8px;background:var(--negro);color:var(--naranja);letter-spacing:.04em}
.gamas{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.gama{border-radius:var(--radio);padding:32px;background:#fff;border:1.5px solid var(--linea);position:relative}
.gama.dest{background:var(--negro);color:#fff;border-color:var(--negro)}
.gama.dest p,.gama.dest li{color:#c4c7cc}
.gama .et{position:absolute;top:-12px;left:28px;background:var(--naranja);color:var(--negro);font:800 11px/1 var(--f-titulo);padding:7px 11px;border-radius:999px;letter-spacing:.06em}
.gama h3{font-size:24px}
.gama .anios{font:800 44px/1 var(--f-titulo);color:var(--naranja-o);margin:16px 0 4px}
.gama.dest .anios{color:var(--naranja)}
.gama p{color:var(--gris);font-size:15px}
.gama ul{list-style:none;margin-top:18px;display:grid;gap:8px;font-size:14.5px}
.gama li::before{content:"— ";color:var(--naranja-o)}
.faq{max-width:860px;margin-inline:auto}
.faq details{border-bottom:1px solid var(--linea);padding:22px 0}
.faq summary{cursor:pointer;font:700 19px/1.3 var(--f-titulo);list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:28px;line-height:.8;color:var(--naranja-o);transition:.3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin-top:12px;color:var(--gris);font-size:16.5px}
.mock-ficha{background:#fff;border-radius:22px;box-shadow:var(--sombra);overflow:hidden;border:1px solid var(--linea)}
.mock-ficha .cab{background:var(--negro);color:#fff;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;font:700 14px var(--f-titulo)}
.mock-ficha .cab small{color:var(--naranja);font-weight:600}
.mock-ficha .fila{display:grid;grid-template-columns:120px 1fr auto;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid #f0ece6}
.mock-ficha .fila:last-child{border-bottom:0}
.mock-ficha .mini{background:#F4F1EC;border-radius:10px;padding:4px}
.mock-ficha .fila b{display:block;font:700 14px/1.2 var(--f-titulo)}
.mock-ficha .fila small{color:var(--gris);font-size:12.5px}
.est{display:inline-flex;align-items:center;gap:6px;font:700 11.5px/1 var(--f-titulo);padding:7px 10px;border-radius:999px;white-space:nowrap}
.est::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.est.aprob{background:#FFF4E5;color:#B45309}.est.listo{background:#E9F7EE;color:#1F7A3E}.est.montado{background:#EEF0F3;color:#3C4043}.est.diseno{background:#EAF1FD;color:#1A56DB}.est.renovar{background:#FCECEA;color:#B42318}

/* presupuestador público */
.conf{display:grid;grid-template-columns:1.35fr .9fr;gap:28px;align-items:start}
.conf>*,.conf-panel,.zona>*{min-width:0}
.conf-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.conf-tabs button{display:inline-flex;align-items:center;gap:9px;border:1.5px solid var(--linea);background:#fff;padding:13px 18px;border-radius:14px;font:700 15px/1 var(--f-titulo);cursor:pointer;transition:.2s}
.conf-tabs button svg{width:20px;height:20px}
.conf-tabs button.on{background:var(--negro);color:#fff;border-color:var(--negro)}
.conf-panel{background:#fff;border:1px solid var(--linea);border-radius:22px;padding:28px}
.conf-panel h3{font-size:18px;margin:22px 0 12px}
.conf-panel h3:first-child{margin-top:0}
.opciones{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.op-btn{border:1.5px solid var(--linea);background:#fff;border-radius:14px;padding:14px;text-align:left;cursor:pointer;transition:.2s}
.op-btn b{display:block;font:700 14.5px/1.25 var(--f-titulo)}
.op-btn small{color:var(--gris);font-size:12.5px;line-height:1.35;display:block;margin-top:4px}
.op-btn:hover{border-color:#cfc8bd}
.op-btn.on{border-color:var(--negro);background:var(--negro);color:#fff}
.op-btn.on small{color:#c2c5ca}
.zonas{display:grid;gap:10px}
.zona{display:grid;grid-template-columns:160px 1fr;gap:12px;align-items:center}
.zona>span{font:600 14px var(--f-titulo)}
.seg{display:flex;background:#F2EEE8;border-radius:12px;padding:4px;gap:4px;flex-wrap:wrap}
.seg button{flex:1;border:0;background:transparent;padding:9px 8px;border-radius:9px;font:600 13px/1 var(--f-titulo);cursor:pointer;color:#55585e;transition:.2s;white-space:nowrap}
.seg button.on{background:#fff;color:var(--negro);box-shadow:0 2px 8px -3px rgba(0,0,0,.25)}
.campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.campos label,.form label{display:grid;gap:6px;font:600 13px var(--f-titulo);color:#44474c}
.campos input,.campos select,.form input,.form select,.form textarea{width:100%;padding:13px 14px;border:1.5px solid var(--linea);border-radius:12px;background:#fff;font:15px var(--f-texto);transition:.2s}
.campos input:focus,.campos select:focus,.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--naranja-o);box-shadow:0 0 0 4px rgba(247,179,115,.25)}
.vista-veh{background:linear-gradient(180deg,#F6F2EC,#EDE7DE);border-radius:18px;padding:18px;margin-bottom:6px}
.resumen{position:sticky;top:96px;background:var(--negro);color:#fff;border-radius:22px;padding:28px;overflow:hidden}
.resumen::before{content:"";position:absolute;right:-80px;top:-80px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(247,179,115,.35),transparent 70%)}
.resumen small.t{color:#aeb1b6;font-size:13px}
.resumen .precio{font:800 52px/1 var(--f-titulo);margin:10px 0 2px;color:var(--naranja);transition:transform .25s}
.resumen .precio.pulso{transform:scale(1.04)}
.resumen .iva{color:#c9cbcf;font-size:14px}
.resumen .desg{margin:22px 0;display:grid;gap:9px;font-size:14px;border-top:1px solid #2e2e30;padding-top:18px}
.resumen .desg div{display:flex;justify-content:space-between;gap:12px}
.resumen .desg span{color:#aeb1b6}
.resumen .nota{font-size:12.5px;color:#9ea1a6;margin-top:14px}
.resumen .btn{width:100%;justify-content:center;margin-top:8px}
.aviso-mini{background:#3a2a17;color:#ffd8b0;border-radius:12px;padding:10px 12px;font-size:13px;margin-top:10px;display:none}
.aviso-mini.on{display:block}

/* contacto */
.contacto-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;align-items:start}
.datos{display:grid;gap:14px}
.dato{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--linea);border-radius:18px;padding:18px;transition:.2s}
.dato:hover{transform:translateX(4px);border-color:#d8d0c4}
.dato .ic{width:50px;height:50px;border-radius:14px;background:var(--negro);color:var(--naranja);display:grid;place-items:center;flex-shrink:0}
.dato .ic svg{width:22px;height:22px}
.dato small{color:var(--gris);font-size:13px;display:block}
.dato b{font:700 16px/1.3 var(--f-titulo)}
.form{background:#fff;border:1px solid var(--linea);border-radius:22px;padding:32px;display:grid;gap:16px}
.form .fila{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form textarea{min-height:120px;resize:vertical}
.form .chk{display:flex;gap:10px;align-items:flex-start;font:400 14px var(--f-texto);color:var(--gris)}
.form .chk input{width:18px;height:18px;margin-top:3px;flex-shrink:0}
.form .ok{display:none;background:#E9F7EE;color:#1F7A3E;border-radius:12px;padding:14px;font-weight:600}
.subir{border:2px dashed #d9d1c5;border-radius:14px;padding:18px;text-align:center;color:var(--gris);font-size:14px;cursor:pointer;transition:.2s;display:block}
.subir:hover{border-color:var(--naranja-o);background:#FFF8F1}
.subir input{display:none}
.mapa{margin-top:40px;border-radius:22px;overflow:hidden;height:380px;border:1px solid var(--linea)}
.mapa iframe{width:100%;height:100%;border:0}

/* pie */
.pie{background:var(--negro);color:#b9bcc1;padding:80px 0 30px;font-size:15px}
.pie-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.pie .marca .txt b{color:#fff}
.pie .marca .txt small{color:#8d9096}
.pie p.desc{margin:18px 0;max-width:340px}
.pie h4{color:#fff;font-size:15px;margin-bottom:16px}
.pie ul{list-style:none;display:grid;gap:9px}
.pie a:hover{color:var(--naranja)}
.redes{display:flex;gap:10px}
.redes a{width:40px;height:40px;border-radius:12px;background:#232325;display:grid;place-items:center;color:#fff;transition:.2s}
.redes a:hover{background:var(--naranja);color:var(--negro)}
.redes svg{width:18px;height:18px}
.pie .ng{height:34px;width:auto;margin-top:22px;background:#fff;border-radius:8px;padding:5px 8px}
.pie-bajo{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:60px;padding-top:24px;border-top:1px solid #2a2a2c;font-size:13px}
.pie-bajo .legal{display:flex;gap:18px;flex-wrap:wrap}
.flotante{position:fixed;right:20px;bottom:20px;z-index:60;display:grid;gap:10px}
.flotante a{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:0 12px 28px -10px rgba(0,0,0,.5);transition:.25s}
.flotante a:hover{transform:scale(1.08)}
.flotante .wa{background:#25D366}.flotante .tel{background:var(--negro)}
.flotante svg{width:26px;height:26px}
.demo-aviso{position:fixed;left:16px;bottom:16px;z-index:60;background:rgba(20,20,20,.9);color:#fff;font-size:12px;padding:8px 12px;border-radius:10px}
.demo-aviso b{color:var(--naranja)}
.demo-aviso{animation:fuera .6s 7s forwards;pointer-events:none}
@keyframes fuera{to{opacity:0;visibility:hidden}}

/* animación de aparición */
.rev{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.rev.vis{opacity:1;transform:none}
.rev.d1{transition-delay:.1s}.rev.d2{transition-delay:.2s}.rev.d3{transition-delay:.3s}

/* intro: el logo se corta como un vinilo y la pantalla se despega */
body.intro-on{overflow:hidden}
#intro{position:fixed;inset:0;z-index:300;pointer-events:auto}
#intro .lamina{position:absolute;inset:0;background:var(--negro);display:grid;place-items:center;clip-path:polygon(0 0,100% 0,100% 100%,100% 100%,0 100%)}
#intro .lamina::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1.5px);background-size:22px 22px}
#intro .escena{position:relative;display:grid;justify-items:center;gap:22px}
#intro svg.r{width:min(170px,40vw);height:auto;overflow:visible}
#intro svg.r path{fill:transparent;stroke:var(--naranja);stroke-width:5;stroke-linejoin:round;stroke-dasharray:2600;stroke-dashoffset:2600;animation:traza 1.5s cubic-bezier(.6,.1,.3,1) forwards,rellena .5s 1.35s forwards}
#intro .cuchilla{position:absolute;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 18px 6px rgba(247,179,115,.8);top:0;left:0;offset-path:path("M521 572L520 563 514 547 500 531 366 375 391 364 427 342 452 316 474 276 482 241 482 206 476 179 460 143 433 110 409 94 384 80 355 74 121 72 166 40 229 14 302 0 340 2 431 20 494 52 541 88 582 135 616 193 636 256 642 299 642 344 632 401 610 459 584 504 556 540 521 572");animation:corre 1.4s cubic-bezier(.6,.1,.3,1) forwards,apaga .3s 1.4s forwards}
#intro .palabra{font:800 clamp(30px,6vw,52px)/1 var(--f-titulo);letter-spacing:.14em;color:#fff;opacity:0;transform:translateY(12px);animation:sube .6s 1.2s forwards}
#intro .palabra small{display:block;text-align:center;font:600 clamp(10px,1.6vw,13px)/1 var(--f-titulo);letter-spacing:.42em;color:#9ea1a6;margin-top:10px}
#intro .doblez{position:absolute;inset:0;background:linear-gradient(135deg,#fff 0%,#E9E4DC 40%,#BDB6AB 60%,#fff 100%);clip-path:polygon(100% 100%,100% 100%,100% 100%);filter:drop-shadow(-12px -12px 24px rgba(0,0,0,.35));opacity:0}
#intro.abrir .lamina{animation:despega 1.1s cubic-bezier(.55,.05,.35,1) forwards}
#intro.abrir .doblez{animation:dobla 1.1s cubic-bezier(.55,.05,.35,1) forwards}
#intro .saltar{position:absolute;right:22px;bottom:22px;z-index:3;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff;padding:10px 16px;border-radius:999px;font:600 13px var(--f-titulo);cursor:pointer}
#intro.abrir .saltar{display:none}
@keyframes traza{to{stroke-dashoffset:0}}
@keyframes rellena{to{fill:var(--naranja);stroke-width:0}}
@keyframes corre{from{offset-distance:0}to{offset-distance:100%}}
@keyframes apaga{to{opacity:0}}
@keyframes sube{to{opacity:1;transform:none}}
@keyframes despega{0%{clip-path:polygon(0 0,100% 0,100% 100%,100% 100%,0 100%)}50%{clip-path:polygon(0 0,100% 0,100% 0,0 100%,0 100%)}100%{clip-path:polygon(0 0,0 0,0 0,0 0,0 0)}}
@keyframes dobla{0%{opacity:1;clip-path:polygon(100% 100%,100% 100%,100% 100%)}50%{opacity:1;clip-path:polygon(100% 0,0 100%,0 0)}100%{opacity:0;clip-path:polygon(0 0,0 0,0 0)}}

@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.rev{opacity:1;transform:none}}

/* responsive */
@media (max-width:1180px){
 .nav{position:fixed;top:116px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--crema);padding:16px 20px 28px;gap:4px;border-bottom:1px solid var(--linea);box-shadow:0 30px 40px -30px rgba(0,0,0,.4);transform:translateY(-12px);opacity:0;visibility:hidden;pointer-events:none;transition:.3s;max-height:calc(100vh - 116px);overflow:auto}
 .nav.abierto{transform:none;opacity:1;visibility:visible;pointer-events:auto}
 .nav>a{padding:15px 14px;font-size:16px}
 .nav .btn{margin:10px 0 0;justify-content:center}
 .burger{display:block}
 .hero .wrap{grid-template-columns:1fr}
 .hero-card{max-width:560px}
 .proceso{grid-template-columns:repeat(3,1fr)}
 .flota,.tienda,.conf,.contacto-grid,.bloque{grid-template-columns:1fr;gap:36px}
 .bloque.inv .foto{order:0}
 .resumen{position:relative;top:0}
 .pie-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
 section{padding:70px 0}
 .servicios,.tarjetas,.gamas,.resenas{grid-template-columns:1fr 1fr}
 .tb-izq .dir{display:none}
}
@media (max-width:620px){
 .wrap{width:calc(100% - 32px)}
 .topbar{font-size:12px}.tb-izq{display:none}.topbar .wrap{justify-content:flex-end}
 .header .wrap{min-height:66px}
 .nav{top:106px;max-height:calc(100vh - 106px)}
 .marca svg.r{width:38px;height:38px}.marca .txt b{font-size:19px}
 .hero{padding:56px 0;min-height:auto}
 .hero-datos{gap:18px}.hero-datos div b{font-size:24px}
 .servicios,.tarjetas,.gamas,.resenas,.proceso{grid-template-columns:1fr}
 .serv{min-height:340px}.serv p{max-height:none;opacity:1}
 .galeria{columns:2 140px;column-gap:10px}.galeria figure{margin-bottom:10px}
 .cta-banda{padding:34px 26px}
 .zona{grid-template-columns:1fr;gap:6px}
 .form{padding:22px}.form .fila{grid-template-columns:1fr}
 .conf-panel{padding:20px}
 .resumen .precio{font-size:44px}
 .pie-grid{grid-template-columns:1fr}
 .mock-ficha .fila{grid-template-columns:84px 1fr;}.mock-ficha .fila .est{grid-column:2}
 .demo-aviso{left:10px;bottom:10px;font-size:11px}
 .flotante{right:12px;bottom:12px}.flotante a{width:50px;height:50px}
 .ctas .btn{flex:1;justify-content:center}
}
