/* Inglés con Laura - Portal del alumno
   Brand Guide v2.0 "Clases de Inglés con Laura":
   Nunito para todo el texto, Dancing Script solo para claims cortos,
   rosa #E91E7B para acciones, verde #2D6A2E para titulares,
   fondos blanco / rosa claro, bordes redondeados en todo, mucho aire.
*/

:root {
    /* Paleta */
    --rosa-principal: #E91E7B;
    --rosa-hover: #D11A6E;
    --rosa-claro: #FCEEF5;
    --rosa-medio: #F8B4D0;
    --rosa-accent: #F06BA8;
    --verde-logo: #0D3B33;
    --verde-principal: #2D6A2E;
    --verde-hover: #245522;
    --verde-claro: #E8F5E9;
    --verde-medio: #4CAF50;
    --verde-check: #43A047;
    --blanco: #FFFFFF;
    --gris-claro: #F9F9F9;
    --gris-texto: #555555;
    --gris-oscuro: #333333;
    --linea: #ECECEC;

    /* Tipografía */
    --font-principal: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
    --font-script: 'Dancing Script', cursive;

    /* Sombras */
    --sombra-suave: 0 2px 12px rgba(233, 30, 123, 0.10);
    --sombra-media: 0 4px 20px rgba(233, 30, 123, 0.18);
    --sombra-card: 0 2px 16px rgba(0, 0, 0, 0.08);

    /* Bordes */
    --radio-sm: 8px;
    --radio-md: 12px;
    --radio-lg: 20px;
    --radio-xl: 30px;
    --radio-full: 9999px;

    /* Degradados */
    --grad-hero: linear-gradient(135deg, #FCEEF5 0%, #FFFFFF 50%, #E8F5E9 100%);
    --grad-rosa: linear-gradient(135deg, #E91E7B, #F06BA8);
    --grad-verde: linear-gradient(135deg, #2D6A2E, #4CAF50);
}

/* ============================================
   Base
   ============================================ */

body.icl-portal,
body.icl-login-page {
    margin: 0;
    font-family: var(--font-principal);
    background: var(--gris-claro);
    color: var(--gris-oscuro);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

body.icl-portal *,
body.icl-login-page * {
    box-sizing: border-box;
}

body.icl-portal a,
body.icl-login-page a {
    color: var(--verde-principal);
}

body.icl-portal :focus-visible,
body.icl-login-page :focus-visible {
    outline: 2px solid var(--rosa-principal);
    outline-offset: 3px;
}

.icl-link {
    color: var(--rosa-principal) !important;
    font-weight: 700;
    text-decoration: none;
}

.icl-link:hover {
    color: var(--rosa-hover) !important;
    text-decoration: underline;
}

/* ============================================
   Botones (Brand Guide: píldora, Nunito 800)
   ============================================ */

.icl-btn,
body.icl-portal .woocommerce .button,
body.icl-portal .woocommerce button.button,
body.icl-portal .woocommerce a.button,
body.icl-portal .woocommerce input.button,
body.icl-portal #place_order {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 32px;
    font-family: var(--font-principal);
    font-weight: 800;
    font-size: 1rem;
    line-height: 1.2;
    border: none;
    border-radius: var(--radio-full);
    cursor: pointer;
    transition: all .25s;
    text-decoration: none;
    text-align: center;
    background: var(--rosa-principal);
    color: var(--blanco) !important;
    box-shadow: var(--sombra-suave);
}

.icl-btn:hover,
body.icl-portal .woocommerce .button:hover,
body.icl-portal .woocommerce button.button:hover,
body.icl-portal .woocommerce a.button:hover,
body.icl-portal #place_order:hover {
    background: var(--rosa-hover);
    box-shadow: var(--sombra-media);
    transform: translateY(-2px);
    color: var(--blanco) !important;
}

.icl-btn:disabled {
    opacity: .7;
    cursor: wait;
    transform: none;
}

.icl-btn--block { width: 100%; }
.icl-btn--sm { padding: 9px 20px; font-size: .9rem; }

.icl-btn--verde { background: var(--verde-principal); box-shadow: none; }
.icl-btn--verde:hover { background: var(--verde-hover); box-shadow: none; }

.icl-btn--outline-rosa {
    background: transparent;
    color: var(--rosa-principal) !important;
    border: 2.5px solid var(--rosa-principal);
    box-shadow: none;
}
.icl-btn--outline-rosa:hover { background: var(--rosa-principal); color: var(--blanco) !important; }

.icl-btn--outline-verde {
    background: transparent;
    color: var(--verde-principal) !important;
    border: 2.5px solid var(--verde-principal);
    box-shadow: none;
}
.icl-btn--outline-verde:hover { background: var(--verde-principal); color: var(--blanco) !important; box-shadow: none; }

/* ============================================
   Lista con checks / badges de nivel
   ============================================ */

.icl-checks {
    list-style: none;
    padding: 0;
    margin: 0;
}

.icl-checks li {
    padding: 8px 0;
    font-size: 1rem;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--gris-oscuro);
    font-weight: 600;
}

.icl-check {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--verde-check);
    color: var(--blanco);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
    font-weight: 800;
    flex-shrink: 0;
}

.icl-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    font-weight: 900;
    font-size: .95rem;
    flex-shrink: 0;
    background: var(--rosa-claro);
    color: var(--rosa-principal);
    border: 3px solid var(--rosa-principal);
}

.icl-badge--a1, .icl-badge--a2, .icl-badge--b1 {
    background: var(--verde-claro);
    color: var(--verde-principal);
    border-color: var(--verde-principal);
}

.icl-badge--c1, .icl-badge--c2 {
    border-color: var(--rosa-accent);
}

.icl-pill {
    display: inline-flex;
    align-items: center;
    padding: 3px 12px;
    border-radius: var(--radio-full);
    font-size: .78rem;
    font-weight: 800;
    background: var(--rosa-claro);
    color: var(--rosa-principal);
}

.icl-pill--verde {
    background: var(--verde-claro);
    color: var(--verde-principal);
}

/* ============================================
   Alertas
   ============================================ */

.icl-alert {
    padding: 12px 16px;
    border-radius: var(--radio-md);
    font-size: .92rem;
    font-weight: 600;
    margin-bottom: 18px;
    border-left: 4px solid var(--rosa-principal);
    background: var(--rosa-claro);
    color: var(--rosa-hover);
}

.icl-alert--ok {
    border-left-color: var(--verde-check);
    background: var(--verde-claro);
    color: var(--verde-principal);
}

/* ============================================
   LOGIN (página de inicio)
   ============================================ */

.icl-login {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    min-height: 100vh;
}

.icl-login__hero {
    position: relative;
    overflow: hidden;
    background: var(--grad-hero);
    border-right: 4px solid var(--rosa-principal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(32px, 6vw, 80px);
}

.icl-login__hero::before,
.icl-login__hero::after {
    content: "";
    position: absolute;
    border-radius: var(--radio-full);
    background: var(--rosa-principal);
    opacity: .08;
    pointer-events: none;
}

.icl-login__hero::before { width: 340px; height: 170px; top: -50px; right: -90px; transform: rotate(-18deg); }
.icl-login__hero::after { width: 260px; height: 130px; bottom: 40px; left: -110px; background: var(--verde-medio); opacity: .10; }

.icl-login__hero-inner {
    position: relative;
    z-index: 1;
    max-width: 520px;
    width: 100%;
}

.icl-login__logo {
    display: block;
    width: 100%;
    max-width: 420px;
    height: auto;
}

.icl-login__logo--mobile { display: none; }

.icl-login__claim {
    font-family: var(--font-script);
    color: var(--rosa-accent);
    font-size: 1.6rem;
    margin: 6px 0 28px;
}

.icl-login__row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.icl-login__mascot {
    display: block;
    width: 170px;
    max-width: 38%;
    height: auto;
    flex-shrink: 0;
}

.icl-login__panel {
    background: var(--blanco);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: clamp(28px, 5vw, 64px) 20px;
}

.icl-login__card {
    width: 100%;
    max-width: 400px;
    margin: auto 0;
}

.icl-login__title {
    font-size: clamp(1.8rem, 3vw, 2.3rem);
    font-weight: 900;
    color: var(--verde-principal);
    margin: 0 0 6px;
    line-height: 1.15;
}

.icl-login__subtitle {
    color: var(--gris-texto);
    margin: 0 0 26px;
    font-size: 1rem;
}

.icl-login__help {
    margin-top: 24px;
    font-size: .88rem;
    color: var(--gris-texto);
    text-align: center;
}

.icl-login__footer {
    margin-top: 32px;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .5px;
    color: var(--gris-texto);
    text-align: center;
}

.icl-login__footer span,
.icl-footer__powered span {
    color: var(--rosa-principal);
}

/* Formulario */
.icl-form .icl-field {
    margin-bottom: 18px;
}

.icl-field label {
    display: block;
    font-size: .85rem;
    font-weight: 800;
    color: var(--gris-oscuro);
    margin-bottom: 7px;
}

.icl-field__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.icl-field__row .icl-link { font-size: .82rem; margin-bottom: 7px; }

.icl-field input,
body.icl-portal .woocommerce form .input-text,
body.icl-portal .woocommerce form select,
body.icl-portal .woocommerce form textarea {
    width: 100%;
    padding: 14px 18px;
    font-family: var(--font-principal);
    font-size: 1rem;
    font-weight: 600;
    color: var(--gris-oscuro);
    background: var(--blanco);
    border: 1.5px solid #E2E2E2;
    border-radius: var(--radio-md);
    outline: none;
    transition: border-color .2s, box-shadow .2s;
}

.icl-field input::placeholder { color: #9a9a9a; font-weight: 400; }

.icl-field input:hover,
body.icl-portal .woocommerce form .input-text:hover { border-color: var(--rosa-medio); }

.icl-field input:focus,
body.icl-portal .woocommerce form .input-text:focus,
body.icl-portal .woocommerce form select:focus {
    border-color: var(--rosa-principal);
    box-shadow: 0 0 0 4px rgba(233, 30, 123, .14);
}

.icl-password { position: relative; }
.icl-password input { padding-right: 50px; }

.icl-password__toggle {
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: var(--radio-full);
    background: transparent;
    color: var(--gris-texto);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.icl-password__toggle:hover,
.icl-password__toggle.is-on { color: var(--rosa-principal); background: var(--rosa-claro); }

.icl-remember {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 4px 0 22px;
    font-size: .92rem;
    font-weight: 600;
    color: var(--gris-texto);
    cursor: pointer;
}

.icl-remember input { position: absolute; opacity: 0; pointer-events: none; }

.icl-remember__mark {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid #D6D6D6;
    flex-shrink: 0;
    position: relative;
    transition: all .2s;
}

.icl-remember input:checked + .icl-remember__mark {
    background: var(--verde-check);
    border-color: var(--verde-check);
}

.icl-remember input:checked + .icl-remember__mark::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2.5px 2.5px 0;
    transform: rotate(45deg);
}

.icl-remember input:focus-visible + .icl-remember__mark {
    outline: 2px solid var(--rosa-principal);
    outline-offset: 2px;
}

@media (max-width: 860px) {
    .icl-login { grid-template-columns: 1fr; }
    .icl-login__hero { display: none; }
    .icl-login__panel { background: var(--grad-hero); min-height: 100vh; padding: 28px 16px; }
    .icl-login__card {
        background: var(--blanco);
        border-radius: var(--radio-lg);
        box-shadow: var(--sombra-card);
        padding: 28px 22px;
    }
    .icl-login__logo--mobile { display: block; max-width: 230px; margin: 0 auto 22px; }
    .icl-login__title { text-align: center; font-size: 1.7rem; }
    .icl-login__subtitle { text-align: center; }
}

/* ============================================
   CARCASA (Mi cuenta, pagar pedido)
   ============================================ */

.icl-topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, .94);
    -webkit-backdrop-filter: saturate(1.4) blur(10px);
    backdrop-filter: saturate(1.4) blur(10px);
    border-bottom: 3px solid var(--rosa-principal);
}

body.admin-bar .icl-topbar { top: 32px; }
@media (max-width: 782px) { body.admin-bar .icl-topbar { top: 0; position: relative; } }

.icl-topbar__inner {
    max-width: 1120px;
    margin: 0 auto;
    padding: 10px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.icl-topbar__brand img {
    display: block;
    height: 52px;
    width: auto;
    max-width: 220px;
    object-fit: contain;
}

.icl-topbar__right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.icl-topbar__user {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 14px 4px 4px;
    border-radius: var(--radio-full);
    background: var(--rosa-claro);
    color: var(--gris-oscuro) !important;
    font-weight: 800;
    text-decoration: none;
    font-size: .92rem;
}

.icl-topbar__logout {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--gris-texto) !important;
    transition: all .2s;
}

.icl-topbar__logout:hover { background: var(--rosa-claro); color: var(--rosa-principal) !important; }

.icl-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--grad-rosa);
    color: var(--blanco);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: .95rem;
    flex-shrink: 0;
}

.icl-avatar--lg {
    width: 72px;
    height: 72px;
    font-size: 1.9rem;
    box-shadow: var(--sombra-media);
}

@media (max-width: 640px) {
    .icl-topbar__inner { padding: 8px 16px; }
    .icl-topbar__brand img { height: 40px; max-width: 150px; }
    .icl-topbar__name, .icl-topbar__right .icl-btn { display: none; }
    .icl-topbar__user { padding: 4px; }
}

.icl-shell {
    max-width: 1120px;
    margin: 0 auto;
    padding: 32px 24px 56px;
    min-height: 60vh;
}

@media (max-width: 640px) {
    .icl-shell { padding: 20px 16px 40px; }
}

.icl-page-title {
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 900;
    color: var(--verde-principal);
    margin: 0 0 22px;
}

.icl-footer {
    text-align: center;
    padding: 30px 16px;
    background: var(--rosa-claro);
    border-top: 3px solid var(--rosa-principal);
}

.icl-footer__logo { max-width: 200px; width: 60%; height: auto; }

.icl-footer__claim {
    font-family: var(--font-script);
    color: var(--rosa-accent);
    font-size: 1.2rem;
    margin: 4px 0 0;
}

.icl-footer__powered {
    font-size: .75rem;
    color: var(--gris-texto);
    margin: 10px 0 0;
    font-weight: 700;
    letter-spacing: .5px;
}

/* ============================================
   WooCommerce: Mi cuenta (navegación + contenido)
   ============================================ */

body.icl-portal .woocommerce {
    font-family: var(--font-principal);
}

body.icl-portal .woocommerce-account .woocommerce,
body.icl-portal.woocommerce-account .woocommerce {
    display: block;
}

body.icl-portal .woocommerce-MyAccount-navigation {
    float: none !important;
    width: auto !important;
    margin: 0 0 26px;
}

body.icl-portal .woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 6px;
    display: flex;
    gap: 6px;
    overflow-x: auto;
    background: var(--blanco);
    border-radius: var(--radio-full);
    box-shadow: var(--sombra-card);
    scrollbar-width: none;
}

body.icl-portal .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }

body.icl-portal .woocommerce-MyAccount-navigation li {
    margin: 0;
    padding: 0;
    flex: none;
    border: 0;
}

body.icl-portal .woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 10px 20px;
    border-radius: var(--radio-full);
    font-weight: 800;
    font-size: .92rem;
    color: var(--gris-texto);
    text-decoration: none;
    white-space: nowrap;
    transition: all .2s;
}

body.icl-portal .woocommerce-MyAccount-navigation li a:hover {
    color: var(--rosa-principal);
    background: var(--rosa-claro);
}

body.icl-portal .woocommerce-MyAccount-navigation li.is-active a {
    background: var(--rosa-principal);
    color: var(--blanco);
    box-shadow: var(--sombra-suave);
}

body.icl-portal .woocommerce-MyAccount-navigation-link--customer-logout { margin-left: auto !important; }
body.icl-portal .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--gris-texto); }

body.icl-portal .woocommerce-MyAccount-content {
    float: none !important;
    width: auto !important;
}

/* Contenido genérico de los endpoints (pedidos, tarjetas, perfil, ver suscripción) */
body.icl-portal .woocommerce-MyAccount-content > :not(.icl-hero):not(.icl-status):not(.icl-card):not(.icl-grid-access):not(.icl-notices):not(.icl-admin-panel):not(.icl-due):not(.woocommerce-notices-wrapper):not(.woocommerce-message):not(.woocommerce-info):not(.woocommerce-error) {
    max-width: 100%;
}

body.icl-portal .woocommerce-MyAccount-content h2,
body.icl-portal .woocommerce-MyAccount-content h3,
body.icl-portal .woocommerce h2,
body.icl-portal .woocommerce h3 {
    color: var(--verde-principal);
    font-weight: 800;
}

body.icl-portal .woocommerce table.shop_table,
body.icl-portal .woocommerce-MyAccount-content table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--blanco);
    border: 0;
    border-radius: var(--radio-lg);
    box-shadow: var(--sombra-card);
    overflow: hidden;
    margin: 0 0 24px;
    font-size: .95rem;
}

body.icl-portal .woocommerce table.shop_table th,
body.icl-portal .woocommerce table.shop_table td,
body.icl-portal .woocommerce-MyAccount-content table th,
body.icl-portal .woocommerce-MyAccount-content table td {
    padding: 14px 18px;
    border: 0;
    border-bottom: 1px solid var(--linea);
    text-align: left;
    vertical-align: middle;
}

body.icl-portal .woocommerce table.shop_table thead th,
body.icl-portal .woocommerce-MyAccount-content table thead th {
    background: var(--rosa-claro);
    color: var(--verde-principal);
    font-weight: 800;
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .5px;
}

body.icl-portal .woocommerce table.shop_table tr:last-child td,
body.icl-portal .woocommerce-MyAccount-content table tr:last-child td { border-bottom: 0; }

body.icl-portal .woocommerce table .button {
    padding: 8px 18px;
    font-size: .85rem;
    margin: 2px 4px 2px 0;
}

/* Formularios (perfil, direcciones, tarjeta) */
body.icl-portal .woocommerce form.woocommerce-EditAccountForm,
body.icl-portal .woocommerce form.woocommerce-ResetPassword,
body.icl-portal .woocommerce form.woocommerce-form-login,
body.icl-portal .woocommerce form#add_payment_method,
body.icl-portal .woocommerce form#order_review {
    background: var(--blanco);
    border: 0;
    border-radius: var(--radio-lg);
    box-shadow: var(--sombra-card);
    padding: 28px;
    margin: 0 0 24px;
}

body.icl-portal .woocommerce form .form-row { margin: 0 0 16px; padding: 0; }

body.icl-portal .woocommerce form .form-row label {
    font-weight: 800;
    font-size: .85rem;
    color: var(--gris-oscuro);
    margin-bottom: 6px;
    display: block;
}

body.icl-portal .woocommerce form .required { color: var(--rosa-principal); text-decoration: none; }

body.icl-portal .woocommerce fieldset {
    border: 1.5px solid var(--linea);
    border-radius: var(--radio-md);
    padding: 18px 20px 6px;
    margin: 10px 0 20px;
}

body.icl-portal .woocommerce fieldset legend {
    font-weight: 800;
    color: var(--verde-principal);
    padding: 0 8px;
}

/* Avisos de WooCommerce */
body.icl-portal .woocommerce-message,
body.icl-portal .woocommerce-info,
body.icl-portal .woocommerce-error,
body.icl-portal .woocommerce-notice {
    list-style: none;
    border: 0;
    border-left: 4px solid var(--verde-check);
    border-radius: var(--radio-md);
    background: var(--verde-claro);
    color: var(--verde-principal);
    padding: 14px 18px;
    margin: 0 0 20px;
    font-weight: 600;
    box-shadow: none;
}

body.icl-portal .woocommerce-info { border-left-color: var(--rosa-accent); background: var(--rosa-claro); color: var(--gris-oscuro); }
body.icl-portal .woocommerce-error { border-left-color: var(--rosa-principal); background: var(--rosa-claro); color: var(--rosa-hover); }
body.icl-portal .woocommerce-message::before,
body.icl-portal .woocommerce-info::before,
body.icl-portal .woocommerce-error::before { display: none; }
body.icl-portal .woocommerce-message .button,
body.icl-portal .woocommerce-info .button { float: right; padding: 6px 16px; font-size: .85rem; }

/* Estados de pedido / suscripción */
body.icl-portal mark,
body.icl-portal .woocommerce mark {
    background: var(--rosa-claro);
    color: var(--rosa-principal);
    padding: 1px 8px;
    border-radius: var(--radio-full);
    font-weight: 800;
}

body.icl-portal .woocommerce-pagination { margin-top: 12px; }

/* Métodos de pago (Stripe) */
body.icl-portal #payment,
body.icl-portal .woocommerce-checkout #payment {
    background: var(--gris-claro);
    border-radius: var(--radio-lg);
}

body.icl-portal #payment ul.payment_methods { border-bottom-color: var(--linea); }
body.icl-portal #payment div.payment_box { background: var(--blanco); border-radius: var(--radio-md); }
body.icl-portal #payment div.payment_box::before { border-bottom-color: var(--blanco); }

/* ============================================
   Inicio de Mi cuenta
   ============================================ */

.icl-hero {
    position: relative;
    overflow: hidden;
    background: var(--grad-hero);
    border-radius: var(--radio-lg);
    box-shadow: var(--sombra-card);
    padding: 28px 30px;
    margin-bottom: 20px;
}

.icl-hero__body {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    padding-right: 150px;
}

.icl-hero__info { flex: 1 1 260px; min-width: 0; }

.icl-hero__greeting {
    font-family: var(--font-script);
    color: var(--rosa-accent);
    font-size: 1.4rem;
    margin: 0;
    line-height: 1.1;
}

.icl-hero__name {
    font-size: clamp(1.6rem, 3.4vw, 2.3rem);
    font-weight: 900;
    color: var(--verde-principal);
    margin: 2px 0 6px;
    line-height: 1.15;
    word-break: break-word;
}

.icl-hero__meta {
    margin: 0;
    color: var(--gris-texto);
    font-size: .92rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.icl-sep { color: var(--rosa-medio); }

.icl-hero__stats {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.icl-stat {
    background: var(--blanco);
    border-radius: var(--radio-md);
    padding: 12px 18px;
    min-width: 140px;
    box-shadow: var(--sombra-suave);
}

.icl-stat__value {
    display: block;
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--rosa-principal);
    line-height: 1.2;
}

.icl-stat__label {
    font-size: .8rem;
    font-weight: 700;
    color: var(--gris-texto);
}

.icl-hero__mascot {
    position: absolute;
    right: 18px;
    bottom: -14px;
    width: 140px;
    height: auto;
    z-index: 0;
}

@media (max-width: 720px) {
    .icl-hero { padding: 22px 18px; }
    .icl-hero__body { padding-right: 0; }
    .icl-hero__mascot { width: 84px; right: 6px; top: 8px; bottom: auto; opacity: .95; }
    .icl-avatar--lg { width: 56px; height: 56px; font-size: 1.5rem; }
    .icl-stat { flex: 1 1 130px; min-width: 0; }
}

/* Franja de estado */
.icl-status {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 18px;
    border-radius: var(--radio-md);
    margin-bottom: 20px;
    font-size: .95rem;
    background: var(--verde-claro);
    color: var(--gris-oscuro);
    border-left: 4px solid var(--verde-check);
}

.icl-status strong { color: var(--verde-principal); }

.icl-status__icon {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--verde-check);
    color: var(--blanco);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.icl-status.is-due,
.icl-status.is-error {
    background: var(--rosa-claro);
    border-left-color: var(--rosa-principal);
}

.icl-status.is-due strong,
.icl-status.is-error strong { color: var(--rosa-hover); }
.icl-status.is-due .icl-status__icon,
.icl-status.is-error .icl-status__icon { background: var(--rosa-principal); }

.icl-status.is-empty {
    background: var(--blanco);
    border-left-color: var(--rosa-medio);
    box-shadow: var(--sombra-card);
}

.icl-status.is-empty strong { color: var(--gris-oscuro); }
.icl-status.is-empty .icl-status__icon { background: var(--rosa-accent); }

.icl-status a { color: var(--rosa-principal); font-weight: 800; }

/* Tarjetas */
.icl-card {
    background: var(--blanco);
    border-radius: var(--radio-lg);
    box-shadow: var(--sombra-card);
    padding: 24px;
    margin-bottom: 20px;
}

.icl-card__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.icl-card__title {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--verde-principal);
    margin: 0 0 14px;
    padding-bottom: 6px;
    display: inline-block;
    border-bottom: 3px solid var(--rosa-principal);
}

.icl-card__head .icl-card__title { margin: 0; }

/* Pagos pendientes */
.icl-due { border: 2px solid var(--rosa-medio); }

.icl-due__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 0;
    border-top: 1px solid var(--linea);
}

.icl-due__row:first-of-type { border-top: 0; }

.icl-due__main { display: grid; gap: 2px; min-width: 0; }
.icl-due__main strong { color: var(--gris-oscuro); }
.icl-due__main span { color: var(--rosa-principal); font-weight: 800; }

/* Avisos de Laura */
.icl-notices { display: grid; gap: 10px; margin-bottom: 20px; }

.icl-notice {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    border-radius: var(--radio-md);
    background: var(--blanco);
    box-shadow: var(--sombra-card);
    font-weight: 600;
}

.icl-notice__icon {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: var(--rosa-claro);
    color: var(--rosa-principal);
}

.icl-notice--success .icl-notice__icon { background: var(--verde-claro); color: var(--verde-check); }
.icl-notice--warning { border-left: 4px solid var(--rosa-principal); }
.icl-notice--warning .icl-notice__icon { background: var(--rosa-principal); color: var(--blanco); }

/* Accesos rápidos */
.icl-grid-access {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 20px;
}

@media (max-width: 820px) {
    .icl-grid-access { grid-template-columns: 1fr; gap: 12px; }
}

.icl-bigcard {
    display: flex;
    flex-direction: column;
    background: var(--blanco);
    border-radius: var(--radio-lg);
    box-shadow: var(--sombra-card);
    padding: 22px;
    text-decoration: none;
    color: var(--gris-oscuro) !important;
    transition: transform .2s, box-shadow .2s;
}

.icl-bigcard:hover {
    transform: translateY(-3px);
    box-shadow: var(--sombra-media);
}

.icl-bigcard__icon {
    width: 52px;
    height: 52px;
    border-radius: var(--radio-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--blanco);
    margin-bottom: 14px;
    background: var(--grad-rosa);
}

.icl-bigcard__icon--verde { background: var(--grad-verde); }
.icl-bigcard__icon--accent { background: var(--rosa-claro); color: var(--rosa-principal); }

.icl-bigcard h3 {
    margin: 0 0 4px;
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--verde-principal) !important;
}

.icl-bigcard p {
    margin: 0 0 14px;
    font-size: .9rem;
    color: var(--gris-texto);
    flex: 1;
}

.icl-bigcard__go {
    font-weight: 800;
    color: var(--rosa-principal);
    font-size: .92rem;
}

/* Filas de clases */
.icl-services { display: grid; gap: 10px; }

.icl-service {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border-radius: var(--radio-md);
    background: var(--gris-claro);
    border: 1.5px solid transparent;
    color: var(--gris-oscuro) !important;
    text-decoration: none;
    transition: all .2s;
}

.icl-service:hover {
    background: var(--blanco);
    border-color: var(--rosa-medio);
    box-shadow: var(--sombra-suave);
}

.icl-service.is-pending {
    background: var(--rosa-claro);
    border-color: var(--rosa-medio);
}

.icl-service.is-ended { opacity: .65; }

.icl-service__icon {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--verde-claro);
    color: var(--verde-principal);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.icl-service__main { flex: 1; min-width: 0; display: grid; gap: 1px; }

.icl-service__name {
    font-weight: 800;
    font-size: 1rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.icl-service__name small { color: var(--gris-texto); font-weight: 700; }

.icl-service__meta { font-size: .85rem; color: var(--gris-texto); }
.icl-service__meta .is-soon { color: var(--rosa-principal); font-weight: 800; }
.icl-service__due { color: var(--rosa-principal); font-weight: 800; }

.icl-service__price { text-align: right; white-space: nowrap; }
.icl-service__amount { font-weight: 900; color: var(--gris-oscuro); }
.icl-service__period { font-size: .8rem; color: var(--gris-texto); font-weight: 600; }

.icl-service__state {
    flex-shrink: 0;
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

.icl-service__state--ok { background: var(--verde-check); box-shadow: 0 0 0 4px var(--verde-claro); }
.icl-service__state--off { background: #C9C9C9; }

.icl-service__state--pending {
    width: auto;
    height: auto;
    padding: 6px 14px;
    border-radius: var(--radio-full);
    background: var(--rosa-principal);
    color: var(--blanco);
    font-weight: 800;
    font-size: .82rem;
}

.icl-service__arrow { color: #B9B9B9; flex-shrink: 0; }

@media (max-width: 560px) {
    .icl-service { flex-wrap: wrap; gap: 10px 12px; }
    .icl-service__main { flex: 1 1 calc(100% - 60px); }
    .icl-service__price { text-align: left; flex: 1; }
    .icl-service__arrow { display: none; }
}

.icl-services__more {
    text-align: center;
    padding: 10px;
    font-weight: 800;
    color: var(--rosa-principal) !important;
    text-decoration: none;
}

.icl-pagination { display: flex; gap: 10px; justify-content: center; margin-top: 16px; }

.icl-empty { text-align: center; padding: 16px 10px; color: var(--gris-texto); }
.icl-empty img { width: 120px; height: auto; margin-bottom: 8px; }
.icl-empty strong { color: var(--verde-principal); }

/* Panel de pagos embebido (administración) */
.icl-admin-panel { margin-top: 8px; }
.icl-admin-panel .icl-pl-wrap { margin: 0 auto; }

/* ============================================
   Pagar pedido / carrito dentro de la carcasa
   ============================================ */

body.icl-portal .woocommerce-checkout .shop_table,
body.icl-portal #order_review .shop_table { box-shadow: none; border: 1.5px solid var(--linea); }

body.icl-portal .wc-block-components-button:not(.is-link),
body.icl-portal .wc-block-cart__submit-button,
body.icl-portal .wc-block-components-checkout-place-order-button {
    background: var(--rosa-principal) !important;
    color: var(--blanco) !important;
    border-radius: var(--radio-full) !important;
    font-family: var(--font-principal) !important;
    font-weight: 800 !important;
}

body.icl-portal .wc-block-components-button:not(.is-link):hover { background: var(--rosa-hover) !important; }

@media (prefers-reduced-motion: reduce) {
    body.icl-portal *,
    body.icl-login-page * {
        transition: none !important;
        animation: none !important;
    }
}

/* Blindaje frente a los estilos globales del tema activo */
body.icl-portal h1, body.icl-portal h2, body.icl-portal h3, body.icl-portal h4,
body.icl-portal p, body.icl-portal li, body.icl-portal a, body.icl-portal button,
body.icl-portal input, body.icl-portal select, body.icl-portal textarea, body.icl-portal td, body.icl-portal th {
    font-family: var(--font-principal);
    letter-spacing: normal;
}

body.icl-portal .icl-hero__greeting,
body.icl-portal .icl-footer__claim { font-family: var(--font-script); }

body.icl-portal a,
body.icl-portal .woocommerce-MyAccount-navigation li a { text-decoration: none !important; }

/* En el portal el logo ya está en la cabecera: no repetirlo en el Panel */
.icl-admin-panel .icl-pl-logo,
.icl-admin-panel .icl-pl-logo-img { display: none; }

/* ============================================
   Ajustes de márgenes y móvil (revisión de diseño)
   ============================================ */

.icl-btn { white-space: nowrap; }

.icl-stat__label { display: block; line-height: 1.35; margin-top: 2px; }

.icl-due__row .icl-btn { flex-shrink: 0; }

@media (max-width: 720px) {
    .icl-hero__meta { flex-direction: column; align-items: flex-start; gap: 4px; }
    .icl-hero__meta .icl-sep { display: none; }
    .icl-hero__name { font-size: 1.55rem; }
    .icl-hero__stats { width: 100%; }
    .icl-stat { padding: 12px 14px; }
    .icl-stat__value { font-size: 1.3rem; }

    .icl-card { padding: 20px 16px; border-radius: var(--radio-lg); }
    .icl-card__title { font-size: 1.15rem; }

    .icl-due__row { gap: 12px; }

    /* Accesos compactos: icono a la izquierda */
    .icl-bigcard {
        display: grid;
        grid-template-columns: 44px 1fr auto;
        grid-template-areas: "icon title go" "icon text go";
        align-items: center;
        column-gap: 14px;
        row-gap: 0;
        padding: 14px 16px;
    }
    .icl-bigcard__icon { grid-area: icon; width: 44px; height: 44px; margin: 0; }
    .icl-bigcard__icon svg { width: 22px; height: 22px; }
    .icl-bigcard h3 { grid-area: title; font-size: 1rem; margin: 0; }
    .icl-bigcard p { grid-area: text; margin: 0; font-size: .82rem; line-height: 1.35; }
    .icl-bigcard__go { grid-area: go; font-size: 0; }
    .icl-bigcard__go::after { content: "\203A"; font-size: 1.6rem; line-height: 1; color: var(--rosa-principal); }

    body.icl-portal .woocommerce-MyAccount-navigation { margin-bottom: 18px; }
    body.icl-portal .woocommerce-MyAccount-navigation li a { padding: 9px 16px; font-size: .88rem; }

    .icl-footer { padding: 24px 16px; }
}

/* Hero: datos en líneas propias y mascota entera (sin cortar los pies) */
.icl-hero__meta { flex-direction: column; align-items: flex-start; gap: 2px; }
.icl-hero__mascot { bottom: 10px; right: 26px; width: 118px; }
.icl-hero__body { padding-right: 140px; }
@media (max-width: 720px) {
    .icl-hero__body { padding-right: 0; }
    .icl-hero__mascot { width: 80px; right: 12px; top: 14px; bottom: auto; }
}

/* Direcciones y títulos de sección en las páginas de detalle */
body.icl-portal .woocommerce address {
    font-style: normal;
    background: var(--blanco);
    border: 0 !important;
    border-radius: var(--radio-lg);
    box-shadow: var(--sombra-card);
    padding: 18px 22px !important;
    line-height: 1.7;
}

body.icl-portal .woocommerce-MyAccount-content h2,
body.icl-portal .woocommerce-MyAccount-content h3 {
    font-size: 1.25rem;
    margin: 28px 0 12px;
}

body.icl-portal .woocommerce-MyAccount-content > h2:first-child,
body.icl-portal .woocommerce-MyAccount-content > p:first-child { margin-top: 0; }

body.icl-portal .woocommerce-MyAccount-content > p {
    color: var(--gris-texto);
}

body.icl-portal .woocommerce-customer-details,
body.icl-portal .woocommerce-order-details { margin-bottom: 24px; }

@media (max-width: 720px) {
    /* Tablas responsivas de WooCommerce: cada fila como tarjeta */
    body.icl-portal .woocommerce table.shop_table_responsive tr,
    body.icl-portal .woocommerce-MyAccount-content table.shop_table_responsive tr {
        display: block;
        border-bottom: 1px solid var(--linea);
        padding: 8px 0;
    }
    body.icl-portal .woocommerce table.shop_table_responsive tr td,
    body.icl-portal .woocommerce-MyAccount-content table.shop_table_responsive tr td {
        display: flex;
        justify-content: space-between;
        gap: 12px;
        text-align: right !important;
        padding: 6px 16px;
        border: 0;
    }
    body.icl-portal .woocommerce table.shop_table_responsive tr td::before {
        content: attr(data-title);
        font-weight: 800;
        color: var(--verde-principal);
        text-align: left;
    }
    body.icl-portal .woocommerce table.shop_table_responsive thead { display: none; }
    body.icl-portal .woocommerce table th,
    body.icl-portal .woocommerce table td { padding: 10px 14px; }
}

/* Detalles de formularios WooCommerce */
body.icl-portal input[type=checkbox],
body.icl-portal input[type=radio] { accent-color: var(--rosa-principal); width: 16px; height: 16px; vertical-align: middle; }
body.icl-portal .woocommerce form .form-row em,
body.icl-portal .woocommerce form .form-row .description { display: block; font-style: normal; font-size: .82rem; color: var(--gris-texto); margin-top: 6px; }
body.icl-portal .woocommerce form .show-password-input { color: var(--gris-texto); }
body.icl-portal .woocommerce form .show-password-input.display-password { color: var(--rosa-principal); }
body.icl-portal .woocommerce form .form-row label.checkbox,
body.icl-portal .woocommerce form .form-row .woocommerce-form__label-for-checkbox { font-weight: 600; display: flex; gap: 10px; align-items: flex-start; }
body.icl-portal .woocommerce-EditAccountForm > p:last-of-type { margin-bottom: 0; }

/* Avisos de WooCommerce (formato bloques) con la marca */
body.icl-portal .wc-block-components-notice-banner {
    border: 0 !important;
    border-left: 4px solid var(--rosa-accent) !important;
    border-radius: var(--radio-md) !important;
    background: var(--rosa-claro) !important;
    color: var(--gris-oscuro) !important;
    padding: 14px 16px !important;
    font-family: var(--font-principal);
    font-weight: 600;
    gap: 12px;
}
body.icl-portal .wc-block-components-notice-banner > svg {
    background: var(--rosa-principal) !important;
    fill: #fff !important;
    border-radius: 50%;
    padding: 2px;
}
body.icl-portal .wc-block-components-notice-banner.is-success { border-left-color: var(--verde-check) !important; background: var(--verde-claro) !important; }
body.icl-portal .wc-block-components-notice-banner.is-success > svg { background: var(--verde-check) !important; }
body.icl-portal .wc-block-components-notice-banner.is-error { border-left-color: var(--rosa-principal) !important; }
body.icl-portal .wc-block-components-notice-banner .button { background: transparent; color: var(--rosa-principal) !important; box-shadow: none; padding: 0; text-decoration: underline !important; }

/* Casilla con texto largo (Mi perfil): el texto fluye normal */
body.icl-portal .woocommerce form .form-row .woocommerce-form__label-for-checkbox,
body.icl-portal .woocommerce form .form-row label.checkbox {
    display: block;
    line-height: 1.5;
}
body.icl-portal .woocommerce form .form-row .woocommerce-form__label-for-checkbox input,
body.icl-portal .woocommerce form .form-row label.checkbox input { margin: -2px 8px 0 0; }

/* Pie siempre abajo aunque la página sea corta */
body.icl-portal { min-height: 100vh; display: flex; flex-direction: column; }
body.icl-portal .icl-shell { flex: 1 0 auto; width: 100%; }

@media (max-width: 720px) {
    body.icl-portal .woocommerce form .form-row-first,
    body.icl-portal .woocommerce form .form-row-last { float: none; width: 100%; }
    body.icl-portal .woocommerce form.woocommerce-EditAccountForm,
    body.icl-portal .woocommerce form#add_payment_method,
    body.icl-portal .woocommerce form#order_review { padding: 20px 16px; }
    body.icl-portal .woocommerce fieldset { padding: 14px 14px 4px; }
}

/* Logos de la carcasa: tamaño fijo aunque el tema/bloques fuercen otro */
body.icl-portal .icl-footer__logo { width: 200px !important; max-width: 60% !important; height: auto !important; display: inline-block; }
body.icl-portal .icl-topbar__brand img { width: auto !important; max-width: 220px !important; height: 52px !important; }
@media (max-width: 640px) {
    body.icl-portal .icl-topbar__brand img { height: 40px !important; max-width: 150px !important; }
}

/* ============================================
   Checkout de bloques (Finalizar compra / Pagar ahora)
   ============================================ */

body.icl-portal .wp-block-woocommerce-checkout,
body.icl-portal .wp-block-woocommerce-cart { font-family: var(--font-principal); color: var(--gris-oscuro); }

body.icl-portal .wc-block-components-checkout-step__title,
body.icl-portal .wc-block-components-title { color: var(--verde-principal) !important; font-weight: 800 !important; font-size: 1.15rem !important; }

body.icl-portal .wc-block-components-text-input input,
body.icl-portal .wc-block-components-text-input input[type],
body.icl-portal .wc-blocks-components-select .wc-blocks-components-select__select,
body.icl-portal .wc-block-components-combobox .wc-block-components-combobox-control input,
body.icl-portal .wc-block-components-textarea {
    border: 1.5px solid #E2E2E2 !important;
    border-radius: var(--radio-md) !important;
    background: var(--blanco) !important;
    font-family: var(--font-principal) !important;
    color: var(--gris-oscuro) !important;
    box-shadow: none !important;
}

body.icl-portal .wc-block-components-text-input input:focus,
body.icl-portal .wc-blocks-components-select .wc-blocks-components-select__select:focus {
    border-color: var(--rosa-principal) !important;
    box-shadow: 0 0 0 4px rgba(233, 30, 123, .14) !important;
    outline: none !important;
}

body.icl-portal .wc-block-components-text-input label,
body.icl-portal .wc-blocks-components-select__label { font-family: var(--font-principal) !important; color: var(--gris-texto) !important; }

body.icl-portal .wc-block-components-radio-control,
body.icl-portal .wc-block-components-radio-control-accordion-option,
body.icl-portal .wc-block-checkout__payment-method .wc-block-components-radio-control__option {
    border-radius: var(--radio-md) !important;
}

body.icl-portal .wc-block-checkout__payment-method .wc-block-components-radio-control__option,
body.icl-portal .wc-block-components-radio-control--highlight-checked::after,
body.icl-portal .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
    box-shadow: inset 0 0 0 1.5px var(--rosa-principal) !important;
    border-color: var(--rosa-principal) !important;
}

body.icl-portal .wc-block-components-radio-control__input:checked { border-color: var(--rosa-principal) !important; }
body.icl-portal .wc-block-components-radio-control__input:checked::before { background: var(--rosa-principal) !important; }
body.icl-portal .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { border-radius: 6px !important; border-color: #C9C9C9 !important; }
body.icl-portal .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--rosa-principal) !important; border-color: var(--rosa-principal) !important; }
body.icl-portal .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff !important; }

/* Resumen del pedido como tarjeta */
body.icl-portal .wp-block-woocommerce-checkout-order-summary-block,
body.icl-portal .wc-block-components-sidebar .wc-block-components-panel,
body.icl-portal .wp-block-woocommerce-cart-order-summary-block {
    background: var(--blanco);
    border: 0 !important;
    border-radius: var(--radio-lg) !important;
    box-shadow: var(--sombra-card);
    overflow: hidden;
}

body.icl-portal .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.icl-portal .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { color: var(--rosa-principal); font-weight: 900; }

body.icl-portal .wc-block-components-checkout-place-order-button,
body.icl-portal .wc-block-cart__submit-button {
    min-height: 54px;
    font-size: 1.05rem !important;
    box-shadow: var(--sombra-suave);
}

body.icl-portal .wc-block-checkout__terms { color: var(--gris-texto); font-size: .85rem; }
body.icl-portal .wc-block-checkout__order-notes { display: none; }

body.icl-portal .wc-block-components-address-form__address_2-toggle,
body.icl-portal .wc-block-components-panel__button { color: var(--rosa-principal) !important; font-weight: 700; }

body.icl-portal .wc-block-components-product-metadata,
body.icl-portal .wc-block-components-product-name { font-family: var(--font-principal); }
body.icl-portal .wc-block-components-product-name { color: var(--gris-oscuro) !important; font-weight: 800; }

/* ============================================
   Checkout clásico (Finalizar compra / Pagar ahora)
   ============================================ */

body.icl-portal form.woocommerce-checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 400px);
    grid-template-areas: "details heading" "details review";
    grid-template-rows: auto 1fr;
    column-gap: 28px;
    align-items: start;
}

body.icl-portal form.woocommerce-checkout #customer_details {
    grid-area: details;
    background: var(--blanco);
    border-radius: var(--radio-lg);
    box-shadow: var(--sombra-card);
    padding: 26px;
}

body.icl-portal form.woocommerce-checkout #customer_details .col-1,
body.icl-portal form.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }
body.icl-portal form.woocommerce-checkout #customer_details .col-2:empty,
body.icl-portal form.woocommerce-checkout .woocommerce-additional-fields:empty { display: none; }
body.icl-portal form.woocommerce-checkout #customer_details h3 { margin: 0 0 16px; font-size: 1.2rem; }

body.icl-portal form.woocommerce-checkout #order_review_heading {
    grid-area: heading;
    margin: 0 0 12px;
    font-size: 1.2rem;
}

body.icl-portal form.woocommerce-checkout #order_review {
    grid-area: review;
    background: var(--blanco);
    border-radius: var(--radio-lg);
    box-shadow: var(--sombra-card);
    padding: 20px;
    position: sticky;
    top: 96px;
}

body.icl-portal #order_review .shop_table {
    border: 0;
    box-shadow: none;
    border-radius: 0;
    margin-bottom: 16px;
}

body.icl-portal #order_review .shop_table th,
body.icl-portal #order_review .shop_table td { padding: 10px 4px; }
body.icl-portal #order_review .shop_table thead th { background: transparent; }
body.icl-portal #order_review .order-total th,
body.icl-portal #order_review .order-total td,
body.icl-portal #order_review .order-total .amount { color: var(--rosa-principal); font-weight: 900; font-size: 1.05rem; }
body.icl-portal #order_review .recurring-totals th { color: var(--verde-principal); padding-top: 18px; }

body.icl-portal .woocommerce-checkout #payment {
    background: var(--gris-claro);
    border-radius: var(--radio-md);
    padding: 4px 0 0;
}

body.icl-portal .woocommerce-checkout #payment ul.payment_methods { padding: 14px 16px; }
body.icl-portal .woocommerce-checkout #payment ul.payment_methods li { list-style: none; font-weight: 700; }
body.icl-portal .woocommerce-checkout #payment div.form-row.place-order { padding: 16px; margin: 0; }
body.icl-portal #place_order { width: 100%; float: none; min-height: 54px; font-size: 1.05rem; }
body.icl-portal .woocommerce-terms-and-conditions-wrapper { font-size: .85rem; color: var(--gris-texto); margin-bottom: 14px; }
body.icl-portal .woocommerce-privacy-policy-text p { margin: 0 0 12px; }

body.icl-portal .select2-container--default .select2-selection--single {
    height: 50px;
    border: 1.5px solid #E2E2E2;
    border-radius: var(--radio-md);
    display: flex;
    align-items: center;
    padding: 0 8px;
}
body.icl-portal .select2-container--default .select2-selection--single .select2-selection__arrow { height: 48px; right: 8px; }
body.icl-portal .select2-dropdown { border-color: #E2E2E2; border-radius: var(--radio-md); overflow: hidden; font-family: var(--font-principal); }
body.icl-portal .select2-results__option--highlighted { background: var(--rosa-principal) !important; }

/* Pagar pedido (order-pay): tabla + pago */
body.icl-portal form#order_review:not(.woocommerce-checkout) .shop_table { border: 0; box-shadow: none; }

/* Carrito clásico */
body.icl-portal .woocommerce-cart-form,
body.icl-portal .cart-collaterals .cart_totals {
    background: var(--blanco);
    border-radius: var(--radio-lg);
    box-shadow: var(--sombra-card);
    padding: 20px;
    margin-bottom: 24px;
}
body.icl-portal .cart-collaterals .cart_totals { float: none; width: 100%; max-width: 420px; margin-left: auto; }
body.icl-portal .woocommerce-cart-form .shop_table { box-shadow: none; }
body.icl-portal .cart-empty { font-size: 1.1rem; }
body.icl-portal .return-to-shop .button { margin-top: 8px; }
body.icl-portal .woocommerce-cart .cross-sells,
body.icl-portal .wc-block-grid { display: none; }

@media (max-width: 900px) {
    body.icl-portal form.woocommerce-checkout {
        grid-template-columns: 1fr;
        grid-template-areas: "details" "heading" "review";
        row-gap: 0;
    }
    body.icl-portal form.woocommerce-checkout #customer_details { padding: 20px 16px; margin-bottom: 24px; }
    body.icl-portal form.woocommerce-checkout #order_review { position: static; padding: 16px; }
}

/* Botón dentro de los avisos ("Ver carrito"): enlace rosa, sin píldora */
body.icl-portal .woocommerce-message .button,
body.icl-portal .woocommerce-info .button,
body.icl-portal .woocommerce-error .button {
    background: transparent !important;
    color: var(--rosa-principal) !important;
    box-shadow: none !important;
    padding: 0 !important;
    font-size: .9rem;
    transform: none !important;
    text-decoration: underline !important;
}
body.icl-portal .woocommerce-message a:not(.button),
body.icl-portal .woocommerce-info a:not(.button) { color: var(--rosa-principal); font-weight: 700; }
body.icl-portal .select2-container .select2-selection__rendered { font-size: 1rem; font-weight: 600; color: var(--gris-oscuro); font-family: var(--font-principal); }

.icl-pay-sub { color: var(--gris-texto); margin: -10px 0 20px; }

/* Bloque de Stripe dentro del resumen: sin cajas dentro de cajas */
body.icl-portal .woocommerce-checkout #payment ul.payment_methods { padding: 12px 12px 0; border: 0; }
body.icl-portal .woocommerce-checkout #payment div.payment_box { padding: 4px 0 0; background: transparent; margin: 0; }
body.icl-portal .woocommerce-checkout #payment div.payment_box::before { display: none; }
body.icl-portal .woocommerce-checkout #payment ul.payment_methods li > label { font-weight: 800; color: var(--verde-principal); }

/* ============================================
   Cabecera única: logo + menú de Mi cuenta
   ============================================ */

body.icl-portal .woocommerce-MyAccount-navigation { display: none !important; }

.icl-topbar__inner { gap: 24px; }

.icl-nav { min-width: 0; }

.icl-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 4px;
}

.icl-nav__item a {
    display: block;
    padding: 9px 16px;
    border-radius: var(--radio-full);
    font-weight: 800;
    font-size: .92rem;
    color: var(--gris-texto) !important;
    white-space: nowrap;
    transition: background .2s, color .2s;
}

.icl-nav__item a:hover { background: var(--rosa-claro); color: var(--rosa-principal) !important; }

.icl-nav__item.is-active a {
    background: var(--rosa-principal);
    color: var(--blanco) !important;
    box-shadow: var(--sombra-suave);
}

.icl-nav__item--panel a {
    border: 2px solid var(--verde-principal);
    color: var(--verde-principal) !important;
    padding: 7px 14px;
}
.icl-nav__item--panel a:hover { background: var(--verde-principal); color: var(--blanco) !important; }

.icl-nav__item--customer-logout { margin-left: 8px; }
.icl-nav__item--customer-logout a { color: #8a8a8a !important; font-weight: 700; }

.icl-shell { padding-top: 28px; }

@media (max-width: 960px) {
    .icl-topbar__inner {
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
        padding: 10px 0 8px;
    }
    .icl-topbar__brand { padding: 0 16px; }
    .icl-nav ul {
        overflow-x: auto;
        padding: 2px 16px 4px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .icl-nav ul::-webkit-scrollbar { display: none; }
    .icl-nav__item { flex: none; }
    .icl-nav__item a { padding: 8px 14px; font-size: .88rem; }
    .icl-nav__item--customer-logout { margin-left: 0; }
    .icl-shell { padding-top: 20px; }
}

/* Títulos de tarjeta: sin el margen superior de los h2 de WooCommerce */
body.icl-portal .woocommerce-MyAccount-content .icl-card__title { margin-top: 0; }

/* El tema limita el ancho del contenido: en la carcasa ocupa todo el ancho de la cabecera */
body.icl-portal .icl-shell > *,
body.icl-portal .icl-shell .woocommerce { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; width: 100%; }
body.icl-portal .wc-block-components-notice-banner button,
body.icl-portal .wc-block-components-notice-banner a { background: transparent !important; color: var(--rosa-principal) !important; box-shadow: none !important; border: 0 !important; padding: 0 !important; font-weight: 800; text-decoration: underline !important; transform: none !important; }

/* ============================================
   Saludo v2: foto de perfil + cerebro protagonista
   ============================================ */

.icl-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 230px;
    grid-template-areas: "main art" "stats art";
    align-items: center;
    column-gap: 20px;
    row-gap: 18px;
    padding: 30px 32px;
    min-height: 220px;
}

.icl-hero__main {
    grid-area: main;
    display: flex;
    align-items: center;
    gap: 22px;
    min-width: 0;
}

.icl-hero__info { flex: 1; min-width: 0; }

.icl-hero__name {
    position: relative;
    display: inline-block;
    padding-bottom: 12px;
    margin: 2px 0 10px;
}

.icl-hero__name::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: min(140px, 70%);
    height: 10px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='10' viewBox='0 0 140 10' preserveAspectRatio='none'%3E%3Cpath d='M3 7 Q70 11 137 3' stroke='%23E91E7B' stroke-width='2.5' stroke-linecap='round' fill='none'/%3E%3C/svg%3E") no-repeat left center / 100% 100%;
}

.icl-hero__chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
}

.icl-hero__email { color: var(--gris-texto); font-size: .92rem; word-break: break-all; }

.icl-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    margin-top: 14px;
}

.icl-btn--xs { padding: 6px 14px; font-size: .82rem; border-width: 2px; }

.icl-hero__remove {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    font-size: .82rem;
    font-weight: 700;
    color: var(--gris-texto);
    cursor: pointer;
    text-decoration: underline;
}
.icl-hero__remove:hover { color: var(--rosa-principal); }

.icl-hero__status { font-size: .82rem; font-weight: 700; color: var(--verde-check); opacity: 0; transition: opacity .3s; }
.icl-hero__status.is-visible { opacity: 1; }
.icl-hero__status.is-error { color: var(--rosa-hover); }

.icl-hero__stats { grid-area: stats; display: flex; gap: 12px; flex-wrap: wrap; }

/* Arte: blob + cerebro + bocadillo */
.icl-hero__art {
    grid-area: art;
    position: relative;
    align-self: stretch;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    min-height: 180px;
}

.icl-hero__blob {
    position: absolute;
    left: 50%;
    bottom: 6px;
    width: 190px;
    height: 150px;
    transform: translateX(-50%) rotate(-8deg);
    border-radius: 58% 42% 52% 48% / 50% 58% 42% 50%;
    background: var(--rosa-principal);
    opacity: .1;
}

.icl-hero .icl-hero__mascot {
    position: relative;
    inset: auto;
    width: 170px;
    max-width: 100%;
    height: auto;
    z-index: 1;
    opacity: 1;
    filter: drop-shadow(0 8px 14px rgba(233, 30, 123, .18));
    animation: icl-float 4s ease-in-out infinite;
}

@keyframes icl-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

.icl-hero__bubble {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    background: var(--blanco);
    color: var(--rosa-principal);
    font-family: var(--font-script) !important;
    font-weight: 700;
    font-size: 1.2rem;
    padding: 6px 14px;
    border-radius: var(--radio-full);
    box-shadow: var(--sombra-suave);
    white-space: nowrap;
}

.icl-hero__bubble::after {
    content: "";
    position: absolute;
    right: 22px;
    bottom: -7px;
    border: 7px solid transparent;
    border-top-color: var(--blanco);
    border-bottom: 0;
}

/* Foto de perfil editable */
.icl-avatar-edit { position: relative; flex-shrink: 0; }

.icl-avatar-edit__img {
    width: 104px;
    height: 104px;
    border-radius: 50%;
    border: 4px solid var(--blanco);
    box-shadow: var(--sombra-media);
    background: var(--grad-rosa) center / cover no-repeat;
    color: var(--blanco);
    font-family: var(--font-principal);
    font-size: 2.6rem;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    transition: transform .2s;
}

.icl-avatar-edit__img:hover { transform: scale(1.03); }
.icl-avatar-edit__img.has-photo .icl-avatar-edit__initial { display: none; }

.icl-avatar-edit__btn {
    position: absolute;
    right: -2px;
    bottom: 2px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 3px solid var(--blanco);
    background: var(--rosa-principal);
    color: var(--blanco);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: var(--sombra-suave);
    padding: 0;
}
.icl-avatar-edit__btn:hover { background: var(--rosa-hover); }

@media (max-width: 820px) {
    .icl-hero {
        grid-template-columns: 1fr;
        grid-template-areas: "main" "stats";
        padding: 22px 18px;
        position: relative;
    }
    .icl-hero__main { flex-direction: column; align-items: flex-start; gap: 14px; }
    .icl-hero__art {
        position: absolute;
        top: 12px;
        right: 8px;
        width: 120px;
        min-height: 0;
        grid-area: auto;
    }
    .icl-hero .icl-hero__mascot { width: 96px; }
    .icl-hero__blob { width: 100px; height: 80px; bottom: 0; }
    .icl-hero__bubble { font-size: .95rem; padding: 4px 10px; top: -4px; left: -34px; }
    .icl-avatar-edit__img { width: 84px; height: 84px; font-size: 2.1rem; }
    .icl-hero__name { font-size: 1.5rem; }
    .icl-hero__stats .icl-stat { flex: 1 1 130px; }
}

/* ============================================
   Ventana de recorte de la foto
   ============================================ */

html.icl-crop-open { overflow: hidden; }

.icl-crop {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(51, 51, 51, .55);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.icl-crop[hidden] { display: none; }

.icl-crop__dialog {
    width: 100%;
    max-width: 400px;
    background: var(--blanco);
    border-radius: var(--radio-lg);
    box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
    padding: 24px 22px 20px;
    font-family: var(--font-principal);
    text-align: center;
}

.icl-crop__title { margin: 0; font-size: 1.35rem; font-weight: 900; color: var(--verde-principal); }
.icl-crop__hint { margin: 4px 0 16px; color: var(--gris-texto); font-size: .9rem; }

.icl-crop__stage {
    position: relative;
    width: 100%;
    max-width: 300px;
    aspect-ratio: 1;
    margin: 0 auto;
    border-radius: var(--radio-md);
    overflow: hidden;
    background: var(--gris-claro);
    touch-action: none;
}

.icl-crop__canvas { width: 100%; height: 100%; display: block; cursor: grab; }
.icl-crop__canvas:active { cursor: grabbing; }

.icl-crop__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    box-shadow: 0 0 0 999px rgba(255, 255, 255, .7);
    outline: 3px solid var(--rosa-principal);
    outline-offset: -3px;
    pointer-events: none;
}

.icl-crop__zoom {
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 300px;
    margin: 16px auto 0;
    color: var(--gris-texto);
}
.icl-crop__zoom input { flex: 1; accent-color: var(--rosa-principal); }

.icl-crop__msg { min-height: 1.2em; margin: 10px 0 0; font-size: .85rem; font-weight: 700; color: var(--verde-check); }
.icl-crop__msg.is-error { color: var(--rosa-hover); }

.icl-crop__bar { height: 6px; border-radius: 99px; background: var(--rosa-claro); overflow: hidden; margin: 8px auto 0; max-width: 300px; }
.icl-crop__bar span { display: block; height: 100%; width: 0; background: var(--rosa-principal); transition: width .2s; }

.icl-crop__actions { display: flex; gap: 10px; justify-content: center; margin-top: 16px; }
.icl-crop__actions .icl-btn { flex: 1; max-width: 160px; }
.icl-hero__bubble { top: 22px; left: -8px; }
@media (max-width: 820px) { .icl-hero__bubble { top: -2px; left: -40px; } }

/* Sin pie: aire al final del contenido */
body.icl-portal .icl-shell { padding-bottom: 64px; }

/* Cabecera más minimal: línea fina en lugar de la franja rosa de 3px */
.icl-topbar { border-bottom: 1px solid var(--rosa-medio); box-shadow: 0 1px 10px rgba(233, 30, 123, .05); }
