/* Checkout Moderno Global NIASE 1.3.0.
 * No altera precios, iframes, pasarelas ni pedidos.
 */
body.niase-checkout-modern {
    --niase-primary: #1f4670;
    --niase-primary-hover: #163550;
    --niase-ink: #163550;
    --niase-muted: #52657a;
    --niase-green: #16803d;
    --niase-line: #dce5ee;
    --niase-soft: #ffffff;
    background: #fff !important;
    color: var(--niase-ink);
    color-scheme: light;
}

body.niase-checkout-modern .elementor-widget-woocommerce-checkout-page {
    width: 100% !important;
    max-width: 1136px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    --sections-background-color: #fff !important;
    --sections-border-color: var(--niase-line) !important;
    --sections-title-color: var(--niase-ink) !important;
    --sections-secondary-title-color: var(--niase-ink) !important;
    --sections-descriptions-color: var(--niase-muted) !important;
    --sections-messages-color: var(--niase-muted) !important;
    --sections-checkboxes-color: var(--niase-primary) !important;
    --forms-labels-color: var(--niase-ink) !important;
    --forms-fields-normal-color: var(--niase-ink) !important;
    --forms-buttons-normal-text-color: #fff !important;
    --forms-buttons-border-color: var(--niase-primary) !important;
    --order-summary-items-color: var(--niase-ink) !important;
    --order-summary-variations-color: var(--niase-muted) !important;
    --order-summary-items-divider-color: var(--niase-line) !important;
    --order-summary-totals-color: var(--niase-ink) !important;
    --order-summary-totals-divider-color: var(--niase-line) !important;
}
body.niase-checkout-modern .elementor-widget-woocommerce-checkout-page > .elementor-widget-container {
    margin: 0 !important;
    padding: 0 !important;
}
body.niase-checkout-modern .elementor-widget-woocommerce-checkout-page .woocommerce {
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 40px 28px 0;
    color: var(--niase-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-size: 15px;
    line-height: 1.55;
}

/* Encabezado real del checkout, sin pasos simulados ni promesas de pago. */
body.niase-checkout-modern .niase-checkout-intro {
    margin: 0 0 32px;
    text-align: left;
}
body.niase-checkout-modern .niase-checkout-brandbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 28px;
    padding-bottom: 25px;
    border-bottom: 1px solid var(--niase-line);
}
body.niase-checkout-modern .niase-checkout-brand {
    color: var(--niase-primary);
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -.7px;
    line-height: 1;
}
body.niase-checkout-modern .niase-checkout-brand span {
    display: block;
    margin-top: 8px;
    color: var(--niase-muted);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .25px;
}
body.niase-checkout-modern .niase-checkout-eyebrow {
    color: var(--niase-muted);
    font-size: 12px;
    font-weight: 600;
}
body.niase-checkout-modern .niase-checkout-intro h1 {
    margin: 0 0 10px;
    color: var(--niase-ink);
    font-family: inherit;
    font-size: clamp(28px, 3vw, 38px);
    font-weight: 750;
    line-height: 1.18;
    letter-spacing: -1px;
}
body.niase-checkout-modern .niase-checkout-intro p {
    margin: 0;
    color: var(--niase-muted);
    font-size: 16px;
    line-height: 1.6;
}

/* Conserva el orden nativo: datos, resumen, cupón y pago. */
body.niase-checkout-modern form.woocommerce-checkout {
    width: 100%;
    max-width: none;
    margin: 0;
}
body.niase-checkout-modern form.woocommerce-checkout .e-checkout__container {
    display: grid !important;
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr) !important;
    align-items: start;
    gap: 28px !important;
}
body.niase-checkout-modern form.woocommerce-checkout .e-checkout__column {
    width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
}
body.niase-checkout-modern form.woocommerce-checkout #customer_details .col-1 {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
body.niase-checkout-modern form.woocommerce-checkout .e-woocommerce-login-section,
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-billing-fields,
body.niase-checkout-modern form.woocommerce-checkout .e-checkout__column-inner {
    margin: 0 0 20px !important;
    padding: 28px !important;
    border: 1px solid var(--niase-line) !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 5px 20px rgb(22 53 80 / 4%) !important;
}
body.niase-checkout-modern form.woocommerce-checkout .e-woocommerce-login-section {
    padding: 18px 24px !important;
    background: #fff !important;
    box-shadow: none !important;
}
body.niase-checkout-modern form.woocommerce-checkout .e-checkout__order_review,
body.niase-checkout-modern form.woocommerce-checkout .e-checkout__order_review-2,
body.niase-checkout-modern form.woocommerce-checkout .e-coupon-box {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
body.niase-checkout-modern form.woocommerce-checkout h3,
body.niase-checkout-modern form.woocommerce-checkout h3#order_review_heading {
    margin: 0 0 24px !important;
    color: var(--niase-ink) !important;
    font-family: inherit !important;
    font-size: 19px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    letter-spacing: -.3px !important;
}
body.niase-checkout-modern form.woocommerce-checkout .e-checkout-secondary-title,
body.niase-checkout-modern form.woocommerce-checkout .e-description {
    color: var(--niase-muted) !important;
    font-family: inherit !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
}
body.niase-checkout-modern form.woocommerce-checkout a:not(.button) {
    color: var(--niase-primary);
    text-underline-offset: 3px;
}
body.niase-checkout-modern form.woocommerce-checkout a:not(.button):hover { text-decoration: underline; }
body.niase-checkout-modern form.woocommerce-checkout :is(.e-show-login, .e-show-coupon-form) {
    color: var(--niase-primary) !important;
    font-weight: 650;
    text-decoration: underline;
}

/* Los campos conservan nombres, tipos, obligatoriedad y visibilidad nativos. */
body.niase-checkout-modern form.woocommerce-checkout .form-row { margin-bottom: 18px !important; }
body.niase-checkout-modern form.woocommerce-checkout .form-row label {
    margin-bottom: 8px;
    color: var(--niase-ink) !important;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
}
body.niase-checkout-modern form.woocommerce-checkout :is(input.input-text, textarea.input-text, select) {
    min-height: 50px;
    padding: 13px 14px !important;
    border: 1px solid #cbd7e3 !important;
    border-radius: 9px !important;
    background: #fff !important;
    color: var(--niase-ink) !important;
    box-shadow: none;
    font-family: inherit;
    font-size: 16px !important;
    line-height: 1.45;
    transition: border-color .15s, box-shadow .15s;
}
body.niase-checkout-modern form.woocommerce-checkout :is(input.input-text, textarea)::placeholder {
    color: #64758a !important;
    opacity: 1;
}
body.niase-checkout-modern form.woocommerce-checkout :is(input.input-text, textarea.input-text, select):focus {
    outline: 2px solid var(--niase-primary);
    outline-offset: 2px;
    border-color: var(--niase-primary) !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--niase-primary) 12%, #fff);
}
body.niase-checkout-modern form.woocommerce-checkout .select2-container .select2-selection--single {
    min-height: 50px;
    border: 1px solid #cbd7e3 !important;
    border-radius: 9px !important;
    background: #fff !important;
}
body.niase-checkout-modern form.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
    padding: 10px 40px 10px 14px;
    color: var(--niase-ink);
    line-height: 28px;
}
body.niase-checkout-modern form.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
    top: 12px;
    right: 10px;
}
body.niase-checkout-modern form.woocommerce-checkout :is(a, button, input[type="checkbox"], input[type="radio"]):focus-visible {
    outline: 2px solid var(--niase-primary);
    outline-offset: 3px;
}
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-invalid input.input-text {
    border-color: #b33434 !important;
}
body.niase-checkout-modern .niase-checkout-field-note {
    clear: both;
    margin: 6px 0 0;
    padding-top: 8px;
    color: var(--niase-muted);
    font-size: 13px;
    line-height: 1.6;
}

/* Los importes siguen siendo la salida nativa de WooCommerce. */
body.niase-checkout-modern form.woocommerce-checkout table.shop_table {
    width: 100%;
    margin: 0 0 22px !important;
    border: 0 !important;
    border-collapse: collapse;
    color: var(--niase-ink);
    table-layout: auto;
}
body.niase-checkout-modern form.woocommerce-checkout table.shop_table :is(th, td) {
    padding: 14px 0 !important;
    color: var(--niase-ink) !important;
    border-color: var(--niase-line) !important;
    font-size: 14px;
    line-height: 1.55;
    vertical-align: top;
}
body.niase-checkout-modern form.woocommerce-checkout table.shop_table thead th {
    padding-top: 0 !important;
    color: var(--niase-muted) !important;
    font-size: 12px;
    font-weight: 500;
}
body.niase-checkout-modern form.woocommerce-checkout table.shop_table :is(th, td):last-child {
    padding-left: 16px !important;
    text-align: right;
}
body.niase-checkout-modern form.woocommerce-checkout table.shop_table .product-name { overflow-wrap: anywhere; }
body.niase-checkout-modern form.woocommerce-checkout table.shop_table .amount {
    color: inherit !important;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
body.niase-checkout-modern form.woocommerce-checkout table.shop_table .product-quantity {
    color: var(--niase-muted);
    font-size: 12px;
    white-space: nowrap;
}
body.niase-checkout-modern form.woocommerce-checkout table.shop_table tfoot th { font-weight: 500; }
body.niase-checkout-modern form.woocommerce-checkout table.shop_table .cart-subtotal { display: none; }
body.niase-checkout-modern form.woocommerce-checkout table.shop_table .order-total :is(th, td) {
    padding-top: 20px !important;
    border-top: 1px solid var(--niase-line) !important;
    font-weight: 700;
}
body.niase-checkout-modern form.woocommerce-checkout table.shop_table .order-total td {
    color: var(--niase-green) !important;
    font-size: 26px;
    line-height: 1.2;
}
body.niase-checkout-modern form.woocommerce-checkout .e-coupon-box { padding: 0 0 20px !important; }
body.niase-checkout-modern form.woocommerce-checkout .e-coupon-box p { margin: 0; }

/* Las pasarelas conservan sus botones, iframes y lógica originales. */
body.niase-checkout-modern form.woocommerce-checkout #payment {
    margin: 0 !important;
    padding: 22px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid var(--niase-line) !important;
    border-radius: 0 !important;
    background: transparent !important;
}
body.niase-checkout-modern form.woocommerce-checkout #payment ul.payment_methods {
    margin: 0 0 14px !important;
    padding: 0 !important;
    border: 0 !important;
}
body.niase-checkout-modern form.woocommerce-checkout #payment ul.payment_methods > li { margin-bottom: 12px; }
body.niase-checkout-modern form.woocommerce-checkout #payment ul.payment_methods > li > label {
    color: var(--niase-ink);
    font-size: 16px;
    font-weight: 650;
}
body.niase-checkout-modern form.woocommerce-checkout #payment div.payment_box {
    margin: 10px 0 0;
    padding: 14px;
    border: 0;
    border-radius: 9px;
    background: var(--niase-soft);
    color: var(--niase-muted);
    font-size: 13px;
    line-height: 1.6;
}
body.niase-checkout-modern form.woocommerce-checkout #payment div.payment_box::before { content: none; }
body.niase-checkout-modern form.woocommerce-checkout #payment .place-order {
    margin: 0 !important;
    padding: 0 !important;
}
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-privacy-policy-text,
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
    color: var(--niase-muted);
    font-size: 13px;
    line-height: 1.6;
}

/* Nord expresa el consentimiento mediante la acción de pagar. El campo nativo
 * permanece marcado y enviado para conservar la validación de WooCommerce. */
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper p.validate-required {
    margin: 14px 0 18px !important;
}
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--niase-muted) !important;
    cursor: default !important;
    pointer-events: none;
}
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper #terms,
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper abbr.required {
    display: none !important;
}
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox::before,
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox::after,
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text::before,
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text::after {
    display: none !important;
    content: none !important;
}
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text {
    display: inline !important;
}
body.niase-checkout-modern form.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text a {
    color: var(--niase-primary) !important;
    font-weight: 650;
    pointer-events: auto;
    text-decoration: underline;
    text-underline-offset: 3px;
}
body.niase-checkout-modern form.woocommerce-checkout button.button {
    min-height: 48px;
    padding: 12px 22px;
    border: 1px solid var(--niase-primary) !important;
    border-radius: 9px !important;
    background: var(--niase-primary) !important;
    color: #fff !important;
    font-family: inherit;
    font-size: 15px;
    font-weight: 650;
}
body.niase-checkout-modern form.woocommerce-checkout button.button:hover {
    border-color: var(--niase-primary-hover) !important;
    background: var(--niase-primary-hover) !important;
}
body.niase-checkout-modern form.woocommerce-checkout button.button:disabled {
    opacity: .55;
    cursor: not-allowed;
}
body.niase-checkout-modern form.woocommerce-checkout :is(.woocommerce-error, .woocommerce-message, .woocommerce-info) {
    border-radius: 9px;
    font-size: 14px;
    line-height: 1.6;
}

body.niase-checkout-modern form.woocommerce-checkout .niase-summary-product {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr);
    align-items: start;
    gap: 14px;
    text-align: left;
}
body.niase-checkout-modern form.woocommerce-checkout .niase-product-image {
    width: 80px !important;
    height: 80px !important;
    max-width: 100% !important;
    border: 1px solid var(--niase-line);
    border-radius: 8px;
    background: #fff;
    object-fit: contain;
}
body.niase-checkout-modern form.woocommerce-checkout .niase-product-name {
    color: var(--niase-ink);
    font-weight: 600;
    overflow-wrap: anywhere;
}
body.niase-checkout-modern form.woocommerce-checkout table.shop_table .niase-original-price th,
body.niase-checkout-modern form.woocommerce-checkout table.shop_table .niase-scholarship th {
    font-weight: 500;
}
body.niase-checkout-modern form.woocommerce-checkout table.shop_table .niase-original-price td {
    color: var(--niase-muted) !important;
}
body.niase-checkout-modern form.woocommerce-checkout table.shop_table .niase-scholarship :is(th, td),
body.niase-checkout-modern form.woocommerce-checkout table.shop_table .order-total th {
    color: var(--niase-green) !important;
}

@media (max-width: 820px) {
    body.niase-checkout-modern .elementor-widget-woocommerce-checkout-page .woocommerce {
        padding: 24px 18px 0;
    }
    body.niase-checkout-modern form.woocommerce-checkout .e-checkout__container {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 0 !important;
    }
    body.niase-checkout-modern form.woocommerce-checkout .e-checkout__column-inner {
        position: static !important;
        width: 100% !important;
    }
    body.niase-checkout-modern form.woocommerce-checkout .e-woocommerce-login-section,
    body.niase-checkout-modern form.woocommerce-checkout .woocommerce-billing-fields,
    body.niase-checkout-modern form.woocommerce-checkout .e-checkout__column-inner {
        padding: 22px !important;
        border-radius: 13px !important;
    }
    body.niase-checkout-modern .niase-checkout-intro { margin-bottom: 25px; }
    body.niase-checkout-modern .niase-checkout-brandbar { margin-bottom: 24px; }
}

@media (max-width: 480px) {
    body.niase-checkout-modern .elementor-widget-woocommerce-checkout-page .woocommerce {
        padding: 22px 14px 0;
    }
    body.niase-checkout-modern form.woocommerce-checkout .niase-summary-product {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }
    body.niase-checkout-modern form.woocommerce-checkout :is(.woocommerce-billing-fields, .e-login-wrap) :is(.form-row-first, .form-row-last) {
        float: none !important;
        width: 100% !important;
    }
    body.niase-checkout-modern form.woocommerce-checkout .e-woocommerce-login-section,
    body.niase-checkout-modern form.woocommerce-checkout .woocommerce-billing-fields,
    body.niase-checkout-modern form.woocommerce-checkout .e-checkout__column-inner {
        padding: 20px !important;
    }
    body.niase-checkout-modern .niase-checkout-intro h1 { font-size: 29px; }
    body.niase-checkout-modern .niase-checkout-intro p { font-size: 14px; }
    body.niase-checkout-modern .niase-checkout-eyebrow {
        max-width: 80px;
        text-align: right;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.niase-checkout-modern form.woocommerce-checkout :is(input.input-text, textarea.input-text, select) {
        transition: none;
    }
}
