/* ============================================================================
   ROMPODA THEME · v1.0
   Identidad de marca v3.0 — Montserrat + DM Sans · Azul #2563EB · Naranja #f8982e
   Sky aesthetic con clouds + weave pattern
   ============================================================================ */

::selection{background:#2563EB;color:#fff}
::-moz-selection{background:#2563EB;color:#fff}

/* Quitar outline azul del navegador en links/botones, solo visible con teclado */
a:focus,button:focus{outline:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--rp-primary);outline-offset:3px;border-radius:8px}

/* ── BUTTON CONTRAST GUARDRAILS ──
 * Garantiza que cualquier botón "filled" sobre fondo azul/oscuro tenga
 * texto blanco. PS classic + Bootstrap inyectan reglas que pueden dejar
 * texto color body sobre fondo azul. Esto las anula sin afectar al resto.
 */
.btn-primary,
.btn-primary:focus,
button.btn-primary,
a.btn-primary,
.rp-btn-primary,
.rp-btn-primary:focus,
.rp-btn-accent,
.rp-btn-accent:focus,
.rp-btn-micole,
.rp-btn-micole:focus{color:#fff!important}
.btn-primary:hover,
.rp-btn-primary:hover,
.rp-btn-accent:hover,
.rp-btn-micole:hover{color:#fff!important}
/* Bootstrap default .btn-primary lo redirigimos al estilo Rompoda */
.btn-primary{
    background:linear-gradient(135deg,#2563EB 0%,#1D4ED8 100%)!important;
    border:none!important;
    box-shadow:0 8px 20px -4px rgba(37,99,235,.45),inset 0 1px 0 rgba(255,255,255,.25)!important;
}

/* ── GLOBAL: todos los submit/btn de formularios PS con estilo Rompoda ── */
form button[type=submit],
form input[type=submit],
.form-control-submit,
#submit-login,
.login-form button,
.forgotten-password button,
.register-form button{
    background:linear-gradient(135deg,#2563EB 0%,#1D4ED8 100%)!important;
    color:#fff!important;border:none!important;
    padding:14px 28px!important;width:100%!important;
    border-radius:14px!important;font-family:'Montserrat',sans-serif!important;
    font-weight:700!important;font-size:15px!important;cursor:pointer;
    box-shadow:0 8px 20px -4px rgba(37,99,235,.45),inset 0 1px 0 rgba(255,255,255,.25)!important;
    transition:all 250ms cubic-bezier(.16,1,.3,1)!important;
    letter-spacing:.3px;text-transform:none!important;
}
form button[type=submit]:hover,
form input[type=submit]:hover,
.form-control-submit:hover,
#submit-login:hover{
    transform:translateY(-2px)!important;
    box-shadow:0 12px 28px -4px rgba(37,99,235,.55)!important;
}

/* ── LINK CONTRAST ON DARK SECTIONS ──
 * En cualquier bloque con fondo oscuro, los <a> sin clase deben verse blancos
 * con underline acento al hover. Cubre casos donde un link hereda color body.
 */
.rp-stats a:not([class]),
.rp-cta-cole a:not([class]),
.rp-mega-promo:not(.rp-mega-promo-soft) a:not([class*='rp-btn']):not([class*='rp-mega-promo-cta']),
.rp-mega-promo-dark a:not([class*='rp-btn']):not([class*='rp-mega-promo-cta']),
.rp-anbar a:not(.rp-anbar-link):not([class*='rp-btn']),
.rp-loginasbar a:not([class*='rp-btn']){
    color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.45);
}
.rp-stats a:not([class]):hover,
.rp-cta-cole a:not([class]):hover,
.rp-mega-promo:not(.rp-mega-promo-soft) a:not([class*='rp-btn']):not([class*='rp-mega-promo-cta']):hover,
.rp-mega-promo-dark a:not([class*='rp-btn']):not([class*='rp-mega-promo-cta']):hover,
.rp-anbar a:not(.rp-anbar-link):not([class*='rp-btn']):hover{
    color:var(--rp-accent);text-decoration-color:var(--rp-accent);
}

:root{
    --rp-primary:#2563EB;
    --rp-primary-dark:#1D4ED8;
    --rp-primary-light:#60A5FA;
    --rp-primary-soft:#DBEAFE;
    --rp-primary-bg:#EFF6FF;
    --rp-sky:#BAE0FF;
    --rp-sky-light:#E0F2FE;
    --rp-sky-vlight:#F0F9FF;
    --rp-secondary:#06B6D4;
    --rp-accent:#f8982e;
    --rp-accent-dark:#e07d10;
    --rp-dark:#0F172A;
    --rp-g700:#334155;
    --rp-g500:#64748B;
    --rp-g400:#94A3B8;
    --rp-g300:#CBD5E1;
    --rp-g200:#E2E8F0;
    --rp-g100:#F1F5F9;
    --rp-g50:#F8FAFC;
    --rp-success:#10B981;
    --rp-error:#EF4444;
    --rp-warning:#F59E0B;
    --rp-shadow-sm:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
    --rp-shadow-md:0 4px 6px rgba(15,23,42,.07),0 2px 4px rgba(15,23,42,.04);
    --rp-shadow-lg:0 10px 15px rgba(15,23,42,.08),0 4px 6px rgba(15,23,42,.04);
    --rp-shadow-xl:0 20px 25px rgba(15,23,42,.12),0 8px 10px rgba(15,23,42,.06);
    --rp-shadow-float:0 30px 60px -15px rgba(37,99,235,.15),0 8px 25px -8px rgba(15,23,42,.08);
}

/* FULL WIDTH escape — overrides PS classic container constraints */
body.rp-body{margin:0;padding:0;background:#E0F2FE}
.rp-body main,
.rp-body #wrapper,
.rp-body .rp-wrapper,
.rp-body #content-wrapper,
.rp-body .rp-full{padding:0!important;margin:0!important;max-width:none!important;width:100%!important;background:#fff}
.rp-body #wrapper > .container,
.rp-body .rp-wrapper > .container{max-width:none!important;padding:0!important;margin:0!important;width:100%!important}
.rp-page{width:100%;max-width:100vw;overflow-x:hidden;background:#fff}
html.rp-html, body.rp-body{overflow-x:hidden}

/* Header transparente sobre el hero (para que el degradado llegue arriba) */
.rp-body.rp-home-page .rp-hdr{
    background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;
    border-bottom:none;
}
.rp-body.rp-home-page .rp-hdr.rp-scrolled{
    background:rgba(255,255,255,.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(226,232,240,.6);
}

/* RESET / BASE — scoped to .rp-page so we don't break other PS pages */
.rp-page,
.rp-page *,
.rp-page *::before,
.rp-page *::after{box-sizing:border-box}
.rp-page{
    font-family:'DM Sans',sans-serif;
    color:var(--rp-g700);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
}
.rp-page h1,.rp-page h2,.rp-page h3,.rp-page h4,.rp-page h5,.rp-page h6{
    font-family:'Montserrat',sans-serif;
    color:var(--rp-dark);
    letter-spacing:-.01em;
    margin:0;
}
.rp-page p{margin:0}
.rp-page a{color:inherit;text-decoration:none}
.rp-page button{font-family:inherit;cursor:pointer;border:none;background:none}
.rp-page img{max-width:100%;display:block}
.rp-page svg{display:inline-block;vertical-align:middle}
/* Defensive: garantiza que los iconos línea (stroke="currentColor" / "white") se vean siempre */
.rp-page .rp-ct-mini-ico svg,
.rp-page .rp-ct-check svg,
.rp-page .rp-ct-git-ico svg,
.rp-page .rp-mc-ben .rp-ic svg,
.rp-page .rp-rg-ben .rp-ic svg,
.rp-page .rp-mini-ico svg,
.rp-page .rp-circ svg,
.rp-page .rp-arrow svg,
.rp-page .rp-ico svg{stroke:currentColor!important;fill:none!important}
.rp-page ul{list-style:none;padding:0;margin:0}

/* ── HEADER (Rompoda) ── */
.rp-hdr{
    position:sticky;top:0;z-index:1000;
    background:rgba(255,255,255,.85);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(226,232,240,.6);
}
.rp-hdr-in{
    max-width:1280px;margin:0 auto;padding:14px 24px;
    display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.rp-logo{
    display:flex;align-items:center;gap:10px;
    text-decoration:none;
}
.rp-logo-img{height:20px;width:auto;display:block}
.rp-logo-img-light{filter:brightness(0) invert(1)}
.rp-logo:hover{text-decoration:none}
@media(max-width:900px){
    .rp-logo-img{height:17px}
}
.rp-nav{display:flex;align-items:center;gap:2px}
.rp-nav a{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;color:var(--rp-g700);
    padding:9px 14px;border-radius:10px;transition:all 200ms ease;
}
.rp-nav a:hover{background:var(--rp-g100);color:var(--rp-primary);text-decoration:none}
.rp-hdr-right{display:flex;align-items:center;gap:8px}
.rp-hdr-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:40px;height:40px;color:var(--rp-g700);border-radius:9999px;
    transition:all 200ms ease;cursor:pointer;background:transparent;border:none;padding:0;
}
.rp-hdr-icon:hover{color:var(--rp-primary);background:var(--rp-g50)}
.rp-btn-micole{
    display:inline-flex;align-items:center;gap:8px;
    background:linear-gradient(135deg,var(--rp-accent) 0%,var(--rp-accent-dark) 100%);color:#fff;
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;
    padding:11px 18px;border-radius:9999px;
    box-shadow:0 8px 20px -4px rgba(248,152,46,.45),inset 0 1px 0 rgba(255,255,255,.25);
    transition:all 200ms ease;
}
.rp-btn-micole:hover{transform:translateY(-2px);box-shadow:0 12px 28px -4px rgba(248,152,46,.55);color:#fff;text-decoration:none}
.rp-btn-micole svg{width:16px;height:16px}
/* .rp-btn-login replaced by .rp-hdr-icon */
.rp-hdr-cart{position:relative}
.rp-hdr-cart svg{width:22px;height:22px}
.rp-hdr-cart .rp-qty{
    position:absolute;top:-2px;right:-2px;background:var(--rp-accent);color:#fff;
    font-size:10px;font-weight:700;width:18px;height:18px;border-radius:9999px;
    display:flex;align-items:center;justify-content:center;border:2px solid #fff;
}

/* Language selector — desktop */
.rp-lang{position:relative}
.rp-lang-trigger{
    display:inline-flex;align-items:center;gap:4px;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;
    color:var(--rp-g700);background:transparent;border:1.5px solid transparent;
    padding:7px 10px;border-radius:9999px;cursor:pointer;transition:all 200ms ease;
}
.rp-lang-trigger:hover{background:var(--rp-g50);color:var(--rp-primary)}
.rp-lang.is-open .rp-lang-trigger{
    border-color:var(--rp-primary);color:var(--rp-primary);background:var(--rp-primary-bg);
}
.rp-lang-chevron{transition:transform 200ms ease}
.rp-lang.is-open .rp-lang-chevron{transform:rotate(180deg)}
.rp-lang-dropdown{
    position:absolute;top:calc(100% + 6px);right:0;min-width:120px;
    background:#fff;border:1px solid var(--rp-g200);border-radius:8px;
    box-shadow:0 10px 15px rgba(15,23,42,.08),0 4px 6px rgba(15,23,42,.04);
    padding:4px;opacity:0;visibility:hidden;transform:translateY(-4px);
    transition:all 200ms ease;z-index:1100;
}
.rp-lang.is-open .rp-lang-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.rp-lang-option{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    padding:8px 12px;border-radius:8px;font-family:'Montserrat',sans-serif;
    font-weight:600;font-size:12px;color:var(--rp-g700);text-decoration:none;
    transition:all 150ms ease;
}
.rp-lang-option:hover{background:var(--rp-g50);color:var(--rp-primary);text-decoration:none}
.rp-lang-option.is-active{color:var(--rp-primary);font-weight:700}
.rp-lang-check{color:var(--rp-primary);flex-shrink:0}

/* Language selector — mobile drawer */
.rp-drawer-lang{padding:0 20px}
.rp-drawer-lang-label{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:11px;
    color:var(--rp-g500);text-transform:uppercase;letter-spacing:0.5px;
    display:block;margin-bottom:8px;
}
.rp-drawer-lang-opts{display:flex;gap:8px}
.rp-drawer-lang-btn{
    display:inline-flex;align-items:center;justify-content:center;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;
    color:var(--rp-g700);background:var(--rp-g100);border:1.5px solid transparent;
    padding:6px 14px;border-radius:9999px;text-decoration:none;transition:all 200ms ease;
}
.rp-drawer-lang-btn:hover{background:var(--rp-primary-bg);color:var(--rp-primary);text-decoration:none}
.rp-drawer-lang-btn.is-active{
    border-color:var(--rp-primary);color:var(--rp-primary);background:var(--rp-primary-bg);font-weight:700;
}

.rp-menu-btn{
    display:none;width:40px;height:40px;border-radius:10px;background:transparent;
    color:var(--rp-dark);align-items:center;justify-content:center;border:none;cursor:pointer;
    transition:all 200ms ease;
}
.rp-menu-btn:hover{background:var(--rp-g50)}
.rp-menu-btn svg{width:22px;height:22px}

@media(max-width:900px){
    .rp-nav,.rp-btn-micole,.rp-profile-wrap{display:none}
    .rp-menu-btn{display:inline-flex}
    .rp-hdr-in{padding:12px 16px;gap:8px}
    .rp-lang-trigger{padding:6px 8px}
    .rp-lang-code{font-size:11px}
}

/* MOBILE DRAWER */
.rp-drawer{
    position:fixed;inset:0;z-index:2000;background:rgba(15,23,42,.5);
    backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:all 300ms ease;
}
.rp-drawer.open{opacity:1;visibility:visible}
.rp-drawer-panel{
    position:absolute;top:0;right:0;height:100%;width:88%;max-width:360px;background:#fff;
    display:flex;flex-direction:column;transform:translateX(100%);transition:transform 350ms cubic-bezier(.16,1,.3,1);
    box-shadow:-30px 0 60px -15px rgba(15,23,42,.3);
}
.rp-drawer.open .rp-drawer-panel{transform:translateX(0)}
.rp-drawer-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--rp-g100)}
.rp-drawer-close{
    width:38px;height:38px;border-radius:10px;background:var(--rp-g100);color:var(--rp-g700);
    display:flex;align-items:center;justify-content:center;
}
.rp-drawer-close svg{width:20px;height:20px}
.rp-drawer-body{padding:20px 22px;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
.rp-drawer-cta{
    display:flex;align-items:center;gap:12px;
    background:linear-gradient(135deg,var(--rp-accent) 0%,var(--rp-accent-dark) 100%);color:#fff;
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;
    padding:16px 20px;border-radius:14px;margin-bottom:10px;
    box-shadow:0 8px 20px -4px rgba(248,152,46,.45),inset 0 1px 0 rgba(255,255,255,.25);
}
.rp-drawer-cta svg{width:22px;height:22px}
.rp-drawer-link{
    display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:12px;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:15px;color:var(--rp-g700);
    transition:all 200ms ease;
}
.rp-drawer-link:hover{background:var(--rp-g100);color:var(--rp-primary);text-decoration:none}
.rp-drawer-link svg{width:18px;height:18px;color:var(--rp-g400)}
.rp-drawer-divider{height:1px;background:var(--rp-g100);margin:10px 0}
.rp-drawer-foot{padding:18px 22px;border-top:1px solid var(--rp-g100);font-size:12px;color:var(--rp-g500)}

/* ── BUTTONS ── */
.rp-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;
    padding:0 24px;height:44px;border-radius:12px;
    transition:all 250ms cubic-bezier(.16,1,.3,1);white-space:nowrap;
    text-decoration:none;
}
.rp-btn-lg{height:54px;padding:0 32px;font-size:15px;border-radius:14px}
.rp-btn-primary{
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-primary-dark) 100%);color:#fff;
    box-shadow:0 8px 20px -4px rgba(37,99,235,.45),inset 0 1px 0 rgba(255,255,255,.25);
}
.rp-btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px -4px rgba(37,99,235,.55);color:#fff;text-decoration:none}
.rp-btn-secondary{
    background:rgba(255,255,255,.85);color:var(--rp-primary);
    border:1.5px solid #BFDBFE;backdrop-filter:blur(8px);
}
.rp-btn-secondary:hover{background:#fff;transform:translateY(-2px);box-shadow:var(--rp-shadow-md);border-color:var(--rp-primary);color:var(--rp-primary);text-decoration:none}
.rp-btn-accent{
    background:linear-gradient(135deg,var(--rp-accent) 0%,var(--rp-accent-dark) 100%);color:#fff;
    box-shadow:0 8px 20px -4px rgba(248,152,46,.5),inset 0 1px 0 rgba(255,255,255,.25);
}
.rp-btn-accent:hover{transform:translateY(-2px);box-shadow:0 12px 28px -4px rgba(248,152,46,.6);color:#fff;text-decoration:none}
.rp-btn-ghost{background:transparent;color:var(--rp-primary)}
.rp-btn-ghost:hover{background:var(--rp-primary-bg)}
.rp-btn svg{width:18px;height:18px}

/* ── HERO ── */
.rp-hero{
    position:relative;overflow:hidden;
    background:linear-gradient(180deg,#BAE0FF 0%,#DCEEFE 25%,#EFF6FF 60%,#F8FBFF 100%);
    padding:120px 24px 140px;min-height:780px;margin-top:-72px;
}
/* Empuja el contenido del hero por debajo del header transparente */
.rp-hero .rp-hero-in{padding-top:80px}
/* Capa de gradiente que se funde con la sección siguiente (sin corte) */
.rp-hero::after{
    content:'';position:absolute;left:0;right:0;bottom:-1px;height:220px;
    background:linear-gradient(180deg,transparent 0%,rgba(248,251,255,.45) 35%,rgba(248,251,255,.8) 65%,#F8FBFF 100%);
    pointer-events:none;z-index:1;
}
.rp-hero-mesh{
    position:absolute;inset:0;pointer-events:none;
    background-image:
        radial-gradient(ellipse 900px 550px at 20% 10%,rgba(96,165,250,.28) 0%,transparent 55%),
        radial-gradient(ellipse 600px 400px at 85% 25%,rgba(186,224,255,.35) 0%,transparent 55%),
        radial-gradient(ellipse 500px 300px at 80% 30%,rgba(248,152,46,.07) 0%,transparent 60%),
        radial-gradient(ellipse 700px 400px at 50% 75%,rgba(186,224,255,.45) 0%,transparent 60%);
}
.rp-weave-bg{position:absolute;inset:0;pointer-events:none;opacity:.4}
.rp-weave-bg svg{width:100%;height:100%}
/* Floating school items: outer wrap = parallax (JS), inner = drift (CSS keyframes) */
.rp-float{
    position:absolute;pointer-events:none;aspect-ratio:1;
    transition:transform 600ms cubic-bezier(.16,1,.3,1);
    will-change:transform;
}
.rp-float .rp-float-inner{
    display:block;width:100%;height:100%;
    color:#fff;filter:drop-shadow(0 12px 28px rgba(15,23,42,.18));
}
.rp-float .rp-float-inner svg{display:block;width:100%;height:100%;stroke:#fff;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.rp-float.rp-fl-1{top:14%;left:7%;width:88px}
.rp-float.rp-fl-2{top:22%;right:9%;width:108px}
.rp-float.rp-fl-3{top:62%;left:11%;width:74px}
.rp-float.rp-fl-4{top:55%;right:13%;width:82px}
.rp-float.rp-fl-5{top:38%;left:43%;width:60px;opacity:.85}
.rp-float.rp-fl-6{top:78%;right:38%;width:66px;opacity:.7}

.rp-fl-1 .rp-float-inner{animation:rp-drift-a 18s ease-in-out infinite}
.rp-fl-2 .rp-float-inner{animation:rp-drift-b 24s ease-in-out infinite -3s}
.rp-fl-3 .rp-float-inner{animation:rp-drift-a 16s ease-in-out infinite -7s}
.rp-fl-4 .rp-float-inner{animation:rp-drift-b 20s ease-in-out infinite -10s}
.rp-fl-5 .rp-float-inner{animation:rp-drift-a 22s ease-in-out infinite -5s}
.rp-fl-6 .rp-float-inner{animation:rp-drift-b 19s ease-in-out infinite -12s}

@keyframes rp-drift-a{
    0%,100%{transform:translate(0,0) rotate(-3deg)}
    50%{transform:translate(12px,-10px) rotate(3deg)}
}
@keyframes rp-drift-b{
    0%,100%{transform:translate(0,0) rotate(2deg)}
    50%{transform:translate(-14px,8px) rotate(-4deg)}
}

.rp-hero-in{
    max-width:1200px;margin:0 auto;position:relative;text-align:center;padding-top:40px;z-index:2;
}
.rp-hero-tag{
    display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.92);
    border:1.5px solid var(--rp-primary-soft);color:var(--rp-primary);
    font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;
    padding:9px 18px;border-radius:9999px;margin-bottom:32px;
    box-shadow:0 8px 24px -8px rgba(37,99,235,.2);
    text-transform:uppercase;letter-spacing:1.2px;backdrop-filter:blur(8px);
}
.rp-hero-tag svg{width:14px;height:14px}
.rp-hero-tag .rp-pulse{
    width:6px;height:6px;border-radius:9999px;background:var(--rp-success);
    box-shadow:0 0 0 4px rgba(16,185,129,.18);animation:rp-pulse 2s ease-in-out infinite;
}
@keyframes rp-pulse{0%,100%{opacity:1}50%{opacity:.5}}

.rp-hero h1{
    font-family:'Montserrat',sans-serif;font-size:80px;font-weight:900;line-height:1.05;
    color:var(--rp-dark);margin-bottom:28px;letter-spacing:-.04em;
}
.rp-hero h1 .rp-fixed{display:block;color:var(--rp-dark);line-height:1.1}
.rp-hero h1 .rp-rot-wrap{
    display:block;height:1.3em;overflow:hidden;position:relative;
    margin-top:14px;padding-bottom:.18em;padding-right:.15em;
}
.rp-hero h1 .rp-rot{
    display:inline-block;line-height:1.3;padding:0 .12em .12em;letter-spacing:-.025em;
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-secondary) 60%,var(--rp-primary) 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
    transition:transform 500ms cubic-bezier(.65,0,.35,1),opacity 500ms ease;
}
.rp-hero p.rp-lede{
    font-size:19px;color:var(--rp-g500);max-width:640px;margin:0 auto 36px;line-height:1.6;font-weight:400;
}
.rp-hero-cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-bottom:36px}
.rp-hero-trust{
    display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--rp-g500);
    background:rgba(255,255,255,.78);border:1px solid var(--rp-primary-soft);
    padding:10px 20px;border-radius:9999px;backdrop-filter:blur(8px);
}
.rp-hero-trust strong{color:var(--rp-dark);font-family:'Montserrat',sans-serif;font-weight:800}
.rp-hero-trust .rp-stars{display:inline-flex;gap:1px;color:#fbbf24;margin-right:4px}
.rp-hero-trust .rp-stars svg{width:13px;height:13px;fill:currentColor}
.rp-hero-trust .rp-dot{width:4px;height:4px;border-radius:9999px;background:var(--rp-g300)}

@media(max-width:900px){
    .rp-hero{padding:96px 20px 64px;min-height:auto}
    .rp-hero .rp-hero-in{padding-top:30px}
    .rp-hero h1{font-size:48px;letter-spacing:-.03em}
    .rp-hero p.rp-lede{font-size:16px;margin-bottom:28px}
    .rp-hero-cta .rp-btn{flex:1;min-width:0;font-size:14px;padding:0 18px}
    .rp-hero-tag{font-size:10px;padding:8px 14px;margin-bottom:24px}
    .rp-hero-trust{font-size:12px;padding:8px 14px}
    .rp-float.rp-fl-1{width:54px;top:10%}
    .rp-float.rp-fl-2{width:62px;top:18%}
    .rp-float.rp-fl-3{width:48px;top:75%}
    .rp-float.rp-fl-4{width:50px;top:78%;right:8%}
    .rp-float.rp-fl-5{display:none}
    .rp-float.rp-fl-6{display:none}
}

/* ── TRUST STRIP (logos infinite) ── */
.rp-trust{padding:64px 0 80px;background:linear-gradient(180deg,#F8FBFF 0%,#FAFCFF 40%,#fff 100%);position:relative;margin-top:-1px}
.rp-trust-in{max-width:1280px;margin:0 auto;text-align:center}
.rp-trust-lbl{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;color:var(--rp-g500);margin-bottom:28px;padding:0 24px}
.rp-trust-lbl strong{color:var(--rp-primary);font-weight:800}
.rp-slider-wrap{
    overflow:hidden;
    -webkit-mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent);
    mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent);
}
.rp-slider-track{
    display:flex;gap:80px;width:max-content;
    animation:rp-slide 45s linear infinite;align-items:center;
}
@keyframes rp-slide{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.rp-trust-logo{
    display:flex;align-items:center;gap:10px;color:var(--rp-g500);
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:16px;
    opacity:.6;transition:opacity 200ms ease;flex-shrink:0;white-space:nowrap;
}
.rp-trust-logo:hover{opacity:1;color:var(--rp-dark)}
.rp-trust-logo svg{width:26px;height:26px;color:var(--rp-primary)}

@media(max-width:900px){
    .rp-trust{padding:36px 0 44px}
    .rp-trust-lbl{font-size:12px;margin-bottom:20px}
    .rp-trust-logo{font-size:14px}
    .rp-trust-logo svg{width:22px;height:22px}
    .rp-slider-track{gap:50px;animation-duration:35s}
}

/* ── SECTION GENERAL ── */
.rp-sect{padding:96px 24px;position:relative;background:#fff}
.rp-sect.rp-bg-soft{background:radial-gradient(circle at 50% 100%,rgba(96,165,250,.18) 0%,transparent 50%),#fff}
.rp-sect-in{max-width:1280px;margin:0 auto;position:relative}
.rp-sect-head{text-align:center;margin-bottom:56px}
.rp-eyebrow{
    display:inline-block;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;
    color:var(--rp-primary);text-transform:uppercase;letter-spacing:1.5px;
    margin-bottom:16px;padding:7px 16px;background:var(--rp-primary-bg);
    border-radius:9999px;border:1px solid var(--rp-primary-soft);
}
.rp-sect-head h2{font-size:48px;font-weight:900;margin-bottom:14px;letter-spacing:-.025em;line-height:1.1}
.rp-sect-head p{font-size:18px;color:var(--rp-g500);max-width:620px;margin:0 auto;line-height:1.6}

@media(max-width:900px){
    .rp-sect{padding:64px 20px}
    .rp-sect-head{margin-bottom:40px}
    .rp-sect-head h2{font-size:32px}
    .rp-sect-head p{font-size:15px}
}

/* ── SECTORES (3 cards iguales) ── */
.rp-sectores{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rp-sec-card{
    background:#fff;border-radius:24px;border:1px solid var(--rp-g200);overflow:hidden;
    transition:all 350ms cubic-bezier(.16,1,.3,1);cursor:pointer;box-shadow:var(--rp-shadow-sm);
    text-decoration:none;color:inherit;display:flex;flex-direction:column;
}
.rp-sec-card:hover{transform:translateY(-6px);box-shadow:var(--rp-shadow-float);border-color:var(--rp-primary-soft);text-decoration:none}
.rp-sec-card .rp-visual{
    height:240px;display:flex;align-items:flex-end;justify-content:center;color:#fff;
    position:relative;overflow:hidden;padding:24px;
}
.rp-sec-card .rp-visual::before{
    content:'';position:absolute;inset:0;
    background-image:radial-gradient(circle at 30% 20%,rgba(255,255,255,.25) 0%,transparent 50%);
}
.rp-sec-card .rp-visual::after{
    content:'';position:absolute;bottom:0;left:0;right:0;height:60%;
    background:linear-gradient(to top,rgba(15,23,42,.4),transparent);
}
.rp-sec-card .rp-visual svg.rp-big{
    width:130px;height:130px;position:absolute;top:50%;left:50%;
    transform:translate(-50%,-55%);opacity:.55;stroke:#fff!important;fill:none!important;
}
.rp-sec-card .rp-visual .rp-card-badge{
    position:absolute;top:18px;left:18px;background:rgba(255,255,255,.95);color:var(--rp-dark);
    font-family:'Montserrat',sans-serif;font-size:10px;font-weight:800;
    padding:6px 12px;border-radius:9999px;text-transform:uppercase;letter-spacing:.8px;
    z-index:2;backdrop-filter:blur(8px);
}
.rp-sec-card .rp-visual .rp-card-num{
    position:relative;z-index:2;font-family:'Montserrat',sans-serif;font-weight:900;
    font-size:48px;color:#fff;line-height:1;text-shadow:0 4px 20px rgba(0,0,0,.25);
}
.rp-sec-card.rp-escolar .rp-visual{background:linear-gradient(135deg,#1e3a8a 0%,#2563EB 50%,#60A5FA 100%)}
.rp-sec-card.rp-deportiva .rp-visual{background:linear-gradient(135deg,#0e7490 0%,#06B6D4 50%,#67e8f9 100%)}
.rp-sec-card.rp-laboral .rp-visual{background:linear-gradient(135deg,#9a3412 0%,#f8982e 50%,#fed7aa 100%)}
.rp-sec-card .rp-body{padding:30px;display:flex;flex-direction:column;flex:1}
.rp-sec-card .rp-body h3{font-size:24px;margin-bottom:10px;font-weight:800}
.rp-sec-card .rp-body p{font-size:14.5px;color:var(--rp-g500);margin-bottom:20px;line-height:1.6;flex:1}
.rp-sec-card .rp-arrow{
    display:inline-flex;align-items:center;gap:6px;
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;color:var(--rp-primary);
    transition:all 200ms ease;padding:10px 16px;background:var(--rp-primary-bg);
    border-radius:9999px;border:1px solid var(--rp-primary-soft);
}
.rp-sec-card:hover .rp-arrow{gap:10px;background:var(--rp-primary);color:#fff;border-color:var(--rp-primary)}
.rp-sec-card .rp-arrow svg{width:15px;height:15px}

@media(max-width:900px){
    .rp-sectores{grid-template-columns:1fr;gap:18px}
    .rp-sec-card .rp-visual{height:200px}
    .rp-sec-card .rp-visual .rp-card-num{font-size:38px}
    .rp-sec-card .rp-visual svg.rp-big{width:90px;height:90px}
    .rp-sec-card .rp-body{padding:24px}
    .rp-sec-card .rp-body h3{font-size:21px}
}

/* ── WHY ── */
.rp-why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.rp-why-card{
    padding:30px 24px;border-radius:22px;background:#fff;border:1px solid var(--rp-g200);
    transition:all 300ms cubic-bezier(.16,1,.3,1);box-shadow:var(--rp-shadow-sm);
}
.rp-why-card:hover{transform:translateY(-6px);box-shadow:var(--rp-shadow-float);border-color:var(--rp-primary-soft)}
.rp-why-card .rp-ico{
    width:60px;height:60px;border-radius:18px;
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-primary-dark) 100%);
    color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:20px;
    box-shadow:0 12px 24px -8px rgba(37,99,235,.4),inset 0 1px 0 rgba(255,255,255,.2);
    position:relative;
}
.rp-why-card .rp-ico::before{
    content:'';position:absolute;inset:0;border-radius:18px;
    background:linear-gradient(180deg,rgba(255,255,255,.2),transparent);pointer-events:none;
}
.rp-why-card:nth-child(2) .rp-ico{background:linear-gradient(135deg,var(--rp-secondary) 0%,#0e7490 100%);box-shadow:0 12px 24px -8px rgba(6,182,212,.4),inset 0 1px 0 rgba(255,255,255,.2)}
.rp-why-card:nth-child(3) .rp-ico{background:linear-gradient(135deg,var(--rp-accent) 0%,var(--rp-accent-dark) 100%);box-shadow:0 12px 24px -8px rgba(248,152,46,.4),inset 0 1px 0 rgba(255,255,255,.2)}
.rp-why-card:nth-child(4) .rp-ico{background:linear-gradient(135deg,var(--rp-success) 0%,#047857 100%);box-shadow:0 12px 24px -8px rgba(16,185,129,.4),inset 0 1px 0 rgba(255,255,255,.2)}
.rp-why-card .rp-ico svg{width:28px;height:28px;position:relative;z-index:1}
.rp-why-card h3{font-size:19px;margin-bottom:10px;font-weight:800}
.rp-why-card p{font-size:14px;color:var(--rp-g500);line-height:1.6}

@media(max-width:900px){
    .rp-why-grid{grid-template-columns:1fr 1fr;gap:14px}
    .rp-why-card{padding:24px 20px}
    .rp-why-card .rp-ico{width:52px;height:52px;margin-bottom:16px}
    .rp-why-card .rp-ico svg{width:24px;height:24px}
    .rp-why-card h3{font-size:17px}
    .rp-why-card p{font-size:13.5px}
}

/* ── PROCESO ── */
.rp-proc-bg{
    padding:96px 24px 120px;
    background:#fff;
    position:relative;overflow:hidden;
}
.rp-proc-bg::before{
    content:'';position:absolute;inset:0;
    background-image:radial-gradient(circle at 50% 0%,rgba(96,165,250,.18) 0%,transparent 50%);
    pointer-events:none;
}
.rp-steps{
    display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px;
    position:relative;
}
.rp-steps::before{
    content:'';position:absolute;top:72px;left:18%;right:18%;height:3px;
    background:linear-gradient(90deg,
        var(--rp-primary-soft) 0%,
        var(--rp-primary) 50%,
        var(--rp-primary-soft) 100%);
    background-size:200% 100%;
    z-index:0;border-radius:9999px;
    animation:rp-flow 4s linear infinite;
}
@keyframes rp-flow{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* IMPORTANTE: estas reglas estaban sin scope y colisionaban con las
   .rp-step del checkout (que también usan .rp-step por convenio PS core).
   El resultado era que los steps del checkout heredaban opacity:0 y
   quedaban invisibles. Las anclamos a .rp-steps .rp-step (landing). */
.rp-steps .rp-step{
    position:relative;text-align:center;z-index:1;
    opacity:0;transform:translateY(30px);
    transition:opacity 700ms cubic-bezier(.16,1,.3,1),transform 700ms cubic-bezier(.16,1,.3,1);
}
.rp-steps .rp-step:nth-child(1){transition-delay:.05s}
.rp-steps .rp-step:nth-child(2){transition-delay:.2s}
.rp-steps .rp-step:nth-child(3){transition-delay:.35s}
.rp-in-view.rp-steps .rp-step,
.rp-in-view .rp-steps .rp-step{opacity:1;transform:translateY(0)}

.rp-steps .rp-step .rp-circ{
    width:140px;height:140px;border-radius:9999px;background:#fff;
    border:2px solid var(--rp-primary-soft);
    display:flex;align-items:center;justify-content:center;margin:0 auto 28px;
    color:var(--rp-primary);position:relative;
    box-shadow:0 30px 60px -20px rgba(37,99,235,.25),0 8px 25px -8px rgba(15,23,42,.08);
    transition:all 350ms cubic-bezier(.16,1,.3,1);
}
.rp-steps .rp-step:hover .rp-circ{
    transform:translateY(-6px) scale(1.05);
    border-color:var(--rp-primary);
    box-shadow:0 40px 80px -20px rgba(37,99,235,.4),0 12px 30px -8px rgba(15,23,42,.12);
}
.rp-steps .rp-step .rp-circ svg{width:52px;height:52px;transition:transform 350ms cubic-bezier(.16,1,.3,1)}
.rp-steps .rp-step:hover .rp-circ svg{transform:scale(1.12)}
.rp-steps .rp-step .rp-circ::before{
    content:'';position:absolute;inset:-12px;border-radius:9999px;
    border:2px dashed var(--rp-primary-soft);opacity:.6;
    animation:rp-rotate 30s linear infinite;
}
.rp-steps .rp-step:hover .rp-circ::before{opacity:1;border-color:var(--rp-primary-light)}
.rp-steps .rp-step .rp-circ::after{
    content:'';position:absolute;inset:-2px;border-radius:9999px;
    background:radial-gradient(circle at 30% 30%,rgba(96,165,250,.35),transparent 60%);
    opacity:0;transition:opacity 350ms ease;pointer-events:none;
}
.rp-steps .rp-step:hover .rp-circ::after{opacity:1}
.rp-steps .rp-step .rp-num{
    position:absolute;top:-4px;right:-4px;width:42px;height:42px;border-radius:9999px;
    background:linear-gradient(135deg,var(--rp-accent) 0%,var(--rp-accent-dark) 100%);color:#fff;
    font-family:'Montserrat',sans-serif;font-weight:900;font-size:18px;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 12px 24px -6px rgba(248,152,46,.55);border:3px solid #fff;z-index:2;
    transition:transform 350ms cubic-bezier(.16,1,.3,1);
}
.rp-steps .rp-step:hover .rp-num{transform:rotate(15deg) scale(1.1)}
@keyframes rp-rotate{to{transform:rotate(360deg)}}
.rp-steps .rp-step h3{font-size:24px;margin-bottom:12px;font-weight:800}
.rp-steps .rp-step p{font-size:15px;color:var(--rp-g500);max-width:300px;margin:0 auto;line-height:1.6}

@media(max-width:900px){
    .rp-proc-bg{padding:64px 20px}
    .rp-steps{grid-template-columns:1fr;gap:36px;margin-top:32px}
    .rp-steps::before{display:none}
    .rp-steps .rp-step .rp-circ{width:100px;height:100px}
    .rp-steps .rp-step .rp-circ svg{width:40px;height:40px}
}

/* ── STATS ── */
.rp-stats{
    padding:96px 24px 120px;margin-top:0;
    background:#1D4ED8;
    color:#fff;position:relative;overflow:hidden;
}
.rp-stats::before{
    content:'';position:absolute;inset:0;
    background-image:
        radial-gradient(ellipse 600px 300px at 10% 20%,rgba(37,99,235,.6) 0%,transparent 60%),
        radial-gradient(ellipse 500px 400px at 85% 80%,rgba(96,165,250,.35) 0%,transparent 60%),
        radial-gradient(ellipse 400px 200px at 50% 50%,rgba(29,78,216,.4) 0%,transparent 50%);
}
.rp-stats::after{
    content:'';position:absolute;inset:0;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.04' stroke-width='1'%3E%3Cline x1='0' y1='10' x2='40' y2='10'/%3E%3Cline x1='0' y1='30' x2='40' y2='30'/%3E%3Cline x1='10' y1='0' x2='10' y2='40'/%3E%3Cline x1='30' y1='0' x2='30' y2='40'/%3E%3C/g%3E%3C/svg%3E");
}
.rp-stats-in{max-width:1280px;margin:0 auto;position:relative;z-index:1;text-align:center}
.rp-stats h2{color:#fff;font-size:44px;margin-bottom:14px;font-weight:900;letter-spacing:-.025em}
.rp-stats p.rp-sub{color:#cbd5e1;font-size:17px;max-width:600px;margin:0 auto 56px}
.rp-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:980px;margin:0 auto}
.rp-stat-item{
    background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
    backdrop-filter:blur(16px);border-radius:24px;padding:36px 22px;
    transition:all 300ms cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;
}
.rp-stat-item::before{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,transparent 50%);pointer-events:none;
}
.rp-stat-item:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.3);transform:translateY(-4px)}
.rp-stat-item .rp-num{
    font-family:'Montserrat',sans-serif;font-weight:900;font-size:60px;line-height:1;
    background:linear-gradient(180deg,#fff 0%,#cbd5e1 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
    letter-spacing:-.04em;position:relative;
}
.rp-stat-item .rp-lbl{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;color:#94a3b8;
    margin-top:12px;text-transform:uppercase;letter-spacing:.8px;position:relative;
}

@media(max-width:900px){
    .rp-stats{padding:64px 20px}
    .rp-stats h2{font-size:30px}
    .rp-stats p.rp-sub{font-size:15px;margin-bottom:36px}
    .rp-stats-grid{grid-template-columns:1fr;gap:16px;max-width:340px}
    .rp-stat-item{padding:26px 16px;border-radius:18px}
    .rp-stat-item .rp-num{font-size:42px}
    .rp-stat-item .rp-lbl{font-size:11px}
}

/* ── TESTIMONIOS ── */
.rp-testi{padding:96px 24px;background:linear-gradient(180deg,#FAFCFF 0%,#fff 30%,#fff 70%,#FAFCFF 100%);overflow:hidden;position:relative}
.rp-google-badge{
    display:inline-flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--rp-g200);
    color:var(--rp-g700);font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;
    padding:10px 18px;border-radius:9999px;margin-bottom:18px;box-shadow:var(--rp-shadow-sm);
}
.rp-google-badge .rp-gicon{display:inline-flex;width:18px;height:18px}
.rp-google-badge .rp-gicon svg{width:18px;height:18px}
.rp-google-badge .rp-stars{display:flex;gap:1px;color:#fbbf24}
.rp-google-badge .rp-stars svg{width:12px;height:12px;fill:currentColor}
.rp-google-badge .rp-live{display:inline-flex;align-items:center;gap:5px;color:var(--rp-success);font-size:11px}
.rp-google-badge .rp-live::before{
    content:'';width:6px;height:6px;border-radius:9999px;background:var(--rp-success);
    box-shadow:0 0 0 3px rgba(16,185,129,.18);animation:rp-pulse 2s ease-in-out infinite;
}
.rp-testi-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;
    max-height:680px;overflow:hidden;position:relative;
    -webkit-mask-image:linear-gradient(to bottom,transparent,black 12%,black 88%,transparent);
    mask-image:linear-gradient(to bottom,transparent,black 12%,black 88%,transparent);
}
.rp-testi-col{display:flex;flex-direction:column;gap:20px;animation:rp-scrollup 32s linear infinite}
.rp-testi-col.rp-b{animation-duration:38s}
.rp-testi-col.rp-c{animation-duration:34s}
@keyframes rp-scrollup{0%{transform:translateY(0)}100%{transform:translateY(-50%)}}
.rp-testi-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:24px;padding:28px;
    box-shadow:var(--rp-shadow-sm);transition:all 200ms ease;
}
.rp-testi-card:hover{box-shadow:var(--rp-shadow-md);border-color:var(--rp-primary-soft)}
.rp-testi-card .rp-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.rp-testi-card .rp-stars{display:flex;gap:2px;color:#fbbf24}
.rp-testi-card .rp-stars svg{width:16px;height:16px;fill:currentColor}
.rp-testi-card .rp-gicon{width:18px;height:18px;opacity:.7}
.rp-testi-card .rp-quote{font-size:14.5px;color:var(--rp-g700);line-height:1.65;margin-bottom:18px}
.rp-testi-card .rp-who{padding-top:14px;border-top:1px solid var(--rp-g100)}
.rp-testi-card .rp-who .rp-role{font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;color:var(--rp-g500);text-transform:uppercase;letter-spacing:.5px}

@media(max-width:900px){
    .rp-testi{padding:64px 20px}
    .rp-testi-grid{grid-template-columns:1fr;max-height:580px}
    .rp-testi-col.rp-b,.rp-testi-col.rp-c{display:none}
}

/* ── CTA COLEGIOS ── */
.rp-cta-cole{padding:96px 24px 72px;background:linear-gradient(180deg,#FAFCFF 0%,#fff 100%)}
.rp-cta-cole-in{
    max-width:1280px;margin:0 auto;
    background:linear-gradient(135deg,#0F172A 0%,#1e3a8a 60%,#2563EB 100%);
    border-radius:32px;padding:72px 56px;color:#fff;position:relative;overflow:hidden;
    display:grid;grid-template-columns:1.4fr .8fr;gap:48px;align-items:center;
}
.rp-cta-cole-in::before{
    content:'';position:absolute;inset:0;
    background-image:
        radial-gradient(ellipse 700px 400px at 90% 50%,rgba(248,152,46,.22) 0%,transparent 60%),
        radial-gradient(ellipse 600px 300px at 10% 30%,rgba(96,165,250,.2) 0%,transparent 60%);
}
.rp-cta-cole-in::after{
    content:'';position:absolute;inset:0;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.04' stroke-width='1'%3E%3Cline x1='0' y1='8' x2='30' y2='8'/%3E%3Cline x1='8' y1='0' x2='8' y2='30'/%3E%3C/g%3E%3C/svg%3E");
}
.rp-cta-cole-text{position:relative;z-index:1}
.rp-cta-cole .rp-cta-badge{
    display:inline-flex;align-items:center;gap:8px;background:rgba(248,152,46,.18);
    border:1px solid rgba(248,152,46,.4);color:#FED7AA;
    padding:8px 16px;border-radius:9999px;
    font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;
    text-transform:uppercase;letter-spacing:1px;margin-bottom:22px;backdrop-filter:blur(8px);
}
.rp-cta-cole .rp-cta-badge svg{width:14px;height:14px}
.rp-cta-cole h2{color:#fff;font-size:44px;margin-bottom:18px;letter-spacing:-.025em;line-height:1.1;font-weight:900}
.rp-cta-cole p{color:#cbd5e1;font-size:17px;max-width:560px;margin-bottom:32px;line-height:1.6}
.rp-cta-cole-buttons{display:flex;gap:14px;flex-wrap:wrap}
.rp-cta-cole-visual{position:relative;z-index:1;text-align:center}
.rp-cta-cole-visual .rp-ic{
    width:180px;height:180px;border-radius:36px;
    background:linear-gradient(135deg,var(--rp-accent) 0%,var(--rp-accent-dark) 100%);
    display:inline-flex;align-items:center;justify-content:center;color:#fff;
    box-shadow:0 30px 60px -15px rgba(248,152,46,.5),inset 0 2px 0 rgba(255,255,255,.25);
    position:relative;
}
.rp-cta-cole-visual .rp-ic::before{
    content:'';position:absolute;inset:-12px;border-radius:42px;
    border:2px dashed rgba(248,152,46,.4);animation:rp-rotate 25s linear infinite;
}
.rp-cta-cole-visual .rp-ic svg{width:80px;height:80px;stroke-width:1.5}

@media(max-width:900px){
    .rp-cta-cole{padding:64px 20px}
    .rp-cta-cole-in{grid-template-columns:1fr;padding:48px 28px;gap:32px;text-align:center;border-radius:24px}
    .rp-cta-cole h2{font-size:30px}
    .rp-cta-cole p{font-size:15px;margin-left:auto;margin-right:auto}
    .rp-cta-cole-buttons{justify-content:center}
    .rp-cta-cole-buttons .rp-btn{flex:1;min-width:0}
    .rp-cta-cole-visual .rp-ic{width:130px;height:130px}
    .rp-cta-cole-visual .rp-ic svg{width:60px;height:60px}
}

/* ============================================================================
   FOOTER · TAPED DESIGN — tarjeta blanca redondeada con cintas en esquinas
   ============================================================================ */
.rp-ft-tape{
    position:relative;
    background:linear-gradient(to top,#DBEAFE 0%,#fff 100%);
    padding:48px 16px 32px;
    margin-top:0;
    color:var(--rp-dark);
    font-family:'DM Sans',sans-serif;
    overflow:hidden;
    --rp-ft-mx:-9999px;
    --rp-ft-my:-9999px;
}
/* Anula padding/bg del wrapper #footer de PS classic */
/* Ocultar wrappers nativos de PS classic que duplican nuestro header/footer */
#header{display:contents!important}
#header > .header-banner,
#header > .header-nav,
#header > .header-top,
.page-header,
.page-footer{display:none!important}
#footer,#footer.js-footer{
    padding:0!important;margin:0!important;background:transparent!important;color:inherit!important;
}
/* Infinite grid: solo visible dentro de un círculo de 300px que sigue al cursor.
   z-index:1 → queda por detrás del card (z-index:2), solo se ve en los márgenes. */
.rp-ft-grid{
    position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1;
}
.rp-ft-grid__reveal{
    position:absolute;inset:0;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cg fill='none' stroke='%232563EB' stroke-width='1'%3E%3Cline x1='0' y1='14' x2='28' y2='14'/%3E%3Cline x1='14' y1='0' x2='14' y2='28'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat:repeat;
    animation:rpFtGridScroll 930ms linear infinite;
    will-change:background-position;
    opacity:.6;
    -webkit-mask-image:radial-gradient(circle 300px at var(--rp-ft-mx) var(--rp-ft-my),#000 0%,transparent 100%);
            mask-image:radial-gradient(circle 300px at var(--rp-ft-mx) var(--rp-ft-my),#000 0%,transparent 100%);
    -webkit-mask-repeat:no-repeat;
            mask-repeat:no-repeat;
}
@keyframes rpFtGridScroll{
    from{background-position:0 0}
    to{background-position:0 28px}
}
@media (prefers-reduced-motion:reduce){
    .rp-ft-grid__reveal{animation:none}
}
.rp-ft-tape::after{
    content:'';position:absolute;width:520px;height:520px;border-radius:9999px;
    left:-180px;bottom:-220px;pointer-events:none;
    background:radial-gradient(circle,rgba(37,99,235,.18) 0%,transparent 70%);
    animation:rpFtBlob 18s ease-in-out infinite;
}
@keyframes rpFtBlob{
    0%,100%{transform:translate(0,0) scale(1)}
    50%{transform:translate(60px,-40px) scale(1.15)}
}
.rp-ft-tape-card{
    position:relative;z-index:2;background:#fff;border-radius:32px;
    max-width:1180px;margin:0 auto;
    padding:56px 38px;
    box-shadow:0 30px 80px -40px rgba(15,23,42,.28),0 8px 24px -12px rgba(15,23,42,.1);
    transition:transform 600ms cubic-bezier(.16,1,.3,1),box-shadow 600ms cubic-bezier(.16,1,.3,1);
}
.rp-ft-tape-card:hover{
    transform:translateY(-4px);
    box-shadow:0 40px 100px -40px rgba(15,23,42,.32),0 12px 32px -10px rgba(15,23,42,.14);
}
.rp-ft-tape-card:hover .rp-ft-tape-tl{transform:rotate(-8deg) translateY(-3px)}
.rp-ft-tape-card:hover .rp-ft-tape-tr{transform:rotate(88deg) translateY(-3px)}
/* Cintas adhesivas — SVG tape del componente taped-design */
.rp-ft-tape-piece{
    display:none;position:absolute;pointer-events:none;z-index:3;
    color:rgba(15,23,42,.75);
    transition:transform 600ms cubic-bezier(.16,1,.3,1);
    filter:drop-shadow(0 6px 14px rgba(15,23,42,.2));
}
.rp-ft-tape-piece svg{display:block;width:100%;height:100%}
/* Cinta izquierda */
.rp-ft-tape-tl{
    width:120px;height:54px;top:-20px;left:-40px;
    transform:rotate(-5deg);
}
/* Cinta derecha: rotada 90° como en la referencia React */
.rp-ft-tape-tr{
    width:120px;height:54px;top:-20px;right:-40px;
    transform:rotate(85deg);
}
@media(min-width:760px){.rp-ft-tape-piece{display:block}}

.rp-ft-tape-grid{
    display:flex;flex-direction:column;gap:36px;
}
@media(min-width:900px){
    .rp-ft-tape-grid{flex-direction:row;align-items:flex-start;gap:60px;padding:0 16px}
}

.rp-ft-tape-brand{display:flex;flex-direction:column;gap:14px;flex:1;max-width:380px}
.rp-ft-tape-logo img{height:40px;width:auto;display:block}
.rp-ft-tape-claim{
    font-size:15px;color:var(--rp-g500);line-height:1.6;margin:0;font-weight:500;
}
.rp-ft-tape-trust{
    display:flex;align-items:center;gap:8px;
    font-size:13px;color:var(--rp-g500);font-weight:500;
    background:var(--rp-g50);border:1px solid var(--rp-g200);
    padding:8px 14px;border-radius:9999px;align-self:flex-start;
}
.rp-ft-tape-stars{display:inline-flex;gap:1px}
.rp-ft-tape-stars svg{width:14px;height:14px;fill:#fbbf24;stroke:#fbbf24}
.rp-ft-tape-trust strong{font-family:'Montserrat',sans-serif;font-weight:800;color:var(--rp-dark);font-size:14px}

.rp-ft-tape-cols{
    display:flex;flex-wrap:wrap;gap:32px 48px;flex:2;
}
@media(min-width:900px){.rp-ft-tape-cols{justify-content:flex-end}}
.rp-ft-tape-col{display:flex;flex-direction:column;gap:6px;min-width:140px}
.rp-ft-tape-col h4{
    font-family:'Montserrat',sans-serif;font-size:12px;font-weight:800;
    color:var(--rp-g400);text-transform:uppercase;letter-spacing:.9px;
    margin:0 0 12px;
}
.rp-ft-tape-col a{
    color:var(--rp-g500);font-size:14px;font-weight:500;
    text-decoration:none;transition:color 200ms ease;
    white-space:nowrap;
}
.rp-ft-tape-col a:hover{color:var(--rp-primary);text-decoration:none}
.rp-ft-tape-col-contact address{
    font-style:normal;font-size:14px;color:var(--rp-g500);line-height:1.6;margin:0 0 6px;font-weight:500;
}
.rp-ft-tape-mini{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--rp-g500);font-weight:500;text-decoration:none}
.rp-ft-tape-mini svg{width:14px;height:14px;color:var(--rp-primary)}
.rp-ft-tape-mini:hover{color:var(--rp-primary);text-decoration:none}

/* ─── Bottom bar (fuera de la tarjeta) ─── */
.rp-ft-tape-bot{
    max-width:1180px;margin:18px auto 0;
    display:flex;flex-direction:column;gap:14px;
    padding:8px 24px 0;align-items:center;text-align:center;
}
@media(min-width:760px){
    .rp-ft-tape-bot{flex-direction:row;justify-content:space-between;text-align:left}
}
.rp-ft-tape-bot p{
    margin:0;font-size:13px;color:var(--rp-g500);font-weight:500;
}
.rp-ft-tape-legal{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
.rp-ft-tape-legal a{font-size:13px;color:var(--rp-g500);font-weight:500;text-decoration:none}
.rp-ft-tape-legal a:hover{color:var(--rp-primary);text-decoration:none}
.rp-ft-tape-social{display:flex;gap:10px}
.rp-ft-tape-social a{
    width:36px;height:36px;border-radius:9999px;background:#fff;border:1px solid var(--rp-g200);
    display:flex;align-items:center;justify-content:center;color:var(--rp-g500);
    transition:all 200ms ease;text-decoration:none;
}
.rp-ft-tape-social a:hover{background:var(--rp-primary);color:#fff;border-color:var(--rp-primary);transform:translateY(-2px);text-decoration:none}
.rp-ft-tape-social svg{width:16px;height:16px}

@media(max-width:760px){
    .rp-ft-tape{padding:32px 12px 24px}
    .rp-ft-tape-card{padding:36px 22px;border-radius:24px}
}

/* ============================================================================
   PAGE HERO (Contacto, Sobre nosotros, Cómo funcionamos, etc.)
   ============================================================================ */
.rp-pg-hero{
    position:relative;overflow:hidden;
    background:linear-gradient(180deg,#BAE0FF 0%,#DCEEFE 35%,#F0F9FF 70%,#F8FBFF 100%);
    padding:120px 24px 56px;margin-top:-72px;
}
/* Reduce gap entre badge "Estamos a un mensaje de distancia" → h1 */
.rp-pg-hero .rp-hero-tag{margin-bottom:18px}
.rp-pg-hero::after{
    content:'';position:absolute;left:0;right:0;bottom:-1px;height:180px;
    background:linear-gradient(180deg,transparent 0%,rgba(248,251,255,.5) 40%,rgba(255,255,255,.85) 70%,#fff 100%);
    pointer-events:none;
}
.rp-pg-hero-in{
    max-width:1100px;margin:0 auto;position:relative;z-index:2;text-align:center;padding-top:32px;
}
.rp-pg-hero h1{
    font-family:'Montserrat',sans-serif;font-size:62px;font-weight:900;line-height:1.05;
    color:var(--rp-dark);margin-bottom:24px;letter-spacing:-.035em;
}
.rp-pg-hero h1 .rp-grad{
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-secondary) 60%,var(--rp-primary) 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
}
.rp-pg-hero p.rp-lede{
    font-size:18px;color:var(--rp-g500);max-width:640px;margin:0 auto;line-height:1.65;
}
@media(max-width:900px){
    .rp-pg-hero{padding:80px 20px 36px}
    .rp-pg-hero-in{padding-top:8px}
    .rp-pg-hero .rp-hero-tag{margin-bottom:14px}
    .rp-pg-hero h1{font-size:38px}
    .rp-pg-hero p.rp-lede{font-size:15px}
}

/* ============================================================================
   CONTACT PAGE
   ============================================================================ */
.rp-contact-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
}
.rp-contact-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:24px;
    padding:32px 24px;text-decoration:none;color:inherit;
    transition:all 350ms cubic-bezier(.16,1,.3,1);
    box-shadow:var(--rp-shadow-sm);text-align:center;display:flex;flex-direction:column;align-items:center;
}
.rp-contact-card:hover{
    transform:translateY(-6px);box-shadow:var(--rp-shadow-float);
    border-color:var(--rp-primary-soft);text-decoration:none;color:inherit;
}
.rp-contact-card .rp-cc-ico{
    width:64px;height:64px;border-radius:18px;
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-primary-dark) 100%);
    color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:18px;
    box-shadow:0 16px 28px -10px rgba(37,99,235,.45),inset 0 1px 0 rgba(255,255,255,.2);
    transition:transform 350ms cubic-bezier(.16,1,.3,1);
}
.rp-contact-card:hover .rp-cc-ico{transform:scale(1.08) rotate(-4deg)}
.rp-contact-card .rp-cc-ico svg{width:30px;height:30px}
.rp-contact-card.rp-cc-wa .rp-cc-ico{background:linear-gradient(135deg,#25D366,#128C7E);box-shadow:0 16px 28px -10px rgba(37,211,102,.45),inset 0 1px 0 rgba(255,255,255,.2)}
.rp-contact-card.rp-cc-mail .rp-cc-ico{background:linear-gradient(135deg,var(--rp-secondary),#0e7490);box-shadow:0 16px 28px -10px rgba(6,182,212,.45),inset 0 1px 0 rgba(255,255,255,.2)}
.rp-contact-card.rp-cc-phone .rp-cc-ico{background:linear-gradient(135deg,var(--rp-accent),var(--rp-accent-dark));box-shadow:0 16px 28px -10px rgba(248,152,46,.45),inset 0 1px 0 rgba(255,255,255,.2)}
.rp-contact-card.rp-cc-map .rp-cc-ico{background:linear-gradient(135deg,var(--rp-primary),var(--rp-primary-dark));box-shadow:0 16px 28px -10px rgba(37,99,235,.45),inset 0 1px 0 rgba(255,255,255,.2)}
.rp-contact-card h3{font-size:18px;font-weight:800;margin-bottom:8px;color:var(--rp-dark)}
.rp-contact-card p{font-size:13.5px;color:var(--rp-g500);line-height:1.55;margin-bottom:14px}
.rp-contact-card .rp-cc-tag{
    display:inline-block;padding:8px 14px;border-radius:9999px;
    background:var(--rp-primary-bg);color:var(--rp-primary);
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;
    margin-top:auto;
}

.rp-contact-split{
    display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:stretch;
}
.rp-contact-form-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:28px;padding:40px;
    box-shadow:var(--rp-shadow-md);
}
.rp-contact-form-card form{display:block}
.rp-contact-form-card .form-group{margin-bottom:18px}
.rp-contact-form-card label{
    display:block;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;
    color:var(--rp-g700);margin-bottom:6px;
}
.rp-contact-form-card input[type=text],
.rp-contact-form-card input[type=email],
.rp-contact-form-card input[type=tel],
.rp-contact-form-card select,
.rp-contact-form-card textarea{
    width:100%;border-radius:10px;border:1.5px solid var(--rp-g300);background:#fff;
    padding:12px 14px;font-family:'DM Sans',sans-serif;font-size:14px;color:var(--rp-g700);
    transition:all 200ms ease;outline:none;
}
.rp-contact-form-card input[type=text]:focus,
.rp-contact-form-card input[type=email]:focus,
.rp-contact-form-card input[type=tel]:focus,
.rp-contact-form-card select:focus,
.rp-contact-form-card textarea:focus{border-color:var(--rp-primary);box-shadow:0 0 0 4px rgba(37,99,235,.12)}
.rp-contact-form-card textarea{min-height:140px;resize:vertical}
.rp-contact-form-card button[type=submit],
.rp-contact-form-card .btn-primary{
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-primary-dark) 100%)!important;
    color:#fff!important;border:none!important;padding:14px 28px!important;
    border-radius:12px!important;font-family:'Montserrat',sans-serif!important;
    font-weight:700!important;font-size:14px!important;cursor:pointer;
    box-shadow:0 8px 20px -4px rgba(37,99,235,.45),inset 0 1px 0 rgba(255,255,255,.25)!important;
    transition:all 250ms cubic-bezier(.16,1,.3,1)!important;
}
.rp-contact-form-card button[type=submit]:hover{transform:translateY(-2px);box-shadow:0 12px 28px -4px rgba(37,99,235,.55)!important}
.rp-contact-map{
    border-radius:24px;overflow:hidden;border:1px solid var(--rp-g200);min-height:420px;
    box-shadow:var(--rp-shadow-md);
}
.rp-contact-map iframe{display:block;height:100%;min-height:420px;border:0}

@media(max-width:900px){
    .rp-contact-grid{grid-template-columns:1fr 1fr;gap:14px}
    .rp-contact-card{padding:24px 18px}
    .rp-contact-card h3{font-size:16px}
    .rp-contact-split{grid-template-columns:1fr;gap:18px}
    .rp-contact-form-card{padding:28px 22px;border-radius:22px}
    .rp-contact-map{min-height:300px}
    .rp-contact-map iframe{min-height:300px}
}

/* ============================================================================
   CMS PAGES (Sobre nosotros, Cómo funcionamos)
   ============================================================================ */
.rp-cms{padding-bottom:0}
.rp-cms-section{padding:80px 24px;background:#fff}
.rp-cms-section.rp-bg-soft{background:linear-gradient(180deg,#FAFCFF 0%,#F0F9FF 40%,#EFF6FF 60%,#F8FBFF 80%,#fff 100%)}
.rp-cms-in{max-width:1100px;margin:0 auto}
.rp-cms-in.rp-narrow{max-width:760px}
.rp-cms-in h2{font-size:38px;font-weight:900;letter-spacing:-.025em;margin-bottom:16px;color:var(--rp-dark);line-height:1.15}
.rp-cms-in h3{font-size:22px;font-weight:800;margin:32px 0 12px;color:var(--rp-dark)}
.rp-cms-in p{font-size:16.5px;color:var(--rp-g700);line-height:1.7;margin-bottom:18px}
.rp-cms-in .rp-eyebrow{margin-bottom:14px}
.rp-cms-in ul li{
    padding:8px 0 8px 32px;position:relative;font-size:15.5px;color:var(--rp-g700);line-height:1.6;
}
.rp-cms-in ul li::before{
    content:'';position:absolute;left:8px;top:18px;width:8px;height:8px;border-radius:9999px;
    background:linear-gradient(135deg,var(--rp-primary),var(--rp-secondary));
}

/* Timeline (Cómo funcionamos) */
.rp-timeline{display:flex;flex-direction:column;gap:32px;margin-top:40px;position:relative}
.rp-timeline::before{
    content:'';position:absolute;left:32px;top:32px;bottom:32px;width:3px;border-radius:9999px;
    background:linear-gradient(180deg,var(--rp-primary-soft),var(--rp-primary),var(--rp-primary-soft));
}
.rp-tl-item{display:flex;gap:24px;align-items:flex-start;position:relative}
.rp-tl-num{
    flex-shrink:0;width:64px;height:64px;border-radius:9999px;background:#fff;
    border:3px solid var(--rp-primary);color:var(--rp-primary);
    display:flex;align-items:center;justify-content:center;
    font-family:'Montserrat',sans-serif;font-weight:900;font-size:22px;
    box-shadow:0 12px 24px -8px rgba(37,99,235,.4);position:relative;z-index:1;
}
.rp-tl-body{padding-top:14px;flex:1}
.rp-tl-body h3{font-size:22px;font-weight:800;margin:0 0 6px;color:var(--rp-dark)}
.rp-tl-body p{font-size:15px;color:var(--rp-g500);line-height:1.65;margin:0}

/* About — equipo / fábrica grid */
.rp-about-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}
.rp-about-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:22px;padding:32px 26px;
    box-shadow:var(--rp-shadow-sm);transition:all 300ms cubic-bezier(.16,1,.3,1);
}
.rp-about-card:hover{transform:translateY(-4px);box-shadow:var(--rp-shadow-float);border-color:var(--rp-primary-soft)}
.rp-about-card .rp-ac-ico{
    width:56px;height:56px;border-radius:16px;
    background:linear-gradient(135deg,var(--rp-primary),var(--rp-primary-dark));color:#fff;
    display:flex;align-items:center;justify-content:center;margin-bottom:18px;
    box-shadow:0 12px 24px -8px rgba(37,99,235,.4),inset 0 1px 0 rgba(255,255,255,.2);
}
.rp-about-card .rp-ac-ico svg{width:26px;height:26px}
.rp-about-card h3{font-size:18px;font-weight:800;margin-bottom:8px}
.rp-about-card p{font-size:14px;color:var(--rp-g500);line-height:1.6;margin:0}

@media(max-width:900px){
    .rp-cms-section{padding:56px 20px}
    .rp-cms-in h2{font-size:28px}
    .rp-cms-in p{font-size:15px}
    .rp-about-cards{grid-template-columns:1fr;gap:14px}
    .rp-tl-num{width:52px;height:52px;font-size:18px}
    .rp-timeline::before{left:26px}
}

/* ============================================================================
   MI COLEGIO PAGE
   ============================================================================ */
.rp-mc-hero{
    min-height:calc(100vh - 72px);
    background:linear-gradient(180deg,#E0F2FE 0%,#F0F9FF 40%,#fff 75%,#F4F6FB 100%);
    padding:64px 24px;display:flex;align-items:center;justify-content:center;
    position:relative;overflow:hidden;
}
.rp-mc-hero::before{
    content:'';position:absolute;inset:0;
    background-image:
        radial-gradient(ellipse 700px 400px at 30% 20%,rgba(96,165,250,.25) 0%,transparent 60%),
        radial-gradient(ellipse 600px 350px at 80% 80%,rgba(248,152,46,.10) 0%,transparent 60%);
    pointer-events:none;
}
.rp-mc-card{
    position:relative;background:#fff;border-radius:32px;border:1px solid var(--rp-g200);
    box-shadow:0 40px 100px -25px rgba(15,23,42,.25),0 8px 30px -8px rgba(37,99,235,.12);
    max-width:580px;width:100%;padding:56px 44px;text-align:center;z-index:2;
}
.rp-mc-icon{
    width:104px;height:104px;border-radius:30px;
    background:linear-gradient(135deg,var(--rp-accent) 0%,var(--rp-accent-dark) 100%);
    color:#fff;display:flex;align-items:center;justify-content:center;
    margin:0 auto 28px;
    box-shadow:0 24px 50px -10px rgba(248,152,46,.5),inset 0 2px 0 rgba(255,255,255,.25);
    position:relative;
}
.rp-mc-icon svg{width:50px;height:50px;stroke-width:1.5;position:relative;z-index:1}
.rp-mc-icon::after{
    content:'';position:absolute;inset:-8px;border-radius:38px;
    border:2px dashed rgba(248,152,46,.35);animation:rp-rotate 25s linear infinite;
}
.rp-mc-card h1{
    font-family:'Montserrat',sans-serif;font-size:36px;font-weight:900;
    color:var(--rp-dark);margin-bottom:14px;line-height:1.1;letter-spacing:-.025em;
}
.rp-mc-card h1 .rp-grad{
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-secondary) 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
}
.rp-mc-card p.rp-lede{font-size:16px;color:var(--rp-g500);margin-bottom:32px;line-height:1.65}
.rp-mc-benefits{
    display:flex;flex-direction:column;gap:14px;text-align:left;
    background:linear-gradient(180deg,var(--rp-sky-vlight) 0%,#fff 100%);
    border-radius:20px;padding:24px;margin-bottom:32px;border:1px solid var(--rp-primary-soft);
}
.rp-mc-ben{display:flex;align-items:flex-start;gap:14px}
.rp-mc-ben .rp-ic{
    flex-shrink:0;width:42px;height:42px;border-radius:12px;
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-primary-dark) 100%);color:#fff;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 8px 16px -4px rgba(37,99,235,.35),inset 0 1px 0 rgba(255,255,255,.2);
}
.rp-mc-ben .rp-ic svg{width:20px;height:20px}
.rp-mc-ben .rp-tx h4{font-family:'Montserrat',sans-serif;font-size:14.5px;font-weight:700;color:var(--rp-dark);margin-bottom:3px}
.rp-mc-ben .rp-tx p{font-size:13px;color:var(--rp-g500);margin:0;line-height:1.55}
.rp-mc-actions{display:flex;flex-direction:column;gap:10px}
.rp-mc-actions .rp-btn{width:100%}
.rp-mc-help{
    margin-top:26px;padding-top:22px;border-top:1px solid var(--rp-g100);
    font-size:13px;color:var(--rp-g500);
}
.rp-mc-help a{color:var(--rp-primary);font-weight:700}
.rp-mc-help a:hover{text-decoration:underline}

@media(max-width:900px){
    .rp-mc-hero{padding:32px 16px;min-height:auto}
    .rp-mc-card{padding:40px 24px;border-radius:24px}
    .rp-mc-card h1{font-size:28px}
    .rp-mc-card p.rp-lede{font-size:15px}
    .rp-mc-icon{width:88px;height:88px}
    .rp-mc-icon svg{width:42px;height:42px}
}

/* ============================================================================
   REGISTRO PAGE
   ============================================================================ */
.rp-rg-wrap{
    min-height:calc(100vh - 72px);
    background:linear-gradient(180deg,#E0F2FE 0%,#F0F9FF 25%,#fff 70%,#F4F6FB 100%);
    padding:48px 24px;position:relative;overflow:hidden;
}
.rp-rg-wrap::before{
    content:'';position:absolute;inset:0;
    background-image:radial-gradient(ellipse 700px 400px at 30% 10%,rgba(96,165,250,.22) 0%,transparent 60%);
    pointer-events:none;
}
.rp-rg-in{
    max-width:720px;margin:0 auto;display:block;position:relative;z-index:1;
}
.rp-rg-form{
    background:#fff;border-radius:28px;border:1px solid var(--rp-g200);
    box-shadow:0 30px 80px -20px rgba(15,23,42,.18),0 8px 30px -8px rgba(37,99,235,.1);
    padding:48px 44px;
}
.rp-rg-eyebrow{
    display:inline-block;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;
    color:var(--rp-primary);text-transform:uppercase;letter-spacing:1.5px;
    margin-bottom:12px;padding:6px 14px;background:var(--rp-primary-bg);
    border-radius:9999px;border:1px solid var(--rp-primary-soft);
}
.rp-rg-form h1{font-size:34px;font-weight:900;color:var(--rp-dark);margin-bottom:8px;letter-spacing:-.025em}
.rp-rg-form > p.rp-sub{font-size:15px;color:var(--rp-g500);margin-bottom:36px;line-height:1.6}
.rp-rg-section{margin-bottom:32px}
.rp-rg-section-title{
    display:flex;align-items:center;gap:10px;font-family:'Montserrat',sans-serif;
    font-size:11px;font-weight:800;color:var(--rp-g500);text-transform:uppercase;letter-spacing:1px;
    margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--rp-g100);
}
.rp-rg-section-title .rp-num{
    width:24px;height:24px;border-radius:9999px;
    background:linear-gradient(135deg,var(--rp-primary),var(--rp-primary-dark));color:#fff;
    display:inline-flex;align-items:center;justify-content:center;
    font-size:11px;font-weight:800;
    box-shadow:0 4px 10px -2px rgba(37,99,235,.4);
}
.rp-rg-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.rp-rg-field{margin-bottom:14px;position:relative}
.rp-rg-field label{
    display:block;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;
    color:var(--rp-g700);margin-bottom:6px;
}
.rp-rg-field label .rp-req{color:var(--rp-error)}
.rp-rg-input,.rp-rg-select{
    width:100%;height:46px;border-radius:10px;border:1.5px solid var(--rp-g300);background:#fff;
    padding:0 14px 0 44px;font-family:'DM Sans',sans-serif;font-size:14px;color:var(--rp-g700);
    transition:all 200ms ease;outline:none;
}
.rp-rg-input::placeholder{color:var(--rp-g400)}
.rp-rg-input:focus,.rp-rg-select:focus{border-color:var(--rp-primary);box-shadow:0 0 0 4px rgba(37,99,235,.12)}
.rp-rg-input-err{border-color:var(--rp-error)!important;background:#FEF2F2}
.rp-rg-input-err:focus{border-color:var(--rp-error)!important;box-shadow:0 0 0 4px rgba(239,68,68,.12)!important}
.rp-rg-input-warn{border-color:#F59E0B!important;background:#FFFBEB}
.rp-rg-input-warn:focus{border-color:#F59E0B!important;box-shadow:0 0 0 4px rgba(245,158,11,.12)!important}
.rp-rg-input-ok{border-color:#10B981!important}
.rp-rg-input-ok:focus{border-color:#10B981!important;box-shadow:0 0 0 4px rgba(16,185,129,.12)!important}

/* Password meter + toggle (show/hide) */
.rp-pw-toggle{position:absolute;right:10px;top:34px;width:32px;height:32px;border:none;background:transparent;color:var(--rp-g400);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;transition:color .15s ease}
.rp-pw-toggle:hover{color:var(--rp-primary);background:var(--rp-primary-bg)}
.rp-rg-field:has([data-rp-pw]) input{padding-right:44px}
.rp-pw-meter{margin-top:8px;padding:12px;background:var(--rp-g50);border:1px solid var(--rp-g200);border-radius:10px;font-family:'DM Sans',sans-serif}
.rp-pw-meter-bar{height:6px;border-radius:9999px;background:var(--rp-g200);overflow:hidden;position:relative}
.rp-pw-meter-bar span{display:block;height:100%;width:0;border-radius:9999px;transition:width .25s ease,background .25s ease;background:#EF4444}
.rp-pw-meter-bar span[data-score="1"]{background:#EF4444}
.rp-pw-meter-bar span[data-score="2"]{background:#F59E0B}
.rp-pw-meter-bar span[data-score="3"]{background:#60A5FA}
.rp-pw-meter-bar span[data-score="4"]{background:#10B981}
.rp-pw-meter-label{margin-top:8px;font-size:12px;font-weight:700;color:var(--rp-g500);font-family:'Montserrat',sans-serif}
.rp-pw-meter-label[data-score="0"]{color:var(--rp-g500)}
.rp-pw-meter-label[data-score="1"]{color:#B91C1C}
.rp-pw-meter-label[data-score="2"]{color:#B45309}
.rp-pw-meter-label[data-score="3"]{color:#1D4ED8}
.rp-pw-meter-label[data-score="4"]{color:#047857}
.rp-pw-checks{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 14px}
.rp-pw-checks li{font-size:11.5px;color:var(--rp-g500);display:flex;align-items:center;gap:6px;line-height:1.45;transition:color .15s ease}
.rp-pw-dot{flex-shrink:0;width:14px;height:14px;border-radius:9999px;background:var(--rp-g200);position:relative;transition:all .2s ease}
.rp-pw-dot::after{content:'';position:absolute;left:4px;top:2px;width:4px;height:7px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);opacity:0;transition:opacity .15s ease}
.rp-pw-checks li.is-ok{color:#047857}
.rp-pw-checks li.is-ok .rp-pw-dot{background:#10B981}
.rp-pw-checks li.is-ok .rp-pw-dot::after{opacity:1}

@media(max-width:640px){
    .rp-pw-checks{grid-template-columns:1fr}
}
.rp-rg-email-feedback{margin-top:6px;font-size:12px;line-height:1.45;font-family:'DM Sans',sans-serif}
.rp-rg-email-feedback:empty{display:none}
.rp-rg-email-feedback[data-state="err"]{color:#B91C1C}
.rp-rg-email-feedback[data-state="err"] strong{color:#991B1B}
.rp-rg-email-feedback[data-state="err"] a{color:#2563EB;font-weight:700;text-decoration:underline}
.rp-rg-email-feedback[data-state="warn"]{color:#92400E}
.rp-rg-email-feedback[data-state="warn"] a{color:#2563EB;font-weight:700;text-decoration:underline}
.rp-rg-email-feedback[data-state="ok"]{color:#065F46;display:inline-flex;align-items:center;gap:6px}
.rp-rg-email-feedback[data-state="ok"] svg{flex-shrink:0}
.rp-rg-field .rp-ico{position:absolute;left:14px;top:34px;color:var(--rp-g400);pointer-events:none}
.rp-rg-field .rp-ico svg{width:18px;height:18px}
.rp-rg-field:focus-within .rp-ico{color:var(--rp-primary)}
.rp-rg-select{
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 14px center;background-size:18px;
    padding-right:42px;cursor:pointer;
}

.rp-fund-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;min-height:106px}
.rp-fund-skel{grid-column:1/-1;display:flex;align-items:center;justify-content:center;color:var(--rp-g400);font-size:13px;font-family:'Montserrat',sans-serif;font-weight:600;background:var(--rp-g50);border-radius:14px;padding:24px;border:1.5px dashed var(--rp-g200)}
.rp-fund-error{grid-column:1/-1;background:#FEF2F2;border:1.5px solid #FECACA;color:#991B1B;padding:14px 18px;border-radius:12px;font-size:13px;font-family:'Montserrat',sans-serif;font-weight:600;text-align:center}
.rp-fund-nocole .rp-fic{background:linear-gradient(135deg,var(--rp-accent),var(--rp-accent-dark))!important;color:#fff}
.rp-fund-nocole.active{border-color:var(--rp-accent)!important;background:linear-gradient(180deg,#fff7ed 0%,#fff 100%)!important;box-shadow:0 0 0 4px rgba(248,152,46,.15),var(--rp-shadow-md)!important}
.rp-rg-note-success{background:#ECFDF5!important;border-color:#A7F3D0!important;color:#065F46!important}
.rp-rg-note-success svg{color:#10B981!important}
.rp-rg-note-success strong{color:#065F46!important}
.rp-fund{
    cursor:pointer;border:1.5px solid var(--rp-g300);border-radius:16px;padding:18px 8px;
    text-align:center;transition:all 250ms cubic-bezier(.16,1,.3,1);background:#fff;
}
.rp-fund:hover{border-color:var(--rp-primary);background:var(--rp-primary-bg);transform:translateY(-3px);box-shadow:var(--rp-shadow-md)}
.rp-fund.active{border-color:var(--rp-primary);background:linear-gradient(180deg,var(--rp-primary-bg) 0%,#fff 100%);box-shadow:0 0 0 4px rgba(37,99,235,.12),var(--rp-shadow-md)}
.rp-fund .rp-fic{
    width:38px;height:38px;border-radius:11px;background:var(--rp-g100);color:var(--rp-g500);
    display:inline-flex;align-items:center;justify-content:center;margin-bottom:8px;
    transition:all 200ms ease;
}
.rp-fund.active .rp-fic{background:linear-gradient(135deg,var(--rp-primary),var(--rp-primary-dark));color:#fff;box-shadow:0 6px 14px -2px rgba(37,99,235,.4)}
.rp-fund .rp-fic svg{width:18px;height:18px}
.rp-fund .rp-nm{font-family:'Montserrat',sans-serif;font-size:12px;font-weight:800;color:var(--rp-dark);display:block}
.rp-fund .rp-ct{font-size:10px;color:var(--rp-g500);margin-top:2px;display:block}

.rp-rg-note{
    background:linear-gradient(135deg,var(--rp-primary-bg) 0%,#fff 100%);
    border:1px solid #BFDBFE;border-left:4px solid var(--rp-primary);border-radius:12px;
    padding:14px 18px;display:flex;gap:12px;align-items:flex-start;
    font-size:13px;color:var(--rp-g700);margin-bottom:14px;
}
.rp-rg-note svg{flex-shrink:0;width:18px;height:18px;color:var(--rp-primary);margin-top:1px}
.rp-rg-note strong{color:var(--rp-primary-dark);font-family:'Montserrat',sans-serif;font-weight:700}
.rp-rg-note a{color:var(--rp-primary);font-weight:700;text-decoration:underline;text-underline-offset:2px;transition:color .15s ease}
.rp-rg-note a:hover{color:var(--rp-primary-dark);text-decoration-thickness:2px}

.rp-rg-options{display:flex;flex-direction:column;gap:14px;margin-top:24px;margin-bottom:24px}
.rp-rg-check{display:flex;align-items:flex-start;gap:12px;cursor:pointer}
.rp-rg-check .rp-box{
    flex-shrink:0;width:22px;height:22px;border-radius:7px;border:1.5px solid var(--rp-g300);background:#fff;
    display:flex;align-items:center;justify-content:center;transition:all 200ms ease;margin-top:1px;
}
.rp-rg-check .rp-box svg{width:14px;height:14px;color:#fff;opacity:0}
.rp-rg-check input{display:none}
.rp-rg-check input:checked + .rp-box{background:linear-gradient(135deg,var(--rp-primary),var(--rp-primary-dark));border-color:var(--rp-primary);box-shadow:0 4px 10px -2px rgba(37,99,235,.4)}
.rp-rg-check input:checked + .rp-box svg{opacity:1}
.rp-rg-check .rp-tx{font-size:13px;color:var(--rp-g700);line-height:1.5}
.rp-rg-check .rp-tx a{color:var(--rp-primary);font-weight:700}

.rp-switch-row{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:16px 20px;background:linear-gradient(135deg,var(--rp-sky-vlight) 0%,#fff 100%);
    border-radius:14px;border:1px solid var(--rp-primary-soft);
}
.rp-switch-row .rp-tx{font-size:13px;color:var(--rp-g700)}
.rp-switch-row .rp-tx strong{display:block;font-family:'Montserrat',sans-serif;font-weight:700;color:var(--rp-dark);margin-bottom:2px}
.rp-switch{
    width:48px;height:28px;border-radius:9999px;
    background:linear-gradient(135deg,var(--rp-primary),var(--rp-primary-dark));
    position:relative;cursor:pointer;flex-shrink:0;box-shadow:inset 0 2px 4px rgba(0,0,0,.1);
}
.rp-switch::after{
    content:'';position:absolute;top:3px;left:23px;width:22px;height:22px;border-radius:9999px;
    background:#fff;box-shadow:0 4px 10px rgba(0,0,0,.2);transition:left 200ms ease;
}

.rp-rg-submit{margin-top:8px;display:flex;flex-direction:column;gap:14px}
.rp-rg-submit .rp-btn{width:100%}
.rp-rg-login-link{text-align:center;font-size:13px;color:var(--rp-g500)}
.rp-rg-login-link a{color:var(--rp-primary);font-weight:700}

.rp-rg-side{
    background:linear-gradient(160deg,#0F172A 0%,#1e3a8a 60%,#2563EB 100%);
    border-radius:28px;padding:44px 36px;color:#fff;position:sticky;top:100px;overflow:hidden;
}
.rp-rg-side::before{
    content:'';position:absolute;inset:0;
    background-image:
        radial-gradient(ellipse 400px 300px at 80% 20%,rgba(96,165,250,.3) 0%,transparent 60%),
        radial-gradient(ellipse 400px 300px at 20% 80%,rgba(248,152,46,.18) 0%,transparent 60%);
}
.rp-rg-side > *{position:relative;z-index:1}
.rp-rg-side .rp-side-badge{
    display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);color:#fff;
    padding:7px 16px;border-radius:9999px;
    font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;
    text-transform:uppercase;letter-spacing:.8px;
    margin-bottom:22px;border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(8px);
}
.rp-rg-side .rp-side-badge svg{width:14px;height:14px}
.rp-rg-side h2{color:#fff;font-size:30px;font-weight:900;line-height:1.1;margin-bottom:18px;letter-spacing:-.025em}
.rp-rg-side p.rp-side-lede{color:#cbd5e1;font-size:14.5px;line-height:1.65;margin-bottom:32px}
.rp-rg-bens{display:flex;flex-direction:column;gap:20px;margin-bottom:32px}
.rp-rg-ben{display:flex;gap:14px;align-items:flex-start}
.rp-rg-ben .rp-ic{
    flex-shrink:0;width:44px;height:44px;border-radius:13px;
    background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;
    display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);
}
.rp-rg-ben .rp-ic svg{width:20px;height:20px}
.rp-rg-ben .rp-tx h4{font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;color:#fff;margin-bottom:4px}
.rp-rg-ben .rp-tx p{font-size:13px;color:#94a3b8;margin:0;line-height:1.55}
.rp-rg-side-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}
.rp-rg-side-stat .rp-snum{font-family:'Montserrat',sans-serif;font-weight:900;font-size:28px;color:#fff;line-height:1;letter-spacing:-.02em}
.rp-rg-side-stat .rp-slbl{font-size:11px;color:#94a3b8;margin-top:5px;text-transform:uppercase;letter-spacing:.5px;font-family:'Montserrat',sans-serif;font-weight:700}

@media(max-width:900px){
    .rp-rg-wrap{padding:24px 16px}
    .rp-rg-in{max-width:100%}
    .rp-rg-form{padding:32px 22px;border-radius:22px}
    .rp-rg-form h1{font-size:26px}
    .rp-rg-form > p.rp-sub{margin-bottom:28px;font-size:14px}
    .rp-rg-row{grid-template-columns:1fr}
    .rp-fund-grid{grid-template-columns:1fr 1fr;gap:8px}
    .rp-fund{padding:14px 6px}
}

/* ============================================================================
   CONTACT V2
   ============================================================================ */
.rp-ct-main{padding:56px 24px 80px;background:linear-gradient(180deg,#fff 0%,#FAFCFF 50%,#fff 100%)}
.rp-ct-main-in{
    max-width:1280px;margin:0 auto;
    display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:start;
}
.rp-ct-help h2{
    font-family:'Montserrat',sans-serif;font-size:54px;font-weight:900;line-height:1.05;
    color:var(--rp-dark);letter-spacing:-.035em;margin-bottom:22px;
}
.rp-ct-help-lede{font-size:17px;color:var(--rp-g500);line-height:1.65;margin-bottom:24px;max-width:520px}
.rp-ct-checks{display:flex;flex-direction:column;gap:18px;margin-bottom:32px}
.rp-ct-checks li{
    display:flex;align-items:center;gap:16px;
    font-family:'Montserrat',sans-serif;font-size:16px;font-weight:600;color:var(--rp-g700);
}
.rp-ct-check{
    width:32px;height:32px;border-radius:9999px;flex-shrink:0;
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-primary-dark) 100%);color:#fff;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 8px 16px -6px rgba(37,99,235,.4);
}
.rp-ct-check svg{width:16px;height:16px;stroke:#fff;fill:none}

.rp-ct-mini-cards{display:grid;grid-template-columns:1fr;gap:16px;margin-top:24px}
.rp-ct-mini{
    background:#fff;border:1px solid var(--rp-g200);border-radius:20px;padding:22px;
    text-decoration:none;color:inherit;
    transition:all 300ms cubic-bezier(.16,1,.3,1);
    box-shadow:var(--rp-shadow-sm);display:block;
}
.rp-ct-mini:hover{transform:translateY(-3px);box-shadow:var(--rp-shadow-float);border-color:var(--rp-primary-soft);text-decoration:none;color:inherit}
.rp-ct-mini-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.rp-ct-mini-ico{
    width:38px;height:38px;border-radius:11px;
    background:var(--rp-primary-bg);color:var(--rp-primary);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.rp-ct-mini-ico svg{width:20px;height:20px}
.rp-ct-mini h3{font-size:16px;font-weight:800;color:var(--rp-dark);margin:0;font-family:'Montserrat',sans-serif}
.rp-ct-mini p{font-size:13.5px;color:var(--rp-g500);line-height:1.55;margin:0 0 12px}
.rp-ct-mini-link{
    display:inline-flex;align-items:center;gap:6px;
    font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;color:var(--rp-primary);
}
.rp-ct-mini-link svg{width:14px;height:14px}

.rp-ct-form-wrap{position:sticky;top:96px}
.rp-ct-form-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:28px;padding:40px;
    box-shadow:0 30px 60px -20px rgba(15,23,42,.12),0 12px 24px -8px rgba(15,23,42,.06);
}
.rp-ct-form-card h3{font-family:'Montserrat',sans-serif;font-size:24px;font-weight:800;color:var(--rp-dark);margin:0 0 6px}
.rp-ct-form-lede{font-size:14px;color:var(--rp-g500);margin:0 0 24px}
.rp-ct-form-card form{display:block}
/* Resetea wrapper bootstrap del form de PS contact */
.rp-ct-form-card .form-group{
    margin-bottom:18px!important;display:block!important;
    flex-direction:column!important;align-items:stretch!important;
}
.rp-ct-form-card .form-group .col-md-3,
.rp-ct-form-card .form-group .col-md-6,
.rp-ct-form-card .form-group .col-md-9,
.rp-ct-form-card .form-group .col-md-12,
.rp-ct-form-card .form-group [class*='col-']{
    width:100%!important;max-width:100%!important;flex:0 0 100%!important;padding:0!important;
}
.rp-ct-form-card .form-control-label,
.rp-ct-form-card label{
    display:block!important;text-align:left!important;
    font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;color:var(--rp-g700);
    margin-bottom:8px;text-transform:uppercase;letter-spacing:.4px;
}
.rp-ct-form-card input[type=text],
.rp-ct-form-card input[type=email],
.rp-ct-form-card input[type=tel],
.rp-ct-form-card select,
.rp-ct-form-card .form-control,
.rp-ct-form-card textarea{
    width:100%!important;max-width:100%!important;display:block!important;
    border-radius:10px!important;border:1.5px solid var(--rp-g300)!important;background:#fff!important;
    padding:13px 14px!important;font-family:'DM Sans',sans-serif!important;font-size:14px!important;color:var(--rp-g700)!important;
    transition:all 200ms ease;outline:none!important;height:auto!important;line-height:1.5!important;
    box-shadow:none!important;
}
.rp-ct-form-card select.form-control,
.rp-ct-form-card select{
    appearance:none;-webkit-appearance:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>")!important;
    background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:18px 18px!important;
    padding-right:42px!important;cursor:pointer;
}
.rp-ct-form-card input:focus,
.rp-ct-form-card select:focus,
.rp-ct-form-card .form-control:focus,
.rp-ct-form-card textarea:focus{border-color:var(--rp-primary)!important;box-shadow:0 0 0 4px rgba(37,99,235,.12)!important}
.rp-ct-form-card textarea{min-height:140px;resize:vertical}
/* Oculta el campo de adjunto del form contact de PS */
.rp-ct-form-card .form-group:has(input[type=file]),
.rp-ct-form-card input[type=file],
.rp-ct-form-card .file-input-name,
.rp-ct-form-card .input-group-btn,
.rp-ct-form-card label[for=fileUpload],
.rp-ct-form-card label:has(+ * input[type=file]),
.rp-ct-form-card .input-group:has(input[type=file]){display:none!important;visibility:hidden!important;height:0!important;margin:0!important;padding:0!important}
/* Form actions / submit */
.rp-ct-form-card .form-footer{margin-top:8px}
.rp-ct-form-card button[type=submit],
.rp-ct-form-card .btn-primary{
    background:linear-gradient(135deg,var(--rp-dark) 0%,#1e293b 100%)!important;
    color:#fff!important;border:none!important;padding:16px 28px!important;width:100%!important;
    border-radius:14px!important;font-family:'Montserrat',sans-serif!important;
    font-weight:700!important;font-size:14px!important;cursor:pointer;letter-spacing:.3px;
    box-shadow:0 12px 24px -8px rgba(15,23,42,.4),inset 0 1px 0 rgba(255,255,255,.1)!important;
    transition:all 250ms cubic-bezier(.16,1,.3,1)!important;text-transform:none!important;
}
.rp-ct-form-card button[type=submit]:hover{transform:translateY(-2px);box-shadow:0 16px 32px -8px rgba(15,23,42,.5)!important}
/* Oculta el h3 "Contacte con nosotros" duplicado del formulario PS */
.rp-ct-form-card .form-fields > .form-group:first-child:has(h3){display:none!important}
.rp-ct-form-card .contact-form > form > section.form-fields > .form-group:first-child{display:none!important}
/* input[type=submit] styling (PS contact usa <input>, no <button>) */
.rp-ct-form-card input[type=submit]{
    background:linear-gradient(135deg,var(--rp-dark) 0%,#1e293b 100%)!important;
    color:#fff!important;border:none!important;padding:16px 28px!important;width:100%!important;
    border-radius:14px!important;font-family:'Montserrat',sans-serif!important;
    font-weight:700!important;font-size:14px!important;cursor:pointer;letter-spacing:.3px;
    box-shadow:0 12px 24px -8px rgba(15,23,42,.4),inset 0 1px 0 rgba(255,255,255,.1)!important;
    transition:all 250ms cubic-bezier(.16,1,.3,1)!important;text-transform:none!important;
}
.rp-ct-form-card input[type=submit]:hover{transform:translateY(-2px);box-shadow:0 16px 32px -8px rgba(15,23,42,.5)!important}
/* Oculta el honeypot inline style que PS inyecta */
.rp-ct-form-card .form-footer style{display:none}
/* Quitar el alert "no enviar attachments" */
.rp-ct-form-card .alert{font-size:13px;border-radius:10px;padding:12px 14px;margin-bottom:16px}
/* Tarjeta mini teléfono */
.rp-ct-mini.rp-cc-phone .rp-ct-mini-ico{background:linear-gradient(135deg,var(--rp-accent),var(--rp-accent-dark));box-shadow:0 8px 20px -6px rgba(248,152,46,.45)}

/* FAQ ACCORDION */
.rp-faq-section{padding:100px 24px;background:linear-gradient(180deg,#FAFCFF 0%,#F8FBFF 50%,#fff 100%)}
.rp-faq-in{max-width:880px;margin:0 auto}
.rp-faq-head{text-align:center;margin-bottom:48px}
.rp-faq-head .rp-eyebrow{display:inline-flex;margin-bottom:14px;padding:7px 16px;background:var(--rp-primary-bg);border-radius:9999px;border:1px solid var(--rp-primary-soft);font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;color:var(--rp-primary);text-transform:uppercase;letter-spacing:.7px}
.rp-faq-head h2{font-family:'Montserrat',sans-serif;font-size:46px;font-weight:900;color:var(--rp-dark);letter-spacing:-.025em;line-height:1.1;margin:0 0 14px}
.rp-faq-head p{font-size:17px;color:var(--rp-g500);max-width:560px;margin:0 auto;line-height:1.6}
.rp-faq-list{
    background:#fff;border:1px solid var(--rp-g200);border-radius:24px;
    box-shadow:0 30px 60px -20px rgba(15,23,42,.08),0 12px 24px -8px rgba(15,23,42,.04);
    overflow:hidden;
}
.rp-faq-item{border-bottom:1px dashed var(--rp-g200)}
.rp-faq-item:last-child{border-bottom:none}
.rp-faq-q{
    width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;
    padding:24px 32px;background:none;border:none;cursor:pointer;text-align:left;
    font-family:'Montserrat',sans-serif;font-size:17px;font-weight:700;color:var(--rp-dark);
    transition:all 200ms ease;
}
.rp-faq-q:hover{background:var(--rp-g50);color:var(--rp-primary)}
.rp-faq-q svg{width:20px;height:20px;flex-shrink:0;color:var(--rp-g500);transition:transform 300ms cubic-bezier(.16,1,.3,1)}
.rp-faq-item.open .rp-faq-q{color:var(--rp-primary);background:var(--rp-primary-bg)}
.rp-faq-item.open .rp-faq-q svg{transform:rotate(180deg);color:var(--rp-primary)}
.rp-faq-a{
    max-height:0;overflow:hidden;
    transition:max-height 400ms cubic-bezier(.16,1,.3,1),padding 300ms ease;
}
.rp-faq-item.open .rp-faq-a{max-height:500px;padding:0 32px 26px}
.rp-faq-a p{font-size:15px;color:var(--rp-g500);line-height:1.7;margin:0;max-width:680px}

/* MAP SECTION */
.rp-ct-map-section{padding:0 24px 100px;background:linear-gradient(180deg,#fff 0%,#F8FBFF 50%,#EFF6FF 100%)}
.rp-ct-map-shell{
    max-width:1280px;margin:0 auto;
    background:#fff;border:1px solid var(--rp-g200);border-radius:28px;
    box-shadow:0 30px 60px -20px rgba(15,23,42,.1),0 12px 24px -8px rgba(15,23,42,.05);
    overflow:hidden;
}
.rp-ct-map-head{
    display:flex;justify-content:space-between;align-items:center;gap:24px;
    padding:32px 40px;border-bottom:1px solid var(--rp-g200);
}
.rp-ct-map-head h2{font-family:'Montserrat',sans-serif;font-size:28px;font-weight:900;color:var(--rp-dark);letter-spacing:-.02em;line-height:1.1;margin:8px 0 6px}
.rp-ct-map-head p{font-size:14px;color:var(--rp-g500);margin:0}
.rp-ct-map-head .rp-eyebrow{display:inline-flex;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;color:var(--rp-primary);text-transform:uppercase;letter-spacing:.7px}
.rp-ct-map-head .rp-btn-secondary{background:var(--rp-primary-bg);color:var(--rp-primary);border:1.5px solid var(--rp-primary-soft);padding:0 24px;height:46px;border-radius:12px;display:inline-flex;align-items:center;gap:8px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:14px;text-decoration:none;flex-shrink:0;transition:all 250ms ease}
.rp-ct-map-head .rp-btn-secondary:hover{background:var(--rp-primary);color:#fff;border-color:var(--rp-primary);transform:translateY(-2px)}
.rp-ct-map-head .rp-btn-secondary svg{width:16px;height:16px}
.rp-ct-map-wrap{height:480px;width:100%;overflow:hidden;position:relative}
.rp-ct-map-wrap iframe{display:block;height:100%;width:100%;border:0}

@media(max-width:900px){
    .rp-ct-main{padding:36px 20px 56px}
    .rp-ct-main-in{grid-template-columns:1fr;gap:36px}
    .rp-ct-help h2{font-size:36px}
    .rp-ct-help-lede{font-size:15px;margin-bottom:20px}
    .rp-ct-checks{margin-bottom:24px}
    .rp-ct-mini-cards{grid-template-columns:1fr;gap:14px}
    .rp-ct-form-wrap{position:static}
    .rp-ct-form-card{padding:28px 22px;border-radius:22px}
    .rp-faq-section{padding:64px 20px}
    .rp-faq-head h2{font-size:30px}
    .rp-faq-head p{font-size:15px}
    .rp-faq-q{padding:20px 22px;font-size:15px;gap:14px}
    .rp-faq-item.open .rp-faq-a{padding:0 22px 22px}
    .rp-faq-a p{font-size:14px}
    .rp-ct-map-section{padding:0 20px 56px}
    .rp-ct-map-shell{border-radius:20px}
    .rp-ct-map-head{padding:24px 22px;flex-direction:column;align-items:flex-start;gap:18px}
    .rp-ct-map-head h2{font-size:22px}
    .rp-ct-map-wrap{height:340px}
}

/* ============================================================================
   ABOUT V2 (Polymer + Pangea hybrid)
   ============================================================================ */
/* ── SOBRE NOSOTROS — estética sky Rompoda ── */
.rp-about-hero{
    position:relative;padding:120px 24px 56px;margin-top:-72px;overflow:hidden;
    background:linear-gradient(180deg,#BAE0FF 0%,#DCEEFE 30%,#F0F9FF 65%,#fff 100%);
}
.rp-about-hero-bg{
    position:absolute;inset:0;pointer-events:none;
    background-image:
        radial-gradient(ellipse 55% 70% at 85% 15%,rgba(248,152,46,.16) 0%,transparent 60%),
        radial-gradient(ellipse 65% 75% at 8% 85%,rgba(37,99,235,.18) 0%,transparent 65%);
}
.rp-about-hero-bg::after{
    content:'';position:absolute;left:0;right:0;bottom:-1px;height:180px;
    background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.6) 50%,#fff 100%);pointer-events:none;
}
.rp-about-hero-in{
    position:relative;z-index:2;max-width:880px;margin:0 auto;text-align:center;padding-top:32px;
}
.rp-eyebrow-light{display:inline-flex;background:rgba(255,255,255,.7);backdrop-filter:blur(8px);color:var(--rp-dark);border-color:rgba(15,23,42,.08);margin-bottom:18px}
.rp-about-hero h1{font-family:'Montserrat',sans-serif;font-size:78px;font-weight:900;color:var(--rp-dark);letter-spacing:-.035em;line-height:1;margin:0 0 20px}
.rp-about-hero p{font-size:19px;color:var(--rp-g500);max-width:560px;margin:0 auto;line-height:1.65}

/* Principios — fondo azul suave con tarjetas */
.rp-about-principles{padding:56px 24px 80px;background:linear-gradient(180deg,#fff 0%,var(--rp-primary-bg) 40%,var(--rp-primary-bg) 60%,#fff 100%)}
.rp-about-principles-in{max-width:1100px;margin:0 auto}
.rp-about-principles h2{font-family:'Montserrat',sans-serif;font-size:48px;font-weight:900;color:var(--rp-dark);letter-spacing:-.025em;margin:0 0 48px;text-align:center}
.rp-principles-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.rp-principle{
    background:#fff;border:1px solid var(--rp-g200);border-radius:24px;padding:36px;
    box-shadow:var(--rp-shadow-sm);transition:all 300ms cubic-bezier(.16,1,.3,1);
}
.rp-principle:hover{transform:translateY(-4px);box-shadow:var(--rp-shadow-lg);border-color:var(--rp-primary-soft)}
.rp-principle h3{
    font-family:'Montserrat',sans-serif;font-size:20px;font-weight:800;color:var(--rp-dark);margin:0 0 12px;
    display:flex;align-items:center;gap:10px;
}
.rp-principle h3::before{
    content:'';width:8px;height:8px;border-radius:9999px;flex-shrink:0;
    background:linear-gradient(135deg,var(--rp-primary),var(--rp-secondary));
    box-shadow:0 0 0 4px rgba(37,99,235,.15);
}
.rp-principle p{font-size:15.5px;color:var(--rp-g500);line-height:1.7;margin:0}

/* Hecho en Mataró */
.rp-about-built{padding:100px 24px 120px;background:#fff}
.rp-about-built-in{
    max-width:1100px;margin:0 auto;
    display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center;
}
.rp-about-built-img{position:relative;border-radius:24px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(37,99,235,.25)}
.rp-about-built-img img{width:100%;height:auto;display:block}
.rp-about-built-cap{
    position:absolute;left:16px;bottom:16px;
    background:rgba(37,99,235,.85);backdrop-filter:blur(8px);color:#fff;
    font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;
    padding:8px 14px;border-radius:9999px;letter-spacing:.4px;
    display:inline-flex;align-items:center;gap:6px;
}
.rp-about-built-text h2{font-family:'Montserrat',sans-serif;font-size:42px;font-weight:900;color:var(--rp-dark);letter-spacing:-.025em;line-height:1.1;margin:0 0 20px}
.rp-about-built-text p{font-size:16px;color:var(--rp-g500);line-height:1.7;margin:0 0 16px}

/* (about-stats removed — now reuses .rp-stats from homepage) */

/* CTA — fondo blanco (Pau req 2026-05-03) */
.rp-about-cta{
    padding:100px 24px 120px;text-align:center;position:relative;overflow:hidden;
    background:#ffffff;
}
.rp-about-cta::before{display:none}
.rp-about-cta-in{max-width:680px;margin:0 auto;position:relative;z-index:1}
.rp-about-cta h2{font-family:'Montserrat',sans-serif;font-size:48px;font-weight:900;color:var(--rp-dark);letter-spacing:-.025em;line-height:1.1;margin:0 0 18px}
.rp-about-cta p{font-size:17px;color:var(--rp-g500);line-height:1.65;margin:0 0 32px;max-width:520px;margin-left:auto;margin-right:auto}
.rp-about-cta-btns{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.rp-about-cta-btns .rp-btn-secondary{background:#fff;color:var(--rp-dark);border:1.5px solid var(--rp-g200)}
.rp-about-cta-btns .rp-btn-secondary:hover{background:var(--rp-primary-bg);border-color:var(--rp-primary);color:var(--rp-primary)}

@media(max-width:900px){
    .rp-about-hero{padding:88px 20px 36px}
    .rp-about-hero-in{padding-top:16px}
    .rp-about-hero h1{font-size:48px}
    .rp-about-hero p{font-size:15px}
    .rp-about-principles{padding:36px 20px 56px}
    .rp-about-principles h2{font-size:32px;margin-bottom:32px}
    .rp-principles-grid{grid-template-columns:1fr;gap:16px}
    .rp-principle{padding:28px}
    .rp-about-built{padding:64px 20px}
    .rp-about-built-in{grid-template-columns:1fr;gap:32px}
    .rp-about-built-text h2{font-size:30px}
    .rp-about-cta{padding:64px 20px}
    .rp-about-cta h2{font-size:32px}
    .rp-about-cta p{font-size:15px}
}

/* ============================================================================
   404 PAGE (estilo Mayple)
   ============================================================================ */
/* Página 404 — layout limpio inspirado en Mayple con ilustración propia */
.rp-404{padding:80px 24px 120px;background:linear-gradient(180deg,#fff 0%,#F8FBFF 60%,#EFF6FF 100%);min-height:calc(100vh - 200px);display:flex;align-items:center}
.rp-404-in{
    max-width:1100px;margin:0 auto;width:100%;
    display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:center;
}
.rp-404-text h1{
    font-family:'Montserrat',sans-serif;font-size:120px;font-weight:900;
    letter-spacing:-.04em;line-height:.85;margin:0 0 20px;
    color:var(--rp-dark);
}
.rp-404-lede{
    font-family:'DM Sans',sans-serif;font-size:20px;font-weight:500;
    color:var(--rp-g500);line-height:1.5;margin:0 0 32px;max-width:400px;
}
.rp-404-art{display:flex;align-items:center;justify-content:center}
.rp-404-img{width:100%;max-width:480px;height:auto}

@media(max-width:900px){
    .rp-404{padding:56px 20px 80px;min-height:auto}
    .rp-404-in{grid-template-columns:1fr;gap:24px;text-align:center}
    .rp-404-text h1{font-size:80px}
    .rp-404-lede{font-size:17px;margin-left:auto;margin-right:auto}
    .rp-404-text .rp-btn{margin:0 auto}
    .rp-404-art{order:-1;max-width:320px;margin:0 auto}
}


/* ============================================================================
   ANNOUNCEMENT BAR — sticky top, mensajes rotando con fade+slide
   ============================================================================ */
.rp-anbar{
    background:linear-gradient(90deg,var(--rp-dark) 0%,#1e293b 100%);
    color:#fff;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:600;
    position:relative;z-index:1001;overflow:hidden;
}
.rp-anbar-in{
    max-width:1280px;margin:0 auto;padding:0 24px;
    display:flex;align-items:center;justify-content:center;position:relative;
}
.rp-anbar-track{
    position:relative;width:100%;height:40px;
    display:flex;align-items:center;justify-content:center;
}
.rp-anbar-msg{
    position:absolute;left:0;right:0;
    display:flex;align-items:center;justify-content:center;gap:10px;
    opacity:0;transform:translateY(14px);
    transition:opacity 850ms cubic-bezier(.22,.61,.36,1),transform 850ms cubic-bezier(.22,.61,.36,1);
    pointer-events:none;will-change:transform,opacity;
}
.rp-anbar-msg.is-active{opacity:1;transform:translateY(0);pointer-events:auto}
.rp-anbar-msg.is-leaving{opacity:0;transform:translateY(-14px)}
.rp-anbar-ico{display:inline-flex;color:var(--rp-accent)}
.rp-anbar-ico svg{width:16px;height:16px}
.rp-anbar a.rp-anbar-link,
a.rp-anbar-link{
    color:#fff!important;text-decoration:none!important;font-weight:800;
    background:#10B981;padding:3px 10px;border-radius:9999px;
    margin-left:4px;display:inline-flex;align-items:center;gap:4px;
    transition:background 200ms ease,transform 200ms ease;line-height:1;
}
.rp-anbar a.rp-anbar-link:hover,
a.rp-anbar-link:hover{
    background:#059669;color:#fff!important;text-decoration:none!important;transform:translateY(-1px);
}
@media(max-width:720px){
    .rp-anbar-in{padding:0 16px;font-size:12px}
    .rp-anbar-track{height:38px}
}

/* ── Announcement bar: delivery badge (pulsating) ── */
.rp-anbar-ico-pulse{
    position:relative;
}
.rp-anbar-ico-pulse::after{
    content:'';position:absolute;top:-2px;right:-2px;
    width:8px;height:8px;border-radius:9999px;
    background:#10B981;
    animation:rp-pulse 1.5s ease-in-out infinite;
    box-shadow:0 0 0 0 rgba(16,185,129,.6);
}
@keyframes rp-pulse{
    0%{box-shadow:0 0 0 0 rgba(16,185,129,.6);transform:scale(1)}
    50%{box-shadow:0 0 0 6px rgba(16,185,129,0);transform:scale(1.15)}
    100%{box-shadow:0 0 0 0 rgba(16,185,129,0);transform:scale(1)}
}
/* v4: rediseño batch informativo — noticia, pero no pegote */
.rp-anbar-delivery{
    display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;
}
.rp-anbar-delivery strong{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:10.5px;
    letter-spacing:.14em;color:rgba(255,255,255,.72);text-transform:uppercase;
}
.rp-anbar-delivery-date{
    font-family:'Montserrat',sans-serif;font-weight:800;font-size:13px;
    color:#fff;
    background:linear-gradient(90deg,#f8982e 0%,#ef7c0c 100%);
    padding:4px 14px;border-radius:9999px;
    letter-spacing:.04em;
    box-shadow:0 2px 6px rgba(248,152,46,.35);
    line-height:1;
}
.rp-anbar-delivery-fund{
    font-family:'Montserrat',sans-serif;font-size:10px;font-weight:700;
    color:rgba(255,255,255,.85);
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.18);
    padding:3px 10px;border-radius:9999px;letter-spacing:.08em;text-transform:uppercase;
}
@media(max-width:720px){
    .rp-anbar-delivery{gap:8px}
    .rp-anbar-delivery strong{font-size:10px;letter-spacing:.1em}
    .rp-anbar-delivery-date{font-size:12px;padding:3px 10px}
    .rp-anbar-delivery-fund{display:none}
}

/* Login as bar (visible cuando un empleado entra como cliente) */
.rp-loginasbar{
    background:#FEF3C7;border-bottom:1px solid #FDE68A;color:#92400E;
    font-family:'Montserrat',sans-serif;font-size:13px;font-weight:600;
    padding:10px 24px;text-align:center;position:relative;z-index:1001;
}
.rp-loginasbar a{color:#92400E;text-decoration:underline;margin-left:8px;font-weight:700}

/* ============================================================================
   MEGA MENU — desktop hover, mobile = drawer accordions
   ============================================================================ */
.rp-mega-nav{display:flex;align-items:center;gap:4px}
.rp-mega-item{position:static}
.rp-mega-trigger{
    background:none;border:none;cursor:pointer;
    display:inline-flex;align-items:center;gap:6px;
    padding:10px 14px;border-radius:10px;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;color:var(--rp-g700);
    transition:background-color 150ms ease,color 150ms ease;
}
.rp-mega-trigger:hover{background:var(--rp-g50);color:var(--rp-dark)}
.rp-mega-item:hover .rp-mega-trigger,
.rp-mega-item.is-open .rp-mega-trigger,
.rp-mega-item:focus-within .rp-mega-trigger{color:var(--rp-primary);background:var(--rp-primary-bg)}
.rp-mega-arrow{width:14px;height:14px;transition:transform 250ms ease}
.rp-mega-item:hover .rp-mega-arrow,
.rp-mega-item.is-open .rp-mega-arrow{transform:rotate(180deg)}

.rp-mega-panel{
    position:absolute;left:0;right:0;top:100%;
    background:#fff;border-bottom:1px solid var(--rp-g200);border-radius:0 0 18px 18px;
    box-shadow:0 24px 60px -12px rgba(15,15,30,.20),0 8px 18px -6px rgba(15,15,30,.08);
    opacity:0;visibility:hidden;transform:translateY(-8px);
    transition:opacity 220ms ease,transform 220ms cubic-bezier(.16,1,.3,1),visibility 220ms;
    z-index:999;pointer-events:none;overflow:hidden;
}
.rp-mega-item:hover .rp-mega-panel,
.rp-mega-item.is-open .rp-mega-panel,
.rp-mega-item:focus-within .rp-mega-panel{
    opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;
}

/* ============================================================================
   MEGA MENU OVERLAY v3 — backdrop oscuro detrás del panel al abrir dropdown
   Solo desktop ≥1081px. CSS-only via :has() (Chrome 105+, Safari 15.4+, FF 121+).
   ============================================================================ */
.rp-mega-overlay{
    position:fixed;left:0;right:0;top:80px;bottom:0;
    background:rgba(15,15,30,.20);
    opacity:0;pointer-events:none;
    transition:opacity 220ms ease;
    z-index:90;
    display:none;
}
@media(min-width:1081px){
    .rp-mega-overlay{display:block}
    .rp-hdr:has(.rp-mega-item:hover) ~ .rp-mega-overlay,
    .rp-hdr:has(.rp-mega-item.is-open) ~ .rp-mega-overlay,
    .rp-hdr:has(.rp-mega-item:focus-within) ~ .rp-mega-overlay{
        opacity:1;
    }
}
.rp-mega-cols{
    max-width:1280px;margin:0 auto;
    display:grid;grid-template-columns:1fr 1fr 1fr 1.2fr;gap:32px;
    padding:24px 28px 28px;
}
.rp-mega-col{display:flex;flex-direction:column;gap:8px}
.rp-mega-eyebrow{
    font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;
    color:var(--rp-g400);text-transform:uppercase;letter-spacing:.7px;margin-bottom:8px;
}
.rp-mega-link-feat{
    display:flex;gap:12px;align-items:flex-start;
    padding:12px;border-radius:12px;text-decoration:none;color:inherit;
    background:#fff;border:1px solid var(--rp-g200);
    transition:background-color 150ms ease,border-color 150ms ease,box-shadow 200ms ease;
    margin-bottom:6px;
}
.rp-mega-link-feat:hover{background:var(--rp-primary-bg);border-color:var(--rp-primary-soft);box-shadow:var(--rp-shadow-sm,0 1px 3px rgba(15,23,42,.06));text-decoration:none;color:inherit}
.rp-mega-ico{
    width:36px;height:36px;border-radius:10px;flex-shrink:0;
    background:var(--rp-primary-bg);color:var(--rp-primary);
    display:flex;align-items:center;justify-content:center;
    transition:background-color 150ms ease,color 150ms ease;
}
.rp-mega-link-feat:hover .rp-mega-ico{background:var(--rp-primary);color:#fff}
.rp-mega-ico svg{width:20px;height:20px}
.rp-mega-link-feat strong{display:block;font-family:'Montserrat',sans-serif;font-size:15px;font-weight:800;color:var(--rp-dark);margin-bottom:2px}
.rp-mega-link-feat span{display:block;font-size:13px;color:var(--rp-g500);line-height:1.4}
.rp-mega-sublink{
    display:block;padding:8px 12px;border-radius:8px;
    font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;color:var(--rp-g700);
    text-decoration:none;transition:background-color 150ms ease,color 150ms ease;margin-left:-12px;
}
.rp-mega-sublink:hover{background:var(--rp-g50);color:var(--rp-dark);text-decoration:none}
.rp-mega-sublink:focus-visible{outline:none;background:var(--rp-primary-bg);color:var(--rp-primary)}

/* Promo card a la derecha */
.rp-mega-feature{align-self:stretch}
.rp-mega-promo{
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-primary-dark) 100%);
    color:#fff;border-radius:14px;padding:18px;height:100%;
    display:flex;flex-direction:column;justify-content:center;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.1);
}
.rp-mega-promo-eyebrow{
    font-family:'Montserrat',sans-serif;font-size:10px;font-weight:800;
    color:rgba(255,255,255,.7);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px;
}
.rp-mega-promo h4{font-family:'Montserrat',sans-serif;font-size:17px;font-weight:800;color:#fff;margin:0 0 6px;line-height:1.15;letter-spacing:-.015em}
.rp-mega-promo p{font-size:12px;color:rgba(255,255,255,.85);line-height:1.5;margin:0 0 12px}
.rp-mega-promo-cta{
    display:inline-flex;align-items:center;gap:6px;align-self:flex-start;
    padding:8px 14px;border-radius:9999px;
    background:rgba(255,255,255,.18);backdrop-filter:blur(8px);color:#fff;
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;
    text-decoration:none;border:1px solid rgba(255,255,255,.25);transition:all 200ms ease;
}
.rp-mega-promo-cta:hover{background:rgba(255,255,255,.28);transform:translateY(-1px);text-decoration:none;color:#fff}
.rp-mega-promo-soft{background:linear-gradient(135deg,#FCE7F3 0%,#FFF7ED 50%,#DBEAFE 100%);color:var(--rp-dark)}
.rp-mega-promo-soft h4{color:var(--rp-dark)}
.rp-mega-promo-soft p{color:var(--rp-g500)}
.rp-mega-promo-soft .rp-mega-promo-eyebrow{color:var(--rp-primary)}
.rp-mega-promo-soft .rp-mega-promo-cta{background:var(--rp-dark);color:#fff;border-color:var(--rp-dark)}
.rp-mega-promo-soft .rp-mega-promo-cta:hover{background:#1e293b}
.rp-mega-promo-dark{background:linear-gradient(135deg,#0F172A 0%,#1e293b 100%)}

/* ============================================================================
   MEGA MENU v9.5 — refactor estructural
   Tienda: hero card "Mi Colegio" + 3 placeholder cats + promo accent
   Recursos: 2 sub-bloques (Para tu pedido / Conoce Rompoda) + promo soft
   Contacto: hero card "Trabaja con nosotros" + 3 enlaces + promo soft
   Mobile-first defaults; desktop overrides via media query.
   ============================================================================ */

/* Grid override por dropdown — desktop only (md+)
   v9.6: gaps reducidos 32→20 para que el panel sea más compacto. */
@media(min-width:1081px){
    .rp-mega-cols-tienda{grid-template-columns:1.1fr 1.4fr 1fr;gap:20px}
    .rp-mega-cols-recursos{grid-template-columns:1.6fr 1fr 1.1fr;gap:20px}
    .rp-mega-cols-contacto{grid-template-columns:1.1fr 1fr 1fr;gap:20px}
}

/* Hero card grande (Mi Colegio / Trabaja con nosotros)
   v9.6 (2026-04-30): reducidos paddings, iconos y tipografías para que
   el dropdown ocupe menos altura. Mantenemos proporciones y look premium. */
.rp-mega-col-hero{align-self:stretch}
.rp-mega-hero{
    display:flex;flex-direction:column;align-items:flex-start;gap:8px;
    padding:18px;border-radius:12px;height:100%;
    background:var(--rp-primary-bg);
    border:1px solid var(--rp-primary-soft);
    color:var(--rp-dark);text-decoration:none;
    transition:background-color 200ms ease,border-color 200ms ease,box-shadow 250ms ease;
    position:relative;overflow:hidden;
}
.rp-mega-hero:hover{
    background:#fff;
    box-shadow:var(--rp-shadow-md,0 4px 6px rgba(15,23,42,.07));
    border-color:var(--rp-primary);
    text-decoration:none;color:var(--rp-dark);
}
.rp-mega-hero-badge{
    display:inline-block;
    font-family:'Montserrat',sans-serif;font-size:10px;font-weight:800;
    color:var(--rp-primary);text-transform:uppercase;letter-spacing:.5px;
    background:#fff;padding:3px 9px;border-radius:9999px;
    border:1px solid var(--rp-primary-soft);
}
.rp-mega-hero-ico{
    width:40px;height:40px;border-radius:10px;
    background:var(--rp-primary);color:#fff;
    display:flex;align-items:center;justify-content:center;
    transition:background-color 200ms ease;
    box-shadow:0 8px 16px -4px rgba(37,99,235,.4);
    margin-top:4px;
}
.rp-mega-hero-ico svg{width:20px;height:20px}
.rp-mega-hero-title{
    font-family:'Montserrat',sans-serif;font-size:17px;font-weight:800;
    color:var(--rp-dark);line-height:1.2;letter-spacing:-.015em;margin:0;
}
.rp-mega-hero-desc{
    font-family:'DM Sans',sans-serif;font-size:13px;color:var(--rp-g500);
    line-height:1.45;
}
.rp-mega-hero-cta{
    display:inline-flex;align-items:center;gap:6px;
    margin-top:auto;padding-top:4px;
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;
    color:var(--rp-primary);
}

/* Variante accent (Trabaja con nosotros) */
.rp-mega-hero-accent{
    background:linear-gradient(135deg,#FFF7ED 0%,#fff 55%,#FCE7F3 100%);
    border-color:#FED7AA;
}
.rp-mega-hero-accent .rp-mega-hero-badge{
    color:var(--rp-accent);background:#fff;border-color:#FED7AA;
}
.rp-mega-hero-accent .rp-mega-hero-ico{
    background:linear-gradient(135deg,var(--rp-accent),var(--rp-accent-dark));
    box-shadow:0 10px 20px -6px rgba(248,152,46,.5);
}
.rp-mega-hero-accent:hover{
    border-color:var(--rp-accent);
    box-shadow:0 12px 24px -8px rgba(248,152,46,.28),0 4px 6px -2px rgba(15,23,42,.06);
}
.rp-mega-hero-accent .rp-mega-hero-cta{color:var(--rp-accent-dark)}

/* Grid de categorías placeholder (Tienda) */
.rp-mega-col-cats{display:flex;flex-direction:column;gap:10px}
.rp-mega-catgrid{
    display:grid;grid-template-columns:1fr;gap:8px;
}
@media(min-width:1081px){
    .rp-mega-catgrid{grid-template-columns:1fr 1fr;gap:10px}
}
.rp-mega-cat{
    display:flex;align-items:center;gap:10px;
    padding:9px 12px;border-radius:10px;
    background:#fff;border:1px solid var(--rp-g200);
    text-decoration:none;color:var(--rp-dark);
    transition:background-color 150ms ease,border-color 150ms ease;
    cursor:default;
}
.rp-mega-cat:hover{
    border-color:var(--rp-primary-soft);
    background:var(--rp-g50);
    text-decoration:none;color:var(--rp-dark);
}
.rp-mega-cat-ico{
    width:32px;height:32px;border-radius:9px;flex-shrink:0;
    background:var(--rp-primary-bg);color:var(--rp-primary);
    display:flex;align-items:center;justify-content:center;
}
.rp-mega-cat-ico svg{width:17px;height:17px}
.rp-mega-cat-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.rp-mega-cat-text strong{
    font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;color:var(--rp-dark);line-height:1.2;
}
.rp-mega-cat-soon{
    display:inline-block;width:fit-content;
    font-family:'DM Sans',sans-serif;font-size:10px;font-weight:500;
    color:var(--rp-g500);background:var(--rp-g100);
    padding:1px 7px;border-radius:9999px;
}

/* Promo accent (Tienda — Curso 26-27) */
.rp-mega-promo-accent{
    background:linear-gradient(135deg,var(--rp-accent) 0%,var(--rp-accent-dark) 100%);
    color:#fff;
}
.rp-mega-promo-accent h4,
.rp-mega-promo-accent p{color:#fff}
.rp-mega-promo-accent p{color:rgba(255,255,255,.9)}
.rp-mega-promo-accent .rp-mega-promo-eyebrow{color:rgba(255,255,255,.85)}

/* Pau req 2026-04-30: cards aún demasiado grandes en TODOS los dropdowns
   tras la primera reducción. Segundo nivel de compactado global aplicado a
   .rp-mega-hero, .rp-mega-cat, y todas las variantes .rp-mega-promo-*. */
.rp-mega-cols-tienda,
.rp-mega-cols-recursos,
.rp-mega-cols-contacto{gap:14px}
.rp-mega-hero{
    padding:12px;gap:5px;border-radius:12px;
}
.rp-mega-hero-badge{
    font-size:9px;padding:2px 7px;
}
.rp-mega-hero-ico{
    width:30px;height:30px;border-radius:9px;margin-top:2px;
}
.rp-mega-hero-ico svg{width:16px;height:16px}
.rp-mega-hero-title{font-size:14px}
.rp-mega-hero-desc{font-size:11px;line-height:1.4}
.rp-mega-hero-cta{font-size:11px;padding-top:2px}
.rp-mega-cat{
    padding:6px 9px;border-radius:8px;gap:8px;
}
.rp-mega-cat-ico{
    width:24px;height:24px;border-radius:7px;
}
.rp-mega-cat-ico svg{width:13px;height:13px}
.rp-mega-cat-text strong{font-size:11px}
.rp-mega-cat-soon{font-size:9px;padding:0 6px}
.rp-mega-catgrid{gap:6px}
/* Promo cards (todas las variantes: accent, soft, dark) */
.rp-mega-promo{
    padding:14px;border-radius:12px;
}
.rp-mega-promo h4{font-size:14px;margin-bottom:4px}
.rp-mega-promo p{font-size:11px;line-height:1.4;margin-bottom:8px}
.rp-mega-promo-cta{font-size:11px;padding:6px 10px;border-radius:8px}
.rp-mega-promo-iconwrap{
    width:28px;height:28px;border-radius:8px;margin-bottom:6px;
}
.rp-mega-promo-iconwrap svg{width:14px;height:14px}
.rp-mega-promo-eyebrow{font-size:9px;margin-bottom:2px}

/* Icono de cabecera dentro de las promos */
.rp-mega-promo-iconwrap{
    width:36px;height:36px;border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.2);color:#fff;
    margin-bottom:10px;
}
.rp-mega-promo-iconwrap svg{width:18px;height:18px}
.rp-mega-promo-iconwrap-soft{
    background:#fff;color:var(--rp-primary);
    box-shadow:0 4px 8px rgba(15,23,42,.06);
}

/* Sublinks con icono (Contacto)
   v9.6 (2026-04-30): refresh estética. Card sutil con borde, icono
   chip pequeño, hover con translateY + border-color cambio (sin shadow). */
.rp-mega-sublink-icon{
    display:flex;align-items:center;gap:11px;
    padding:10px 12px;border-radius:10px;
    border:1px solid transparent;
    background:transparent;
    margin-left:0;
    font-size:13px;font-weight:500;
    transition:all 180ms ease;
}
.rp-mega-sublink-icon:hover{
    background:var(--rp-g50);
    border-color:var(--rp-primary-soft);
    color:var(--rp-primary);
    text-decoration:none;
}
.rp-mega-sublink-icon-chip{
    width:30px;height:30px;border-radius:8px;flex-shrink:0;
    background:var(--rp-primary-bg);color:var(--rp-primary);
    display:flex;align-items:center;justify-content:center;
    transition:all 180ms ease;
}
.rp-mega-sublink-icon-chip svg{width:15px;height:15px;color:currentColor;stroke-width:1.8}
.rp-mega-sublink-icon:hover .rp-mega-sublink-icon-chip{
    background:var(--rp-primary);color:#fff;
}
.rp-mega-sublink-icon-text{
    display:flex;flex-direction:column;gap:1px;line-height:1.25;
}
.rp-mega-sublink-icon-text strong{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;color:var(--rp-dark);
}
.rp-mega-sublink-icon:hover .rp-mega-sublink-icon-text strong{color:var(--rp-primary)}
.rp-mega-sublink-icon-text small{
    font-family:'DM Sans',sans-serif;font-weight:400;font-size:11.5px;color:var(--rp-g500);
}

/* Recursos > "Para tu pedido": 2 columnas en desktop (6 enlaces).
   v9.6: distribución 3+3 en grid para que la columna no quede tan alta. */
.rp-mega-sublinks-grid{display:flex;flex-direction:column;gap:0}
@media(min-width:1081px){
    .rp-mega-sublinks-grid{
        display:grid;grid-template-columns:1fr 1fr;column-gap:8px;row-gap:0;
    }
}

/* Sublink con texto pequeño debajo (ej. "by Sayroh" en Deportivo) */
.rp-mega-sublink-stack{
    display:flex;flex-direction:column;align-items:flex-start;gap:0;
    line-height:1.2;
}
.rp-mega-sublink-by{
    font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;
    color:var(--rp-g400);font-style:italic;
}

/* Drawer extras (mobile mega-menu items) */
.rp-drawer-soon{
    display:inline-block;margin-left:6px;
    font-family:'DM Sans',sans-serif;font-size:10px;font-weight:600;
    color:var(--rp-g500);background:var(--rp-g100);
    padding:1px 6px;border-radius:9999px;
    text-transform:none;
    vertical-align:middle;
}
.rp-drawer-by{
    display:inline-block;margin-left:6px;
    font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;
    color:var(--rp-g400);font-style:italic;
}
.rp-drawer-subhead{
    display:block;
    padding:10px 16px 4px;
    font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;
    color:var(--rp-g400);text-transform:uppercase;letter-spacing:.6px;
}

.rp-nav-link{
    padding:10px 16px;border-radius:10px;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;color:var(--rp-g700);
    text-decoration:none;transition:all 200ms ease;
}
.rp-nav-link:hover{color:var(--rp-primary);background:var(--rp-primary-bg);text-decoration:none}

@media(max-width:1080px){
    .rp-mega-nav{display:none}
}

/* Drawer accordions (mobile) */
.rp-drawer-acc{margin:4px 0;border-radius:10px;overflow:hidden}
.rp-drawer-acc summary{
    list-style:none;cursor:pointer;
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 16px;border-radius:10px;
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;color:var(--rp-dark);
    background:var(--rp-g50);
}
.rp-drawer-acc summary::-webkit-details-marker{display:none}
.rp-drawer-acc summary svg{width:16px;height:16px;color:var(--rp-g400);transition:transform 250ms ease}
.rp-drawer-acc[open] summary{background:var(--rp-primary-bg);color:var(--rp-primary)}
.rp-drawer-acc[open] summary svg{transform:rotate(180deg);color:var(--rp-primary)}
.rp-drawer-acc a{
    display:block;padding:10px 16px 10px 32px;
    font-family:'DM Sans',sans-serif;font-size:14px;color:var(--rp-g500);text-decoration:none;
}
.rp-drawer-acc a:hover{color:var(--rp-primary);background:var(--rp-g50)}

/* ============================================================================
   FOOTER REWORK — más denso, 5 columnas
   ============================================================================ */
.rp-ft{background:linear-gradient(180deg,#0F172A 0%,#1e293b 100%);color:#cbd5e1;padding:80px 24px 40px}
.rp-ft-in{max-width:1280px;margin:0 auto}
.rp-ft-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr;gap:48px;padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.08)}
.rp-ft-brand .rp-logo-img{height:36px;margin-bottom:18px}
.rp-ft-claim{font-size:14px;color:#94a3b8;line-height:1.65;margin:0 0 22px;max-width:340px}
.rp-ft-trust{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;font-size:13px;color:#cbd5e1}
.rp-ft-trust strong{color:#fff;font-family:'Montserrat',sans-serif;font-weight:800}
.rp-ft-stars{display:inline-flex;color:#fbbf24}
.rp-ft-stars svg{width:14px;height:14px;fill:currentColor}
.rp-ft-social{display:flex;gap:10px;margin-top:8px}
.rp-ft-social a{
    width:38px;height:38px;border-radius:10px;
    background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#cbd5e1;
    display:flex;align-items:center;justify-content:center;transition:all 200ms ease;
}
.rp-ft-social a:hover{background:var(--rp-primary);border-color:var(--rp-primary);color:#fff;transform:translateY(-2px)}
.rp-ft-social svg{width:18px;height:18px}
.rp-ft-col h4{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:800;color:#fff;margin:0 0 18px;text-transform:uppercase;letter-spacing:.6px}
.rp-ft-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.rp-ft-col a{font-size:14px;color:#94a3b8;text-decoration:none;transition:color 150ms ease}
.rp-ft-col a:hover{color:#fff}
.rp-ft-col-contact address{font-style:normal;font-size:14px;color:#94a3b8;line-height:1.6;margin:0 0 14px}
.rp-ft-phone,.rp-ft-mail{display:flex;align-items:center;gap:10px;font-size:14px;color:#94a3b8;margin:0 0 8px}
.rp-ft-phone svg,.rp-ft-mail svg{width:16px;height:16px;color:var(--rp-primary-light);flex-shrink:0}
.rp-ft-phone a,.rp-ft-mail a{color:#94a3b8;text-decoration:none}
.rp-ft-phone a:hover,.rp-ft-mail a:hover{color:#fff}

.rp-ft-bot{padding-top:32px;display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:13px;color:#64748b;flex-wrap:wrap}
.rp-ft-bot p{margin:0}
.rp-ft-legal{display:flex;gap:24px}
.rp-ft-legal a{color:#64748b;text-decoration:none}
.rp-ft-legal a:hover{color:#cbd5e1}

@media(max-width:1080px){
    .rp-ft-grid{grid-template-columns:1fr 1fr;gap:36px}
    .rp-ft-brand{grid-column:1/-1}
}
@media(max-width:600px){
    .rp-ft{padding:56px 20px 32px}
    .rp-ft-grid{grid-template-columns:1fr;gap:32px;padding-bottom:36px}
    .rp-ft-bot{flex-direction:column;align-items:flex-start;gap:14px}
    .rp-ct-mini-cards{grid-template-columns:1fr;gap:12px}
}

/* ============================================================================
   CART DRAWER (slide-in derecha)
   ============================================================================ */
.rp-cart-drawer{position:fixed;inset:0;z-index:1100;visibility:hidden;pointer-events:none}
.rp-cart-drawer.is-open{visibility:visible;pointer-events:auto}
.rp-cart-drawer-overlay{
    position:absolute;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(4px);
    opacity:0;transition:opacity 350ms ease;
}
.rp-cart-drawer.is-open .rp-cart-drawer-overlay{opacity:1}
.rp-cart-drawer-panel{
    position:absolute;top:0;right:0;height:100%;width:480px;max-width:100vw;
    background:#fff;display:flex;flex-direction:column;
    transform:translateX(100%);transition:transform 400ms cubic-bezier(.16,1,.3,1);
    box-shadow:-30px 0 60px -15px rgba(15,23,42,.2);
}
.rp-cart-drawer.is-open .rp-cart-drawer-panel{transform:translateX(0)}
.rp-cart-drawer-head{
    padding:20px 28px 0;
    display:flex;justify-content:space-between;align-items:center;
}
.rp-cart-drawer-head h3{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:800;color:var(--rp-dark);margin:0;display:flex;align-items:center;gap:10px}
.rp-cart-drawer-count{
    background:var(--rp-primary);color:#fff;font-size:12px;font-weight:800;
    border-radius:9999px;padding:3px 10px;min-width:24px;text-align:center;
}
.rp-cart-drawer-close{
    width:38px;height:38px;border-radius:9999px;border:none;background:var(--rp-g50);
    cursor:pointer;color:var(--rp-g500);display:flex;align-items:center;justify-content:center;
    transition:all 200ms ease;
}
.rp-cart-drawer-close:hover{background:var(--rp-g100);color:var(--rp-dark)}
.rp-cart-drawer-close svg{width:18px;height:18px}

.rp-cart-drawer-body{flex:1;overflow-y:auto;padding:16px 28px}
.rp-cart-line{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--rp-g100)}
.rp-cart-line:last-child{border-bottom:none}
.rp-cart-line-img{width:80px;height:80px;flex-shrink:0;border-radius:12px;overflow:hidden;border:1px solid var(--rp-g200);background:var(--rp-g50)}
.rp-cart-line-img img{width:100%;height:100%;object-fit:cover}
.rp-cart-line-info{flex:1;display:flex;flex-direction:column;gap:6px}
.rp-cart-line-name{font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;color:var(--rp-dark);text-decoration:none;line-height:1.3;transition:color 150ms ease}
.rp-cart-line-name:hover{color:var(--rp-accent,#f8982e)}
.rp-cart-line-attr{display:flex;gap:6px;font-size:12px;color:var(--rp-g500)}
.rp-cart-line-attr span:not(:last-child)::after{content:" · "}
/* Pau req 2026-05-03 (PDF1): personalizaciones del producto bajo
   los atributos en el cart drawer. Cada item es "Label: valor". */
.rp-cart-line-pers{
  display:flex;flex-direction:column;gap:2px;
  margin-top:4px;font-size:11.5px;color:var(--rp-g500);
  font-family:'DM Sans',sans-serif;line-height:1.3;
}
.rp-cart-line-pers-item strong{
  font-weight:600;color:var(--rp-g700);font-family:'Montserrat',sans-serif;
  font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-right:4px;
}
.rp-cart-line-bot{display:flex;justify-content:space-between;align-items:center;margin-top:auto}
.rp-cart-line-qty{font-size:13px;color:var(--rp-g500);font-weight:600}
.rp-cart-line-price{font-family:'Montserrat',sans-serif;font-size:15px;font-weight:800;color:var(--rp-dark)}

.rp-cart-drawer-empty{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:60px 20px;text-align:center;color:var(--rp-g500);
}
.rp-cart-drawer-empty svg{width:64px;height:64px;color:var(--rp-g300);margin-bottom:18px}
.rp-cart-drawer-empty h4{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:800;color:var(--rp-dark);margin:0 0 8px}
.rp-cart-drawer-empty p{font-size:14px;margin:0 0 20px}

.rp-cart-drawer-foot{
    padding:20px 28px 28px;border-top:1px solid var(--rp-g200);background:var(--rp-g50);
}
.rp-cart-drawer-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px}
.rp-cart-drawer-total span{font-family:'Montserrat',sans-serif;font-size:14px;color:var(--rp-g500);font-weight:600}
.rp-cart-drawer-total strong{font-family:'Montserrat',sans-serif;font-size:24px;color:var(--rp-dark);font-weight:900}
.rp-cart-drawer-actions{display:flex;flex-direction:column;gap:10px}
.rp-cart-drawer-actions .rp-btn{justify-content:center;width:100%}

/* Pau req 2026-05-03: botón "Continuar comprando" — naranja accent Rompoda
   sobre blanco, texto blanco. Hover a accent-dark. Misma forma/tamaño que
   el botón primary de checkout. Mobile First (mismo estilo en todos los
   viewports porque el cart drawer ya es full-width responsive). */
.rp-btn-continue-shopping{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    background:var(--rp-accent,#f8982e);
    color:#fff;
    border:none;
    border-radius:12px;
    padding:14px 22px;
    font-family:'Montserrat',sans-serif;
    font-weight:600;
    font-size:14px;
    line-height:1.2;
    cursor:pointer;
    transition:all .2s ease;
    text-decoration:none;
    box-shadow:0 4px 12px -2px rgba(248,152,46,.4);
}
.rp-btn-continue-shopping:hover,
.rp-btn-continue-shopping:focus{
    background:var(--rp-accent-dark,#e07d10);
    color:#fff;
    transform:translateY(-1px);
    box-shadow:0 8px 18px -2px rgba(248,152,46,.5);
    text-decoration:none;
}
.rp-btn-continue-shopping:active{transform:translateY(0)}
.rp-btn-continue-shopping svg{width:16px;height:16px;flex-shrink:0}

/* ── Free shipping progress bar ── */
.rp-cart-shipping-bar{padding:10px 28px 16px;border-bottom:1px solid var(--rp-g200);background:transparent}
.rp-cart-shipping-text{font-family:'DM Sans',sans-serif;font-size:13px;color:var(--rp-g700);margin-bottom:8px;line-height:1.3}
.rp-cart-shipping-text strong{font-weight:700;color:var(--rp-dark)}
.rp-cart-shipping-text.is-free{color:var(--rp-success)}
.rp-cart-shipping-text.is-free strong{color:var(--rp-success)}
.rp-cart-shipping-track{height:4px;border-radius:9999px;background:var(--rp-g200);overflow:hidden}
.rp-cart-shipping-fill{height:100%;border-radius:9999px;background:var(--rp-accent);transition:width 400ms ease}
.rp-cart-shipping-fill.is-full{background:var(--rp-success)}

/* ── Delete button per cart line ── */
.rp-cart-line-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.rp-cart-line-del{
    flex-shrink:0;width:26px;height:26px;border-radius:9999px;border:none;
    background:transparent;cursor:pointer;color:var(--rp-g400);
    display:flex;align-items:center;justify-content:center;
    transition:all 150ms ease;padding:0;
}
.rp-cart-line-del:hover{background:var(--rp-error);color:#fff}
.rp-cart-line-del svg{width:14px;height:14px}

/* ── Undo toast ── */
.rp-cart-undo-toast{
    display:none;padding:16px 28px;background:#FEF3C7;border-bottom:1px solid #FDE68A;
    align-items:center;justify-content:space-between;gap:12px;
    font-family:'DM Sans',sans-serif;font-size:15px;color:#92400E;
    animation:rpUndoSlideIn 250ms ease;
}
.rp-cart-undo-toast.is-visible{display:flex}
.rp-cart-undo-btn{
    background:transparent;border:1.5px solid #D97706;cursor:pointer;
    font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;
    color:#D97706;text-decoration:none;padding:8px 16px;
    border-radius:8px;transition:all 150ms ease;white-space:nowrap;
}
.rp-cart-undo-btn:hover{background:#FEF3C7;border-color:#92400E;color:#92400E}
.rp-cart-undo-btn:hover{background:var(--rp-primary-bg)}
@keyframes rpUndoSlideIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

/* ── Cart line remove animation ── */
.rp-cart-line.is-removing{
    opacity:0;transform:translateX(40px);max-height:0;padding:0;margin:0;overflow:hidden;
    transition:all 300ms ease;
}

@media(max-width:480px){
    .rp-cart-drawer-panel{width:100%}
}

/* ============================================================================
   PRODUCT BADGES (NEW / SALE / LOW STOCK)
   ============================================================================ */
.rp-prod-card{position:relative}
.rp-prod-badges{
    position:absolute;top:12px;left:12px;z-index:5;
    display:flex;flex-direction:column;gap:6px;align-items:flex-start;
}
.rp-prod-badge{
    display:inline-flex;align-items:center;
    font-family:'Montserrat',sans-serif;font-weight:800;font-size:11px;
    padding:5px 10px;border-radius:8px;letter-spacing:.5px;
    box-shadow:0 4px 12px -2px rgba(15,23,42,.2);
}
.rp-prod-badge-new{background:var(--rp-primary);color:#fff}
.rp-prod-badge-sale{background:var(--rp-accent);color:#fff}
.rp-prod-badge-low{background:#fef3c7;color:#92400e;border:1px solid #fde68a}
.rp-prod-badge-oos{background:rgba(254,242,242,.92);color:#DC2626;border:1px solid #FECACA}

/* Badges nativos del tema (Agotado, Novedad, Rebajado, Pocas uds.) SIEMPRE
   en mayúsculas. Pau no tiene control del texto de estos (viene del .tpl
   y las traducciones), así que normalizamos la tipografía.
   Los tags custom (--tag) NO se mayusculan: ahí el texto lo decide el
   admin en el módulo Tags. */
.rp-prod-badge-new,
.rp-prod-badge-sale,
.rp-prod-badge-low,
.rp-prod-badge-oos{text-transform:uppercase;letter-spacing:.5px}

/* ============================================================================
   ACCOUNT (my-account, addresses, history)
   ============================================================================ */
/* Ensure section#main doesn't constrain account page centering */
.rp-body section#main{width:100%;float:none;max-width:none;margin:0;padding:0}
.rp-account-page{padding-bottom:80px}
.rp-acc-hero{
    padding:80px 24px 40px;margin-top:-72px;
    background:linear-gradient(180deg,#BAE0FF 0%,#DCEEFE 35%,#F0F9FF 70%,#fff 100%);
    position:relative;overflow:hidden;
}
.rp-acc-hero::after{
    content:'';position:absolute;left:0;right:0;bottom:-1px;height:100px;
    background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.7) 60%,#fff 100%);pointer-events:none;
}
.rp-acc-hero-in{max-width:1100px;margin:0 auto;position:relative;z-index:2;padding-top:40px;text-align:center}
.rp-acc-hero h1{font-family:'Montserrat',sans-serif;font-size:54px;font-weight:900;color:var(--rp-dark);letter-spacing:-.03em;line-height:1;margin:14px 0 16px}
.rp-acc-hero p{font-size:17px;color:var(--rp-g500);max-width:560px;line-height:1.65;margin:0 auto}
.rp-acc-hero .rp-eyebrow{display:inline-flex;padding:7px 16px;background:var(--rp-primary-bg);border-radius:9999px;border:1px solid var(--rp-primary-soft);font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;color:var(--rp-primary);text-transform:uppercase;letter-spacing:.7px}

.rp-acc-section{padding:32px 24px 60px;width:100%}
.rp-acc-in{max-width:1100px;margin-left:auto;margin-right:auto;width:100%}
.rp-acc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;grid-auto-rows:1fr}
.rp-acc-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:18px;padding:28px;
    text-decoration:none;color:inherit;transition:all 300ms cubic-bezier(.16,1,.3,1);
    box-shadow:var(--rp-shadow-sm);display:flex;flex-direction:column;gap:8px;
    width:100%;height:100%;
    margin-left:auto;margin-right:auto;
}
.rp-acc-card p{margin-top:auto}
/* Cards sueltas fuera del grid (ej: Datos personales tiene card standalone
   con max-width:640px inline) — el margin:auto ya estaba definido arriba,
   pero reforzamos con direct-child selector para que no haya duda. */
.rp-acc-in > .rp-acc-card{margin-left:auto;margin-right:auto}
.rp-acc-card:hover{transform:translateY(-4px);box-shadow:var(--rp-shadow-float);border-color:var(--rp-primary-soft);text-decoration:none;color:inherit}
.rp-acc-card-ico{
    width:48px;height:48px;border-radius:14px;
    background:linear-gradient(135deg,var(--rp-primary),var(--rp-primary-dark));color:#fff;
    display:flex;align-items:center;justify-content:center;margin-bottom:12px;
    box-shadow:0 12px 24px -8px rgba(37,99,235,.4);
}
.rp-acc-card-ico svg{width:24px;height:24px}
.rp-acc-card h3{font-family:'Montserrat',sans-serif;font-size:18px;font-weight:800;color:var(--rp-dark);margin:0}
.rp-acc-card p{font-size:14px;color:var(--rp-g500);line-height:1.55;margin:0}
.rp-acc-card-out .rp-acc-card-ico{background:linear-gradient(135deg,#94a3b8,#64748b)}
.rp-acc-card-cole .rp-acc-card-ico{background:linear-gradient(135deg,var(--rp-secondary),#0891b2)}

/* ── Profile dropdown ── */
.rp-profile-wrap{position:relative}
.rp-profile-trigger{
    background:none !important;border:none !important;outline:none !important;
    box-shadow:none !important;cursor:pointer;padding:0;margin:0;
    font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;
    color:var(--rp-dark,#0F172A);display:inline-flex;align-items:center;gap:6px;
    transition:color .15s;-webkit-appearance:none;appearance:none;
}
.rp-profile-trigger:hover{color:var(--rp-primary,#2563EB)}
.rp-profile-trigger:focus{outline:none !important;box-shadow:none !important}
.rp-profile-trigger span{font-size:14px;font-weight:500}
.rp-avatar-sm{
    display:inline-flex;align-items:center;justify-content:center;
    width:26px;height:26px;border-radius:9999px;
    background:var(--rp-primary);color:#fff;
    font-family:'Montserrat',sans-serif;font-size:10px;font-weight:700;letter-spacing:.3px;
    flex-shrink:0;
}
.rp-profile-arrow{
    width:13px;height:13px;opacity:.5;transition:transform .15s ease;
}
.rp-profile-wrap.is-open .rp-profile-arrow{transform:rotate(180deg)}
.rp-profile-dropdown{
    position:absolute;top:calc(100% + 8px);right:0;z-index:1000;
    background:#fff;border:1px solid var(--rp-g200);border-radius:12px;
    box-shadow:0 10px 25px rgba(15,23,42,.12),0 4px 10px rgba(15,23,42,.06);
    width:280px;padding:8px;
    opacity:0;transform:translateY(-8px);pointer-events:none;
    transition:opacity .15s ease,transform .15s ease;
}
.rp-profile-dropdown.open{opacity:1;transform:translateY(0);pointer-events:all}
.rp-profile-dd-head{
    display:flex;align-items:center;gap:12px;padding:12px 10px;
}
a.rp-profile-dd-head{text-decoration:none;color:inherit;border-radius:8px;transition:background .15s ease}
a.rp-profile-dd-head:hover{background:var(--rp-g50,#F8FAFC)}
.rp-avatar-lg{
    display:inline-flex;align-items:center;justify-content:center;
    width:40px;height:40px;border-radius:9999px;flex-shrink:0;
    background:var(--rp-primary);color:#fff;
    font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;letter-spacing:.3px;
}
.rp-profile-dd-info{display:flex;flex-direction:column;gap:2px;overflow:hidden}
.rp-profile-dd-info strong{
    font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;color:var(--rp-dark);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rp-profile-dd-info span{
    font-family:'DM Sans',sans-serif;font-size:12px;color:var(--rp-g500);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rp-profile-dd-sep{height:1px;background:var(--rp-g200);margin:4px 10px}
.rp-profile-dd-link{
    display:flex;align-items:center;gap:10px;
    padding:10px 10px;border-radius:8px;
    font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;color:var(--rp-g700);
    text-decoration:none;transition:background .12s ease,color .12s ease;
}
.rp-profile-dd-link:hover{background:var(--rp-g100);color:var(--rp-primary);text-decoration:none}
.rp-profile-dd-link svg{width:18px;height:18px;flex-shrink:0;opacity:.65}
.rp-profile-dd-link:hover svg{opacity:1}
.rp-profile-dd-logout{color:var(--rp-error)}
.rp-profile-dd-logout:hover{background:#FEF2F2;color:var(--rp-error)}
.rp-profile-dd-logout svg{opacity:.8}

/* Addresses cards */
.rp-addr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-bottom:32px}
.rp-addr-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:18px;padding:28px;
    box-shadow:var(--rp-shadow-sm);position:relative;
}
.rp-addr-card-center{
    background:linear-gradient(180deg,var(--rp-primary-bg) 0%,#fff 100%);
    border-color:var(--rp-primary-soft);
}
.rp-addr-badge{
    display:inline-flex;align-items:center;gap:6px;
    padding:6px 12px;border-radius:9999px;background:var(--rp-primary);color:#fff;
    font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;letter-spacing:.4px;
    margin-bottom:14px;
}
.rp-addr-badge svg{width:14px;height:14px}
.rp-addr-card h3{font-family:'Montserrat',sans-serif;font-size:18px;font-weight:800;color:var(--rp-dark);margin:0 0 12px}
.rp-addr-card address{font-style:normal;font-size:14px;color:var(--rp-g500);line-height:1.7}
.rp-addr-card address strong{color:var(--rp-dark);display:block;margin-bottom:4px}
/* ── Verify-email modal (post-registro) ── */
.rp-verify-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;animation:rpVerifyIn .3s ease-out}
.rp-verify-modal.is-closing{animation:rpVerifyOut .2s ease-in forwards}
.rp-verify-modal-overlay{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(3px)}
.rp-verify-modal-box{position:relative;max-width:460px;width:100%;background:#fff;border-radius:22px;padding:44px 36px 36px;text-align:center;box-shadow:0 25px 60px -15px rgba(15,23,42,.35),0 10px 30px -10px rgba(37,99,235,.25);border:1px solid var(--rp-g200)}
.rp-verify-modal-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:none;background:var(--rp-g100);color:var(--rp-g500);border-radius:9999px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}
.rp-verify-modal-close:hover{background:var(--rp-g200);color:var(--rp-dark)}
.rp-verify-modal-icon{width:72px;height:72px;margin:0 auto 18px;background:linear-gradient(135deg,var(--rp-primary-bg),#fff);border-radius:9999px;display:flex;align-items:center;justify-content:center;color:var(--rp-primary);border:1px solid var(--rp-primary-soft)}
.rp-verify-modal-icon svg{width:34px;height:34px}
.rp-verify-modal-box h2{font-family:'Montserrat',sans-serif;font-weight:800;font-size:22px;color:var(--rp-dark);margin:0 0 14px}
.rp-verify-lede{font-size:15px;color:var(--rp-g700);line-height:1.55;margin:0 0 8px}
.rp-verify-lede strong{color:var(--rp-primary);font-weight:700;word-break:break-word}
.rp-verify-sub{font-size:14px;color:var(--rp-g500);line-height:1.55;margin:0 0 22px}
.rp-verify-note{display:flex;gap:10px;align-items:flex-start;background:var(--rp-primary-bg);border:1px solid var(--rp-primary-soft);border-radius:12px;padding:12px 14px;font-size:13px;color:var(--rp-g700);line-height:1.5;margin-bottom:22px;text-align:left}
.rp-verify-note svg{flex-shrink:0;color:var(--rp-primary);margin-top:2px}
.rp-verify-note strong{color:var(--rp-primary-dark);font-weight:700}
.rp-verify-btn{width:100%}

@keyframes rpVerifyIn{from{opacity:0}to{opacity:1}}
@keyframes rpVerifyOut{from{opacity:1}to{opacity:0}}
.rp-verify-modal-box{animation:rpVerifyBoxIn .35s cubic-bezier(.2,.9,.3,1)}
@keyframes rpVerifyBoxIn{from{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}

/* ── Toast "verificado" ── */
.rp-toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:10001;display:flex;gap:12px;align-items:center;max-width:480px;background:#fff;border-radius:14px;padding:14px 20px 14px 16px;box-shadow:0 20px 50px -10px rgba(15,23,42,.25),0 8px 20px -6px rgba(16,185,129,.2);border:1px solid #A7F3D0;font-family:'DM Sans',sans-serif;font-size:13px;color:#065F46;animation:rpToastIn .35s cubic-bezier(.2,.9,.3,1)}
.rp-toast.is-hiding{animation:rpToastOut .5s ease-in forwards}
.rp-toast-success{background:linear-gradient(135deg,#ECFDF5,#fff)}
.rp-toast-success svg{flex-shrink:0;color:#10B981}
.rp-toast strong{display:block;font-family:'Montserrat',sans-serif;font-weight:700;color:#065F46;font-size:13px;margin-bottom:2px}
.rp-toast span{color:#059669;font-size:12px}
.rp-toast-close{margin-left:6px;border:none;background:none;color:#065F46;font-size:22px;cursor:pointer;line-height:1;padding:0 2px}
@keyframes rpToastIn{from{opacity:0;transform:translate(-50%,-16px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes rpToastOut{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,-16px)}}

/* ── Cart quantity +/- pill (drawer + cart page) ── */
.rp-cart-qty{display:inline-flex;align-items:center;gap:0;border:1.5px solid var(--rp-g200);border-radius:9999px;overflow:hidden;background:#fff;height:28px;transition:border-color .15s ease, box-shadow .15s ease}
.rp-cart-qty:hover{border-color:var(--rp-primary,#2563EB)}
.rp-cart-qty-btn{width:26px;height:26px;border:none;background:transparent;color:var(--rp-g700);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease;padding:0}
.rp-cart-qty-btn:hover:not(:disabled){background:var(--rp-primary-bg,#EFF6FF);color:var(--rp-primary)}
.rp-cart-qty-btn:disabled{opacity:.4;cursor:not-allowed}
.rp-cart-qty-val{min-width:24px;text-align:center;font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;color:var(--rp-dark);padding:0 4px}

/* Pill grande en la página /carrito — mantiene el mismo look pero acorde al tamaño de la fila */
.rp-cart-pl .rp-cart-qty{height:38px;border-width:1.5px}
.rp-cart-pl .rp-cart-qty-btn{width:34px;height:34px}
.rp-cart-pl .rp-cart-qty-btn svg{width:16px;height:16px}
.rp-cart-pl .rp-cart-qty-val{min-width:36px;font-size:14px}

/* Ocultar el touchspin nativo de PS9 (.input-group.bootstrap-touchspin) —
   lo mantenemos en DOM para que el core JS siga enganchado con su input
   [type=hidden] pero escondemos el UI feo de flechas arriba/abajo. */
.rp-cart-pl .input-group.bootstrap-touchspin{
  display:none !important;
}
.rp-cart-pl-qty{display:flex;align-items:center;gap:10px}

/* Feedback visual mientras el AJAX del +/- está en curso */
.rp-cart-line-loading,.rp-cart-pl.rp-cart-line-loading{position:relative;opacity:.85;pointer-events:none}
.rp-cart-line-loading::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg, rgba(37,99,235,0) 0%, rgba(37,99,235,.07) 50%, rgba(37,99,235,0) 100%);animation:rpSkel 1s ease-in-out infinite;pointer-events:none;border-radius:inherit}

/* ── Skeleton loader Rompoda (shimmer azul) ── */
.rp-skel{background:linear-gradient(90deg, var(--rp-g100,#F1F5F9) 0%, var(--rp-g200,#E2E8F0) 50%, var(--rp-g100,#F1F5F9) 100%);background-size:200% 100%;animation:rpSkel 1.2s ease-in-out infinite;border-radius:8px}
.rp-skel-text{height:14px;border-radius:4px;margin:6px 0}
.rp-skel-text-sm{height:10px;border-radius:4px;margin:4px 0;width:60%}
.rp-skel-img{aspect-ratio:1/1;width:100%;border-radius:12px}
.rp-skel-circle{border-radius:9999px;width:40px;height:40px}
.rp-skel-btn{height:36px;border-radius:10px;width:100%}
@keyframes rpSkel {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
/* Overlay skeleton: tapa contenido con el bloque de esqueletos */
.rp-skel-overlay{position:relative}
.rp-skel-overlay > .rp-skel-hide{visibility:hidden}
.rp-skel-overlay > .rp-skel-layer{position:absolute;inset:0;background:#fff;z-index:2;display:flex;flex-direction:column;gap:6px;padding:4px}

.rp-addr-phone{font-size:13px;display:inline-flex;align-items:center;gap:6px;color:var(--rp-g500)}
.rp-addr-phone svg{flex-shrink:0;color:var(--rp-primary)}
.rp-addr-actions{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}

/* Pau req v3 2026-04-29: garantizar visibilidad de los botones del bloque
   "Mis direcciones" (Editar, Eliminar, Añadir nueva dirección). Antes algunos
   casos no mostraban ni texto ni fondo por sobrescritura del CSS de PS. */
.rp-addr-actions > .rp-btn,
.rp-addr-add > .rp-btn{
    cursor:pointer;
    text-decoration:none;
    line-height:1;
    box-sizing:border-box;
}
.rp-addr-actions > .rp-btn-secondary{
    background:var(--rp-primary-bg,#EFF6FF)!important;
    color:var(--rp-primary,#2563EB)!important;
    border:1.5px solid var(--rp-primary-soft,#DBEAFE)!important;
}
.rp-addr-actions > .rp-btn-secondary:hover{
    background:#fff!important;
    border-color:var(--rp-primary,#2563EB)!important;
    color:var(--rp-primary,#2563EB)!important;
    transform:translateY(-1px);
    box-shadow:0 4px 12px rgba(37,99,235,.18);
}
.rp-addr-actions > .rp-btn-destructive{
    background:transparent!important;
    color:var(--rp-error,#EF4444)!important;
    border:1.5px solid #FECACA!important;
}
.rp-addr-actions > .rp-btn-destructive:hover{
    background:#FEF2F2!important;
    border-color:#EF4444!important;
    color:#EF4444!important;
}
.rp-addr-add{margin-top:24px;display:flex;justify-content:center}
.rp-addr-add > .rp-btn-primary{
    background:linear-gradient(135deg,var(--rp-primary,#2563EB) 0%,var(--rp-primary-dark,#1D4ED8) 100%)!important;
    color:#fff!important;
    border:none!important;
    box-shadow:0 8px 20px -4px rgba(37,99,235,.45),inset 0 1px 0 rgba(255,255,255,.25)!important;
    height:48px;
    padding:0 28px;
    font-size:14px;
}
.rp-addr-add > .rp-btn-primary:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 28px -4px rgba(37,99,235,.55)!important;
    color:#fff!important;
}
.rp-addr-add > .rp-btn-primary svg{stroke:#fff;color:#fff}
.rp-addr-locked{
    display:inline-flex;align-items:center;gap:6px;font-size:12px;
    color:var(--rp-g500);font-family:'Montserrat',sans-serif;font-weight:600;
}
.rp-addr-locked svg{width:14px;height:14px}
.rp-btn-destructive{background:transparent;color:var(--rp-error);border:1.5px solid #FECACA}
.rp-btn-destructive:hover{background:#FEF2F2;color:var(--rp-error);text-decoration:none}
.rp-btn-sm{padding:8px 14px;font-size:13px}
.rp-empty-state{padding:60px 20px;text-align:center;color:var(--rp-g500);background:var(--rp-g50);border-radius:18px}
.rp-addr-add{margin-top:8px}

@media(max-width:900px){
    .rp-acc-hero{padding:72px 20px 32px}
    .rp-acc-hero h1{font-size:38px}
    .rp-acc-section{padding:48px 20px}
}

/* ============================================================================
   BANNER PRÓXIMA ENTREGA REGULAR v7: "Highlight marcador"
   Titular corto centrado sin caja. Solo la FECHA va resaltada con un
   background gradient azul Rompoda que se reveal de 0% a 100% con una
   animación tipo subrayador al cargar. Inspirado en el patrón
   Aceternity HeroHighlight que pasó Pau.
   ============================================================================ */
.rp-delivery-hl-wrap{
    padding:30px 16px 26px;
    text-align:center;
}
.rp-delivery-hl-text{
    margin:0;
    font-family:'Montserrat',sans-serif;
    font-weight:700;
    font-size:30px;
    color:#0F172A;
    line-height:1.4;
    letter-spacing:-.015em;
}
/* Marcador subrayador animado sobre la fecha. Gradient azul Rompoda
   replicando el patrón Aceternity HeroHighlight:
   - display:inline (no inline-block) para que wrape con el texto
   - padding pequeño (pb-1 px-1 equiv ≈ 0 6px 4px) sin agrandar el pill
   - background-size: 0% → 100% con duración 2s linear delay 0.5s
   - texto OSCURO encima del highlight para legibilidad
   - sin box-shadow ni text-shadow: el highlight es un marcador
     "pintado a mano", NO un botón luminoso. */
.rp-delivery-hl{
    display:inline;
    background-image:linear-gradient(120deg, #93C5FD 0%, #60A5FA 50%, #3B82F6 100%);
    background-repeat:no-repeat;
    background-position:left center;
    background-size:0% 100%;
    padding:0 6px 4px;
    margin:0 -2px;
    border-radius:8px;
    font-weight:700;
    color:#0F172A;
    animation:rp-delivery-hl-reveal 2s linear .5s forwards;
}
@keyframes rp-delivery-hl-reveal{
    0%   {background-size:0% 100%}
    100% {background-size:100% 100%}
}

@media(max-width:720px){
    .rp-delivery-hl-wrap{padding:22px 12px 18px}
    .rp-delivery-hl-text{font-size:22px;line-height:1.35}
    .rp-delivery-hl{padding:0 5px 3px;border-radius:6px}
}

/* Legacy v5 "HyperText" — mantenemos por si algún cache de Smarty o CDN
   sirve HTML con las clases viejas mientras propaga el cambio. No tiene
   transiciones de hover para que no quede "a medias" visualmente. */
.rp-delivery-hyper{
    text-align:center;
    padding:22px 16px 18px;
}
.rp-delivery-hyper__text{
    margin:0;
    font-family:'Montserrat',sans-serif;
    font-weight:600;
    font-size:22px;
    color:#0F172A;
    line-height:1.45;
}
.rp-delivery-hyper__key{
    display:inline;
    font-weight:700;
    color:#0F172A;
}

/* ============================================================================
   [LEGACY] Banner v4 ticket — se mantiene por compatibilidad mientras se
   propaga el cambio. Si en algún template antiguo queda referencia, se
   renderizará sin romperse. En v5 el JS ya no lo usa.
   ============================================================================ */
   Concepto: papel blanco con cinta lateral azul (ribbon), fecha día gigante
   en color acento naranja como el número de una hoja arrancada de calendario,
   etiqueta lateral derecha tipo ticket de equipaje con la fundación, perfora-
   ciones punteadas entre secciones (efecto ticket rasgable), todo compacto
   y limpio sin ocupar demasiado espacio vertical.
   ============================================================================ */
.rp-delivery-host{max-width:1280px;margin:18px auto 0;padding:0 24px}

.rp-delivery-ticket{
    position:relative;
    background:linear-gradient(180deg,#fff 0%,#FAFBFD 100%);
    border:1px solid #E2E8F0;
    border-radius:14px;
    padding:10px 22px 10px 34px;
    display:flex;align-items:center;justify-content:flex-start;gap:22px;
    box-shadow:0 1px 3px rgba(15,23,42,.04),0 4px 12px -6px rgba(37,99,235,.08);
    overflow:hidden;
    min-height:64px;
}

/* Cinta lateral izquierda (ribbon azul Rompoda) */
.rp-delivery-ticket__ribbon{
    position:absolute;left:0;top:0;bottom:0;width:10px;
    background:linear-gradient(180deg,#2563EB 0%,#60A5FA 100%);
    border-radius:14px 0 0 14px;
}

/* Bloque izquierdo: punto verde + eyebrow + día semana */
.rp-delivery-ticket__left{
    display:flex;align-items:center;gap:10px;flex-shrink:0;
}
.rp-delivery-ticket__eyebrow-wrap{
    display:flex;flex-direction:column;gap:1px;line-height:1.1;
}
.rp-delivery-ticket__eyebrow{
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:10px;
    color:#64748B;letter-spacing:.16em;text-transform:uppercase;
}
.rp-delivery-ticket__weekday{
    font-family:'Montserrat',sans-serif;font-weight:800;font-size:11px;
    color:#0F172A;letter-spacing:.08em;text-transform:uppercase;
}
.rp-delivery-dot{
    width:8px;height:8px;border-radius:9999px;background:#10B981;
    box-shadow:0 0 0 3px rgba(16,185,129,.2);
    animation:rpDeliveryPulse 2s ease-in-out infinite;
    flex-shrink:0;
}
@keyframes rpDeliveryPulse{
    0%,100%{box-shadow:0 0 0 3px rgba(16,185,129,.2)}
    50%{box-shadow:0 0 0 7px rgba(16,185,129,.05)}
}

/* Bloque central: fecha día + mes. Día en naranja acento grande. */
.rp-delivery-ticket__date{
    display:flex;align-items:baseline;gap:10px;
    flex-shrink:0;
    padding:0 8px;
}
.rp-delivery-ticket__day{
    font-family:'Montserrat',sans-serif;font-weight:900;font-size:32px;
    color:#ef7c0c;letter-spacing:-.03em;line-height:1;
    text-shadow:0 1px 0 rgba(239,124,12,.12);
}
.rp-delivery-ticket__month{
    font-family:'Montserrat',sans-serif;font-weight:800;font-size:14px;
    color:#0F172A;letter-spacing:.08em;text-transform:uppercase;line-height:1;
}

/* Perforación punteada entre centro y fundación (efecto ticket rasgable) */
.rp-delivery-ticket__perf{
    flex-shrink:0;
    width:1px;height:32px;
    background-image:linear-gradient(180deg,#CBD5E1 50%,transparent 50%);
    background-size:1px 6px;background-repeat:repeat-y;
    margin:0 6px;
}

/* Bloque derecho: etiqueta remesa/fundación */
.rp-delivery-ticket__scope{
    display:flex;flex-direction:column;gap:1px;line-height:1.1;
    flex-shrink:0;
    margin-left:auto;
}
.rp-delivery-ticket__scope-label{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:9px;
    color:#94A3B8;letter-spacing:.18em;text-transform:uppercase;
}
.rp-delivery-ticket__scope-name{
    font-family:'Montserrat',sans-serif;font-weight:800;font-size:13px;
    color:#0F172A;letter-spacing:.02em;
}

@media(max-width:720px){
    .rp-delivery-host{padding:0 16px;margin-top:14px}
    .rp-delivery-ticket{
        padding:10px 14px 10px 26px;gap:12px;min-height:auto;flex-wrap:wrap;
    }
    .rp-delivery-ticket__ribbon{width:6px}
    .rp-delivery-ticket__eyebrow{font-size:9px;letter-spacing:.12em}
    .rp-delivery-ticket__weekday{font-size:10px}
    .rp-delivery-ticket__day{font-size:26px}
    .rp-delivery-ticket__month{font-size:12px}
    .rp-delivery-ticket__perf{display:none}
    .rp-delivery-ticket__scope-name{font-size:11px}
    .rp-delivery-ticket__scope-label{font-size:8px}
}
@media(max-width:480px){
    .rp-delivery-ticket__scope{display:none}
    .rp-delivery-ticket{justify-content:space-between}
}

/* Fallback: soportar las clases antiguas por si algún template todavía las usa */
.rp-delivery-banner-eyebrow,
.rp-delivery-banner-date,
.rp-delivery-banner-scope{display:none}

/* ============================================================================
   SCHOOL COLLECTION — Shopify-style hero + tabs + product grid
   ============================================================================ */

/* ── Hero section ── */
.rp-school-hero{
    position:relative;
    background:#fff;
    padding:0 24px;
    margin-top:-10px;
}
.rp-school-hero-inner{
    max-width:1200px;margin:0 auto;
    display:flex;align-items:center;justify-content:space-between;
    gap:32px;
    padding:36px 0 20px;
}
.rp-school-hero-text{
    flex:1 1 0%;min-width:0;
}

/* ── Fundacion badge ── */
.rp-school-fundacion-badge{
    display:inline-flex;align-items:center;gap:5px;
    padding:4px 12px;border-radius:9999px;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:10px;
    text-transform:uppercase;letter-spacing:.6px;
    background:var(--rp-school-color,#2563EB);color:#fff;
    margin-bottom:12px;
}

/* ── Title — large, colored with school accent ── */
.rp-school-title{
    font-family:'Montserrat',sans-serif;font-weight:800;
    font-size:36px;line-height:1.1;
    color:var(--rp-school-color,#2563EB);letter-spacing:-.03em;
    margin:0 0 8px;
}

/* ── Welcome message ── */
.rp-school-welcome{
    font-family:'DM Sans',sans-serif;font-size:16px;
    color:var(--rp-dark);margin:4px 0 0;line-height:1.4;
}
.rp-school-welcome-name{
    font-family:'Montserrat',sans-serif;font-weight:700;color:var(--rp-dark);
}

/* ── Botón "Cambiar de colegio" ── */
.rp-school-change-btn{
    display:inline-flex;align-items:center;gap:6px;
    padding:6px 14px;margin-bottom:10px;
    background:#fff;color:var(--rp-g700);
    border:1.5px solid var(--rp-g300);border-radius:9999px;
    font-family:'Montserrat',sans-serif;font-size:12px;font-weight:600;
    cursor:pointer;transition:all .15s;
}
.rp-school-change-btn:hover{
    border-color:var(--rp-school-color,#2563EB);
    color:var(--rp-school-color,#2563EB);
    transform:translateY(-1px);
    box-shadow:0 2px 8px rgba(15,23,42,.08);
}
.rp-school-change-btn svg{flex-shrink:0}

/* ── Modal Selector de colegio ── */
.rp-school-switcher-overlay{
    position:fixed;inset:0;background:rgba(15,23,42,.65);
    z-index:9999;display:flex;align-items:center;justify-content:center;
    animation:rpSwitcherFade .18s ease;font-family:'DM Sans',sans-serif;
    padding:20px;
}
.rp-school-switcher-overlay[hidden]{display:none}
@keyframes rpSwitcherFade{from{opacity:0}to{opacity:1}}

.rp-school-switcher-panel{
    position:relative;
    background:#fff;border-radius:24px;
    max-width:560px;width:100%;max-height:85vh;
    padding:34px 28px 28px;overflow:hidden;
    display:flex;flex-direction:column;gap:18px;
    box-shadow:0 20px 60px rgba(15,23,42,.35);
    animation:rpSwitcherSlide .22s ease;
}
@keyframes rpSwitcherSlide{from{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}

.rp-school-switcher-close{
    position:absolute;top:14px;right:14px;
    width:34px;height:34px;border-radius:9999px;
    background:var(--rp-g100);color:var(--rp-g500);
    border:none;cursor:pointer;font-size:22px;line-height:1;
    display:flex;align-items:center;justify-content:center;
    transition:all .15s;
}
.rp-school-switcher-close:hover{background:var(--rp-g200);color:var(--rp-dark)}

.rp-school-switcher-title{
    margin:0;padding-right:40px;
    font-family:'Montserrat',sans-serif;font-size:22px;font-weight:800;
    color:var(--rp-dark);text-align:center;line-height:1.3;
}
/* Palabra destacada del título ("colegio") — estilo inspirado en el ejemplo
   React (border dotted + bg suave + color primary), adaptado a Rompoda. */
.rp-school-switcher-title-accent{
    display:inline-block;padding:2px 12px;
    color:var(--rp-primary);
    background:var(--rp-primary-bg);
    border:2px dotted var(--rp-primary);
    border-radius:8px;
    line-height:1.2;
}

.rp-school-switcher-list{
    display:flex;flex-direction:column;gap:10px;
    overflow-y:auto;max-height:60vh;padding:2px;
}

/* Pills gris claro SIN borde. El nombre en color del cole/fundación.
   Solo el logo circular mantiene el borde del color (marca de identidad).
   Hover → fondo = color del cole, texto blanco. */
.rp-school-switcher-item{
    position:relative;
    display:flex;align-items:center;gap:16px;
    padding:12px 20px 12px 12px;
    background:var(--rp-g100);
    color:var(--rp-item-color,var(--rp-primary));
    border:none;
    border-radius:9999px;text-decoration:none;
    transition:all .18s ease;
    font-family:'Montserrat',sans-serif;font-weight:700;
    letter-spacing:.3px;text-transform:uppercase;font-size:14px;
}
.rp-school-switcher-item:hover{
    background:var(--rp-item-color,var(--rp-primary));
    color:#fff;
    transform:translateY(-1px);
    box-shadow:0 6px 16px rgba(15,23,42,.18);
}
.rp-school-switcher-item:hover .rp-school-switcher-item-logo{
    background:#fff;
    border-color:#fff;
}
/* Colegio actual: ya renderizado con fondo + texto blanco (como hover) */
.rp-school-switcher-item--current{
    background:var(--rp-item-color,var(--rp-primary));
    color:#fff;
}
.rp-school-switcher-item--current .rp-school-switcher-item-logo{
    background:#fff;
    border-color:#fff;
}

.rp-school-switcher-item-logo{
    flex:0 0 auto;width:44px;height:44px;border-radius:9999px;
    background:#fff;color:var(--rp-item-color,var(--rp-primary));
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;border:2px solid var(--rp-item-color,var(--rp-primary));
    transition:all .18s ease;
}
.rp-school-switcher-item-logo img{
    width:100%;height:100%;object-fit:contain;display:block;
}

.rp-school-switcher-item-name{
    flex:1;text-align:center;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    /* Equilibra visualmente con el logo de 44px de la izquierda */
    padding-right:44px;
    /* Hereda el color del .rp-school-switcher-item — que en estado normal
       es el color del cole/fundación y en hover/current es blanco. */
    color:inherit;
    transition:color .18s ease;
}
/* Refuerzo explícito: el nombre se vuelve blanco al hover y en el
   colegio actual (por si alguna regla CSS global le gana al inherit). */
.rp-school-switcher-item:hover .rp-school-switcher-item-name,
.rp-school-switcher-item--current .rp-school-switcher-item-name{
    color:#fff;
}

.rp-school-switcher-admin-note{
    text-align:center;font-size:12px;color:var(--rp-g500);
    padding:8px;border-top:1px solid var(--rp-g100);
    font-family:'DM Sans',sans-serif;
}

@media (max-width:560px){
    .rp-school-switcher-panel{padding:26px 16px 18px;border-radius:20px}
    .rp-school-switcher-title{font-size:19px}
    .rp-school-switcher-item{padding:10px 16px 10px 10px;font-size:12px;gap:12px}
    .rp-school-switcher-item-logo{width:38px;height:38px}
    .rp-school-switcher-item-name{padding-right:38px}
}

/* ── School logo / image (right side) ── */
.rp-school-hero-logo{
    flex:0 0 auto;
}
.rp-school-logo-img{
    width:160px;height:160px;object-fit:contain;
    border-radius:20px;
    background:var(--rp-g50);
    border:1px solid var(--rp-g200);
    box-shadow:0 2px 8px rgba(15,23,42,.05);
}
.rp-school-logo-placeholder{
    width:160px;height:160px;
    display:flex;align-items:center;justify-content:center;
    border-radius:20px;
    background:var(--rp-g50);
    border:1px solid var(--rp-g200);
}

/* ── Colored divider line ── */
.rp-school-divider{
    max-width:1200px;margin:0 auto;
    width:90%;height:3px;
    border-radius:9999px;
    background:linear-gradient(90deg,
        var(--rp-school-color,#2563EB),
        color-mix(in srgb, var(--rp-school-color,#2563EB) 60%, #06B6D4)
    );
}

/* ── Tabs bar (subcategories + sort) ──
   Pau req v3 2026-04-28: quitado border-bottom — generaba una línea
   fina gris entre la barra de tabs y el grid de productos en TODAS
   las páginas de colección. Es la "línea siempre que hay un grid"
   que el usuario reportó. */
.rp-school-tabs-bar{
    max-width:1200px;margin:0 auto;
    display:flex;align-items:center;justify-content:space-between;
    gap:16px;
    padding:24px 0 8px;
}
.rp-school-tabs{
    display:flex;align-items:center;gap:6px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:2px;
}
.rp-school-tabs::-webkit-scrollbar{display:none}

.rp-school-tab{
    display:inline-flex;align-items:center;
    padding:8px 18px;border-radius:9999px;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;
    text-decoration:none;color:var(--rp-g500);
    background:transparent;border:none;
    white-space:nowrap;
    transition:all .2s ease;
    cursor:pointer;
}
.rp-school-tab:hover{
    color:var(--rp-dark);
    background:var(--rp-g100);
    text-decoration:none;
}
.rp-school-tab--active,
.rp-school-tab--active:hover{
    background:var(--rp-school-color,#2563EB);
    color:#fff;
    box-shadow:0 2px 8px -2px color-mix(in srgb, var(--rp-school-color,#2563EB) 40%, transparent);
}

/* Pau req 2026-05-03: Tab Outlet — variante destacada con accent naranja
   para diferenciarla del resto y llamar la atención (es categoría hermana). */
.rp-school-tab--outlet{
    background:#FFF7ED;
    color:#f8982e;
    font-weight:700;
    border:1.5px solid #FED7AA;
    margin-left:6px;
}
.rp-school-tab--outlet:hover{
    background:#FED7AA;
    color:#9A3412;
    border-color:#FB923C;
}
.rp-school-tab--outlet.rp-school-tab--active,
.rp-school-tab--outlet.rp-school-tab--active:hover{
    background:#f8982e;
    color:#fff;
    border-color:#f8982e;
    box-shadow:0 2px 8px -2px rgba(248,152,46,.4);
}

/* ── Sort buttons ── */
.rp-school-sort{
    display:flex;align-items:center;gap:4px;
    flex-shrink:0;
}
.rp-school-sort-btn{
    display:inline-flex;align-items:center;gap:4px;
    padding:6px 12px;border-radius:8px;
    font-family:'DM Sans',sans-serif;font-weight:500;font-size:12px;
    color:var(--rp-g500);
    background:transparent;border:1px solid transparent;
    cursor:pointer;
    transition:all .15s ease;
    white-space:nowrap;
}
.rp-school-sort-btn:hover{
    color:var(--rp-dark);background:var(--rp-g50);
    border-color:var(--rp-g200);
}
.rp-school-sort-btn--active,
.rp-school-sort-btn--active:hover{
    color:var(--rp-school-color,#2563EB);
    background:color-mix(in srgb, var(--rp-school-color,#2563EB) 8%, #fff);
    border-color:color-mix(in srgb, var(--rp-school-color,#2563EB) 20%, #e2e8f0);
    font-weight:600;
}

/* ── Category page layout tweaks when school ── */
body.rp-school-collection #wrapper{padding-top:0}
/* Ocultar sidebars SIEMPRE en páginas de categoría (no solo en las de
   centro con rp-school-collection). El tema Rompoda no usa sidebars —
   si reaparecen durante AJAX reducen el ancho del content-wrapper y los
   media queries caen al breakpoint mobile → grid a 2 cols en desktop.
   body#category es la clase estable que PS9 mantiene en TODO momento. */
body.rp-school-collection #left-column,
body.rp-school-collection #right-column,
body#category #left-column,
body#category #right-column,
body.page-category #left-column,
body.page-category #right-column{display:none!important}
body#category #content-wrapper,
body.page-category #content-wrapper{width:100%!important}
body.rp-school-collection #content-wrapper{
    width:100%!important;max-width:100%!important;
    flex:0 0 100%!important;padding:0!important;
}
body.rp-school-collection .breadcrumb{display:none}

/* ── Products wrapper ── */
.rp-school-products-wrap{
    max-width:1200px;margin:0 auto;padding:0 24px;
}

/* ── Product grid on school page ── */
body.rp-school-collection #products{
    max-width:100%;margin:0 auto;padding:24px 0 80px;
}
body.rp-school-collection .products-section-title{display:none}
body.rp-school-collection .products-sort-order{display:none}
body.rp-school-collection #products .products-sort-nb{display:none}

/* ── Product grid — CSS Grid (mobile-first: 2 → 3 → 4 columns) ──
   IMPORTANTE: durante AJAX de paginación PS9 reemplaza #js-product-list
   y el body pierde momentáneamente `rp-school-collection`, por lo que
   ese selector no aplica y se ve un flash de 2 columnas mal estilizadas
   (CSS del tema padre). Añadimos fallback basado en body#category +
   body.page-category, clases que PS9 SIEMPRE mantiene durante AJAX, y
   así la grid se conserva sin que dependa del JS. */
body.rp-school-collection #js-product-list .products,
body.rp-school-collection #js-product-list .products.row,
body#category #js-product-list .products,
body#category #js-product-list .products.row,
body.page-category #js-product-list .products,
body.page-category #js-product-list .products.row,
.rp-school-products-wrap .products,
.rp-school-products-wrap .products.row,
.rp-school-grid,
.rp-school-grid.row{
    display:grid!important;
    grid-template-columns:repeat(2,1fr)!important;
    gap:12px!important;
    float:none!important;
    margin:0!important;padding:0!important;
    width:100%!important;
    flex-wrap:unset!important;
    list-style:none!important;
}
/* Kill Bootstrap .row ::after that creates extra clearfix element */
body.rp-school-collection #js-product-list .products.row::after,
body#category #js-product-list .products.row::after,
body.page-category #js-product-list .products.row::after,
.rp-school-products-wrap .products.row::after,
.rp-school-grid.row::after{
    display:none!important;content:none!important;
}
body.rp-school-collection #js-product-list .products > .product-miniature,
body#category #js-product-list .products > .product-miniature,
body.page-category #js-product-list .products > .product-miniature,
.rp-school-products-wrap .products > article,
.rp-school-products-wrap .products > .product-miniature,
.rp-school-grid > *{
    width:100%!important;max-width:100%!important;
    flex:none!important;float:none!important;
    padding:0!important;margin:0!important;
}
@media screen and (min-width:768px){
    body.rp-school-collection #js-product-list .products,
    body#category #js-product-list .products,
    body.page-category #js-product-list .products,
    .rp-school-products-wrap .products,
    .rp-school-grid{grid-template-columns:repeat(3,1fr)!important;gap:16px!important}
}
@media screen and (min-width:1024px){
    body.rp-school-collection #js-product-list .products,
    body#category #js-product-list .products,
    body.page-category #js-product-list .products,
    .rp-school-products-wrap .products,
    .rp-school-grid{grid-template-columns:repeat(4,1fr)!important;gap:20px!important}
}
/* Force product card structure */
div.rp-school-products-wrap .rp-prod-card{display:block!important;background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;margin:0!important;overflow:visible!important}
div.rp-school-products-wrap .rp-prod-card .thumbnail-container{display:block!important;width:100%!important;float:none!important;padding:0!important;border:none!important;position:relative;overflow:hidden;border-radius:10px;background:#f5f5f5}
div.rp-school-products-wrap .rp-prod-card .product-thumbnail{display:block!important;width:100%!important;position:relative;overflow:hidden}
div.rp-school-products-wrap .rp-prod-card .product-thumbnail .rp-img-primary{width:100%!important;height:auto!important;display:block!important;border-radius:10px;transition:opacity 400ms ease,transform 400ms ease;aspect-ratio:1/1;object-fit:cover}
div.rp-school-products-wrap .rp-prod-card .product-thumbnail .rp-img-hover{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;opacity:0;transition:opacity 400ms ease;z-index:1;border-radius:10px}
div.rp-school-products-wrap .rp-prod-card .product-thumbnail .rp-img-hover[src=""]{display:none}
@media(min-width:769px){
    div.rp-school-products-wrap .rp-prod-card:hover .product-thumbnail .rp-img-hover[src]:not([src=""]){opacity:1}
    div.rp-school-products-wrap .rp-prod-card:hover .product-thumbnail .rp-img-primary{transform:scale(1.03)}
}
/* Info below image */
div.rp-school-products-wrap .rp-prod-info{padding:6px 2px 0}
div.rp-school-products-wrap .rp-prod-name{margin:0}
div.rp-school-products-wrap .rp-prod-name a{font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;color:#334155;text-decoration:none;line-height:1.35;display:block}
div.rp-school-products-wrap .rp-prod-price{margin-top:2px}
div.rp-school-products-wrap .rp-prod-price-current{font-family:'DM Sans',sans-serif;font-size:14px;font-weight:700;color:#0F172A}
/* Hide PS default cruft */
div.rp-school-products-wrap .product-description{display:none!important}
div.rp-school-products-wrap .product-flags{display:none!important}
div.rp-school-products-wrap .highlighted-informations{display:none!important}
div.rp-school-products-wrap .variant-links{display:none!important}

/* ── Product card — AYBL-style ── */
.rp-prod-card{background:transparent!important;border:none!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important;padding:0!important;margin:0!important}
.rp-prod-card .thumbnail-container{position:relative;overflow:hidden;border-radius:10px;background:#f5f5f5;padding:0!important;border:none!important;box-shadow:none!important}
.rp-prod-card .product-thumbnail{display:block;width:100%;position:relative;overflow:hidden}
.rp-prod-card .product-thumbnail .rp-img-primary{width:100%!important;height:auto!important;display:block;aspect-ratio:1/1;object-fit:cover;transition:opacity 400ms ease,transform 400ms ease;border-radius:10px}
.rp-prod-card .product-thumbnail .rp-img-hover{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;object-fit:cover;opacity:0;transition:opacity 400ms ease;z-index:1;border-radius:10px}
.rp-prod-card .product-thumbnail .rp-img-hover[src=""]{display:none}
@media(min-width:769px){
    .rp-prod-card:hover .product-thumbnail .rp-img-hover[src]:not([src=""]){opacity:1}
    .rp-prod-card:hover .product-thumbnail .rp-img-primary{transform:scale(1.03)}
}
/* fallback for product-thumbnail img without rp-img class (PS default miniatures) */
.rp-prod-card .product-thumbnail img:not(.rp-img-primary):not(.rp-img-hover){width:100%!important;height:auto!important;display:block;aspect-ratio:1/1;object-fit:cover;transition:transform 400ms ease;border-radius:10px}

/* ── Product card info (below image) ── */
.rp-prod-info{padding:10px 4px 4px}
.rp-prod-name{margin:0}
.rp-prod-name a{font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;color:#334155;text-decoration:none;line-height:1.4;display:block;transition:color 200ms ease}
.rp-prod-name a:hover{color:var(--rp-primary)}
.rp-prod-price{margin-top:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rp-prod-price-current{font-family:'Montserrat',sans-serif;font-size:15px;font-weight:700;color:#0F172A}
.rp-prod-price-old{font-family:'DM Sans',sans-serif;font-size:13px;font-weight:400;color:var(--rp-g400);text-decoration:line-through}

body.rp-school-collection .product-miniature .product-description{
    padding:10px 0 4px;
}
body.rp-school-collection .product-miniature .product-title{
    font-family:'DM Sans',sans-serif;font-weight:500;font-size:14px;
    line-height:1.4;margin:0 0 4px;
}
body.rp-school-collection .product-miniature .product-title a{
    color:#334155;text-decoration:none;
}
body.rp-school-collection .product-miniature .product-title a:hover{
    color:var(--rp-school-color,#2563EB);
}
body.rp-school-collection .product-miniature .product-price-and-shipping{
    margin:0;
}
body.rp-school-collection .product-miniature .price{
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;
    color:#0F172A;
}
body.rp-school-collection .product-miniature .regular-price{
    font-size:13px;color:var(--rp-g400);text-decoration:line-through;
    margin-right:6px;
}
body.rp-school-collection .product-miniature .discount-percentage,
body.rp-school-collection .product-miniature .discount-amount{
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:11px;
    color:#fff;background:var(--rp-accent);
    padding:3px 8px;border-radius:8px;margin-left:6px;
}
/* PRE-ORDER badge */
body.rp-school-collection .product-miniature .product-flags{
    position:absolute;top:8px;left:8px;z-index:2;
}
body.rp-school-collection .product-miniature .product-flag{
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:10px;
    text-transform:uppercase;letter-spacing:.5px;
    padding:4px 8px;border-radius:8px;
    background:var(--rp-school-color,#2563EB);color:#fff;
}
/* Hide quick-view — cleaner Shopify look */
body.rp-school-collection .product-miniature .highlighted-informations{
    display:none;
}

/* ── Pagination ── */
/* (Pagination styling moved to section 10) */

/* ── Tablet (< 1024px) ── */
@media(max-width:1024px){
    .rp-school-sort{display:none}
    .rp-school-tabs-bar{padding:16px 0 8px}
}

/* ── Mobile (< 600px): 2 columns + hero compacto horizontal ──
   Pau req v3 2026-04-29: en móvil el logo del cole NO va por encima
   del título (el flex column-reverse anterior dejaba la imagen sobre
   el texto y rompía la jerarquía). Ahora layout horizontal
   minimalista: logo 56px a la izquierda + texto compacto a la
   derecha. Título pequeño pero legible (22px). */
@media(max-width:600px){
    .rp-school-hero{padding:0 14px;margin-top:0}
    .rp-school-hero-inner{
        flex-direction:row;
        align-items:flex-start;
        text-align:left;
        gap:14px;
        padding:18px 0 12px;
    }
    .rp-school-hero-logo{
        flex-shrink:0;
        order:0;
    }
    .rp-school-logo-img,
    .rp-school-logo-placeholder{
        width:56px;height:56px;border-radius:12px;
    }
    .rp-school-logo-placeholder svg{width:32px;height:32px}
    .rp-school-hero-text{
        display:flex;flex-direction:column;align-items:flex-start;
        flex:1;min-width:0;
        text-align:left;
    }
    .rp-school-fundacion-badge{
        font-size:9px;padding:3px 9px;margin-bottom:5px;letter-spacing:.4px;
    }
    .rp-school-change-btn{
        font-size:11px;padding:4px 10px;margin-bottom:6px;
    }
    .rp-school-title{
        font-size:22px;line-height:1.15;
        margin:0 0 2px;
        word-break:break-word;
        text-align:left;
    }
    .rp-school-welcome{
        font-size:13px;margin:3px 0 0;line-height:1.35;
    }
    .rp-school-divider{width:100%;margin-top:6px}
    .rp-school-tabs-bar{
        flex-direction:column;align-items:stretch;
        gap:8px;padding:12px 0 8px;
    }
    .rp-school-tabs{
        gap:4px;
        padding-bottom:4px;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }
    .rp-school-tabs::-webkit-scrollbar{display:none}
    .rp-school-tab{
        padding:7px 14px;font-size:12px;
        white-space:nowrap;flex-shrink:0;
    }
    .rp-school-products-wrap{padding:0 12px}
    body.rp-school-collection #products{padding:16px 0 60px}
    body.rp-school-collection .product-miniature .product-description{
        padding:8px 0 4px;
    }
    body.rp-school-collection .product-miniature .product-title{font-size:13px}
    body.rp-school-collection .product-miniature .price{font-size:14px}
    body.rp-school-collection .product-miniature .product-thumbnail{border-radius:10px}
}

/* ============================================================================
   QUICK ADD — AYBL-style slide-up overlay on product cards
   ============================================================================ */

/* ── Desktop overlay — slides up from bottom of image on hover ── */
.rp-quick-add{
    position:absolute;
    bottom:0;left:0;right:0;
    z-index:5;
    background:rgba(255,255,255,.85);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    padding:8px 10px 10px;
    transform:translateY(100%);
    transition:transform 200ms ease;
    pointer-events:none;
}
@media(min-width:769px){
    .rp-prod-card:hover .rp-quick-add,
    body.rp-school-collection .product-miniature:hover .rp-quick-add{
        transform:translateY(0);
        pointer-events:auto;
    }
}

/* ── Label "AÑADIR RÁPIDO" — Montserrat 700 para destacarlo ── */
.rp-quick-add__label{
    display:block;
    text-align:center;
    font-family:'Montserrat',sans-serif;
    font-size:11px;font-weight:700;
    color:#334155;
    text-transform:uppercase;
    letter-spacing:.6px;
    margin-bottom:6px;
}

/* ── Options flex container ── */
.rp-quick-add__options{
    display:flex;flex-wrap:wrap;
    gap:4px;justify-content:center;
}

/* ── Individual size button — fondo blanco semitransparente para
   que se lea bien sobre la imagen del producto del fondo. ── */
.rp-quick-add__size{
    min-width:36px;height:30px;
    padding:0 8px;
    border:1px solid rgba(203,213,225,.6);
    border-radius:8px;
    background:rgba(255,255,255,.85);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
    font-family:'DM Sans',sans-serif;
    font-size:11px;font-weight:600;
    color:#334155;
    cursor:pointer;
    transition:all 150ms ease;
    display:flex;align-items:center;justify-content:center;
    line-height:1;
    white-space:nowrap;
}
.rp-quick-add__size:hover:not([disabled]){
    border-color:#2563EB;
    color:#2563EB;
    background:#fff;
}
.rp-quick-add__size[disabled]{
    opacity:.35;
    text-decoration:line-through;
    cursor:not-allowed;
}
.rp-quick-add__size.is-added{
    background:#10B981!important;
    border-color:#10B981!important;
    color:#fff!important;
}
.rp-quick-add__size.is-loading{
    pointer-events:none;
    opacity:.6;
}

/* ── Loading spinner ── */
.rp-quick-add__loading{
    display:flex;justify-content:center;padding:4px 0;
}
.rp-quick-add__spinner{
    width:18px;height:18px;
    border:2px solid #e2e8f0;
    border-top-color:#2563EB;
    border-radius:50%;
    animation:rpQaSpin .6s linear infinite;
}
@keyframes rpQaSpin{to{transform:rotate(360deg)}}

/* ── "Simple product" quick-add (no sizes) ── */
.rp-quick-add__simple{
    display:flex;justify-content:center;padding:2px 0;
}
.rp-quick-add__simple-btn{
    width:100%;height:30px;
    border:1px solid #CBD5E1;
    border-radius:8px;
    background:transparent;
    font-family:'DM Sans',sans-serif;
    font-size:11px;font-weight:500;
    color:#334155;
    cursor:pointer;
    transition:all 150ms ease;
}
.rp-quick-add__simple-btn:hover{
    border-color:#2563EB;
    color:#2563EB;
    background:#EFF6FF;
}

/* ── Mobile: hide the desktop overlay, show a + circle button ── */
@media(max-width:768px){
    .rp-quick-add{
        display:none!important;
    }
}

/* ── Mobile + button ── */
.rp-quick-add-mobile{
    display:none;
    position:absolute;
    bottom:8px;right:8px;
    z-index:5;
    width:36px;height:36px;
    border-radius:50%;
    border:none;
    background:rgba(255,255,255,.95);
    box-shadow:0 2px 8px rgba(15,23,42,.10);
    cursor:pointer;
    align-items:center;justify-content:center;
    color:#0F172A;
    transition:all 150ms ease;
    padding:0;
}
.rp-quick-add-mobile:active{
    transform:scale(.92);
}
@media(max-width:768px){
    .rp-quick-add-mobile{display:flex}
}

/* ── Mobile bottom-sheet ── */
.rp-quick-add-sheet{
    position:fixed;
    bottom:0;left:0;right:0;
    z-index:10000;
    background:#fff;
    border-radius:16px 16px 0 0;
    box-shadow:0 -4px 20px rgba(15,23,42,.15);
    padding:20px 20px 28px;
    transform:translateY(100%);
    transition:transform 250ms ease;
    visibility:hidden;
}
.rp-quick-add-sheet.is-open{
    transform:translateY(0);
    visibility:visible;
}
.rp-quick-add-sheet__label{
    display:block;
    text-align:center;
    font-family:'DM Sans',sans-serif;
    font-size:12px;font-weight:500;
    color:#64748B;
    text-transform:uppercase;
    letter-spacing:.5px;
    margin-bottom:12px;
}
.rp-quick-add-sheet__options{
    display:flex;flex-wrap:wrap;
    gap:6px;justify-content:center;
}
.rp-quick-add-sheet__size{
    min-width:44px;height:38px;
    padding:0 12px;
    border:1px solid #CBD5E1;
    border-radius:8px;
    background:transparent;
    font-family:'DM Sans',sans-serif;
    font-size:13px;font-weight:500;
    color:#334155;
    cursor:pointer;
    transition:all 150ms ease;
    display:flex;align-items:center;justify-content:center;
}
.rp-quick-add-sheet__size:active:not([disabled]){
    border-color:#2563EB;
    color:#2563EB;
    background:#EFF6FF;
}
.rp-quick-add-sheet__size[disabled]{
    opacity:.35;
    text-decoration:line-through;
    cursor:not-allowed;
}
.rp-quick-add-sheet__size.is-added{
    background:#10B981!important;
    border-color:#10B981!important;
    color:#fff!important;
}
.rp-quick-add-sheet__size.is-loading{
    pointer-events:none;opacity:.6;
}
.rp-quick-add-sheet__loading{
    display:flex;justify-content:center;padding:8px 0;
}

/* ── Mobile bottom-sheet backdrop ── */
.rp-quick-add-backdrop{
    display:none;
    position:fixed;inset:0;
    background:rgba(15,23,42,.3);
    z-index:9998;
}
.rp-quick-add-backdrop.is-visible{display:block}

/* ── Empty state for school collection ── */
.rp-school-empty{
    text-align:center;padding:80px 24px;
    max-width:480px;margin:0 auto;
}
.rp-school-empty svg{margin:0 auto 20px;display:block}
.rp-school-empty h4{
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:20px;
    color:var(--rp-dark);margin:0 0 10px;
}
.rp-school-empty p{
    font-family:'DM Sans',sans-serif;font-size:15px;
    color:var(--rp-g500);line-height:1.6;margin:0;
}

/* ============================================================================
   ROMPODA UX AUDIT · Professional Polish Additions
   Added: 2026-04-10
   ============================================================================ */

/* ── 1. Force talla selection — disabled add-to-cart state ── */
.add-to-cart.rp-talla-required{
    opacity:.5;
    cursor:not-allowed;
    pointer-events:none;
    background:#94A3B8 !important;
    border-color:#94A3B8 !important;
}
.add-to-cart.rp-talla-required:hover{
    transform:none !important;
    box-shadow:none !important;
}

/* ── 2. Add-to-cart feedback — success flash ── */
.add-to-cart.rp-added{
    background:#10B981 !important;
    border-color:#10B981 !important;
    color:#fff !important;
    pointer-events:none;
    transition:background 200ms ease, border-color 200ms ease;
}
.add-to-cart .rp-btn-spinner{
    display:inline-block;
    width:16px;height:16px;
    border:2px solid rgba(255,255,255,.3);
    border-top-color:#fff;
    border-radius:50%;
    animation:rpSpin .6s linear infinite;
    vertical-align:middle;
    margin-right:6px;
}
@keyframes rpSpin{to{transform:rotate(360deg)}}

/* ── 3. Empty cart — beautiful empty state ── */
.rp-empty-cart{
    text-align:center;
    padding:60px 24px 80px;
    max-width:420px;
    margin:0 auto;
}
.rp-empty-cart-icon{
    width:80px;height:80px;
    margin:0 auto 24px;
    background:var(--rp-primary-bg, #EFF6FF);
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
}
.rp-empty-cart-icon svg{
    width:36px;height:36px;
    stroke:#2563EB;
    fill:none;
    stroke-width:1.5;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.rp-empty-cart h2{
    font-family:'Montserrat',sans-serif;
    font-weight:700;font-size:22px;
    color:#0F172A;margin:0 0 10px;
}
.rp-empty-cart p{
    font-family:'DM Sans',sans-serif;
    font-size:15px;color:#64748B;
    line-height:1.6;margin:0 0 28px;
}
.rp-empty-cart .rp-empty-cart-cta{
    display:inline-flex;align-items:center;gap:8px;
    padding:12px 28px;
    background:#2563EB;color:#fff;
    font-family:'Montserrat',sans-serif;
    font-weight:600;font-size:14px;
    border-radius:12px;border:none;
    text-decoration:none;
    transition:background 200ms ease, transform 200ms ease;
}
.rp-empty-cart .rp-empty-cart-cta:hover{
    background:#1D4ED8;
    transform:translateY(-1px);
}

/* ── 5. Image hover swap on product listings ── */
/* (Rules now live in the main .rp-prod-card block above) */

/* ── 6. Sticky add-to-cart on mobile ── */
.rp-sticky-atc{
    display:none;
    position:fixed;
    bottom:0;left:0;right:0;
    z-index:1000;
    background:#fff;
    padding:10px 16px;
    box-shadow:0 -2px 12px rgba(15,23,42,.10);
    border-top:1px solid #E2E8F0;
    transition:transform 300ms ease;
}
.rp-sticky-atc.is-visible{display:flex;align-items:center;gap:12px}
/* Pau req 2026-05-03: cuando el cart drawer está abierto, ocultar el
   sticky-add-to-cart de la ficha de producto (se quedaba por encima
   del drawer por temas de stacking contexts). */
body.rp-cart-open .rp-sticky-atc,
body.rp-cart-open #rp-sticky-atc{display:none !important}
.rp-sticky-atc__info{
    flex:1;min-width:0;
}
.rp-sticky-atc__name{
    font-family:'Montserrat',sans-serif;
    font-weight:600;font-size:13px;
    color:#0F172A;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rp-sticky-atc__price{
    font-family:'Montserrat',sans-serif;
    font-weight:700;font-size:15px;
    color:#2563EB;
}
.rp-sticky-atc__btn{
    flex-shrink:0;
    padding:10px 20px;
    background:#2563EB;color:#fff;
    font-family:'Montserrat',sans-serif;
    font-weight:600;font-size:13px;
    border:none;border-radius:10px;
    cursor:pointer;
    transition:background 200ms ease;
    white-space:nowrap;
}
.rp-sticky-atc__btn:hover{background:#1D4ED8}
.rp-sticky-atc__btn:disabled{
    opacity:.5;cursor:not-allowed;
    background:#94A3B8;
}
/* Pau req v3 2026-04-29: el sticky-atc nuevo (id #rp-sticky-atc, clases
   rp-sticky-atc-info / -btn / -name / -price con guión simple) debe
   aparecer también en desktop. La versión antigua (BEM con __info __btn
   __name __price con doble guión) ya no se usa. */

/* ── 7. Back to top button ── */
.rp-back-to-top{
    position:fixed;
    bottom:24px;right:24px;
    z-index:900;
    width:44px;height:44px;
    background:#fff;
    border:1.5px solid #E2E8F0;
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;
    box-shadow:0 2px 8px rgba(15,23,42,.08);
    opacity:0;
    visibility:hidden;
    transform:translateY(12px);
    transition:opacity 300ms ease, transform 300ms ease, visibility 300ms ease, background 150ms ease, border-color 150ms ease;
}
.rp-back-to-top.is-visible{
    opacity:1;visibility:visible;transform:translateY(0);
}
.rp-back-to-top:hover{
    background:#EFF6FF;border-color:#2563EB;
}
.rp-back-to-top svg{
    width:20px;height:20px;
    stroke:#334155;fill:none;
    stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.rp-back-to-top:hover svg{stroke:#2563EB}
@media(max-width:768px){
    .rp-back-to-top{bottom:72px;right:16px;width:40px;height:40px}
}
/* ── 7c. Rompoda checkbox style universal (Pau req 2026-05-03 T17) ──
   Aplica al checkbox de "terms-and-conditions" del checkout y a todos
   los checkboxes del flujo de compra/cliente. Reemplaza el checkbox
   nativo del navegador por uno con la paleta Rompoda: 18×18px, borde
   gris suave, fondo azul al checked + tick blanco SVG inline. */
.checkout-step input[type="checkbox"]:not(.rp-keep-native),
.rp-account-page input[type="checkbox"]:not(.rp-keep-native),
input[type="checkbox"][name="conditions_to_approve[terms-and-conditions]"],
input[type="checkbox"][name^="conditions_to_approve"]{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    width:18px;height:18px;
    min-width:18px;min-height:18px;
    border:1.5px solid var(--rp-g300,#CBD5E1);
    border-radius:5px;
    background:#fff;
    cursor:pointer;
    position:relative;
    flex-shrink:0;
    transition:background 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
    vertical-align:middle;
    margin:0 8px 0 0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.checkout-step input[type="checkbox"]:not(.rp-keep-native):hover,
.rp-account-page input[type="checkbox"]:not(.rp-keep-native):hover,
input[type="checkbox"][name^="conditions_to_approve"]:hover{
    border-color:var(--rp-primary,#2563EB);
}
.checkout-step input[type="checkbox"]:not(.rp-keep-native):checked,
.rp-account-page input[type="checkbox"]:not(.rp-keep-native):checked,
input[type="checkbox"][name^="conditions_to_approve"]:checked{
    background-color:var(--rp-primary,#2563EB);
    border-color:var(--rp-primary,#2563EB);
}
.checkout-step input[type="checkbox"]:not(.rp-keep-native):checked::after,
.rp-account-page input[type="checkbox"]:not(.rp-keep-native):checked::after,
input[type="checkbox"][name^="conditions_to_approve"]:checked::after{
    content:'';
    position:absolute;
    inset:0;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
    background-repeat:no-repeat;
    background-position:center;
    background-size:11px 11px;
}
.checkout-step input[type="checkbox"]:not(.rp-keep-native):focus-visible,
.rp-account-page input[type="checkbox"]:not(.rp-keep-native):focus-visible,
input[type="checkbox"][name^="conditions_to_approve"]:focus-visible{
    outline:none;
    box-shadow:0 0 0 3px rgba(37,99,235,.18);
}
.checkout-step input[type="checkbox"]:not(.rp-keep-native):disabled,
.rp-account-page input[type="checkbox"]:not(.rp-keep-native):disabled{
    opacity:.55;
    cursor:not-allowed;
    background:var(--rp-g100,#F1F5F9);
}

/* Pau req v3 2026-04-29: en la ficha de producto NO mostramos el
   "volver arriba" — la barra sticky ATC ya cubre la zona inferior y
   sería ruido visual. */
body#product .rp-back-to-top,
body.product .rp-back-to-top,
body#product .rp-back-to-top{
    display:none !important;
}

/* ── 7b. Chat floating bubble (Pau req 2026-05-05 T11) ──
   FAB con gradiente azul + glow + icono Bot Lucide. Al click abre un
   panel estilo iMessage con cabecera (avatar+status dot+role+close) y
   2 vistas: MENÚ (canales WhatsApp/Chat web) y CHAT (burbujas+input pill).
   Mobile-first: bottom 72px sobre back-to-top, full-width-ish. */

/* ── FAB (botón flotante) ── */
.rp-wa-bubble{
    position:fixed;
    bottom:72px;left:16px;
    z-index:900;
    width:60px;height:60px;
    background:linear-gradient(135deg,#2563EB 0%,#1D4ED8 100%);
    border:2px solid rgba(255,255,255,.18);
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;
    color:#fff;
    box-shadow:0 0 20px rgba(37,99,235,.55), 0 0 40px rgba(37,99,235,.32), 0 8px 16px -4px rgba(15,23,42,.25);
    transition:transform 280ms cubic-bezier(.175,.885,.32,1.275), box-shadow 240ms ease;
    overflow:visible;
}
/* Highlight 3D top inner */
.rp-wa-bubble::before{
    content:"";
    position:absolute;inset:0;
    border-radius:50%;
    background:linear-gradient(180deg, rgba(255,255,255,.22) 0%, rgba(255,255,255,0) 55%);
    pointer-events:none;
}
/* Pulse ring */
.rp-wa-bubble::after{
    content:"";
    position:absolute;inset:-2px;
    border-radius:50%;
    background:rgba(37,99,235,.45);
    z-index:-1;
    animation:rpFabPulse 2.2s ease-out infinite;
    pointer-events:none;
}
@keyframes rpFabPulse{
    0%{transform:scale(1);opacity:.4}
    100%{transform:scale(1.55);opacity:0}
}
.rp-wa-bubble:hover{
    transform:scale(1.08);
    box-shadow:0 0 24px rgba(37,99,235,.7), 0 0 50px rgba(37,99,235,.4), 0 12px 22px -4px rgba(15,23,42,.3);
}
.rp-wa-bubble.is-open{
    transform:rotate(90deg) scale(1.02);
}
.rp-wa-bubble.is-open::after{animation:none;opacity:0}
.rp-wa-bubble__icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:30px;height:30px;
    transition:transform 220ms ease;
}
.rp-wa-bubble__icon svg{
    width:30px;height:30px;
    stroke:#fff;fill:none;
}
.rp-wa-bubble__status{
    position:absolute;bottom:2px;right:2px;
    width:14px;height:14px;border-radius:50%;
    border:2px solid #fff;
    background:var(--rp-g400);
    box-shadow:0 1px 2px rgba(15,23,42,.15);
    z-index:1;
}
.rp-wa-bubble__status.is-open{background:var(--rp-success);box-shadow:0 0 0 3px rgba(16,185,129,.32),0 1px 2px rgba(15,23,42,.15)}
.rp-wa-bubble__status.is-closed{background:var(--rp-warning);box-shadow:0 0 0 3px rgba(245,158,11,.28),0 1px 2px rgba(15,23,42,.15)}

/* ── Panel del chat ── */
.rp-wa-menu{
    position:fixed;
    bottom:144px;left:16px;right:16px;
    z-index:901;
    background:#fff;
    border-radius:20px;
    box-shadow:0 20px 40px -4px rgba(15,23,42,.18), 0 8px 16px -4px rgba(15,23,42,.10);
    border:1px solid var(--rp-g200);
    opacity:0;
    visibility:hidden;
    transform:scale(.92) translateY(16px);
    transform-origin:bottom left;
    transition:opacity 220ms ease, transform 220ms cubic-bezier(.175,.885,.32,1.275), visibility 220ms;
    max-height:calc(100vh - 180px);
    display:flex;flex-direction:column;
    overflow:hidden;
}
.rp-wa-menu.is-open{
    opacity:1;visibility:visible;
    transform:scale(1) translateY(0);
    animation:rpChatPopIn .25s cubic-bezier(.175,.885,.32,1.275);
}
@keyframes rpChatPopIn{
    0%{opacity:0;transform:scale(.92) translateY(16px)}
    100%{opacity:1;transform:scale(1) translateY(0)}
}

/* Header (común a MENÚ y CHAT) */
.rp-wa-menu__header{
    display:flex;align-items:center;gap:10px;
    padding:14px 14px 14px 16px;
    background:linear-gradient(135deg,#EFF6FF 0%,#DBEAFE 100%);
    border-bottom:1px solid rgba(37,99,235,.10);
    border-radius:20px 20px 0 0;
    flex-shrink:0;
}
.rp-wa-menu__back{
    background:rgba(37,99,235,.10);border:none;color:#1D4ED8;
    width:32px;height:32px;border-radius:10px;
    display:inline-flex;align-items:center;justify-content:center;
    cursor:pointer;flex-shrink:0;
    transition:background 150ms ease, transform 150ms ease;
}
.rp-wa-menu__back:hover{background:rgba(37,99,235,.18);transform:translateX(-1px)}
.rp-wa-menu__back svg{width:18px;height:18px;stroke:currentColor;fill:none}

.rp-wa-menu__agent{display:flex;align-items:center;gap:11px;flex:1;min-width:0}
.rp-wa-menu__avatar{
    position:relative;
    width:42px;height:42px;border-radius:50%;
    background:linear-gradient(135deg,#2563EB,#1D4ED8);
    display:inline-flex;align-items:center;justify-content:center;
    flex-shrink:0;
    border:2px solid #fff;
    box-shadow:0 2px 6px rgba(37,99,235,.30);
}
.rp-wa-menu__avatar svg{width:24px;height:24px;stroke:#fff;fill:none}
.rp-wa-menu__avatar-status{
    position:absolute;bottom:-1px;right:-1px;
    width:12px;height:12px;border-radius:50%;
    border:2px solid #fff;
    background:var(--rp-g400);
}
.rp-wa-menu__avatar-status.is-open{background:var(--rp-success)}
.rp-wa-menu__avatar-status.is-closed{background:var(--rp-warning)}

.rp-wa-menu__agent-info{min-width:0;flex:1;display:flex;flex-direction:column;gap:1px}
.rp-wa-menu__title{
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;
    color:var(--rp-dark);margin:0;line-height:1.2;
    letter-spacing:-.01em;
}
.rp-wa-menu__subtitle{
    font-family:'DM Sans',sans-serif;font-size:11px;
    color:var(--rp-g700);margin:1px 0 0;
    display:flex;align-items:center;gap:5px;
    font-weight:500;
}
.rp-wa-menu__role{
    font-family:'DM Sans',sans-serif;font-size:10.5px;
    color:var(--rp-g500);margin:1px 0 0;line-height:1.3;
}
.rp-wa-menu__status-dot{
    display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0;
}
.rp-wa-menu__status-dot.is-open{background:var(--rp-success);box-shadow:0 0 0 2px rgba(16,185,129,.25)}
.rp-wa-menu__status-dot.is-closed{background:var(--rp-warning);box-shadow:0 0 0 2px rgba(245,158,11,.25)}

.rp-wa-menu__close{
    background:transparent;border:none;color:var(--rp-g500);
    width:32px;height:32px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    cursor:pointer;flex-shrink:0;
    transition:background 150ms ease, color 150ms ease;
}
.rp-wa-menu__close:hover{background:rgba(15,23,42,.06);color:var(--rp-dark)}
.rp-wa-menu__close svg{width:18px;height:18px;stroke:currentColor;fill:none}

/* Body de la vista MENÚ */
.rp-wa-menu__body{
    padding:14px;
    display:flex;flex-direction:column;gap:8px;
    overflow-y:auto;
}
.rp-wa-menu__notice{
    background:#FEF3C7;
    border:1px solid #FDE68A;
    color:#92400E;
    border-radius:12px;
    padding:10px 12px;
    font-family:'DM Sans',sans-serif;font-size:12px;line-height:1.45;
    display:flex;gap:8px;align-items:flex-start;
}
.rp-wa-menu__notice svg{width:18px;height:18px;flex-shrink:0;color:#D97706;margin-top:1px}

.rp-wa-menu__opt{
    display:flex;align-items:center;gap:12px;
    padding:11px 12px;
    border-radius:14px;
    text-decoration:none;
    color:var(--rp-dark);
    transition:background 150ms ease, border-color 150ms ease, transform 150ms ease;
    cursor:pointer;
    border:1.5px solid var(--rp-g200);
    background:#fff;
    width:100%;
    text-align:left;
    font-family:'DM Sans',sans-serif;
}
.rp-wa-menu__opt:hover{
    background:var(--rp-g50);
    text-decoration:none;color:var(--rp-dark);
    border-color:#BFDBFE;
    transform:translateY(-1px);
}
.rp-wa-menu__opt.is-recommended{
    border-color:#A7F3D0;
    background:#ECFDF5;
}
.rp-wa-menu__opt.is-recommended:hover{background:#D1FAE5;border-color:#6EE7B7}

.rp-wa-menu__opt-ico{
    width:42px;height:42px;border-radius:12px;
    display:inline-flex;align-items:center;justify-content:center;
    flex-shrink:0;
}
.rp-wa-menu__opt-ico--wa{background:rgba(37,211,102,.12)}
.rp-wa-menu__opt-ico--wa svg{width:22px;height:22px;fill:#25D366}
.rp-wa-menu__opt-ico--web{background:rgba(37,99,235,.12)}
.rp-wa-menu__opt-ico--web svg{width:22px;height:22px;stroke:#2563EB;fill:none}
.rp-wa-menu__opt-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.rp-wa-menu__opt-name{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;color:var(--rp-dark);
    display:flex;align-items:center;gap:6px;flex-wrap:wrap;
}
.rp-wa-menu__opt-desc{font-family:'DM Sans',sans-serif;font-size:11px;color:var(--rp-g500);line-height:1.3}
.rp-wa-menu__opt-tip{
    font-family:'DM Sans',sans-serif;font-size:10px;color:var(--rp-success);
    margin-top:2px;font-weight:500;line-height:1.25;
}
.rp-wa-menu__opt-arrow{color:var(--rp-g400);flex-shrink:0;align-self:center}
.rp-wa-menu__opt-arrow svg{width:16px;height:16px;stroke:currentColor;fill:none}

.rp-wa-menu__badge{
    display:inline-flex;align-items:center;gap:4px;
    background:#ECFDF5;color:#059669;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:10px;
    padding:2px 8px;border-radius:9999px;
    line-height:1.4;
}
.rp-wa-menu__badge-dot{
    width:6px;height:6px;border-radius:50%;background:var(--rp-success);
    box-shadow:0 0 0 2px rgba(16,185,129,.25);
}
.rp-wa-menu__opt:not(.is-recommended) .rp-wa-menu__opt-tip{display:none}

/* ── Vista CHAT ── */
.rp-wa-menu.is-chat .rp-wa-menu__body{display:none}
.rp-chat__body{
    display:flex;flex-direction:column;
    flex:1 1 auto;
    min-height:340px;
    max-height:calc(100vh - 260px);
    overflow:hidden;
}
.rp-chat__messages{
    flex:1 1 auto;
    overflow-y:auto;
    padding:16px 14px;
    background:linear-gradient(180deg, #F8FAFC 0%, #fff 100%);
    display:flex;flex-direction:column;gap:10px;
    scroll-behavior:smooth;
}
.rp-chat__msg{
    display:flex;gap:8px;align-items:flex-end;
    max-width:90%;
}
.rp-chat__msg--user{align-self:flex-end;flex-direction:row-reverse}
.rp-chat__msg--bot{align-self:flex-start}
.rp-chat__avatar{
    width:32px;height:32px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    flex-shrink:0;
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;
    border:2px solid #fff;
    box-shadow:0 1px 3px rgba(15,23,42,.10);
}
.rp-chat__avatar--bot{
    background:linear-gradient(135deg,#2563EB,#1D4ED8);
    color:#fff;
}
.rp-chat__avatar--bot svg{width:18px;height:18px;stroke:#fff;fill:none}
.rp-chat__avatar--user{
    background:linear-gradient(135deg,#06B6D4,#0891B2);
    color:#fff;
}
.rp-chat__bubble{
    padding:10px 14px;
    font-family:'DM Sans',sans-serif;font-size:13.5px;line-height:1.5;
    word-wrap:break-word;overflow-wrap:break-word;
    position:relative;
    display:flex;flex-direction:column;gap:2px;
}
.rp-chat__msg--bot .rp-chat__bubble{
    background:rgba(241,245,249,.9);
    color:var(--rp-dark);
    border-radius:16px 16px 16px 4px;
}
.rp-chat__msg--user .rp-chat__bubble{
    background:var(--rp-primary);
    color:#fff;
    border-radius:16px 16px 4px 16px;
    box-shadow:0 2px 6px rgba(37,99,235,.20);
}
.rp-chat__bubble-text{display:block}
/* Markdown renderizado dentro de la burbuja del bot/agente */
.rp-chat__bubble-text p{margin:0 0 8px 0;line-height:1.45}
.rp-chat__bubble-text p:last-child{margin-bottom:0}
.rp-chat__bubble-text strong{font-weight:700;color:inherit}
.rp-chat__bubble-text em{font-style:italic}
.rp-chat__bubble-text ul,
.rp-chat__bubble-text ol{
    margin:6px 0;padding-left:20px;
    display:flex;flex-direction:column;gap:2px;
}
.rp-chat__bubble-text li{line-height:1.45;margin:0}
.rp-chat__bubble-text ul li::marker{color:var(--rp-primary)}
.rp-chat__bubble-text ol li::marker{color:var(--rp-primary);font-weight:600}
.rp-chat__link{
    color:var(--rp-primary);
    text-decoration:underline;text-underline-offset:2px;
    font-weight:500;
    word-break:break-word;
}
.rp-chat__link:hover{color:var(--rp-primary-dark);text-decoration-thickness:1.5px}
.rp-chat__msg--user .rp-chat__link{color:#fff;text-decoration-color:rgba(255,255,255,.7)}
.rp-chat__msg--user .rp-chat__link:hover{color:#fff;text-decoration-color:#fff}
/* Referencia de pedido — variante tipo chip */
.rp-chat__link--order{
    display:inline-flex;align-items:center;gap:4px;
    padding:1px 8px;border-radius:6px;
    background:rgba(37,99,235,.10);
    color:var(--rp-primary);
    font-family:'Montserrat',system-ui,sans-serif;
    font-weight:600;font-size:.92em;
    letter-spacing:.3px;
    text-decoration:none;
    transition:background .15s ease,transform .15s ease;
}
.rp-chat__link--order:hover{
    background:rgba(37,99,235,.18);
    transform:translateY(-1px);
    text-decoration:none;
}
.rp-chat__msg--user .rp-chat__link--order{
    background:rgba(255,255,255,.18);color:#fff;
}
.rp-chat__msg--user .rp-chat__link--order:hover{background:rgba(255,255,255,.28)}
.rp-chat__msg.is-pending .rp-chat__bubble{opacity:.92}
.rp-chat__pending{
    font-size:10px;color:rgba(255,255,255,.7);
    font-family:'DM Sans',sans-serif;letter-spacing:2px;line-height:1;
    align-self:flex-end;
}

/* AGENT-5: indicador "está escribiendo…" — 3 puntos animados en burbuja bot */
.rp-chat__msg.is-typing .rp-chat__bubble{
    padding:12px 14px;
    color:#64748B;
}
.rp-typing{display:inline-flex;gap:4px;padding:4px 0;align-items:center}
.rp-typing i{
    width:6px;height:6px;border-radius:50%;
    background:currentColor;opacity:.4;
    animation:rpDot 1.2s infinite;
}
.rp-typing i:nth-child(2){animation-delay:.2s}
.rp-typing i:nth-child(3){animation-delay:.4s}
@keyframes rpDot{
    0%,60%,100%{opacity:.3;transform:scale(.85)}
    30%{opacity:1;transform:scale(1)}
}

/* AGENT-5: avatar agente humano (verde, iniciales) */
.rp-chat__avatar--agent{
    background:linear-gradient(135deg,#10B981,#059669);
    color:#fff;
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:11px;
    letter-spacing:.3px;
}
.rp-chat__msg--from-agent .rp-chat__bubble{
    background:#ECFDF5;
    border-radius:16px 16px 16px 4px;
    color:#065F46;
}

/* AGENT-5: aviso "conversación cerrada" inline en el flujo de mensajes */
.rp-chat__closed-notice{
    align-self:center;
    max-width:90%;
    padding:10px 14px;
    margin:8px 0;
    background:#F1F5F9;color:#64748B;
    font-family:'DM Sans',sans-serif;font-size:12.5px;line-height:1.45;
    text-align:center;
    border-radius:12px;
    border:1px dashed #CBD5E1;
}

/* AGENT-5: modal CSAT (valoración con 4 emoticonos) sobre el panel */
.rp-csat-overlay{
    position:absolute;inset:0;
    background:rgba(15,23,42,.55);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
    display:flex;align-items:center;justify-content:center;
    padding:16px;
    z-index:20;
    animation:rpCsatFadeIn 220ms ease-out;
    border-radius:inherit;
}
@keyframes rpCsatFadeIn{
    from{opacity:0}
    to{opacity:1}
}
.rp-csat-card{
    position:relative;
    width:100%;max-width:300px;
    background:#fff;
    border-radius:16px;
    padding:22px 18px 18px;
    box-shadow:0 20px 25px rgba(15,23,42,.12), 0 8px 10px rgba(15,23,42,.06);
    text-align:center;
    animation:rpCsatPop 280ms cubic-bezier(.34,1.56,.64,1);
}
@keyframes rpCsatPop{
    from{opacity:0;transform:scale(.85) translateY(8px)}
    to{opacity:1;transform:scale(1) translateY(0)}
}
.rp-csat__close{
    position:absolute;top:8px;right:10px;
    width:28px;height:28px;
    border:none;background:transparent;
    color:#94A3B8;font-size:22px;line-height:1;
    cursor:pointer;border-radius:50%;
    transition:background 150ms ease, color 150ms ease;
}
.rp-csat__close:hover{background:#F1F5F9;color:#334155}
.rp-csat__title{
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:16px;
    color:var(--rp-dark, #0F172A);
    margin:0 0 4px;
}
.rp-csat__sub{
    font-family:'DM Sans',sans-serif;font-size:12.5px;color:#64748B;
    margin:0 0 16px;
}
.rp-csat__btns{
    display:grid;grid-template-columns:repeat(4,1fr);gap:6px;
    margin-bottom:6px;
}
.rp-csat__btn{
    display:flex;flex-direction:column;align-items:center;gap:4px;
    padding:10px 4px 8px;
    border:1.5px solid #E2E8F0;background:#F8FAFC;
    border-radius:12px;
    cursor:pointer;
    transition:transform 180ms ease, border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
    font-family:'DM Sans',sans-serif;
}
.rp-csat__btn:hover:not(:disabled){
    transform:translateY(-2px) scale(1.05);
    border-color:#2563EB;
    background:#EFF6FF;
    box-shadow:0 4px 6px rgba(15,23,42,.07);
}
.rp-csat__btn:disabled{cursor:default;opacity:.55}
.rp-csat__btn.is-selected{
    border-color:#2563EB;background:#DBEAFE;opacity:1;
}
.rp-csat__emoji{
    font-size:36px;line-height:1;
    /* fallback color por si el sistema no renderiza el emoji nativo */
    color:#0F172A;
}
.rp-csat__label{
    font-size:10.5px;font-weight:600;color:#334155;
    letter-spacing:.2px;
    text-transform:uppercase;
}
.rp-csat__thanks{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;
    color:#059669;
    padding:12px 0 4px;
}

@media(min-width:769px){
    .rp-csat-card{max-width:340px;padding:26px 22px 20px}
    .rp-csat__emoji{font-size:42px}
    .rp-csat__title{font-size:17px}
}

/* Input pill + send redondo */
.rp-chat__input-wrap{
    display:flex;gap:8px;align-items:center;
    padding:10px 12px 12px;
    background:#fff;
    border-top:1px solid var(--rp-g100);
    flex-shrink:0;
}
.rp-chat__input{
    flex:1;
    height:44px;
    border:1.5px solid var(--rp-g300);
    border-radius:9999px;
    padding:0 18px;
    font-family:'DM Sans',sans-serif;font-size:13.5px;color:var(--rp-dark);
    background:#fff;
    transition:border-color 150ms ease, box-shadow 150ms ease;
    outline:none;
}
.rp-chat__input::placeholder{color:var(--rp-g400)}
.rp-chat__input:focus{
    border-color:var(--rp-primary);
    box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
/* Pau req 2026-05-06 v2: send del chat — reset del global form button[type=submit]
   (línea ~41) que aplica width:100% + padding + border-radius con !important.
   Forzamos botón redondo 40x40 y SVG 18px visible (era invisible por
   herencia incorrecta de stroke). */
.rp-chat__send{
    width:40px!important;height:40px!important;
    min-width:40px!important;max-width:40px!important;
    border-radius:50%!important;
    padding:0!important;
    background:linear-gradient(135deg,#2563EB,#1D4ED8)!important;
    color:#fff!important;border:none!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    cursor:pointer;flex-shrink:0;flex-grow:0;
    transition:background 150ms ease, transform 180ms ease, box-shadow 150ms ease!important;
    box-shadow:0 4px 10px -2px rgba(37,99,235,.4)!important;
    text-transform:none!important;letter-spacing:0!important;
    overflow:hidden;
}
.rp-chat__send:hover{
    transform:scale(1.08)!important;
    box-shadow:0 6px 14px -2px rgba(37,99,235,.5)!important;
}
.rp-chat__send:active{transform:scale(.96)!important}
.rp-chat__send svg{
    width:20px!important;height:20px!important;
    stroke:#ffffff!important;fill:none!important;
    display:block!important;
    flex-shrink:0;
    pointer-events:none;
}
.rp-chat__send svg path{stroke:#ffffff!important;fill:none!important}
.rp-chat__input-wrap{box-sizing:border-box;width:100%;max-width:100%}
.rp-chat__input{box-sizing:border-box;min-width:0}

/* Identidad opcional (no logueados) */
.rp-chat__identity{
    display:flex;flex-direction:column;gap:8px;
    padding:14px;
    background:#fff;
    border-top:1px solid var(--rp-g100);
    flex-shrink:0;
}
.rp-chat__field input{
    width:100%;height:42px;
    border:1.5px solid var(--rp-g300);
    border-radius:9999px;
    padding:0 16px;
    font-family:'DM Sans',sans-serif;font-size:13px;color:var(--rp-dark);
    box-sizing:border-box;
    outline:none;
    transition:border-color 150ms ease, box-shadow 150ms ease;
}
.rp-chat__field input:focus{
    border-color:var(--rp-primary);
    box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.rp-chat__start{
    height:44px;border-radius:12px;
    background:var(--rp-primary);color:#fff;border:none;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;
    cursor:pointer;
    transition:background 150ms ease, transform 150ms ease;
}
.rp-chat__start:hover{background:var(--rp-primary-dark);transform:translateY(-1px)}

/* En PDP no mostramos la burbuja para no chocar con sticky-add-to-cart */
body#product .rp-wa-bubble,
body.product .rp-wa-bubble,
body#product .rp-wa-menu,
body.product .rp-wa-menu{display:none !important}

/* Tablet/desktop */
@media(min-width:769px){
    .rp-wa-bubble{bottom:24px;left:24px;width:64px;height:64px}
    .rp-wa-bubble__icon{width:32px;height:32px}
    .rp-wa-bubble__icon svg{width:32px;height:32px}
    .rp-wa-menu{
        bottom:104px;left:24px;right:auto;
        width:380px;min-width:380px;
        max-height:calc(100vh - 140px);
    }
    .rp-chat__body{min-height:420px;max-height:calc(100vh - 240px)}
    .rp-chat__messages{max-height:380px}
}

/* ── 8. Breadcrumbs styling (global) ── */
.breadcrumb{
    font-family:'DM Sans',sans-serif;
    font-size:12px;
    color:#94A3B8;
    padding:12px 0;
    margin:0 0 8px;
    background:transparent;
    border:none;
}
.breadcrumb li{display:inline-flex;align-items:center}
.breadcrumb li::after{
    content:'/';
    margin:0 8px;
    color:#CBD5E1;
    font-size:11px;
}
.breadcrumb li:last-child::after{display:none}
.breadcrumb li a{
    color:#64748B;
    text-decoration:none;
    transition:color 150ms ease;
}
.breadcrumb li a:hover{color:#2563EB}
.breadcrumb li:last-child,
.breadcrumb li:last-child span{color:#334155;font-weight:500}

/* ── 10. Pagination styling — Rompoda design ── */
/* Hide PS9 default pagination (in case it leaks through) */
nav.pagination{display:none!important}

/* Rompoda pagination wrapper */
.rp-pagination-wrap{
    display:flex;flex-direction:column;align-items:center;
    gap:10px;padding:28px 0 8px;
}
.rp-pagination-summary{
    font-family:'DM Sans',sans-serif;font-size:13px;
    color:#94A3B8;font-weight:400;
}

/* Pagination list */
.rp-pagination{
    display:flex;align-items:center;justify-content:center;
    gap:4px;padding:0;margin:0;list-style:none;
}

/* Individual items (numbers + prev/next) */
.rp-pagination__item{
    min-width:40px;height:40px;
    display:flex;align-items:center;justify-content:center;
    border-radius:10px;
    font-family:'DM Sans',sans-serif;
    font-size:14px;font-weight:500;
    color:#334155;
    text-decoration:none;
    transition:all 150ms ease;
    border:1.5px solid transparent;
    cursor:pointer;
}
.rp-pagination__item:hover{
    background:#F1F5F9;color:#2563EB;
}

/* Active page */
.rp-pagination__item--active,
.rp-pagination__item--active:hover{
    background:#2563EB!important;
    color:#fff!important;
    font-weight:600;
    border-color:#2563EB!important;
}

/* Previous / Next */
.rp-pagination__prev,
.rp-pagination__next{
    font-weight:600;color:#2563EB;
}
.rp-pagination__prev:hover,
.rp-pagination__next:hover{
    background:#EFF6FF;
}

/* Disabled */
.rp-pagination__item--disabled{
    opacity:.35;cursor:not-allowed;pointer-events:none;
}

/* Dots (ellipsis) */
.rp-pagination__dots{
    min-width:40px;height:40px;
    display:flex;align-items:center;justify-content:center;
    color:#94A3B8;font-size:14px;
}

/* School collection — use school color for active page */
body.rp-school-collection .rp-pagination__item--active,
body.rp-school-collection .rp-pagination__item--active:hover{
    background:var(--rp-school-color,#2563EB)!important;
    border-color:var(--rp-school-color,#2563EB)!important;
}
body.rp-school-collection .rp-pagination__prev,
body.rp-school-collection .rp-pagination__next{
    color:var(--rp-school-color,#2563EB);
}
body.rp-school-collection .rp-pagination__prev:hover,
body.rp-school-collection .rp-pagination__next:hover{
    background:color-mix(in srgb, var(--rp-school-color,#2563EB) 10%, transparent);
}
body.rp-school-collection .rp-pagination__item:hover{
    color:var(--rp-school-color,#2563EB);
}
body.rp-school-collection .rp-pagination-wrap{
    max-width:1200px;margin:0 auto;padding:28px 24px 8px;
}

/* Mobile: smaller pagination buttons */
@media(max-width:767px){
    .rp-pagination__item{min-width:36px;height:36px;font-size:13px}
    .rp-pagination{gap:2px}
    .rp-pagination__dots{min-width:32px;height:36px}
    .rp-pagination__prev svg,
    .rp-pagination__next svg{width:16px;height:16px}
}

/* ── 11. Product page polish ── */
/* Delivery info snippet */
.rp-delivery-snippet{
    display:flex;align-items:center;gap:10px;
    padding:12px 16px;
    background:#ECFDF5;
    border:1px solid #A7F3D0;
    border-radius:10px;
    margin:16px 0;
    font-family:'DM Sans',sans-serif;
    font-size:13px;color:#065F46;
}
.rp-delivery-snippet svg{
    width:18px;height:18px;flex-shrink:0;
    stroke:#10B981;fill:none;
    stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}

/* Wishlist heart icon */
.rp-wishlist-btn{
    display:inline-flex;align-items:center;gap:6px;
    background:transparent;
    border:1.5px solid #E2E8F0;
    border-radius:10px;
    padding:8px 14px;
    font-family:'DM Sans',sans-serif;
    font-size:13px;color:#64748B;
    cursor:pointer;
    transition:all 200ms ease;
    margin-top:8px;
}
.rp-wishlist-btn:hover{
    border-color:#EF4444;color:#EF4444;
}
.rp-wishlist-btn svg{
    width:16px;height:16px;
    stroke:currentColor;fill:none;
    stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.rp-wishlist-btn.is-active svg{
    fill:#EF4444;stroke:#EF4444;
}

/* Product page variant buttons — larger and clearer */
.product-variants-item .form-control-select{
    height:44px;
    border:1.5px solid #CBD5E1;
    border-radius:8px;
    font-family:'DM Sans',sans-serif;
    font-size:14px;
    color:#334155;
    padding:0 12px;
    transition:border-color 200ms ease, box-shadow 200ms ease;
}
.product-variants-item .form-control-select:focus{
    border-color:#2563EB;
    box-shadow:0 0 0 3px rgba(37,99,235,.12);
    outline:none;
}
.product-variants-item .control-label{
    font-family:'Montserrat',sans-serif;
    font-weight:600;font-size:13px;
    color:#334155;
    margin-bottom:6px;
    display:block;
}

/* Quantity input polish */
#quantity_wanted{
    height:44px;
    border:1.5px solid #CBD5E1;
    border-radius:8px;
    font-family:'DM Sans',sans-serif;
    font-size:16px;
    text-align:center;
    width:64px;
    color:#334155;
    transition:border-color 200ms ease;
}
#quantity_wanted:focus{
    border-color:#2563EB;
    box-shadow:0 0 0 3px rgba(37,99,235,.12);
    outline:none;
}

/* Product tab styling */
.product-information .tabs .nav-tabs{
    border-bottom:2px solid #F1F5F9;
    gap:0;
}
.product-information .tabs .nav-tabs .nav-link{
    font-family:'Montserrat',sans-serif;
    font-weight:500;font-size:13px;
    color:#64748B;
    padding:10px 18px;
    border:none;
    border-bottom:2px solid transparent;
    margin-bottom:-2px;
    transition:color 150ms ease, border-color 150ms ease;
    background:transparent;
}
.product-information .tabs .nav-tabs .nav-link:hover{
    color:#2563EB;
}
.product-information .tabs .nav-tabs .nav-link.active{
    color:#2563EB;
    border-bottom-color:#2563EB;
    font-weight:600;
}
.product-information .tabs .tab-content{
    padding:20px 0;
    font-family:'DM Sans',sans-serif;
    font-size:14px;
    color:#334155;
    line-height:1.7;
}

/* ── 13. Accessibility — skip to content ── */
.rp-skip-link{
    position:fixed;
    top:-100%;left:50%;
    transform:translateX(-50%);
    z-index:10000;
    background:#2563EB;color:#fff;
    padding:10px 24px;
    border-radius:0 0 12px 12px;
    font-family:'Montserrat',sans-serif;
    font-weight:600;font-size:13px;
    text-decoration:none;
    transition:top 200ms ease;
}
.rp-skip-link:focus{
    top:0;
}

/* ── Product page — add-to-cart button styling override ── */
#add-to-cart-or-refresh .add-to-cart{
    height:48px;
    border-radius:12px;
    font-family:'Montserrat',sans-serif;
    font-weight:600;font-size:14px;
    padding:0 28px;
    transition:background 200ms ease, transform 200ms ease, box-shadow 200ms ease, opacity 200ms ease;
}
#add-to-cart-or-refresh .add-to-cart:not(:disabled):not(.rp-talla-required):hover{
    transform:translateY(-1px);
    box-shadow:0 4px 6px rgba(15,23,42,.07), 0 2px 4px rgba(15,23,42,.04);
}

/* ── Search results empty state ── */
.rp-no-results{
    text-align:center;
    padding:60px 24px;
    max-width:420px;
    margin:0 auto;
}
.rp-no-results-icon{
    width:64px;height:64px;
    margin:0 auto 20px;
    background:#F1F5F9;
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
}
.rp-no-results-icon svg{
    width:28px;height:28px;
    stroke:#94A3B8;fill:none;
    stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
}
.rp-no-results h2{
    font-family:'Montserrat',sans-serif;
    font-weight:700;font-size:20px;
    color:#0F172A;margin:0 0 8px;
}
.rp-no-results p{
    font-family:'DM Sans',sans-serif;
    font-size:14px;color:#64748B;
    line-height:1.6;margin:0;
}

/* ── Order history empty state ── */
.rp-no-orders{
    text-align:center;
    padding:60px 24px;
    max-width:420px;
    margin:0 auto;
}
.rp-no-orders-icon{
    width:64px;height:64px;
    margin:0 auto 20px;
    background:#EFF6FF;
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
}
.rp-no-orders-icon svg{
    width:28px;height:28px;
    stroke:#2563EB;fill:none;
    stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
}
.rp-no-orders h2{
    font-family:'Montserrat',sans-serif;
    font-weight:700;font-size:20px;
    color:#0F172A;margin:0 0 8px;
}
.rp-no-orders p{
    font-family:'DM Sans',sans-serif;
    font-size:14px;color:#64748B;
    line-height:1.6;margin:0 0 24px;
}
.rp-no-orders a{
    display:inline-flex;align-items:center;gap:6px;
    color:#2563EB;font-weight:500;
    text-decoration:none;
}
.rp-no-orders a:hover{text-decoration:underline}

/* ── Product card hover lift ── */
.rp-prod-card .thumbnail-container{
    transition:transform 300ms ease, box-shadow 300ms ease;
}
@media(min-width:769px){
    .rp-prod-card:hover .thumbnail-container{
        transform:translateY(-2px);
        box-shadow:0 8px 24px rgba(15,23,42,.10);
    }
}

/* ── Cart page Rompoda polish ── */
.cart-container .card-block h1{
    font-family:'Montserrat',sans-serif;
    font-weight:800;font-size:24px;
    color:#0F172A;
}
.cart-summary{
    border-radius:16px !important;
    border:1px solid #E2E8F0 !important;
    overflow:hidden;
}

/* ── Mobile product page: space for sticky bar ── */
@media(max-width:768px){
    body.rp-has-sticky-atc #main{
        padding-bottom:72px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   ROMPODA – CART PAGE + CHECKOUT PAGE STYLING
   Appended to rompoda.css — DO NOT EDIT existing rules above
   ═══════════════════════════════════════════════════════════════ */

/* ── CART PAGE ── */
.rp-cart-page{padding:32px 24px;max-width:1280px;margin:0 auto}
.rp-cart-grid{display:grid;grid-template-columns:1fr 380px;gap:32px;align-items:start}
@media(max-width:991px){
  .rp-cart-page{padding:20px 16px}
  .rp-cart-grid{grid-template-columns:1fr;gap:24px}
}
@media(max-width:520px){
  .rp-cart-page{padding:16px 12px}
}
.rp-cart-card{
  background:#fff;border-radius:16px;
  border:1px solid var(--rp-g200,#E2E8F0);
  box-shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
  overflow:hidden;
}
.rp-cart-card-head{
  display:flex;align-items:center;gap:12px;
  padding:24px 28px 20px;border-bottom:1px solid var(--rp-g100,#F1F5F9);
}
.rp-cart-title{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:22px;
  color:var(--rp-dark,#0F172A);margin:0;line-height:1.3;
}
.rp-cart-count-badge{
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;
  background:var(--rp-primary-bg,#EFF6FF);color:var(--rp-primary,#2563EB);
  padding:4px 12px;border-radius:9999px;
}
.rp-cart-continue{
  display:inline-flex;align-items:center;gap:6px;margin-top:16px;
  font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;
  color:var(--rp-primary,#2563EB);text-decoration:none;
  transition:color 150ms ease;
}
.rp-cart-continue:hover{color:var(--rp-primary-dark,#1D4ED8)}
.rp-cart-continue svg{width:16px;height:16px}

/* ── Cart summary card (right column) ── */
.rp-cart-summary-card{
  background:#fff;border-radius:16px;
  border:1px solid var(--rp-g200,#E2E8F0);
  box-shadow:0 4px 6px rgba(15,23,42,.07),0 2px 4px rgba(15,23,42,.04);
  padding:24px;position:sticky;top:24px;
}
.rp-cart-summary-title{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:18px;
  color:var(--rp-dark,#0F172A);margin:0 0 20px;
}

/* ── Product line (cart page) ── */
.rp-cart-pl{
  display:grid;grid-template-columns:96px 1fr;gap:24px;
  padding:24px 36px;border-bottom:1px solid var(--rp-g100,#F1F5F9);
  transition:background 200ms ease;
}
@media(max-width:640px){
  .rp-cart-pl{padding:18px 20px;gap:14px;grid-template-columns:72px 1fr}
}
.rp-cart-pl:last-child{border-bottom:none}
.rp-cart-pl:hover{background:var(--rp-g50,#F8FAFC)}

/* cart-items ul/li: quitar indentación default */
.rp-cart-page .cart-items{list-style:none;margin:0;padding:0}
.rp-cart-page .cart-items>li{margin:0;padding:0}

.rp-cart-pl-img{width:96px;flex-shrink:0}
.rp-cart-pl-img img{
  width:96px;height:96px;object-fit:cover;
  border-radius:12px;border:1px solid var(--rp-g200,#E2E8F0);
}
@media(max-width:640px){
  .rp-cart-pl-img,
  .rp-cart-pl-img img{width:72px;height:72px}
}
.rp-cart-pl-body{display:flex;flex-direction:column;gap:8px;min-width:0}
.rp-cart-pl-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.rp-cart-pl-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.rp-cart-pl-name{
  font-family:'DM Sans',sans-serif;font-size:15px;font-weight:500;
  color:var(--rp-dark,#0F172A);text-decoration:none;
  line-height:1.4;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.rp-cart-pl-name:hover{color:var(--rp-primary,#2563EB)}
.rp-cart-pl-attr{
  font-family:'DM Sans',sans-serif;font-size:13px;color:var(--rp-g500,#64748B);
}
/* Pau req T14 (2026-05-05): personalizaciones del producto en la página
   /carrito (cart-detailed-product-line.tpl). Mismo patrón inline que
   cart drawer y resumen del checkout. Tamaño un poco mayor que summary
   porque la página /carrito tiene más espacio. */
.rp-cart-pl-pers{
  display:flex;flex-direction:column;gap:3px;
  margin-top:6px;padding:8px 12px;
  background:var(--rp-primary-bg,#EFF6FF);
  border-radius:8px;
  font-size:12px;color:var(--rp-g700,#334155);
  font-family:'DM Sans',sans-serif;line-height:1.4;
}
.rp-cart-pl-pers-item strong{
  font-weight:600;color:var(--rp-primary-dark,#1E40AF);
  font-family:'Montserrat',sans-serif;
  font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-right:4px;
}
.rp-cart-pl-remove{
  flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  border-radius:8px;border:none;background:transparent;color:var(--rp-g400,#94A3B8);
  cursor:pointer;transition:all 150ms ease;
}
.rp-cart-pl-remove:hover{background:var(--rp-g100,#F1F5F9);color:var(--rp-error,#EF4444)}

.rp-cart-pl-discount{display:flex;align-items:center;gap:8px}
.rp-cart-pl-oldprice{
  font-family:'DM Sans',sans-serif;font-size:13px;
  color:var(--rp-g400,#94A3B8);text-decoration:line-through;
}
.rp-cart-pl-badge-disc{
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:11px;
  background:#FEF2F2;color:#DC2626;padding:2px 8px;border-radius:9999px;
}

.rp-cart-pl-bottom{
  display:flex;align-items:center;gap:20px;margin-top:8px;flex-wrap:wrap;
}
.rp-cart-pl-price-unit{
  font-family:'DM Sans',sans-serif;font-size:13px;color:var(--rp-g500,#64748B);
}
.rp-cart-pl-total{
  margin-left:auto;
  font-family:'Montserrat',sans-serif;font-size:16px;font-weight:700;
  color:var(--rp-dark,#0F172A);
}
.rp-cart-pl-qty-input{
  width:56px;height:36px;text-align:center;
  font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;
  color:var(--rp-dark,#0F172A);
  border:1.5px solid var(--rp-g300,#CBD5E1);border-radius:8px;
  background:#fff;outline:none;
  -moz-appearance:textfield;
  transition:border-color 200ms ease,box-shadow 200ms ease;
}
.rp-cart-pl-qty-input::-webkit-inner-spin-button,
.rp-cart-pl-qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.rp-cart-pl-qty-input:focus{
  border-color:var(--rp-primary,#2563EB);
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.rp-cart-pl-total{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;
  color:var(--rp-dark,#0F172A);margin-left:auto;white-space:nowrap;
}
.rp-cart-pl-gift{
  font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;
  color:var(--rp-success,#10B981);
}
.rp-cart-pl-customization-link{
  font-family:'DM Sans',sans-serif;font-size:12px;
  color:var(--rp-primary,#2563EB);
}

/* Mobile product line */
@media(max-width:575px){
  .rp-cart-pl{grid-template-columns:72px 1fr;gap:12px;padding:16px 20px}
  .rp-cart-pl-img,
  .rp-cart-pl-img img{width:72px;height:72px}
  .rp-cart-pl-bottom{flex-wrap:wrap;gap:10px}
  .rp-cart-pl-price-unit{min-width:auto;flex:1 1 100%;order:3;margin-top:4px}
}

/* ── Cart actions ── */
.rp-cart-actions{padding:20px 0 0}
.rp-cart-alert-warn{
  display:flex;align-items:center;gap:10px;
  padding:12px 16px;border-radius:10px;margin-bottom:16px;
  background:#FEF3C7;border:1px solid #FDE68A;
  font-family:'DM Sans',sans-serif;font-size:14px;color:#92400E;
}
.rp-cart-alert-warn svg{flex-shrink:0;color:#D97706}

/* ── Accent button (full width, used in cart + checkout) ── */
.rp-btn-accent{
  background:var(--rp-accent,#f8982e)!important;color:#fff!important;
  border:none!important;
}
.rp-btn-accent:hover{
  background:var(--rp-accent-dark,#e07d10)!important;
  transform:translateY(-1px);
  box-shadow:0 4px 6px rgba(15,23,42,.07),0 2px 4px rgba(15,23,42,.04);
}
.rp-btn-accent:disabled,.rp-btn-accent[disabled]{
  opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important;
}
.rp-btn-lg{
  height:52px!important;padding:0 32px!important;
  font-size:16px!important;
}
.rp-btn-full{
  display:flex!important;align-items:center;justify-content:center;gap:8px;
  width:100%!important;
}

/* ── Cart detailed totals (inside summary card) ── */
.rp-cart-summary-card .cart-detailed-totals{padding:0}
.rp-cart-summary-card .cart-summary-line{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 0;
}
.rp-cart-summary-card .cart-summary-line .label{
  font-family:'DM Sans',sans-serif;font-size:14px;color:var(--rp-g500,#64748B);
}
.rp-cart-summary-card .cart-summary-line .value{
  font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;color:var(--rp-dark,#0F172A);
}
.rp-cart-summary-card .cart-summary-line.cart-total{
  border-top:2px solid var(--rp-g200,#E2E8F0);
  margin-top:12px;padding-top:16px;
}
.rp-cart-summary-card .cart-summary-line.cart-total .label{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:16px;color:var(--rp-dark,#0F172A);
}
.rp-cart-summary-card .cart-summary-line.cart-total .value{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:18px;color:var(--rp-dark,#0F172A);
}

/* Hide original card styling in summary */
.rp-cart-summary-card .card,.rp-cart-summary-card .card-block{
  background:transparent;border:none;box-shadow:none;padding:0;margin:0;
}

/* ═══════════════════════════════════════════════════
   CHECKOUT PAGE · Rompoda v2
   ═══════════════════════════════════════════════════
   Estructura:
     .rp-checkout-page
       > .rp-checkout-container (max-width + centrado)
         > .rp-checkout-summary-mobile  (solo <900px)
         > .rp-checkout-grid
             > .rp-checkout-left     (form steps ~60%)
             > .rp-checkout-right    (sticky sidebar ~40%)
                 > .rp-checkout-right__inner
                     > .rp-checkout-summary
                     > .rp-checkout-recommended (placeholder)
                     > {hook displayReassurance}
   ═══════════════════════════════════════════════════ */

.rp-checkout-page{background:var(--rp-g50,#F8FAFC);padding:24px 0 48px;min-height:60vh}
.rp-checkout-container{max-width:1240px;margin:0 auto;padding:0 24px}
.rp-checkout-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:32px;align-items:start;margin-top:24px}
@media(max-width:991px){
  .rp-checkout-container{padding:0 16px}
  .rp-checkout-grid{grid-template-columns:1fr;gap:20px}
}

/* ── Header del checkout ── */
.rp-checkout-header{
  display:flex;align-items:flex-start;justify-content:space-between;gap:24px;
  padding:20px 0 24px;border-bottom:1px solid var(--rp-g200,#E2E8F0);
  flex-wrap:wrap;
}
.rp-checkout-header__left{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}
.rp-checkout-back{
  display:inline-flex;align-items:center;gap:6px;
  font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;
  color:var(--rp-g500,#64748B);text-decoration:none;
  transition:color 150ms ease;align-self:flex-start;
}
.rp-checkout-back:hover{color:var(--rp-primary,#2563EB)}
.rp-checkout-title{
  margin:0;
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:28px;line-height:1.15;
  color:var(--rp-dark,#0F172A);
}
.rp-checkout-sub{
  margin:0;
  font-family:'DM Sans',sans-serif;font-size:14px;color:var(--rp-g500,#64748B);
}
.rp-checkout-ssl{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:9999px;
  background:#ECFDF5;color:#059669;
  border:1px solid #A7F3D0;
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:11px;
  letter-spacing:.3px;text-transform:uppercase;
  white-space:nowrap;
}

/* ── Progress steps chips ── */
.rp-checkout-steps{margin:24px 0 0}
.rp-checkout-steps__list{
  list-style:none;padding:0;margin:0;
  display:flex;align-items:center;gap:8px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.rp-checkout-steps__list::-webkit-scrollbar{display:none}
.rp-checkout-step-chip{
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 16px;border-radius:9999px;
  background:#fff;border:1.5px solid var(--rp-g200,#E2E8F0);
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;
  color:var(--rp-g500,#64748B);white-space:nowrap;
  transition:all 200ms ease;
  position:relative;
}
.rp-checkout-step-chip:not(:last-child)::after{
  content:'';display:block;width:12px;height:1.5px;
  background:var(--rp-g200,#E2E8F0);
  margin-left:4px;margin-right:-4px;flex-shrink:0;
}
.rp-checkout-step-chip.is-current{
  background:var(--rp-primary-bg,#EFF6FF);
  border-color:var(--rp-primary,#2563EB);
  color:var(--rp-primary,#2563EB);
}
.rp-checkout-step-chip.is-complete{
  background:#ECFDF5;border-color:#A7F3D0;color:#059669;
}
.rp-checkout-step-chip__num{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:9999px;
  background:var(--rp-g100,#F1F5F9);color:var(--rp-g500,#64748B);
  font-size:12px;font-weight:700;
}
.rp-checkout-step-chip.is-current .rp-checkout-step-chip__num{
  background:var(--rp-primary,#2563EB);color:#fff;
}
.rp-checkout-step-chip.is-complete .rp-checkout-step-chip__num{
  background:#10B981;color:#fff;
}
@media(max-width:640px){
  .rp-checkout-step-chip__label{display:none}
  .rp-checkout-step-chip{padding:10px}
}

/* ── Columnas ── */
.rp-checkout-left{min-width:0}
/* Pau req 2026-05-03: el sidebar tenía position:sticky + scroll interno
   con max-height:calc(100vh - 48px). En viewports pequeños (laptop al
   100% de zoom) ese scroll interno cortaba el subtotal abajo y el
   cliente NO podía verlo (solo aparecía a zoom <90%). Quitado el sticky
   + scroll interno: el sidebar fluye con el scroll de la página y todo
   el contenido es siempre alcanzable. */
.rp-checkout-right{min-width:0;align-self:start}
.rp-checkout-right__inner{display:flex;flex-direction:column;gap:16px}

/* ── Mobile summary toggle (arriba) ── */
.rp-checkout-summary-mobile{display:none;margin-bottom:16px}
.rp-summary-mobile-toggle{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  background:#fff;border:1px solid var(--rp-g200,#E2E8F0);border-radius:12px;
  padding:14px 18px;cursor:pointer;
  box-shadow:0 1px 3px rgba(15,23,42,.06);
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;
  color:var(--rp-dark,#0F172A);transition:all 200ms ease;
}
.rp-summary-mobile-toggle:hover{border-color:var(--rp-g300,#CBD5E1)}
.rp-summary-mobile-toggle__left{display:flex;align-items:center;gap:8px;color:var(--rp-primary,#2563EB)}
.rp-summary-mobile-toggle__left svg:first-child{color:var(--rp-primary,#2563EB);flex-shrink:0}
.rp-summary-mobile-toggle__label{color:var(--rp-dark,#0F172A)}
.rp-summary-mobile-toggle__caret{transition:transform 200ms ease;color:var(--rp-g500,#64748B)}
.rp-summary-mobile-toggle[aria-expanded="true"] .rp-summary-mobile-toggle__caret{transform:rotate(180deg)}
.rp-summary-mobile-toggle__price{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:16px;
  color:var(--rp-dark,#0F172A);
}
.rp-summary-mobile-body{margin-top:12px}

/* ── Trust card (sidebar, 3 puntos) ── */
.rp-checkout-trust{
  background:#fff;border-radius:16px;
  border:1px solid var(--rp-g200,#E2E8F0);
  box-shadow:0 1px 3px rgba(15,23,42,.06);
  padding:16px 20px;display:flex;flex-direction:column;gap:12px;
}
.rp-checkout-trust__item{
  display:flex;align-items:flex-start;gap:12px;
  font-family:'DM Sans',sans-serif;font-size:13px;
}
.rp-checkout-trust__item strong{
  display:block;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;
  color:var(--rp-dark,#0F172A);margin-bottom:2px;
}
.rp-checkout-trust__item small{
  display:block;font-size:12px;color:var(--rp-g500,#64748B);
}
.rp-checkout-trust__icon{
  width:36px;height:36px;border-radius:10px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--rp-primary-bg,#EFF6FF);color:var(--rp-primary,#2563EB);
}
.rp-checkout-trust__item:nth-child(2) .rp-checkout-trust__icon{background:#FEF3C7;color:#D97706}
.rp-checkout-trust__item:nth-child(3) .rp-checkout-trust__icon{background:#ECFDF5;color:#059669}

/* ── Solo mostrar el step ACTUAL ──
   Pau lo quiere limpio: las chips de arriba ya indican los pasos completados,
   el form no necesita mostrar los pasos viejos (cuadro "Datos Personales"
   colapsado con Modificar) ni los pendientes ("Pago" vacío). Si el user
   quiere volver a un step previo, usa los chips (que son clickables).
   Usamos `section.checkout-step` (clase PS core) además de `.rp-step` porque
   el step de Pago PS9 no pasa por nuestro override y no aplica la clase
   `rp-step` — pero sí tiene `checkout-step`. */
.rp-checkout-page section.checkout-step:not(.-current),
.rp-checkout-page .rp-step:not(.-current){display:none !important}

/* ── Dirección del centro seleccionada: trazo naranja (destaca) ── */
.rp-checkout-page .js-address-item.rp-address-managed.selected,
.rp-checkout-page .js-address-item.rp-address-managed:has(input:checked){
  border-color:var(--rp-accent,#f8982e) !important;
  background:#FFF7ED !important;
  box-shadow:0 0 0 3px rgba(248,152,46,.15) !important;
}
.rp-checkout-page .js-address-item.rp-address-managed.selected .rp-address-managed-badge,
.rp-checkout-page .js-address-item.rp-address-managed:has(input:checked) .rp-address-managed-badge{
  background:var(--rp-accent,#f8982e);color:#fff;
}

/* ── Footer minimalista del checkout ── */
.rp-checkout-footer{
  max-width:1240px;margin:40px auto 20px;padding:20px 24px;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  border-top:1px solid var(--rp-g200,#E2E8F0);
  font-family:'DM Sans',sans-serif;
}
.rp-checkout-footer__links{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  font-size:12px;
}
.rp-checkout-footer__links a{color:var(--rp-g500,#64748B);text-decoration:none;transition:color 150ms ease}
.rp-checkout-footer__links a:hover{color:var(--rp-primary,#2563EB)}
.rp-checkout-footer__links span{color:var(--rp-g300,#CBD5E1)}
.rp-checkout-footer__copy{margin:0;font-size:11px;color:var(--rp-g400,#94A3B8)}

/* Ocultar el footer default (que sí incluye el copyright PS) si por
   algún motivo se renderiza (otros partials del checkout meten texto
   "Software Ecommerce desarrollado por PrestaShop"). */
#footer .text-sm-center:has(.js-terms),
#footer .text-sm-center > em,
body.rp-checkout-page-body footer .copyright{display:none !important}

/* ── Banner de aviso cuando se selecciona dirección distinta a la del centro ── */
/* v5: layout con icono + bloque de texto; el texto en líneas fluidas usando
       <p> con strong INLINE (antes era display:block y cada valor caía en su
       línea, se veía roto en 7 líneas). */
.rp-shipping-notice{
  display:none;margin:12px 0;padding:12px 16px;
  background:#FEF3C7;border:1.5px solid #FDE68A;border-radius:12px;
  font-family:'DM Sans',sans-serif;font-size:13px;color:#92400E;
  line-height:1.45;
}
.rp-shipping-notice.is-visible{display:flex;align-items:flex-start;gap:10px}
.rp-shipping-notice svg{width:20px;height:20px;flex-shrink:0;color:#D97706;margin-top:1px}
.rp-shipping-notice [data-rp-shipping-notice-body]{flex:1;min-width:0}
.rp-shipping-notice p{margin:0}
.rp-shipping-notice__heading{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;
  color:#92400E;margin-bottom:3px !important;letter-spacing:-.005em;
}
.rp-shipping-notice__line{
  font-family:'DM Sans',sans-serif;font-size:13px;color:#92400E;
  line-height:1.5;
}
.rp-shipping-notice__line + .rp-shipping-notice__line{margin-top:2px !important}
.rp-shipping-notice strong{
  font-family:'Montserrat',sans-serif;font-weight:700;color:#78350F;
  display:inline; /* crítico: inline para que no rompa líneas */
}

/* ───────────── Checkout steps ───────────── */
.rp-checkout-page .rp-step{
  background:#fff;border-radius:16px;
  border:1px solid var(--rp-g200,#E2E8F0);
  box-shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
  margin-bottom:16px;overflow:hidden;
  transition:border-color 200ms ease,box-shadow 200ms ease;
  /* reset defensivo contra reglas .rp-step del landing (process steps),
     que usaban el mismo nombre de clase y dejaban opacity:0 */
  opacity:1;transform:none;text-align:left;
}
.rp-checkout-page .rp-step.-current{
  border-color:var(--rp-primary,#2563EB);
  box-shadow:0 10px 15px rgba(15,23,42,.08),0 4px 6px rgba(15,23,42,.04);
}

/* ── Cabecera del step (h1.step-title) ── */
.rp-checkout-page .rp-step .rp-step-title{
  display:flex;align-items:center;gap:14px;
  padding:20px 24px;margin:0;cursor:default;
  font-family:'Montserrat',sans-serif;font-size:16px;font-weight:600;
  color:var(--rp-dark,#0F172A);line-height:1.3;
  border-bottom:none;
}
.rp-checkout-page .rp-step.-current .rp-step-title{border-bottom:1px solid var(--rp-g100,#F1F5F9)}
.rp-checkout-page .rp-step.-reachable:not(.-current) .rp-step-title{cursor:pointer}
.rp-checkout-page .rp-step.-reachable:not(.-current):hover{border-color:var(--rp-g300,#CBD5E1)}
.rp-checkout-page .rp-step:not(.-reachable):not(.-current) .rp-step-title{color:var(--rp-g400,#94A3B8);cursor:not-allowed}

/* ── Indicador numérico / check ── */
.rp-step-indicator{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:14px;
  transition:all 200ms ease;
}
.rp-checkout-page .rp-step:not(.-complete):not(.-current) .rp-step-indicator{
  background:var(--rp-g100,#F1F5F9);color:var(--rp-g400,#94A3B8);
}
.rp-checkout-page .rp-step.-current .rp-step-indicator{
  background:var(--rp-primary,#2563EB);color:#fff;
  box-shadow:0 0 0 4px rgba(37,99,235,.15);
}
.rp-checkout-page .rp-step.-complete .rp-step-indicator{
  background:var(--rp-success,#10B981);color:#fff;
}
.rp-checkout-page .rp-step .rp-step-number{display:inline}
.rp-checkout-page .rp-step .rp-step-check{display:none}
.rp-checkout-page .rp-step.-complete .rp-step-number{display:none}
.rp-checkout-page .rp-step.-complete .rp-step-check{display:inline}

.rp-step-label{flex:1;min-width:0}

.rp-checkout-page .rp-step-edit{
  font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;
  color:var(--rp-primary,#2563EB)!important;
  display:none!important;align-items:center;gap:4px;
}
.rp-checkout-page .rp-step.-complete .rp-step-edit{display:inline-flex!important}
.rp-checkout-page .rp-step.-complete:hover .rp-step-edit{text-decoration:underline}

/* ── Contenido del step ── */
.rp-checkout-page .rp-step .content,
.rp-checkout-page .rp-step .rp-step-content{padding:24px}
.rp-checkout-page .rp-step:not(.-current) .content,
.rp-checkout-page .rp-step:not(.-current) .rp-step-content{display:none}

/* Labels dentro del step */
.rp-checkout-page .rp-step .content label,
.rp-checkout-page .rp-step .content .form-group label,
.rp-checkout-page .rp-step .content .form-control-label{
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;
  color:var(--rp-g700,#334155);letter-spacing:.3px;
  text-transform:uppercase;margin-bottom:6px;display:block;
}

/* Inputs */
.rp-checkout-page .rp-step .content input[type="text"],
.rp-checkout-page .rp-step .content input[type="email"],
.rp-checkout-page .rp-step .content input[type="tel"],
.rp-checkout-page .rp-step .content input[type="password"],
.rp-checkout-page .rp-step .content input[type="number"],
.rp-checkout-page .rp-step .content select,
.rp-checkout-page .rp-step .content textarea,
.rp-checkout-page .rp-step .content .form-control{
  height:44px;border-radius:8px;padding:10px 14px;
  border:1.5px solid var(--rp-g300,#CBD5E1);background:#fff;
  font-family:'DM Sans',sans-serif;font-size:14px;
  color:var(--rp-dark,#0F172A);width:100%;
  transition:border-color 200ms ease,box-shadow 200ms ease;
  box-shadow:none;
}
.rp-checkout-page .rp-step .content input:focus,
.rp-checkout-page .rp-step .content select:focus,
.rp-checkout-page .rp-step .content textarea:focus,
.rp-checkout-page .rp-step .content .form-control:focus{
  border-color:var(--rp-primary,#2563EB);
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
  outline:none;
}
.rp-checkout-page .rp-step .content select{padding-right:32px;appearance:none;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
}
.rp-checkout-page .rp-step .content textarea{height:auto;min-height:88px;padding:12px 14px}

/* Botones primary dentro de steps */
.rp-checkout-page .rp-step .content .btn-primary,
.rp-checkout-page .rp-step .content .btn.btn-primary{
  background:var(--rp-primary,#2563EB)!important;
  border:none!important;border-radius:12px!important;
  font-family:'Montserrat',sans-serif!important;font-weight:600!important;
  height:48px;padding:0 28px;font-size:14px;
  color:#fff!important;letter-spacing:.2px;
  transition:all 200ms ease;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
}
.rp-checkout-page .rp-step .content .btn-primary:hover{
  background:var(--rp-primary-dark,#1D4ED8)!important;
  transform:translateY(-1px);
  box-shadow:0 4px 6px rgba(15,23,42,.07),0 2px 4px rgba(15,23,42,.04);
}
.rp-checkout-page .rp-step .content .btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* ── Step 1: Personal information - nav tabs ── */
.rp-checkout-page #checkout-personal-information-step .nav-inline{
  display:flex;gap:4px;margin:0 0 20px;padding:4px;
  background:var(--rp-g100,#F1F5F9);border-radius:10px;list-style:none;
}
.rp-checkout-page #checkout-personal-information-step .nav-item{flex:1;margin:0}
.rp-checkout-page #checkout-personal-information-step .nav-link{
  display:block;padding:10px 14px;border-radius:8px;text-align:center;
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;
  color:var(--rp-g500,#64748B);text-decoration:none;
  background:transparent;transition:all 200ms ease;
}
.rp-checkout-page #checkout-personal-information-step .nav-link.active{
  background:#fff;color:var(--rp-primary,#2563EB);
  box-shadow:0 1px 3px rgba(15,23,42,.08);
}

/* ── Step 2: Direcciones · select / cards ── */
.rp-checkout-page .address-selector-list,
.rp-checkout-page .js-address-selector{display:flex;flex-direction:column;gap:10px}
.rp-checkout-page .address-item,
.rp-checkout-page .js-address-item{
  border:1.5px solid var(--rp-g200,#E2E8F0);border-radius:12px;padding:14px 16px;
  background:#fff;transition:all 200ms ease;
}
.rp-checkout-page .address-item:hover{border-color:var(--rp-g300,#CBD5E1)}
.rp-checkout-page .address-item.selected,
.rp-checkout-page .address-item input:checked + label{
  border-color:var(--rp-primary,#2563EB);background:var(--rp-primary-bg,#EFF6FF);
}

/* ── Step 3: Delivery options ── */
.rp-checkout-page .rp-step .delivery-option{
  border:1.5px solid var(--rp-g200,#E2E8F0);
  border-radius:12px;padding:16px;margin-bottom:10px;
  transition:all 200ms ease;background:#fff;
}
.rp-checkout-page .rp-step .delivery-option:hover{border-color:var(--rp-g300,#CBD5E1)}
.rp-checkout-page .rp-step .delivery-option.selected,
.rp-checkout-page .rp-step .delivery-option:has(input:checked){
  border-color:var(--rp-primary,#2563EB);
  background:var(--rp-primary-bg,#EFF6FF);
}
.rp-checkout-page .rp-step .carrier-name{
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;
  color:var(--rp-dark,#0F172A);
}
.rp-checkout-page .rp-step .carrier-price,
.rp-checkout-page .rp-step .carrier-extra-content{
  font-family:'DM Sans',sans-serif;font-size:13px;color:var(--rp-g500,#64748B);
}

/* ── Step 4: Payment options ── */
.rp-checkout-page .rp-step .payment-option{
  border:1.5px solid var(--rp-g200,#E2E8F0);
  border-radius:12px;padding:14px 16px;margin-bottom:10px;
  transition:all 200ms ease;background:#fff;
}
.rp-checkout-page .rp-step .payment-option:hover{border-color:var(--rp-g300,#CBD5E1)}
.rp-checkout-page .rp-step .payment-option:has(input:checked){
  border-color:var(--rp-primary,#2563EB);
  background:var(--rp-primary-bg,#EFF6FF);
}
.rp-checkout-page .rp-step .payment-option label{
  margin:0!important;display:flex!important;align-items:center;gap:10px;
  text-transform:none!important;letter-spacing:0!important;font-size:14px!important;
  font-family:'Montserrat',sans-serif!important;font-weight:600!important;
  color:var(--rp-dark,#0F172A)!important;cursor:pointer;
}
.rp-checkout-page .rp-step .payment-option label img{max-height:28px;width:auto}

/* Contenedor del hook displayPaymentTop (bloque del módulo rompoda_picking) */
.rp-checkout-page .rp-step .content > [data-rompoda-payment-top],
.rp-checkout-page .rp-step #checkout-payment-step .content > div:first-child:not(.payment-options):not(.js-cart-payment-step-refresh){
  margin-bottom:20px;
}
/* Asegura que cualquier tarjeta/widget renderizado en el hook del módulo
   mantenga border-radius y no toque los estilos de los payment-options */
.rp-checkout-page .rp-step #rp-picking-payment-top{margin:0 0 20px}

/* Conditions-to-approve + botón de confirmación */
.rp-checkout-page .rp-step .content #conditions-to-approve{
  background:var(--rp-g50,#F8FAFC);
  border:1px solid var(--rp-g200,#E2E8F0);
  border-radius:12px;padding:14px 16px;margin:20px 0;
}
.rp-checkout-page .rp-step .content #conditions-to-approve ul{
  list-style:none;padding:0;margin:0;
}
.rp-checkout-page .rp-step .content #conditions-to-approve li{
  display:flex;align-items:flex-start;gap:10px;
}
.rp-checkout-page .rp-step .content #conditions-to-approve label{
  font-family:'DM Sans',sans-serif;font-weight:400;font-size:13px;
  color:var(--rp-g700,#334155);text-transform:none;letter-spacing:0;margin:0;
}
.rp-checkout-page .rp-step .content #conditions-to-approve a{
  color:var(--rp-primary,#2563EB);font-weight:500;text-decoration:underline;
}

/* Botón FINAL "Pedir" – LG accent */
.rp-checkout-page .rp-step .content #payment-confirmation{
  margin-top:24px;
}
.rp-checkout-page .rp-step .content #payment-confirmation .btn{
  background:var(--rp-accent,#f8982e)!important;
  border:none!important;border-radius:12px!important;
  font-family:'Montserrat',sans-serif!important;font-weight:700!important;
  height:56px;padding:0 32px;font-size:16px;color:#fff!important;
  width:100%;letter-spacing:.3px;
  box-shadow:0 4px 12px rgba(248,152,46,.25);
  transition:all 200ms ease;
}
.rp-checkout-page .rp-step .content #payment-confirmation .btn:hover{
  background:var(--rp-accent-dark,#e07d10)!important;
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(248,152,46,.35);
}
.rp-checkout-page .rp-step .content #payment-confirmation .btn:disabled{
  opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;
}

/* ───────────── Resumen sidebar ───────────── */
.rp-checkout-summary{
  background:#fff;border-radius:16px;
  border:1px solid var(--rp-g200,#E2E8F0);
  box-shadow:0 4px 6px rgba(15,23,42,.07),0 2px 4px rgba(15,23,42,.04);
  overflow:hidden;
}

/* Header del sidebar */
.rp-sum__head{padding:20px 24px 16px;border-bottom:1px solid var(--rp-g100,#F1F5F9)}
.rp-sum__title{
  display:flex;align-items:center;gap:10px;margin:0;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:17px;
  color:var(--rp-dark,#0F172A);
}
.rp-sum__title > svg{color:var(--rp-primary,#2563EB);flex-shrink:0}
.rp-sum__title > span:first-of-type{flex:1}
.rp-sum__count{
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:11px;
  background:var(--rp-primary-bg,#EFF6FF);color:var(--rp-primary,#2563EB);
  padding:3px 10px;border-radius:9999px;
}

.rp-sum__hook{padding:0 24px}
.rp-sum__hook:empty{display:none}

/* Items (mini-productos) */
.rp-sum__items{padding:8px 24px;max-height:320px;overflow-y:auto}
.rp-sum__items::-webkit-scrollbar{width:4px}
.rp-sum__items::-webkit-scrollbar-thumb{background:var(--rp-g200,#E2E8F0);border-radius:4px}
.rp-sum__items .cart-summary-products.js-cart-summary-products > p,
.rp-sum__items .cart-summary-products.js-cart-summary-products > p a{
  display:none; /* escondemos el "show details / x items" redundante */
}
.rp-sum__items .cart-summary-products .collapse,
.rp-sum__items .cart-summary-products .collapse.show{
  display:block!important; /* siempre visible en el checkout */
}
.rp-sum__items .media-list{list-style:none;padding:0;margin:0}
.rp-sum__items .media{margin:0}

/* Product line (rp-cs-line) */
.rp-cs-line{
  display:grid;grid-template-columns:56px 1fr auto;gap:12px;
  padding:12px 0;border-bottom:1px solid var(--rp-g100,#F1F5F9);
  align-items:center;
}
.rp-cs-line:last-child{border-bottom:none}
.rp-cs-line-img{position:relative;width:56px;height:56px}
.rp-cs-line-img img{
  width:56px;height:56px;object-fit:cover;
  border-radius:8px;border:1px solid var(--rp-g200,#E2E8F0);
}
.rp-cs-line-qty-badge{
  position:absolute;top:-6px;right:-6px;
  min-width:22px;height:22px;border-radius:11px;padding:0 6px;
  background:var(--rp-dark,#0F172A);color:#fff;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:10px;
  display:flex;align-items:center;justify-content:center;
}
.rp-cs-line-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.rp-cs-line-name{
  font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;
  color:var(--rp-dark,#0F172A);text-decoration:none;line-height:1.35;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.rp-cs-line-name:hover{color:var(--rp-primary,#2563EB)}
.rp-cs-line-attr{
  font-family:'DM Sans',sans-serif;font-size:11px;color:var(--rp-g500,#64748B);
}
/* Pau req T14 (2026-05-05): personalizaciones del producto en el sidebar
   del checkout (resumen del pedido). Mismo estilo que .rp-cart-line-pers
   del cart drawer pero ajustado al tamaño compacto del summary. */
.rp-cs-line-pers{
  display:flex;flex-direction:column;gap:2px;
  margin-top:3px;font-size:11px;color:var(--rp-g500,#64748B);
  font-family:'DM Sans',sans-serif;line-height:1.3;
}
.rp-cs-line-pers-item strong{
  font-weight:600;color:var(--rp-g700,#334155);font-family:'Montserrat',sans-serif;
  font-size:10px;text-transform:uppercase;letter-spacing:.04em;margin-right:4px;
}
.rp-cs-line-price{
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;
  color:var(--rp-dark,#0F172A);white-space:nowrap;
}

/* Voucher */
.rp-sum__voucher{padding:0 24px 16px}
.rp-sum__voucher:empty{display:none}
.rp-sum__voucher .block-promo{margin:0}
.rp-sum__voucher .cart-voucher{padding:0}
.rp-sum__voucher .promo-code-button{margin:0}
.rp-sum__voucher .promo-code-button a{
  display:flex;align-items:center;gap:6px;padding:10px 0;
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;
  color:var(--rp-primary,#2563EB);text-decoration:none;cursor:pointer;
}
.rp-sum__voucher .promo-code-button a:hover{text-decoration:underline}
.rp-sum__voucher .promo-code-button a::before{
  content:'';display:inline-block;width:14px;height:14px;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%232563EB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpolygon points='20 12 20 22 4 22 4 12'/%3E%3Crect width='20' height='5' x='2' y='7'/%3E%3Cline x1='12' x2='12' y1='22' y2='7'/%3E%3Cpath d='M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z'/%3E%3Cpath d='M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z'/%3E%3C/svg%3E");
  background-size:contain;background-repeat:no-repeat;
}
.rp-sum__voucher .promo-code{border:none;padding:0;margin-top:10px}
.rp-sum__voucher .promo-code form{display:flex;gap:8px}
.rp-sum__voucher .promo-input{flex:1}
.rp-sum__voucher .promo-code .btn-primary{
  flex-shrink:0;min-width:72px;
}
.rp-sum__voucher .promo-name{list-style:none;padding:0;margin:0 0 10px}
.rp-sum__voucher .promo-name li{
  display:flex;justify-content:space-between;align-items:center;
  padding:6px 10px;background:#ECFDF5;border-radius:8px;margin-bottom:6px;
  font-family:'DM Sans',sans-serif;font-size:12px;color:#065F46;
}

/* Totales — Pau req 2026-05-03: bg blanco para que NO se confunda con el
   bg general del checkout también gris. El bug que parecía "texto invisible"
   con bg blanco era en realidad el scroll interno del sidebar (max-height
   100vh) cortando el contenido en viewports pequeños — corregido quitando
   ese scroll. Con scroll natural de página el subtotal siempre se ve. */
.rp-sum__totals{
  background:#fff;
  padding:16px 24px 20px;
  border-top:1px solid var(--rp-g100,#F1F5F9);
}
.rp-sum__totals .cart-summary-subtotals,
.rp-sum__totals .cart-summary-totals,
.rp-sum__totals .cart-summary-subtotals-container,
.rp-sum__totals .card-block{
  padding:0!important;margin:0!important;background:transparent!important;
  border:none!important;box-shadow:none!important;
}
.rp-sum__totals .cart-summary-line{
  display:flex;justify-content:space-between;padding:6px 0;align-items:center;
}
.rp-sum__totals .cart-summary-line .label{
  font-family:'DM Sans',sans-serif;font-size:14px;color:var(--rp-g500,#64748B);
}
.rp-sum__totals .cart-summary-line .value{
  font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;color:var(--rp-dark,#0F172A);
}
.rp-sum__totals .cart-summary-line.cart-total{
  border-top:1.5px solid var(--rp-g200,#E2E8F0);
  margin-top:10px;padding-top:14px;
}
.rp-sum__totals .cart-summary-line.cart-total .label{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:16px;
  color:var(--rp-dark,#0F172A);
}
.rp-sum__totals .cart-summary-line.cart-total .value{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:22px;
  color:var(--rp-dark,#0F172A);
}

/* ── Remove default PS card styling inside our containers ── */
.rp-checkout-summary .card,
.rp-checkout-summary .card-block{
  background:transparent!important;border:none!important;
  box-shadow:none!important;padding:0!important;margin:0!important;
}

/* Placeholder recomendados (lo rellena el módulo) */
.rp-checkout-recommended{
  background:#fff;border-radius:16px;
  border:1px solid var(--rp-g200,#E2E8F0);
  box-shadow:0 1px 3px rgba(15,23,42,.06);
  padding:16px;
}
.rp-checkout-recommended[hidden]{display:none}
.rp-checkout-recommended:empty{display:none}

/* Reassurance hook */
.rp-checkout-right__inner #block-reassurance{
  background:#fff;border-radius:16px;
  border:1px solid var(--rp-g200,#E2E8F0);
  box-shadow:0 1px 3px rgba(15,23,42,.06);
  padding:8px 16px;margin:0;
}
.rp-checkout-right__inner #block-reassurance ul{padding:0;margin:0;list-style:none}
.rp-checkout-right__inner #block-reassurance li{
  padding:12px 0;border-bottom:1px solid var(--rp-g100,#F1F5F9);
  display:flex;align-items:center;gap:12px;
}
.rp-checkout-right__inner #block-reassurance li:last-child{border-bottom:none}
.rp-checkout-right__inner #block-reassurance img,
.rp-checkout-right__inner #block-reassurance svg{width:28px;height:28px;flex-shrink:0}
.rp-checkout-right__inner #block-reassurance span{
  font-family:'DM Sans',sans-serif;font-size:13px;
  color:var(--rp-g700,#334155);
}

/* ── Ocultar indicadores PS por defecto ── */
.rp-checkout-page .rp-step .step-title .done{display:none!important}
.rp-checkout-page .rp-step .step-title > .step-number:not(.rp-step-number){display:none!important}

/* ── Header del checkout ── */
.page-checkout #header .header-nav{border-bottom:1px solid var(--rp-g200,#E2E8F0)}
.page-checkout #wrapper{padding-top:0}
.page-checkout .breadcrumb{display:none}

/* ═══════════════════════════════════════════════════
   v5: Layout 2 cols AYBL-style (header interno por columna)
   Container más ancho (1400px), headers DENTRO de cada columna,
   stepnav sólo sobre col izq.
   ═══════════════════════════════════════════════════ */
.rp-co-v5__container{
  max-width:1400px !important;
  padding:20px 24px 60px !important;
}
.rp-co-v5__grid{
  margin-top:0 !important; /* el header interno ya da respiración */
}

/* StepNav limitado al ancho de la col izq usando grid implícito */
.rp-co-v5__stepnav{
  max-width:calc(100% - 420px - 32px); /* viewport - col der - gap */
  margin-right:auto;
  margin-left:0;
}

/* Header interno de cada columna — misma altura para alinear logo y SSL.
   Pau req 2026-05-03: revert v5.1, restaurar layout v5.0 donde el logo
   estaba en .rp-co-v5__col-head--left (col izq) y SSL en --right (col der),
   ambos a la misma altura por el min-height:56px. */
.rp-co-v5__col-head{
  display:flex;align-items:center;
  min-height:56px;
  margin-bottom:16px;
  padding-bottom:16px;
  border-bottom:1px solid #F1F5F9;
}
.rp-co-v5__col-head--left{justify-content:flex-start}
.rp-co-v5__col-head--right{justify-content:flex-end}

/* v1.19.3 Pau 2026-04-23 (iter 3): topbar + midbar con grid 2 cols.
   Layout:
     [LOGO] ........................ [SSL BADGE]   ← topbar
     [STEPNAV 1-2-3-4] .............. [SHIP BAR]   ← midbar
     [Pasos contenido] ..................[Resumen] ← grid (pre-existente)
   En mobile (<920px) los elementos se apilan en 1 columna. */
.rp-co-v5__container{position:relative}

.rp-co-v5__topbar,
.rp-co-v5__midbar{
  display:grid;
  grid-template-columns:1fr 420px;
  column-gap:32px;
  align-items:center;
}
.rp-co-v5__topbar{margin-bottom:14px}
.rp-co-v5__midbar{margin-bottom:18px}

/* Logo */
.rp-co-v5__logo-wrap{
  margin:0;padding:0;
  display:flex;align-items:center;justify-content:flex-start;
  min-height:32px;
}
.rp-co-v5__logo{display:inline-flex;align-items:center;text-decoration:none}
.rp-co-v5__logo-img{height:32px;width:auto;display:block;max-width:100%}

/* Pau req 2026-05-03 (T18 v2 iter 3): el header del checkout ahora se inyecta
   desde el block `header` del layout PS (no dentro del container). Así llega
   tanto al borde superior (techo) como a los laterales naturalmente, igual
   que en cualquier otra página de la tienda — sin necesidad de hacks de
   width:100vw / margin negativa.
*/
.rp-checkout-page{margin-top:0 !important}
/* Badge SSL inline en el lado derecho del header (replace carrito/idioma) */
.rp-hdr-ssl{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;
  border:1px solid var(--rp-g200,#E2E8F0);
  border-radius:9999px;
  background:#fff;
  font-family:'DM Sans',sans-serif;
  font-size:13px;font-weight:500;
  color:var(--rp-g700,#334155);
  white-space:nowrap;
}
.rp-hdr-ssl svg{stroke:var(--rp-success,#10B981);flex-shrink:0}

/* SSL badge — col derecha del topbar */
.rp-co-v5__topbar .rp-co-v5__col-head{
  position:static !important;
  margin:0 !important;
  padding:0 !important;
  border:none !important;
  min-height:32px !important;
  display:flex;align-items:center;justify-content:flex-end;
}

/* Stepnav — col izquierda del midbar, full width (antes tenía
   max-width:calc() que no hace falta ya dentro del grid) */
.rp-co-v5__midbar .rp-co-v5__stepnav{
  max-width:none;margin:0;
}

/* Ship-bar top — col derecha del midbar, alineado con stepnav */
.rp-co-v5__ship-bar-top{margin:0 !important}
.rp-co-v5__ship-bar-placeholder{min-height:1px}

@media (max-width:919px){
  .rp-co-v5__topbar,
  .rp-co-v5__midbar{
    grid-template-columns:1fr;
    row-gap:10px;
  }
}

/* SSL badge en col der — pill estilo minimalista */
.rp-co-v5__ssl{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:9999px;
  background:#F8FAFC;border:1px solid #E2E8F0;
  font-family:'DM Sans',sans-serif;font-size:12px;color:#334155;
}
.rp-co-v5__ssl svg{color:#10B981}

/* v5: Skeleton overlay sobre el sidebar al añadir desde recomendados */
.rp-co-v5__loading{
  position:relative;
  pointer-events:none;
}
.rp-co-v5__loading > *{
  transition:opacity 200ms ease;
  opacity:.4;
}
.rp-co-v5__loading::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.7) 50%,
    rgba(255,255,255,0) 100%
  );
  background-size:200% 100%;
  animation:rp-shimmer-v5 1.2s linear infinite;
  z-index:10;
  border-radius:16px;
  pointer-events:none;
}
@keyframes rp-shimmer-v5{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}

/* v5: Skeleton grid para la colección mientras carga AJAX paginación */
.rp-skel-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:20px !important;
  padding:0 !important;
  margin:0 !important;
  list-style:none !important;
}
@media(max-width:1024px){
  .rp-skel-grid{grid-template-columns:repeat(3,1fr) !important;gap:16px !important}
}
@media(max-width:768px){
  .rp-skel-grid{grid-template-columns:repeat(2,1fr) !important;gap:12px !important}
}
.rp-skel-card{
  background:#fff;
  border-radius:10px;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  animation:rp-skel-pulse 1.5s ease-in-out infinite;
}
.rp-skel-card .rp-skel-img{
  aspect-ratio:1/1;
  background:linear-gradient(90deg,#F1F5F9 0%,#E2E8F0 50%,#F1F5F9 100%);
  background-size:200% 100%;
  animation:rp-skel-shimmer 1.8s ease-in-out infinite;
  border-radius:10px;
}
.rp-skel-card .rp-skel-name,
.rp-skel-card .rp-skel-price{
  height:14px;
  background:linear-gradient(90deg,#F1F5F9 0%,#E2E8F0 50%,#F1F5F9 100%);
  background-size:200% 100%;
  animation:rp-skel-shimmer 1.8s ease-in-out infinite;
  border-radius:4px;
}
.rp-skel-card .rp-skel-name{
  width:80%;
  margin:8px 0 0 2px;
}
.rp-skel-card .rp-skel-price{
  width:40%;
  margin:0 0 2px 2px;
  height:14px;
}
@keyframes rp-skel-pulse{
  0%,100%{opacity:.9}
  50%{opacity:1}
}
@keyframes rp-skel-shimmer{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}

/* v6: Overlay absoluto que cubre el productList DURANTE TODO el AJAX de
   paginación. Mientras PS9 reemplaza el fragment por debajo (con clases
   Bootstrap del tema padre que darían 2 cols por ms), el usuario solo
   ve el skeleton fijo encima. Se quita con fade tras el updateProductList
   cuando las clases Rompoda ya están aplicadas al contenido real. */
.rp-pag-skel-overlay{
  position:absolute !important;
  inset:0;
  background:#fff;
  z-index:50;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  opacity:1;
  transition:opacity 240ms ease;
  pointer-events:auto;
}
.rp-pag-skel-overlay.is-hiding{
  opacity:0;
  pointer-events:none;
}
@media (max-width:1023px){
  .rp-pag-skel-overlay{grid-template-columns:repeat(3,1fr);gap:16px}
}
@media (max-width:767px){
  .rp-pag-skel-overlay{grid-template-columns:repeat(2,1fr);gap:12px}
}

/* Responsive v5 */
@media(max-width:1199px){
  .rp-checkout-grid{grid-template-columns:minmax(0,1fr) 380px;gap:24px}
  .rp-co-v5__stepnav{max-width:calc(100% - 380px - 24px)}
}
@media(max-width:991px){
  .rp-checkout-page{padding:20px 0 40px}
  .rp-checkout-container{padding:0 16px}
  .rp-checkout-grid{grid-template-columns:1fr;gap:20px}
  .rp-checkout-right{position:static;top:auto;align-self:auto}
  .rp-checkout-right__inner{max-height:none;overflow:visible;padding-right:0}
  /* En tablet/mobile, stepnav full width */
  .rp-co-v5__stepnav{max-width:none}
  /* Header col derecha oculto en mobile (se ve el SSL en otro sitio o simplemente no) */
  .rp-co-v5__col-head--right{display:none}
  /* Header col izq mobile: logo más pequeño y centrado */
  .rp-co-v5__col-head--left{
    min-height:48px;margin-bottom:12px;padding-bottom:12px;
    justify-content:center;
  }
  .rp-co-v5__logo-img{height:24px}
}
/* En mobile, el sidebar desktop se oculta y se usa el toggle de arriba */
@media(max-width:899px){
  .rp-checkout-summary-mobile{display:block}
  .rp-checkout-right{display:none}
}

@media(max-width:575px){
  .rp-checkout-container{padding:0 12px}
  .rp-checkout-page{padding:16px 0 32px}
  .rp-checkout-page .rp-step{border-radius:12px;margin-bottom:12px}
  .rp-checkout-page .rp-step .rp-step-title{padding:16px 18px;font-size:14px;gap:10px}
  .rp-step-indicator{width:28px;height:28px;font-size:13px}
  .rp-checkout-page .rp-step .content,
  .rp-checkout-page .rp-step .rp-step-content{padding:18px}
  .rp-checkout-summary{border-radius:12px}
  .rp-sum__head{padding:16px 18px 12px}
  .rp-sum__hook,.rp-sum__voucher{padding-left:18px;padding-right:18px}
  .rp-sum__items{padding:6px 18px}
  .rp-sum__totals{padding:14px 18px 18px}
  .rp-sum__title{font-size:15px}
  .rp-sum__totals .cart-summary-line.cart-total .value{font-size:20px}
  .rp-checkout-page .rp-step .content #payment-confirmation .btn{height:52px;font-size:15px}
  .rp-summary-mobile-toggle{padding:12px 16px}
  .rp-summary-mobile-toggle__label{font-size:13px}
  .rp-summary-mobile-toggle__price{font-size:15px}
}

/* ═══════════════════════════════════════════════════
   RECOMMENDED PRODUCTS BLOCK — v1.19.3 Pau: rediseño
   Estética moderna con cards más blancas, shadow sutil,
   botón accent naranja y más breathing room. El título
   estilo eyebrow + heading para mayor jerarquía.
   ═══════════════════════════════════════════════════ */
.rp-recommended{
  padding:18px 16px 14px;
  border-top:1px solid var(--rp-g200,#E2E8F0);
  margin:0;
  background:linear-gradient(180deg,#fff 0%,#FAFBFC 100%);
}
.rp-recommended:empty{display:none;padding:0;border:none;margin:0}
.rp-recommended__title{
  font-family:'Montserrat',sans-serif;font-size:12px;font-weight:800;
  margin:0 0 14px;color:var(--rp-primary,#2563EB);
  text-transform:uppercase;letter-spacing:.8px;
  display:flex;align-items:center;gap:7px;
}
.rp-recommended__title svg{color:var(--rp-accent,#f8982e);width:16px;height:16px}
.rp-recommended__scroll{
  display:flex;gap:12px;overflow-x:auto;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  padding-bottom:8px;padding-right:2px;
  scrollbar-width:thin;
}
.rp-recommended__scroll::-webkit-scrollbar{height:4px}
.rp-recommended__scroll::-webkit-scrollbar-track{background:transparent}
.rp-recommended__scroll::-webkit-scrollbar-thumb{
  background:var(--rp-g200,#E2E8F0);border-radius:3px;
}
.rp-recommended__scroll::-webkit-scrollbar-thumb:hover{background:var(--rp-g300,#CBD5E1)}
.rp-recommended__card{
  min-width:0;flex:0 0 calc(33.333% - 8px);max-width:calc(33.333% - 8px);
  scroll-snap-align:start;
  flex-shrink:0;display:flex;flex-direction:column;gap:6px;
  background:#fff;border:1px solid var(--rp-g200,#E2E8F0);
  border-radius:12px;padding:10px 10px 10px;
  transition:border-color 180ms ease,box-shadow 180ms ease,transform 180ms ease;
}
.rp-recommended__card:hover{
  border-color:var(--rp-primary-soft,#DBEAFE);
  box-shadow:0 6px 16px -6px rgba(37,99,235,.18);
  transform:translateY(-1px);
}
.rp-recommended__img-wrap{
  position:relative;width:100%;aspect-ratio:1;overflow:hidden;
  border-radius:8px;background:var(--rp-g50,#F8FAFC);
}
.rp-recommended__img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 350ms ease;
}
.rp-recommended__card:hover .rp-recommended__img{transform:scale(1.06)}
.rp-recommended__info{padding:2px 0 0;display:flex;flex-direction:column;gap:2px;flex:1}
.rp-recommended__name{
  font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;
  color:var(--rp-g700,#334155);line-height:1.35;
  overflow:hidden;text-overflow:ellipsis;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  min-height:32px;
}
.rp-recommended__name a{color:inherit;text-decoration:none}
.rp-recommended__name a:hover{color:var(--rp-primary,#2563EB)}
.rp-recommended__price{
  font-family:'Montserrat',sans-serif;font-size:13px;font-weight:800;
  color:var(--rp-dark,#0F172A);display:block;margin-top:auto;
}
.rp-recommended__add{
  width:100%;margin-top:6px;padding:8px 0;
  border:none;border-radius:8px;
  background:var(--rp-dark,#0F172A);
  font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;
  letter-spacing:.3px;
  color:#fff;cursor:pointer;
  transition:all 180ms ease;
  text-transform:uppercase;
}
.rp-recommended__add:hover{
  background:var(--rp-accent,#f8982e);color:#fff;
  transform:translateY(-1px);
  box-shadow:0 4px 10px -2px rgba(248,152,46,.4);
  border-color:var(--rp-dark,#0F172A);
}
.rp-recommended__add:disabled{opacity:.5;cursor:not-allowed}
.rp-recommended__add.is-added{
  background:#ECFDF5;border-color:#A7F3D0;color:#059669;pointer-events:none;
}

/* Recommended inside cart drawer */
.rp-cart-drawer-body .rp-recommended{
  padding:16px 20px 0;margin-top:0;border-top:1px solid var(--rp-g100,#F1F5F9);
}
.rp-cart-drawer-body .rp-recommended__card{min-width:120px;max-width:120px}
.rp-cart-drawer-body .rp-recommended__title{font-size:14px}

/* Variant picker (tallas) dentro de card recomendado — layout vertical
   inicial (fallback para cuando no hay acordeón horizontal) */
.rp-recommended__variants{
  display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;
  padding:6px;background:var(--rp-g50,#F8FAFC);
  border-radius:8px;border:1px solid var(--rp-g200,#E2E8F0);
}
.rp-rec-variant{
  min-width:32px;padding:4px 8px;
  border:1px solid var(--rp-g300,#CBD5E1);border-radius:6px;
  background:#fff;color:var(--rp-dark,#0F172A);
  font-family:'Montserrat',sans-serif;font-size:11px;font-weight:600;
  cursor:pointer;transition:all 120ms ease;text-align:center;
}
.rp-rec-variant:hover:not(:disabled){
  border-color:var(--rp-primary,#2563EB);
  background:var(--rp-primary-bg,#EFF6FF);
  color:var(--rp-primary,#2563EB);
}
.rp-rec-variant.is-picking{
  background:var(--rp-primary,#2563EB);color:#fff;border-color:var(--rp-primary,#2563EB);
}
.rp-rec-variant.is-out,
.rp-rec-variant[disabled]{
  opacity:.4;text-decoration:line-through;cursor:not-allowed;
}

/* v3: acordeón horizontal — al abrir tallas, la card se expande a la
   derecha y empuja las cards vecinas con transición. Funciona dentro
   del carrusel horizontal (.rp-recommended__scroll).
   v4: layout [img 64px | texto 1fr | tallas auto] para que el texto
   tenga ancho suficiente (antes quedaba pellizcado). */
.rp-recommended__card{
  transition:max-width 280ms ease, min-width 280ms ease;
}
.rp-recommended__card.is-expanded{
  flex:0 0 auto;min-width:340px;max-width:340px;
  flex-direction:row;gap:10px;align-items:center;
  background:#fff;border:1px solid #BFDBFE;border-radius:12px;
  padding:10px;
  box-shadow:0 4px 6px rgba(37,99,235,.08),0 2px 4px rgba(15,23,42,.04);
}
.rp-recommended__card.is-expanded .rp-recommended__img-wrap{
  width:64px;height:64px;aspect-ratio:1;flex-shrink:0;
}
/* Info del producto: le damos ancho fijo cómodo para que name + price
   se lean bien sin cortarse. Ancho ~130px asegura 2 líneas de texto. */
.rp-recommended__card.is-expanded .rp-recommended__info{
  flex:1 1 auto;min-width:120px;padding:0;
  display:flex;flex-direction:column;justify-content:center;gap:4px;
}
.rp-recommended__card.is-expanded .rp-recommended__name{
  white-space:normal;-webkit-line-clamp:2;line-height:1.25;font-size:12px;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;
}
.rp-recommended__card.is-expanded .rp-recommended__price{
  font-size:13px;color:#2563EB;
}
.rp-recommended__card.is-expanded .rp-recommended__add{display:none}
.rp-recommended__card.is-expanded .rp-recommended__variants{
  display:flex;flex-direction:row;flex-wrap:wrap;
  gap:4px;margin-top:0;max-width:130px;
  padding:6px;background:#F8FAFC;
  border-radius:8px;border:1px solid #E2E8F0;
  flex-shrink:0;align-content:flex-start;justify-content:center;
}
.rp-recommended__card.is-expanded .rp-rec-variant{
  min-width:28px;padding:3px 6px;font-size:11px;
}

/* En drawer el card base es 120px; al expandirse crece a 340px igual */
.rp-cart-drawer-body .rp-recommended__card.is-expanded{
  min-width:340px;max-width:340px;
}

@media(max-width:540px){
  .rp-recommended__card.is-expanded,
  .rp-cart-drawer-body .rp-recommended__card.is-expanded{
    min-width:290px;max-width:290px;
  }
  .rp-recommended__card.is-expanded .rp-recommended__variants{
    max-width:110px;
  }
}

/* Skeleton card (loading state) — hereda tamaño del card real */
.rp-recommended__card--skeleton{
  pointer-events:none;
}
.rp-recommended__card--skeleton .rp-skel-img{
  aspect-ratio:1/1;height:auto;width:100%;border-radius:8px;
}

/* Skeleton card en drawer: mismo tamaño que card real (120px) */
.rp-cart-drawer-body .rp-recommended__card--skeleton{
  min-width:120px;max-width:120px;
}

/* Skeleton line en drawer */
.rp-cart-line--skeleton{pointer-events:none;opacity:.9}

/* ── Empty cart ── */
.rp-cart-page .cart-overview .no-items{
  display:block;text-align:center;padding:48px 24px;
  font-family:'DM Sans',sans-serif;font-size:15px;color:var(--rp-g500,#64748B);
}

/* ── General checkout form enhancements ── */
.page-checkout .form-control,
.page-cart .form-control{
  border-radius:8px!important;
  border:1.5px solid var(--rp-g300,#CBD5E1)!important;
  height:44px;
  font-family:'DM Sans',sans-serif;font-size:14px;
  transition:border-color 200ms ease,box-shadow 200ms ease;
}
.page-checkout .form-control:focus,
.page-cart .form-control:focus{
  border-color:var(--rp-primary,#2563EB)!important;
  box-shadow:0 0 0 3px rgba(37,99,235,.12)!important;
}

/* (Checkout duplicates cleaned; see main "CHECKOUT PAGE · Rompoda v2" block above.) */

/* ── Cart-page specific mobile tweak (legacy) ── */
@media(max-width:575px){
  .rp-cart-page{padding:16px 0}
  .rp-cart-card-head{padding:16px 20px 14px}
  .rp-cart-title{font-size:18px}
  .rp-cart-summary-card{border-radius:12px}
  .rp-recommended__card{min-width:130px;max-width:130px}
}

/* ============================================================================
   PRODUCT PAGE v2.0
   ============================================================================ */

/* ── Hide PS9 default chrome on product page ── */
.rp-product-page #wrapper{padding-top:0}
.rp-product-page .page-header{display:none!important}
.rp-product-page .breadcrumb{display:none!important}
.rp-product-page #left-column,.rp-product-page #right-column{display:none!important}
.rp-product-page #content-wrapper{width:100%;max-width:100%;flex:0 0 100%;padding:0}
.rp-product-page #wrapper .container{max-width:1320px;padding:0 24px}
.rp-product-page .product-flags{display:none!important}
.rp-product-page .product-additional-info{display:none!important}
.rp-product-page .tabs{display:none!important}
/* Hide PS default product prices block (we render our own) */
.rp-product-page .product-prices:not(.rp-product-prices){display:none!important}

/* ── Breadcrumb ── */
.rp-product-breadcrumb{
    padding:16px 0 8px;font-family:'DM Sans',sans-serif;font-size:13px;color:var(--rp-g400,#94A3B8);
    display:flex;align-items:center;flex-wrap:wrap;gap:6px
}
.rp-product-breadcrumb a{color:var(--rp-g500,#64748B);text-decoration:none;transition:color 200ms ease}
.rp-product-breadcrumb a:hover{color:var(--rp-primary,#2563EB)}
.rp-bc-sep{color:var(--rp-g300,#CBD5E1)}
.rp-bc-current{color:var(--rp-g700,#334155)}

/* ── Main grid ── */
.rp-product-grid{
    display:grid;
    grid-template-columns:55% 45%;
    gap:40px;
    padding:8px 0 60px;
    align-items:start
}
@media(max-width:991px){
    .rp-product-grid{
        grid-template-columns:1fr;
        gap:24px;
        padding:0 0 40px
    }
}

/* ── Gallery ── */
.rp-product-gallery{position:relative}
.rp-product-gallery-badges{
    position:absolute;top:12px;left:12px;z-index:5;
    display:flex;flex-direction:column;gap:6px
}
.rp-gallery-badge{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:11px;
    padding:4px 10px;border-radius:9999px;text-transform:uppercase;letter-spacing:.3px;
    line-height:1.3
}
/* v5: Agotado en galería — más prominente (rojo fuerte relleno en vez de pastel) */
.rp-gallery-badge--oos{
    background:#DC2626;color:#fff;
    font-weight:800;padding:6px 14px;font-size:12px;
    box-shadow:0 4px 12px rgba(220,38,38,.35);
    border:1.5px solid #B91C1C;
}
.rp-gallery-badge--new{background:#EFF6FF;color:#2563EB}
.rp-gallery-badge--sale{background:#FEF2F2;color:#DC2626}
.rp-gallery-badge--low{background:#FEF3C7;color:#D97706}

/* Main image */
.rp-gallery-main{
    position:relative;border-radius:16px;overflow:hidden;
    background:#F8FAFC;aspect-ratio:1/1;cursor:zoom-in
}
.rp-gallery-main-img{
    width:100%;height:100%;object-fit:cover;display:block;
    transition:transform 300ms ease
}
.rp-gallery-main:hover .rp-gallery-main-img{transform:scale(1.03)}
.rp-gallery-zoom-lens{
    display:none;position:absolute;pointer-events:none;
    width:200px;height:200px;border:2px solid rgba(37,99,235,.3);
    border-radius:8px;background:rgba(37,99,235,.08)
}

/* Thumbnails */
.rp-gallery-thumbs{
    display:flex;gap:8px;margin-top:12px;overflow-x:auto;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
    padding:4px 0
}
.rp-gallery-thumbs::-webkit-scrollbar{display:none}
.rp-gallery-thumb{
    flex:0 0 auto;width:72px;height:72px;border-radius:10px;overflow:hidden;
    border:2px solid transparent;cursor:pointer;
    transition:border-color 200ms ease,box-shadow 200ms ease;
    background:#F8FAFC;padding:0
}
.rp-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.rp-gallery-thumb.is-active,
.rp-gallery-thumb:hover{
    border-color:var(--rp-primary,#2563EB);
    box-shadow:0 0 0 3px rgba(37,99,235,.12)
}

/* Mobile dots */
.rp-gallery-dots{
    display:none;justify-content:center;gap:6px;margin-top:12px
}
.rp-gallery-dot{
    width:8px;height:8px;border-radius:50%;
    background:var(--rp-g300,#CBD5E1);transition:all 200ms ease
}
.rp-gallery-dot.is-active{
    width:24px;border-radius:4px;background:var(--rp-primary,#2563EB)
}
@media(max-width:991px){
    .rp-gallery-thumbs{display:none}
    .rp-gallery-dots{display:flex}
    .rp-gallery-main{border-radius:12px}
}

/* ── Product info ── */
.rp-product-info{position:sticky;top:100px}
@media(max-width:991px){.rp-product-info{position:static}}

.rp-product-name{
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:26px;
    line-height:1.25;color:var(--rp-dark,#0F172A);margin:0 0 8px
}
@media(max-width:575px){.rp-product-name{font-size:22px}}

.rp-product-ref{
    font-family:'DM Sans',sans-serif;font-size:13px;color:var(--rp-g400,#94A3B8);
    margin-bottom:12px
}

/* v5: Tags inline bajo el título del producto (tags + badge Agotado) */
.rp-product-tags-inline{
    display:flex;flex-wrap:wrap;gap:8px;align-items:center;
    margin:6px 0 14px;
    min-height:0;
}
.rp-product-tags-inline:empty{display:none}
.rp-product-tag-inline{
    display:inline-flex;align-items:center;gap:6px;
    padding:5px 12px;border-radius:8px;
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:11px;
    letter-spacing:.04em;text-transform:uppercase;line-height:1;
    border:1px solid transparent;
    transition:transform 150ms ease, box-shadow 150ms ease;
    /* Pau req 2026-05-03: glow sutil del color del tag (currentColor)
       — para TÉCNICA queda azul, para AGOTADO rojo, etc. Usa color-mix
       que ya está soportado en Chrome 111+/Safari 16.2+/FF 113+. */
    box-shadow:0 4px 14px -4px color-mix(in srgb, currentColor 32%, transparent);
}
.rp-product-tag-inline:hover{
    transform:translateY(-1px);
    box-shadow:0 6px 18px -4px color-mix(in srgb, currentColor 42%, transparent);
}
.rp-product-tag-inline svg{width:13px;height:13px;flex-shrink:0}

/* Badge Agotado — mismo patrón visual que TÉCNICA pero en rojo
   (style inline TÉCNICA: color:#2563eb;background:#2563eb1F;border:1px solid #2563eb).
   Pau req 2026-05-03: que el AGOTADO siga la misma estética de trazo
   fino + bg con alpha del propio color, en lugar del rectángulo plano. */
.rp-product-tag-inline--oos{
    color:#DC2626;
    background:rgba(220,38,38,.12);
    border-color:#DC2626;
}
.rp-product-tag-inline--oos svg{color:#DC2626}

/* Tags rompoda genéricos (color inline por JS/Smarty desde el tag en BD) */
.rp-product-tag-inline--tag{
    /* El style="color:X;background:rgba(X,.12);border-color:X" se asigna inline */
}

/* Prices */
.rp-product-prices{margin-bottom:20px}
.rp-product-price-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rp-product-price-current{
    font-family:'Montserrat',sans-serif;font-weight:800;font-size:28px;
    color:var(--rp-dark,#0F172A);line-height:1.1
}
.rp-product-price-old{
    font-family:'DM Sans',sans-serif;font-size:18px;
    color:var(--rp-g400,#94A3B8);text-decoration:line-through
}
.rp-product-discount-badge{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;
    background:#FEF2F2;color:#DC2626;padding:4px 10px;border-radius:9999px
}
.rp-product-unit-price{
    font-family:'DM Sans',sans-serif;font-size:12px;color:var(--rp-g500,#64748B);margin:4px 0 0
}
.rp-product-tax-label{
    font-family:'DM Sans',sans-serif;font-size:12px;color:var(--rp-g400,#94A3B8);margin-top:4px
}
/* Pau req v3 2026-04-29: ocultar el texto "Impuestos incluidos" — es
   redundante para el cliente final (los precios ya se muestran con IVA
   incluido). Mantenemos el div para que .delivery-information y otros
   hooks dentro de tax-shipping-delivery-label puedan seguir saliendo
   como nodos hijos si los hubiera. */
.rp-product-tax-label,
.tax-shipping-delivery-label{
    display:none !important;
}
/* Mini esqueleton del precio (Pau req v3 2026-04-29 — versión refinada).
   Mientras carga el AJAX, escondemos el TEXTO del precio y mostramos un
   shimmer skeleton SOLO sobre el .rp-product-price-current — el resto
   del bloque (título "Precio", impuestos…) sigue normal. Esto da feedback
   ultra-rápido sin dejar el precio anterior visible (que confunde). */
@keyframes rpSkeletonShimmer{
    0%{background-position:-160px 0}
    100%{background-position:200px 0}
}
@keyframes rpPriceFlash{
    0%{transform:scale(1);background:transparent}
    40%{transform:scale(1.04);background:rgba(37,99,235,.08)}
    100%{transform:scale(1);background:transparent}
}
.rp-pp-v2 .js-product-prices .rp-product-price-current{
    transition:transform 180ms ease, background 180ms ease;
    border-radius:6px;
}
/* Loading: ocultamos el texto y mostramos un skeleton del mismo ancho */
.rp-pp-v2 .js-product-prices.rp-price-loading .rp-product-price-current{
    color:transparent !important;
    user-select:none;
    background:linear-gradient(90deg,#E2E8F0 0%,#F1F5F9 50%,#E2E8F0 100%);
    background-size:280px 100%;
    background-repeat:no-repeat;
    animation:rpSkeletonShimmer 950ms linear infinite;
    border-radius:6px;
    display:inline-block;
    min-width:90px;
    min-height:1.1em;
    line-height:1.1;
}
/* Flash al pintar el nuevo precio */
.rp-pp-v2 .js-product-prices.rp-price-flash .rp-product-price-current{
    animation:rpPriceFlash 380ms ease-out;
    display:inline-block;
}

/* Short description */
.rp-product-short-desc{
    font-family:'DM Sans',sans-serif;font-size:14px;line-height:1.6;
    color:var(--rp-g700,#334155);margin-bottom:20px
}
.rp-product-short-desc p{margin:0 0 8px}

/* ── Variant pills ── */
.rp-product-variants{margin-bottom:20px}
.rp-variant-group{margin-bottom:16px}
.rp-variant-label{
    display:block;font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;
    color:var(--rp-g700,#334155);margin-bottom:8px
}
.rp-variant-selected{font-weight:400;color:var(--rp-g500,#64748B);margin-left:4px}
.rp-variant-pills{display:flex;flex-wrap:wrap;gap:8px}
.rp-variant-pill{
    font-family:'DM Sans',sans-serif;font-weight:500;font-size:13px;
    min-width:44px;height:40px;padding:0 14px;
    border:1.5px solid var(--rp-g300,#CBD5E1);border-radius:8px;
    background:#fff;color:var(--rp-g700,#334155);cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:all 200ms ease
}
.rp-variant-pill:hover{border-color:var(--rp-primary,#2563EB);color:var(--rp-primary,#2563EB)}
.rp-variant-pill.is-active{
    border-color:var(--rp-primary,#2563EB);background:var(--rp-primary-bg,#EFF6FF);
    color:var(--rp-primary,#2563EB);font-weight:600
}
.rp-variant-pill.is-oos{
    opacity:.4;text-decoration:line-through;cursor:not-allowed;
    pointer-events:none
}
.rp-variant-pill-radio{cursor:pointer}
.rp-variant-pill-radio input{position:absolute;opacity:0;pointer-events:none}
.rp-variant-hidden-select{display:none!important}

/* Color swatches */
.rp-variant-colors{
    display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0
}
.rp-variant-colors li{display:block}
.rp-variant-colors label{cursor:pointer;display:block}
.rp-variant-colors input{position:absolute;opacity:0;pointer-events:none}
.rp-color-swatch{
    display:block;width:36px;height:36px;border-radius:50%;
    border:2px solid var(--rp-g200,#E2E8F0);transition:all 200ms ease
}
.rp-variant-colors input:checked + .rp-color-swatch{
    border-color:var(--rp-primary,#2563EB);
    box-shadow:0 0 0 3px rgba(37,99,235,.15)
}
.rp-color-swatch:hover{border-color:var(--rp-g400,#94A3B8)}

/* ── Quantity + ATC ── */
.rp-product-add-to-cart{margin-bottom:20px}
.rp-product-qty-row{display:flex;gap:12px;align-items:stretch}
.rp-qty-wrapper{
    display:flex;align-items:center;border:1.5px solid var(--rp-g300,#CBD5E1);
    border-radius:12px;overflow:hidden;height:52px;flex:0 0 auto
}
.rp-qty-btn{
    width:44px;height:100%;border:none;background:transparent;
    cursor:pointer;display:flex;align-items:center;justify-content:center;
    color:var(--rp-g500,#64748B);transition:all 150ms ease;padding:0
}
.rp-qty-btn:hover{background:var(--rp-g100,#F1F5F9);color:var(--rp-primary,#2563EB)}
.rp-qty-btn svg{width:16px;height:16px}
.rp-qty-input{
    width:48px;text-align:center;border:none;font-family:'DM Sans',sans-serif;
    font-size:16px;font-weight:700;color:var(--rp-dark,#0F172A);
    -moz-appearance:textfield;appearance:textfield;outline:none;background:transparent
}
.rp-qty-input::-webkit-outer-spin-button,
.rp-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

.rp-atc-btn{
    flex:1;height:52px;border:none!important;border-radius:12px!important;
    background:var(--rp-accent,#f8982e)!important;color:#fff!important;
    font-family:'Montserrat',sans-serif!important;font-weight:600!important;font-size:15px!important;
    cursor:pointer;display:flex!important;align-items:center;justify-content:center;gap:8px;
    transition:all 250ms cubic-bezier(.16,1,.3,1)!important;
    box-shadow:0 8px 20px -4px rgba(248,152,46,.4),inset 0 1px 0 rgba(255,255,255,.25)!important;
    padding:0 24px!important;text-transform:none!important;letter-spacing:0!important
}
.rp-atc-btn:hover{
    background:var(--rp-accent-dark,#e07d10)!important;
    transform:translateY(-1px)!important;
    box-shadow:0 12px 28px -4px rgba(248,152,46,.55)!important
}
.rp-atc-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}
.rp-atc-btn svg{width:20px;height:20px}
/* Override global form submit styles for ATC */
.rp-product-page form#add-to-cart-or-refresh button[type=submit].rp-atc-btn{
    width:auto!important;
    background:var(--rp-accent,#f8982e)!important
}
.rp-product-page form#add-to-cart-or-refresh button[type=submit].rp-atc-btn:hover{
    background:var(--rp-accent-dark,#e07d10)!important
}

/* ════════════════════════════════════════════════════════════════════
   AVISOS DE PRODUCTO (.rp-avail) — Pau req v3 2026-04-29
   ──────────────────────────────────────────────────────────────────
   Rediseño "Shopify-modern": fondo soft tintado del color del tipo,
   borde 1.5px del color primario, padding cómodo, border-radius 12px,
   icono Lucide stroke 2px alineado a la izquierda. Ya no es texto
   suelto con un iconito de 16px — ahora es una "card de aviso" clara
   que destaca pero sin gritar.
   Mapeo:
     --ok    success → verde #10B981 / fondo #ECFDF5 / borde #A7F3D0
     --warn  warning → naranja amarillento #D97706 / fondo #FEF3C7 / borde #FDE68A
                       (low stock / "últimas unidades" / disponible bajo pedido)
     --no    error   → rojo #DC2626 / fondo #FEF2F2 / borde #FECACA
                       (sin stock / agotado)
   Mobile-first: padding 10px 12px, font 12.5px. Desktop: 12px 14px, 14px.
   ──────────────────────────────────────────────────────────────────── */
.rp-product-availability{margin-top:12px}
.rp-product-availability:empty{display:none}
.rp-avail{
    display:flex;align-items:flex-start;gap:10px;
    font-family:'DM Sans',sans-serif;
    font-size:12.5px;line-height:1.4;font-weight:500;
    padding:10px 12px;
    border-radius:12px;
    border:1.5px solid transparent;
    background:transparent;
    transition:background 200ms ease, border-color 200ms ease;
}
.rp-avail svg,
.rp-avail [data-lucide]{
    width:18px;height:18px;flex-shrink:0;
    stroke-width:2;
    margin-top:1px;
}
.rp-avail span{flex:1 1 auto;min-width:0}
.rp-avail .rp-avail-sub{
    display:block;
    font-size:11.5px;font-weight:400;
    opacity:.85;
    margin-top:2px;
}
/* Success — en stock */
.rp-avail--ok{
    background:#ECFDF5;
    border-color:#A7F3D0;
    color:#047857;
}
.rp-avail--ok svg,
.rp-avail--ok [data-lucide]{color:#10B981}
/* Warning — últimas unidades / bajo pedido / disponible */
.rp-avail--warn{
    background:#FEF3C7;
    border-color:#FDE68A;
    color:#92400E;
}
.rp-avail--warn svg,
.rp-avail--warn [data-lucide]{color:#D97706}
/* Error — sin stock / agotado */
.rp-avail--no{
    background:#FEF2F2;
    border-color:#FECACA;
    color:#991B1B;
}
.rp-avail--no svg,
.rp-avail--no [data-lucide]{color:#EF4444}
/* Desktop: padding cómodo, font algo mayor */
@media (min-width:768px){
    .rp-avail{
        padding:12px 14px;
        font-size:14px;
        gap:12px;
    }
    .rp-avail svg,
    .rp-avail [data-lucide]{width:20px;height:20px;margin-top:0}
    .rp-avail .rp-avail-sub{font-size:12.5px}
}

.rp-product-min-qty{font-family:'DM Sans',sans-serif;font-size:12px;color:var(--rp-g500);margin:4px 0 0}

/* ── Trust signals ── */
.rp-product-trust{
    display:flex;gap:20px;padding:16px 0;
    border-top:1px solid var(--rp-g200,#E2E8F0);
    border-bottom:1px solid var(--rp-g200,#E2E8F0);
    margin-bottom:24px
}
.rp-trust-item{
    display:flex;align-items:center;gap:6px;
    font-family:'DM Sans',sans-serif;font-size:12px;color:var(--rp-g500,#64748B)
}
.rp-trust-item svg{width:16px;height:16px;color:var(--rp-primary,#2563EB);flex-shrink:0}
@media(max-width:575px){
    .rp-product-trust{flex-direction:column;gap:8px}
}

/* ── Accordion ── */
.rp-product-accordion{border-top:1px solid var(--rp-g200,#E2E8F0)}
.rp-accordion-item{border-bottom:1px solid var(--rp-g200,#E2E8F0)}
.rp-accordion-header{
    width:100%;display:flex;align-items:center;gap:10px;
    padding:16px 0;border:none;background:transparent;cursor:pointer;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;
    color:var(--rp-g700,#334155);text-align:left;
    transition:color 200ms ease
}
.rp-accordion-header:hover{color:var(--rp-primary,#2563EB)}
.rp-accordion-icon{width:18px;height:18px;flex-shrink:0;color:var(--rp-g400,#94A3B8)}
.rp-accordion-chevron{
    width:18px;height:18px;margin-left:auto;flex-shrink:0;
    color:var(--rp-g400,#94A3B8);
    transition:transform 300ms ease
}
.rp-accordion-item.is-open .rp-accordion-chevron{transform:rotate(180deg)}
.rp-accordion-body{
    max-height:0;overflow:hidden;
    transition:max-height 350ms cubic-bezier(.4,0,.2,1)
}
.rp-accordion-item.is-open .rp-accordion-body{max-height:2000px}
.rp-accordion-content{
    padding:0 0 20px;font-family:'DM Sans',sans-serif;font-size:14px;
    line-height:1.7;color:var(--rp-g700,#334155)
}
.rp-accordion-content p{margin:0 0 12px}
.rp-accordion-content ul,.rp-accordion-content ol{padding-left:20px;margin:0 0 12px}
.rp-accordion-content li{margin-bottom:4px}

/* Description content styling */
.rp-product-description{word-break:break-word}
.rp-product-description img{max-width:100%;height:auto;border-radius:8px;margin:8px 0}

/* ── Size guide table ── */
.rp-size-guide{overflow-x:auto}
.rp-size-table{
    width:100%;border-collapse:collapse;font-family:'DM Sans',sans-serif;font-size:13px
}
.rp-size-table thead th{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:11px;
    text-transform:uppercase;letter-spacing:.5px;color:var(--rp-g500,#64748B);
    background:var(--rp-g50,#F8FAFC);padding:10px 14px;text-align:left;
    border-bottom:1px solid var(--rp-g200,#E2E8F0)
}
.rp-size-table tbody td{
    padding:10px 14px;color:var(--rp-g700,#334155);
    border-bottom:1px solid var(--rp-g100,#F1F5F9)
}
.rp-size-table tbody tr:nth-child(even){background:var(--rp-g50,#F8FAFC)}
.rp-size-table tbody tr:hover{background:var(--rp-primary-bg,#EFF6FF)}
.rp-size-note{
    font-size:12px;color:var(--rp-g400,#94A3B8);margin-top:12px;font-style:italic
}

/* ── Size guide BO-managed (modulo Guia de tallas) ── */
/* Imagen 400×400 centrada arriba, tabla HTML personalizable abajo. */
/* Pau req v3 2026-04-28: imagen guía de tallas REDUCIDA + clicable.
   Mobile first: max 160px en mobile, 200px desktop. Click → lightbox. */
.rp-size-guide-image{text-align:center;margin:0 0 16px}
.rp-size-guide-image img{
    max-width:160px;max-height:160px;width:auto;height:auto;display:inline-block;
    border-radius:8px;
    box-shadow:0 4px 8px rgba(15,23,42,.08);
    cursor:zoom-in;
    transition:transform .2s ease, box-shadow .2s ease;
}
@media (min-width:768px){
    .rp-size-guide-image img{max-width:200px;max-height:200px}
}
.rp-size-guide-image img:hover{
    transform:scale(1.03);
    box-shadow:0 8px 16px rgba(15,23,42,.15);
}
/* Lightbox overlay */
.rp-lightbox-overlay{
    position:fixed;inset:0;
    background:rgba(15,23,42,.92);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    z-index:99999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px;
    cursor:zoom-out;
    opacity:0;
    transition:opacity .25s ease;
}
.rp-lightbox-overlay.is-open{display:flex;opacity:1}
.rp-lightbox-overlay img{
    max-width:95vw;
    max-height:90vh;
    width:auto;
    height:auto;
    border-radius:8px;
    box-shadow:0 25px 50px rgba(0,0,0,.5);
    transform:scale(.9);
    transition:transform .3s cubic-bezier(.16,1,.3,1);
}
.rp-lightbox-overlay.is-open img{transform:scale(1)}
.rp-lightbox-close{
    position:absolute;top:20px;right:20px;
    width:44px;height:44px;
    background:rgba(255,255,255,.9);
    border:0;border-radius:9999px;
    color:#0F172A;font-size:24px;line-height:1;
    cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:all .15s ease;
}
.rp-lightbox-close:hover{background:#fff;transform:rotate(90deg)}
.rp-size-guide-html table{
    width:100%;border-collapse:collapse;font-family:'DM Sans',sans-serif;font-size:13px
}
.rp-size-guide-html thead th{
    background:var(--rp-g50,#F8FAFC);
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:11px;
    text-transform:uppercase;letter-spacing:.5px;color:var(--rp-g500,#64748B);
    padding:10px 8px;text-align:left;
    border-bottom:1px solid var(--rp-g200,#E2E8F0)
}
.rp-size-guide-html tbody td{
    padding:8px;font-size:13px;color:var(--rp-g700,#334155);
    border-bottom:1px solid var(--rp-g100,#F1F5F9)
}
.rp-size-guide-html tbody tr:nth-child(even) td{background:var(--rp-g50,#F8FAFC)}
@media (max-width:600px){
    .rp-size-guide-html{overflow-x:auto;max-width:100%;min-width:0}
    /* Pau req v6 2026-04-29 (bug Camiseta Vedruna): el min-width:480px
       de la tabla inflaba el track del CSS Grid del .rp-product-grid
       en mobile, desbordando la galería 32px fuera del viewport. La
       tabla mantiene min-width pero el wrapper se contiene con
       max-width:100%; min-width:0; permitiendo overflow-x interno. */
    .rp-size-guide-html table{min-width:480px}
}
/* Critical fix: en mobile, los hijos del .rp-product-grid deben tener
   min-width:0 para que los tracks no se expandan a min-content del
   contenido (caso tabla guía tallas). Sin esto un módulo con tabla
   ancha desborda toda la grid. */
@media (max-width: 991px){
    .rp-pp-v2 .rp-product-grid > *{ min-width: 0 !important; }
    .rp-pp-v2 .rp-product-info{ min-width: 0 !important; }
    .rp-pp-v2 .rp-product-info > *{ min-width: 0 !important; max-width: 100%; }
}

/* ── Features list ── */
.rp-features-list{margin:0;padding:0}
.rp-feature-row{
    display:flex;padding:10px 0;
    border-bottom:1px solid var(--rp-g100,#F1F5F9)
}
.rp-feature-row:last-child{border-bottom:none}
.rp-feature-row dt{
    flex:0 0 40%;font-weight:500;color:var(--rp-g500,#64748B);
    font-family:'DM Sans',sans-serif;font-size:13px
}
.rp-feature-row dd{
    flex:1;margin:0;font-weight:500;color:var(--rp-g700,#334155);
    font-family:'DM Sans',sans-serif;font-size:13px
}

/* ── Shipping info ── */
.rp-info-block{margin-bottom:16px}
.rp-info-block:last-child{margin-bottom:0}
.rp-info-block h4{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;
    color:var(--rp-dark,#0F172A);margin:0 0 4px
}
.rp-info-block p{margin:0;font-size:13px;line-height:1.6}

/* ── Care list ──
   Compatible con el legacy (li directo + svg) y con el nuevo módulo
   "Cuidado de la prenda" (li.rp-care-row con img.rp-care-icon).
   El nuevo módulo usa icono SVG de 24x24 (norma ISO 3758) en azul Rompoda.
*/
.rp-care-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0}
.rp-care-list li{
    display:flex;align-items:center;gap:14px;padding:10px 0;
    font-family:'DM Sans',sans-serif;font-size:14px;color:var(--rp-g700,#334155);
    border-bottom:none;line-height:1.4
}
.rp-care-list li:last-child{border-bottom:none}
.rp-care-list li svg{width:16px;height:16px;color:var(--rp-g400,#94A3B8);flex-shrink:0}

/* Iconos del módulo "Cuidado de la prenda" — img SVG de 24x24 */
.rp-care-list .rp-care-icon{
    width:24px;height:24px;flex-shrink:0;
    color:var(--rp-primary,#2563EB)
}
.rp-care-list .rp-care-text{flex:1;min-width:0}

/* Composición (Pau req v6 2026-04-29) — encima de los iconos.
   Pau req v6.9: misma tipografía y tamaño que los textos de los iconos
   de cuidado (DM Sans 14px), solo bold.
   Pau req v6.10: SIN línea divisora. */
.rp-care-composition{
    font-family:'DM Sans',sans-serif;
    font-weight:700;
    font-size:14px;
    color:var(--rp-g700,#334155);
    padding:10px 0;
    line-height:1.4;
}

/* ── Related products ── */
.rp-related-products{
    padding:48px 0 0;
    border-top:1px solid var(--rp-g200,#E2E8F0)
}
.rp-related-title{
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:22px;
    color:var(--rp-dark,#0F172A);margin:0 0 24px
}
.rp-related-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px
}
@media(max-width:991px){
    .rp-related-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:767px){
    .rp-related-grid{
        grid-template-columns:repeat(2,1fr);
        gap:12px
    }
    .rp-related-title{font-size:18px;margin-bottom:16px}
}
@media(max-width:480px){
    .rp-related-grid{
        display:flex;
        overflow-x:auto;-webkit-overflow-scrolling:touch;
        scroll-snap-type:x mandatory;gap:12px;
        padding-bottom:8px;scrollbar-width:none
    }
    .rp-related-grid::-webkit-scrollbar{display:none}
    .rp-related-grid > article,
    .rp-related-grid > .product-miniature{
        flex:0 0 65%;scroll-snap-align:start
    }
}

/* ── Mobile gallery swipe ── */
@media(max-width:991px){
    .rp-gallery-main{
        overflow-x:auto;-webkit-overflow-scrolling:touch;
        scroll-snap-type:x mandatory;display:flex;
        aspect-ratio:auto
    }
    .rp-gallery-main picture{
        flex:0 0 100%;scroll-snap-align:start
    }
    .rp-gallery-main-img{
        width:100%;height:auto;aspect-ratio:1/1;object-fit:cover
    }
}

/* ── Mobile sticky ATC (enhanced) ── */
.rp-sticky-atc{
    position:fixed;bottom:0;left:0;right:0;z-index:1000;
    background:#fff;padding:12px 16px;
    box-shadow:0 -4px 20px rgba(15,23,42,.1);
    display:flex;align-items:center;gap:12px;
    transform:translateY(100%);transition:transform 300ms ease;
    border-top:1px solid var(--rp-g200,#E2E8F0)
}
.rp-sticky-atc.is-visible{transform:translateY(0)}
.rp-sticky-atc__info{flex:1;min-width:0}
.rp-sticky-atc__name{
    font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;
    color:var(--rp-g700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.rp-sticky-atc__price{
    font-family:'Montserrat',sans-serif;font-size:16px;font-weight:800;
    color:var(--rp-dark,#0F172A)
}
.rp-sticky-atc__btn{
    flex-shrink:0;height:44px;padding:0 24px;border:none;border-radius:12px;
    background:var(--rp-accent,#f8982e);color:#fff;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;
    cursor:pointer;transition:all 200ms ease;
    box-shadow:0 4px 12px rgba(248,152,46,.3)
}
.rp-sticky-atc__btn:hover{background:var(--rp-accent-dark,#e07d10)}

/* ── Lightbox overlay ── */
.rp-lightbox{
    position:fixed;inset:0;z-index:10000;
    background:rgba(15,23,42,.92);
    display:flex;align-items:center;justify-content:center;
    opacity:0;pointer-events:none;transition:opacity 300ms ease
}
.rp-lightbox.is-open{opacity:1;pointer-events:auto}
.rp-lightbox-img{
    max-width:90vw;max-height:90vh;object-fit:contain;
    border-radius:12px;cursor:zoom-out
}
.rp-lightbox-close{
    position:absolute;top:20px;right:20px;width:44px;height:44px;
    border-radius:50%;border:none;background:rgba(255,255,255,.15);
    color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;
    transition:background 200ms ease;backdrop-filter:blur(8px)
}
.rp-lightbox-close:hover{background:rgba(255,255,255,.3)}
.rp-lightbox-close svg{width:24px;height:24px}
.rp-lightbox-prev,.rp-lightbox-next{
    position:absolute;top:50%;transform:translateY(-50%);
    width:48px;height:48px;border-radius:50%;border:none;
    background:rgba(255,255,255,.15);color:#fff;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:background 200ms ease;backdrop-filter:blur(8px)
}
.rp-lightbox-prev{left:20px}
.rp-lightbox-next{right:20px}
.rp-lightbox-prev:hover,.rp-lightbox-next:hover{background:rgba(255,255,255,.3)}
.rp-lightbox-prev svg,.rp-lightbox-next svg{width:24px;height:24px}

/* ── Product page misc overrides ── */
.rp-product-page .product-actions{margin-bottom:0}
.rp-product-page .product-discounts{margin-bottom:16px}
.rp-product-page .product-discount .regular-price{display:none}
.rp-product-page .product-pack{margin-bottom:16px}
.rp-product-page .product-customization{margin-bottom:16px}

/* Fix: PS product image modal — hide it, we use our own lightbox */
.rp-product-page #product-modal{display:none!important}

/* Add to cart feedback */
.rp-atc-btn.rp-added{
    background:#10B981!important;
    box-shadow:0 8px 20px -4px rgba(16,185,129,.4)!important
}
/* ════════════════════════════════════════════════════════════════════
   Sticky ATC bar — rediseño 2026-04-29 (estilo AYBL)
   Layout limpio: imagen 64px redondeada · nombre + precio · botón.
   Fondo blanco sólido (sin blur exagerado), borde superior fino,
   tipografía sobria. Mobile = solo botón a tamaño completo.
   ════════════════════════════════════════════════════════════════════ */
.rp-sticky-atc{
    position:fixed;
    bottom:0;left:0;right:0;
    background:#fff;
    border-top:1px solid var(--rp-g200,#E2E8F0);
    box-shadow:0 -4px 16px -6px rgba(15,23,42,.12);
    transform:translateY(100%);
    transition:transform .35s cubic-bezier(.16,1,.3,1);
    z-index:9990;
    padding:10px 20px calc(10px + env(safe-area-inset-bottom));
    display:block;
}
.rp-sticky-atc.is-visible{transform:translateY(0)}
.rp-sticky-atc-inner{
    max-width:1280px;margin:0 auto;
    display:flex;align-items:center;gap:14px;
}
.rp-sticky-atc-info{
    display:flex;align-items:center;gap:12px;
    flex:1;min-width:0;text-decoration:none;
    color:var(--rp-dark,#0F172A);
}
.rp-sticky-atc-info:hover{text-decoration:none;color:var(--rp-dark,#0F172A)}
.rp-sticky-atc-info:hover .rp-sticky-atc-name{color:var(--rp-primary,#2563EB)}
.rp-sticky-atc-img-wrap{
    width:64px;height:64px;border-radius:6px;
    background:var(--rp-g100,#F1F5F9);
    flex-shrink:0;overflow:hidden;
    display:inline-flex;align-items:center;justify-content:center;
    border:1px solid var(--rp-g200,#E2E8F0);
}
.rp-sticky-atc-img{
    width:100%;height:100%;object-fit:cover;display:block;
}
.rp-sticky-atc-meta{
    display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;
}
.rp-sticky-atc-name{
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:14px;
    color:var(--rp-dark,#0F172A);line-height:1.3;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    transition:color 150ms ease;
}
.rp-sticky-atc-price{
    font-family:'DM Sans',sans-serif;font-weight:500;font-size:13px;
    color:var(--rp-g500,#64748B);line-height:1.2;
}
.rp-sticky-atc-btn{
    height:48px;padding:0 28px;border:none;border-radius:10px;
    background:var(--rp-accent,#f8982e);color:#fff;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;
    letter-spacing:.2px;
    cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
    transition:background 200ms ease, transform 200ms ease, box-shadow 200ms ease;
    box-shadow:0 4px 12px -2px rgba(248,152,46,.35);
    flex-shrink:0;white-space:nowrap;
}
.rp-sticky-atc-btn:hover{
    background:var(--rp-accent-dark,#e07d10);
    transform:translateY(-1px);
    box-shadow:0 8px 18px -3px rgba(248,152,46,.5);
}
/* Estado bloqueado: cuando aún no hay talla seleccionada — color azul
   Rompoda y sin efecto hover. La label cambia a "Selecciona una talla"
   desde JS (sticky tiene un solo span, no se solapa con ::before). */
.rp-sticky-atc-btn.is-blocked,
.rp-sticky-atc-btn[data-rp-needs-talla]{
    background:var(--rp-primary,#2563EB)!important;
    box-shadow:0 4px 12px -2px rgba(37,99,235,.3)!important;
    cursor:not-allowed;
}
.rp-sticky-atc-btn.is-blocked:hover,
.rp-sticky-atc-btn[data-rp-needs-talla]:hover{
    background:var(--rp-primary-dark,#1D4ED8)!important;
    transform:none;
    box-shadow:0 4px 12px -2px rgba(37,99,235,.3)!important;
}
@media (max-width:640px){
    .rp-sticky-atc{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
    .rp-sticky-atc-inner{gap:10px}
    .rp-sticky-atc-info{display:none}
    .rp-sticky-atc-btn{flex:1;height:52px;font-size:15px}
}
@media (min-width:641px) and (max-width:900px){
    .rp-sticky-atc-img{width:40px;height:40px}
    .rp-sticky-atc-name{font-size:12px}
    .rp-sticky-atc-price{font-size:13px}
}

/* Pau req v3 2026-04-29: estado "Selecciona una talla" en AZUL Rompoda
   y bloqueado. Cuando hay talla seleccionada, vuelve al naranja accent.

   Estrategia v4: el texto se sobrescribe con CSS ::before en lugar de
   tocar el HTML del botón (PrestaShop reemplaza el contenido en cada
   AJAX y nuestro JS pierde la carrera). El atributo data-rp-needs-talla
   activa el pseudo-elemento que tapa el contenido original. */
.rp-atc-btn[data-rp-needs-talla],
.rp-atc-btn.rp-talla-required,
.rp-atc-btn.rp-disabled{
    background:var(--rp-primary,#2563EB)!important;
    color:transparent!important;
    font-size:0!important; /* colapsa texto original — evita solape con ::before */
    box-shadow:0 8px 20px -4px rgba(37,99,235,.35),inset 0 1px 0 rgba(255,255,255,.25)!important;
    cursor:not-allowed!important;
    opacity:1!important;
    position:relative!important;
}
/* Tapa el contenido original (icono + texto "Añadir al carrito" que pinta
   PS server-side) y muestra "Selecciona una talla" centrado. */
.rp-atc-btn[data-rp-needs-talla]::before,
.rp-atc-btn.rp-talla-required::before{
    content:'Selecciona una talla';
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-family:'Montserrat',sans-serif;
    font-weight:600;
    font-size:15px;
    border-radius:12px;
    background:transparent;
    pointer-events:none;
}
/* Pau req noche 2026-04-30: cuando el bloqueo es por personalización
   pendiente (campo obligatorio sin rellenar o opcional sin marcar skip),
   el texto cambia a "Personaliza el producto". Se usa el mismo estilo
   azul Rompoda que el data-rp-needs-talla. */
.rp-atc-btn[data-rp-needs-pers]::before,
.rp-atc-btn.rp-pers-required::before{
    content:'Personaliza el producto';
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-family:'Montserrat',sans-serif;
    font-weight:600;
    font-size:15px;
    border-radius:12px;
    background:transparent;
    pointer-events:none;
}
.rp-atc-btn[data-rp-needs-pers],
.rp-atc-btn.rp-pers-required{
    background:var(--rp-primary,#2563EB)!important;
    box-shadow:0 8px 20px -4px rgba(37,99,235,.35),inset 0 1px 0 rgba(255,255,255,.25)!important;
    cursor:not-allowed!important;
    opacity:1!important;
    position:relative!important;
}
.rp-atc-btn[data-rp-needs-pers] svg,
.rp-atc-btn[data-rp-needs-pers] i,
.rp-atc-btn[data-rp-needs-pers] span,
.rp-atc-btn.rp-pers-required svg,
.rp-atc-btn.rp-pers-required i,
.rp-atc-btn.rp-pers-required span{
    display:none!important;
}
.rp-atc-btn[data-rp-needs-talla] svg,
.rp-atc-btn[data-rp-needs-talla] i,
.rp-atc-btn[data-rp-needs-talla] span,
.rp-atc-btn.rp-talla-required svg,
.rp-atc-btn.rp-talla-required i,
.rp-atc-btn.rp-talla-required span{
    display:none!important; /* ocultar todos los hijos del botón */
}
.rp-atc-btn[data-rp-needs-talla]:hover,
.rp-atc-btn.rp-talla-required:hover,
.rp-atc-btn.rp-disabled:hover{
    background:var(--rp-primary-dark,#1D4ED8)!important;
    transform:none!important;
    box-shadow:0 8px 20px -4px rgba(37,99,235,.45),inset 0 1px 0 rgba(255,255,255,.25)!important;
}
/* Override del fix global de form submit para evitar que se vuelva naranja */
.rp-product-page form#add-to-cart-or-refresh button[type=submit].rp-atc-btn[data-rp-needs-talla],
.rp-product-page form#add-to-cart-or-refresh button[type=submit].rp-atc-btn.rp-talla-required{
    background:var(--rp-primary,#2563EB)!important;
}
.rp-product-page form#add-to-cart-or-refresh button[type=submit].rp-atc-btn[data-rp-needs-talla]:hover,
.rp-product-page form#add-to-cart-or-refresh button[type=submit].rp-atc-btn.rp-talla-required:hover{
    background:var(--rp-primary-dark,#1D4ED8)!important;
}
.rp-btn-spinner{
    display:inline-block;width:16px;height:16px;
    border:2px solid rgba(255,255,255,.3);border-top-color:#fff;
    border-radius:50%;animation:rpSpin .6s linear infinite
}
@keyframes rpSpin{to{transform:rotate(360deg)}}

/* Safe area padding for sticky ATC on iOS */
@supports(padding-bottom:env(safe-area-inset-bottom)){
    .rp-sticky-atc{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
    body.rp-has-sticky-atc{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
}

/* ═══════════════════════════════════════════════════
   CHECKOUT · Rompoda v3 — ajustes tarea 2026-04-17
   ═══════════════════════════════════════════════════ */

/* ── Logo Rompoda en header del checkout ── */
.rp-checkout-header__left{gap:6px}
.rp-checkout-logo{
  display:inline-flex;align-items:center;text-decoration:none;
  margin-bottom:4px;align-self:flex-start;
}
.rp-checkout-logo-img{height:32px;width:auto;display:block}
@media(max-width:640px){
  .rp-checkout-logo-img{height:28px}
}

/* ── Chips del progreso: cursor pointer cuando es navegable ── */
.rp-checkout-step-chip{cursor:default;user-select:none}
.rp-checkout-step-chip.is-clickable:not(.is-current){cursor:pointer}
.rp-checkout-step-chip.is-clickable:not(.is-current):hover{
  border-color:var(--rp-primary,#2563EB);color:var(--rp-primary,#2563EB);
  background:var(--rp-primary-bg,#EFF6FF);
}
.rp-checkout-step-chip.is-current{cursor:default}

/* ── Ocultar indicador grande de cada step (redundante con chips) ──
   Mantenemos el título del step pero ocultamos el círculo con número.
   Los chips arriba ya hacen ese trabajo visual. *}
.rp-checkout-page .rp-step-indicator{display:none !important}
.rp-checkout-page .rp-step .rp-step-title{
  padding:16px 22px;font-size:15px;gap:0;
}
.rp-checkout-page .rp-step .rp-step-label{font-weight:700}
@media(max-width:640px){
  .rp-checkout-page .rp-step .rp-step-title{padding:14px 16px;font-size:14px}
}

/* ── Dirección gestionada por Rompoda (centro) ──
   Pau req 2026-05-01: el alert del checkout dice "elige la dirección
   marcada en naranja" pero antes la card sólo se ponía naranja al
   seleccionarla → el cliente no la identificaba. Ahora la dirección
   del centro arranca ya con tinte naranja sutil + border naranja
   claro + badge naranja. Al seleccionar se intensifica (regla más
   abajo: js-address-item.rp-address-managed.selected). */
.rp-checkout-page .address-item.rp-address-managed{
  background:#FFF7ED;
  border-style:solid;border-color:#FED7AA;border-width:1.5px;
  position:relative;
}
.rp-checkout-page .address-item.rp-address-managed:hover{
  border-color:var(--rp-accent,#f8982e);
  box-shadow:0 4px 14px -6px rgba(248,152,46,.18);
}
.rp-checkout-page .address-item.rp-address-managed hr{display:none}
.rp-checkout-page .address-item.rp-address-managed .address-footer{display:none}
.rp-address-managed-badge{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:9999px;
  background:var(--rp-accent,#f8982e);color:#fff;
  margin-right:6px;vertical-align:middle;flex-shrink:0;
}
.rp-address-managed-note{
  margin:6px 0 0;font-family:'DM Sans',sans-serif;font-size:12px;
  color:#9A3412;font-style:italic;font-weight:600;
  display:flex;align-items:center;gap:6px;
}

/* ── Drawer footer con un solo CTA (tramitar) ── */
.rp-cart-drawer-actions--single{grid-template-columns:1fr !important}
.rp-cart-drawer-actions--single .rp-btn{width:100%}

/* ════════════════════════════════════════════════════════════════════
   CHECKOUT v2 · Rediseño basado en "Checkout v2.html"
   Prefijos: .rp-co-v2__* (nuevos componentes v2)
   Reusa/override las clases .rp-checkout-* existentes para integración.
   ════════════════════════════════════════════════════════════════════ */

/* Ocultar header/footer core de PS cuando estamos en checkout v2 */
.page-checkout #header > .header-nav,
.page-checkout #header .header-top,
.page-checkout .breadcrumb{display:none !important}
.page-checkout #header{background:transparent;border:none;box-shadow:none}
.page-checkout #wrapper{padding-top:0}

/* Header checkout v2 · sticky top:0 */
.rp-co-v2__header{
  position:sticky;top:0;z-index:40;background:#fff;
  border-bottom:1px solid #F1F5F9;
}
.rp-co-v2__utility{background:#0F172A;color:rgba(255,255,255,.82)}
.rp-co-v2__utility-inner{
  max-width:1280px;margin:0 auto;padding:7px 28px;
  display:flex;justify-content:space-between;align-items:center;
  font-family:'DM Sans',sans-serif;font-size:12px;letter-spacing:.01em;
  flex-wrap:wrap;gap:8px;
}
.rp-co-v2__utility-dot{color:#60A5FA;margin-right:8px}
.rp-co-v2__utility-left{display:inline-flex;align-items:center}
.rp-co-v2__utility-right{display:inline-flex;align-items:center;gap:12px}
.rp-co-v2__utility-sep{opacity:.4}
.rp-co-v2__utility-link{color:inherit;text-decoration:none;transition:color 150ms ease}
.rp-co-v2__utility-link:hover{color:#fff}

.rp-co-v2__mainbar{
  max-width:1280px;margin:0 auto;padding:16px 28px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.rp-co-v2__logo{display:inline-flex;align-items:center;flex-shrink:0;text-decoration:none}
.rp-co-v2__logo-img{height:26px;width:auto;display:block}
.rp-co-v2__mainbar-title{
  flex:1;text-align:center;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:11px;
  color:#64748B;letter-spacing:.12em;text-transform:uppercase;
}
.rp-co-v2__mainbar-ssl{
  display:inline-flex;align-items:center;gap:6px;flex-shrink:0;
  font-family:'DM Sans',sans-serif;font-size:12px;color:#334155;
  padding:6px 12px;border-radius:9999px;background:#F8FAFC;border:1px solid #E2E8F0;
}
.rp-co-v2__mainbar-ssl svg{color:#10B981}

/* v3: header minimal · mainbar centrado · logo en el centro, SSL badge a la derecha */
.rp-co-v2__header--minimal{border-bottom:1px solid #F1F5F9}
.rp-co-v2__mainbar--centered{
  position:relative;justify-content:center;padding:20px 28px;min-height:64px;
}
.rp-co-v2__mainbar--centered .rp-co-v2__logo{margin:0 auto}
.rp-co-v2__mainbar--centered .rp-co-v2__logo-img{height:28px}
.rp-co-v2__mainbar--centered .rp-co-v2__mainbar-ssl{
  position:absolute;right:28px;top:50%;transform:translateY(-50%);
}
@media(max-width:640px){
  .rp-co-v2__mainbar{padding:12px 16px}
  .rp-co-v2__logo-img{height:22px}
  .rp-co-v2__mainbar-title{display:none}
  .rp-co-v2__utility-inner{padding:7px 16px;font-size:11px}
  .rp-co-v2__utility-right{display:none}
  .rp-co-v2__mainbar--centered{padding:14px 16px;min-height:56px}
  .rp-co-v2__mainbar--centered .rp-co-v2__logo-img{height:22px}
  .rp-co-v2__mainbar--centered .rp-co-v2__mainbar-ssl{right:16px;padding:4px 8px;font-size:11px}
  .rp-co-v2__mainbar--centered .rp-co-v2__mainbar-ssl span{display:none}
}

/* Container v2 (más amplio que v1: 1200px) */
.rp-co-v2 .rp-co-v2__container{
  max-width:1200px;margin:0 auto;padding:28px 24px 0;
}
@media(max-width:991px){.rp-co-v2 .rp-co-v2__container{padding:20px 16px 0}}

/* H1 + subtítulo */
.rp-co-v2__heading{margin-bottom:20px}
.rp-co-v2__h1{
  margin:0;font-family:'Montserrat',sans-serif;font-weight:900;font-size:30px;
  color:#0F172A;letter-spacing:-.02em;line-height:1.15;
}
.rp-co-v2__sub{
  margin:6px 0 0;font-family:'DM Sans',sans-serif;font-size:15px;color:#64748B;
}
@media(max-width:640px){.rp-co-v2__h1{font-size:24px}.rp-co-v2__sub{font-size:14px}}

/* TrustStrip: grid N columnas con gap:1px (separadores) */
.rp-co-v2__trust{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:#E2E8F0;border-radius:14px;overflow:hidden;
  border:1px solid #E2E8F0;margin-bottom:20px;
}
.rp-co-v2__trust:has(.rp-co-v2__trust-item:nth-child(3)){
  grid-template-columns:repeat(3,1fr);
}
.rp-co-v2__trust-item{
  background:#fff;padding:14px 16px;display:flex;align-items:center;gap:12px;
}
.rp-co-v2__trust-icon{color:#2563EB;flex-shrink:0;width:22px;height:22px;display:inline-flex}
.rp-co-v2__trust-body strong{
  display:block;font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;
  color:#0F172A;letter-spacing:-.005em;
}
.rp-co-v2__trust-body small{
  display:block;font-family:'DM Sans',sans-serif;font-size:11px;color:#64748B;margin-top:1px;
}
@media(max-width:767px){
  .rp-co-v2__trust,.rp-co-v2__trust:has(.rp-co-v2__trust-item:nth-child(3)){
    grid-template-columns:1fr;gap:1px;
  }
}

/* StepNav · 3-4 cards horizontales (se adapta con flex:1) */
.rp-co-v2__stepnav{
  display:flex;align-items:stretch;gap:0;background:#fff;
  border:1px solid #E2E8F0;border-radius:16px;overflow:hidden;margin-bottom:20px;
  box-shadow:0 1px 3px rgba(15,23,42,.06);
}
.rp-co-v2__stepnav--4 .rp-co-v2__stepcard{padding:14px 14px}
.rp-co-v2__stepcard{
  flex:1;padding:16px 18px;display:flex;align-items:center;gap:12px;
  background:#fff;border:none;border-right:1px solid #F1F5F9;
  cursor:not-allowed;transition:150ms ease;text-align:left;min-width:0;
  font-family:inherit;
}
.rp-co-v2__stepcard:last-child{border-right:none}
.rp-co-v2__stepcard.is-current{background:#EFF6FF}
.rp-co-v2__stepcard.is-clickable{cursor:pointer}
.rp-co-v2__stepcard.is-clickable:hover{background:#F8FAFC}
.rp-co-v2__stepcircle{
  width:32px;height:32px;border-radius:9999px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:#F1F5F9;color:#94A3B8;
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:13px;
  transition:200ms ease;
}
.rp-co-v2__stepcard.is-current .rp-co-v2__stepcircle{
  background:#2563EB;color:#fff;box-shadow:0 0 0 4px rgba(37,99,235,.12);
}
.rp-co-v2__stepcard.is-complete .rp-co-v2__stepcircle{background:#10B981;color:#fff}
.rp-co-v2__stepn{display:inline}
.rp-co-v2__stepcheck{display:none}
.rp-co-v2__stepcard.is-complete .rp-co-v2__stepn{display:none}
.rp-co-v2__stepcard.is-complete .rp-co-v2__stepcheck{display:inline}
.rp-co-v2__steptxt{min-width:0;display:flex;flex-direction:column}
.rp-co-v2__steplabel{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;
  color:#334155;letter-spacing:-.005em;
}
.rp-co-v2__stepcard.is-current .rp-co-v2__steplabel{color:#1D4ED8}
.rp-co-v2__stepcard.is-complete .rp-co-v2__steplabel{color:#0F172A}
.rp-co-v2__stepsub{
  font-family:'DM Sans',sans-serif;font-size:11px;color:#64748B;margin-top:2px;
}
@media(max-width:640px){
  .rp-co-v2__stepcard{padding:12px 10px;gap:8px}
  .rp-co-v2__stepcircle{width:26px;height:26px;font-size:12px}
  .rp-co-v2__steplabel{font-size:12px}
  .rp-co-v2__stepsub{display:none}
}

/* Sections dentro de los steps (personal info) */
.rp-co-v2__section{margin-bottom:26px}
.rp-co-v2__section + .rp-co-v2__section{border-top:1px solid #F1F5F9;padding-top:22px}
.rp-co-v2__section-head{
  display:flex;align-items:center;gap:12px;margin-bottom:16px;
}
.rp-co-v2__section-icon{
  width:36px;height:36px;border-radius:10px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:#EFF6FF;color:#2563EB;
}
.rp-co-v2__section-icon--accent{background:#FFF7ED;color:#f8982e}
.rp-co-v2__section-title{
  margin:0;font-family:'Montserrat',sans-serif;font-weight:800;font-size:18px;
  color:#0F172A;letter-spacing:-.01em;
}
.rp-co-v2__section-sub{
  margin:2px 0 0;font-family:'DM Sans',sans-serif;font-size:13px;color:#64748B;
}

/* Fields custom v2 */
.rp-co-v2__field{margin-bottom:14px;display:flex;flex-direction:column}
.rp-co-v2__field > label{
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;
  color:#334155;margin-bottom:6px;letter-spacing:-.005em;
  text-transform:none !important;
}
.rp-co-v2__opt{color:#94A3B8;font-weight:400}
.rp-co-v2__field > input,
.rp-co-v2__field > select{
  height:44px;padding:0 14px;border:1.5px solid #CBD5E1;border-radius:8px;
  background:#fff;font-family:'DM Sans',sans-serif;font-size:14px;color:#0F172A;
  outline:none;transition:150ms ease;width:100%;
}
.rp-co-v2__field > input:focus,
.rp-co-v2__field > select:focus{
  border-color:#2563EB;box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.rp-co-v2__field > input[disabled],
.rp-co-v2__field > input[readonly]{
  background:#F8FAFC;color:#64748B;cursor:not-allowed;
}
/* Pau req 2026-05-03 (PDF4c): campo en estado inválido (faltaba al
   intentar continuar). El input/select se pone con borde y fondo rojo
   suave; el label del campo padre también pasa a rojo. Se quita en
   cuanto el cliente teclea / cambia el valor. */
.rp-co-v2__field > input.is-invalid,
.rp-co-v2__field > select.is-invalid{
  border-color:#EF4444 !important;
  background:#FEF2F2;
  box-shadow:0 0 0 3px rgba(239,68,68,.10);
}
.rp-co-v2__field--invalid > label{color:#B91C1C}
.rp-co-v2__field--invalid > label .rp-co-v2__req{color:#B91C1C}
.rp-co-v2__field > select{
  padding-right:36px;appearance:none;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
}
.rp-co-v2__grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rp-co-v2__grid-2--tight > .rp-co-v2__field{margin-bottom:10px}
@media(max-width:640px){.rp-co-v2__grid-2{grid-template-columns:1fr}}

.rp-co-v2__muted{
  margin:6px 0 0;font-family:'DM Sans',sans-serif;font-size:12px;color:#94A3B8;
}
.rp-co-v2__muted a{color:#2563EB;text-decoration:none}
.rp-co-v2__muted a:hover{text-decoration:underline}
.rp-co-v2__muted em{color:#334155;font-style:normal;font-weight:600}

/* Checkbox custom v2 */
.rp-co-v2__check{
  display:flex;align-items:center;gap:10px;padding:10px 0;cursor:pointer;
  font-family:'DM Sans',sans-serif;font-size:13px;color:#334155;font-weight:500;
}
.rp-co-v2__check input{position:absolute;opacity:0;pointer-events:none}
.rp-co-v2__check-box{
  width:18px;height:18px;border-radius:5px;border:1.5px solid #CBD5E1;
  background:#fff;display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:150ms ease;
}
.rp-co-v2__check-box svg{display:none}
.rp-co-v2__check input:checked + .rp-co-v2__check-box{
  background:#2563EB;border-color:#2563EB;
}
.rp-co-v2__check input:checked + .rp-co-v2__check-box svg{display:block}

/* Chips de alumnos guardados */
.rp-co-v2__chips{
  margin-bottom:14px;padding:12px 14px;
  background:#F8FAFC;border:1px dashed #BFDBFE;border-radius:10px;
}
.rp-co-v2__chips-label{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:11px;
  color:#1D4ED8;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;
}
.rp-co-v2__chips-list{display:flex;flex-wrap:wrap;gap:6px}
.rp-co-v2__chip{
  display:inline-flex;align-items:center;gap:4px;
  height:30px;padding:0 12px;border-radius:9999px;
  background:#fff;border:1.5px solid #BFDBFE;color:#1D4ED8;
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;
  cursor:pointer;transition:all 150ms ease;
}
.rp-co-v2__chip:hover{background:#EFF6FF;border-color:#2563EB}
.rp-co-v2__chip.is-active{
  background:#2563EB;color:#fff;border-color:#2563EB;
}
.rp-co-v2__chip-new{
  background:transparent;border-color:#CBD5E1;color:#64748B;
  border-style:dashed;
}
.rp-co-v2__chip-new:hover{background:#F8FAFC;color:#334155;border-color:#94A3B8}

/* Actions bar (Continue button) */
.rp-co-v2__actions{
  display:flex;justify-content:flex-end;align-items:center;margin-top:24px;
  padding-top:20px;border-top:1px solid #F1F5F9;
}
.rp-co-v2__actions .btn-primary{
  background:#2563EB !important;color:#fff !important;border:none !important;
  border-radius:12px !important;height:48px;padding:0 24px;
  font-family:'Montserrat',sans-serif !important;font-weight:600 !important;font-size:14px;
  box-shadow:0 1px 3px rgba(15,23,42,.1);transition:200ms ease;
}
.rp-co-v2__actions .btn-primary:hover{
  background:#1D4ED8 !important;transform:translateY(-1px);
  box-shadow:0 4px 8px rgba(37,99,235,.25);
}

/* Fallback alert (por si cliente no logueado cae aquí) */
.rp-co-v2__alert{
  padding:24px;background:#FEF3C7;border:1.5px solid #FDE68A;border-radius:12px;
  text-align:center;
}
.rp-co-v2__alert p{
  margin:0 0 14px;font-family:'DM Sans',sans-serif;font-size:14px;color:#92400E;
}
.rp-co-v2__alert .btn-primary{background:#2563EB !important;color:#fff !important;border:none;padding:10px 22px;border-radius:10px;font-family:'Montserrat',sans-serif;font-weight:600}

/* Footer v2 */
.rp-co-v2__footer{
  max-width:1200px;margin:48px auto 24px;padding:20px 24px;
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;
  border-top:1px solid #E2E8F0;
  font-family:'DM Sans',sans-serif;font-size:12px;color:#64748B;
}
.rp-co-v2__footer-links{display:flex;flex-wrap:wrap;gap:16px}
.rp-co-v2__footer-links a{color:#64748B;text-decoration:none;transition:color 150ms ease}
.rp-co-v2__footer-links a:hover{color:#2563EB}

/* Summary v2 overrides (reutilizamos estructura pero con estética v2) */
.rp-co-v2 .rp-checkout-summary{
  border-radius:16px;
  box-shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
}
.rp-co-v2 .rp-sum__head{padding:20px 22px 14px}
.rp-co-v2 .rp-sum__title{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:17px;
  color:#0F172A;letter-spacing:-.01em;
}
.rp-co-v2 .rp-sum__title::before{
  content:'TU PEDIDO';
  display:block;font-size:11px;font-weight:700;color:#2563EB;
  letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px;
}
.rp-co-v2 .rp-sum__title svg{display:none}
.rp-co-v2 .rp-cs-line-qty-badge{background:#0F172A}
.rp-co-v2 .rp-sum__totals .cart-summary-line.cart-total .value{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:26px;
  color:#2563EB;letter-spacing:-.015em;
}

/* Recomendados en summary v2 */
.rp-co-v2__reco-summary{background:transparent;border:none;padding:0}
.rp-co-v2__reco-summary:empty{display:none}
.rp-co-v2__reco-summary[hidden]{display:none}

/* v3: variante con marco consistente con las demás cards del sidebar */
.rp-co-v2__reco-summary--rounded{
  background:#fff;border:1px solid #E2E8F0;border-radius:16px;
  padding:20px 22px;margin-top:16px;
  box-shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
}
.rp-co-v2__reco-summary--rounded:empty{display:none}
.rp-co-v2__reco-summary--rounded[hidden]{display:none}

/* ═══════════════════════════════════════════════════════════
   v4: Barra progreso envío urgente gratuito (arriba del summary)
   Estilo igual que la del cart drawer — sin porcentaje numérico.
   ═══════════════════════════════════════════════════════════ */
.rp-co-v4__ship-bar{
  background:#fff;border:1px solid #E2E8F0;border-radius:16px;
  padding:14px 18px;margin-bottom:14px;
  box-shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
  position:relative;
}
.rp-co-v4__ship-bar__text{
  font-family:'DM Sans',sans-serif;font-size:13px;color:#334155;
  margin-bottom:8px;line-height:1.4;
}
.rp-co-v4__ship-bar__text strong{
  color:#0F172A;font-weight:700;
}
.rp-co-v4__ship-bar__track{
  width:100%;height:6px;background:#F1F5F9;border-radius:9999px;overflow:hidden;
}
.rp-co-v4__ship-bar__fill{
  height:100%;background:linear-gradient(90deg,#f8982e 0%,#ef7c0c 100%);
  border-radius:9999px;transition:width 400ms ease;
}
.rp-co-v4__ship-bar.is-complete .rp-co-v4__ship-bar__fill{
  background:linear-gradient(90deg,#10B981 0%,#059669 100%);
}
.rp-co-v4__ship-bar.is-complete .rp-co-v4__ship-bar__text{color:#065F46}
.rp-co-v4__ship-bar.is-complete .rp-co-v4__ship-bar__text strong{color:#065F46}

/* ═══════════════════════════════════════════════════════════
   v4: Código promocional colapsable (en step Pago)
   Estilo igual al del bloque alumno para consistencia visual.
   ═══════════════════════════════════════════════════════════ */
.rp-co-v4__promo{
  background:#fff;border:1.5px solid #E2E8F0;border-radius:16px;
  padding:14px 20px;margin-bottom:20px;
  box-shadow:0 4px 16px -8px rgba(15,23,42,.08);
}
/* Pau req 2026-05-03: el promo dentro del sidebar (Resumen del pedido)
   va SIN caja — solo el contenido limpio. La card del Resumen ya envuelve
   el bloque, no necesita una "caja dentro de otra caja". El del paso 4
   mantiene su caja porque vive en el flujo del step content sin wrapper. */
.rp-sum__voucher .rp-co-v4__promo{
  background:transparent;
  border:none;
  box-shadow:none;
  padding:0;
  margin-top:10px;
  margin-bottom:0;
}
.rp-co-v4__promo__toggle{
  width:100%;display:flex;align-items:center;gap:10px;
  padding:0;background:transparent;border:none;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:14px;
  color:#334155;cursor:pointer;transition:color 150ms ease;
  text-align:left;
}
.rp-co-v4__promo__toggle svg{color:#2563EB;flex-shrink:0}
.rp-co-v4__promo__toggle span{flex:1;text-align:left}
.rp-co-v4__promo__toggle:hover{color:#2563EB}
.rp-co-v4__promo__toggle:hover svg{color:#1D4ED8}
.rp-co-v4__promo__caret{
  transition:transform 200ms ease;
}
.rp-co-v4__promo__toggle[aria-expanded="true"] .rp-co-v4__promo__caret{
  transform:rotate(180deg);
}
.rp-co-v4__promo__body{
  padding:12px 4px 0;
  animation:rp-promo-in 200ms ease;
}
@keyframes rp-promo-in{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}
.rp-co-v4__promo__row{display:flex;gap:6px}
.rp-co-v4__promo__input{
  flex:1;height:40px;padding:0 12px;
  border:1.5px solid #CBD5E1;border-radius:8px;
  background:#fff;font-family:'DM Sans',sans-serif;font-size:13px;
  color:#0F172A;outline:none;transition:border-color 150ms ease;
  letter-spacing:.02em;text-transform:uppercase;
}
.rp-co-v4__promo__input:focus{
  border-color:#2563EB;box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.rp-co-v4__promo__input::placeholder{text-transform:none;letter-spacing:0;color:#94A3B8}
.rp-co-v4__promo__apply{
  height:40px;padding:0 16px;
  background:#2563EB;color:#fff;border:none;border-radius:8px;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;
  cursor:pointer;transition:background 150ms ease;flex-shrink:0;
}
.rp-co-v4__promo__apply:hover:not(:disabled){background:#1D4ED8}
.rp-co-v4__promo__apply:disabled{opacity:.6;cursor:default}

/* Pau req 2026-05-03: lista de vouchers ya aplicados — chip verde con
   nombre + descuento + botón × para eliminar. Aparece arriba del toggle
   "¿Tienes un código promocional?" si hay vouchers en el carrito. */
.rp-co-v4__promo__applied{
  list-style:none;padding:0;margin:0 0 12px;
  display:flex;flex-direction:column;gap:6px;
}
.rp-co-v4__promo__applied-row{
  display:flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:8px;
  background:#ECFDF5;border:1px solid #A7F3D0;
  font-family:'DM Sans',sans-serif;font-size:13px;color:#065F46;
}
.rp-co-v4__promo__applied-name{font-weight:600;flex:1;font-family:'Montserrat',sans-serif}
.rp-co-v4__promo__applied-amount{font-weight:700;font-family:'Montserrat',sans-serif}
.rp-co-v4__promo__applied-remove{
  display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:6px;
  color:#065F46;background:transparent;border:none;
  transition:background 150ms ease,color 150ms ease;flex-shrink:0;
}
.rp-co-v4__promo__applied-remove:hover{
  background:#FEE2E2;color:#B91C1C;
}
.rp-co-v4__promo__msg{
  margin-top:8px;padding:8px 10px;border-radius:8px;
  font-family:'DM Sans',sans-serif;font-size:12px;line-height:1.4;
}
.rp-co-v4__promo__msg--success{background:#ECFDF5;color:#065F46;border:1px solid #A7F3D0}
.rp-co-v4__promo__msg--error{background:#FEF2F2;color:#991B1B;border:1px solid #FECACA}
.rp-co-v4__promo__msg--info{background:#EFF6FF;color:#1E40AF;border:1px solid #BFDBFE}

/* v3: estructura de productos recomendados en checkout sidebar */
.rp-co-v3__reco__head{
  display:flex;align-items:center;gap:8px;margin-bottom:14px;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;
  color:#f8982e;letter-spacing:.01em;
}
.rp-co-v3__reco__head svg{color:#f8982e;flex-shrink:0}
.rp-co-v3__reco__list{display:flex;flex-direction:column;gap:10px}
.rp-co-v3__reco__item{
  background:#F8FAFC;border:1px solid #E2E8F0;border-radius:10px;padding:10px;
  transition:border-color 150ms ease;
}
.rp-co-v3__reco__item:hover{border-color:#CBD5E1}
.rp-co-v3__reco__row{display:flex;align-items:center;gap:10px}
.rp-co-v3__reco__img{
  width:44px;height:44px;background:#fff;border-radius:8px;
  flex-shrink:0;overflow:hidden;border:1px solid #F1F5F9;
}
.rp-co-v3__reco__img img{width:100%;height:100%;object-fit:cover;display:block}
.rp-co-v3__reco__meta{flex:1;min-width:0;overflow:hidden}
.rp-co-v3__reco__name{
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;
  color:#0F172A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rp-co-v3__reco__price{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;
  color:#2563EB;margin-top:2px;
}
.rp-co-v3__reco__btn{
  height:30px;padding:0 12px;border-radius:8px;border:1.5px solid #CBD5E1;
  background:#fff;color:#0F172A;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:11px;
  cursor:pointer;white-space:nowrap;transition:all 150ms ease;flex-shrink:0;
}
.rp-co-v3__reco__btn:hover{border-color:#2563EB;color:#2563EB;background:#F8FAFC}
.rp-co-v3__reco__btn:disabled{cursor:default;opacity:.7}
/* Tallas en fila horizontal (acordeón) */
.rp-co-v3__reco__sizes{
  margin-top:10px;padding-top:10px;
  border-top:1px dashed #BFDBFE;
  display:flex;flex-wrap:wrap;gap:6px;
  animation:rpSizesIn 200ms ease;
}
@keyframes rpSizesIn{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}
.rp-co-v3__reco__size{
  min-width:36px;height:32px;padding:0 10px;
  border-radius:8px;border:1.5px solid #CBD5E1;
  background:#fff;color:#0F172A;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;
  cursor:pointer;transition:all 120ms ease;
}
.rp-co-v3__reco__size:hover:not(:disabled){
  border-color:#2563EB;color:#2563EB;background:#EFF6FF;
}
.rp-co-v3__reco__size.is-out,
.rp-co-v3__reco__size:disabled{
  opacity:.35;cursor:not-allowed;text-decoration:line-through;color:#94A3B8;
}

/* En v2, el bloque displayPaymentTop (alumno/curso duplicado) se oculta
   porque ya se pide en el Step 1. Los cookies rp_alumno/rp_curso se setean
   desde el Step 1, así que hookActionValidateOrder sigue funcionando. */
.rp-co-v2 .rp-checkout-alumno{display:none !important}

/* Payment step v2 · Redsys + Transferencia cards */
.rp-co-v2 .rp-checkout-page .rp-step .payment-option{
  border-radius:12px;padding:16px;margin-bottom:12px;
  transition:all 150ms ease;
}
.rp-co-v2 .rp-checkout-page .rp-step .payment-option:has(input:checked){
  border:2px solid #2563EB;background:#EFF6FF;
  box-shadow:0 0 0 3px rgba(37,99,235,.08);
}

/* Sub-métodos visuales de Redsys (íconos fila bajo el label) */
.rp-co-v2__pay-methods{
  display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;
}
.rp-co-v2__pay-method{
  display:inline-flex;align-items:center;gap:4px;
  padding:4px 10px;border-radius:8px;background:#F1F5F9;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:10px;
  color:#334155;letter-spacing:.06em;text-transform:uppercase;
}
.rp-co-v2__pay-hint{
  margin-top:10px;padding:10px 14px;border-radius:8px;
  background:#ECFDF5;border-left:3px solid #10B981;
  font-family:'DM Sans',sans-serif;font-size:12px;color:#065F46;
  display:flex;align-items:flex-start;gap:8px;
}
.rp-co-v2__pay-hint svg{flex-shrink:0;margin-top:1px}

/* Responsive tweaks */
@media(max-width:991px){
  .rp-co-v2__footer{margin:32px 16px 16px;padding:16px 0}
  .rp-co-v2__stepnav{margin-bottom:16px}
}
@media(max-width:640px){
  .rp-co-v2__heading{margin-bottom:16px}
  .rp-co-v2__h1{font-size:22px}
  .rp-co-v2__trust{margin-bottom:16px}
}

/* Post-purchase (confirmation) · grid vertical 3 productos */
.rp-co-v2__reco-post{
  background:#fff;border:1px solid #E2E8F0;border-radius:16px;padding:24px;
  margin:24px 0;
}
.rp-co-v2__reco-post__eyebrow{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:11px;
  color:#2563EB;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;
}
.rp-co-v2__reco-post__title{
  margin:0 0 4px;font-family:'Montserrat',sans-serif;font-weight:800;font-size:20px;
  color:#0F172A;letter-spacing:-.01em;
}
.rp-co-v2__reco-post__sub{
  margin:0 0 16px;font-family:'DM Sans',sans-serif;font-size:13px;color:#64748B;
}
.rp-co-v2__reco-post__grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;
}
.rp-co-v2__reco-post__card{
  background:#fff;border:1px solid #E2E8F0;border-radius:14px;padding:14px;
  transition:200ms ease;
}
.rp-co-v2__reco-post__card:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 6px rgba(15,23,42,.07),0 2px 4px rgba(15,23,42,.04);
}
.rp-co-v2__reco-post__img-wrap{
  height:140px;background:#F8FAFC;border-radius:10px;
  display:flex;align-items:center;justify-content:center;margin-bottom:10px;
  overflow:hidden;
}
.rp-co-v2__reco-post__img-wrap img{
  max-width:100%;max-height:100%;object-fit:cover;
}
.rp-co-v2__reco-post__name{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:14px;
  color:#0F172A;letter-spacing:-.005em;
}
.rp-co-v2__reco-post__variant{
  font-family:'DM Sans',sans-serif;font-size:12px;color:#64748B;margin:2px 0 10px;
}
.rp-co-v2__reco-post__row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.rp-co-v2__reco-post__price{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:16px;color:#0F172A;
}
.rp-co-v2__reco-post__add{
  height:36px;padding:0 14px;border-radius:10px;border:none;
  background:#0F172A;color:#fff;cursor:pointer;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;
  transition:200ms ease;
}
.rp-co-v2__reco-post__add:hover{background:#1E293B}
.rp-co-v2__reco-post__add.is-added{background:#10B981;pointer-events:none}

/* Confirmation timeline (4 steps) */
.rp-co-v2__timeline{
  background:#fff;border:1px solid #E2E8F0;border-radius:16px;
  padding:22px;margin:24px 0;
}
.rp-co-v2__timeline-eyebrow{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:11px;
  color:#2563EB;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px;
}
.rp-co-v2__timeline-row{display:flex;align-items:flex-start;position:relative}
.rp-co-v2__timeline-step{
  flex:1;position:relative;display:flex;flex-direction:column;
  align-items:center;text-align:center;
}
.rp-co-v2__timeline-line{
  position:absolute;top:12px;left:50%;width:100%;height:2px;
  background:#F1F5F9;z-index:0;
}
.rp-co-v2__timeline-step.is-done .rp-co-v2__timeline-line{background:#10B981}
.rp-co-v2__timeline-dot{
  width:26px;height:26px;border-radius:9999px;
  background:#F1F5F9;border:2px solid #E2E8F0;
  color:#CBD5E1;display:flex;align-items:center;justify-content:center;
  position:relative;z-index:1;margin-bottom:8px;
}
.rp-co-v2__timeline-step.is-done .rp-co-v2__timeline-dot{background:#10B981;border-color:#10B981;color:#fff}
.rp-co-v2__timeline-label{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;
  color:#64748B;letter-spacing:-.005em;
}
.rp-co-v2__timeline-step.is-done .rp-co-v2__timeline-label,
.rp-co-v2__timeline-step.is-active .rp-co-v2__timeline-label{color:#0F172A}
.rp-co-v2__timeline-sub{
  font-family:'DM Sans',sans-serif;font-size:11px;color:#94A3B8;margin-top:2px;
}

/* ═══════════════════════════════════════════════════════════════
   FAVORITES / WISHLIST (v1.15.0)
   Heart button on product cards, myfavorites page, login modal,
   toasts. No dependencies outside rompoda.css.
   ═══════════════════════════════════════════════════════════════ */

/* ── Heart button on product card (top-right of image) ── */
.rp-prod-card .thumbnail-container{position:relative;}
.rp-fav-btn{
    position:absolute;
    top:10px;right:10px;
    z-index:5;
    width:36px;height:36px;
    display:inline-flex;
    align-items:center;justify-content:center;
    background:rgba(255,255,255,0.92);
    border:1.5px solid #E2E8F0;
    border-radius:9999px;
    cursor:pointer;
    color:#64748B;
    padding:0;
    transition:background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
    backdrop-filter:saturate(180%) blur(6px);
    -webkit-backdrop-filter:saturate(180%) blur(6px);
    box-shadow:0 1px 2px rgba(15,23,42,.08);
}
.rp-fav-btn:hover{
    color:#2563EB;
    border-color:#BFDBFE;
    background:#fff;
    transform:translateY(-1px) scale(1.05);
    box-shadow:0 4px 10px rgba(15,23,42,.12);
}
.rp-fav-btn:focus{outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.18);border-color:#BFDBFE;}
.rp-fav-btn:active{transform:translateY(0) scale(0.96);}
.rp-fav-btn .rp-fav-ico{width:18px;height:18px;pointer-events:none;}
.rp-fav-btn .rp-fav-ico--fill{display:none;}
.rp-fav-btn .rp-fav-ico--outline{display:block;}
.rp-fav-btn.is-favorite{
    color:#2563EB;
    border-color:#BFDBFE;
    background:#fff;
}
.rp-fav-btn.is-favorite .rp-fav-ico--fill{display:block;}
.rp-fav-btn.is-favorite .rp-fav-ico--outline{display:none;}

@keyframes rp-fav-bounce{
    0%   {transform:scale(1);}
    25%  {transform:scale(1.28);}
    45%  {transform:scale(0.92);}
    65%  {transform:scale(1.1);}
    100% {transform:scale(1);}
}
.rp-fav-btn.rp-fav-bounce{
    animation:rp-fav-bounce 500ms ease;
}

@media (max-width: 640px){
    .rp-fav-btn{
        top:8px;right:8px;
        width:34px;height:34px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   PAGE: MIS FAVORITOS
   ═══════════════════════════════════════════════════════════════ */
.rp-favorites-page .rp-fav-hero-ico{
    color:#2563EB;
    vertical-align:middle;
    margin-right:8px;
    transform:translateY(-2px);
}
.rp-favorites-page h1{
    font-family:'Montserrat',sans-serif;
    font-weight:800;
    /* display:flex no se centra con text-align del padre — necesita
       justify-content:center en el propio flex para alinear icon+texto
       al eje horizontal del hero. */
    display:flex;align-items:center;justify-content:center;gap:10px;
}

.rp-fav-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));
    gap:24px;
    padding:24px 0 48px;
}
@media (max-width: 640px){
    .rp-fav-grid{
        grid-template-columns:repeat(2, minmax(0,1fr));
        gap:16px;
        padding:16px 0 32px;
    }
}

.rp-fav-card{
    position:relative;
    background:#fff;
    border:1px solid #E2E8F0;
    border-radius:16px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    transition:border-color 200ms ease, transform 200ms ease, box-shadow 200ms ease, opacity 320ms ease;
}
.rp-fav-card:hover{
    border-color:#BFDBFE;
    transform:translateY(-2px);
    box-shadow:0 10px 15px rgba(15,23,42,.06),0 4px 6px rgba(15,23,42,.04);
}
.rp-fav-card.is-removing{
    opacity:0;
    transform:translateY(-8px) scale(.96);
}
.rp-fav-remove{
    position:absolute;
    top:10px;right:10px;
    z-index:3;
    width:32px;height:32px;
    display:inline-flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.94);
    border:1.5px solid #E2E8F0;
    border-radius:9999px;
    color:#64748B;
    cursor:pointer;
    transition:color 180ms ease, border-color 180ms ease, background 180ms ease, transform 180ms ease;
    padding:0;
    box-shadow:0 1px 2px rgba(15,23,42,.08);
}
.rp-fav-remove:hover{
    color:#fff;
    background:#EF4444;
    border-color:#EF4444;
    transform:scale(1.06);
}
.rp-fav-remove:focus{outline:none;box-shadow:0 0 0 3px rgba(239,68,68,.22);}
.rp-fav-thumb{
    display:block;
    aspect-ratio:1/1;
    background:#F8FAFC;
    overflow:hidden;
}
.rp-fav-thumb img{
    width:100%;height:100%;
    object-fit:cover;
    transition:transform 400ms ease;
}
.rp-fav-card:hover .rp-fav-thumb img{transform:scale(1.04);}
.rp-fav-info{
    padding:14px 16px 4px;
    flex:1;
    display:flex;flex-direction:column;gap:6px;
}
.rp-fav-name{
    margin:0;
    font-family:'Montserrat',sans-serif;
    font-weight:600;font-size:14px;line-height:1.3;
    color:#0F172A;
    min-height:36px;
}
.rp-fav-name a{color:inherit;text-decoration:none;}
.rp-fav-name a:hover{color:#2563EB;}
.rp-fav-price{
    font-family:'Montserrat',sans-serif;
    font-weight:700;font-size:15px;
    color:#0F172A;
}
.rp-fav-actions{
    padding:8px 16px 16px;
    display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.rp-fav-actions .rp-btn{
    width:100%;
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    font-size:13px;
}
.rp-fav-oos{
    display:inline-flex;align-items:center;justify-content:center;
    width:100%;
    font-family:'DM Sans',sans-serif;font-size:12px;
    padding:10px 14px;
    border-radius:10px;
    background:#F1F5F9;color:#94A3B8;
    font-weight:600;
}

.rp-fav-empty{
    text-align:center;
    padding:48px 24px 72px;
    max-width:520px;margin:0 auto;
}
.rp-fav-empty-ico{
    width:96px;height:96px;
    border-radius:9999px;
    background:#EFF6FF;
    color:#2563EB;
    display:inline-flex;align-items:center;justify-content:center;
    margin-bottom:24px;
}
.rp-fav-empty h2{
    font-family:'Montserrat',sans-serif;
    font-weight:800;font-size:24px;
    color:#0F172A;margin:0 0 8px;
}
.rp-fav-empty p{
    font-family:'DM Sans',sans-serif;
    font-size:15px;color:#64748B;
    margin:0 0 24px;line-height:1.5;
}
.rp-fav-empty .rp-btn{
    display:inline-flex;align-items:center;gap:8px;
}

/* ═══════════════════════════════════════════════════════════════
   FAVORITES — LOGIN-REQUIRED MODAL (popup Rompoda style)
   ═══════════════════════════════════════════════════════════════ */
.rp-fav-login-modal{
    position:fixed;inset:0;
    z-index:10000;
    display:flex;align-items:center;justify-content:center;
    padding:16px;
    opacity:0;
    transition:opacity 220ms ease;
}
.rp-fav-login-modal.is-open{opacity:1;}
.rp-fav-login-modal.is-closing{opacity:0;}
.rp-fav-login-modal__overlay{
    position:absolute;inset:0;
    background:rgba(15,23,42,.55);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
}
.rp-fav-login-modal__box{
    position:relative;
    max-width:420px;
    width:100%;
    background:#fff;
    border-radius:16px;
    padding:40px 28px 24px;
    text-align:center;
    box-shadow:0 20px 25px rgba(15,23,42,.12),0 8px 10px rgba(15,23,42,.06);
    transform:translateY(12px) scale(.98);
    transition:transform 220ms ease;
}
.rp-fav-login-modal.is-open .rp-fav-login-modal__box{transform:translateY(0) scale(1);}
.rp-fav-login-modal__close{
    position:absolute;top:12px;right:12px;
    width:32px;height:32px;
    background:transparent;border:none;
    border-radius:9999px;
    color:#94A3B8;
    display:inline-flex;align-items:center;justify-content:center;
    cursor:pointer;
    transition:background 180ms ease, color 180ms ease;
}
.rp-fav-login-modal__close:hover{background:#F1F5F9;color:#0F172A;}
.rp-fav-login-modal__icon{
    width:72px;height:72px;
    border-radius:9999px;
    background:#EFF6FF;
    display:inline-flex;align-items:center;justify-content:center;
    margin-bottom:16px;
}
.rp-fav-login-modal__box h3{
    font-family:'Montserrat',sans-serif;
    font-weight:800;font-size:22px;
    color:#0F172A;margin:0 0 8px;
}
.rp-fav-login-modal__box p{
    font-family:'DM Sans',sans-serif;
    font-size:15px;color:#64748B;line-height:1.5;
    margin:0 0 20px;
}
.rp-fav-login-modal__actions{
    display:flex;flex-direction:column;gap:10px;
    margin-top:8px;
}
.rp-fav-login-modal__actions .rp-btn{
    width:100%;
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    font-size:14px;
}
.rp-fav-login-modal__actions .rp-btn-ghost{
    background:transparent;color:#64748B;border:none;
}
.rp-fav-login-modal__actions .rp-btn-ghost:hover{color:#0F172A;background:#F1F5F9;}

/* ═══════════════════════════════════════════════════════════════
   FAVORITES — TOAST
   ═══════════════════════════════════════════════════════════════ */
.rp-fav-toast{
    position:fixed;
    bottom:24px;left:50%;
    transform:translateX(-50%) translateY(16px);
    z-index:10001;
    max-width:calc(100vw - 32px);
    padding:12px 18px;
    background:#0F172A;
    color:#fff;
    border-radius:9999px;
    font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;
    box-shadow:0 10px 15px rgba(15,23,42,.15);
    opacity:0;
    transition:opacity 220ms ease, transform 220ms ease;
    pointer-events:none;
}
.rp-fav-toast.is-visible{
    opacity:1;
    transform:translateX(-50%) translateY(0);
}
.rp-fav-toast--success{background:#059669;}
.rp-fav-toast--error{background:#DC2626;}
.rp-fav-toast--info{background:#0F172A;}

@media (max-width: 640px){
    .rp-fav-toast{
        bottom:16px;
        font-size:13px;
        padding:10px 16px;
    }
}

/* ============================================================================
   ROMPODA · ADDRESS MODAL (new / edit)
   Se usa en customer/addresses (grid "Mis direcciones") y en checkout
   (address selector). Estilo Rompoda: card blanca radius 16, backdrop blur,
   animación fade-in + scale, inputs 44px + focus azul.
   ============================================================================ */
.rp-addr-modal{
    position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;
    padding:16px;
    animation:rpAddrModalIn .22s ease-out;
}
.rp-addr-modal[hidden]{display:none !important}
.rp-addr-modal.is-closing{animation:rpAddrModalOut .18s ease-in forwards}
.rp-addr-modal__overlay{
    position:absolute;inset:0;
    background:rgba(15,23,42,.5);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
}
.rp-addr-modal__body{
    position:relative;width:100%;max-width:640px;
    max-height:calc(100vh - 32px);
    background:#fff;border-radius:16px;
    box-shadow:0 20px 60px rgba(15,23,42,.25), 0 6px 16px rgba(15,23,42,.08);
    padding:28px 32px 24px;
    overflow-y:auto;
    animation:rpAddrModalBoxIn .22s cubic-bezier(.2,.9,.3,1);
    border:1px solid var(--rp-g200);
}
@keyframes rpAddrModalIn{from{opacity:0}to{opacity:1}}
@keyframes rpAddrModalOut{to{opacity:0}}
@keyframes rpAddrModalBoxIn{
    from{opacity:0;transform:scale(.96) translateY(6px)}
    to{opacity:1;transform:scale(1) translateY(0)}
}

body.rp-addr-modal-open{overflow:hidden}

.rp-addr-modal__close{
    position:absolute;top:14px;right:14px;
    width:36px;height:36px;
    background:var(--rp-g100);color:var(--rp-g500);
    border:none;border-radius:9999px;
    display:inline-flex;align-items:center;justify-content:center;
    cursor:pointer;transition:all .15s ease;
    z-index:1;
}
.rp-addr-modal__close:hover{background:var(--rp-g200);color:var(--rp-dark)}
.rp-addr-modal__close svg{width:18px;height:18px}

.rp-addr-modal__header{margin:0 36px 18px 0}
.rp-addr-modal__title{
    font-family:'Montserrat',sans-serif;font-weight:800;
    font-size:22px;line-height:1.25;color:var(--rp-dark);
    margin:0 0 4px;
}
.rp-addr-modal__subtitle{
    font-family:'DM Sans',sans-serif;font-size:14px;line-height:1.5;
    color:var(--rp-g500);margin:0;
}

.rp-addr-modal__alert{
    padding:12px 14px;border-radius:10px;
    font-family:'DM Sans',sans-serif;font-size:13px;line-height:1.45;
    margin-bottom:16px;
    border:1px solid transparent;
}
.rp-addr-modal__alert--error{background:#FEF2F2;border-color:#FECACA;color:#991B1B}
.rp-addr-modal__alert--success{background:#ECFDF5;border-color:#A7F3D0;color:#065F46}

.rp-addr-modal__form{display:flex;flex-direction:column;gap:14px}

.rp-addr-modal__row{
    display:grid;grid-template-columns:1fr 1fr;gap:14px;
}
.rp-addr-modal__field{display:flex;flex-direction:column;gap:6px;min-width:0}
.rp-addr-modal__field--zip{max-width:160px}
.rp-addr-modal__field--city{}

.rp-addr-modal__field > label{
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;
    color:var(--rp-g700);letter-spacing:.3px;
}
.rp-addr-modal__req{color:#EF4444;margin-left:2px}
.rp-addr-modal__opt{color:var(--rp-g400);font-weight:500;font-size:11px;margin-left:4px}

.rp-addr-modal__field > input[type="text"],
.rp-addr-modal__field > input[type="tel"],
.rp-addr-modal__field > input[type="email"],
.rp-addr-modal__field > select{
    width:100%;height:44px;
    padding:0 14px;
    background:#fff;color:var(--rp-dark);
    border:1.5px solid var(--rp-g300);
    border-radius:8px;
    font-family:'DM Sans',sans-serif;font-size:14px;line-height:1.4;
    transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
    -webkit-appearance:none;appearance:none;
}
.rp-addr-modal__field > select{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat:no-repeat;
    background-position:right 12px center;
    background-size:16px;
    padding-right:38px;
    cursor:pointer;
}
.rp-addr-modal__field > input::placeholder{color:var(--rp-g400)}
.rp-addr-modal__field > input:focus,
.rp-addr-modal__field > select:focus{
    outline:none;
    border-color:var(--rp-primary);
    box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.rp-addr-modal__field.has-error > input,
.rp-addr-modal__field.has-error > select{
    border-color:#EF4444;background:#FEF2F2;
}
.rp-addr-modal__field.has-error > input:focus,
.rp-addr-modal__field.has-error > select:focus{
    box-shadow:0 0 0 3px rgba(239,68,68,.12);
}
.rp-addr-modal__field-error{
    color:#DC2626;font-family:'DM Sans',sans-serif;font-size:12px;line-height:1.4;margin-top:2px;
}
.rp-addr-modal__hint{
    color:var(--rp-g400);font-family:'DM Sans',sans-serif;font-size:12px;line-height:1.4;
}

.rp-addr-modal__check{
    display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;
    padding:4px 0;
}
.rp-addr-modal__check input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}
.rp-addr-modal__check-box{
    width:20px;height:20px;
    background:#fff;border:1.5px solid var(--rp-g300);
    border-radius:6px;
    display:inline-flex;align-items:center;justify-content:center;
    transition:all .15s ease;flex-shrink:0;
}
.rp-addr-modal__check-box svg{opacity:0;transform:scale(.6);transition:all .15s ease}
.rp-addr-modal__check input:checked + .rp-addr-modal__check-box{
    background:var(--rp-primary);border-color:var(--rp-primary);
}
.rp-addr-modal__check input:checked + .rp-addr-modal__check-box svg{opacity:1;transform:scale(1)}
.rp-addr-modal__check input:focus-visible + .rp-addr-modal__check-box{
    box-shadow:0 0 0 3px rgba(37,99,235,.16);
}
.rp-addr-modal__check-label{
    font-family:'DM Sans',sans-serif;font-size:14px;color:var(--rp-g700);
}

.rp-addr-modal__footer{
    display:flex;justify-content:flex-end;gap:10px;
    margin-top:12px;padding-top:12px;
    border-top:1px solid var(--rp-g100);
}

.rp-addr-modal__btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    height:48px;padding:0 24px;
    border-radius:12px;border:none;cursor:pointer;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;
    transition:all .18s ease;
    text-decoration:none;
}
.rp-addr-modal__btn:focus{outline:none}
.rp-addr-modal__btn:focus-visible{outline:2px solid var(--rp-primary);outline-offset:3px}
.rp-addr-modal__btn:disabled{opacity:.55;cursor:not-allowed;transform:none !important;box-shadow:none !important}

.rp-addr-modal__btn-primary{
    background:linear-gradient(135deg,#2563EB 0%,#1D4ED8 100%);
    color:#fff !important;
    box-shadow:0 6px 16px -4px rgba(37,99,235,.45);
}
.rp-addr-modal__btn-primary:hover:not(:disabled){
    transform:translateY(-1px);
    box-shadow:0 10px 24px -4px rgba(37,99,235,.5);
    color:#fff !important;
}

.rp-addr-modal__btn-ghost{
    background:#fff;color:var(--rp-g700);
    border:1.5px solid var(--rp-g300);
}
.rp-addr-modal__btn-ghost:hover:not(:disabled){
    background:var(--rp-g50);border-color:var(--rp-g400);color:var(--rp-dark);
}

.rp-addr-modal__spinner{
    width:16px;height:16px;border-radius:9999px;
    border:2px solid rgba(255,255,255,.35);border-top-color:#fff;
    animation:rpAddrSpin 800ms linear infinite;
    display:inline-block;
}
@keyframes rpAddrSpin{to{transform:rotate(360deg)}}

/* Responsive mobile — full screen */
@media (max-width: 640px){
    .rp-addr-modal{padding:0;align-items:stretch}
    .rp-addr-modal__body{
        max-width:100%;
        max-height:100%;
        min-height:100%;
        border-radius:0;
        padding:22px 18px 18px;
        box-shadow:none;
        border:none;
    }
    .rp-addr-modal__row{grid-template-columns:1fr;gap:12px}
    .rp-addr-modal__field--zip{max-width:100%}
    .rp-addr-modal__footer{
        flex-direction:column-reverse;
    }
    .rp-addr-modal__btn{width:100%}
    .rp-addr-modal__title{font-size:20px}
}

/* Buttons "+ Añadir" inline styles used in checkout + addresses grid */
.rp-addr-add-btn{
    display:inline-flex;align-items:center;gap:8px;
    background:linear-gradient(135deg,#2563EB 0%,#1D4ED8 100%);
    color:#fff !important;border:none;
    padding:0 22px;height:44px;border-radius:12px;
    font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;
    cursor:pointer;text-decoration:none;
    box-shadow:0 6px 16px -4px rgba(37,99,235,.45);
    transition:all .18s ease;
}
.rp-addr-add-btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px -4px rgba(37,99,235,.55);color:#fff !important}
.rp-addr-add-btn svg{width:18px;height:18px}

.rp-addr-selector-footer{
    margin-top:18px;padding-top:18px;
    border-top:1px dashed var(--rp-g200);
    display:flex;justify-content:flex-start;
}

/* "Modificar" opens modal (not link anymore) — keep rp-btn styles */
.rp-addr-actions > button.rp-btn{cursor:pointer}

/* ═══════════════════════════════════════════════════════════════
   FAVORITES — heart button on product page (larger, top-right)
   ═══════════════════════════════════════════════════════════════ */
.rp-fav-btn--product{
    position:absolute;
    top:14px;right:14px;
    z-index:10;
    width:44px;height:44px;
    background:rgba(255,255,255,0.94);
    border:1.5px solid #E2E8F0;
    border-radius:9999px;
    display:inline-flex;align-items:center;justify-content:center;
    color:#64748B;cursor:pointer;padding:0;
    backdrop-filter:saturate(180%) blur(6px);
    -webkit-backdrop-filter:saturate(180%) blur(6px);
    box-shadow:0 2px 6px rgba(15,23,42,.1);
    transition:background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}
.rp-fav-btn--product:hover{
    color:#2563EB;border-color:#BFDBFE;background:#fff;
    transform:translateY(-1px) scale(1.05);
    box-shadow:0 6px 14px rgba(15,23,42,.14);
}
.rp-fav-btn--product:focus{
    outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.18);
    border-color:#BFDBFE;
}
.rp-fav-btn--product:active{transform:translateY(0) scale(0.96);}
.rp-fav-btn--product .rp-fav-ico{width:22px;height:22px;pointer-events:none;}
.rp-fav-btn--product.is-favorite{
    color:#2563EB;border-color:#BFDBFE;background:#fff;
}
@media (max-width: 640px){
    .rp-fav-btn--product{
        top:10px;right:10px;
        width:40px;height:40px;
    }
    .rp-fav-btn--product .rp-fav-ico{width:20px;height:20px;}
}

/* ═══════════════════════════════════════════════════════════════
   ROMPODA TAGS — marketing labels on product card (top-left)
   ═══════════════════════════════════════════════════════════════ */
/* Wrapper: sits under the default .rp-prod-badges but vertically stacked
   so both coexist. z-index:5 same plane; badges stack above tags via order. */
.rp-prod-tags-wrap{
    position:absolute;
    /* 50px: leaves vertical space for the NEW/SALE/LOW badges at top (~12+26+gap). */
    top:50px;left:12px;
    z-index:5;
    display:flex;flex-direction:column;
    gap:6px;align-items:flex-start;
    pointer-events:none;  /* image-hover + quick-add still clickable */
    max-width:calc(100% - 60px); /* leave room for the heart on the right */
}
.rp-prod-tag{
    display:inline-flex;align-items:center;
    padding:5px 10px;
    border-radius:8px;
    font-family:'Montserrat',sans-serif;
    font-weight:700;font-size:10px;
    letter-spacing:.04em;
    text-transform:uppercase;
    line-height:1;
    white-space:nowrap;
    max-width:100%;
    overflow:hidden;text-overflow:ellipsis;
    box-shadow:0 2px 6px -2px rgba(15,23,42,.14);
    pointer-events:auto;  /* allow tooltip hover */
    /* color, background & border-color are set inline per tag */
}
.rp-prod-tag--more{
    font-weight:800;
}
/* When there are NO default badges (rp-prod-badges empty), tags can climb
   to the top: this selector only fires if a product card has no sibling
   badges rendered (JS removes empty wrapper or we keep it minimal). */
.rp-prod-card .rp-prod-badges:empty + a + .rp-prod-tags-wrap,
.rp-prod-card .rp-prod-badges:empty + .rp-prod-tags-wrap{
    top:12px;
}
@media (max-width:640px){
    .rp-prod-tags-wrap{top:46px;left:10px;gap:4px}
    .rp-prod-tag{padding:4px 8px;font-size:9px}
}

/* ═══════════════════════════════════════════════════════════════
   v1.18 — Favoritos: ocultar botón nativo blockwishlist + azul prominente
   ═══════════════════════════════════════════════════════════════ */
/* El módulo nativo blockwishlist inyecta su propio botón en tarjeta
   y ficha (.wishlist-button-add con material-icons). Lo escondemos
   globalmente porque ya tenemos nuestro .rp-fav-btn / rp-fav-btn--product
   sincronizado con el sistema de favoritos Rompoda. */
.wishlist-button-add,
.wishlist-list-item .wishlist-button-add,
.product-actions .wishlist-button-add{
    display:none !important;
}

/* Cuando el producto es favorito, fondo azul prominente (no solo color
   del icono). Aplica tanto en tarjeta (.rp-fav-btn) como en ficha
   (.rp-fav-btn--product). */
.rp-fav-btn.is-favorite,
.rp-fav-btn--product.is-favorite{
    background:#2563EB !important;
    color:#FFFFFF !important;
    border-color:#2563EB !important;
    box-shadow:0 4px 12px rgba(37,99,235,.32);
}
.rp-fav-btn.is-favorite:hover,
.rp-fav-btn--product.is-favorite:hover{
    background:#1D4ED8 !important;
    color:#FFFFFF !important;
    border-color:#1D4ED8 !important;
}

/* El corazón vive fuera del .product-thumbnail (que sufre transform en
   hover), pero por si algún padre añade un transform global, forzamos
   stacking-context propio para que no se "arrastre" con el zoom. */
.rp-fav-btn,
.rp-fav-btn--product{
    will-change:transform;
    isolation:isolate;
}

/* ═══════════════════════════════════════════════════════════════
   v1.18 — Ficha producto: cantidad + tallas + tag re-estilo
   ═══════════════════════════════════════════════════════════════ */
/* Quantity input: el HTML usa class="rp-qty-input input-group". La
   clase Bootstrap `input-group` mete display:flex y borders que crean
   los "2 trazos raros" sobre el input dentro del wrapper. Anulamos. */
.rp-qty-wrapper .input-group,
.rp-qty-wrapper .rp-qty-input.input-group{
    display:block !important;
    border:none !important;
    box-shadow:none !important;
    background:transparent !important;
    width:48px !important;
    padding:0 !important;
}

/* Tallas: aseguramos que el grid envuelva sin que ningún pill se
   escape por overflow horizontal. min-width:44px ya estaba; añadimos
   max-width para que pills "XXL"/"3XL"/"4XL" no rompan el alineado y
   un padding ligeramente menor en pantallas pequeñas. */
.rp-variant-pills{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
}
.rp-variant-pill{
    flex:0 0 auto;
    box-sizing:border-box;
    max-width:100%;
}
@media (max-width:480px){
    .rp-variant-pill{
        min-width:38px;height:36px;padding:0 10px;font-size:12px;
    }
}

/* Tag tarjeta: replica EXACTAMENTE el patrón visual de
   .rp-prod-badge-oos (fondo blanco-tintado .92 opacidad + border
   suave + texto color sólido) pero parametrizado por el hex que el
   admin eligió en el módulo Tags, vía la variable --rp-tag-color
   que se inyecta inline en el span.

   Mapeo del oos como referencia:
     bg:     rgba(254,242,242,.92)   ← #FEF2F2 con .92
     border: #FECACA                 ← rojo medio claro
     color:  #DC2626                 ← rojo prominente

   Para el tag custom, color-mix mezcla el color del tag con blanco
   para sacar el tinte ligero del fondo (10%) y un tono medio del
   border (35%). Soportado en Chrome 111+, FF 113+, Safari 16.2+. */
.rp-prod-badge--tag{
    background:color-mix(in srgb, var(--rp-tag-color) 10%, rgba(255,255,255,.92)) !important;
    border:1px solid color-mix(in srgb, var(--rp-tag-color) 35%, white) !important;
    color:var(--rp-tag-color) !important;
    transition:transform 180ms ease, box-shadow 180ms ease;
}
.rp-prod-card:hover .rp-prod-badge--tag{
    transform:translateY(-1px);
    box-shadow:0 6px 14px -3px rgba(15,23,42,.18);
}


/* ════════════════════════════════════════════════════════════════════
   Pau req v3 2026-04-28: matar línea fina gris que aparece encima de
   los grids de productos (colecciones, recommended, related).
   El theme parent (classic) inyecta border-top o pseudo-elementos en
   varios wrappers entre la barra de filtros y la grid. Aplicamos un
   reset agresivo a todos los selectores conocidos.
   ════════════════════════════════════════════════════════════════════ */
body #js-product-list,
body #js-product-list-header,
body #js-product-list-top,
body #js-product-list-bottom,
body .products-section-title,
body .products-sort-order,
body .product-list-header,
body .product-list-top,
body section#products,
body section#products > section,
body main #content-wrapper > section,
body .rp-school-products-wrap,
body .rp-school-grid,
body .rp-related-products,
body .rp-recommended-products,
body .rp-related-collection-products,
body .rp-viewed-products{
    border-top:0 none transparent !important;
    border-bottom:0 none transparent !important;
}
body #js-product-list::before,
body #js-product-list::after,
body #js-product-list-top::before,
body #js-product-list-top::after,
body section#products::before,
body section#products::after,
body .rp-school-products-wrap::before,
body .rp-school-products-wrap::after,
body .rp-related-products::before,
body .rp-related-products::after,
body .rp-recommended-products::before,
body .rp-recommended-products::after,
body .rp-viewed-products::before,
body .rp-viewed-products::after,
body .rp-related-collection-products::before,
body .rp-related-collection-products::after{
    display:none !important;
    content:none !important;
    border:0 !important;
    background:transparent !important;
}
/* Esconder cualquier <hr> dentro del contenedor principal de la
   tienda (excepto en checkout y customer auth donde sí se usa). */
body.product main hr,
body.category main hr,
body.page-category main hr,
body.rp-school-collection main hr,
body #content-wrapper > hr,
body section#products > hr,
body #js-product-list > hr,
body #js-product-list-top > hr,
body .rp-school-products-wrap > hr{
    display:none !important;
}

/* ════════════════════════════════════════════════════════════════════
   Notificaciones globales (Pau req v3 2026-04-29)
   PrestaShop renderiza <aside id="notifications"> con .alert.alert-{info|success|warning|danger}.
   Look Rompoda: esquinas redondeadas, fondo claro, trazo de intensidad,
   icono lucide inline a la izquierda. Reemplaza el aspecto Bootstrap por
   defecto para que encaje con el resto de la UI.
   ════════════════════════════════════════════════════════════════════ */
/* Pau req v6 2026-04-29: ocultar el aside vacío que dejaba ~16-32px de
   espacio en blanco entre el header y el contenido en TODAS las páginas
   (mobile + desktop). PS9 renderiza el aside aunque no haya alerts. */
#notifications{
    margin: 0;
}
#notifications:not(:has(.alert)){
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    border: 0 !important;
}
#notifications:has(.alert){
    margin: 16px auto !important;
}
#notifications .notifications-container{
    max-width: 1280px;
    padding: 0 16px;
}
#notifications .notifications-container:empty{
    display: none !important;
    padding: 0 !important;
}
#notifications .alert,
.alert.alert-info,
.alert.alert-success,
.alert.alert-warning,
.alert.alert-danger{
    position: relative;
    border-radius: 12px;
    padding: 14px 18px 14px 52px;
    margin: 0 0 12px;
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    line-height: 1.5;
    border-width: 1.5px;
    border-style: solid;
    box-shadow: 0 1px 3px rgba(15,23,42,.04);
}
#notifications .alert ul,
.alert.alert-info ul,
.alert.alert-success ul,
.alert.alert-warning ul,
.alert.alert-danger ul{
    margin: 0;
    padding: 0;
    list-style: none;
}
#notifications .alert ul li,
.alert.alert-info ul li,
.alert.alert-success ul li,
.alert.alert-warning ul li,
.alert.alert-danger ul li{
    padding: 2px 0;
}
#notifications .alert::before,
.alert.alert-info::before,
.alert.alert-success::before,
.alert.alert-warning::before,
.alert.alert-danger::before{
    content: '';
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
/* Info — azul Rompoda */
.alert.alert-info{
    background: var(--rp-primary-bg, #EFF6FF);
    border-color: #BFDBFE;
    color: #1E40AF;
}
.alert.alert-info::before{
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%231E40AF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='M12 16v-4'/><path d='M12 8h.01'/></svg>");
}
/* Success — verde Rompoda */
.alert.alert-success{
    background: #ECFDF5;
    border-color: #A7F3D0;
    color: #065F46;
}
.alert.alert-success::before{
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23065F46' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21.801 10A10 10 0 1 1 17 3.335'/><path d='m9 11 3 3L22 4'/></svg>");
}
/* Warning — naranja Rompoda */
.alert.alert-warning{
    background: #FEF3C7;
    border-color: #FDE68A;
    color: #92400E;
}
.alert.alert-warning::before{
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%2392400E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/><path d='M12 9v4'/><path d='M12 17h.01'/></svg>");
}
/* Danger / Error — rojo Rompoda */
.alert.alert-danger{
    background: #FEF2F2;
    border-color: #FECACA;
    color: #991B1B;
}
.alert.alert-danger::before{
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23991B1B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='m15 9-6 6'/><path d='m9 9 6 6'/></svg>");
}
/* Close button (X) inyectada por rompoda.js sobre cada alert */
#notifications .alert,
.alert.alert-info,
.alert.alert-success,
.alert.alert-warning,
.alert.alert-danger{
    padding-right: 56px;
}
.rp-alert-close{
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255,255,255,.55);
    border: 1px solid transparent;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    padding: 0;
    line-height: 1;
    opacity: .75;
    transition: opacity 150ms ease, background 150ms ease, border-color 150ms ease, transform 150ms ease;
}
.rp-alert-close:hover{
    opacity: 1;
    background: #fff;
    border-color: currentColor;
    transform: translateY(-50%) scale(1.05);
}
.rp-alert-close:active{
    transform: translateY(-50%) scale(.95);
}
.rp-alert-close svg{
    width: 16px;
    height: 16px;
    pointer-events: none;
}
/* Compat con .close clásico bootstrap si PS lo añadiera */
#notifications .alert .close,
.alert.alert-info .close,
.alert.alert-success .close,
.alert.alert-warning .close,
.alert.alert-danger .close{
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    cursor: pointer;
    color: inherit;
    opacity: .6;
    font-size: 20px;
    line-height: 1;
    padding: 0;
}
#notifications .alert .close:hover,
.alert.alert-info .close:hover,
.alert.alert-success .close:hover,
.alert.alert-warning .close:hover,
.alert.alert-danger .close:hover{
    opacity: 1;
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE FIRST OVERHAUL — Pau req v3 2026-04-29
   ──────────────────────────────────────────────────────────────────
   Este bloque NO toca desktop. Sólo aplica reglas dentro de media
   queries para móvil (<=600px y <=480px) que sobreescriben desktop
   donde el layout no aguanta. Auditoría completa de:
     · Página de colección (hero ya arreglado arriba)
     · Página de producto (galería, pills, ATC, trust, related)
     · Header (logo, hamburger, announcement bar)
     · Footer (cols, social, dirección, card padding, lang dropdown)
     · Customer pages (login, registro, identity, addresses, history)
     · Carrito + Checkout (grid 2col → 1col, summary, stepper)
   ════════════════════════════════════════════════════════════════════ */

/* ──────────────────────── PRODUCT PAGE ──────────────────────── */
@media (max-width: 600px){
  /* Container global del producto */
  .rp-product-page #wrapper .container,
  .rp-product-page .container{ padding: 0 12px; }
  /* rp-pp-v2 wrapper */
  .rp-pp-v2{ padding: 12px 12px 28px !important; }
  /* Galería: imagen principal con padding razonable, no 32px */
  .rp-pp-v2 .rp-gallery-main-img,
  .rp-product-page .rp-gallery-main-img{ padding: 14px !important; }
  /* Título producto */
  .rp-pp-v2 .rp-product-name{ font-size: 22px; line-height: 1.2; }
  /* Precio actual */
  .rp-pp-v2 .rp-product-price-current{ font-size: 24px; }
  /* Pills de talla — más estrechas */
  .rp-pp-v2 .rp-variant-pills{ gap: 6px; }
  .rp-pp-v2 .rp-variant-pill{ min-width: 42px; padding: 0 12px; height: 42px; font-size: 13px; }
  /* Qty row más compacto */
  .rp-pp-v2 .rp-product-qty-row{ gap: 8px; }
  .rp-pp-v2 .rp-qty-wrapper{ flex-shrink: 0; }
  /* Trust signals padding más razonable */
  .rp-pp-v2 .rp-product-trust{ padding: 12px 0; gap: 6px; }
  /* Related/recommended grid: padding-right del scroll horizontal */
  .rp-recommended-products .products.rp-school-grid,
  .rp-related-products .products.rp-school-grid,
  .rp-viewed-products .products.rp-school-grid{
    padding-right: 16px !important;
  }
}
@media (max-width: 480px){
  .rp-pp-v2{ padding: 10px 10px 24px !important; }
  .rp-pp-v2 .rp-product-name{ font-size: 20px; }
  .rp-pp-v2 .rp-product-price-current{ font-size: 22px; }
  .rp-pp-v2 .rp-variant-pill{ min-width: 40px; padding: 0 10px; font-size: 12px; }
}

/* ──────────────────────── HEADER ──────────────────────── */
@media (max-width: 900px){
  /* Pau req v3 2026-04-29 (URG): header en mobile SIEMPRE con
     background sólido — incluso en home (donde desktop hace
     transparent sobre el hero). En mobile el hero termina pronto y
     deja al header tapando texto sin fondo. Estado scrolled = menos
     opacidad (igual que desktop). */
  .rp-hdr,
  .rp-body.rp-home-page .rp-hdr{
    background: rgba(255,255,255,.96) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    border-bottom: 1px solid rgba(226,232,240,.7) !important;
  }
  .rp-hdr.rp-scrolled,
  .rp-body.rp-home-page .rp-hdr.rp-scrolled{
    background: rgba(255,255,255,.82) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
  }
  /* Selector idioma "ES" del header oculto en mobile — ya está
     dentro del menú hamburguesa (.rp-drawer-lang). */
  .rp-lang{ display: none !important; }
}
@media (max-width: 480px){
  .rp-hdr-in{ padding: 10px 12px !important; gap: 6px; }
  .rp-logo-img{ height: 14px !important; }
  .rp-logo{ gap: 4px; }
  /* Hamburger touch target garantizado */
  .rp-menu-btn,
  .rp-hdr-icon{ width: 44px !important; height: 44px !important; }
  /* Announcement bar */
  .rp-anbar-in{ padding: 0 12px; font-size: 11px; }
  .rp-anbar-delivery-date{ font-size: 11px; padding: 2px 8px; }
}
@media (max-width: 375px){
  .rp-anbar-in{ font-size: 10.5px; padding: 0 10px; }
}

/* ──────────────────────── FOOTER ──────────────────────── */
@media (max-width: 480px){
  /* Columnas footer 4 → 1 col en mobile */
  .rp-ft-tape-cols{ gap: 20px !important; }
  .rp-ft-tape-col{ min-width: 100% !important; }
  /* Card padding razonable */
  .rp-ft-tape-card{ padding: 24px 16px !important; border-radius: 20px; }
  /* Links touch-friendly */
  .rp-ft-tape-col a{ padding: 8px 0; display: inline-block; }
  .rp-ft-tape-col li{ margin-bottom: 2px; }
  /* Social icons 44x44 */
  .rp-ft-tape-social{ gap: 12px; }
  .rp-ft-tape-social a{ width: 44px !important; height: 44px !important; }
  /* Address legible */
  .rp-ft-tape-col-contact address{ font-size: 13px; line-height: 1.5; }
  /* Lang dropdown que no se salga */
  .rp-lang-dropdown{ right: -8px !important; min-width: 140px; }
}

/* ──────────────────────── LOGIN ──────────────────────── */
@media (max-width: 640px){
  .rp-login .rp-mc-card,
  .rp-login .rp-rg-form{ padding: 24px 18px; }
  .rp-login .rp-rg-input,
  .rp-login input[type="email"],
  .rp-login input[type="password"]{ height: 44px; font-size: 16px; padding: 0 14px 0 42px; }
  .rp-login h1{ font-size: 26px; line-height: 1.15; }
  .rp-login .rp-lede{ font-size: 14px; }
  .rp-login .rp-oauth-btn{ font-size: 13px; padding: 11px 16px; }
}

/* ──────────────────────── REGISTRO ──────────────────────── */
@media (max-width: 768px){
  /* Forzar 1 col en grids del form */
  .rp-rg .rp-rg-row{ grid-template-columns: 1fr !important; gap: 14px !important; }
  /* Fundación grid: 4→2 (no 1, para mantener visualidad) */
  .rp-rg .rp-fund-grid{ grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
}
@media (max-width: 480px){
  .rp-rg .rp-fund-grid{ grid-template-columns: 1fr !important; }
  .rp-rg .rp-rg-form{ padding: 22px 16px; }
  .rp-rg h1{ font-size: 24px; line-height: 1.15; }
  .rp-rg .rp-sub{ font-size: 13px; }
  .rp-rg .rp-rg-input{ height: 46px; font-size: 16px; }
  .rp-rg .rp-rg-section-title{ font-size: 14px; }
  .rp-rg .rp-rg-submit button{ width: 100%; }
  .rp-rg .rp-pw-meter{ font-size: 12px; }
  .rp-rg .rp-pw-checks li{ font-size: 11px; }
}

/* ──────────────────────── MI CUENTA / IDENTITY ──────────────────────── */
@media (max-width: 640px){
  /* Phone form: stack vertical */
  #rp-phone-form{ flex-direction: column !important; align-items: stretch !important; gap: 10px; }
  #rp-phone-form > *{ width: 100%; }
  #rp-phone-input{ min-width: 0 !important; width: 100%; }
  #rp-phone-form button{ width: 100%; }
  /* Account dashboard cards: padding razonable */
  .rp-account-card{ padding: 18px !important; }
}
@media (max-width: 480px){
  .rp-account-dashboard h1,
  .rp-account-identity h1,
  .rp-account-addresses h1,
  .rp-account-orders h1{ font-size: 22px; }
  .rp-account-card{ border-radius: 14px; }
}

/* ──────────────────────── DIRECCIONES ──────────────────────── */
@media (max-width: 480px){
  .rp-addr-grid{ grid-template-columns: 1fr !important; gap: 12px; }
  .rp-addr-card{ padding: 16px !important; }
  .rp-addr-actions{ flex-wrap: wrap !important; gap: 8px !important; }
  .rp-addr-actions a,
  .rp-addr-actions button{ font-size: 13px; padding: 8px 12px; min-height: 36px; }
  /* Botón "añadir dirección" full width */
  .rp-addr-add{ width: 100%; }
  .rp-addr-add > a,
  .rp-addr-add > button{ width: 100%; justify-content: center; }
}

/* ──────────────────────── HISTORIAL PEDIDOS ──────────────────────── */
@media (max-width: 480px){
  .rp-acc-link{ padding: 6px 10px; font-size: 12px; }
  .rp-order-card{ padding: 16px !important; }
  .rp-order-card-header{ flex-wrap: wrap; gap: 6px; }
  .rp-order-actions{ flex-wrap: wrap; gap: 6px; }
}

/* ──────────────────────── CARRITO ──────────────────────── */
@media (max-width: 768px){
  .rp-cart-grid{ grid-template-columns: 1fr !important; gap: 18px !important; }
  .rp-cart-summary{ position: static !important; width: 100% !important; }
}
@media (max-width: 480px){
  .rp-cart-grid{ gap: 14px !important; }
  .rp-cart-summary{ padding: 14px !important; }
  .rp-cart-item{ padding: 12px !important; }
  .rp-cart-item-actions{ flex-wrap: wrap; gap: 8px; }
  .rp-cart-product-img{ width: 72px !important; height: 72px !important; }
  .rp-cart-product-meta{ font-size: 13px; }
  .rp-cart-product-meta strong{ font-size: 14px; }
}

/* ──────────────────────── CHECKOUT ──────────────────────── */
@media (max-width: 768px){
  .rp-checkout-grid{ grid-template-columns: 1fr !important; gap: 18px !important; }
  .rp-checkout-summary{ position: static !important; width: 100% !important; }
}
@media (max-width: 640px){
  /* Stepper horizontal → vertical */
  .rp-checkout-stepper{ flex-direction: column !important; align-items: stretch !important; gap: 8px; }
  .rp-checkout-step{ display: flex; align-items: center; gap: 10px; padding: 8px 0; }
}
@media (max-width: 480px){
  .rp-checkout-grid{ gap: 14px !important; }
  .rp-checkout-summary,
  .rp-checkout-section{ padding: 14px !important; }
  .rp-checkout-section-title{ font-size: 15px; }
  .rp-checkout input,
  .rp-checkout select{ font-size: 16px; height: 44px; }
}

/* ──────────────────────── ORDER CONFIRMATION ──────────────────────── */
@media (max-width: 480px){
  .rp-order-confirmation{ padding: 16px !important; }
  .rp-order-confirmation h1{ font-size: 24px; line-height: 1.2; }
  .rp-order-confirmation .rp-success-icon{ width: 64px; height: 64px; }
  .rp-order-confirmation-summary{ padding: 16px !important; }
}

/* ──────────────────────── CMS / CONTACTO / 404 ──────────────────────── */
@media (max-width: 600px){
  .rp-cms-page,
  .rp-contact,
  .rp-error-404{ padding: 20px 14px !important; }
  .rp-cms-page h1,
  .rp-contact h1,
  .rp-error-404 h1{ font-size: 26px; line-height: 1.15; }
  .rp-cms-page p,
  .rp-contact p{ font-size: 15px; line-height: 1.55; }
  .rp-contact form{ padding: 18px 14px !important; }
  .rp-contact textarea{ min-height: 120px; }
}

/* ──────────────────────── ANTI-HORIZONTAL-SCROLL GLOBAL ──────────────────────── */
@media (max-width: 600px){
  html, body{ overflow-x: hidden; max-width: 100vw; }
  /* Cualquier wrapper con max-width fija que no encaje */
  #wrapper, #content-wrapper, .page-content, .container{
    max-width: 100% !important;
  }
  /* Prevent images escaping container */
  img{ max-width: 100%; height: auto; }
  /* Tablas con overflow scroll horizontal */
  .table-responsive,
  table.rp-table{
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* ──────────────────────── BUTTONS — TOUCH TARGET MINIMO ──────────────────────── */
@media (max-width: 480px){
  /* Asegurar que todos los buttons cumplan 44x44 mínimo de touch */
  button, .btn, .rp-btn, [role="button"]{ min-height: 40px; }
  .rp-btn-lg{ min-height: 48px; }
  .rp-btn-sm{ min-height: 36px; }
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE FIRST iter2 — Pau req v3 2026-04-29 (urgencias)
   ════════════════════════════════════════════════════════════════════ */

/* ───── HOME (body.rp-home-page) ───── */
@media (max-width: 600px){
  /* Reducir espacio entre header y hero */
  .rp-hero{ padding-top: 14px !important; }
  /* CTA del hero: en mobile apilamos verticalmente y dejamos que el
     texto pueda wrap (el botón "Acceder a Mi Colegio" no cabe en 1
     línea con dos botones lado a lado). */
  .rp-hero-cta{
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    padding: 0 8px;
  }
  .rp-hero-cta .rp-btn,
  .rp-hero .rp-btn{
    width: 100%;
    padding: 14px 16px !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    min-height: 48px;
    text-align: center;
    white-space: normal !important;
    overflow: visible;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

/* ───── FOOTER ACORDEÓN MOBILE (Tienda/Recursos/Empresa) ───── */
@media (max-width: 768px){
  /* Cada sección como acordeón colapsable. El HTML real tiene <a>
     directos como hijos del .rp-ft-tape-col (sin <ul>) — por eso
     usamos selector universal `> *:not(h4)` con display:none. */
  .rp-ft-tape-col{
    border-bottom: 1px solid rgba(226,232,240,.6);
    padding: 0 !important;
    margin: 0;
  }
  .rp-ft-tape-col:last-child{ border-bottom: none; }
  /* Título h4 → trigger del acordeón */
  .rp-ft-tape-col h4{
    cursor: pointer;
    user-select: none;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    padding: 18px 0 !important;
    margin: 0 !important;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700 !important;
    color: #0F172A !important;
    font-size: 14px !important;
    letter-spacing: .4px;
    text-transform: uppercase;
    position: relative;
    width: 100%;
  }
  .rp-ft-tape-col h4::after{
    content: '';
    width: 11px; height: 11px;
    border-right: 2px solid #0F172A;
    border-bottom: 2px solid #0F172A;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform 250ms ease;
  }
  .rp-ft-tape-col.is-open h4::after{
    transform: rotate(-135deg) translate(-2px, -2px);
  }
  /* TODOS los hijos directos del col que NO sean el h4: ocultos por
     defecto en mobile. Cuando .is-open los mostramos. */
  .rp-ft-tape-col > *:not(h4){
    display: none !important;
  }
  .rp-ft-tape-col.is-open > *:not(h4){
    display: block !important;
  }
  /* Para el col-contact que tiene <address> + <social> dentro de un
     <p> o flex, no rompemos su display al expandirse */
  .rp-ft-tape-col.is-open > .rp-ft-tape-social{
    display: flex !important;
  }
  .rp-ft-tape-col.is-open > address{
    display: block !important;
  }
  /* Padding bottom en col abierto para separar del siguiente */
  .rp-ft-tape-col.is-open{
    padding-bottom: 16px !important;
  }
  /* Anchor links dentro del col abierto: padding cómodo */
  .rp-ft-tape-col > a{
    padding: 10px 0 !important;
    color: #334155 !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
  }
  .rp-ft-tape-col > a:hover{ color: var(--rp-primary) !important; }
}

/* ───── DRAWER MENU (hamburger) — uniforme con footer ───── */
@media (max-width: 900px){
  .rp-drawer-acc{
    margin: 0 !important;
    border-radius: 0 !important;
    border-bottom: 1px solid rgba(226,232,240,.6);
    overflow: visible;
    background: transparent !important;
  }
  .rp-drawer-acc summary{
    cursor: pointer;
    user-select: none;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 16px 4px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 700 !important;
    color: #0F172A !important;
    font-size: 14px !important;
    letter-spacing: .4px;
    text-transform: uppercase;
    background: transparent !important;
    list-style: none !important;
    border: none !important;
  }
  .rp-drawer-acc summary::-webkit-details-marker{ display: none !important; }
  .rp-drawer-acc summary svg{
    width: 14px !important; height: 14px !important;
    color: #0F172A !important;
  }
  .rp-drawer-acc[open] summary{
    background: transparent !important;
    color: var(--rp-primary) !important;
  }
  .rp-drawer-acc[open] summary svg{
    transform: rotate(180deg);
    color: var(--rp-primary) !important;
  }
  .rp-drawer-acc a{
    display: block !important;
    padding: 10px 16px !important;
    color: #334155 !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    background: transparent !important;
  }
  .rp-drawer-acc a:hover{
    color: var(--rp-primary) !important;
    background: rgba(37,99,235,.04) !important;
  }
}

/* ───── PRODUCTO MÓVIL (tallas 6col, alerts compactos, related 1.5col) ───── */
@media (max-width: 600px){
  /* Tallas: máximo 6 columnas (referencia AYBL) */
  .rp-pp-v2 .rp-variant-pills{
    display: grid !important;
    grid-template-columns: repeat(6, 1fr);
    gap: 6px;
  }
  .rp-pp-v2 .rp-variant-pill{
    width: 100%;
    min-width: 0 !important;
    padding: 0 4px !important;
    font-size: 12px !important;
    height: 40px;
  }
  /* Cuando hay menos pills, no expandir más */
  .rp-pp-v2 .rp-variant-pills.rp-variant-pills-less{
    grid-template-columns: repeat(auto-fit, minmax(48px, 1fr));
  }

  /* Alertas compactas dentro del producto (notificación carrito etc) */
  .rp-product-page #notifications,
  .rp-pp-v2 #notifications{
    margin: 8px 0;
  }
  .rp-product-page .alert,
  .rp-pp-v2 .alert{
    padding: 10px 12px 10px 40px !important;
    font-size: 13px !important;
    border-radius: 10px !important;
    margin: 6px 0 !important;
  }
  .rp-product-page .alert::before,
  .rp-pp-v2 .alert::before{
    width: 18px !important; height: 18px !important;
    left: 12px !important;
  }

  /* Bloques relacionados / recomendados / vistos: 1.5 columnas scroll horizontal */
  /* Pau req v3 2026-04-29: el scroll horizontal 1.5 cols SOLO en la
     PÁGINA DE PRODUCTO (relacionados/recomendados/visto). En la
     página de colección queremos GRID 2 columnas como en desktop —
     por eso scopeamos a body#product. */
  body#product .rp-school-products-wrap,
  body#product .rp-related-products,
  body#product .rp-recommended-products,
  body#product .rp-viewed-products{
    margin-left: -14px;
    margin-right: -14px;
  }
  body#product .rp-school-products-wrap .rp-school-grid,
  body#product .rp-related-products .products,
  body#product .rp-recommended-products .products,
  body#product .rp-viewed-products .products{
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: 60% !important;
    grid-template-columns: none !important;
    gap: 12px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding: 0 14px 12px !important;
    scrollbar-width: none;
  }
  body#product .rp-school-products-wrap .rp-school-grid::-webkit-scrollbar,
  body#product .rp-related-products .products::-webkit-scrollbar,
  body#product .rp-recommended-products .products::-webkit-scrollbar,
  body#product .rp-viewed-products .products::-webkit-scrollbar{ display: none; }
  body#product .rp-school-products-wrap .product-miniature,
  body#product .rp-related-products .product-miniature,
  body#product .rp-recommended-products .product-miniature,
  body#product .rp-viewed-products .product-miniature{
    scroll-snap-align: start;
    width: 100%;
  }

  /* Galería de producto: imagen compacta (no enorme) */
  .rp-pp-v2 .rp-gallery-main,
  .rp-pp-v2 .rp-gallery-main-img{
    max-height: 60vh !important;
  }
  .rp-pp-v2 .rp-gallery-thumbs{
    margin-top: 8px;
    gap: 6px;
  }
  .rp-pp-v2 .rp-gallery-thumb{
    width: 56px !important; height: 56px !important;
  }
}

/* ───── CHECKOUT MÓVIL refinado (stepper, resumen, total) ───── */
@media (max-width: 640px){
  /* Header checkout: logo + SSL inline */
  .rp-co-v5__col-head,
  .rp-checkout-header{
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: wrap;
    gap: 8px;
  }
  .rp-co-v5__logo,
  .rp-checkout-logo{
    height: 32px !important;
    width: auto !important;
  }
  .rp-co-v5__col-head--right{
    margin-top: 0 !important;
  }

  /* Stepper compacto: solo números visibles + label corto */
  .rp-co-v2__stepnav{
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 6px !important;
    padding: 12px 8px !important;
  }
  .rp-co-v2__stepcard{
    padding: 8px 4px !important;
    min-width: 0;
  }
  .rp-co-v2__stepcircle{
    width: 26px !important; height: 26px !important;
    font-size: 12px !important;
    margin-right: 0 !important;
    margin-bottom: 4px;
  }
  .rp-co-v2__steplabel{
    font-size: 11px !important;
    line-height: 1.15 !important;
    text-align: center;
  }
  .rp-co-v2__stepsub{ display: none !important; }

  /* Resumen del pedido: total NO gigante */
  .rp-summary-mobile-toggle__price,
  .rp-checkout-summary .total-value,
  .rp-checkout-summary .rp-co-total-value,
  .rp-co-totals .rp-co-totals__total-value{
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
  }
  .rp-summary-mobile-toggle{
    padding: 12px 14px !important;
    font-size: 14px !important;
  }
  .rp-summary-mobile-body h2,
  .rp-checkout-summary h2{
    font-size: 16px !important;
    line-height: 1.2 !important;
  }
}

/* ───── BOTÓN VOLVER ARRIBA: mostrar en mobile en NO-producto ───── */
@media (max-width: 768px){
  .rp-back-to-top{
    width: 44px !important;
    height: 44px !important;
    bottom: 76px !important;
    right: 14px !important;
  }
  /* Solo se oculta en producto (regla anterior); en home/colección/etc se ve */
}

/* ───── ALUMNO PICKER en checkout (pastillas + checkbox) ───── */
.rp-alumnos-picker{
  display: flex; flex-wrap: wrap; gap: 8px;
  margin: 8px 0 4px;
}
.rp-alumno-chip{
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  border: 1.5px solid #CBD5E1;
  border-radius: 9999px;
  background: #fff;
  color: #334155;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: all 150ms ease;
}
.rp-alumno-chip:hover{
  border-color: #2563EB;
  color: #2563EB;
  background: #EFF6FF;
  transform: translateY(-1px);
}
.rp-alumno-chip.is-active{
  background: #2563EB;
  color: #fff;
  border-color: #2563EB;
}
.rp-alumno-save-row{
  display: flex; align-items: center; gap: 8px;
  margin: 6px 0 12px;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  color: #64748B;
}
.rp-alumno-save-row input[type="checkbox"]{
  width: 18px; height: 18px;
  accent-color: #2563EB;
  cursor: pointer;
}
.rp-alumno-save-row label{ cursor: pointer; user-select: none; }

/* ════════════════════════════════════════════════════════════════════
   MOBILE FIRST iter3 — Pau req v3 2026-04-29 noche (fixes adicionales)
   ════════════════════════════════════════════════════════════════════ */

/* ───── HERO: cuadrícula llega arriba (Pau req: espacio blanco) ─────
   En desktop el hero hace margin-top:-72 para meterse bajo el header
   transparente. En mobile el header tiene bg sólido. Hay que:
   1) Que el wrapper NO tenga bg blanco visible entre header y hero
   2) Que el hero empiece pegado al header (sin padding-top que muestre
      el bg blanco del wrapper)
   3) Que el bg del hero (gradient + mesh) llegue desde y=0 del hero. */
@media (max-width: 900px){
  /* CRÍTICO Pau req v3 2026-04-29: el wrapper NO debe tener bg blanco
     visible entre header y hero — pintamos en su lugar el mismo color
     que el inicio del hero (#BAE0FF) para que en cualquier hueco se
     vea el degradado natural y no un parche blanco. */
  body.rp-home-page #wrapper,
  body.rp-home-page .rp-wrapper,
  body.rp-home-page #content-wrapper,
  body.rp-home-page .rp-page{
    background: #BAE0FF !important;
  }
  .rp-hero{
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  .rp-hero .rp-hero-in{ padding-top: 14px !important; }
  /* Mesh cubre todo el hero hasta el borde superior */
  .rp-hero-mesh{
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
  }
}

/* ───── CTA COLEGIOS (mid section): "Hablar con comercial" + "Descargar dossier" ───── */
@media (max-width: 600px){
  .rp-cta-cole-buttons{
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    width: 100%;
  }
  .rp-cta-cole-buttons .rp-btn{
    width: 100%;
    padding: 14px 16px !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    min-height: 48px;
    text-align: center;
    white-space: normal !important;
    overflow: visible;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
  }
  .rp-cta-cole-text h2,
  .rp-cta-cole-text h2 .rp-rot{
    font-size: 28px !important;
    line-height: 1.2 !important;
  }
  .rp-cta-cole-text p{
    font-size: 14px !important;
  }
}

/* ───── LOGO Rompoda más grande en mobile (Pau req) ───── */
@media (max-width: 900px){
  .rp-logo-img{ height: 22px !important; }
}
@media (max-width: 480px){
  .rp-logo-img{ height: 20px !important; }
}
@media (max-width: 375px){
  .rp-logo-img{ height: 18px !important; }
}

/* ───── PRODUCTO MÓVIL refuerzo iter3 (Pau dice "se ve horrible") ─────
   Aumentamos especificidad usando body#product para garantizar
   que los fixes aplican y no caen víctima de reglas más específicas. */
@media (max-width: 600px){
  body#product .rp-pp-v2,
  body.product .rp-pp-v2{
    padding: 10px 12px 24px !important;
  }
  body#product .rp-pp-v2 .rp-product-name,
  body.product .rp-pp-v2 .rp-product-name{
    font-size: 22px !important;
    line-height: 1.18 !important;
    margin: 0 0 6px !important;
  }
  body#product .rp-pp-v2 .rp-product-price-current,
  body.product .rp-pp-v2 .rp-product-price-current{
    font-size: 22px !important;
  }
  /* Imágenes: galería compacta */
  body#product .rp-pp-v2 .rp-gallery,
  body#product .rp-pp-v2 .rp-gallery-main{
    border-radius: 12px;
    overflow: hidden;
  }
  body#product .rp-pp-v2 .rp-gallery-main img,
  body#product .rp-pp-v2 .rp-gallery-main-img{
    max-height: 56vh !important;
    object-fit: contain;
  }
  /* Tallas grid 6 cols (override más fuerte) */
  body#product .rp-pp-v2 .rp-variant-pills{
    display: grid !important;
    grid-template-columns: repeat(6, 1fr) !important;
    gap: 5px !important;
  }
  body#product .rp-pp-v2 .rp-variant-pill{
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0 2px !important;
    height: 38px !important;
    font-size: 12px !important;
  }
  /* Notificación más compacta */
  body#product #notifications,
  body.product #notifications{
    margin: 6px 0 !important;
  }
  body#product #notifications .alert,
  body.product #notifications .alert{
    padding: 8px 38px 8px 36px !important;
    font-size: 12px !important;
    border-radius: 10px !important;
    line-height: 1.35 !important;
  }
  body#product #notifications .alert::before,
  body.product #notifications .alert::before{
    width: 16px !important; height: 16px !important;
    left: 12px !important;
  }
  body#product .rp-alert-close,
  body.product .rp-alert-close{
    width: 26px !important; height: 26px !important;
    right: 6px !important;
  }
  /* Bloques recomendados/relacionados/vistos: scroll horizontal flex.
     Uso FLEX (no grid) porque otra regla del theme aplica display:flex
     con !important sobre `.products` y vence al display:grid. */
  body#product .rp-school-products-wrap .rp-school-grid,
  body#product .rp-related-products .products,
  body#product .rp-recommended-products .products,
  body#product .rp-viewed-products .products{
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding: 0 12px 10px !important;
    scrollbar-width: none;
  }
  body#product .rp-school-products-wrap .rp-school-grid::-webkit-scrollbar,
  body#product .rp-related-products .products::-webkit-scrollbar,
  body#product .rp-recommended-products .products::-webkit-scrollbar,
  body#product .rp-viewed-products .products::-webkit-scrollbar{ display: none; }
  html body#product .products article.product-miniature,
  html body#product .products article.product-miniature.rp-prod-card,
  html body.page-product .products article.product-miniature,
  html body.page-product .products article.product-miniature.rp-prod-card,
  html body#product .rp-school-products-wrap .rp-school-grid > *,
  html body.page-product .rp-school-products-wrap .rp-school-grid > *{
    flex: 0 0 64% !important;
    max-width: 64% !important;
    min-width: 64% !important;
    width: 64% !important;
    scroll-snap-align: start;
  }
  /* Títulos de bloques relacionados más pequeños */
  body#product .rp-related-title,
  body#product .rp-recommended-title,
  body#product .rp-viewed-title{
    font-size: 16px !important;
    margin: 18px 12px 10px !important;
    padding: 0 !important;
  }
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE FIRST iter4 — Pau req v3 2026-04-29 (mi cuenta + order detail + contact)
   ════════════════════════════════════════════════════════════════════ */

/* ───── CONTACT (.rp-ct-*) ───── */
@media (max-width: 600px){
  .rp-ct-main-in{
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .rp-ct-help{ order: 2; }
  .rp-ct-form-card{
    padding: 20px 16px !important;
  }
  .rp-ct-form-card input,
  .rp-ct-form-card textarea,
  .rp-ct-form-card select{
    font-size: 16px !important;
    height: 44px;
  }
  .rp-ct-form-card textarea{
    height: auto;
    min-height: 120px;
  }
}

/* ───── ORDER DETAIL (mi cuenta) ───── */
@media (max-width: 600px){
  .rp-acc-detail-grid{
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
  }
  /* Tabla de productos del pedido → tarjetas */
  .rp-acc-product-row{
    flex-wrap: wrap !important;
    gap: 12px !important;
    padding: 14px !important;
  }
  .rp-acc-product-info{
    order: 2;
    flex: 1;
    min-width: 0;
  }
  .rp-acc-product-qty{
    order: 3;
    font-size: 13px;
  }
  .rp-acc-product-price{
    order: 4;
    margin-left: auto;
    font-size: 14px;
    font-weight: 700;
  }
  /* Imagen del producto */
  .rp-acc-product-img{
    width: 56px !important;
    height: 56px !important;
  }
  /* Totales */
  .rp-acc-totals-row{
    display: flex !important;
    justify-content: space-between !important;
    font-size: 13px !important;
    padding: 8px 0 !important;
  }
  .rp-acc-totals-total,
  .rp-acc-totals-grand-total{
    font-size: 16px !important;
    font-weight: 700;
  }
  /* Shipping info: stack vertical */
  .rp-acc-shipping-row{
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 6px;
    font-size: 13px;
    padding: 8px 0;
  }
  .rp-acc-shipping-label{ font-weight: 600; color: #64748B; }

  /* Devoluciones: producto row con checkbox */
  .rp-acc-return-product-row{
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    align-items: flex-start !important;
    padding: 12px !important;
  }
  .rp-acc-return-check{ flex-shrink: 0; margin-top: 4px; }
  .rp-acc-return-product-info{ flex: 1; min-width: 160px; }
  .rp-acc-return-qty-wrap{ flex: 1 1 100%; min-width: 0; }
}

/* ───── HISTORIAL DE PEDIDOS (history.tpl) ───── */
@media (max-width: 600px){
  /* Ocultar tabla desktop, mostrar cards mobile */
  .rp-acc-table-desktop{ display: none !important; }
  .rp-acc-orders-mobile{ display: block !important; }
  .rp-acc-order-card{
    padding: 14px !important;
    border-radius: 12px;
    margin-bottom: 10px;
  }
  .rp-acc-order-card-row{
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }
  .rp-acc-order-card-total{
    width: 100%;
    font-size: 16px;
    font-weight: 700;
  }
  .rp-acc-order-card-actions{
    width: 100%;
    flex-wrap: wrap;
    gap: 8px;
  }
}

/* ───── DIRECCIONES refuerzo iter4 ───── */
@media (max-width: 480px){
  .rp-addr-grid{
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .rp-addr-card{
    padding: 16px !important;
  }
  .rp-addr-actions{
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
  .rp-addr-actions .rp-btn,
  .rp-addr-actions .rp-btn-sm,
  .rp-addr-actions a,
  .rp-addr-actions button{
    flex: 1 1 calc(50% - 4px);
    min-width: 0;
    font-size: 13px !important;
    padding: 8px 10px !important;
    text-align: center;
    justify-content: center;
  }
  /* Form de dirección (address.tpl) */
  .rp-address-form{
    padding: 16px !important;
  }
  .rp-address-form .rp-rg-row,
  .rp-address-form .form-group-row{
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .rp-address-form input,
  .rp-address-form select,
  .rp-address-form textarea{
    font-size: 16px !important;
    height: 44px;
  }
}

/* ───── CARRITO refuerzo iter4 ───── */
@media (max-width: 480px){
  /* Resumen NO sticky en móvil */
  .rp-cart-summary,
  .rp-cart-summary-card,
  .rp-checkout-summary,
  .rp-co-summary{
    position: static !important;
    top: auto !important;
    width: 100% !important;
  }
  /* Ítem del carrito: imagen + info + qty + remove apilado */
  .rp-cart-item{
    flex-wrap: wrap !important;
    gap: 12px !important;
    padding: 12px !important;
  }
  .rp-cart-item-img{
    width: 80px !important;
    height: 80px !important;
    flex-shrink: 0;
  }
  .rp-cart-item-info{
    flex: 1;
    min-width: 140px;
    font-size: 13px;
  }
  .rp-cart-item-info strong{ font-size: 14px; }
  .rp-cart-item-qty{
    flex: 1 1 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 6px;
  }
  .rp-cart-item-remove{
    align-self: flex-start;
  }
  /* Totales en cart */
  .rp-cart-totals-row{
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    font-size: 13px;
  }
  .rp-cart-totals-total{ font-size: 16px; font-weight: 700; }
}

/* ───── DASHBOARD MI CUENTA refuerzo ───── */
@media (max-width: 480px){
  .rp-acc-grid{
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .rp-acc-card,
  .rp-account-card{
    padding: 16px !important;
    border-radius: 12px !important;
  }
  .rp-acc-card-icon{
    width: 36px !important;
    height: 36px !important;
  }
  .rp-acc-card-title{
    font-size: 14px !important;
  }
  .rp-acc-card-desc{
    font-size: 12px !important;
  }
  /* Hero de cuenta más compacto */
  .rp-acc-hero,
  .rp-account-hero{
    padding: 16px !important;
  }
  .rp-acc-hero h1{
    font-size: 22px !important;
  }
}

/* ───── PASSWORD RECOVERY (forgot password) ───── */
@media (max-width: 480px){
  .rp-page form[action*="password"],
  .rp-page form[action*="forgot"]{
    padding: 18px 14px !important;
  }
  .rp-page form[action*="password"] input,
  .rp-page form[action*="forgot"] input{
    font-size: 16px !important;
    height: 44px;
  }
}

/* ───── CHECKOUT FLOW - REFUERZO LOGO+SSL ───── */
@media (max-width: 600px){
  /* Logo Rompoda y SSL en línea horizontal compacta */
  .rp-co-v5__logo-wrap,
  .rp-checkout-header__left{
    flex: 1;
    display: flex;
    align-items: center;
  }
  .rp-co-v5__logo,
  .rp-checkout-logo{
    max-height: 28px !important;
  }
  .rp-co-v5__col-head--right,
  .rp-co-v5__ssl-badge{
    flex-shrink: 0;
    font-size: 11px !important;
    padding: 6px 10px !important;
  }
}

/* ───── PEDIDO COMPLETADO (order confirmation) ───── */
@media (max-width: 480px){
  .rp-order-conf,
  .rp-order-confirmation{
    padding: 16px 14px !important;
  }
  .rp-order-conf-hero h1,
  .rp-order-confirmation h1{
    font-size: 24px !important;
    line-height: 1.18 !important;
  }
  .rp-order-conf-success-icon,
  .rp-order-confirmation .rp-success-icon{
    width: 56px !important;
    height: 56px !important;
  }
  .rp-order-conf-summary{
    padding: 14px !important;
  }
  /* Tabla de productos */
  .rp-order-conf-products .product-row{
    flex-wrap: wrap;
    gap: 10px;
  }
  /* Card "Continuar comprando" */
  .rp-order-conf-actions .rp-btn{
    width: 100%;
    margin-bottom: 8px;
  }
}

/* ───── CMS PAGES (sobre nosotros, FAQ, envíos, devoluciones) ───── */
@media (max-width: 600px){
  .rp-cms-page,
  .rp-cms,
  .cms-id-4 .rp-page,
  .cms-id-5 .rp-page,
  .cms-id-10 .rp-page,
  .cms-id-11 .rp-page,
  .cms-id-12 .rp-page,
  .cms-id-13 .rp-page,
  .cms-id-14 .rp-page{
    padding: 20px 14px !important;
  }
  .rp-cms-page h1,
  .rp-cms h1{
    font-size: 24px !important;
    line-height: 1.18 !important;
  }
  .rp-cms-page h2,
  .rp-cms h2{
    font-size: 20px !important;
    line-height: 1.2 !important;
    margin-top: 24px !important;
  }
  .rp-cms-page p,
  .rp-cms p{
    font-size: 15px !important;
    line-height: 1.55 !important;
  }
  .rp-cms-page table,
  .rp-cms table{
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    width: 100% !important;
    font-size: 13px;
  }
  .rp-cms-page img,
  .rp-cms img{
    max-width: 100% !important;
    height: auto !important;
  }
}

/* ───── 404 ───── */
@media (max-width: 600px){
  .rp-error-404,
  .rp-page-error{
    padding: 30px 20px !important;
    text-align: center;
  }
  .rp-error-404 h1,
  .rp-page-error h1{
    font-size: 64px !important;
    line-height: 1 !important;
    margin-bottom: 8px;
  }
  .rp-error-404 .rp-btn,
  .rp-page-error .rp-btn{
    width: 100%;
    max-width: 280px;
    margin-top: 20px;
  }
  .rp-error-404 svg,
  .rp-page-error svg{
    max-width: 220px !important;
    height: auto !important;
  }
}

/* ───── SEARCH RESULTS ───── */
@media (max-width: 600px){
  .rp-search-page,
  .rp-search-results{
    padding: 16px 12px !important;
  }
  .rp-search-page h1,
  .rp-search-results h1{
    font-size: 20px !important;
  }
  .rp-search-form input{
    font-size: 16px !important;
    height: 44px;
  }
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE FIRST iter5 — galería mobile = dots + swipe (Pau req)
   ════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px){
  /* Ocultar thumbnails de la galería en mobile (no caben + son ruido). */
  body#product .rp-pp-v2 .rp-gallery-thumbs,
  body.page-product .rp-pp-v2 .rp-gallery-thumbs{
    display: none !important;
  }
  /* Mostrar dots dentro de la imagen principal con buen contraste. */
  body#product .rp-pp-v2 .rp-gallery-dots,
  body.page-product .rp-pp-v2 .rp-gallery-dots{
    display: flex !important;
    justify-content: center;
    gap: 6px;
    position: absolute;
    left: 50%;
    bottom: 12px;
    transform: translateX(-50%);
    z-index: 3;
    margin: 0;
    padding: 6px 10px;
    background: rgba(255,255,255,.65);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border-radius: 9999px;
  }
  body#product .rp-pp-v2 .rp-gallery-dot,
  body.page-product .rp-pp-v2 .rp-gallery-dot{
    width: 7px; height: 7px;
    border-radius: 50%;
    background: rgba(37, 99, 235, .35);
    transition: all 220ms ease;
    cursor: pointer;
    border: none;
    padding: 0;
  }
  body#product .rp-pp-v2 .rp-gallery-dot.is-active,
  body.page-product .rp-pp-v2 .rp-gallery-dot.is-active{
    width: 18px;
    border-radius: 4px;
    background: #2563EB;
  }
  /* Galería main relativo para que los dots flotantes se posicionen */
  body#product .rp-pp-v2 .rp-gallery-main,
  body.page-product .rp-pp-v2 .rp-gallery-main{
    position: relative;
    overflow: hidden;
    touch-action: pan-y; /* permitir scroll vertical, capturar horizontal */
  }
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE iter6 — Pau req 2026-04-29 noche
   1) Padding lateral en recomendados/relacionados (visto OK)
   2) Botones .rp-fav-btn, .rp-quick-add-mobile y .rp-recommended__add
      como CÍRCULO PERFECTO (ahora se ven ovalados)
   3) Lupa zoom en mobile arriba a la derecha de la imagen
   ════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px){
  /* (1) Padding lateral consistente para los 3 bloques. La regla
     anterior usaba body.product que NO existe (el body es body#product
     con class page-product). Re-añadimos con scope correcto. */
  body#product .rp-school-products-wrap,
  body#product .rp-related-products,
  body#product .rp-recommended-products,
  body#product .rp-viewed-products,
  body#product .rp-related-collection-products{
    padding-left: 16px !important;
    padding-right: 16px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  /* También título dentro: con margin que respete el padding del wrapper */
  body#product .rp-school-products-wrap .rp-related-title{
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
  }
  /* El grid interno padding 0 (el wrapper ya tiene padding) */
  body#product .rp-school-products-wrap .rp-school-grid,
  body#product .rp-recommended-products .rp-school-grid,
  body#product .rp-related-products .products{
    padding: 0 0 12px !important;
  }
}

/* (2) BOTONES CIRCULARES PERFECTOS — fav, quick-add, recommended add.
   El bug era aspect-ratio: el browser calculaba alto != ancho por
   padding/contenido. Fijamos width=height explícito y aspect-ratio:1. */
.rp-fav-btn,
.rp-prod-card .rp-fav-btn,
.rp-quick-add-mobile,
.rp-prod-card .rp-quick-add-mobile,
.rp-recommended__add,
.rp-recommended .rp-recommended__add{
  width: 36px !important;
  height: 36px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 9999px !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}
/* En el carrusel de "Completa tu pedido" (drawer cart + checkout summary),
   el botón "Añadir / Elegir talla" SÍ debe ser pill rectangular ancho.
   Pau req 2026-05-03: el selector .rp-recommended NO matcheaba en el
   checkout summary (donde el padre es .rp-co-v2__reco-summary). Por eso
   los botones se veían cortados como círculos negros con texto recortado.
   Añadidos los selectores de checkout summary y cart drawer body. */
.rp-recommended .rp-recommended__add,
.rp-co-v2__reco-summary .rp-recommended__add,
.rp-co-v2__reco-summary--rounded .rp-recommended__add,
.rp-cart-drawer-body .rp-recommended__add{
  width: 100% !important;
  aspect-ratio: auto !important;
  border-radius: 8px !important;
  padding: 8px 14px !important;
  height: auto !important;
}

/* (3) BOTÓN LUPA ZOOM en mobile arriba derecha imagen del producto
   Misma estética circular que rp-fav-btn (Pau req: círculo, no
   cuadrado-rounded del HTML de referencia). */
.rp-gallery-zoom-btn{
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 4;
  width: 40px;
  height: 40px;
  aspect-ratio: 1 / 1;
  border-radius: 9999px;
  background: #fff;
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 2px 8px rgba(15,23,42,.06);
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #0F172A;
  transition: transform 150ms ease, box-shadow 150ms ease;
}
.rp-gallery-zoom-btn:hover{
  transform: scale(1.05);
  box-shadow: 0 4px 14px rgba(15,23,42,.12);
}
.rp-gallery-zoom-btn svg{
  width: 18px;
  height: 18px;
  stroke: currentColor;
  fill: none;
}
@media (max-width: 768px){
  body#product .rp-gallery-zoom-btn,
  body.page-product .rp-gallery-zoom-btn{
    display: inline-flex !important;
  }
  /* Cuando hay lupa, mover el botón fav a la izquierda para no chocar */
  body#product .rp-pp-v2 .rp-fav-btn--product,
  body.page-product .rp-pp-v2 .rp-fav-btn--product{
    right: 60px !important;
  }
}

/* Overlay zoom fullscreen (reusa lightbox) */
.rp-gallery-zoom-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.92);
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  touch-action: none;
}
.rp-gallery-zoom-overlay.is-open{ display: flex; }
.rp-gallery-zoom-overlay img{
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  user-select: none;
  touch-action: none;
  transition: transform 200ms ease;
}
.rp-gallery-zoom-overlay-close{
  position: fixed;
  top: 20px;
  right: 20px;
  width: 44px;
  height: 44px;
  border-radius: 9999px;
  background: rgba(255,255,255,.95);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10001;
  font-size: 28px;
  line-height: 1;
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE iter6.1 — Pau req 2026-04-29 noche (continuación)
   4) Bloque envío + trust signals UNIFICADO en mobile (lista vertical)
   5) Icono usuario VISIBLE en mobile (estaba oculto cuando logged-in)
   ════════════════════════════════════════════════════════════════════ */

/* (4) Lista de trust dentro del delivery snippet — desktop oculta */
.rp-pp-v2 .rp-delivery-snippet .rp-delivery-trust-list{ display: none; }

@media (max-width: 768px){
  /* Snippet vertical en mobile + más padding */
  body#product .rp-pp-v2 .rp-delivery-snippet,
  body.page-product .rp-pp-v2 .rp-delivery-snippet{
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 12px 14px !important;
    gap: 0 !important;
  }
  body#product .rp-pp-v2 .rp-delivery-snippet > svg,
  body.page-product .rp-pp-v2 .rp-delivery-snippet > svg{
    display: none !important;
  }
  body#product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-row,
  body.page-product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-row{
    display: flex;
    align-items: flex-start;
    gap: 10px;
  }
  body#product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-row svg,
  body.page-product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-row svg{
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px;
  }
  body#product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-trust-list,
  body.page-product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-trust-list{
    display: block !important;
    list-style: none;
    margin: 0;
    padding: 0;
  }
  body#product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-trust-list li,
  body.page-product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-trust-list li{
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    font-size: 13px;
    color: #1a1a1a;
    line-height: 1.4;
  }
  body#product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-trust-list li:first-child,
  body.page-product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-trust-list li:first-child{
    margin-top: 8px;
    padding-top: 10px;
    border-top: 1px solid rgba(15,23,42,.08);
  }
  body#product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-trust-list li svg,
  body.page-product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-trust-list li svg{
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    stroke: #1a1a1a;
    stroke-width: 1.5;
    fill: none;
  }
  body#product .rp-pp-v2 .rp-product-trust,
  body.page-product .rp-pp-v2 .rp-product-trust{
    display: none !important;
  }
}

/* (5) USER ICON visible en mobile — overrideamos línea 285 */
@media (max-width: 900px){
  .rp-profile-wrap{
    display: inline-flex !important;
    align-items: center;
  }
  .rp-profile-wrap .rp-profile-dropdown{
    display: none !important;
  }
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE iter6.2 — Pau req 2026-04-29 noche (2nd round feedback)
   Bugs detectados tras iter6:
   (A) Desktop: snippet con icono pegado al texto (mi nuevo wrapper
       .rp-delivery-row rompió el gap original del flex parent).
   (B) Mobile: línea/border-top fea bajo "Envío regular" en el primer
       trust item.
   (C) Accordion vacío deja un border-top fantasma (trazo feo).
   (D) Mobile: espacio excesivo entre imagen y título producto.
   (E) Mobile: bajar 1 nivel font-size del título (h1→h2) y precio.
   (F) Mobile: rp-fav-btn / rp-quick-add-mobile siguen ovalados.
   (G) Mobile: dots de la galería deben ir en BOTTOM-RIGHT (no center).
   ════════════════════════════════════════════════════════════════════ */

/* (A) Desktop+mobile: gap entre icono y texto del snippet */
.rp-pp-v2 .rp-delivery-snippet .rp-delivery-row{
  display: flex;
  align-items: center;
  gap: 10px;
}

/* (B) Mobile: quitar border-top del primer trust item dentro del snippet */
@media (max-width: 768px){
  body#product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-trust-list li:first-child,
  body.page-product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-trust-list li:first-child{
    border-top: none !important;
    margin-top: 4px !important;
    padding-top: 4px !important;
  }
  /* En mobile el row del snippet alinea start (texto largo se envuelve) */
  body#product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-row,
  body.page-product .rp-pp-v2 .rp-delivery-snippet .rp-delivery-row{
    align-items: flex-start;
  }
}

/* (C) Accordion vacío oculto */
.rp-pp-v2 .rp-product-accordion:empty,
.rp-pp-v2 .rp-product-accordion:not(:has(.rp-accordion-item)){
  display: none !important;
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* (D, E) Mobile: espacio imagen-título reducido + título y precio menores */
@media (max-width: 768px){
  /* Reducir gap del grid producto en mobile (era 32px) */
  body#product .rp-pp-v2 .rp-product-grid,
  body.page-product .rp-pp-v2 .rp-product-grid{
    gap: 16px !important;
  }
  /* Padding bottom de gallery + padding top de info acortados */
  body#product .rp-pp-v2 .rp-product-gallery,
  body.page-product .rp-pp-v2 .rp-product-gallery{
    margin-bottom: 0 !important;
  }
  body#product .rp-pp-v2 .rp-product-info,
  body.page-product .rp-pp-v2 .rp-product-info{
    margin-top: 0 !important;
  }
  /* Bajar 1 nivel título: 24px → 20px */
  body#product .rp-pp-v2 .rp-product-name,
  body.page-product .rp-pp-v2 .rp-product-name{
    font-size: 20px !important;
    line-height: 1.25 !important;
  }
  /* Bajar 1 nivel precio: 28px → 22px */
  body#product .rp-pp-v2 .rp-product-price-current,
  body.page-product .rp-pp-v2 .rp-product-price-current{
    font-size: 22px !important;
  }
  /* Precio old más pequeño también */
  body#product .rp-pp-v2 .rp-product-price-old,
  body.page-product .rp-pp-v2 .rp-product-price-old{
    font-size: 14px !important;
  }
}

/* (F) FORZAR círculos perfectos rp-fav-btn / rp-quick-add-mobile */
html body .rp-fav-btn,
html body .rp-prod-card .rp-fav-btn,
html body .rp-quick-add-mobile,
html body .rp-prod-card .rp-quick-add-mobile{
  width: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 9999px !important;
  padding: 0 !important;
  flex: none !important;
  flex-shrink: 0 !important;
  flex-grow: 0 !important;
  flex-basis: auto !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
@media (max-width: 640px){
  html body .rp-fav-btn,
  html body .rp-prod-card .rp-fav-btn,
  html body .rp-quick-add-mobile,
  html body .rp-prod-card .rp-quick-add-mobile{
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
  }
}

/* (G) Mobile: dots en bottom-right (no center) */
@media (max-width: 768px){
  body#product .rp-pp-v2 .rp-gallery-dots,
  body.page-product .rp-pp-v2 .rp-gallery-dots{
    left: auto !important;
    right: 12px !important;
    bottom: 12px !important;
    transform: none !important;
    padding: 5px 9px !important;
  }
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE iter6.3 — Pau req 2026-04-29 noche (3rd round)
   (I) Reducir el espacio (padding-top) entre header y "Hola, Pau"
       en mi-cuenta + páginas similares.
   (J) Drawer CTA "Acceder a Mi Colegio": blanco normal, negro :active.
       Y bloquear el highlight cyan nativo de iOS Safari.
   (K) "Sobre nosotros" drawer: mismo estilo que TIENDA/RECURSOS/CONTACTO
       (uppercase, fondo gris, peso 700).
   ════════════════════════════════════════════════════════════════════ */

/* (I) Mobile: reducir hero account/identity/addresses/history padding */
@media (max-width: 768px){
  .rp-acc-hero,
  .rp-addr-hero,
  .rp-hist-hero,
  .rp-id-hero,
  .rp-od-hero,
  .rp-or-hero,
  .rp-of-hero{
    padding: 8px 16px 20px !important;
    margin-top: 0 !important;
  }
  .rp-acc-hero-in,
  .rp-addr-hero-in,
  .rp-hist-hero-in,
  .rp-id-hero-in,
  .rp-od-hero-in{
    padding-top: 8px !important;
  }
  .rp-acc-hero h1,
  .rp-addr-hero h1,
  .rp-hist-hero h1,
  .rp-id-hero h1{
    font-size: 24px !important;
    margin: 8px 0 6px !important;
  }
  .rp-acc-hero p,
  .rp-addr-hero p,
  .rp-hist-hero p,
  .rp-id-hero p{
    font-size: 13px !important;
    line-height: 1.45 !important;
  }
  .rp-acc-section,
  .rp-addr-section,
  .rp-hist-section,
  .rp-id-section{
    padding: 20px 16px 32px !important;
  }
}

/* (J) Drawer CTA "Acceder a Mi Colegio" — texto blanco normal, negro :active.
   El bloqueo del highlight cyan nativo iOS lo manejamos con
   -webkit-tap-highlight-color para no ver el flash azul. */
.rp-drawer-cta{
  color: #fff !important;
  -webkit-tap-highlight-color: transparent;
}
.rp-drawer-cta:hover,
.rp-drawer-cta:focus,
.rp-drawer-cta:focus-visible{
  color: #fff !important;
  text-decoration: none;
}
.rp-drawer-cta:active{
  color: #0F172A !important;
}
.rp-drawer-cta svg{
  color: currentColor !important;
}

/* (K) "Sobre nosotros" drawer — mismo estilo que summary de los accordions */
.rp-drawer-section-link{
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  color: var(--rp-dark) !important;
  background: var(--rp-g50) !important;
  padding: 14px 16px !important;
  border-radius: 10px !important;
  margin: 4px 0 !important;
  text-transform: none !important;
}
.rp-drawer-section-link:hover{
  background: var(--rp-primary-bg) !important;
  color: var(--rp-primary) !important;
}

/* ════════════════════════════════════════════════════════════════════
   iter6.4 — Pau req 2026-04-29 (4th round)
   (L) Dots galería: posición absoluta DENTRO del .rp-gallery-main
       (estaban quedando "abajo derecha de la página" porque la galería
       no tenía position:relative en algunos productos).
   (M) Sticky ATC desktop: flotando bottom-right (no full-width).
   ════════════════════════════════════════════════════════════════════ */

/* (L) Forzar dots DENTRO de la galería (no de la página) */
@media (max-width: 768px){
  body#product .rp-pp-v2 .rp-gallery-main,
  body.page-product .rp-pp-v2 .rp-gallery-main{
    position: relative !important;
  }
  body#product .rp-pp-v2 .rp-gallery-dots,
  body.page-product .rp-pp-v2 .rp-gallery-dots{
    position: absolute !important;
  }
}

/* (M) Sticky ATC en DESKTOP: floating bottom-right (no full-width).
   Pau req v6.6 2026-04-29: ampliado max-width a 540px porque el btn
   "Selecciona una talla" (~210px de texto + padding) se salía del bloque.
   También aseguro que el inner respete el ancho del wrapper. */
@media (min-width: 769px){
  .rp-sticky-atc{
    left: auto !important;
    right: 24px !important;
    bottom: 24px !important;
    width: auto !important;
    max-width: 540px !important;
    border-radius: 16px !important;
    border: 1px solid var(--rp-g200, #E2E8F0) !important;
    box-shadow: 0 16px 40px -8px rgba(15,23,42,.18), 0 4px 12px -4px rgba(15,23,42,.10) !important;
    padding: 12px 14px !important;
    overflow: hidden !important;
  }
  .rp-sticky-atc.is-visible{
    transform: translateY(0) !important;
  }
  .rp-sticky-atc-inner{
    max-width: none !important;
    width: 100% !important;
    gap: 10px !important;
    flex-wrap: nowrap !important;
  }
  .rp-sticky-atc-info{
    min-width: 0 !important;
  }
  .rp-sticky-atc-img-wrap{
    width: 52px !important;
    height: 52px !important;
    flex-shrink: 0 !important;
  }
  .rp-sticky-atc-name{
    font-size: 13px !important;
  }
  .rp-sticky-atc-price{
    font-size: 13px !important;
  }
  .rp-sticky-atc-btn{
    height: 44px !important;
    padding: 0 18px !important;
    font-size: 13px !important;
    flex-shrink: 0 !important;
  }
}

/* (O) Ocultar el "Volver arriba" legacy de PrestaShop classic theme
   (`<a href="#header" class="btn btn-secondary">Volver arriba</a>`)
   que aparecía en mobile junto al footer. Mantenemos solo nuestro
   .rp-back-to-top (botón circular flotante). */
.hidden-md-up.text-xs-right.up,
.hidden-md-up.text-sm-right.up,
.hidden-md-up.up,
div.up,
a.btn.btn-secondary[href="#header"],
a.btn-secondary[href="#header"],
.btn-secondary[href="#header"]{
  display: none !important;
}

/* (P) FORZAR visibilidad del .rp-back-to-top en mobile.
   Pau req v6.7+v6.8: el botón seguía sin aparecer. Forzamos con la
   especificidad máxima posible (`html body button.rp-back-to-top`) y
   z-index muy alto para asegurar que no quede tapado por el sticky
   ATC ni por el banner anbar. Solo se OCULTA explícitamente en la
   página de producto (ya tenemos sticky ATC ahí). */
@media (max-width: 768px){
  html body button.rp-back-to-top{
    position: fixed !important;
    bottom: 80px !important;
    right: 16px !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 9999px !important;
    background: #fff !important;
    border: 1.5px solid #E2E8F0 !important;
    box-shadow: 0 4px 12px rgba(15,23,42,.18) !important;
    z-index: 9500 !important;
    cursor: pointer;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    /* Estado por defecto: oculto hasta que JS añade is-visible */
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 250ms ease, visibility 250ms ease, transform 250ms ease;
    display: flex !important;
  }
  html body button.rp-back-to-top.is-visible{
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
  }
  html body button.rp-back-to-top svg{
    width: 20px !important;
    height: 20px !important;
    stroke: #334155 !important;
    fill: none !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    pointer-events: none;
  }
  /* Excepción: en página de producto NO se muestra (sticky ATC ya cubre) */
  html body#product button.rp-back-to-top,
  html body.page-product button.rp-back-to-top,
  html body.product button.rp-back-to-top{
    display: none !important;
  }
}

/* ════════════════════════════════════════════════════════════════════
   FALLBACK — avisos de availability heredados del theme classic
   ──────────────────────────────────────────────────────────────────
   Si por cualquier razón PS9 no toma nuestro override de
   _partials/product-add-to-cart.tpl (cache antigua, refresh AJAX desde
   un módulo legacy, etc.) y termina pintando dentro de
   #product-availability la maqueta de classic con
   `<div class="alert alert-warning"><div class="alert-content-wrapper">
   <i class="material-icons"></i>...</div></div>`, este bloque la
   re-estiliza para que se vea con la paleta Rompoda en lugar del
   estilo classic original.

   También oculta el icono Material (estilo grueso plano) que rompe la
   coherencia visual con el resto de iconos Lucide del tema. En su
   lugar, pintamos un icono SVG con CSS background-image ya tintado.
   ──────────────────────────────────────────────────────────────────── */
#product-availability .alert{
    position:relative;
    display:flex;align-items:flex-start;gap:10px;
    margin:0;
    padding:10px 12px 10px 38px;
    border-radius:12px;
    border-width:1.5px;
    border-style:solid;
    font-family:'DM Sans',sans-serif;
    font-size:12.5px;line-height:1.4;font-weight:500;
    box-shadow:none;
}
#product-availability .alert::before{
    content:'';
    position:absolute;
    left:12px;top:12px;
    width:18px;height:18px;
    background-repeat:no-repeat;background-position:center;background-size:contain;
}
#product-availability .alert .material-icons,
#product-availability .alert i.material-icons,
#product-availability .alert .rtl-no-flip{
    display:none !important;
}
#product-availability .alert .alert-content-wrapper{
    display:flex;align-items:flex-start;gap:0;
    width:100%;
}
#product-availability .alert .alert-content-wrapper > div:first-child{
    display:none;
}
#product-availability .alert .alert-content-wrapper > div:last-child{
    flex:1 1 auto;
}
#product-availability .alert.alert-success{
    background:#ECFDF5;border-color:#A7F3D0;color:#047857;
}
#product-availability .alert.alert-success::before{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2310B981' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21.801 10A10 10 0 1 1 17 3.335'/><path d='m9 11 3 3L22 4'/></svg>");
}
#product-availability .alert.alert-warning{
    background:#FEF3C7;border-color:#FDE68A;color:#92400E;
}
#product-availability .alert.alert-warning::before{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23D97706' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/><path d='M12 9v4'/><path d='M12 17h.01'/></svg>");
}
#product-availability .alert.alert-danger{
    background:#FEF2F2;border-color:#FECACA;color:#991B1B;
}
#product-availability .alert.alert-danger::before{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23EF4444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><path d='m15 9-6 6'/><path d='m9 9 6 6'/></svg>");
}
@media (min-width:768px){
    #product-availability .alert{
        padding:12px 14px 12px 42px;
        font-size:14px;
        gap:12px;
    }
    #product-availability .alert::before{
        left:14px;top:14px;
        width:20px;height:20px;
    }
}

/* ════════════════════════════════════════════════════════════════════
   PERSONALIZACIÓN — FRONTEND (Pau req v6 2026-04-30)
   Bloque .rp-pers-frontend que aparece en la ficha de producto entre
   el precio y el botón añadir al carrito. 1 campo = mitad de ancho;
   2 campos = lado a lado. En mobile siempre en columna.
   ════════════════════════════════════════════════════════════════════ */
.rp-pers-frontend {
    margin: 14px 0;
    padding: 0;
}
.rp-pers-frontend-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}
.rp-pers-frontend-row.rp-pers-single {
    grid-template-columns: 1fr 1fr;
}
.rp-pers-frontend-row.rp-pers-single .rp-pers-frontend-field {
    grid-column: 1 / 2;
}
.rp-pers-frontend-row.rp-pers-single::after {
    content: '';
    grid-column: 2 / 3;
}
.rp-pers-frontend-field {
    display: flex; flex-direction: column; gap: 4px;
    min-width: 0;
    align-items: stretch;
    text-align: left;
}
.rp-pers-frontend-field label.rp-pers-frontend-label,
.rp-pers-frontend-field > label:first-of-type {
    font-size: 11px; font-weight: 700; color: var(--rp-g700, #334155);
    text-transform: uppercase; letter-spacing: .5px;
    font-family: 'Montserrat', sans-serif;
    margin: 0;
    text-align: left !important;
    align-self: flex-start;
    width: auto;
}
.rp-pers-required-mark {
    color: #EF4444;
    font-weight: 700;
    margin-left: 2px;
}
.rp-pers-frontend-skip {
    display: flex !important;
    align-items: center;
    gap: 6px;
    margin-top: 2px !important;
    padding: 2px 0;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: var(--rp-g500, #64748B) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    cursor: pointer;
    user-select: none;
}
.rp-pers-frontend-skip input[type=checkbox] {
    width: 14px; height: 14px;
    accent-color: var(--rp-primary, #2563EB);
    margin: 0;
    cursor: pointer;
}
.rp-pers-frontend-skip:hover {
    color: var(--rp-g700, #334155) !important;
}
.rp-pers-frontend-field.is-skipped input.rp-pers-frontend-input {
    background: var(--rp-g100, #F1F5F9);
    color: var(--rp-g400, #94A3B8);
    pointer-events: none;
}
.rp-pers-frontend-field.is-skipped .rp-pers-frontend-counter {
    opacity: .4;
}
.rp-pers-frontend-field input.rp-pers-frontend-input {
    height: 48px;
    border: 1.5px solid var(--rp-g300, #CBD5E1);
    border-radius: 12px;
    padding: 0 14px;
    font-size: 15px;
    font-family: 'DM Sans', sans-serif;
    color: var(--rp-dark, #0F172A);
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
    width: 100%;
    box-sizing: border-box;
}
.rp-pers-frontend-field input.rp-pers-frontend-input:focus {
    outline: none;
    border-color: var(--rp-primary, #2563EB);
    box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.rp-pers-frontend-field input.rp-pers-frontend-input::placeholder {
    color: var(--rp-g400, #94A3B8);
}
.rp-pers-frontend-counter {
    font-size: 11px;
    color: var(--rp-g500, #64748B);
    text-align: right;
    font-family: 'DM Sans', sans-serif;
    font-variant-numeric: tabular-nums;
    margin: 0;
}
.rp-pers-frontend-counter.is-full {
    color: var(--rp-warning, #F59E0B);
    font-weight: 600;
}

/* Pau req 2026-04-30: en móvil, 2 campos siguen lado a lado (1/1), no apilados.
   Solo el caso 1 campo único pasa a full-width (no tiene sentido medio campo solo). */
@media (max-width: 600px) {
    .rp-pers-frontend-row.rp-pers-single {
        grid-template-columns: 1fr !important;
    }
    .rp-pers-frontend-row.rp-pers-single::after { display: none; }
    .rp-pers-frontend-row.rp-pers-single .rp-pers-frontend-field {
        grid-column: 1 / -1;
    }
    /* Reducir gap y padding del input para que en pantallas estrechas
       (~390px iPhone) ambos campos quepan cómodamente. */
    .rp-pers-frontend-row {
        gap: 8px;
    }
    .rp-pers-frontend-field input.rp-pers-frontend-input {
        padding: 0 12px;
        font-size: 14px;
    }
}


/* ════════════════════════════════════════════════════════════════════
   B2B PROSPECT PAGES — /laboral, /deportivo, /trabaja-con-nosotros
   v1.0 2026-04-30 — Mobile First
   ════════════════════════════════════════════════════════════════════ */

/* Base shared between the 3 pages */
.rp-page.rp-cms-22,
.rp-page.rp-cms-23,
.rp-page.rp-cms-24{
    background:#fff;
}
.rp-bp-section{
    padding:40px 20px;
    max-width:1280px;
    margin:0 auto;
}
.rp-bp-section--alt{
    background:linear-gradient(180deg,var(--rp-sky-vlight) 0%,#fff 100%);
    max-width:none;
    padding-left:20px;padding-right:20px;
}
.rp-bp-section--alt > .rp-bp-inner{max-width:1280px;margin:0 auto}
.rp-bp-section--dark{
    background:var(--rp-dark);
    color:#fff;
    max-width:none;
    padding-left:20px;padding-right:20px;
}
.rp-bp-section--dark h2,
.rp-bp-section--dark h3,
.rp-bp-section--dark h4{color:#fff}
.rp-bp-section--dark > .rp-bp-inner{max-width:1280px;margin:0 auto}
.rp-bp-eyebrow{
    display:inline-block;
    font-family:'Montserrat',sans-serif;
    font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
    color:var(--rp-primary);
    background:var(--rp-primary-bg);
    border:1px solid var(--rp-primary-soft);
    border-radius:9999px;
    padding:6px 14px;
    margin-bottom:14px;
}
.rp-bp-eyebrow--accent{color:var(--rp-accent);background:#FFF7ED;border-color:#FED7AA}
.rp-bp-eyebrow--white{color:#fff;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2)}
.rp-bp-h1{
    font-family:'Montserrat',sans-serif;
    font-size:30px;font-weight:800;line-height:1.15;
    color:var(--rp-dark);
    letter-spacing:-.02em;
    margin:0 0 14px;
}
.rp-bp-h1 .rp-grad{
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-secondary) 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
}
.rp-bp-h2{
    font-family:'Montserrat',sans-serif;
    font-size:24px;font-weight:800;line-height:1.2;
    color:var(--rp-dark);
    letter-spacing:-.015em;
    margin:0 0 10px;
    text-align:center;
}
.rp-bp-section--dark .rp-bp-h2{color:#fff}
.rp-bp-sub{
    font-family:'DM Sans',sans-serif;
    font-size:15px;line-height:1.6;
    color:var(--rp-g500);
    margin:0 auto 28px;
    max-width:680px;
    text-align:center;
}
.rp-bp-section--dark .rp-bp-sub{color:rgba(255,255,255,.7)}

/* HERO shared (gradient-blue) */
.rp-bp-hero{
    background:linear-gradient(180deg,#E0F2FE 0%,#F0F9FF 40%,#fff 100%);
    padding:48px 20px 40px;
    position:relative;overflow:hidden;
}
.rp-bp-hero::before{
    content:'';position:absolute;inset:0;
    background-image:
        radial-gradient(ellipse 600px 360px at 30% 20%,rgba(96,165,250,.22) 0%,transparent 60%),
        radial-gradient(ellipse 500px 300px at 80% 80%,rgba(248,152,46,.12) 0%,transparent 60%);
    pointer-events:none;
}
.rp-bp-hero-in{
    max-width:1280px;margin:0 auto;
    display:grid;grid-template-columns:1fr;gap:32px;
    position:relative;z-index:1;
    align-items:center;
}
.rp-bp-hero-tx{text-align:center}
.rp-bp-hero-tx .rp-bp-h1{font-size:32px}
.rp-bp-hero-tx .rp-bp-lede{
    font-size:15px;color:var(--rp-g500);line-height:1.6;
    margin:0 0 24px;
}
.rp-bp-hero-cta{
    display:flex;flex-direction:column;gap:10px;
    align-items:stretch;
}
.rp-bp-hero-cta .rp-btn{width:100%;justify-content:center}
.rp-bp-hero-art{
    display:flex;align-items:center;justify-content:center;
    padding:20px 0;
}
.rp-bp-hero-art-card{
    width:100%;max-width:420px;
    aspect-ratio:1;
    background:#fff;border:1px solid var(--rp-g200);border-radius:28px;
    box-shadow:0 30px 80px -20px rgba(15,23,42,.18),0 8px 30px -8px rgba(37,99,235,.12);
    display:flex;align-items:center;justify-content:center;
    position:relative;overflow:hidden;
}
.rp-bp-hero-art-card::before{
    content:'';position:absolute;inset:0;
    background:linear-gradient(135deg,rgba(37,99,235,.06),rgba(248,152,46,.06));
}
.rp-bp-hero-art-card svg{
    width:140px;height:140px;
    color:var(--rp-primary);
    stroke-width:1.4;
    position:relative;z-index:1;
}
.rp-deportivo .rp-bp-hero-art-card svg{color:var(--rp-accent)}

/* SECTORES grid */
.rp-bp-sectors{
    display:grid;grid-template-columns:1fr;gap:14px;
}
.rp-bp-sector-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:16px;
    padding:24px 20px;
    display:flex;flex-direction:column;align-items:flex-start;gap:12px;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.rp-bp-sector-card:hover{
    transform:translateY(-2px);
    box-shadow:var(--rp-shadow-md);
    border-color:var(--rp-primary-soft);
}
.rp-bp-sector-ico{
    width:48px;height:48px;border-radius:12px;
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-primary-dark) 100%);
    color:#fff;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 8px 16px -4px rgba(37,99,235,.35);
}
.rp-deportivo .rp-bp-sector-ico{
    background:linear-gradient(135deg,var(--rp-accent) 0%,var(--rp-accent-dark) 100%);
    box-shadow:0 8px 16px -4px rgba(248,152,46,.35);
}
.rp-bp-sector-ico svg{width:24px;height:24px;stroke-width:1.6}
.rp-bp-sector-card h4{
    font-family:'Montserrat',sans-serif;font-size:16px;font-weight:700;
    color:var(--rp-dark);margin:0;
}
.rp-bp-sector-card p{
    font-family:'DM Sans',sans-serif;font-size:13.5px;
    color:var(--rp-g500);line-height:1.55;margin:0;
}

/* PRODUCTS grid */
.rp-bp-products{
    display:grid;grid-template-columns:repeat(2,1fr);gap:10px;
}
.rp-bp-prod-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:14px;
    padding:18px 12px;text-align:center;
    transition:transform .2s ease,box-shadow .2s ease;
}
.rp-bp-prod-card:hover{transform:translateY(-2px);box-shadow:var(--rp-shadow-sm)}
.rp-bp-prod-ico{
    width:40px;height:40px;border-radius:10px;
    background:var(--rp-primary-bg);color:var(--rp-primary);
    display:inline-flex;align-items:center;justify-content:center;
    margin-bottom:8px;
}
.rp-deportivo .rp-bp-prod-ico{background:#FFF7ED;color:var(--rp-accent)}
.rp-bp-prod-ico svg{width:20px;height:20px;stroke-width:1.7}
.rp-bp-prod-card span{
    font-family:'Montserrat',sans-serif;font-size:12.5px;font-weight:600;
    color:var(--rp-g700);
}

/* CHARTS */
.rp-bp-charts{
    display:grid;grid-template-columns:1fr;gap:18px;
}
.rp-bp-chart-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:18px;
    padding:22px 18px;
}
.rp-bp-chart-card h4{
    font-family:'Montserrat',sans-serif;font-size:15px;font-weight:700;
    color:var(--rp-dark);margin:0 0 4px;
}
.rp-bp-chart-card p.rp-bp-chart-sub{
    font-size:12.5px;color:var(--rp-g500);margin:0 0 14px;
}
.rp-bp-chart{min-height:220px}

/* TESTIMONIALS */
.rp-bp-testimonials{
    display:grid;grid-template-columns:1fr;gap:14px;
}
.rp-bp-testi-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:18px;
    padding:24px 20px;
    box-shadow:var(--rp-shadow-sm);
}
.rp-bp-testi-quote{
    font-family:'DM Sans',sans-serif;font-size:14.5px;line-height:1.6;
    color:var(--rp-g700);margin:0 0 16px;font-style:italic;
}
.rp-bp-testi-quote::before{content:'"';color:var(--rp-primary);font-size:32px;line-height:0;margin-right:4px;font-style:normal}
.rp-bp-testi-meta{display:flex;align-items:center;gap:12px}
.rp-bp-testi-avatar{
    width:42px;height:42px;border-radius:9999px;
    background:linear-gradient(135deg,var(--rp-primary),var(--rp-primary-dark));
    color:#fff;display:flex;align-items:center;justify-content:center;
    font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;
    flex-shrink:0;
}
.rp-deportivo .rp-bp-testi-avatar{background:linear-gradient(135deg,var(--rp-accent),var(--rp-accent-dark))}
.rp-bp-testi-name{
    font-family:'Montserrat',sans-serif;font-size:13.5px;font-weight:700;
    color:var(--rp-dark);
}
.rp-bp-testi-role{
    font-size:12.5px;color:var(--rp-g500);
}

/* PROCESS STEPS */
.rp-bp-steps{
    display:grid;grid-template-columns:1fr;gap:18px;
    counter-reset:step;
}
.rp-bp-step-card{
    background:#fff;border:1px solid var(--rp-g200);border-radius:18px;
    padding:26px 22px;
    position:relative;
    counter-increment:step;
}
.rp-bp-step-card::before{
    content:counter(step,decimal-leading-zero);
    position:absolute;top:-14px;left:22px;
    background:var(--rp-primary);color:#fff;
    font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;
    padding:6px 12px;border-radius:9999px;
    box-shadow:0 6px 14px -4px rgba(37,99,235,.5);
}
.rp-deportivo .rp-bp-step-card::before{background:var(--rp-accent);box-shadow:0 6px 14px -4px rgba(248,152,46,.5)}
.rp-bp-step-ico{
    width:48px;height:48px;border-radius:12px;
    background:var(--rp-primary-bg);color:var(--rp-primary);
    display:inline-flex;align-items:center;justify-content:center;
    margin-bottom:14px;
}
.rp-deportivo .rp-bp-step-ico{background:#FFF7ED;color:var(--rp-accent)}
.rp-bp-step-ico svg{width:24px;height:24px;stroke-width:1.6}
.rp-bp-step-card h4{
    font-family:'Montserrat',sans-serif;font-size:16px;font-weight:700;
    color:var(--rp-dark);margin:0 0 6px;
}
.rp-bp-step-card p{
    font-family:'DM Sans',sans-serif;font-size:13.5px;line-height:1.55;
    color:var(--rp-g500);margin:0;
}

/* FINAL CTA */
.rp-bp-cta-final{
    background:linear-gradient(135deg,var(--rp-primary) 0%,var(--rp-primary-dark) 100%);
    color:#fff;
    border-radius:24px;
    padding:36px 24px;
    text-align:center;
    box-shadow:var(--rp-shadow-xl);
    margin:8px 0;
}
.rp-deportivo .rp-bp-cta-final{
    background:linear-gradient(135deg,var(--rp-dark) 0%,#1F2937 100%);
}
.rp-bp-cta-final h2{font-family:'Montserrat',sans-serif;font-size:24px;font-weight:800;margin:0 0 10px;color:#fff}
.rp-bp-cta-final p{font-size:14.5px;margin:0 0 20px;opacity:.85;line-height:1.55}
.rp-bp-cta-final .rp-btn{display:inline-flex;background:#fff;color:var(--rp-primary)}
.rp-deportivo .rp-bp-cta-final .rp-btn{color:var(--rp-dark)}
.rp-bp-cta-final .rp-btn:hover{background:#F8FAFC}

/* Sayroh-specific badge */
.rp-bp-sayroh-badge{
    display:inline-flex;align-items:center;gap:8px;
    background:linear-gradient(135deg,var(--rp-dark) 0%,#1F2937 100%);
    color:#fff;
    padding:8px 16px;border-radius:9999px;
    font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;
    letter-spacing:.5px;text-transform:uppercase;
    margin-bottom:14px;
    box-shadow:0 8px 20px -6px rgba(15,23,42,.4);
}
.rp-bp-sayroh-badge .rp-bp-sayroh-mark{
    background:var(--rp-accent);color:#fff;
    padding:2px 8px;border-radius:6px;
    font-weight:800;letter-spacing:1px;
}

/* TRABAJA tabs */
.rp-bp-tabs{
    display:flex;flex-direction:column;gap:8px;
    background:#fff;border:1px solid var(--rp-g200);border-radius:14px;
    padding:8px;margin-bottom:24px;
    box-shadow:var(--rp-shadow-sm);
}
.rp-bp-tab{
    flex:1;
    background:transparent;border:none;
    padding:12px 14px;border-radius:10px;
    font-family:'Montserrat',sans-serif;font-size:13.5px;font-weight:600;
    color:var(--rp-g500);
    cursor:pointer;
    display:flex;align-items:center;justify-content:center;gap:8px;
    transition:all .2s ease;
}
.rp-bp-tab:hover{background:var(--rp-g50);color:var(--rp-g700)}
.rp-bp-tab.is-active{
    background:var(--rp-primary);color:#fff;
    box-shadow:0 6px 14px -4px rgba(37,99,235,.4);
}
.rp-bp-tab svg{width:18px;height:18px;stroke-width:1.7}
.rp-bp-tab-panel{display:none}
.rp-bp-tab-panel.is-active{display:block;animation:rpFadeIn .25s ease}
@keyframes rpFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Stat boxes inside tabs */
.rp-bp-stats-grid{
    display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:18px;
}
.rp-bp-stat-box{
    background:#fff;border:1px solid var(--rp-g200);border-radius:14px;
    padding:18px 14px;text-align:center;
}
.rp-bp-stat-num{
    font-family:'Montserrat',sans-serif;font-size:24px;font-weight:800;
    color:var(--rp-primary);
    line-height:1;margin-bottom:4px;
}
.rp-bp-stat-label{
    font-size:11.5px;color:var(--rp-g500);
    text-transform:uppercase;letter-spacing:.5px;font-weight:600;
}

/* Logos grid */
.rp-bp-logos{
    display:grid;grid-template-columns:repeat(2,1fr);gap:10px;
}
.rp-bp-logo-card{
    aspect-ratio:2/1;
    background:#fff;border:1px solid var(--rp-g200);border-radius:12px;
    display:flex;align-items:center;justify-content:center;
    padding:14px;
    color:var(--rp-g400);
    font-family:'Montserrat',sans-serif;font-size:11.5px;font-weight:600;
    text-transform:uppercase;letter-spacing:.5px;
}

/* Contact form */
.rp-bp-form-wrap{
    background:#fff;border:1px solid var(--rp-g200);border-radius:24px;
    padding:32px 22px;
    box-shadow:var(--rp-shadow-lg);
    max-width:720px;margin:0 auto;
}
.rp-bp-form-row{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:14px}
.rp-bp-form-field label{
    display:block;
    font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;
    color:var(--rp-g700);margin-bottom:6px;
}
.rp-bp-form-field input,
.rp-bp-form-field select,
.rp-bp-form-field textarea{
    width:100%;
    height:44px;
    padding:0 14px;
    border:1.5px solid var(--rp-g300);
    border-radius:8px;
    background:#fff;
    font-family:'DM Sans',sans-serif;font-size:14px;
    color:var(--rp-g700);
    transition:border-color .15s ease,box-shadow .15s ease;
}
.rp-bp-form-field textarea{height:auto;min-height:120px;padding:12px 14px;resize:vertical;font-family:'DM Sans',sans-serif}
.rp-bp-form-field input:focus,
.rp-bp-form-field select:focus,
.rp-bp-form-field textarea:focus{
    outline:none;
    border-color:var(--rp-primary);
    box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.rp-bp-form-submit{margin-top:6px}
.rp-bp-form-submit .rp-btn{width:100%;justify-content:center}

/* TABLET (≥601px) */
@media (min-width: 601px){
    .rp-bp-section{padding:60px 32px}
    .rp-bp-section--alt,
    .rp-bp-section--dark{padding-left:32px;padding-right:32px}
    .rp-bp-hero{padding:64px 32px 56px}
    .rp-bp-h1{font-size:40px}
    .rp-bp-hero-tx .rp-bp-h1{font-size:42px}
    .rp-bp-h2{font-size:30px}
    .rp-bp-sub{font-size:16px}
    .rp-bp-sectors{grid-template-columns:repeat(2,1fr);gap:16px}
    .rp-bp-products{grid-template-columns:repeat(4,1fr);gap:14px}
    .rp-bp-charts{grid-template-columns:repeat(3,1fr);gap:20px}
    .rp-bp-testimonials{grid-template-columns:repeat(3,1fr);gap:18px}
    .rp-bp-steps{grid-template-columns:repeat(3,1fr);gap:20px}
    .rp-bp-tabs{flex-direction:row}
    .rp-bp-stats-grid{grid-template-columns:repeat(4,1fr);gap:14px}
    .rp-bp-stat-num{font-size:30px}
    .rp-bp-logos{grid-template-columns:repeat(4,1fr);gap:14px}
    .rp-bp-form-wrap{padding:40px 32px}
    .rp-bp-form-row{grid-template-columns:1fr 1fr;gap:16px}
    .rp-bp-form-row--full{grid-template-columns:1fr}
    .rp-bp-cta-final{padding:48px 36px}
    .rp-bp-cta-final h2{font-size:30px}
    .rp-bp-hero-cta{flex-direction:row;justify-content:center}
    .rp-bp-hero-cta .rp-btn{width:auto}
}

/* DESKTOP (≥1024px) */
@media (min-width: 1024px){
    .rp-bp-section{padding:80px 40px}
    .rp-bp-section--alt,
    .rp-bp-section--dark{padding-left:40px;padding-right:40px}
    .rp-bp-hero{padding:80px 40px 70px}
    .rp-bp-h1{font-size:48px}
    .rp-bp-hero-tx{text-align:left}
    .rp-bp-hero-tx .rp-bp-h1{font-size:52px}
    .rp-bp-h2{font-size:34px}
    .rp-bp-hero-in{grid-template-columns:1.1fr .9fr;gap:48px}
    .rp-bp-hero-cta{justify-content:flex-start}
    .rp-bp-sectors{grid-template-columns:repeat(3,1fr);gap:20px}
    .rp-bp-sector-card{padding:28px 24px}
    .rp-bp-products{grid-template-columns:repeat(4,1fr);gap:16px}
    .rp-bp-charts{gap:24px}
    .rp-bp-stats-grid{gap:18px}
    .rp-bp-logos{grid-template-columns:repeat(6,1fr);gap:16px}
    .rp-bp-cta-final{padding:60px 48px}
    .rp-bp-cta-final h2{font-size:36px}
    .rp-bp-form-wrap{padding:48px 44px}
}

/* PRINT/REDUCED motion */
@media (prefers-reduced-motion: reduce){
    .rp-bp-sector-card,.rp-bp-prod-card,.rp-bp-tab,.rp-bp-tab-panel{transition:none;animation:none}
}

/* ====================================================================
   CMS personalized panel — info personalizada de envíos para clientes
   logueados con grupo de colegio (CMS 11 envíos, CMS 15 para colegios)
   ==================================================================== */
.rp-cms-personalized{background:linear-gradient(135deg,#EFF6FF 0%,#FFFFFF 60%,#FFF7ED 100%);border:1px solid #DBEAFE;border-radius:20px;padding:24px 20px;margin:24px 0 32px;position:relative;overflow:hidden}
@media (min-width:768px){.rp-cms-personalized{padding:32px 36px;margin:32px 0 48px;border-radius:24px}}
.rp-cms-personalized::before{content:'';position:absolute;top:-120px;right:-120px;width:280px;height:280px;background:radial-gradient(circle,rgba(37,99,235,.12),transparent 60%);pointer-events:none;z-index:0}
.rp-cms-personalized > *{position:relative;z-index:1}
.rp-cms-personalized-head{margin-bottom:18px}
.rp-cms-personalized-eyebrow{display:inline-flex;padding:4px 11px;background:var(--rp-primary);color:#fff;border-radius:9999px;font-family:'Montserrat',sans-serif;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}
.rp-cms-personalized-title{font-family:'Montserrat',sans-serif;font-size:22px;font-weight:800;color:var(--rp-dark);line-height:1.2;letter-spacing:-.02em;margin:0}
@media (min-width:768px){.rp-cms-personalized-title{font-size:28px}}
.rp-cms-personalized-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:768px){.rp-cms-personalized-grid--multi{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.rp-cms-personalized-grid--multi{grid-template-columns:repeat(3,1fr)}}
.rp-cms-personalized-card{background:#fff;border:1.5px solid var(--rp-fund-color,#DBEAFE);border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;gap:14px;transition:transform .2s,box-shadow .2s}
.rp-cms-personalized-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px -8px rgba(15,23,42,.10)}
.rp-cms-personalized-card-head{border-bottom:1px dashed #F1F5F9;padding-bottom:12px}
.rp-cms-personalized-fundacion{display:inline-block;font-family:'Montserrat',sans-serif;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--rp-fund-color,var(--rp-primary));margin-bottom:6px}
.rp-cms-personalized-school{font-family:'Montserrat',sans-serif;font-size:17px;font-weight:800;color:var(--rp-dark);margin:0 0 4px;letter-spacing:-.015em}
.rp-cms-personalized-city{font-size:12.5px;color:var(--rp-g500);font-family:'DM Sans',sans-serif}
.rp-cms-personalized-delivery{display:flex;gap:12px;align-items:flex-start;background:#F8FAFC;padding:12px 14px;border-radius:12px}
.rp-cms-personalized-delivery-ico{width:36px;height:36px;border-radius:10px;background:var(--rp-fund-color,var(--rp-primary));color:#fff;display:grid;place-items:center;flex-shrink:0}
.rp-cms-personalized-delivery-body{display:flex;flex-direction:column;gap:2px}
.rp-cms-personalized-delivery-label{font-family:'Montserrat',sans-serif;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--rp-g500)}
.rp-cms-personalized-delivery-date{font-family:'Montserrat',sans-serif;font-size:15px;font-weight:700;color:var(--rp-dark);letter-spacing:-.01em;text-transform:capitalize}
.rp-cms-personalized-delivery-meta{font-size:12px;color:var(--rp-g500);font-family:'DM Sans',sans-serif}
.rp-cms-personalized-shipping{display:flex;gap:10px;align-items:center;padding:10px 14px;background:#FFF7ED;border-radius:10px;border:1px solid #FED7AA}
.rp-cms-personalized-shipping-ico{width:28px;height:28px;border-radius:8px;background:var(--rp-accent);color:#fff;display:grid;place-items:center;flex-shrink:0}
.rp-cms-personalized-shipping-label{display:block;font-size:11.5px;color:var(--rp-g700);font-family:'DM Sans',sans-serif;font-weight:500}
.rp-cms-personalized-shipping-amount{font-family:'Montserrat',sans-serif;font-size:14px;font-weight:800;color:var(--rp-dark)}
.rp-cms-personalized-foot{margin:18px 0 0;text-align:center;font-size:13px;color:var(--rp-g500);font-family:'DM Sans',sans-serif}
.rp-cms-personalized-foot a{color:var(--rp-primary);font-weight:700}
.rp-cms-personalized-foot a:hover{text-decoration:underline}

/* ====================================================================
   CHECKOUT v2 — Mensaje de error inline + asterisco required
   Añadido 2026-05-01 para validación cliente-side de "Continuar al envío"
   ==================================================================== */
.rp-co-v2__req{color:#EF4444;font-weight:700;margin-left:2px}
.rp-co-v2__alert{display:inline-flex;align-items:flex-start;gap:8px;padding:10px 14px;margin:14px 0 0;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:13px;line-height:1.5;font-weight:500}
.rp-co-v2__alert--err{background:#FEF2F2;border:1px solid #FECACA;color:#B91C1C}
.rp-co-v2__alert--err svg{flex-shrink:0;margin-top:1px;color:#DC2626}

/* ════════════════════════════════════════════════════════════════════════════
   MEGAMENU v3 (Pau req 2026-05-03) — paneles flotantes premium estilo SaaS
   Refactor completo basado en /Users/pau/Downloads/Megamenu v3.html
   Clases prefixadas .rp-mm-* (mega-menu) para no chocar con el viejo CSS
   .rp-mega-* que queda huérfano (sin HTML que matchee). Mobile-first:
   solo se renderiza ≥1024px; en mobile sigue funcionando el menú hamburguesa.
   ════════════════════════════════════════════════════════════════════════════ */

.rp-mm-nav{display:none;align-items:center;gap:2px;flex:1;justify-content:center}
@media(min-width:1024px){.rp-mm-nav{display:flex}}

.rp-mm-item{position:relative}
.rp-mm-trigger{
    display:inline-flex;align-items:center;gap:5px;
    padding:10px 14px;border:none;background:transparent;cursor:pointer;
    border-radius:8px;
    font-family:'Montserrat',sans-serif;font-weight:500;font-size:14px;
    color:var(--rp-g700,#334155);
    text-decoration:none;
    transition:background-color 150ms ease,color 150ms ease;
}
.rp-mm-trigger:hover,
.rp-mm-trigger.is-open,
.rp-mm-item:hover .rp-mm-trigger,
.rp-mm-item.is-open .rp-mm-trigger,
.rp-mm-item:focus-within .rp-mm-trigger{
    background:var(--rp-g100,#F1F5F9);color:var(--rp-dark,#0F172A);
}
.rp-mm-trigger--flat{display:inline-flex;align-items:center}
.rp-mm-chev{width:14px;height:14px;color:var(--rp-g400,#94A3B8);transition:transform .2s ease}
.rp-mm-item:hover .rp-mm-chev,
.rp-mm-item.is-open .rp-mm-chev{transform:rotate(180deg)}

/* Overlay backdrop oscuro */
.rp-mm-overlay-bd{
    position:fixed;left:0;right:0;top:80px;bottom:0;
    background:rgba(15,15,30,.18);
    opacity:0;pointer-events:none;
    transition:opacity .22s ease;
    z-index:90;display:none;
}
@media(min-width:1024px){
    .rp-mm-overlay-bd{display:block}
    .rp-mm-nav:has(.rp-mm-item:hover) ~ .rp-mm-overlay-bd,
    .rp-mm-nav:has(.rp-mm-item.is-open) ~ .rp-mm-overlay-bd,
    .rp-mm-nav:has(.rp-mm-item:focus-within) ~ .rp-mm-overlay-bd{opacity:1}
}

/* Panel flotante */
.rp-mm{
    position:absolute;top:calc(100% + 8px);
    background:#fff;border:1px solid var(--rp-g200,#E2E8F0);border-radius:16px;
    box-shadow:0 24px 60px -12px rgba(15,15,30,.18),0 4px 12px -4px rgba(15,15,30,.06);
    opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:opacity .18s ease,transform .18s ease,visibility .18s;
    z-index:95;overflow:hidden;
}
.rp-mm-item:hover .rp-mm,
.rp-mm-item.is-open .rp-mm,
.rp-mm-item:focus-within .rp-mm{opacity:1;visibility:visible;transform:translateY(0)}

/* ─── PRODUCTOS — 2 cols + featured a la derecha ─── */
.rp-mm-products{left:-200px;width:880px}
@media(max-width:1199px){.rp-mm-products{left:-100px;width:760px}}
.rp-mm-products-grid{display:grid;grid-template-columns:1.4fr 1fr}

.rp-mm-cols{padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.rp-mm-col h6{
    font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;
    text-transform:uppercase;letter-spacing:.08em;color:var(--rp-g400,#94A3B8);
    margin:0 0 14px;padding:0 8px;
}
.rp-mm-link{
    display:flex;align-items:flex-start;gap:12px;
    padding:10px 8px;border-radius:8px;
    text-decoration:none;color:inherit;
    transition:background-color .15s ease;
}
.rp-mm-link:hover{background:var(--rp-g50,#F8FAFC);text-decoration:none;color:inherit}
.rp-mm-link .rp-mm-ic{
    flex-shrink:0;width:32px;height:32px;border-radius:8px;
    display:grid;place-items:center;color:var(--rp-g700,#334155);
    transition:transform .15s ease;
}
.rp-mm-link:hover .rp-mm-ic{transform:scale(1.05)}
.rp-mm-link--orange .rp-mm-ic{background:#FFF7ED;color:var(--rp-accent,#f8982e)}
.rp-mm-link--blue .rp-mm-ic{background:var(--rp-primary-bg,#EFF6FF);color:var(--rp-primary,#2563EB)}
.rp-mm-link--electric .rp-mm-ic{background:#ECE9FF;color:#3a1fea}
.rp-mm-link--dark .rp-mm-ic{background:var(--rp-dark,#0F172A);color:#fff}
.rp-mm-link .rp-mm-t{
    font-family:'Montserrat',sans-serif;font-size:13.5px;font-weight:700;
    color:var(--rp-dark,#0F172A);
    display:flex;align-items:center;gap:6px;line-height:1.2;
}
.rp-mm-link .rp-mm-s{
    font-family:'DM Sans',sans-serif;font-size:12.5px;
    color:var(--rp-g500,#64748B);line-height:1.45;margin-top:3px;
}
.rp-mm-badge{
    display:inline-flex;font-family:'Montserrat',sans-serif;
    font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
    padding:1px 6px;border-radius:9999px;
}
.rp-mm-badge--new{background:var(--rp-accent,#f8982e);color:#fff}

/* Featured card */
.rp-mm-feature{
    background:var(--rp-g50,#F8FAFC);padding:24px;
    display:flex;flex-direction:column;
    border-left:1px solid var(--rp-g100,#F1F5F9);
}
.rp-mm-feature h6{
    font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;
    text-transform:uppercase;letter-spacing:.08em;color:var(--rp-g400,#94A3B8);
    margin:0 0 14px;
}
.rp-mm-card{
    flex:1;background:#fff;border:1px solid var(--rp-g200,#E2E8F0);border-radius:12px;
    padding:16px;display:flex;flex-direction:column;min-height:200px;
    text-decoration:none;color:inherit;
    transition:border-color .15s ease,box-shadow .2s ease;
}
.rp-mm-card:hover{
    border-color:var(--rp-primary,#2563EB);
    box-shadow:0 4px 14px -4px rgba(37,99,235,.18);
    text-decoration:none;color:inherit;
}
.rp-mm-card-label{
    display:inline-flex;align-self:flex-start;
    font-family:'Montserrat',sans-serif;font-size:10.5px;font-weight:700;
    text-transform:uppercase;letter-spacing:.04em;
    background:#ECE9FF;color:#3a1fea;
    padding:3px 9px;border-radius:9999px;margin-bottom:12px;
}
.rp-mm-card h4{
    font-family:'Montserrat',sans-serif;font-size:16px;font-weight:800;
    color:var(--rp-dark,#0F172A);letter-spacing:-.015em;
    margin:0 0 6px;line-height:1.2;
}
.rp-mm-card p{
    font-family:'DM Sans',sans-serif;font-size:12.5px;line-height:1.45;
    color:var(--rp-g500,#64748B);margin:0 0 12px;
}
.rp-mm-card-vis{
    margin-top:auto;
    background:linear-gradient(135deg,#ECE9FF 0%,#fff 100%);
    border:1px solid var(--rp-g100,#F1F5F9);border-radius:8px;
    padding:14px;display:flex;align-items:center;justify-content:center;height:80px;
}
.rp-mm-card-num{
    font-family:'Montserrat',sans-serif;font-weight:900;font-size:48px;
    color:#3a1fea;letter-spacing:-.06em;line-height:1;
}
.rp-mm-card-arrow{
    display:inline-flex;align-items:center;gap:5px;
    font-family:'Montserrat',sans-serif;font-size:12.5px;font-weight:600;
    color:#3a1fea;margin-top:12px;
}

/* ─── SOLUCIONES — sectores 2x3 ─── */
.rp-mm-solutions{left:-180px;width:760px}
.rp-mm-sectors{padding:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.rp-mm-sector{
    display:grid;grid-template-columns:36px 1fr;gap:12px;
    padding:14px;border-radius:10px;
    text-decoration:none;color:inherit;
    transition:background-color .15s ease;
}
.rp-mm-sector:hover{background:var(--rp-g50,#F8FAFC);text-decoration:none;color:inherit}
.rp-mm-sector .rp-mm-ic{
    width:36px;height:36px;border-radius:9px;
    display:grid;place-items:center;color:#fff;
}
.rp-mm-sector--s1 .rp-mm-ic{background:#FFF7ED;color:var(--rp-accent,#f8982e)}
.rp-mm-sector--s2 .rp-mm-ic{background:var(--rp-primary-bg,#EFF6FF);color:var(--rp-primary,#2563EB)}
.rp-mm-sector--s3 .rp-mm-ic{background:#ECE9FF;color:#3a1fea}
.rp-mm-sector--s4 .rp-mm-ic{background:#ECFEFF;color:#0891B2}
.rp-mm-sector--s5 .rp-mm-ic{background:#FEF3C7;color:#92400E}
.rp-mm-sector--s6 .rp-mm-ic{background:#FCE7F3;color:#9D174D}
.rp-mm-sector .rp-mm-t{
    font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;
    color:var(--rp-dark,#0F172A);line-height:1.2;
}
.rp-mm-sector .rp-mm-s{
    font-family:'DM Sans',sans-serif;font-size:12px;
    color:var(--rp-g500,#64748B);line-height:1.4;margin-top:2px;
}
.rp-mm-sector .rp-mm-stat{
    font-family:'Montserrat',sans-serif;font-size:10.5px;font-weight:700;
    color:var(--rp-g400,#94A3B8);letter-spacing:.04em;margin-top:6px;
}

/* ─── RECURSOS — 3x2 simple ─── */
.rp-mm-resources{left:-150px;width:560px}
.rp-mm-res-grid{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.rp-mm-res-grid .rp-mm-link{padding:12px 10px}

/* ─── Footer del panel ─── */
.rp-mm-foot{
    border-top:1px solid var(--rp-g100,#F1F5F9);
    background:var(--rp-g50,#F8FAFC);
    padding:14px 24px;
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    font-family:'DM Sans',sans-serif;font-size:12.5px;
}
.rp-mm-foot-l{
    color:var(--rp-g500,#64748B);
    display:flex;align-items:center;gap:8px;
}
.rp-mm-foot-l b{color:var(--rp-dark,#0F172A);font-weight:600}
.rp-mm-foot a{
    font-family:'Montserrat',sans-serif;font-size:12.5px;font-weight:600;
    color:var(--rp-dark,#0F172A);
    display:inline-flex;align-items:center;gap:5px;
    text-decoration:none;
}
.rp-mm-foot a:hover{color:var(--rp-primary,#2563EB);text-decoration:none}

/* Mobile: ocultar mega completamente */
@media(max-width:1023px){.rp-mm{display:none}}

/* ─────────────────────────────────────────────
   T15 (Pau req 2026-05-06): reducir paddings de
   secciones SOLO en desktop. Los bloques se veían
   con demasiado aire arriba/abajo. Mobile no se toca.
   ───────────────────────────────────────────── */
@media(min-width:1024px){
    .rp-hero .rp-hero-in{padding-top:48px}
    .rp-trust{padding:40px 0 48px}
    .rp-sect{padding:64px 24px}
    .rp-sect-head{margin-bottom:36px}
    .rp-proc-bg{padding:64px 24px 80px}
    .rp-stats{padding:64px 24px 80px}
    .rp-stats p.rp-sub{margin-bottom:36px}
    .rp-testi{padding:64px 24px}
    .rp-cta-cole{padding:64px 24px 48px}
}

/* ========================================================================
   CHAT — TIMESTAMP en cada burbuja + SYSTEM NOTICE en gris pequeño
   ======================================================================== */
.rp-chat__time{
    display:block;
    margin-top:4px;
    font-family:'DM Sans',system-ui,sans-serif;
    font-size:10px;
    line-height:1;
    letter-spacing:.2px;
    opacity:.55;
    user-select:none;
}
.rp-chat__msg--bot .rp-chat__time{ color:var(--rp-g500,#64748B); text-align:left }
.rp-chat__msg--user .rp-chat__time{ color:rgba(255,255,255,.85); text-align:right }
/* Agente: burbuja verde claro (#ECFDF5) con texto verde oscuro (#065F46).
   La hora debe usar el mismo verde oscuro para que se lea — antes era
   rgba(255,255,255,.85) (blanco sobre verde claro = invisible). */
.rp-chat__msg--from-agent .rp-chat__time{ color:rgba(6,95,70,.78); text-shadow:0 1px 1px rgba(255,255,255,.4) }

/* Aviso del sistema (no es del bot ni del agente) — gris pequeño centrado */
.rp-chat__sys-notice{
    display:block;
    margin:10px auto;
    max-width:80%;
    padding:8px 12px;
    background:var(--rp-g50,#F8FAFC);
    border:1px solid var(--rp-g100,#F1F5F9);
    border-radius:10px;
    font-family:'DM Sans',system-ui,sans-serif;
    font-size:11px;
    line-height:1.45;
    color:var(--rp-g500,#64748B);
    text-align:center;
}
