/* ═══════════════════════════════════════════════════════════════
   NICACOMP Gaming — /armador (configurador de PC)

   La luz es el material. La página es casi negra y el gabinete del
   centro arranca encendido a media luz: marco y ventiladores con brillo
   tenue, contornos al 40 % y la próxima pieza respirando en celeste con
   su rótulo ("Empezá por el procesador"). Cada pieza que elegís pasa a ser
   hardware: cuerpo oscuro, bordes celestes encendidos y detalles de
   luz propios (barra de la RAM, placa trasera de la GPU, mangueras y
   bomba del enfriador). Con las ocho piezas, el borde del gabinete se
   tiñe de violeta: es el único lugar donde aparece la segunda luz.

   Estructura (una sola rejilla):
   - ≥1200 px: portada + pasos | gabinete fijo (≈40 %) | panel fijo;
   - 720–1199 px: portada + pasos | gabinete fijo, panel en barra inferior;
   - <720 px: portada, gabinete, uso, pasos y barra inferior.

   Formas: botones y chips en píldora; panel y tarjetas en 12–14 px;
   miniaturas en 10 px. Sin bordes en las filas de los pasos: líneas
   finas y el número grande en mono como ancla.

   armador.html carga esta hoja con ?v=N: subí la versión en cada cambio.
   Va después de nc-departments.css, así que gana por orden.
   ═══════════════════════════════════════════════════════════════ */

/* ═══ BASE ══════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--fb);background:var(--bg);color:var(--text);line-height:1.6;overflow-x:clip}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
svg.lucide{width:1em;height:1em;vertical-align:-.125em;stroke-width:2;flex-shrink:0}
.i-inline{display:inline-flex;align-items:center;gap:.45em}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

[data-department="armador"]{
  --ar-deep:#0C1015;          /* fondo: --bg llevado casi a negro */
  --ar-surface:#121820;
  --ar-surface2:#18202A;
  --ar-line:rgba(255,255,255,.07);
  --ar-line2:rgba(255,255,255,.14);
  --ar-ink:#0B1620;           /* texto sobre celeste (5.5:1) */
  --ar-cyan-soft:rgba(12,149,243,.12);
  --ar-cyan-line:rgba(12,149,243,.55);
  --ar-cyan-glow:rgba(12,149,243,.5);
  --ar-violet-glow:rgba(105,71,230,.55);
  --ar-ok:#4ADE80;            /* solo el ícono chico de "sin conflictos" */
  --ar-warn:#E9B949;
  --ar-err:#F87171;
  --ar-e:cubic-bezier(.16,1,.3,1);
  --ar-gutter:16px;
  --ar-max:1440px;
  --ar-r:14px;
  --ar-r-sm:10px;
}
@media(min-width:640px){[data-department="armador"]{--ar-gutter:24px}}
@media(min-width:1100px){[data-department="armador"]{--ar-gutter:32px}}

/* Sin isolation acá: el panel fijo del celular tiene que quedar sobre el
   encabezado. La atmósfera va como fondo de .ar: luz celeste detrás del
   gabinete y un resto violeta en la esquina. */
.ar{position:relative;
  background:
    radial-gradient(min(900px,90vw) 640px at 56% 180px,rgba(12,149,243,.15),transparent 70%),
    radial-gradient(520px 420px at 100% 0,rgba(105,71,230,.12),transparent 70%),
    var(--ar-deep)}
.ar h1,.ar h2,.ar h3{text-wrap:balance}

/* ═══ REJILLA ═══════════════════════════════════════════════════ */
.ar .builder-section{max-width:var(--ar-max);margin:0 auto;padding:clamp(1.25rem,3vw,2.25rem) var(--ar-gutter) clamp(3.5rem,7vw,6rem)}
.ar .builder-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "stage" "uso" "steps";gap:1.75rem}
.ar .ar-intro{grid-area:intro}
.ar .ar-uso{grid-area:uso}
.ar .ar-stagecol{grid-area:stage;min-width:0;overflow-x:clip}
.ar .ar-steps{grid-area:steps;min-width:0}
.ar .build-panel{grid-area:panel}

@media(min-width:720px){
  /* La última fila elástica absorbe la altura del gabinete fijo: así la
     portada no se estira cuando los pasos todavía no cargaron. */
  .ar .builder-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);grid-template-rows:auto auto auto 1fr;
    grid-template-areas:"intro stage" "uso stage" "steps stage" ". stage";column-gap:clamp(1.5rem,3vw,2.5rem);row-gap:1.6rem}
  .ar .ar-stagecol{position:sticky;top:calc(var(--hdr-h) + 1rem);align-self:start;
    --stage-h:clamp(440px,calc(100dvh - var(--hdr-h) - 9.5rem),860px)}
}
@media(min-width:1200px){
  /* El gabinete queda limitado por el alto, así que la columna de los
     pasos se lleva el ancho sobrante: entran las fichas de uso en 3 + 2. */
  .ar .builder-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr) 300px;
    grid-template-areas:"intro stage panel" "uso stage panel" "steps stage panel" ". stage panel";column-gap:2rem}
  /* Columna del medio: el halo y el piso desbordan sin cortes duros. */
  .ar .ar-stagecol{overflow-x:visible}
  /* Gabinete y panel miden lo mismo: se fijan juntos y se van juntos. */
  .ar .ar-stagecol,.ar .build-panel{--stage-h:clamp(500px,calc(100dvh - var(--hdr-h) - 2rem),900px)}
}
@media(min-width:1440px){
  .ar .builder-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr) 330px;column-gap:2.5rem}
}

/* ═══ PORTADA ═══════════════════════════════════════════════════ */
.ar .hero{padding:0;text-align:left}
.ar .ar-intro{container-type:inline-size;padding-top:clamp(.25rem,2vw,1.25rem)}
.ar-eyebrow{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:.9rem;font-family:var(--fm);font-size:.78rem;font-weight:500;letter-spacing:.04em;color:var(--cyan)}
.ar-eyebrow::before{content:"";width:22px;height:2px;border-radius:2px;background:currentColor;box-shadow:0 0 10px var(--ar-cyan-glow)}
/* El tamaño sigue al ancho de la columna: "pieza por pieza." entra en una línea. */
.ar .hero-h1{max-width:none;margin:0;font-family:var(--fd);font-weight:800;font-size:clamp(2.2rem,12.6cqi,4.4rem);line-height:.98;letter-spacing:-.04em;color:var(--text)}
.ar .hero-h1 span{display:block;color:var(--cyan);text-shadow:0 0 32px rgba(12,149,243,.38)}
.ar .hero-sub{max-width:40ch;margin:1rem 0 0;font-size:clamp(1rem,.95rem + .25vw,1.12rem);line-height:1.6;color:var(--text2);text-wrap:pretty}

/* Uso del equipo: fichas seleccionables con ícono y una línea.
   2 columnas (Servidor ocupa la fila entera); 3 + 2 desde 1000 px. */
.ar-uso-lbl{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.7rem;font-family:var(--fd);font-size:.98rem;font-weight:700;color:var(--text)}
.ar-uso-lbl span+span{font-family:var(--fm);font-size:.72rem;font-weight:400;color:var(--text3)}
.ar .use-cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0}
.ar .uc-btn:last-child{grid-column:1/-1}
@media(min-width:1000px){
  .ar .use-cases{grid-template-columns:repeat(6,minmax(0,1fr))}
  .ar .uc-btn{grid-column:span 2}
  .ar .uc-btn:nth-child(n+4){grid-column:span 3}
}
.ar .uc-btn{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-areas:"ico name" "desc desc";
  align-items:center;column-gap:.6rem;row-gap:.4rem;min-height:44px;padding:.7rem .8rem .8rem;text-align:left;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01));border:1px solid var(--ar-line2);border-radius:12px;
  transition:border-color .25s var(--ar-e),background-color .25s var(--ar-e),box-shadow .3s var(--ar-e),transform .16s var(--ar-e)}
.ar .uc-ico{grid-area:ico;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.05);font-size:.95rem;color:var(--text2);
  transition:color .25s var(--ar-e),background-color .25s var(--ar-e),box-shadow .3s var(--ar-e)}
.ar .uc-name{grid-area:name;min-width:0;font-family:var(--fd);font-size:.95rem;font-weight:700;line-height:1.2;letter-spacing:-.01em;color:var(--text);transition:color .2s}
.ar .uc-desc{grid-area:desc;font-size:.76rem;line-height:1.4;color:var(--text3);text-wrap:pretty;transition:color .2s}
/* Elegida: borde celeste con brillo, ícono encendido y una línea de luz arriba. */
.ar .uc-btn::before{content:"";position:absolute;top:-1px;left:14px;right:14px;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:0;transition:opacity .3s var(--ar-e)}
.ar .uc-btn.active{border-color:var(--ar-cyan-line);background:linear-gradient(180deg,rgba(12,149,243,.14),rgba(12,149,243,.04));box-shadow:inset 0 0 0 1px rgba(12,149,243,.22),0 10px 30px -14px var(--ar-cyan-glow)}
.ar .uc-btn.active::before{opacity:1}
.ar .uc-btn.active .uc-ico{color:var(--ar-ink);background:var(--cyan);box-shadow:0 0 14px rgba(12,149,243,.55)}
.ar .uc-btn.active .uc-desc{color:var(--text2)}
.ar .uc-btn:active{transform:scale(.97)}
@media(pointer:fine){
  .ar .uc-btn:not(.active):hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.045)}
  .ar .uc-btn:not(.active):hover .uc-ico{color:var(--cyan)}
  .ar .uc-btn:not(.active):hover .uc-desc{color:var(--text2)}
}
.ar .uc-hint{display:flex;align-items:flex-start;gap:.5rem;min-height:1.5em;margin-top:.75rem;font-family:var(--fm);font-size:.76rem;line-height:1.55;color:var(--text2)}
.ar .uc-hint svg{margin-top:.2em;color:var(--cyan)}

/* ═══ GABINETE ILUSTRADO ════════════════════════════════════════ */
.ar .pc-stage{--lit:0;position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;
  margin:0;padding:.5rem 0 0;border:0}
@media(min-width:720px){.ar .pc-stage{height:var(--stage-h);padding:0}}
/* Textura de barrido detrás del equipo, desvanecida hacia los bordes. */
.ar .pc-stage::before{content:"";position:absolute;inset:0 -4%;z-index:-2;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(140,200,255,.045) 0 1px,transparent 1px 4px);
  -webkit-mask:radial-gradient(50% 46% at 50% 46%,#000,transparent 100%);
  mask:radial-gradient(50% 46% at 50% 46%,#000,transparent 100%)}

/* El ancho del gabinete sale del alto disponible: siempre entra entero. */
.ar .pc-rig{position:relative;isolation:isolate;container-type:inline-size;width:min(100%,290px)}
@media(min-width:720px){.ar .pc-rig{width:min(100%,520px,calc((var(--stage-h) - 7.5rem) * .72))}}
.ar .pc-case{position:relative;width:100%;max-width:none;aspect-ratio:420/500;margin:0 0 19cqw}

/* Piso: cuadrícula en perspectiva y charco de luz; crecen con el avance. */
.ar .pc-rig::before{content:"";position:absolute;left:-16%;right:-16%;bottom:-3cqw;height:48cqw;z-index:-2;pointer-events:none;
  background:
    repeating-linear-gradient(90deg,rgba(12,149,243,.42) 0 1px,transparent 1px 7.5cqw),
    repeating-linear-gradient(0deg,rgba(12,149,243,.42) 0 1px,transparent 1px 7.5cqw);
  transform:perspective(90cqw) rotateX(64deg);transform-origin:50% 100%;
  -webkit-mask:radial-gradient(52% 78% at 50% 62%,#000 15%,transparent 72%);
  mask:radial-gradient(52% 78% at 50% 62%,#000 15%,transparent 72%);
  opacity:calc(.4 + var(--lit) * .6);transition:opacity .6s var(--ar-e)}
.ar .pc-rig::after{content:"";position:absolute;left:-12%;right:-12%;bottom:4cqw;height:46cqw;z-index:-1;pointer-events:none;
  background:radial-gradient(50% 42% at 50% 62%,rgba(12,149,243,.5),transparent 72%);
  opacity:calc(.4 + var(--lit) * .6);transition:opacity .6s var(--ar-e)}
/* Halo violeta: solo con la PC completa. */
.ar .pc-halo{position:absolute;left:-14%;right:-14%;top:-6%;bottom:12cqw;z-index:-1;pointer-events:none;border-radius:50%;
  background:radial-gradient(50% 50% at 50% 50%,rgba(105,71,230,.42),rgba(105,71,230,.12) 55%,transparent 72%);
  opacity:0;transform:scale(.92);transition:opacity .9s var(--ar-e),transform 1.1s var(--ar-e)}
.ar .pc-stage.complete .pc-halo{opacity:1;transform:none}

.ar .rig-svg{display:block;width:100%;height:100%;overflow:visible;
  -webkit-box-reflect:below 2px linear-gradient(transparent 78%,rgba(255,255,255,.2));
  transition:filter .8s var(--ar-e)}
/* Tres cuartos: el gabinete gira apenas y el filo izquierdo queda hacia
   vos. Solo gira el dibujo; los puntos de acceso siguen planos encima
   (el desvío es de 2–3 px) para que los rótulos no salgan torcidos. */
@media(min-width:720px){
  .ar .rig-svg{transform:perspective(1500px) rotateY(9deg);transform-origin:50% 50%}
  .ar .pc-rig::before{transform:perspective(90cqw) rotateX(64deg) rotateZ(-3deg)}
}
.ar .pc-case.complete .rig-svg{filter:drop-shadow(0 0 30px rgba(105,71,230,.55)) drop-shadow(0 0 8px rgba(12,149,243,.3))}

/* Chasis: marco y vidrio siempre visibles y a media luz; con el
   gabinete elegido el borde se enciende del todo. */
.rig-svg .shell{fill:#0E1318;stroke:rgba(12,149,243,.55);stroke-width:2;filter:drop-shadow(0 0 6px rgba(12,149,243,.28));transition:stroke .5s var(--ar-e),filter .5s var(--ar-e)}
.rig-svg .glass{fill:url(#rgVidrioFondo);stroke:rgba(12,149,243,.22);stroke-width:1}
.ar .pc-stage.has-case .rig-svg .shell{stroke:rgba(12,149,243,.85);filter:drop-shadow(0 0 10px rgba(12,149,243,.4))}
/* Luz de borde: el filo izquierdo y la esquina superior, siempre encendidos. */
.rig-svg .filo{fill:none;stroke:url(#rgFilo);stroke-width:2.5;stroke-linecap:round;opacity:.6;filter:url(#rgBrillo);transition:opacity .6s var(--ar-e)}
.ar .pc-stage.has-case .rig-svg .filo{opacity:1}
.rig-svg .rim{fill:none;stroke:url(#rgRim);stroke-width:3;opacity:0;transition:opacity .9s var(--ar-e)}
.ar .pc-case.complete .rig-svg .rim{opacity:1}

/* En espera: cada pieza es un contorno celeste a media luz (≈40 %). */
.rig-svg .part{color:rgba(12,149,243,.75);opacity:.55;transition:color .45s var(--ar-e),opacity .45s var(--ar-e)}
.rig-svg .part .s{fill:rgba(12,149,243,.05);stroke:currentColor;stroke-width:1.4;transition:fill .5s var(--ar-e),stroke .4s}
/* Los aros de los ventiladores del gabinete quedan prendidos, tenues. */
.rig-svg .part-case:not(.on) .aro{opacity:.9;stroke:rgba(12,149,243,.85);filter:drop-shadow(0 0 4px rgba(12,149,243,.6))}
.rig-svg .part .d{fill:none;stroke:currentColor;stroke-width:1.1;opacity:.5}
.rig-svg .part .f{fill:currentColor;opacity:.28;transition:opacity .45s}
.rig-svg .part .aro{fill:none;stroke:currentColor;stroke-width:1.2;opacity:.45;transition:opacity .45s}
.rig-svg .part .tubo{fill:none;stroke:currentColor;stroke-width:1.2;stroke-dasharray:3 4;stroke-linecap:round;transition:stroke .4s}
.rig-svg .part .tubo-luz{fill:none;stroke:rgba(143,211,255,.85);stroke-width:1.1;opacity:0;transition:opacity .45s}
.rig-svg .part .backplate{fill:currentColor;opacity:.3}
.rig-svg .part .corte{fill:rgba(12,149,243,.04);stroke:currentColor;stroke-width:1.1}
.rig-svg .pista{fill:url(#rgPistas);opacity:0;transition:opacity .5s var(--ar-e)}
.rig-svg .fan{transform-origin:0 0}

/* Encendida: material oscuro, borde emisivo y luz propia. */
.rig-svg .part.on{color:var(--cyan);opacity:1;filter:drop-shadow(0 0 5px rgba(12,149,243,.45))}
.rig-svg .part.on .s{fill:url(#rgMetal);stroke:rgba(12,149,243,.95)}
.rig-svg .part.on .d{opacity:.75}
.rig-svg .part.on .f{fill:url(#rgLuz);opacity:1;filter:url(#rgBrillo)}
.rig-svg .part.on .aro{opacity:1;stroke-width:2;filter:url(#rgBrillo)}
.rig-svg .part.on .s.ihs{fill:url(#rgIhs);stroke:rgba(143,211,255,.7)}
.rig-svg .part-gpu.on .shroud{fill:url(#rgShroud)}
.rig-svg .part-gpu.on .backplate{fill:url(#rgBackplate);opacity:1;filter:url(#rgBrillo)}
.rig-svg .part-gpu.on .corte{fill:rgba(12,149,243,.22);stroke:#8FD3FF;filter:url(#rgBrillo)}
.rig-svg .part-cool.on .tubo{stroke:#1D2733;stroke-width:6.5;stroke-dasharray:none}
.rig-svg .part-cool.on .tubo-luz{opacity:1}
/* La placa es la pieza más grande: brilla menos para que el resto resalte. */
.rig-svg .part-mb.on{filter:none}
.rig-svg .part-mb.on .s.base{fill:url(#rgPcb);stroke:rgba(12,149,243,.5)}
.rig-svg .part-mb.on .pista{opacity:1}
/* La próxima pieza pendiente: celeste pleno y una respiración lenta. */
.rig-svg .part.next{color:var(--cyan);opacity:1;filter:drop-shadow(0 0 6px rgba(12,149,243,.6))}
.rig-svg .part.next .s{fill:rgba(12,149,243,.12);stroke-width:1.7}
.rig-svg .part.next .d,.rig-svg .part.next .aro{opacity:.9}
.rig-svg .part.next .f{opacity:.7}
/* Pieza en conflicto con otra elegida: se enciende en ámbar. */
.rig-svg .part.on.conflict{color:var(--ar-warn);filter:drop-shadow(0 0 6px rgba(233,185,73,.5))}
.rig-svg .part.on.conflict .s{stroke:var(--ar-warn)}

/* Vidrio templado: dos reflejos en diagonal, siempre presentes. */
.rig-svg .reflejo{fill:url(#rgReflejo);pointer-events:none}
.rig-svg .reflejo.fino{opacity:.7}
.rig-svg .barrido{fill:url(#rgBarrido);opacity:0;pointer-events:none}

/* Puntos de acceso: botones reales encima del dibujo. */
.ar .bay{position:absolute;display:block;padding:0;background:transparent;border:0;border-radius:8px;cursor:pointer;
  left:var(--x);top:var(--y);width:var(--w);height:var(--h)}
.ar .bay:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.ar .bay-name{position:absolute;left:50%;bottom:calc(100% + 6px);z-index:2;max-width:220px;padding:.3rem .55rem;
  background:#0A0E13;border:1px solid var(--ar-cyan-line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.5),0 0 18px -6px var(--ar-cyan-glow);
  font-family:var(--fm);font-size:.7rem;line-height:1.35;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity .15s var(--ar-e),transform .2s var(--ar-e)}
.ar .bay:focus-visible .bay-name{opacity:1;transform:translate(-50%,0)}
.ar .bay-gpu .bay-name,.ar .bay-ssd .bay-name,.ar .bay-psu .bay-name{bottom:auto;top:calc(100% + 6px)}
.ar .bay-case .bay-name{left:auto;right:0;transform:translateY(4px)}
.ar .bay-case:focus-visible .bay-name{transform:none}
/* La próxima pieza lleva su rótulo fijo: el gabinete te dice por dónde seguir. */
.ar .bay.next{box-shadow:inset 0 0 0 1px rgba(12,149,243,.55),0 0 22px -4px rgba(12,149,243,.55)}
.ar .bay.next .bay-name{opacity:1;transform:translate(-50%,0);padding:.38rem .7rem;border-color:var(--cyan);font-size:.74rem;font-weight:500;color:var(--text);
  box-shadow:0 10px 28px rgba(0,0,0,.55),0 0 22px -4px var(--ar-cyan-glow)}
.ar .bay-case.next .bay-name{transform:none}
.ar .bay.next .bay-name::before{content:"";display:inline-block;width:6px;height:6px;margin-right:.5rem;vertical-align:1px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
@media(pointer:fine){
  .ar .bay:hover .bay-name{opacity:1;transform:translate(-50%,0)}
  .ar .bay-case:hover .bay-name{transform:none}
  .ar .bay:hover{background:rgba(12,149,243,.07);box-shadow:inset 0 0 0 1px rgba(12,149,243,.4)}
  .ar .bay-mb:hover{background:transparent;box-shadow:none}
}
.ar .bay-mb{--x:21.9%;--y:18%;--w:52.9%;--h:53.6%}
.ar .bay-cpu{--x:34.8%;--y:24.8%;--w:16.2%;--h:13.6%}
.ar .bay-ram{--x:55.2%;--y:20.8%;--w:13.8%;--h:22.4%}
.ar .bay-ssd{--x:34.8%;--y:43.4%;--w:23.8%;--h:5.4%}
.ar .bay-gpu{--x:18.6%;--y:48.6%;--w:57.1%;--h:13.8%}
.ar .bay-cool{--x:23.8%;--y:6%;--w:46.7%;--h:10%}
.ar .bay-psu{--x:9.5%;--y:78.4%;--w:37.6%;--h:13.2%}
.ar .bay-case{--x:79.5%;--y:17%;--w:12.4%;--h:42.4%}

/* Rótulo del gabinete: dice cuál va y lleva a elegirlo. */
.ar .pc-case-tag{display:inline-flex;align-items:center;gap:.45rem;max-width:min(100%,320px);min-height:36px;flex-shrink:0;
  padding:.35rem .85rem;background:rgba(10,14,19,.7);border:1px solid var(--ar-line2);border-radius:999px;
  font-family:var(--fm);font-size:.74rem;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:border-color .25s,color .25s,box-shadow .3s var(--ar-e)}
.ar .pc-case-tag svg{color:var(--text3)}
.ar .pc-stage.has-case .pc-case-tag{color:var(--text);border-color:var(--ar-cyan-line);box-shadow:0 0 18px -6px var(--ar-cyan-glow)}
.ar .pc-stage.has-case .pc-case-tag svg{color:var(--cyan)}
@media(pointer:fine){.ar .pc-case-tag:hover{border-color:rgba(255,255,255,.3);color:var(--text)}}

/* Avance: ocho tramos, uno por pieza esencial. Celeste; violeta al completar. */
.ar .pc-progress{width:min(100%,280px);flex-shrink:0}
.ar .pc-progress-bar{height:4px;overflow:hidden;background:rgba(12,149,243,.14);
  -webkit-mask:repeating-linear-gradient(90deg,#000 0 calc(12.5% - 3px),transparent 0 12.5%);
  mask:repeating-linear-gradient(90deg,#000 0 calc(12.5% - 3px),transparent 0 12.5%)}
.ar .pc-progress-fill{height:100%;background:var(--cyan);transform:scaleX(0);transform-origin:left center;transition:transform .5s var(--ar-e),background-color .4s}
.ar .pc-progress-fill.done{background:linear-gradient(90deg,var(--cyan),#8FD3FF 60%,var(--cyan))}
.ar .pc-progress:has(.done){filter:drop-shadow(0 0 8px var(--ar-violet-glow)) drop-shadow(0 0 3px rgba(12,149,243,.6))}
.ar .pc-stage-hint{display:flex;align-items:center;justify-content:center;gap:.4rem;flex-shrink:0;margin:0;text-align:center;font-family:var(--fm);font-size:.76rem;color:var(--text2)}
.ar .pc-stage-hint b{font-weight:700;color:var(--cyan)}
.ar .pc-stage-hint.done b,.ar .pc-stage-hint.done svg{color:var(--cyan)}
.ar .pc-stage-hint.done b{text-shadow:0 0 14px var(--ar-cyan-glow)}

/* ═══ PASOS 01–08 ═══════════════════════════════════════════════ */
.ar .builder-heading{margin:0 0 .6rem;font-family:var(--fd);font-size:clamp(1.3rem,1.1rem + .7vw,1.6rem);font-weight:800;line-height:1.15;letter-spacing:-.03em}
.ar .slot-list{display:flex;flex-direction:column;border-top:1px solid var(--ar-line2)}
/* Filas sin caja: línea fina abajo y el número grande como ancla. */
.ar .step{position:relative;margin:0;padding:0;background:transparent;border:0;border-bottom:1px solid var(--ar-line);border-radius:0;
  scroll-margin-top:calc(var(--hdr-h) + 1rem);transition:background-color .35s var(--ar-e)}
.ar .step.open{background:linear-gradient(180deg,rgba(12,149,243,.07),rgba(12,149,243,0) 140px)}
.ar .step.open::before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--cyan),rgba(12,149,243,.15) 70%,transparent);box-shadow:0 0 10px var(--ar-cyan-glow)}
.ar .step-h{margin:0;font:inherit}
.ar .step-head{display:grid;grid-template-columns:3.1rem minmax(0,1fr) auto auto;align-items:center;gap:.75rem;width:100%;min-height:70px;padding:.8rem .35rem .8rem 0;text-align:left}
.ar .slot-num{font-family:var(--fm);font-size:1.7rem;font-weight:500;line-height:1;letter-spacing:-.06em;color:rgba(255,255,255,.2);font-variant-numeric:tabular-nums;transition:color .3s var(--ar-e),text-shadow .4s var(--ar-e)}
.ar .step.filled .slot-num{color:var(--cyan);text-shadow:0 0 18px rgba(12,149,243,.45)}
.ar .step.open .slot-num{color:var(--text)}
.ar .step-txt{display:flex;flex-direction:column;min-width:0;gap:.15rem}
.ar .slot-label{display:flex;align-items:baseline;gap:.5rem;font-family:var(--fd);font-size:1.06rem;font-weight:700;line-height:1.2;letter-spacing:-.01em;color:var(--text)}
.ar .slot-opt-tag{font-family:var(--fm);font-size:.7rem;font-weight:400;letter-spacing:0;color:var(--text3)}
.ar .step-pick{font-size:.82rem;line-height:1.35;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ar .step.filled .step-pick{color:var(--text2)}
.ar .slot-price{font-family:var(--fm);font-size:.9rem;font-weight:600;white-space:nowrap;color:var(--text);font-variant-numeric:tabular-nums}
.ar .slot-price.none{display:none}
.ar .step-chev{font-size:1.05rem;color:var(--text3);transition:transform .3s var(--ar-e),color .2s}
.ar .step.open .step-chev{transform:rotate(180deg);color:var(--text)}
@media(pointer:fine){
  .ar .step:not(.open) .step-head:hover .slot-label,.ar .step-head:hover .step-chev{color:var(--cyan)}
  .ar .step:not(.open):not(.filled) .step-head:hover .slot-num{color:rgba(255,255,255,.4)}
}

/* Cuerpo del paso: se despliega por filas de la rejilla. */
.ar .step-body{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .32s var(--ar-e),visibility 0s .32s}
.ar .step.open .step-body{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .32s var(--ar-e),visibility 0s}
.ar .step-inner{min-height:0;overflow:hidden;padding:0 0 0 3.85rem}
.ar .step.open .step-inner{padding-bottom:1.15rem}
.ar .slot-tip{display:none;gap:.55rem;margin:0 0 .8rem;font-family:var(--fm);font-size:.76rem;line-height:1.55;color:var(--text2)}
.ar .slot-tip.show{display:flex}
.ar .slot-tip::before{content:"";flex-shrink:0;width:14px;height:1px;margin-top:.75em;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}

/* Opciones (radios nativos): filas de línea fina, sin caja rellena.
   Foto en marco oscuro con un fondo radial, apagada al 85 %; el precio
   va en mono a la derecha y se enciende en celeste al elegirla. */
.ar .opt-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.4rem;border:0;margin:0;padding:0;min-width:0}
.ar .opt{position:relative;display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:.85rem;align-items:center;min-height:76px;padding:.5rem .9rem .5rem .5rem;cursor:pointer;
  background:transparent;border:1px solid rgba(255,255,255,.08);border-radius:12px;
  transition:border-color .2s var(--ar-e),background-color .2s var(--ar-e),box-shadow .3s var(--ar-e),transform .15s var(--ar-e)}
.ar .opt.more{display:none}
.ar .step.show-more .opt.more,.ar .opt.more.is-on{display:grid}
.ar .opt-radio{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ar .opt:has(.opt-radio:focus-visible){outline:2px solid var(--cyan);outline-offset:2px}
/* Miniaturas (opciones y panel): la foto de fondo blanco va dentro de un
   marco oscuro con su propio resplandor, más chica que el marco y apagada. */
.ar .opt-img,.ar .part-thumb{position:relative;display:grid;place-items:center;aspect-ratio:1;overflow:hidden;border-radius:10px;
  background:radial-gradient(70% 70% at 50% 38%,#1A2633,#0A0E12 78%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);color:var(--text3)}
.ar .opt-img{width:60px;padding:5px;font-size:1.3rem;transition:box-shadow .3s var(--ar-e)}
/* Viñeta: las esquinas blancas de la foto se funden con el marco oscuro. */
.ar .opt-img::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(closest-side,transparent 62%,rgba(10,14,18,.55) 88%,rgba(10,14,18,.9));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.ar .part-thumb{padding:4px}
.ar .opt-img img,.ar .part-thumb img{width:100%;height:100%;object-fit:contain;border-radius:6px;background:#DCE2E8;filter:brightness(.85) saturate(.9);transition:filter .3s var(--ar-e)}
.ar .opt.is-on .opt-img{box-shadow:inset 0 0 0 1px rgba(12,149,243,.6),0 0 18px -6px var(--ar-cyan-glow)}
.ar .opt.is-on .opt-img img{filter:brightness(.92) saturate(1)}
.ar .opt-body{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.ar .opt-name{font-size:.86rem;font-weight:600;line-height:1.3;color:var(--text2);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .2s}
.ar .opt.is-on .opt-name{color:var(--text)}
.ar .opt-price{align-self:center;font-family:var(--fm);font-size:.84rem;font-weight:600;color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums;transition:color .2s,text-shadow .3s}
.ar .opt.is-on .opt-price{color:var(--cyan);text-shadow:0 0 14px rgba(12,149,243,.45)}
.ar .opt-warn{display:none;align-items:flex-start;gap:.35rem;font-size:.74rem;line-height:1.35;color:var(--ar-warn)}
.ar .opt-warn svg{margin-top:.15em}
.ar .opt.incompat .opt-warn{display:flex}
.ar .opt.incompat .opt-img img{filter:brightness(.6) saturate(.6)}
/* Marca de elegida: un check celeste sobre la esquina de la foto. */
.ar .opt-mark{position:absolute;top:.3rem;left:calc(.5rem + 60px - 14px);display:grid;place-items:center;width:20px;height:20px;border-radius:50%;
  background:var(--cyan);color:var(--ar-ink);font-size:.7rem;box-shadow:0 0 0 3px var(--ar-deep),0 0 12px var(--ar-cyan-glow);
  opacity:0;transform:scale(.6);transition:opacity .2s var(--ar-e),transform .25s var(--ar-e)}
.ar .opt-mark svg.lucide{stroke-width:3}
.ar .opt.is-on{border-color:var(--ar-cyan-line);background:linear-gradient(90deg,rgba(12,149,243,.09),rgba(12,149,243,.02));box-shadow:inset 0 0 0 1px rgba(12,149,243,.3),0 0 26px -12px var(--ar-cyan-glow)}
.ar .opt.is-on .opt-mark{opacity:1;transform:none}
.ar .opt:active{transform:scale(.985)}
@media(pointer:fine){
  .ar .opt:not(.is-on):hover{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.025)}
  .ar .opt:not(.is-on):hover .opt-name{color:var(--text)}
  .ar .opt:not(.is-on):hover .opt-img img{filter:brightness(.92) saturate(1)}
}

.ar .opt-more-btn{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;margin-top:.3rem;padding:0 .2rem;font-family:var(--fm);font-size:.8rem;color:var(--text2)}
.ar .opt-more-btn svg{transition:transform .25s var(--ar-e)}
.ar .step.show-more .opt-more-btn svg{transform:rotate(180deg)}
@media(pointer:fine){.ar .opt-more-btn:hover{color:var(--text)}}

.ar .step-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-top:.75rem}
.ar .step-actions[hidden]{display:none}
.ar .step-clear,.ar .step-next{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.5rem 1rem;border-radius:999px;font-family:var(--fd);font-size:.88rem;font-weight:600}
.ar .step-clear{color:var(--text2);border:1px solid var(--ar-line2)}
.ar .step-next{margin-left:auto;background:var(--cyan);color:var(--ar-ink);box-shadow:0 8px 24px -10px var(--ar-cyan-glow);transition:filter .2s,transform .15s var(--ar-e)}
.ar .step-next:active,.ar .step-clear:active{transform:scale(.97)}
.ar .step-clear[hidden],.ar .step-next[hidden]{display:none}
@media(pointer:fine){
  .ar .step-clear:hover{color:var(--text);border-color:rgba(255,255,255,.3)}
  .ar .step-next:hover{filter:brightness(1.1)}
}
.ar .slot-soon{display:inline-flex;align-items:center;gap:.5em;min-height:44px;margin-bottom:.25rem;font-family:var(--fm);font-size:.82rem;color:var(--text2);text-decoration:underline;text-decoration-color:var(--ar-line2);text-underline-offset:.3em}
@media(pointer:fine){.ar a.slot-soon:hover{color:var(--wa);text-decoration-color:currentColor}}
.ar .step.empty-stock .step-pick{color:var(--text3)}

/* Extras */
.ar .optional-block{margin-top:1.75rem;background:transparent;border:0}
.ar .optional-toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:56px;padding:.9rem 0;
  border-top:1px solid var(--ar-line2);color:var(--text);font-family:var(--fd);font-size:1.05rem;font-weight:700;letter-spacing:-.01em;text-align:left}
.ar .optional-toggle em{margin-left:.5rem;font-style:normal;font-family:var(--fm);font-size:.72rem;font-weight:400;color:var(--text3)}
.ar .opt-meta{display:flex;align-items:center;gap:.65rem;flex-shrink:0}
.ar .opt-count{padding:.08rem .55rem;border:1px solid var(--ar-cyan-line);border-radius:999px;font-family:var(--fm);font-size:.74rem;font-weight:700;color:var(--cyan);opacity:0;transition:opacity .2s}
.ar .opt-count.show{opacity:1}
.ar .opt-chevron{font-size:1.1rem;color:var(--text2);transition:transform .3s var(--ar-e)}
.ar .optional-block.open .opt-chevron{transform:rotate(180deg)}
.ar .optional-body{display:none;flex-direction:column}
.ar .optional-block.open .optional-body{display:flex}
.ar .optional-body .step:first-child{border-top:1px solid var(--ar-line)}

/* ═══ PANEL DE ESPECIFICACIONES ═════════════════════════════════ */
.ar .build-panel{display:flex;flex-direction:column;min-width:0;scroll-margin-top:calc(var(--hdr-h) + 1rem)}
.ar .bp-toggle{display:none}
.ar .bp-sheet{display:flex;flex-direction:column;gap:1.1rem}
.ar .bp-title{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0;font-family:var(--fd);font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}
.ar .bp-count{font-family:var(--fm);font-size:.74rem;font-weight:500;letter-spacing:0;color:var(--text2);white-space:nowrap}

/* Compatibilidad: una línea de estado, sin caja. */
.ar .compat-block{display:flex;flex-direction:column;gap:.5rem;padding-bottom:1rem;border-bottom:1px solid var(--ar-line)}
.ar .compat-item{display:flex;align-items:flex-start;gap:.55rem;font-size:.8rem;line-height:1.45;color:var(--text2)}
.ar .compat-ico{flex-shrink:0;margin-top:.12rem;font-size:.95rem}
.ar .compat-err .compat-ico{color:var(--ar-err)}
.ar .compat-err span:last-child{color:var(--text)}
.ar .compat-warn .compat-ico{color:var(--ar-warn)}
.ar .compat-warn span:last-child{color:var(--text)}
.ar .compat-ok .compat-ico{color:var(--ar-ok)}
.ar .compat-idle,.ar .compat-idle .compat-ico{color:var(--text3)}

.ar .uc-panel{display:none;font-size:.8rem;line-height:1.5;color:var(--text2)}
.ar .uc-panel.show{display:block}
.ar .uc-panel-title{display:flex;align-items:center;gap:.45rem;margin-bottom:.1rem;font-family:var(--fd);font-size:.9rem;font-weight:700;color:var(--text)}
.ar .uc-panel-title svg{color:var(--cyan)}

/* Lista de piezas */
.ar .parts-list{display:flex;flex-direction:column}
.ar .part-line{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.5rem 0}
.ar .part-line+.part-line{border-top:1px solid var(--ar-line)}
.ar .part-thumb{width:38px;padding:4px;border-radius:9px;font-size:1rem}
.ar .part-thumb img{border-radius:5px}
.ar .part-name{display:flex;flex-direction:column;min-width:0}
.ar .part-slot{font-family:var(--fm);font-size:.66rem;color:var(--text3)}
.ar .part-model{font-size:.82rem;font-weight:600;line-height:1.3;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ar .part-price{font-family:var(--fm);font-size:.8rem;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
.ar .parts-empty{padding:.25rem 0;font-size:.84rem;line-height:1.55;color:var(--text3)}

/* Presupuesto */
.ar .budget-block{padding-top:1rem;border-top:1px solid var(--ar-line)}
.ar .budget-label{display:block;margin-bottom:.35rem;font-family:var(--fm);font-size:.74rem;color:var(--text2)}
.ar .budget-input-row{display:flex;align-items:center;gap:.5rem;min-height:46px;padding:0 .8rem;margin-bottom:.6rem;background:rgba(255,255,255,.03);border:1px solid var(--ar-line2);border-radius:var(--ar-r-sm);transition:border-color .2s}
.ar .budget-input-row:focus-within{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(12,149,243,.2)}
.ar .budget-prefix{flex-shrink:0;font-family:var(--fm);font-size:.9rem;font-weight:700;color:var(--text2)}
.ar .budget-input{flex:1;min-width:0;padding:.55rem 0;background:transparent;border:0;outline:none;font-family:var(--fm);font-size:1rem;font-weight:600;color:var(--text);-moz-appearance:textfield;appearance:textfield}
.ar .budget-input::-webkit-outer-spin-button,.ar .budget-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ar .budget-input::placeholder{color:var(--text3);font-weight:400;opacity:1}
.ar .budget-bar-wrap{height:3px;margin-bottom:.45rem;overflow:hidden;border-radius:3px;background:rgba(255,255,255,.07)}
.ar .budget-bar-fill{height:100%;border-radius:3px;background:var(--cyan);box-shadow:0 0 10px var(--ar-cyan-glow);transform:scaleX(0);transform-origin:left center;transition:transform .45s var(--ar-e),background-color .3s}
.ar .budget-bar-fill.over{background:var(--ar-warn);box-shadow:none}
.ar .budget-stats{display:flex;justify-content:space-between;gap:.75rem;font-family:var(--fm);font-size:.72rem}
.ar .budget-used{color:var(--text3)}
.ar .budget-left{font-weight:700;text-align:right}
.ar .budget-left.ok{color:var(--cyan)}
.ar .budget-left.over{color:var(--ar-warn)}
.ar .budget-left.none{font-weight:400;color:var(--text3)}

.ar .bp-actions-row{display:flex;gap:.5rem}
.ar .bp-share,.ar .bp-reset{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.5rem .6rem;white-space:nowrap;
  border:1px solid var(--ar-line2);border-radius:999px;color:var(--text2);font-family:var(--fd);font-size:.86rem;font-weight:600;transition:border-color .2s,color .2s,transform .15s var(--ar-e)}
.ar .bp-share:active,.ar .bp-reset:active{transform:scale(.97)}

/* Total y llamado */
.ar .bp-foot{display:flex;flex-direction:column;gap:.7rem}
.ar .total-block{display:flex;flex-direction:column;gap:.15rem}
.ar .total-lbl{font-family:var(--fm);font-size:.74rem;color:var(--text2)}
.ar .total-val{font-family:var(--fm);font-size:clamp(1.75rem,1.4rem + .9vw,2.15rem);font-weight:700;line-height:1.05;letter-spacing:-.05em;color:var(--text);font-variant-numeric:tabular-nums}
.ar .total-note{font-size:.74rem;line-height:1.5;color:var(--text3)}
.ar .bp-cta{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;min-height:52px;padding:.8rem 1.1rem;
  background:var(--cyan);border-radius:999px;color:var(--ar-ink);font-family:var(--fd);font-size:1rem;font-weight:700;line-height:1.2;white-space:nowrap;
  box-shadow:0 0 0 1px rgba(255,255,255,.14) inset,0 12px 32px -10px var(--ar-cyan-glow);
  transition:filter .2s,transform .15s var(--ar-e),box-shadow .3s}
.ar .bp-cta:not(:disabled):active{transform:scale(.98)}
.ar .bp-cta:disabled{background:var(--ar-surface2);color:var(--text3);box-shadow:inset 0 0 0 1px var(--ar-line2);cursor:not-allowed}
.ar-cta-nota{display:none;font-size:.8rem;text-align:center;color:var(--text3)}
.ar .bp-cta:disabled+.ar-cta-nota{display:block}
@media(pointer:fine){
  .ar .bp-cta:not(:disabled):hover{filter:brightness(1.1);box-shadow:0 0 0 1px rgba(255,255,255,.2) inset,0 14px 40px -8px var(--ar-cyan-glow)}
  .ar .bp-share:hover,.ar .bp-reset:hover{border-color:rgba(255,255,255,.3);color:var(--text)}
}

/* La lista se desvanece antes del pie fijo (línea fina + 24 px de
   fundido) y deja ese mismo aire abajo: lo último sube entero. */
.ar .bp-sheet{--fade:24px}
/* Escritorio: panel fijo con borde de luz arriba; el pie no se mueve.
   Mide lo mismo que el gabinete de al lado. */
@media(min-width:1200px){
  .ar .build-panel{position:sticky;top:calc(var(--hdr-h) + 1rem);align-self:start;height:var(--stage-h);
    background:linear-gradient(180deg,rgba(12,149,243,.06),transparent 160px),var(--ar-surface);
    border:1px solid var(--ar-line2);border-radius:var(--ar-r);overflow:hidden;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 30px 60px -30px rgba(0,0,0,.9)}
  .ar .build-panel::before{content:"";position:absolute;top:0;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:.8}
  .ar .bp-sheet{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:1.2rem 1.2rem calc(var(--fade) + .5rem);
    -webkit-mask:linear-gradient(#000 calc(100% - var(--fade)),transparent);mask:linear-gradient(#000 calc(100% - var(--fade)),transparent)}
  .ar .bp-foot{flex-shrink:0;padding:1rem 1.2rem 1.2rem;border-top:1px solid var(--ar-line2);background:var(--ar-surface)}
  .ar .bp-foot{gap:.6rem}
  .ar .total-note{font-size:.72rem}
}

/* Celular y tableta: barra inferior con total y llamado; se despliega. */
.ar .bp-scrim{display:none}
@media(max-width:1199px){
  .ar .build-panel{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-float);max-height:88dvh;
    padding:0 var(--ar-gutter) calc(.75rem + env(safe-area-inset-bottom));
    background:rgba(12,16,21,.95);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
    border-top:1px solid var(--ar-line2);box-shadow:0 -16px 40px rgba(0,0,0,.55)}
  .ar .build-panel::before{content:"";position:absolute;top:-1px;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent)}
  /* El contenido de la barra sigue el margen de la página (16/24/32 px). */
  .ar .bp-toggle,.ar .bp-sheet,.ar .bp-foot{width:100%;max-width:calc(var(--ar-max) - 2 * var(--ar-gutter));margin-inline:auto}
  .ar .bp-toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:44px;font-family:var(--fm);font-size:.78rem;color:var(--text2)}
  .ar .bp-toggle b{font-weight:700;color:var(--text)}
  .ar .bp-toggle svg{font-size:1rem;transition:transform .3s var(--ar-e)}
  .ar .build-panel.expanded .bp-toggle svg{transform:rotate(180deg)}
  .ar .bp-sheet{display:none;overflow-y:auto;overscroll-behavior:contain;padding:.5rem 0 calc(var(--fade) + .25rem);max-height:calc(88dvh - 9rem);
    -webkit-mask:linear-gradient(#000 calc(100% - var(--fade)),transparent);mask:linear-gradient(#000 calc(100% - var(--fade)),transparent)}
  .ar .build-panel.expanded .bp-sheet{display:flex}
  .ar .build-panel.expanded .bp-foot{padding-top:.75rem;border-top:1px solid var(--ar-line2)}
  .ar .bp-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.4rem .75rem}
  .ar .total-block{grid-column:1}
  .ar .total-val{font-size:1.45rem}
  .ar .bp-cta{grid-column:2;width:auto;min-height:48px;padding:.7rem 1.1rem}
  .ar .total-note,.ar .ar-cta-nota{grid-column:1/-1}
  .ar .total-note{display:none}
  .ar .build-panel.expanded .total-note{display:block}
  .ar .bp-cta:disabled+.ar-cta-nota{display:none}
  .ar .bp-scrim{position:fixed;inset:0;z-index:calc(var(--z-float) - 1);display:block;background:rgba(5,8,11,.6);opacity:0;pointer-events:none;transition:opacity .25s var(--ar-e)}
  .ar .bp-scrim.show{opacity:1;pointer-events:auto}
  body[data-department="armador"]{padding-bottom:calc(7.5rem + env(safe-area-inset-bottom))}
  [data-department="armador"] .nc-wa-float,[data-department="armador"] .nc-top-btn{display:none}
  #toast.toast{bottom:calc(8.5rem + env(safe-area-inset-bottom))}
}
@media(max-width:719px){
  .ar .bp-cta .cta-largo{display:none}
}
/* Hasta ~1530 px el botón flotante de WhatsApp tapa el llamado del panel,
   que ya abre WhatsApp: en esta página se esconde. */
@media(min-width:1200px) and (max-width:1527px){
  [data-department="armador"] .nc-wa-float{display:none}
}
@media(max-width:400px){
  /* "Diseño / Video" entra en una línea en la ficha de media columna. */
  .ar .uc-btn{grid-template-columns:26px minmax(0,1fr);column-gap:.5rem;padding:.65rem .65rem .7rem}
  .ar .uc-ico{width:26px;height:26px;font-size:.85rem}
  .ar .uc-name{font-size:.88rem;letter-spacing:-.015em}
}
@media(max-width:380px){
  .ar .bp-cta{padding:.7rem .85rem;font-size:.92rem}
  .ar .total-val{font-size:1.3rem}
}

/* ── Aviso flotante ── */
#toast.toast{position:fixed;left:50%;bottom:1.5rem;z-index:var(--z-overlay);display:flex;align-items:center;gap:.5rem;max-width:calc(100% - 32px);
  padding:.7rem 1rem;background:#121820;border:1px solid rgba(12,149,243,.45);border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.5),0 0 24px -6px rgba(12,149,243,.4);
  font-family:var(--fm);font-size:.82rem;color:var(--text);
  opacity:0;pointer-events:none;transform:translate(-50%,12px);transition:opacity .25s var(--ar-e),transform .3s var(--ar-e)}
#toast.toast.show{opacity:1;transform:translate(-50%,0)}
#toast.toast svg{color:var(--cyan)}

/* ═══ MOVIMIENTO ════════════════════════════════════════════════ */
@media(prefers-reduced-motion:no-preference){
  /* Entrada: título y uso en secuencia; el gabinete aparece encendiéndose. */
  .ar .ar-intro>*,.ar .ar-uso{animation:ar-sube .7s var(--ar-e) both}
  .ar .ar-intro>:nth-child(2){animation-delay:.06s}
  .ar .ar-intro>:nth-child(3){animation-delay:.12s}
  .ar .ar-uso{animation-delay:.18s}
  .ar .pc-rig{animation:ar-aparece 1s var(--ar-e) .1s both}
  @keyframes ar-sube{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  @keyframes ar-aparece{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}

  /* En espera: los contornos laten despacio y una línea escanea el vidrio. */
  .rig-svg .part:not(.on):not(.next){animation:ar-latido 3.6s ease-in-out infinite;animation-delay:var(--lat,0s)}
  .rig-svg .part-mb{--lat:-.4s}.rig-svg .part-cpu{--lat:-.9s}.rig-svg .part-ram{--lat:-1.3s}
  .rig-svg .part-gpu{--lat:-1.8s}.rig-svg .part-cool{--lat:-2.2s}.rig-svg .part-psu{--lat:-2.7s}.rig-svg .part-ssd{--lat:-3.1s}
  @keyframes ar-latido{0%,100%{opacity:.5}50%{opacity:.72}}
  /* La próxima pieza respira; su punto de acceso late con ella. */
  .rig-svg .part.next{animation:ar-respira 2.4s ease-in-out infinite}
  @keyframes ar-respira{
    0%,100%{opacity:.7;filter:drop-shadow(0 0 2px rgba(12,149,243,.35))}
    50%{opacity:1;filter:drop-shadow(0 0 12px rgba(12,149,243,.95))}
  }
  .ar .bay.next{animation:ar-pulso 2.4s ease-in-out infinite}
  @keyframes ar-pulso{
    0%,100%{box-shadow:inset 0 0 0 1px rgba(12,149,243,.35),0 0 0 0 rgba(12,149,243,0)}
    50%{box-shadow:inset 0 0 0 1px rgba(12,149,243,.8),0 0 26px -2px rgba(12,149,243,.55)}
  }
  .ar .bay.next .bay-name::before{animation:ar-punto 2.4s ease-in-out infinite}
  @keyframes ar-punto{0%,100%{opacity:.45}50%{opacity:1}}
  .ar .pc-case:not(.complete) .rig-svg .barrido{animation:ar-escanea 6s linear infinite}
  @keyframes ar-escanea{0%{opacity:0;transform:translateY(0)}8%{opacity:.75}88%{opacity:.75}100%{opacity:0;transform:translateY(560px)}}
  /* PC completa: un barrido rápido recorre el vidrio una vez. */
  .ar .pc-case.complete .rig-svg .barrido{animation:ar-completa 1.5s var(--ar-e) .2s 1 both}
  @keyframes ar-completa{0%{opacity:0;transform:translateY(0)}15%{opacity:1}100%{opacity:0;transform:translateY(560px)}}

  /* Ventiladores: giran solo cuando su pieza está elegida. */
  .rig-svg .part.on .fan{animation:ar-gira 2.4s linear infinite}
  .rig-svg .part-psu.on .fan{animation-duration:3.2s}
  @keyframes ar-gira{to{transform:rotate(360deg)}}
  /* Barra de luz de la RAM: una onda suave de módulo en módulo. */
  .rig-svg .part-ram.on .barra{animation:ar-onda 2.8s ease-in-out infinite}
  .rig-svg .part-ram.on .barra:nth-child(2){animation-delay:.18s}
  .rig-svg .part-ram.on .barra:nth-child(3){animation-delay:.36s}
  .rig-svg .part-ram.on .barra:nth-child(4){animation-delay:.54s}
  @keyframes ar-onda{0%,100%{opacity:1}50%{opacity:.55}}

  /* Encendido: la pieza nueva parpadea una vez y se asienta. */
  .rig-svg .part.just-on{animation:ar-enciende .8s var(--ar-e) both;animation-delay:var(--d,0s)}
  @keyframes ar-enciende{
    0%{opacity:.3;filter:drop-shadow(0 0 0 rgba(12,149,243,0))}
    18%{opacity:1;filter:drop-shadow(0 0 14px rgba(12,149,243,.95))}
    30%{opacity:.55}
    46%{opacity:1;filter:drop-shadow(0 0 16px rgba(12,149,243,.9))}
    100%{opacity:1;filter:drop-shadow(0 0 5px rgba(12,149,243,.45))}
  }

  /* Pieza nueva en el panel: entra desde la derecha. */
  .ar .part-line.nueva{animation:ar-entra .45s var(--ar-e) both}
  @keyframes ar-entra{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .ar *,.ar *::before,.ar *::after,#toast.toast{animation:none!important;transition-duration:.01ms!important}
  .rig-svg .part:not(.on):not(.next){opacity:.6}
}

/* ═══ TABLETA (720–1199) ════════════════════════════════════════ */
@media(min-width:720px) and (max-width:1199px){
  .ar .step-head{grid-template-columns:2.6rem minmax(0,1fr) auto auto;gap:.6rem}
  .ar .slot-num{font-size:1.45rem}
  .ar .step-inner{padding-left:0}
}

/* ═══ CELULAR ═══════════════════════════════════════════════════ */
@media(max-width:719px){
  .ar .pc-stage{gap:.75rem}
  .ar .step-head{grid-template-columns:2.4rem minmax(0,1fr) auto auto;gap:.55rem;min-height:64px}
  .ar .slot-num{font-size:1.35rem}
  .ar .step-inner{padding-left:0}
  .ar .slot-price{font-size:.82rem}
}
