/* pulido — lo escribe su agente */

/* === defensa === */
/* Easter egg: botón, consola de juegos, marcador de «Defensa Avantia» y pantalla de victoria. */
html.modo-ovni .cab{opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s .4s}
html.modo-ovni main,html.modo-ovni .pie2{filter:brightness(.45) saturate(.75)}

/* botón flotante */
.ovni-boton{width:58px;height:58px;color:#e6ddff;background:radial-gradient(circle at 50% 30%,rgb(60 30 140 / .9),rgb(10 8 22 / .92) 70%);
  border:1px solid rgb(169 139 255 / .45);box-shadow:0 0 0 6px rgb(107 43 255 / .08),0 10px 30px -8px rgb(107 43 255 / .9),inset 0 1px 0 rgb(255 255 255 / .12)}
.ovni-boton::before{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid rgb(169 139 255 / .35);animation:dv-pulso 2.8s ease-out infinite;pointer-events:none}
.ovni-boton svg{width:32px;height:32px;overflow:visible}
.ovni-boton svg .l{fill:#fff;animation:dv-luz 1.1s infinite}
.ovni-boton svg .l:nth-of-type(2){animation-delay:.36s}
.ovni-boton svg .l:nth-of-type(3){animation-delay:.72s}
.ovni-boton:focus-visible{outline:2px solid #c9b8ff;outline-offset:4px}
.ovni-boton.abierto{transform:none;background:radial-gradient(circle at 50% 30%,#7c4dff,#3b1f8f 75%)}
.ovni-boton.activo{background:rgb(14 10 30 / .9);color:#fff;border-color:rgb(255 255 255 / .25)}
.ovni-boton.activo::before,.ovni-boton.abierto::before{animation:none;opacity:0}
.ovni-boton.activo svg{animation:none;width:22px;height:22px}
@keyframes dv-pulso{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.35);opacity:0}}
@keyframes dv-luz{50%{opacity:.25}}

/* consola de juegos: panel de nave */
.juegos-menu.dv-consola{right:22px;bottom:94px;width:min(360px,calc(100vw - 32px));padding:0;border-radius:22px;overflow:hidden;
  background:linear-gradient(180deg,rgb(26 17 58 / .94),rgb(8 6 18 / .96));border:1px solid rgb(169 139 255 / .32);
  box-shadow:0 30px 80px -24px rgb(107 43 255 / .85),inset 0 1px 0 rgb(255 255 255 / .07);transform-origin:100% 100%;animation:dv-abre .38s cubic-bezier(.2,.9,.2,1.05)}
.dv-consola::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;
  background:repeating-linear-gradient(0deg,rgb(255 255 255 / .035) 0 1px,transparent 1px 3px)}
.dv-consola::after{content:"";position:absolute;left:18px;right:18px;top:0;height:1px;background:linear-gradient(90deg,transparent,#c9b8ff,transparent);opacity:.7}
@keyframes dv-abre{from{opacity:0;transform:translateY(12px) scale(.94)}}
.dv-con-cab{position:relative;display:flex;align-items:center;gap:10px;padding:16px 18px 14px;border-bottom:1px solid rgb(169 139 255 / .16)}
.juegos-menu .dv-con-cab p{margin:0;flex:1;font:500 10.5px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#c9b8ff}
.dv-con-cab small{font:500 10px/1 var(--mono);color:#6e6a88;letter-spacing:.1em}
.dv-led{width:7px;height:7px;border-radius:50%;background:#7dffb0;box-shadow:0 0 0 3px rgb(125 255 176 / .15),0 0 10px #7dffb0;flex:none;animation:dv-luz 2s infinite}
.dv-con-mods{position:relative;display:grid;gap:10px;padding:14px}
.juegos-menu .dv-mod{position:relative;display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:14px;padding:14px;border-radius:16px;
  background:linear-gradient(135deg,rgb(107 43 255 / .14),rgb(255 255 255 / .02));border:1px solid rgb(169 139 255 / .2);color:#fff;text-align:left;cursor:pointer;
  transition:border-color .3s,background .3s,transform .35s cubic-bezier(.2,.9,.2,1.05)}
.juegos-menu .dv-mod::before,.juegos-menu .dv-mod::after{content:"";position:absolute;width:10px;height:10px;border:1.5px solid #a98bff;opacity:.55;transition:opacity .3s}
.juegos-menu .dv-mod::before{left:6px;top:6px;border-right:0;border-bottom:0;border-radius:4px 0 0 0}
.juegos-menu .dv-mod::after{right:6px;bottom:6px;border-left:0;border-top:0;border-radius:0 0 4px 0}
.juegos-menu .dv-mod:hover,.juegos-menu .dv-mod:focus-visible{background:linear-gradient(135deg,rgb(107 43 255 / .32),rgb(255 255 255 / .04));border-color:rgb(201 184 255 / .6);transform:translateY(-2px);outline:0}
.juegos-menu .dv-mod:hover::before,.juegos-menu .dv-mod:hover::after{opacity:1}
.dv-mod-ico{width:62px;height:62px;border-radius:14px;display:grid;place-items:center;color:#c9b8ff;
  background:radial-gradient(circle at 50% 40%,rgb(124 77 255 / .45),rgb(16 10 40) 72%);border:1px solid rgb(169 139 255 / .3);box-shadow:inset 0 0 18px rgb(107 43 255 / .45)}
.dv-mod-ico svg{width:38px;height:38px;transition:transform .5s cubic-bezier(.2,.9,.2,1.05)}
.dv-mod:hover .dv-mod-ico svg{transform:scale(1.1) rotate(-6deg)}
.dv-mod-txt{display:grid;gap:4px;min-width:0}
.juegos-menu .dv-mod-txt small{font:500 9.5px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#8f84b8}
.juegos-menu .dv-mod-txt strong{font:700 17px/1.1 var(--titular);letter-spacing:-.02em;color:#fff}
.dv-mod-txt>span{font-size:12.5px;line-height:1.35;color:#b3aecb}
.dv-mod-go{font:600 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#fff;padding:9px 11px;border-radius:999px;
  background:linear-gradient(90deg,#6b2bff,#8f63ff);box-shadow:0 6px 18px -6px rgb(107 43 255 / .9)}
.dv-rec{position:absolute;right:14px;top:10px;font:500 9.5px/1 var(--mono);font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:#7dffb0}
.dv-rec[hidden]{display:none}
.dv-con-pie{position:relative;display:flex;justify-content:space-between;padding:11px 18px 13px;border-top:1px solid rgb(169 139 255 / .14);
  font:500 9.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#6e6a88}
.dv-con-k{letter-spacing:.08em;color:#8f84b8}

/* marcador */
.ovni-hud.dv-hud{top:18px;display:flex;align-items:center;gap:0;padding:6px;border-radius:18px;max-width:calc(100vw - 24px);
  background:linear-gradient(180deg,rgb(26 17 58 / .88),rgb(8 6 18 / .9));border:1px solid rgb(169 139 255 / .3);
  box-shadow:0 18px 50px -18px rgb(107 43 255 / .8),inset 0 1px 0 rgb(255 255 255 / .06);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  pointer-events:none;letter-spacing:.14em;animation:dv-baja .5s cubic-bezier(.2,.9,.2,1.05)}
@keyframes dv-baja{from{opacity:0;transform:translate(-50%,-14px)}}
.dv-hud>*{padding:8px 16px;border-right:1px solid rgb(169 139 255 / .14)}
.dv-hud>*:last-child{border-right:0}
.dv-hud-mis{display:flex;align-items:center;gap:9px;font:500 10.5px/1 var(--mono);color:#c9b8ff;white-space:nowrap}
.dv-hud-pts{display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:6px;row-gap:7px}
.ovni-hud.dv-hud b{font:700 26px/1 var(--titular);color:#fff;letter-spacing:-.02em;display:inline-block;min-width:1.2ch;text-align:right}
.ovni-hud.dv-hud em{font:500 11px/1 var(--mono);color:#8a86a3}
.dv-barra{grid-column:1/-1;display:flex;gap:3px;margin:0;padding:0;list-style:none}
.dv-barra li{width:9px;height:4px;border-radius:2px;background:rgb(169 139 255 / .2);transition:background .3s,box-shadow .3s}
.dv-barra li.on{background:#c9b8ff;box-shadow:0 0 8px #8f63ff}
.dv-hud-dato{display:grid;gap:6px;text-align:left;min-width:74px}
.dv-hud-dato small{font:500 9.5px/1 var(--mono);color:#7f7a99;margin:0}
.dv-hud-dato strong{font:600 16px/1 var(--mono);color:#fff;letter-spacing:.02em;font-variant-numeric:tabular-nums;text-transform:none;white-space:nowrap}
.dv-hud.en-racha .dv-hud-racha strong{color:#c9b8ff;text-shadow:0 0 12px #8f63ff}
.dv-salir{pointer-events:auto;display:flex;align-items:center;gap:8px;margin-left:4px;padding:10px 12px!important;border:0;border-radius:12px;background:rgb(255 255 255 / .05);
  color:#e6ddff;font:600 12px/1 "Inter",sans-serif;letter-spacing:0;cursor:pointer;transition:background .25s}
.dv-salir:hover{background:rgb(169 139 255 / .18)}
.dv-salir kbd{font:500 9.5px/1 var(--mono);padding:3px 5px;border:1px solid rgb(169 139 255 / .35);border-radius:5px;color:#a98bff}
.ovni-hud.dv-hud.golpe b{animation:golpe .35s}
.ovni-hud.dv-hud.fallo{animation:dv-sacude .35s}
@keyframes dv-sacude{20%{transform:translateX(calc(-50% - 6px))}40%{transform:translateX(calc(-50% + 5px))}60%{transform:translateX(calc(-50% - 3px))}80%{transform:translateX(calc(-50% + 2px))}}

/* pantalla de victoria: sólo se cuida, no se rehace */
.ovni-fin .ovni-fin-caja{display:block;margin-top:0;padding-top:146px}
.ovni-fin .ovni-fin-eti{margin:0}
.ovni-fin .ovni-fin-caja h3{margin:12px 0 12px}
.dv-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:26px 0 0;border:1px solid rgb(169 139 255 / .2);border-radius:16px;overflow:hidden;background:rgb(255 255 255 / .02)}
.ovni-fin .dv-stats div{display:grid;gap:7px;margin:0;padding:14px 8px;border-right:1px solid rgb(169 139 255 / .14)}
.ovni-fin .dv-stats div:last-child{border-right:0}
.dv-stats dt{font:500 9.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#8f84b8}
.dv-stats dd{margin:0;font:700 22px/1 var(--titular);letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums}
.ovni-fin p.dv-record{margin:12px 0 0;font:500 10.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#7dffb0}
.dv-record[hidden]{display:none}
.ovni-fin .ovni-fin-acc{margin-top:24px}

@media (max-width:640px){
  .ovni-boton{right:16px;bottom:16px;width:52px;height:52px}
  .ovni-boton svg{width:28px;height:28px}
  .juegos-menu.dv-consola{right:12px;left:12px;bottom:80px;width:auto}
  .dv-con-mods{padding:12px;gap:8px}
  .juegos-menu .dv-mod{grid-template-columns:54px 1fr auto;gap:12px;padding:12px}
  .dv-mod-ico{width:54px;height:54px}
  .dv-mod-ico svg{width:32px;height:32px}
  .ovni-hud.dv-hud{top:max(10px,env(safe-area-inset-top));padding:4px;border-radius:16px}
  .dv-hud>*{padding:7px 10px}
  .dv-hud-mis{display:none}
  .ovni-hud.dv-hud b{font-size:22px}
  .dv-hud-dato{min-width:56px}
  .dv-hud-dato strong{font-size:14px}
  .dv-salir kbd{display:none}
  .ovni-fin .ovni-fin-caja{padding:132px 22px 26px}
  .ovni-fin-ufo{top:18px}
  .dv-stats dd{font-size:19px}
  .ovni-fin .ovni-fin-acc{flex-direction:column}
  .ovni-fin-si,.ovni-fin-no{justify-content:center;width:100%}
  .ovni-fin-si{padding:0 6px 0 24px;justify-content:space-between}
}
@media (prefers-reduced-motion:reduce){
  .ovni-boton::before,.ovni-boton svg .l,.dv-led,.juegos-menu.dv-consola,.ovni-hud.dv-hud,.ovni-hud.dv-hud.fallo,.ovni-hud.dv-hud.golpe b{animation:none}
  .juegos-menu .dv-mod,.dv-mod-ico svg{transition:none}
}
/* === fin defensa === */

/* === carrera3d === */
/* Carrera espacial 3D: capa a pantalla completa por encima de la barra; interfaz de cristal violeta */
.c3d{z-index:400;background:#04020a;overflow:hidden;font-family:"Inter",system-ui,sans-serif;color:#f3f2f7;-webkit-tap-highlight-color:transparent}
.c3d .c3d-lienzo{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:pointer}
.c3d-velo{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 45%,transparent 55%,rgb(4 2 10 / .65) 100%),linear-gradient(180deg,rgb(4 2 10 / .55),transparent 22%,transparent 80%,rgb(4 2 10 / .5))}
.c3d-velo::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 55%,rgb(233 226 255 / .55),rgb(143 99 255 / .25) 40%,transparent 70%);opacity:0;transition:opacity .45s ease-out}
.c3d-velo.golpe::after{opacity:1;transition:none}
/* HUD */
.c3d-hud{position:absolute;inset:0 0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:12px;
  padding:max(18px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) 0 max(22px,env(safe-area-inset-left));pointer-events:none}
.c3d-marca{display:flex;align-items:center;gap:10px;font:500 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#bdb3e6;padding-top:15px}
.c3d-punto{width:7px;height:7px;border-radius:50%;background:#8f63ff;box-shadow:0 0 0 4px rgb(143 99 255 / .18),0 0 14px #8f63ff}
.c3d-marcador{display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;transform:translateY(-8px);transition:opacity .5s,transform .5s var(--suave)}
.c3d.jugando .c3d-marcador,.c3d.fin .c3d-marcador{opacity:1;transform:none}
.c3d-pts{font:500 clamp(30px,4.4vw,46px)/1 var(--mono);letter-spacing:.06em;color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 0 24px rgb(143 99 255 / .55)}
.c3d-pts.hito{animation:c3d-hito .55s var(--suave)}
@keyframes c3d-hito{30%{color:#c9b8ff;transform:scale(1.12)}}
.c3d-sub{display:flex;gap:14px;font:500 10.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#b3aed0;text-shadow:0 1px 8px rgb(4 2 10 / .9)}
.c3d-sub i{font-style:normal;color:#c9b8ff}
.c3d-vel{color:#c9b8ff}
.c3d-botones{display:flex;gap:10px;justify-content:flex-end;pointer-events:auto}
.c3d-btn{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#efeaff;
  border:1px solid rgb(201 184 255 / .2);background:rgb(22 12 50 / .45);-webkit-backdrop-filter:blur(12px) saturate(1.4);backdrop-filter:blur(12px) saturate(1.4);
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .08);transition:background .25s,border-color .25s,transform .25s}
.c3d-btn:hover{background:rgb(107 43 255 / .4);border-color:rgb(201 184 255 / .45)}
.c3d-btn:active{transform:scale(.94)}
.c3d-btn:focus-visible,.c3d-go:focus-visible,.c3d-cta:focus-visible{outline:2px solid #c9b8ff;outline-offset:3px}
.c3d-son .off{display:none}.c3d-son.mudo .off{display:inline}.c3d-son.mudo .on{display:none}
.c3d-pista{position:absolute;left:50%;bottom:max(28px,env(safe-area-inset-bottom));transform:translateX(-50%);margin:0;white-space:nowrap;
  font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#cfc6f2;padding:12px 18px;border-radius:999px;
  background:rgb(22 12 50 / .45);border:1px solid rgb(201 184 255 / .16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  opacity:0;transition:opacity .6s;pointer-events:none}
.c3d.jugando .c3d-pista{opacity:1}.c3d.jugando .c3d-pista.fuera{opacity:0}
.c3d-pista kbd,.c3d-teclas kbd{font:500 10.5px/1 var(--mono);letter-spacing:.08em;padding:5px 8px;border-radius:7px;color:#fff;
  border:1px solid rgb(201 184 255 / .3);background:rgb(255 255 255 / .06);box-shadow:inset 0 -2px 0 rgb(0 0 0 / .35)}
/* paneles de inicio y final */
.c3d-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(calc(100vw - 32px),470px);max-height:calc(100dvh - 120px);overflow:auto;
  padding:clamp(26px,4vw,40px);border-radius:28px;text-align:center;
  background:linear-gradient(180deg,rgb(40 20 96 / .5),rgb(12 6 32 / .62));border:1px solid rgb(201 184 255 / .2);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);
  box-shadow:0 40px 120px -30px rgb(107 43 255 / .55),inset 0 1px 0 rgb(255 255 255 / .1);animation:c3d-entra .7s var(--suave) both}
.c3d-panel[hidden]{display:none}
@keyframes c3d-entra{from{opacity:0;transform:translate(-50%,-46%) scale(.97)}}
.c3d-eyebrow{font:500 11px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:#a993ff;margin:0 0 16px}
.c3d-panel h2{font:700 clamp(38px,6vw,54px)/.98 var(--titular);letter-spacing:-.045em;color:#fff;margin:0 0 16px}
.c3d-panel h2 em{font:inherit;font-style:normal;letter-spacing:inherit;
  background:linear-gradient(100deg,#c9b8ff 0%,#9d7bff 30%,#6b2bff 55%,#b49cff 75%,#e9e2ff 85%,#8f63ff 100%) 0 0/250% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 18px rgb(124 77 255 / .4));animation:estela 7s ease-in-out infinite}
.c3d-texto{color:#c4c0d6;font-size:15px;line-height:1.55;margin:0 auto 22px;max-width:36ch}
.c3d-teclas{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:10px;justify-items:center}
.c3d-teclas li{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}
.c3d-teclas span{font-size:13.5px;color:#9e99b4;margin-left:6px}
.c3d-acc{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.c3d-go,.c3d-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 26px;border-radius:999px;
  font:600 15px/1 "Inter",sans-serif;cursor:pointer;text-decoration:none;transition:transform .3s var(--suave),box-shadow .3s,background .3s}
.c3d-go{border:0;color:#fff;background:linear-gradient(100deg,#7c4dff,#6b2bff 45%,#5a24e0);box-shadow:0 14px 40px -12px rgb(107 43 255 / .95),inset 0 1px 0 rgb(255 255 255 / .25)}
.c3d-go:hover{transform:translateY(-2px);box-shadow:0 20px 50px -12px rgb(143 99 255 / 1),inset 0 1px 0 rgb(255 255 255 / .3)}
.c3d-go span,.c3d-cta span{transition:transform .3s var(--suave)}.c3d-go:hover span,.c3d-cta:hover span{transform:translateX(3px)}
.c3d-cta{color:#fff;border:1px solid rgb(201 184 255 / .3);background:rgb(255 255 255 / .04)}
.c3d-cta:hover{background:rgb(255 255 255 / .1);transform:translateY(-2px)}
.c3d-inicio .c3d-go{min-width:200px}
.c3d-mejor{margin:18px 0 0;font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#8a8a93}
.c3d-mejor b{color:#c9b8ff;font-weight:500}
.c3d-gran{margin:0 0 6px;display:flex;flex-direction:column;align-items:center;gap:10px}
.c3d-gran b{font:800 clamp(64px,11vw,96px)/.9 var(--titular);letter-spacing:-.05em;font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,#fff 20%,#c9b8ff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 30px rgb(143 99 255 / .45))}
.c3d-gran small{font:500 11px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:#8a8a93}
.c3d-nuevo{display:inline-block;margin:10px 0 0;padding:8px 14px;border-radius:999px;font:500 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;
  color:#fff;background:linear-gradient(90deg,rgb(107 43 255 / .5),rgb(143 99 255 / .3));border:1px solid rgb(201 184 255 / .4)}
.c3d-nuevo[hidden]{display:none}
.c3d-fin .c3d-texto{margin-top:16px}
.c3d.sin-webgl .c3d-inicio .c3d-texto::after{content:" (Tu navegador no tiene WebGL activo: el juego no puede arrancar.)";color:#ff9ee0}
@media (max-width:640px){
  .c3d-hud{grid-template-columns:1fr auto;padding-left:16px;padding-right:16px}
  .c3d-marca{display:none}
  .c3d-marcador{align-items:flex-start;grid-column:1}
  .c3d-pts{font-size:30px}
  .c3d-btn{width:44px;height:44px}
  .c3d-pista{font-size:10px;letter-spacing:.12em;padding:10px 14px;white-space:normal;width:max-content;max-width:calc(100vw - 32px);text-align:center;line-height:1.6}
  .c3d-panel{border-radius:24px}
  .c3d-texto{font-size:14.5px}
  .c3d-acc .c3d-go,.c3d-acc .c3d-cta{flex:1 1 140px}
}
@media (prefers-reduced-motion:reduce){
  .c3d-panel,.c3d-pts.hito,.c3d-panel h2 em{animation:none}
  .c3d-marcador,.c3d-pista,.c3d-velo::after,.c3d-go,.c3d-cta,.c3d-btn{transition:none}
}
/* === fin carrera3d === */

/* === pulido === */
/* Dirección de arte en ESCRITORIO (≥641 px): ritmo entre secciones, titulares iguales,
   la sección clara como una lámina que flota sobre el espacio, botones y focos coherentes
   y brillo al pasar por las tarjetas. Las vistas móviles (≤640) no se tocan. */
@media (min-width:641px){
  /* 1 · ritmo vertical: las secciones oscuras respiraban 160-187 px por arriba y por abajo
     (hasta 347 px de vacío entre «Cómo trabajamos» y el Diary). Un solo compás para todas. */
  main > #servicios,main > .caso,main > .proceso2,main > .diary3{padding-block:clamp(104px,9.5vw,140px)}
  main > .qh{padding-block:clamp(88px,8vw,120px)}

  /* 2 · titulares de sección: 72 · 63 · 72 · 52 · 72 px → uno solo */
  main .cabeza h2,main .qh h2,main .caso-cab h2,main .proceso2 .intro2 h2,main .diary3 h2{
    font-size:clamp(44px,4.6vw,66px);letter-spacing:-.045em;line-height:1}
  main .cabeza h2,main .caso-cab h2,main .diary3 h2{margin-top:20px}
  main .qh h2,main .proceso2 .intro2 h2{margin:20px 0 22px}

  /* 3 · «Qué hacemos»: lámina clara con esquinas y halo violeta en vez de un corte seco
     negro/blanco; el contenido queda casi al mismo margen que el resto de secciones */
  main > .qh{margin-inline:clamp(12px,1.4vw,24px);border-radius:clamp(28px,2.6vw,40px);
    box-shadow:0 0 0 1px rgb(201 184 255 / .22),0 40px 120px -40px rgb(107 43 255 / .55),0 -30px 100px -50px rgb(143 99 255 / .45)}
  main > .qh > .env{max-width:calc(var(--ancho) + 80px)}
  .qh-rotulo{display:inline-flex;align-items:center;gap:10px}
  .qh-rotulo::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 12px currentColor}
  .qh-cabeza p{font-size:17px;line-height:1.6;color:#4b4b55}
  .qh-pieza p{color:#55555f}

  /* 4 · casos: la columna de texto era tan estrecha que los titulares caían en 4 líneas,
     y la cifra «↗ +118 %» se partía en dos */
  .fila p{max-width:28rem}
  .dato-cab b{white-space:nowrap}
  .dato-cab{gap:12px}

  /* 5 · Diary: la imagen de la nota pequeña (16/10) se salía de su fila (56 %)
     y tapaba 28 px de la fecha; las dos notas quedan a la misma altura */
  .diary3-rejilla .nota:not(.grande){grid-template-rows:auto 1fr}

  /* 6 · texto atenuado algo más legible sobre las tarjetas oscuras */
  .servicio p{color:#a6a5b0}
  .cabeza p{color:#b4b3be}

  /* 7 · botones: misma familia, mismo gesto al pasar y al enfocar */
  .boton{transition:transform .35s var(--suave),background .3s,border-color .3s,color .3s,box-shadow .35s}
  .boton:hover{transform:translateY(-2px)}
  .boton:active{transform:translateY(0) scale(.98)}
  .boton.primario:hover{box-shadow:0 16px 46px -12px rgb(107 43 255 / .9),inset 0 1px 0 rgb(255 255 255 / .3)}
  .boton.borde:hover,.boton.linea:hover,.boton.pastilla.oscura:hover{border-color:#a98bff;background:rgb(107 43 255 / .12);box-shadow:0 12px 34px -16px rgb(107 43 255 / .8)}
  .boton.linea{min-height:44px;padding:0 20px;font-size:14.5px;border-color:#4a4a58;background:rgb(255 255 255 / .02)}
  .boton.negro:hover{box-shadow:0 14px 34px -14px rgb(40 10 120 / .6)}
  .boton.pastilla.blanca:hover{box-shadow:0 16px 44px -16px rgb(201 184 255 / .7)}
  .boton.pastilla .circ{transition:transform .45s var(--suave)}
  .boton.pastilla:hover .circ{transform:rotate(-45deg)}
  .boton.pastilla:hover .circ svg{transform:none}
  .pie2-mail .circ{transition:transform .45s var(--suave),box-shadow .35s}
  .pie2-mail:hover .circ{transform:rotate(-45deg);box-shadow:0 0 0 6px rgb(107 43 255 / .2)}

  /* 8 · tarjetas: brillo de borde y halo al pasar (el foco hace lo mismo con teclado) */
  .servicio{transition:border-color .4s,transform .5s var(--suave),box-shadow .5s}
  .servicio:hover,.servicio:focus-visible{border-color:rgb(169 139 255 / .45);box-shadow:0 30px 70px -36px rgb(107 43 255 / .75),inset 0 1px 0 rgb(255 255 255 / .06)}
  .pasos li{transition:border-color .4s,transform .5s var(--suave),box-shadow .5s}
  .pasos li:hover{border-color:rgb(169 139 255 / .5);transform:translateX(4px);box-shadow:0 24px 60px -34px rgb(107 43 255 / .85)}
  .panel2{transition:border-color .5s,box-shadow .5s}
  .fila:hover .panel2{border-color:rgb(169 139 255 / .38);box-shadow:0 40px 90px -40px rgb(107 43 255 / .7)}
  .qh-pieza:hover,.qh-pieza:focus-visible{border-color:rgb(107 43 255 / .25)}

  /* 9 · foco de teclado visible y del color de la casa, también sobre la lámina clara */
  .boton:focus-visible,.servicio:focus-visible,.nota:focus-visible,.pie2-mail:focus-visible,
  .cab-nav a:focus-visible,.pie2 a:focus-visible,.pie2 button:focus-visible{outline:2px solid #c9b8ff;outline-offset:4px}
  .servicio:focus-visible,.nota:focus-visible{border-radius:var(--radio)}
  .qh a:focus-visible,.qh .boton:focus-visible{outline:2px solid #5b21d6;outline-offset:4px;border-radius:20px}
}
@media (min-width:1181px){
  /* reparto de columnas sólo en escritorio ancho: por debajo mandan las rejillas de una columna */
  main > .qh .qh-rejilla{grid-template-columns:minmax(0,.98fr) minmax(0,1.12fr);gap:24px}
  .fila{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
  .fila-txt{grid-template-columns:84px 1fr}
  .g-caja{white-space:nowrap;min-width:0;gap:10px}
  .g-caja svg{flex:none}
}
@media (min-width:641px) and (prefers-reduced-motion:reduce){
  .boton,.boton .circ,.servicio,.pasos li,.panel2,.pie2-mail .circ{transition:none}
  .boton:hover,.boton:active,.pasos li:hover,.boton.pastilla:hover .circ,.pie2-mail:hover .circ{transform:none}
}
/* === fin pulido === */
