/* Pantalla «compra»: solo lo propio de esta maqueta, encima de comun.css (construir-css.py). No editar a mano. */
@keyframes up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.quien{display:flex;align-items:center;justify-content:space-between;gap:14px 24px;flex-wrap:wrap;padding:26px var(--pad) 18px}
.niv{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap;vertical-align:middle;margin-left:10px;display:inline-block;line-height:1.35;color:var(--struct);background:transparent;box-shadow:inset 0 0 0 1px var(--struct);text-decoration:none;position:relative;top:-3px}
.strip .st b{display:block;font-family:var(--disp);font-weight:700;font-size:2.125rem;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.strip .st b small{font-size:.5em;font-weight:500;margin-left:3px}
.rejilla{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:12px var(--pad) 8px}
@media (max-width:900px){
  .rejilla{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:600px){
  .rejilla{grid-template-columns:1fr}
}
.ficha{position:relative;background:var(--s1);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .45s}
@media (hover:hover){
  .ficha:hover{transform:translateY(-4px);border-color:var(--line2);box-shadow:var(--shadow)}
}
.ficha h3{font-size:1.375rem;line-height:1.1}
.ficha p{font-size:0.90625rem;color:var(--tx2)}
.rh h2 .pill{font-family:var(--mono);font-size:0.625rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;padding:4px 8px;border-radius:var(--r);letter-spacing:.1em}
.rw{position:relative}
.track{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:12px var(--pad) 22px;scroll-padding-inline:var(--pad);scrollbar-width:none;scroll-behavior:smooth;-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--pad) * .9),transparent 100%);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--pad) * .9),transparent 100%)}
.track::-webkit-scrollbar{display:none}
.card{position:relative;flex:0 0 auto;width:min(300px,64vw);aspect-ratio:16/10;border-radius:var(--r);overflow:hidden;background:var(--s1);scroll-snap-align:start;border:1px solid var(--line);transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .45s;transform-origin:center;display:block}
.card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.card:focus-visible{transform:scale(1.07);z-index:3;border-color:var(--line2);box-shadow:var(--shadow)}
@media (hover:hover){
  .card:hover{transform:scale(1.07);z-index:3;border-color:var(--line2);box-shadow:var(--shadow)}
  .card:hover img{transform:scale(1.04)}
}
.card .ci{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 12px;transition:padding .45s cubic-bezier(.2,.8,.2,1)}
@media (hover:hover){
  .card:hover .ci{padding-top:64px;background:linear-gradient(to top,rgba(0,0,0,.9) 50%,rgba(0,0,0,0))}
}
.card h3{font-size:1.1875rem;line-height:1.1;color:#fff}
.arr{position:absolute;top:0;bottom:0;border:none;background:none;color:var(--tx);font-size:2.75rem;cursor:pointer;z-index:4;opacity:0;transition:opacity .3s;font-family:var(--body);line-height:1}
@media (hover:hover){
  .rw:hover .arr{opacity:1}
}
@media (hover:none){
  .arr{display:none}
}
.buscador input:focus{outline:2px solid var(--acc);outline-offset:-1px;border-color:var(--acc)}
.ficha[hidden]{display:none}
.ficha .cat{position:absolute;top:12px;font-family:var(--mono);font-size:0.625rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;border-radius:var(--r);z-index:1}
.ficha .abierto{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:0.625rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;border-radius:var(--r);z-index:1}
.ficha .abierto i{width:0;height:0;border-left:7px solid var(--struct);border-top:4px solid transparent;border-bottom:4px solid transparent}
.ficha .est{font-family:var(--mono);font-size:0.625rem;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.ficha .est.hecho{color:var(--ok)}
.ficha .oferta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.ficha .oferta b{font-family:var(--disp);font-weight:800;font-size:0.9375rem;letter-spacing:-.01em;color:var(--struct);line-height:1.15}
.ficha .oferta small{font-family:var(--body);font-size:0.84375rem;color:var(--tx2);font-variant-numeric:tabular-nums}
.mas{text-align:center;padding:26px var(--pad) 0}
.card .abierto{position:absolute;top:10px;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:0.625rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;border-radius:var(--r)}
.card .abierto i{width:0;height:0;border-left:7px solid var(--struct);border-top:4px solid transparent;border-bottom:4px solid transparent}
.card .d{font-family:var(--body);font-size:0.78125rem;line-height:1.4;color:rgba(255,255,255,.88);max-height:0;overflow:hidden;opacity:0;margin-top:0;transition:max-height .45s cubic-bezier(.2,.8,.2,1),opacity .35s,margin .45s;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.card:focus-visible .d{max-height:60px;opacity:1;margin-top:6px}
@media (hover:hover){
  .card:hover .d{max-height:60px;opacity:1;margin-top:6px}
}
@media (hover:none){
  .card .d{display:none}
}
.hero{min-height:62svh}
.hero .in{padding-top:120px}
.bt-tres.pliega .bt-testi.abierto .bt-txt{-webkit-line-clamp:unset;display:block;overflow:visible}
@media (hover:hover){
  .bt-tres.pliega .bt-testi:hover .bt-txt{-webkit-line-clamp:unset;display:block;overflow:visible}
}
.bt-tres.pliega .bt-testi.abierto .bt-txt p+p{display:block}
@media (hover:hover){
  .bt-tres.pliega .bt-testi:hover .bt-txt p+p{display:block}
}
.bt-tres.pliega .bt-testi.abierto .bt-quien::after{content:""}
@media (hover:hover){
  .bt-tres.pliega .bt-testi:hover .bt-quien::after{content:""}
}
.bt-form{display:flex;gap:10px;flex-wrap:wrap}
.hero.prog .cta{align-items:center}
.hero .cta .insignia-prog{width:56px;height:56px;border-radius:12px;overflow:hidden;background:none;flex:0 0 auto;display:block;margin-right:2px}
.hero .cta .insignia-prog img{width:56px;height:56px;object-fit:cover;display:block}
@media (max-width:640px){
  .hero.prog .cta .btn{white-space:normal;text-align:left;line-height:1.25;max-width:100%}
}
.ficha .precio-f{font-family:var(--disp);font-weight:800;font-size:1.25rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ficha .badge.st{background:var(--struct);color:#0B1A18}
.testimonio{margin:40px var(--pad) 0}
.cuentas{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:960px}
.cuentas>div{background:var(--s1);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px}
@media (max-width:700px){
  .cuentas{grid-template-columns:1fr}
}
.hubs{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.hubs a{background:var(--s1);border:1px solid var(--line);border-radius:var(--r);padding:15px 17px;display:block;transition:border-color .3s,transform .35s cubic-bezier(.2,.8,.2,1)}
@media (hover:hover){
  .hubs a:hover{border-color:var(--line2);transform:translateY(-2px)}
}
.hubs .c{font-family:var(--mono);font-size:0.6875rem;color:var(--tx3);display:block;margin-top:5px}
.hero .up.dos{margin-top:-6px}
.paso{background:var(--s1);border:1px solid var(--line);border-radius:var(--r);margin-bottom:14px;overflow:hidden}
.paso>h2{font-size:1.1875rem;padding:14px 20px;background:var(--s2);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;margin:0}
.paso>h2 em{font-family:var(--mono);font-style:normal;font-size:0.75rem;color:var(--struct);font-weight:600}
.paso .dentro{padding:20px}
label{display:block;font-family:var(--mono);font-size:0.65625rem;letter-spacing:.09em;text-transform:uppercase;color:var(--tx3);margin-bottom:6px}
.campo input[type="text"],.campo input[type="email"],.campo select{width:100%;font-family:var(--body);border:1px solid var(--line2);color:var(--tx);padding:11px 14px}
.campo input::placeholder{color:var(--tx3)}
.campo input:focus,.campo select:focus{outline:2px solid var(--acc);outline-offset:-1px;border-color:var(--acc)}
.campo{margin-bottom:16px}
.campo:last-child{margin-bottom:0}
.dosc{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:600px){
  .dosc{grid-template-columns:1fr}
}
.pista-campo{font-size:0.78125rem;color:var(--tx3);margin-top:6px}
.metodo small{display:block;font-family:var(--mono);font-size:0.625rem;letter-spacing:.06em;margin-top:3px;text-transform:uppercase}
.marco-tarjeta{background:var(--s2);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.marco-tarjeta .aviso-mono{font-family:var(--mono);font-size:0.65625rem;letter-spacing:.09em;text-transform:uppercase;color:var(--tx3);display:block;margin-bottom:12px}
.casilla{display:grid;grid-template-columns:20px 1fr;gap:11px;align-items:start;margin-bottom:14px;font-size:0.90625rem;color:var(--tx2)}
.casilla label{font-family:var(--body);font-size:0.90625rem;text-transform:none;letter-spacing:0;color:var(--tx2);margin:0}
.casilla input{appearance:none;width:18px;height:18px;border:1px solid var(--line2);border-radius:5px;background:var(--bg);cursor:pointer;position:relative;margin-top:3px}
.casilla input:checked{background:var(--acc);border-color:var(--acc)}
.casilla input:checked::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid var(--acctx);border-width:0 2px 2px 0;transform:rotate(45deg)}
.casilla input:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.casilla a{color:var(--acc2);border-bottom:1px solid var(--line2)}
.btn.ancho{width:100%;justify-content:center;margin-top:18px;font-size:1rem;padding:15px 20px}
.lineas{list-style:none}
.lineas li{display:grid;grid-template-columns:1fr auto;gap:14px;padding:14px 20px;border-top:1px solid var(--line);font-size:0.90625rem}
.lineas li:first-child{border-top:none}
.lineas .nom small{display:block;color:var(--tx3);font-size:0.78125rem;margin-top:2px}
footer{margin-top:60px}
.casilla.sec{opacity:.72;font-size:0.8125rem;margin-top:6px}
.casilla.sec label{font-size:0.8125rem}
:root:not([data-pago="rechazada"]) .solo-rechazada{display:none!important}
:root:not([data-pago="3ds"]) .solo-3ds{display:none!important}
:root:not([data-pago="link"]) .solo-link-sin{display:none!important}
.aviso-pago{border:1px solid var(--line);border-left:4px solid var(--crit);border-radius:var(--r);background:var(--critbg);padding:14px 18px;margin:0 0 14px;display:grid;gap:6px}
.aviso-pago.aviso{border-left-color:var(--warn);background:var(--s1)}
.aviso-pago .cabecera{font-family:var(--mono);font-size:0.65625rem;letter-spacing:.09em;text-transform:uppercase;color:var(--crit);display:block}
.aviso-pago.aviso .cabecera{color:var(--warn)}
.aviso-pago p{margin:0;font-size:0.90625rem;color:var(--tx)}
.aviso-pago p+p{color:var(--tx2)}
.aviso-pago .acc{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
h1{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
h2{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
h3{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
h4{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.quien .hola{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.strip .st b{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.sigue .cu b{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.lista-res .curso-res{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.ficha .oferta b{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.bt-com{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.bt-quien b{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.tcomillas{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.tquien b{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.ficha .precio-f{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.cuentas .gordo{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.suma li:last-child{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.hubs .t{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.lineas li.total .nom{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
.lineas li.total .imp{font-weight:500;letter-spacing:-.04em;font-optical-sizing:auto}
label,label.et{font-family:var(--body);font-size:0.84375rem;letter-spacing:0;text-transform:none;color:var(--tx2);font-weight:500}
.resumen .quien-vende{margin:0;padding:14px 20px}
.spe{--spe-p:var(--acc);--spe-bd:var(--line2);--spe-err:var(--crit);font-family:var(--body);color:var(--tx);margin:4px 0 0}
.spe[hidden]{display:none!important}
.spe-tabs{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:12px;margin:0 0 16px}
.spe-tab{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:64px;padding:10px 12px;background:var(--s1);border:1px solid var(--spe-bd);border-radius:12px;font:600 0.875rem/1.2 var(--body);color:var(--tx2);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s,color .15s}
@media (hover:hover){
  .spe-tab:hover{color:var(--tx)}
}
.spe-tab[aria-selected="true"]{border-color:var(--spe-p);box-shadow:0 0 0 1px var(--spe-p);color:var(--spe-p)}
.spe-tab:focus-visible{outline:none;box-shadow:0 0 0 1px var(--spe-p),0 0 0 4px color-mix(in srgb,var(--spe-p) 30%,transparent)}
.spe-ic{display:block;width:22px;height:16px;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat;flex:0 0 auto}
.spe-ic.grande{width:34px;height:24px;margin:0 0 8px;color:var(--tx2)}
.ic-tarjeta{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 16'%3E%3Crect x='.75' y='.75' width='20.5' height='14.5' rx='2.5' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Crect x='1' y='4' width='20' height='2.6' fill='%23000'/%3E%3Crect x='3.5' y='10' width='6' height='1.8' rx='.9' fill='%23000'/%3E%3C/svg%3E")}
.ic-apple{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 16'%3E%3Crect x='.75' y='.75' width='20.5' height='14.5' rx='3' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='M9.6 5.2c.4-.5.7-1.1.6-1.7-.6 0-1.2.4-1.6.8-.3.4-.6 1-.5 1.6.6 0 1.1-.3 1.5-.7zm.6.9c-.8 0-1.5.5-1.9.5-.4 0-1-.4-1.7-.4-.9 0-1.7.5-2.1 1.3-.9 1.6-.2 3.9.6 5.2.4.6.9 1.3 1.6 1.3.6 0 .9-.4 1.6-.4.8 0 1 .4 1.7.4.7 0 1.1-.6 1.5-1.3.5-.7.7-1.4.7-1.4s-1.3-.5-1.3-2c0-1.3 1-1.9 1.1-1.9-.6-.9-1.5-1-1.8-1.3z' fill='%23000'/%3E%3Cpath d='M13.5 11.8V5.4h2.1c1.3 0 2.1.8 2.1 2s-.9 2-2.2 2h-1.1v2.4zm1-3.2h.9c.8 0 1.2-.4 1.2-1.2s-.4-1.1-1.2-1.1h-.9z' fill='%23000'/%3E%3C/svg%3E")}
.ic-link{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 16'%3E%3Ccircle cx='11' cy='8' r='7.25' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='M9.2 4.6 12.6 8l-3.4 3.4' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.spe-panel{display:grid;gap:12px}
.spe-panel[hidden]{display:none!important}
.spe-campo{display:flex;flex-direction:column;gap:4px;position:relative;min-width:0;margin:0}
.spe-campo>label{font:500 0.90625rem/1.3 var(--body);color:var(--tx);letter-spacing:0;text-transform:none;margin:0}
.spe .spe-in{display:block;width:100%;min-height:48px;box-sizing:border-box;padding:12px;background:var(--s1);border:1px solid var(--spe-bd);border-radius:12px;font:400 1rem/1.4 var(--body);color:var(--tx);box-shadow:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none;margin:0}
.spe .spe-in::placeholder{color:var(--tx3);opacity:1}
.spe .spe-in:focus{outline:none;border-color:var(--spe-p);box-shadow:0 0 0 3px color-mix(in srgb,var(--spe-p) 28%,transparent)}
.spe select.spe-in{padding-right:40px;background-image:linear-gradient(45deg,transparent 50%,var(--tx2) 50%),linear-gradient(135deg,var(--tx2) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.spe-num .spe-in{padding-right:132px}
.spe-cvc .spe-in{padding-right:48px}
.spe-marcas{position:absolute;right:12px;top:calc(14.5px * 1.3 + 4px + 16px);display:flex;gap:4px;pointer-events:none}
.spe-marcas i{display:block;width:32px;height:20px;border-radius:4px;background:center/100% 100% no-repeat;box-shadow:0 0 0 1px var(--line)}
.spe-marcas .m-visa{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 20'%3E%3Crect width='32' height='20' rx='3' fill='%23fff'/%3E%3Ctext x='16' y='13.6' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-style='italic' font-size='9' fill='%231A1F71' text-anchor='middle'%3EVISA%3C/text%3E%3C/svg%3E")}
.spe-marcas .m-mc{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 20'%3E%3Crect width='32' height='20' rx='3' fill='%23fff'/%3E%3Ccircle cx='13' cy='10' r='6' fill='%23EB001B'/%3E%3Ccircle cx='19' cy='10' r='6' fill='%23F79E1B' fill-opacity='.85'/%3E%3C/svg%3E")}
.spe-marcas .m-amex{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 20'%3E%3Crect width='32' height='20' rx='3' fill='%231F72CD'/%3E%3Ctext x='16' y='13' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='7' fill='%23fff' text-anchor='middle'%3EAMEX%3C/text%3E%3C/svg%3E")}
.spe-cvc-ic{position:absolute;right:12px;top:calc(14.5px * 1.3 + 4px + 14px);width:28px;height:20px;border-radius:4px;border:1.5px solid var(--tx3);pointer-events:none}
.spe-cvc-ic i{position:absolute;left:0;right:0;top:4px;height:4px;background:var(--tx3)}
.spe-fila{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.spe-pie{margin:2px 0 0;font:400 0.84375rem/1.45 var(--body);color:var(--tx2)}
.spe-otro{padding:18px 16px;border:1px solid var(--spe-bd);border-radius:12px;background:var(--s1);gap:2px}
.spe-otro p{margin:0;font-size:0.9375rem;line-height:1.45;color:var(--tx)}
.spe-otro .spe-sub{color:var(--tx2);font-size:0.875rem}
.spe .spe-campo .prw-err,.spe .spe-campo .err,.spe .spe-campo .spe-err{display:flex;gap:6px;align-items:flex-start;margin:2px 0 0;padding:0;background:none;border:0;font:400 0.875rem/1.4 var(--body);color:var(--spe-err);letter-spacing:0;text-transform:none}
.spe .spe-campo .prw-err::before,.spe .spe-campo .err:not([hidden])::before,.spe .spe-campo .spe-err::before{content:"";flex:0 0 14px;height:14px;margin-top:2px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1zm-.8 3.5h1.6v5h-1.6zm0 6.2h1.6v1.6h-1.6z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1zm-.8 3.5h1.6v5h-1.6zm0 6.2h1.6v1.6h-1.6z'/%3E%3C/svg%3E") center/contain no-repeat}
.spe .spe-campo .err[hidden],.spe .spe-campo .spe-err[hidden]{display:none!important}
.spe-campo:has(>.spe-err:not([hidden])) .spe-in{border-color:var(--spe-err);box-shadow:0 0 0 1px var(--spe-err)}
.spe .spe-in.prw-mal,.spe .spe-in[aria-invalid="true"],.spe-num.con-err .spe-in{border-color:var(--spe-err);box-shadow:0 0 0 1px var(--spe-err)}
.prw-hecho .spe{display:none!important}
@media (max-width:420px){
  .spe-tabs{gap:8px}
  .spe-tab{padding:9px 10px;font-size:0.84375rem}
  .spe-num .spe-in{padding-right:12px}
  .spe-marcas{display:none}
}
.rh h2 .pill{font-size:0.6875rem}
.card .badge{font-size:0.6875rem}
.ficha .cat{font-size:0.6875rem}
.ficha .abierto{font-size:0.6875rem}
.ficha .est{font-size:0.6875rem}
.card .abierto{font-size:0.6875rem}
.card .solosoc{font-size:0.6875rem}
.ficha .solosoc{font-size:0.6875rem}
.metodo small{font-size:0.6875rem}
.marco-tarjeta .aviso-mono{font-size:0.6875rem}
.aviso-pago .cabecera{font-size:0.6875rem}
.periodo button{font-size:1.0625rem}
.periodo button small{font-family:var(--body);font-size:0.9375rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--tx2);margin-top:4px;line-height:1.45}
.periodo .lnk-plan{font-size:0.875rem}
.garantia-btn{font-family:var(--body);font-size:0.875rem;letter-spacing:0;line-height:1.5}
@media (max-width:560px){
  .metodos{grid-template-columns:1fr;gap:6px}
  .metodo{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;min-height:48px}
  .metodo small{margin-top:0;text-align:right}
}
.dosc{margin-bottom:16px}
.dosc>.campo{margin-bottom:0}
.dosc:last-child{margin-bottom:0}
.nav.minima .seguro-nav{white-space:nowrap}
@media (max-width:560px){
  .nav.minima .nav-stripe{display:none}
}
.periodo .lnk-plan{text-wrap:pretty}
:root:not([data-compra="curso"]) .solo-curso-c,:root[data-compra="curso"] .solo-socio-c{display:none!important}
.curso-elegido{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;align-items:center;background:var(--s2);border:1px solid var(--line);border-radius:var(--r);padding:12px;margin-bottom:12px}
.curso-elegido img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:100% 0;border-radius:8px;display:block}
.curso-elegido b{display:block;font-size:1.0625rem;line-height:1.25;color:var(--tx);margin-bottom:4px}
.curso-elegido span{display:block;font-size:0.84375rem;color:var(--tx2);line-height:1.4}
.curso-elegido .pr{color:var(--tx);font-weight:600;margin-top:4px}
@media (max-width:480px){
  .curso-elegido{grid-template-columns:88px minmax(0,1fr);gap:12px}
}
.pago-hecho{margin:0 0 14px}
:root[data-pago="rechazada"] .marco-tarjeta{border-color:var(--crit);box-shadow:0 0 0 1px var(--crit) inset}
ul.lineas li{grid-template-columns:minmax(0,1fr) auto}
.casilla.sec{opacity:1}
.casilla.sec label{color:var(--tx2)}
.nav.minima .tema button{min-width:44px;min-height:44px}
.prw-hecho .yaexiste,.prw-hecho .link-linea,.prw-hecho .metodos,.prw-hecho .marco-tarjeta,.prw-hecho .et.opcional,.prw-hecho .aviso-pago,.prw-hecho .garantia-btn,.prw-hecho .pie-cobro,.prw-hecho .pista-campo{display:none!important}
.prw-hecho .pago-hecho .pista-campo{display:block!important}
:root[data-pago="rechazada"] .marco-tarjeta{outline:2px solid var(--crit);outline-offset:6px;border-radius:var(--r)}
@media (min-width:561px){
  .cab-compra .seguro{display:none}
}
.lineas li.linea-plan{grid-template-columns:minmax(0,1fr)}
.lineas li.desglose{border-top:none;padding:0 20px 14px;background:var(--s2);font-size:0.8125rem;color:var(--tx3);margin-top:-6px}
.lineas li.desglose .nom{font-variant-numeric:tabular-nums}
.gar-det>summary{list-style:none;cursor:pointer;padding:14px 20px;border-top:1px solid var(--line);font-size:0.90625rem;font-weight:600;color:var(--tx);display:flex;justify-content:space-between;align-items:center;min-height:48px}
.gar-det>summary::-webkit-details-marker{display:none}
.gar-det>summary::after{content:"+";font-size:1.25rem;line-height:1;color:var(--tx2)}
.gar-det[open]>summary::after{content:"−"}
@media (min-width:901px){
  .gar-det>summary{display:none}
}
@media (max-width:900px){
  .gar-det>.garantias{border-top:none;padding-top:0}
}
.duda-pago{margin:0;padding:14px 20px 18px;border-top:1px solid var(--line);font-size:0.875rem;line-height:1.5;color:var(--tx2)}
.aviso-lr26{margin:0 0 12px;padding:12px 14px;border-left:3px solid var(--struct);background:var(--s2);border-radius:0 8px 8px 0;font-size:0.90625rem;line-height:1.5;color:var(--tx2)}
.duda-pago a{color:var(--acc2);text-decoration:underline;text-underline-offset:3px}
.campo-nif .opc,#prw3_correo_alternativo_field .opc{color:var(--tx3);font-weight:400}
.campo-nif input{text-transform:uppercase}
.campo-nif input::placeholder{text-transform:none}
.info-correo{margin-top:12px!important}
:root[data-pago="rechazada"] #numero{border-color:var(--crit);box-shadow:0 0 0 1px var(--crit)}
.spe+.casilla,.spe+.pista-campo{margin-top:16px!important}
.aviso-pago a.cp-mes-a{color:var(--acc2);text-decoration:underline;text-underline-offset:3px}
.aviso-pago span[data-mot] a.cp-mes-a{display:block;margin-top:6px}
.aviso-pago p.cp-mes{color:var(--tx)}
:root[data-cp-anual="no"] .cp-mes{display:none!important}
.casilla{position:relative;min-height:44px;align-items:start;margin-bottom:6px}
.casilla input{margin-top:13px}
.casilla label{padding:11px 0;line-height:1.5}
.casilla label::before{content:"";position:absolute;inset:0;cursor:pointer}
.casilla label a{position:relative;z-index:1}
.info-priv{margin:0 0 10px!important}
.casilla-correos{margin-top:4px}
.info-correo{margin:2px 0 20px!important}
.info-priv a{color:var(--acc2);border-bottom:1px solid var(--line2)}
.casilla label::before{inset:-3px -12px}

/* prw3: grupo B, lo que la caja de WooCommerce añade alrededor del marcado de la maqueta */
form.checkout>.woocommerce-NoticeGroup,.woocommerce-notices-wrapper:not(:empty){padding:0 var(--pad);margin:0 0 14px}
.woocommerce-NoticeGroup .woocommerce-error,.woocommerce-notices-wrapper .woocommerce-error,.woocommerce-notices-wrapper .woocommerce-message,.woocommerce-notices-wrapper .woocommerce-info{list-style:none;margin:0;border:1px solid var(--line);border-left:4px solid var(--crit);border-radius:var(--r);background:var(--critbg);padding:14px 18px;font-size:0.90625rem;color:var(--tx)}
.woocommerce-notices-wrapper .woocommerce-message,.woocommerce-notices-wrapper .woocommerce-info{border-left-color:var(--struct);background:var(--s1)}
.woocommerce-error li+li{margin-top:6px}
.woocommerce-error a,.woocommerce-message a,.woocommerce-info a{color:var(--acc2);border-bottom:1px solid var(--line2)}
.wc_payment_methods{list-style:none;margin:0;padding:0}
.wc_payment_methods>li{margin:0;padding:0}
.wc_payment_methods .payment_box{margin:0}
.wc_payment_methods .payment_box p{font-size:0.875rem;color:var(--tx2)}
.wc_payment_methods.metodos{display:grid}
.wc_payment_methods.metodos>li{display:contents}
.wc_payment_methods.metodos input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.wc_payment_methods.metodos .payment_box{grid-column:1/-1;order:9;margin-top:8px}
.marco-tarjeta fieldset{border:0;margin:0;padding:0;min-width:0}
.marco-tarjeta .form-row{margin:0 0 10px}
.marco-tarjeta label{font-family:var(--body);font-size:0.875rem;color:var(--tx2)}
.campo .woocommerce-input-wrapper{display:block}
.campo .optional{color:var(--tx3);font-size:0.8125rem}
.info-datos{font-size:0.75rem;line-height:1.5;margin-top:14px;color:var(--tx3)}
.info-datos a{color:var(--tx2);border-bottom:1px solid var(--line2)}
.woocommerce-checkout-review-order-table .nota-pais{padding:0 20px 14px;margin:0;font-size:0.8125rem;color:var(--tx2)}
.prw3b-aviso-entrar{padding:0 var(--pad)}
.blockUI.blockOverlay{background:var(--bg)!important;opacity:.4!important}
.reja.pagar table.shop_table{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:0.9375rem}
.reja.pagar table.shop_table th,.reja.pagar table.shop_table td{text-align:left;padding:9px 0;border-bottom:1px solid var(--line)}
.reja.pagar .payment_methods{list-style:none;margin:0;padding:0}
.reja.pagar .payment_methods>li>label{font-weight:600}
.reja.pagar #place_order{background:var(--acc);color:var(--acctx);border:0;border-radius:999px;padding:13px 22px;font-weight:600;width:100%;cursor:pointer;margin-top:14px}
p.pista-campo.pie-cobro{margin-top:12px}

/* prw3: grupo B, 3.ª pasada: el marco rojo del pago rechazado va en la caja real de Stripe; la pista de Link */
:root[data-pago="rechazada"] #spe-compra{outline:2px solid var(--crit);outline-offset:6px;border-radius:var(--r)}
.pista-link{margin-top:10px}

/* prw3: grupo I bis, R6 (FABLE R6-04). Enlace dentro del aviso de error de WooCommerce en claro: #1569AF sobre #F4DEDB daba 4,44; #125F9F, 5,16 */
:root[data-theme="light"] .woocommerce-error a{color:#125F9F}
/* prw3: DR7-10 (DISEÑADOR, ronda 9): toda la fila de la casilla se pulsa (zona táctil de 44 px), como la maqueta; el enlace
   de las condiciones queda por encima y sigue abriendo la página. */
.casilla{position:relative;min-height:44px}
.casilla label::before{content:"";position:absolute;inset:0;cursor:pointer}
.casilla a{position:relative;z-index:1}

/* prw3: DK10-1 (DISEÑADOR, regresión kit 10). A 375 el ::before de la etiqueta tapaba el enlace de las condiciones y los
   9 px de encima de la casilla no respondían: el enlace, por encima; la zona táctil sube 12 px. */
.casilla label a{position:relative;z-index:2}
.casilla label::before{inset:-12px 0 0 0}

/* prw3: DK12-2 (DISEÑADOR, kit 12). Zona táctil de la casilla como la maqueta: 12 px a cada lado y 3 por debajo, además
   de los 12 de encima (de 73 % a 100 % del cuadrado de 44). FABLE R12 bajo 4: esos 12 px de encima pisaban la franja baja
   del enlace «política de privacidad» del párrafo de antes (las reglas .info-priv y .casilla-correos de la maqueta no
   casan con el marcado del tema): los enlaces de ese párrafo, por encima, y la casilla de correos, 4 px más abajo. */
.casilla label::before{inset:-12px -12px -3px -12px}
.info-privacidad a{position:relative;z-index:2}
#prw_no_correos_field{margin-top:4px}
/* Prueba de pago del 4/10: los errores que pinta la pasarela de Stripe en el navegador van al primer
   .woocommerce-notices-wrapper, que en la caja está ANTES de la cabecera y quedaba tapado por la barra flotante.
   Con aviso dentro, se baja por debajo de la barra (la misma altura que scroll-padding-top de comun.css). */
/* FABLE 19 B8 (DISEÑADOR): .woocommerce CONTIENE el main; el envoltorio de avisos va antes y fuera de él */
.woocommerce:has(main[data-prw-caja])>.woocommerce-notices-wrapper:first-child:not(:empty){padding-top:calc(env(safe-area-inset-top,0px) + 104px)}
.woocommerce:has(main[data-prw-caja])>.woocommerce-notices-wrapper:first-child:not(:empty)+.cab-compra{padding-top:24px}
