/* ============================================================
   TECDJI PERÚ — Estilos de tienda: tarjetas, carrito y
   páginas de producto. Comparte la paleta corporativa.
   ============================================================ */
:root{
  --azul:#164D82;
  --azul-2:#2A6698;
  --azul-oscuro:#10365F;
  --plata:#A9AAAD;
  --plata-clara:#D9DADC;
  --blanco:#F8F8F8;
  --tinta:#0B2440;
  --naranja:#F5821F;
  --naranja-2:#D96D0A;
  --naranja-suave:#FF9E4F;
  --wa:#25D366;
  --font-display:'Exo 2',sans-serif;
  --font-body:'Barlow',sans-serif;
}

/* ===================== botones base (compartidos con index.html) ===================== */
.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-weight:700;padding:.95rem 1.8rem;border-radius:12px;font-size:1rem;border:0;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease;cursor:pointer;text-decoration:none}
.btn-wa{background:var(--naranja);color:#fff;box-shadow:0 10px 30px rgba(245,130,31,.35)}
.btn-wa:hover{transform:translateY(-2px) scale(1.05);background:var(--naranja-2);box-shadow:0 16px 36px rgba(245,130,31,.45)}
.btn-ghost{border:1.5px solid rgba(217,218,220,.5);color:var(--plata-clara);background:transparent}
.btn-ghost:hover{border-color:#fff;color:#fff;background:rgba(248,248,248,.08);transform:translateY(-2px) scale(1.05)}
.btn-azul{background:var(--azul);color:#fff;box-shadow:0 10px 26px rgba(22,77,130,.35)}
.btn-azul:hover{background:var(--azul-2);transform:translateY(-2px) scale(1.05);box-shadow:0 16px 34px rgba(22,77,130,.45)}

/* ===================== tarjetas de producto ===================== */
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem}
.prod-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e3e8ee;border-radius:18px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.prod-card:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 22px 48px rgba(16,54,95,.18);border-color:transparent}
.prod-media{position:relative;display:block;background:#F7F7F7;overflow:hidden;aspect-ratio:1/1}
.prod-media img{width:100%;height:100%;object-fit:contain;padding:1rem;transition:transform .35s ease}
.prod-card:hover .prod-media img{transform:scale(1.09)}
.prod-tag{position:absolute;top:.8rem;left:.8rem;background:var(--azul-oscuro);color:var(--plata-clara);font-family:var(--font-display);font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:.32rem .7rem;border-radius:999px}
.prod-body{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.2rem 1.2rem;flex:1}
.prod-compat{color:#7a8ba0;font-size:.8rem;letter-spacing:.02em}
.prod-name{font-size:1.02rem;line-height:1.3;margin:0}
.prod-name a{color:var(--azul-oscuro);transition:color .2s}
.prod-name a:hover{color:var(--azul-2)}
.prod-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:auto;padding-top:.7rem}
.prod-price{font-family:var(--font-display);font-weight:800;font-size:1.22rem;color:var(--naranja-2)}
.prod-add{display:inline-flex;align-items:center;gap:.45rem;background:var(--naranja);color:#fff;border:0;border-radius:999px;padding:.55rem 1.05rem;font-family:var(--font-display);font-weight:700;font-size:.85rem;cursor:pointer;transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
.prod-add:hover{background:var(--naranja-2);transform:scale(1.06);box-shadow:0 10px 24px rgba(245,130,31,.35)}
.prod-add svg{width:16px;height:16px}
.prod-link{font-size:.86rem;font-weight:600;color:var(--azul-2);margin-top:.5rem;transition:color .2s}
.prod-link:hover{color:var(--azul-oscuro)}
.prod-more{margin-top:2.2rem;text-align:center;color:#4a5a6d;font-size:.98rem}
.prod-more a{color:var(--azul-2);font-weight:600}

/* ===================== botón flotante del carrito ===================== */
.cart-float{position:fixed;right:22px;bottom:98px;z-index:98;width:56px;height:56px;border-radius:50%;border:0;cursor:pointer;background:linear-gradient(135deg,var(--azul),var(--azul-2));color:#fff;display:grid;place-items:center;box-shadow:0 12px 30px rgba(16,54,95,.45);transition:transform .2s ease,box-shadow .2s ease}
.cart-float:hover{transform:scale(1.08);box-shadow:0 16px 38px rgba(16,54,95,.55)}
.cart-float svg{width:26px;height:26px}
.cart-badge{position:absolute;top:-4px;right:-4px;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#E4572E;color:#fff;font:700 .72rem/22px var(--font-display);text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.35)}

/* ===================== drawer del carrito ===================== */
.cart-overlay{position:fixed;inset:0;z-index:210;background:rgba(11,36,64,.55);backdrop-filter:blur(3px)}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;z-index:211;width:min(410px,94vw);background:#fff;display:flex;flex-direction:column;transform:translateX(105%);transition:transform .28s ease;box-shadow:-24px 0 60px rgba(11,36,64,.35)}
.cart-drawer.open{transform:none}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.4rem;background:var(--azul-oscuro)}
.cart-head h2{font-family:var(--font-display);font-style:italic;font-size:1.15rem;color:#fff;margin:0}
.cart-close{background:none;border:0;color:var(--plata-clara);font-size:1.15rem;cursor:pointer;padding:.3rem .5rem;border-radius:8px;transition:background .2s,color .2s}
.cart-close:hover{background:rgba(248,248,248,.12);color:#fff}
.cart-items{flex:1;overflow-y:auto;padding:1rem 1.4rem}
.cart-item{display:grid;grid-template-columns:64px 1fr auto;gap:.9rem;align-items:center;padding:.9rem 0;border-bottom:1px solid #edf1f5}
.cart-item img{width:64px;height:64px;object-fit:contain;background:#F7F7F7;border-radius:12px;padding:4px}
.cart-item-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.cart-item-name{font-weight:600;color:var(--azul-oscuro);font-size:.92rem;line-height:1.25}
.cart-item-name:hover{color:var(--azul-2)}
.cart-item-price{color:#7a8ba0;font-size:.82rem}
.cart-item-sub{font-family:var(--font-display);color:var(--azul);font-size:.95rem;white-space:nowrap}
.cart-qty{display:flex;align-items:center;gap:.45rem;margin-top:.4rem}
.cart-qty button{width:26px;height:26px;border-radius:8px;border:1px solid #d4dce4;background:#fff;color:var(--azul-oscuro);font-size:1rem;line-height:1;cursor:pointer;transition:background .2s,border-color .2s}
.cart-qty button:hover{background:#eef3f8;border-color:var(--azul-2)}
.cart-qty span{min-width:20px;text-align:center;font-weight:600;font-size:.92rem}
.cart-remove{width:auto!important;border:0!important;background:none!important;color:#b04a3a!important;font-size:.76rem!important;text-decoration:underline;margin-left:.4rem}
.cart-empty{display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:3.5rem 1rem;color:#7a8ba0;text-align:center}
.cart-empty svg{width:52px;height:52px;opacity:.4}
.cart-empty a{color:var(--azul-2);font-weight:600}
.cart-foot{padding:1.1rem 1.4rem 1.3rem;border-top:1px solid #edf1f5;background:#fbfcfd}
.cart-total{display:flex;justify-content:space-between;align-items:center;margin-bottom:.9rem;font-size:1rem;color:#4a5a6d}
.cart-total b{font-family:var(--font-display);font-size:1.35rem;color:var(--azul-oscuro)}
.cart-checkout{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;background:var(--naranja);color:#fff;font-family:var(--font-display);font-weight:700;font-size:1rem;padding:.95rem;border-radius:12px;text-decoration:none;box-shadow:0 10px 26px rgba(245,130,31,.35);transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
.cart-checkout:hover{background:var(--naranja-2);transform:translateY(-2px) scale(1.02);box-shadow:0 14px 32px rgba(245,130,31,.45)}
.cart-note{margin:.8rem 0 0;font-size:.78rem;color:#7a8ba0;text-align:center;line-height:1.45}

/* ===================== página de producto ===================== */
.pp-body{font-family:var(--font-body);color:var(--tinta);background:var(--blanco);margin:0;line-height:1.6}
.pp-container{width:min(1100px,92%);margin-inline:auto}
.pp-header{position:sticky;top:0;z-index:90;background:rgba(16,54,95,.96);backdrop-filter:blur(10px);box-shadow:0 8px 30px rgba(11,36,64,.3);padding:.6rem 0}
.pp-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.pp-brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.pp-brand img{height:46px;width:auto;filter:drop-shadow(0 2px 8px rgba(0,0,0,.45))}
.pp-links{display:flex;gap:1.3rem;align-items:center}
.pp-links a{color:var(--plata-clara);font-size:.92rem;font-weight:500;text-decoration:none;transition:color .2s}
.pp-links a:hover{color:#fff}
.pp-crumbs{padding:1.2rem 0 .4rem;font-size:.84rem;color:#7a8ba0}
.pp-crumbs a{color:var(--azul-2);text-decoration:none}
.pp-crumbs a:hover{text-decoration:underline}
.pp-main{padding:1rem 0 4rem}
.pp-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2.6rem;align-items:start;margin-top:1rem}
.pp-gallery{position:sticky;top:86px}
.pp-imgbox{background:#fff;border:1px solid #e3e8ee;border-radius:20px;overflow:hidden;aspect-ratio:1/1;display:grid;place-items:center}
.pp-imgbox img{width:100%;height:100%;object-fit:contain;padding:1.6rem;transition:transform .35s ease}
.pp-imgbox:hover img{transform:scale(1.07)}
.pp-thumbs{display:flex;gap:.7rem;margin-top:.8rem}
.pp-thumbs button{width:76px;height:76px;border-radius:14px;border:2px solid #e3e8ee;background:#fff;padding:6px;cursor:pointer;transition:border-color .2s,transform .2s}
.pp-thumbs button:hover{transform:scale(1.05)}
.pp-thumbs button.active{border-color:var(--azul-2)}
.pp-thumbs img{width:100%;height:100%;object-fit:contain}
.pp-cat{display:inline-block;font-family:var(--font-display);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--azul-2);background:#e8f0f7;padding:.35rem .8rem;border-radius:999px;margin-bottom:.9rem}
.pp-info h1{font-family:var(--font-display);font-weight:800;font-style:italic;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.15;color:var(--azul-oscuro);margin:0 0 .5rem}
.pp-compat{color:#7a8ba0;font-size:.95rem;margin:0 0 1rem}
.pp-price{font-family:var(--font-display);font-weight:800;font-size:2rem;color:var(--naranja-2);margin:0 0 .4rem}
.pp-tagline{font-size:1.08rem;color:#42536a;margin:0 0 1.3rem}
.pp-bullets{list-style:none;padding:0;margin:0 0 1.6rem;display:grid;gap:.45rem}
.pp-bullets li{position:relative;padding-left:1.5rem;font-size:.96rem;color:#42536a}
.pp-bullets li::before{content:"✓";position:absolute;left:0;color:var(--azul-2);font-weight:700}
.pp-buy{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center;margin-bottom:1rem}
.pp-qty{display:flex;align-items:center;gap:.2rem;border:1.5px solid #d4dce4;border-radius:12px;overflow:hidden}
.pp-qty button{width:42px;height:48px;border:0;background:#fff;font-size:1.25rem;color:var(--azul-oscuro);cursor:pointer;transition:background .2s}
.pp-qty button:hover{background:#eef3f8}
.pp-qty span{min-width:34px;text-align:center;font-family:var(--font-display);font-weight:700;font-size:1.05rem}
.pp-add{display:inline-flex;align-items:center;gap:.6rem;background:var(--azul);color:#fff;border:0;border-radius:12px;padding:.95rem 1.7rem;font-family:var(--font-display);font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 10px 26px rgba(22,77,130,.35);transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
.pp-add:hover{background:var(--azul-2);transform:translateY(-2px) scale(1.04);box-shadow:0 16px 34px rgba(22,77,130,.45)}
.pp-wa{display:inline-flex;align-items:center;gap:.6rem;background:var(--naranja);color:#fff;border-radius:12px;padding:.95rem 1.5rem;font-family:var(--font-display);font-weight:700;font-size:.98rem;text-decoration:none;box-shadow:0 10px 26px rgba(245,130,31,.3);transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
.pp-wa:hover{background:var(--naranja-2);transform:translateY(-2px) scale(1.04)}
/* ficha técnica con iconos (equipos con precio) */
.pp-ficha{display:grid;grid-template-columns:1fr 1fr;gap:1.35rem 2rem;margin:1.5rem 0 1.7rem}
.pp-ficha-item{display:flex;gap:.9rem;align-items:flex-start}
.pp-ficha-ico{flex:0 0 46px;height:46px;border-radius:12px;background:#eef3f9;display:grid;place-items:center;color:var(--azul)}
.pp-ficha-ico svg{width:26px;height:26px;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pp-ficha-item b{display:block;font-family:var(--font-display);font-weight:700;color:var(--azul-oscuro);font-size:1.02rem;line-height:1.3}
.pp-ficha-item span{display:block;color:#7a8ba0;font-size:.85rem;margin-top:.15rem}
@media(max-width:560px){.pp-ficha{grid-template-columns:1fr;gap:1.1rem}}

/* aviso de pago con tarjeta */
.pago-tarjeta-aviso{border:1.5px solid #c8433a;background:#fdf5f4;color:#a93b32;font-size:.85rem;font-weight:600;line-height:1.45;padding:.7rem 1rem;border-radius:9px;margin:0 0 1.2rem;max-width:560px}

/* productos sin precio visible (consultar) */
.pp-consultar{font-family:var(--font-display);font-weight:800;font-size:1.35rem;color:var(--azul);margin:0 0 .4rem}
.prod-consultar{font-family:var(--font-display);font-weight:700;font-size:.98rem;color:var(--azul)}

.pp-trust{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid #e3e8ee;font-size:.85rem;color:#5a6b80}
.pp-trust span{display:inline-flex;align-items:center;gap:.4rem}
.pp-nota{margin-top:1.2rem;background:#fdf6ec;border:1px solid #f0dfc0;border-left:4px solid #d9a13b;border-radius:12px;padding:.9rem 1.1rem;font-size:.9rem;color:#6b5326}
.pp-section{margin-top:3.2rem}
.pp-section h2{font-family:var(--font-display);font-weight:800;font-size:1.45rem;color:var(--azul-oscuro);margin:0 0 1rem}
.pp-section p{color:#42536a;max-width:70ch;margin:0 0 1rem}
.pp-incluye{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}
.pp-incluye li{position:relative;padding-left:1.5rem;color:#42536a}
.pp-incluye li::before{content:"▸";position:absolute;left:0;color:var(--azul-2)}
.pp-specs{width:100%;max-width:640px;border-collapse:collapse;font-size:.95rem}
.pp-specs th,.pp-specs td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid #e6ebf0}
.pp-specs th{color:#5a6b80;font-weight:600;width:38%;background:#f4f7fa}

/* ===================== páginas legales (políticas) ===================== */
.legal-main{max-width:760px}
.legal-updated{color:#7a8ba0;font-size:.88rem;margin:-.4rem 0 2.2rem}
.legal-meta{background:#f4f7fa;border:1px solid #e3e8ee;border-radius:14px;padding:1.3rem 1.5rem;margin-bottom:2.4rem;display:grid;gap:.35rem;font-size:.94rem;color:var(--tinta)}
.legal-meta b{color:var(--azul-oscuro)}
.legal-doc h2{font-family:var(--font-display);font-weight:800;font-size:1.25rem;color:var(--azul-oscuro);margin:2.2rem 0 .8rem}
.legal-doc h2:first-of-type{margin-top:0}
.legal-doc p{color:#42536a;margin:0 0 1rem;max-width:70ch}
.legal-doc ul{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.5rem}
.legal-doc ul li{position:relative;padding-left:1.5rem;color:#42536a;max-width:68ch}
.legal-doc ul li::before{content:"▸";position:absolute;left:0;color:var(--azul-2)}
.legal-doc a{color:var(--azul-2);text-decoration:underline}
.legal-doc a:hover{color:var(--azul-oscuro)}
.legal-toc{background:#fff;border:1px solid #e3e8ee;border-radius:14px;padding:1.3rem 1.5rem;margin-bottom:2.4rem}
.legal-toc b{display:block;font-family:var(--font-display);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--azul-2);margin-bottom:.7rem}
.legal-toc ol{margin:0;padding-left:1.2rem;display:grid;gap:.4rem;color:#42536a;font-size:.92rem}
.legal-toc a{color:inherit;text-decoration:none}
.legal-toc a:hover{color:var(--azul-2)}
.legal-pending{background:#fdf6ec;border:1px solid #f0dfc0;border-left:4px solid #d9a13b;border-radius:10px;padding:.7rem 1rem;font-size:.88rem;color:#6b5326;margin:0 0 1rem;display:inline-block}
.legal-crosslinks{margin-top:3rem;padding-top:2rem;border-top:1px solid #e3e8ee;display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;font-size:.92rem}
.pp-specs td{color:var(--tinta)}
.pp-related{margin-top:3.5rem}
.pp-related h2{font-family:var(--font-display);font-weight:800;font-size:1.45rem;color:var(--azul-oscuro);margin:0 0 1.4rem}
.pp-footer{background:#0b2440;color:var(--plata);margin-top:4rem;padding:2rem 0;font-size:.85rem}
.pp-footer .pp-container{display:flex;flex-wrap:wrap;gap:.8rem 2rem;justify-content:space-between;align-items:center}
.pp-footer a{color:var(--plata-clara);text-decoration:none;transition:color .2s}
.pp-footer a:hover{color:#fff}
/* botón flotante de WhatsApp (compartido) */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:99;width:62px;height:62px;border-radius:50%;background:var(--wa);display:grid;place-items:center;box-shadow:0 12px 32px rgba(37,211,102,.45);transition:transform .2s}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:32px;height:32px;fill:#fff}

/* reveal (páginas de producto reutilizan el patrón del index) */
.pp-body .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.pp-body .reveal.in{opacity:1;transform:none}

/* ===================== checkout ===================== */
.co-title{font-family:var(--font-display);font-weight:800;font-style:italic;font-size:clamp(1.5rem,3vw,2.1rem);color:var(--azul-oscuro);margin:0 0 1.6rem}
.co-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2.6rem;align-items:start;padding-bottom:5rem}
.co-summary{background:#fff;border:1px solid #e3e8ee;border-radius:18px;padding:1.6rem}
.co-summary h2{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--azul-oscuro);margin:0 0 1.1rem}
.co-items{display:grid;gap:1rem;margin-bottom:1.2rem}
.co-item{display:grid;grid-template-columns:60px 1fr auto;gap:.9rem;align-items:center;padding-bottom:1rem;border-bottom:1px solid #edf1f5}
.co-item:last-child{border-bottom:0;padding-bottom:0}
.co-item img{width:60px;height:60px;object-fit:contain;background:#F7F7F7;border-radius:10px;padding:4px}
.co-item-info{min-width:0}
.co-item-name{font-weight:600;color:var(--azul-oscuro);font-size:.92rem;line-height:1.3;text-decoration:none}
.co-item-name:hover{color:var(--azul-2)}
.co-item-price{display:block;color:#7a8ba0;font-size:.8rem;margin-top:.15rem}
.co-qty{display:flex;align-items:center;gap:.4rem;margin-top:.5rem}
.co-qty button{width:24px;height:24px;border-radius:7px;border:1px solid #d4dce4;background:#fff;color:var(--azul-oscuro);font-size:.95rem;line-height:1;cursor:pointer}
.co-qty button:hover{background:#eef3f8}
.co-qty span{min-width:18px;text-align:center;font-weight:600;font-size:.88rem}
.co-remove{background:none;border:0;color:#b04a3a;font-size:.75rem;text-decoration:underline;cursor:pointer;margin-left:.3rem}
.co-item-sub{font-family:var(--font-display);color:var(--azul);font-size:.95rem;white-space:nowrap}
.co-totals{border-top:1px solid #e3e8ee;padding-top:1rem;display:grid;gap:.5rem}
.co-totals-row{display:flex;justify-content:space-between;font-size:.92rem;color:#4a5a6d}
.co-totals-row.co-total-final{font-family:var(--font-display);font-size:1.2rem;color:var(--azul-oscuro);font-weight:700;margin-top:.3rem}
.co-shipnote{font-size:.8rem;color:#7a8ba0;margin-top:.2rem}
.co-empty{text-align:center;padding:3rem 1rem;color:#7a8ba0}
.co-empty svg{width:56px;height:56px;stroke:#c2cdd8;fill:none;stroke-width:1.4;margin-bottom:1rem}
.co-empty a{color:var(--azul-2);font-weight:600}

.co-form{background:#fff;border:1px solid #e3e8ee;border-radius:18px;padding:1.6rem}
.co-form h2{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--azul-oscuro);margin:0 0 1.2rem}
.co-form fieldset{border:0;padding:0;margin:0 0 1.4rem}
.co-form legend{font-family:var(--font-display);font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--azul-2);padding:0;margin-bottom:.7rem}
.co-fgrid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.co-field{margin-bottom:.9rem;min-width:0}
.co-field.full{grid-column:1/-1}
.co-field label{display:block;font-size:.8rem;font-weight:600;color:#4a5a6d;margin-bottom:.35rem}
.co-field label .req{color:#c0503a}
.co-field input,.co-field select,.co-field textarea{width:100%;background:#fbfcfd;border:1.5px solid #d9e0e7;border-radius:10px;padding:.75rem .9rem;font-family:var(--font-body);font-size:.96rem;color:var(--tinta);transition:border-color .2s ease,box-shadow .2s ease}
.co-field input:hover,.co-field select:hover,.co-field textarea:hover{border-color:#b9c6d3}
.co-field input:focus,.co-field select:focus,.co-field textarea:focus{outline:none;border-color:var(--azul-2);box-shadow:0 0 0 3px rgba(42,102,152,.15)}
.co-field textarea{min-height:80px;resize:vertical}
.co-field.invalid input,.co-field.invalid select,.co-field.invalid textarea{border-color:#c0503a;box-shadow:0 0 0 3px rgba(192,80,58,.12)}
.co-field-error{display:none;color:#b0473a;font-size:.78rem;margin-top:.35rem}
.co-field.invalid .co-field-error{display:block}

.co-delivery{display:grid;gap:.7rem}
.co-radio{display:flex;align-items:flex-start;gap:.7rem;border:1.5px solid #e3e8ee;border-radius:12px;padding:.85rem 1rem;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}
.co-radio:hover{border-color:#b9c6d3}
.co-radio input{margin-top:.2rem;accent-color:var(--azul)}
.co-radio b{display:block;font-size:.92rem;color:var(--azul-oscuro)}
.co-radio span{display:block;font-size:.8rem;color:#7a8ba0;margin-top:.1rem}
.co-radio.selected{border-color:var(--azul-2);background:#f3f8fc}
.co-address{display:grid;gap:.9rem;margin-top:.9rem;padding-top:.9rem;border-top:1px dashed #e3e8ee}

.pm-options{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.pm-option{position:relative;display:flex;flex-direction:column;gap:.5rem;border:1.5px solid #e3e8ee;border-radius:14px;padding:1.1rem;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.pm-option:hover{border-color:#b9c6d3}
.pm-option input{position:absolute;opacity:0;pointer-events:none}
.pm-option.selected{border-color:var(--azul-2);background:#f3f8fc;box-shadow:0 6px 18px rgba(22,77,130,.1)}
.pm-icon{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--azul),var(--azul-2));display:grid;place-items:center;flex:0 0 auto}
.pm-icon svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pm-option.pm-card .pm-icon{background:linear-gradient(135deg,#9aa5b1,#6b7684)}
.pm-title{font-family:var(--font-display);font-weight:700;font-size:.96rem;color:var(--azul-oscuro);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.pm-soon{font-family:var(--font-body);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8a6a1f;background:#fdf1d9;padding:.15rem .5rem;border-radius:999px}
.pm-desc{font-size:.82rem;color:#7a8ba0;line-height:1.4}

.co-submit{width:100%;justify-content:center;margin-top:.4rem}
.co-submit:disabled{background:#c7cfd7;color:#8a97a3;cursor:not-allowed;box-shadow:none;transform:none}
.co-submit-note{font-size:.8rem;color:#7a8ba0;text-align:center;margin-top:.8rem;line-height:1.4}
.co-submit-note.co-warn{color:#8a6a1f}

.co-success{text-align:center;padding:3.5rem 1.5rem;background:#fff;border:1px solid #e3e8ee;border-radius:18px}
.co-success svg{width:64px;height:64px;stroke:var(--wa);fill:none;stroke-width:1.5;margin-bottom:1.2rem}
.co-success h2{font-family:var(--font-display);font-weight:800;font-style:italic;font-size:1.5rem;color:var(--azul-oscuro);margin:0 0 .6rem}
.co-success p{color:#4a5a6d;max-width:44ch;margin:0 auto 1.6rem}

@media(max-width:880px){
  .pp-grid{grid-template-columns:1fr}
  .pp-gallery{position:static}
  .pp-links{display:none}
  .prod-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
  .co-grid{grid-template-columns:1fr}
  .co-summary{order:2}
  .co-form{order:1}
}
@media(max-width:520px){
  .prod-grid{grid-template-columns:1fr 1fr;gap:.9rem}
  .prod-body{padding:.85rem .9rem 1rem}
  .prod-price{font-size:1.05rem}
  .prod-add{padding:.5rem .8rem;font-size:.78rem}
  .cart-float{bottom:94px;right:18px;width:52px;height:52px}
  .co-fgrid{grid-template-columns:1fr}
  .pm-options{grid-template-columns:1fr}
  .co-summary,.co-form{padding:1.2rem}
}
@media(prefers-reduced-motion:reduce){
  .cart-drawer,.prod-card,.prod-media img,.pp-imgbox img,.cart-checkout,.pp-add,.pp-wa,.cart-float{transition:none!important}
  .pp-body .reveal{opacity:1;transform:none}
}
