/* Exergia y Formación — base. Plano técnico / placa de características / esquema unifilar.
   Tokens: todas las páginas usan estas variables, nunca hex sueltos. */
:root{
  --paper:#efede8; --paper-2:#e3e0d9; --white:#fbfaf7;
  --ink:#14211f; --ink-2:#44514f;
  --teal-900:#0b3c41; --teal-700:#216d72; --teal-100:#d6e6e4;
  --volt:#fa9831; --volt-ink:#a4520a;
  --line:#c9c4ba; --line-dark:rgba(255,255,255,.14);
  --on-dark:#f3f1ec; --on-dark-2:rgba(243,241,236,.78);
  --sc-accent:#0b3c41; --sc-icon-stroke:2;

  --f-head:"Saira Condensed","Arial Narrow",sans-serif;
  --f-body:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"DM Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;

  --gut:clamp(20px,4vw,64px);
  --max:1360px;
  --r:3px;
  --gap:clamp(18px,2vw,32px);
  --sec:clamp(56px,7vw,112px);
  --top-h:78px;
}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--top-h) + 16px)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--f-body);overflow-x:clip;-webkit-font-smoothing:antialiased}
img,svg,video{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,h4{font-family:var(--f-head);font-weight:700;line-height:1.05;letter-spacing:.01em;margin:0 0 .5em;color:var(--ink);text-wrap:balance}
h1{font-size:clamp(2.6rem,4.8vw,4.6rem);font-weight:800;line-height:.98}
h2{font-size:clamp(2rem,3.1vw,3rem)}
h3{font-size:1.45rem;line-height:1.15}
h4{font-size:1.15rem}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
a{color:var(--teal-700);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--teal-900);text-decoration-thickness:2px}
strong,b{font-weight:700}
small{font-size:.88rem}
hr{border:0;border-top:1px solid var(--line);margin:2rem 0}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--teal-100);color:var(--ink)}
main{display:block}

/* accesibilidad */
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--teal-900);color:var(--on-dark);padding:.6rem 1rem;font-weight:700;border-radius:var(--r)}
.skip:focus{top:12px;color:var(--on-dark)}
:focus-visible{outline:3px solid var(--teal-700);outline-offset:3px}
.on-dark :focus-visible,.dark :focus-visible,.foot :focus-visible{outline-color:var(--volt)}

/* ---------- tipografía utilitaria ---------- */
.mono{font-family:var(--f-mono);font-weight:400;letter-spacing:.01em}
.eyebrow{display:inline-flex;align-items:center;gap:.7em;font:500 .8rem/1.3 var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--teal-700);margin:0 0 1rem}
.eyebrow::before{content:"";width:28px;height:2px;background:currentColor}
.dark .eyebrow,.on-dark .eyebrow{color:var(--volt)}
.lead{font-size:clamp(1.1rem,1.4vw,1.3rem);line-height:1.5;color:var(--ink-2);max-width:60ch}
.muted{color:var(--ink-2)}
.caption{font:400 .8rem/1.4 var(--f-mono);letter-spacing:.04em;color:var(--ink-2);text-transform:uppercase}
.ord{font:800 clamp(3.5rem,7vw,6.5rem)/.85 var(--f-head);color:var(--teal-700);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.upper{text-transform:uppercase;letter-spacing:.02em}
.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.volt-ink{color:var(--volt-ink)}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:calc(var(--max) + 2 * var(--gut));margin-inline:auto;padding-inline:var(--gut)}
.wrap--narrow{max-width:calc(960px + 2 * var(--gut))}
.bleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.sec{padding-block:var(--sec)}
.sec--tight{padding-block:clamp(36px,4.5vw,64px)}
.band{background:var(--paper)}
.band--alt{background:var(--paper-2)}
.band--white{background:var(--white)}
.dark,.band--dark{background:var(--teal-900);color:var(--on-dark)}
.dark h1,.dark h2,.dark h3,.dark h4,.band--dark h1,.band--dark h2,.band--dark h3,.band--dark h4{color:var(--on-dark)}
.dark p,.band--dark p{color:var(--on-dark-2)}
.dark a,.band--dark a{color:var(--on-dark)}
.dark a:hover,.band--dark a:hover{color:var(--volt)}
.frame{border:1px solid var(--line)}
.frame--ink{border:1px solid var(--ink)}
.rule{height:1px;background:var(--line);border:0;margin:0}
.dark .rule{background:var(--line-dark)}
.stack>*+*{margin-top:var(--stack,1rem)}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}
.between{justify-content:space-between}

/* rejilla */
.grid{display:grid;gap:var(--gap)}
.grid>*{min-width:0}
.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.g-5-7{grid-template-columns:5fr 7fr}
.g-7-5{grid-template-columns:7fr 5fr}
.g-4-8{grid-template-columns:minmax(280px,4fr) 8fr}
.g-8-4{grid-template-columns:8fr minmax(280px,4fr)}
.g-3-9{grid-template-columns:minmax(240px,3fr) 9fr}
.g-auto{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.g-gapless{gap:0}
.g-ruled{gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.g-ruled>*{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.span-2{grid-column:span 2}
.al-c{align-items:center}
.al-e{align-items:end}

/* fotos */
.ph{display:block;width:100%;height:auto;object-fit:cover;background:var(--paper-2)}
.ph-169{aspect-ratio:16/9}
.ph-32{aspect-ratio:3/2}
.ph-43{aspect-ratio:4/3}
.ph-34{aspect-ratio:3/4}
.ph-45{aspect-ratio:4/5}
.ph-11{aspect-ratio:1/1}
.ph-21{aspect-ratio:21/9}
.ph-wrap{position:relative;overflow:hidden}
.veil::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,60,65,.88) 0%,rgba(11,60,65,.55) 45%,rgba(11,60,65,.1) 100%);pointer-events:none}
.ph-cap{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line);font:400 .78rem/1.4 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:48px;padding:.7em 1.35em;border:2px solid var(--teal-900);border-radius:var(--r);background:var(--teal-900);color:var(--on-dark);font:700 1.02rem/1.1 var(--f-head);letter-spacing:.05em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s}
.btn:hover{background:var(--teal-700);border-color:var(--teal-700);color:var(--white)}
.btn svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2}
.btn--line,.btn--secondary,.btn-secondary,.btn--ghost{background:transparent;color:var(--teal-900)}
.btn--line:hover,.btn--secondary:hover,.btn-secondary:hover,.btn--ghost:hover{background:var(--teal-900);border-color:var(--teal-900);color:var(--on-dark)}
.btn--volt,.btn-volt{background:var(--volt);border-color:var(--volt);color:var(--ink)}
.btn--volt:hover,.btn-volt:hover{background:transparent;border-color:var(--volt);color:var(--on-dark)}
.btn--light{background:transparent;border-color:var(--on-dark);color:var(--on-dark)}
.btn--light:hover{background:var(--on-dark);border-color:var(--on-dark);color:var(--teal-900)}
.dark .btn--line,.band--dark .btn--line{color:var(--on-dark);border-color:var(--on-dark)}
.dark .btn--line:hover,.band--dark .btn--line:hover{background:var(--on-dark);color:var(--teal-900)}
.btn--sm{min-height:38px;padding:.45em .9em;font-size:.92rem}
.btn--wide{width:100%}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.link-arrow{font:700 1rem/1.2 var(--f-head);letter-spacing:.05em;text-transform:uppercase;text-decoration:none;color:var(--teal-700)}
.link-arrow::after{content:" →"}
.link-arrow:hover{text-decoration:underline}
.btn-x{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--ink-2);border-radius:var(--r);background:transparent;color:var(--ink);cursor:pointer;font:500 1.1rem/1 var(--f-mono)}
.btn-x:hover{background:var(--ink);color:var(--white)}

/* ---------- chips / badges / precio ---------- */
.chip{display:inline-flex;align-items:center;gap:.4em;padding:.32em .7em;border:1px solid var(--ink-2);border-radius:2px;background:transparent;color:var(--ink);font:500 .78rem/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
a.chip:hover{border-color:var(--teal-900);background:var(--teal-100);color:var(--ink)}
.chip.is-on,.chip[aria-current],.chip[aria-pressed="true"]{background:var(--teal-900);border-color:var(--teal-900);color:var(--on-dark)}
.chip--volt{background:var(--volt);border-color:var(--volt);color:var(--ink)}
.chip--tint{background:var(--teal-100);border-color:var(--teal-100);color:var(--teal-900)}
.dark .chip{border-color:var(--on-dark-2);color:var(--on-dark)}
.price{font:700 1.7rem/1 var(--f-head);color:var(--ink);letter-spacing:.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
.price small,.price .iva{display:block;margin-top:.3em;font:400 .76rem/1.2 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.price del,.was{font:400 .95rem var(--f-mono);color:var(--ink-2)}
.dark .price{color:var(--on-dark)}
.dark .price small,.dark .price .iva{color:var(--on-dark-2)}

/* ---------- placa de características ---------- */
.plate{position:relative;background:var(--white);border:1px solid var(--ink);color:var(--ink)}
.plate-h{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 1rem;background:var(--teal-900);color:var(--on-dark);font:500 .78rem/1.3 var(--f-mono);letter-spacing:.09em;text-transform:uppercase}
.plate-h b,.plate-h strong{font-weight:500;color:var(--volt)}
.plate-b{padding:1.1rem 1.15rem}
.plate-f{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem 1rem;padding:1rem 1.15rem;border-top:1px solid var(--ink)}
.plate h3,.plate .plate-t{font-size:1.5rem;margin:0 0 .4rem}
.spec{display:grid;grid-template-columns:minmax(8.5rem,max-content) minmax(0,1fr);margin:0;border-top:1px solid var(--line)}
.spec>dt,.spec>dd,.spec>div>dt,.spec>div>dd{margin:0;padding:.55rem 0;border-bottom:1px solid var(--line)}
.spec>div{display:contents}
.spec dt{padding-right:1rem;font:500 .78rem/1.5 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.spec dd{font:400 .95rem/1.5 var(--f-mono);color:var(--ink);overflow-wrap:anywhere}
.spec dd strong,.spec dd b{font-family:var(--f-head);font-size:1.15rem;font-weight:700}
.plate .spec{margin:0 1.15rem}
.plate .spec>dt:last-of-type,.plate .spec>dd:last-of-type{border-bottom:0}
.dark .plate{color:var(--ink)}
.tag-corner{position:absolute;top:-1px;right:-1px;padding:.25rem .55rem;background:var(--volt);color:var(--ink);font:500 .76rem/1.2 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}

/* ---------- movimiento ---------- */
.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal="frame"]{opacity:1;transform:scaleX(0);transform-origin:left center;transition:transform .9s cubic-bezier(.6,.05,.2,1);transition-delay:var(--d,0s)}
.js [data-reveal="frame"].is-in{transform:scaleX(1)}
[data-reveal-delay="1"]{--d:.08s}[data-reveal-delay="2"]{--d:.16s}[data-reveal-delay="3"]{--d:.24s}[data-reveal-delay="4"]{--d:.32s}[data-reveal-delay="5"]{--d:.4s}

/* corriente que recorre la cadena: trazo discontinuo (periodo 12) */
@keyframes flow{from{stroke-dashoffset:0}to{stroke-dashoffset:-48}}
.flow{stroke-dasharray:8 4;animation:flow 1.6s linear infinite}
/* nivel de carga de la batería */
@keyframes charge{from{width:20%}to{width:85%}}
.charge{animation:charge 6s ease-in-out infinite alternate}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .flow,.charge{animation:none!important}
  .js [data-reveal],.js [data-reveal="frame"]{opacity:1;transform:none}
}

/* desplazamiento horizontal (data-hscroll) */
[data-hscroll]{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--teal-700) transparent}
.dark [data-hscroll],.band--dark [data-hscroll]{scrollbar-color:var(--volt) transparent}

/* ---------- cabecera ---------- */
.top{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:clamp(16px,2vw,32px);height:var(--top-h);width:100%;max-width:calc(var(--max) + 2 * var(--gut));margin-inline:auto;padding-inline:var(--gut)}
.brand{display:flex;align-items:center;gap:.7rem;flex:none;text-decoration:none;color:var(--teal-900)}
.brand img{width:40px;height:47px}
.brand span{display:flex;flex-direction:column;font:800 1.45rem/.9 var(--f-head);letter-spacing:.04em;text-transform:uppercase;color:var(--teal-900)}
.brand em{font-style:normal;font-weight:600;font-size:.98rem;letter-spacing:.03em;text-transform:none;color:var(--teal-700);margin-top:.2em}
.brand:hover{color:var(--teal-900)}
.nav{display:flex;align-items:center;gap:clamp(12px,1.4vw,24px);min-width:0}
.nav a{position:relative;padding:.4rem 0;color:var(--ink);font-size:.96rem;text-decoration:none;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--teal-700);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.nav a:hover{color:var(--teal-900)}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
.nav a[aria-current]{color:var(--teal-900);font-weight:700}
.top-search{margin-left:auto;display:flex;align-items:stretch;flex:0 1 220px;min-width:130px}
.top-search input{width:100%;min-width:0;height:40px;padding:0 .7rem;border:1px solid var(--ink-2);border-right:0;border-radius:var(--r) 0 0 var(--r);background:var(--white);font:400 .86rem var(--f-mono)}
.top-search input::placeholder{color:var(--ink-2);opacity:1}
.top-search button{flex:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ink-2);border-radius:0 var(--r) var(--r) 0;background:var(--white);color:var(--teal-900);cursor:pointer}
.top-search button:hover{background:var(--teal-900);color:var(--on-dark);border-color:var(--teal-900)}
.top-search svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}
.top-cart{display:inline-flex;align-items:center;gap:.5rem;flex:none;height:42px;padding:0 .95rem;border:2px solid var(--teal-900);border-radius:var(--r);color:var(--teal-900);font:700 .98rem/1 var(--f-head);letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.top-cart svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.top-cart b{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;background:var(--volt);color:var(--ink);font:500 .8rem/1 var(--f-mono);border-radius:2px}
.top-cart:hover{background:var(--teal-900);color:var(--on-dark)}
.top-cart[aria-current]{background:var(--teal-900);color:var(--on-dark)}

/* ---------- pie ---------- */
.foot{background:var(--teal-900);color:var(--on-dark);margin-top:0}
.foot-in{width:100%;max-width:calc(var(--max) + 2 * var(--gut));margin-inline:auto;padding:clamp(40px,4.5vw,64px) var(--gut) 28px;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:28px 48px}
.foot-in>*{min-width:0}
.foot-brand{display:flex;align-items:center;gap:.8rem;color:var(--on-dark);text-decoration:none;font:800 1.4rem/1 var(--f-head);letter-spacing:.04em;text-transform:uppercase}
.foot-brand img{width:34px;height:40px}
.foot-line{margin:.9rem 0 0;max-width:46ch;color:var(--on-dark-2)}
.foot-chain{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin:1.2rem 0 0;padding:0;list-style:none;font:400 .82rem/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase}
.foot-chain a{color:var(--on-dark);text-decoration:none}
.foot-chain a:hover{color:var(--volt);text-decoration:underline}
.foot-chain span{color:var(--volt)}
.foot-pay p{margin:0 0 .8rem;font-size:.92rem;color:var(--on-dark-2)}
.pagos{display:flex;flex-wrap:wrap;gap:8px}
.pagos img{height:26px;width:auto;border-radius:3px;background:var(--white)}
.foot-bottom{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 28px;padding-top:22px;border-top:1px solid var(--line-dark)}
.foot-legal{display:flex;flex-wrap:wrap;gap:6px 22px}
.foot-legal a{color:var(--on-dark);font-size:.92rem;text-decoration:none}
.foot-legal a:hover{color:var(--volt);text-decoration:underline}
.foot-copy{margin:0;font:400 .82rem/1.4 var(--f-mono);letter-spacing:.04em;color:var(--on-dark-2)}

/* ---------- cabecera de página interior ---------- */
.phead{padding-block:clamp(40px,5vw,80px) clamp(28px,3vw,44px);border-bottom:1px solid var(--line)}
.phead-in{display:grid;grid-template-columns:minmax(0,8fr) minmax(220px,4fr);gap:var(--gap);align-items:end}
.phead-in>*{min-width:0}
.phead h1{margin:0}
.phead .lead{margin:1rem 0 0}
.phead-meta{justify-self:end;text-align:right;font:400 .8rem/1.6 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.phead-meta b{display:block;font-weight:500;color:var(--ink)}

/* ---------- avisos ---------- */
.note{margin:0 0 1.2rem;padding:.9rem 1.1rem;border:1px solid var(--teal-700);border-left-width:6px;background:var(--teal-100);color:var(--ink)}
.note--warn{border-color:var(--volt-ink);background:var(--white)}
.note--warn strong{color:var(--volt-ink)}
.note p:last-child{margin-bottom:0}

/* ---------- formularios ---------- */
.field{display:grid;gap:.35rem;margin:0 0 1rem}
label{cursor:pointer}
.lbl{font:500 .8rem/1.3 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2)}
.opt{font:400 .76rem var(--f-mono);letter-spacing:.04em;text-transform:none;color:var(--ink-2)}
input[type=text],input[type=email],input[type=search],input[type=tel],input[type=number],select,textarea{width:100%;min-height:46px;padding:.6rem .8rem;border:1px solid var(--ink-2);border-radius:var(--r);background:var(--white);color:var(--ink);font-size:1rem;line-height:1.3}
textarea{min-height:120px;resize:vertical}
select{appearance:none;-webkit-appearance:none;padding-right:2.4rem;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 12px) 52%;background-size:6px 6px;background-repeat:no-repeat}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--teal-700);outline-offset:1px;border-color:var(--teal-900)}
input[aria-invalid="true"],select[aria-invalid="true"]{border:2px solid var(--volt-ink)}
.err{display:block;margin-top:.3rem;color:var(--volt-ink);font-size:.92rem;font-weight:700}
.check{display:grid;grid-template-columns:22px minmax(0,1fr);gap:.7rem;align-items:start;line-height:1.5}
.check input{width:20px;height:20px;margin:.15rem 0 0;accent-color:var(--teal-900)}

/* ---------- tablas ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:1rem}
.tbl th{padding:.6rem .8rem;border-bottom:2px solid var(--ink);text-align:left;font:500 .78rem/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);vertical-align:bottom}
.tbl td{padding:.85rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}
.tbl .r{text-align:right}
.tbl tfoot td,.tbl tfoot th{border-bottom:0}

/* ---------- carrito: lista de materiales ---------- */
.cart-page{padding-bottom:var(--sec)}
.cart-body{display:grid;grid-template-columns:minmax(0,8fr) minmax(280px,4fr);gap:var(--gap) clamp(32px,4vw,64px);align-items:start;margin-top:clamp(28px,3vw,44px)}
.cart-body>*{min-width:0}
.bom{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--ink)}
.bom caption{caption-side:top;text-align:left;padding:.55rem 1rem;background:var(--teal-900);color:var(--on-dark);font:500 .78rem/1.3 var(--f-mono);letter-spacing:.09em;text-transform:uppercase}
.bom thead th{padding:.7rem 1rem;border-bottom:1px solid var(--ink);text-align:left;font:500 .76rem/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.bom td{padding:1rem;border-bottom:1px solid var(--line);vertical-align:middle}
.bom .pos{width:3.5rem;font:500 1.5rem/1 var(--f-head);color:var(--teal-700)}
.bom .ref{width:5.5rem;font:400 .82rem var(--f-mono);color:var(--ink-2);white-space:nowrap}
.bom .r{text-align:right;white-space:nowrap}
.bom .hrs{font:400 .92rem var(--f-mono)}
.bom .amt{font:700 1.2rem var(--f-head);font-variant-numeric:tabular-nums}
.bom .rm{width:3.5rem;text-align:right}
.bom-item{display:grid;grid-template-columns:96px minmax(0,1fr);gap:1rem;align-items:center}
.bom-item img{width:96px;height:64px;object-fit:cover}
.bom-item a{color:var(--ink);font-weight:700;text-decoration:none}
.bom-item a:hover{color:var(--teal-700);text-decoration:underline}
.bom-item small{display:block;margin-top:.15rem;font:400 .8rem/1.4 var(--f-mono);letter-spacing:.03em;color:var(--ink-2)}
.bom-item .incl{color:var(--volt-ink);font-family:var(--f-body);font-size:.88rem}
.bom tfoot td{padding:.7rem 1rem;border-bottom:0;background:var(--paper-2)}
.bom tfoot tr:first-child td{border-top:1px solid var(--ink)}
.bom tfoot .tot td{padding-block:1rem;background:var(--teal-900);color:var(--on-dark)}
.bom tfoot .tot .amt{font-size:1.7rem;color:var(--on-dark)}
.bom tfoot .lab{font:500 .78rem/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}
.cart-go{position:sticky;top:calc(var(--top-h) + 20px)}
.cart-go .plate-b>p:not(.price){color:var(--ink-2);font-size:.95rem}
.cart-go .price{font-size:2.2rem;margin-bottom:1rem}
.cart-go .btn{width:100%}
.cart-go .btn+.btn{margin-top:.6rem}
.swap{margin:0 0 1rem;padding:1rem 1.1rem;border:2px solid var(--volt);background:var(--white)}
.swap h2{font-size:1.35rem;margin:0 0 .4rem}
.swap .spec{margin:.6rem 0 .9rem}
.swap .save{color:var(--volt-ink);font-weight:700}
.swap .mono{font-size:.86rem}
.cart-after{margin-top:clamp(40px,5vw,72px);display:grid;grid-template-columns:minmax(240px,4fr) minmax(0,8fr);gap:var(--gap) clamp(32px,4vw,64px);border-top:1px solid var(--ink);padding-top:clamp(24px,3vw,40px)}
.cart-after>*{min-width:0}
.steps{list-style:none;margin:0;padding:0;counter-reset:st;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.steps>div{counter-increment:st;position:relative;padding:1.1rem 1.2rem 1.2rem 4rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.steps>div::before{content:counter(st,decimal-leading-zero);position:absolute;left:1.1rem;top:1rem;font:800 1.7rem/1 var(--f-head);color:var(--teal-700)}
.steps dd{margin:0}.steps>div dt{display:block;font-family:var(--f-head);font-size:1.15rem;margin-bottom:.2rem}
.steps dd{color:var(--ink-2);font-size:.95rem}
.empty{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--gap);align-items:center;margin-top:clamp(28px,3vw,44px);padding:clamp(24px,3vw,44px);border:1px dashed var(--ink-2);background:var(--white)}
.empty>*{min-width:0}
.empty h2{margin-bottom:.4rem}

/* ---------- pago: parte de trabajo ---------- */
.co-body{display:grid;grid-template-columns:minmax(0,8fr) minmax(300px,4fr);gap:var(--gap) clamp(32px,4vw,64px);align-items:start;margin-top:clamp(28px,3vw,44px);padding-bottom:var(--sec)}
.co-body>*{min-width:0}
.co-sum{order:2;position:sticky;top:calc(var(--top-h) + 20px)}
.co-sum .spec{margin:0;grid-template-columns:minmax(0,1fr) max-content}
.co-sum .spec dt{font:400 .95rem/1.4 var(--f-body);letter-spacing:0;text-transform:none;color:var(--ink)}
.co-sum .spec dd.r{text-align:right;padding-left:1rem;white-space:nowrap}
.co-sum .spec dt.tot,.co-sum .spec dd.tot{border-top:2px solid var(--ink);border-bottom:0;padding-top:.9rem}
.co-sum .spec dt.tot{font:700 1.1rem/1.6 var(--f-head);text-transform:uppercase;letter-spacing:.04em}
.co-sum .spec dd.tot{font:700 1.6rem/1 var(--f-head);color:var(--ink)}
.co-sum .edit{display:inline-block;margin-top:.8rem;font-size:.92rem}
.co-form{order:1}
.sheet{width:100%;border-collapse:collapse;margin:0 0 clamp(20px,2vw,28px);background:var(--white);border:1px solid var(--ink)}
.sheet caption{caption-side:top;text-align:left;padding:.55rem 1rem;background:var(--teal-900);color:var(--on-dark);font:500 .78rem/1.3 var(--f-mono);letter-spacing:.09em;text-transform:uppercase}
.sheet caption b{color:var(--volt);font-weight:500;margin-right:.6em}
.sheet td{padding:.75rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
.sheet tr:last-child td{border-bottom:0}
.sheet td:first-child{width:30%;padding-top:1.15rem;border-right:1px solid var(--line);background:var(--paper)}
.sheet td:first-child label,.sheet td:first-child .lbl{display:block;font:500 .8rem/1.3 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink)}
.sheet td:first-child .opt{display:block;margin-top:.2rem}
.sheet .pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.8rem}
.sheet .pair>*{min-width:0}
.co-pay{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.5rem;padding:1.1rem 1.2rem;border:1px solid var(--ink);border-top:0;background:var(--paper-2);margin-top:calc(-1 * clamp(20px,2vw,28px))}
.co-pay .btn{min-width:260px}
.co-pay .pagos img{background:var(--white);box-shadow:0 0 0 1px var(--line)}
.co-pay small{display:block;width:100%;color:var(--ink-2)}
.co-err{margin:0 0 1.2rem}

/* ---------- pedido: puesta en marcha ---------- */
.ord-body{display:grid;grid-template-columns:minmax(260px,4fr) minmax(0,8fr);gap:var(--gap) clamp(32px,4vw,72px);align-items:start;margin-top:clamp(28px,3vw,44px);padding-bottom:var(--sec)}
.ord-body>*{min-width:0}
.sld{position:relative;margin:0;padding:0;list-style:none}
.sld::before{content:"";position:absolute;left:19px;top:20px;bottom:20px;width:4px;background:var(--ink)}
.sld li{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);gap:1rem;align-items:start;padding:0 0 2.2rem}
.sld li:last-child{padding-bottom:0}
.sld .node{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:3px solid var(--ink);border-radius:50%;background:var(--paper);font:500 .8rem var(--f-mono);color:var(--ink)}
.sld .is-done .node{background:var(--teal-900);border-color:var(--teal-900);color:var(--on-dark)}
.sld .is-now .node{background:var(--volt);border-color:var(--ink);color:var(--ink);box-shadow:0 0 0 6px rgba(250,152,49,.3)}
.sld b{display:block;font:700 1.25rem/1.1 var(--f-head);text-transform:uppercase;letter-spacing:.03em;padding-top:.45rem}
.sld span{display:block;color:var(--ink-2);font-size:.95rem;margin-top:.15rem}
.sld .is-next b{color:var(--ink-2)}
.proto{list-style:none;margin:0 0 2rem;padding:0;counter-reset:pr;border-top:1px solid var(--ink)}
.proto>li{counter-increment:pr;display:grid;grid-template-columns:5rem minmax(0,1fr);gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.proto>li::before{content:"PASO " counter(pr,decimal-leading-zero);font:500 .78rem/1.8 var(--f-mono);letter-spacing:.06em;color:var(--teal-700)}
.proto>li b{display:block;font:700 1.2rem/1.2 var(--f-head);margin-bottom:.2rem}
.proto>li p{margin:0;color:var(--ink-2)}
.ord-lines{width:100%;border-collapse:collapse;margin:0 0 2rem;background:var(--white);border:1px solid var(--ink)}
.ord-lines caption{caption-side:top;text-align:left;padding:.55rem 1rem;background:var(--teal-900);color:var(--on-dark);font:500 .78rem/1.3 var(--f-mono);letter-spacing:.09em;text-transform:uppercase}
.ord-lines th{padding:.6rem 1rem;border-bottom:1px solid var(--ink);text-align:left;font:500 .76rem/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.ord-lines td{padding:.8rem 1rem;border-bottom:1px solid var(--line)}
.ord-lines .r{text-align:right;white-space:nowrap;font-family:var(--f-mono)}
.ord-lines tfoot td{background:var(--paper-2);border-bottom:0}
.ord-lines tfoot .tot td{background:var(--teal-900);color:var(--on-dark);font:700 1.3rem var(--f-head)}
.withdraw{margin:0 0 2rem;border:1px solid var(--ink-2);background:var(--white)}
.withdraw summary{padding:.9rem 1.1rem;cursor:pointer;font-weight:700;list-style-position:inside}
.withdraw>div{padding:0 1.1rem 1.1rem}
.withdraw[open] summary{border-bottom:1px solid var(--line);margin-bottom:1rem}
.seller{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);font:400 .8rem/1.6 var(--f-mono);color:var(--ink-2)}
.state-box{max-width:760px;margin:clamp(28px,3vw,44px) 0 var(--sec);padding:clamp(24px,3vw,40px);border:1px solid var(--ink);background:var(--white)}

/* ---------- documentos legales ---------- */
.doc{max-width:70ch;padding-block:clamp(36px,4vw,64px) var(--sec);counter-reset:sec}
.doc h2{counter-increment:sec;display:flex;gap:.7em;align-items:baseline;margin:2.4em 0 .6em;padding-top:.9em;border-top:1px solid var(--line);font-size:1.75rem}
.doc h2::before{content:counter(sec,decimal-leading-zero);flex:none;font:500 .95rem var(--f-mono);color:var(--teal-700)}
.doc h2:first-of-type{margin-top:0}
.doc h3{font-size:1.2rem;margin:1.6em 0 .4em}
.doc p,.doc li{max-width:70ch}
.doc ul,.doc ol{padding-left:1.3em}
.doc li{margin-bottom:.4em}
.doc .tbl{margin:1rem 0 1.4rem;font-size:.95rem}
.doc .tbl td:first-child{font-family:var(--f-mono);font-size:.88rem;white-space:nowrap}
.doc-meta{margin:0 0 2rem;font:400 .8rem/1.6 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.doc address{font-style:normal}
.doc code{font-family:var(--f-mono);font-size:.9em;padding:.05em .35em;background:var(--paper-2);border:1px solid var(--line);border-radius:2px}

/* ---------- 404 ---------- */
.nf{padding-block:clamp(56px,8vw,128px)}
.nf .ord{font-size:clamp(6rem,14vw,12rem);color:var(--teal-900)}

/* impresión */
@media print{.top,.foot,.sc,.sc-launch,.skip{display:none!important}body{background:var(--white)}}
