/*
Theme Name: Foro PBIP Child
Theme URI: https://foropbip.org.mx
Author: Red PBIP México
Author URI: https://foropbip.org.mx
Description: Tema hijo del tema Foro PBIP. Úsalo para hacer cambios de estilo o personalización sin modificar el tema padre.
Template: foropbip-theme
Version: 1.0.0
Requires at least: 5.8
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: foropbip-child
Tags: one-page, dark, conference, maritime, child-theme
*/

/* ════════════════════════════════════════════════════════════
   CHECKOUT CLÁSICO — "Finalizar compra"  (acabado premium)
   Fondo oscuro del tema + tarjetas blancas, 2 columnas.
   Requiere checkout clásico: shortcode [woocommerce_checkout].

   Paleta del tema:
     dorado #c9a84c → #e6c96a   navy #003366   cyan #00e5ff
   ════════════════════════════════════════════════════════════ */

:root {
    --co-card:    #ffffff;
    --co-ink:     #16213a;   /* texto principal */
    --co-soft:    #6b7689;   /* texto secundario / labels */
    --co-line:    #e8ebf2;   /* divisores suaves */
    --co-line-2:  #d6dce8;   /* bordes de inputs */
    --co-navy:    #003366;
    --co-gold-1:  #c9a84c;
    --co-gold-2:  #e6c96a;
    --co-gold-h1: #e0ba5a;
    --co-gold-h2: #f0d080;
}

/* Contenedor */
body.woocommerce-checkout .woocommerce {
    max-width: 1180px;
    margin: 0 auto;
    padding: 18px 18px 90px;
}

/* Título de la página centrado */
body.woocommerce-checkout .entry-title,
body.woocommerce-checkout h1.entry-title {
    color: #fff;
    text-align: center;
    font-weight: 800;
    letter-spacing: .01em;
    margin: 8px 0 30px;
}

/* ── Cupón: tarjeta propia, full width arriba ─────────────────── */
body.woocommerce-checkout .woocommerce-form-coupon-toggle { margin-bottom: 22px; }
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    background: var(--co-card);
    border: 1px solid var(--co-line);
    border-left: 4px solid var(--co-gold-1);
    border-radius: 14px;
    color: var(--co-ink);
    padding: 16px 20px;
    font-size: .95rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .18);
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--co-navy); font-weight: 700; }
body.woocommerce-checkout .checkout_coupon.woocommerce-form-coupon {
    background: var(--co-card);
    border: 1px solid var(--co-line);
    border-radius: 14px;
    padding: 22px;
}

/* ── Layout 2 columnas: datos | resumen (fijo) ────────────────── */
@media (min-width: 992px) {
    body.woocommerce-checkout form.checkout.woocommerce-checkout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 420px;
        grid-template-rows: min-content 1fr;   /* fila del título compacta; el resto crece */
        gap: 14px 28px;
        align-items: start;
    }
    body.woocommerce-checkout #customer_details     { grid-column: 1; grid-row: 1 / span 2; }
    body.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; align-self: start; margin: 0; }
    body.woocommerce-checkout #order_review         { grid-column: 2; grid-row: 2; align-self: start; position: sticky; top: 100px; }

    /* Datos del cliente: facturación arriba (ancho completo) e info adicional debajo.
       Nota: en WooCommerce #customer_details YA tiene la clase .col2-set,
       por eso .col-1/.col-2 son hijos directos (sin .col2-set intermedio). */
    body.woocommerce-checkout #customer_details.col2-set .col-1,
    body.woocommerce-checkout #customer_details.col2-set .col-2,
    body.woocommerce-checkout #customer_details .col-1,
    body.woocommerce-checkout #customer_details .col-2 {
        width: 100%;
        float: none;
        max-width: none;
        padding: 0;
    }
    body.woocommerce-checkout #customer_details .col-2 {
        margin-top: 28px;
        padding-top: 24px;
        border-top: 1px solid var(--co-line);
    }
    body.woocommerce-checkout #order_review,
    body.woocommerce-checkout #order_review_heading {
        width: 100%;
        float: none;
        clear: none;
    }
    body.woocommerce-checkout #order_review {
        margin-top: 52px;
    }
}

/* Campos de facturación en rejilla ordenada (Nombre | Apellidos arriba;
   el resto a todo el ancho). Desde 576px; en móvil va apilado. */
@media (min-width: 576px) {
    body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 20px;
    }
    body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row {
        float: none;
        width: auto;
        margin-left: 0;
        margin-right: 0;
        grid-column: 1 / -1;          /* por defecto ocupan todo el ancho */
    }
    body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first { grid-column: 1; }
    body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last  { grid-column: 2; }
}

/* ── Tarjetas ─────────────────────────────────────────────────── */
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review {
    background: var(--co-card);
    border: 1px solid var(--co-line);
    border-radius: 16px;
    padding: 30px 32px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .28);
}

/* Encabezado del resumen (fuera de tarjeta) */
body.woocommerce-checkout #order_review_heading {
    color: #fff;
    font-weight: 800;
    font-size: 1.25rem;
    margin-bottom: 14px;
}

/* Encabezados de sección dentro de tarjetas */
body.woocommerce-checkout #customer_details h3 {
    color: var(--co-ink);
    font-size: 1.2rem;
    font-weight: 800;
    margin: 0 0 22px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--co-line);
}

/* ── Etiquetas pequeñas sobre los campos (estilo referencia) ──── */
body.woocommerce-checkout .woocommerce form .form-row label,
body.woocommerce-checkout #customer_details label {
    color: var(--co-soft);
    font-weight: 600;
    font-size: .8rem;
    letter-spacing: .01em;
    margin-bottom: 7px;
    display: block;
}
body.woocommerce-checkout .woocommerce form .form-row .required { color: #e23b3b; text-decoration: none; border: 0; }
body.woocommerce-checkout .woocommerce form .form-row .optional { color: #9aa4b6; font-weight: 500; }

/* ── Campos ───────────────────────────────────────────────────── */
body.woocommerce-checkout .woocommerce form .form-row input.input-text,
body.woocommerce-checkout .woocommerce form .form-row textarea,
body.woocommerce-checkout #customer_details input.input-text,
body.woocommerce-checkout #customer_details textarea,
body.woocommerce-checkout #customer_details select,
body.woocommerce-checkout .select2-container--default .select2-selection--single {
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid var(--co-line-2);
    border-radius: 10px;
    background: #fff;
    color: var(--co-ink);
    font-size: 15px;
    line-height: 1.4;
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single { display: flex; align-items: center; }
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--co-ink); line-height: normal; padding: 0; }
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
body.woocommerce-checkout .woocommerce form .form-row input.input-text:focus,
body.woocommerce-checkout .woocommerce form .form-row textarea:focus,
body.woocommerce-checkout #customer_details select:focus {
    outline: none;
    border-color: var(--co-gold-1);
    box-shadow: 0 0 0 3px rgba(201, 168, 76, .22);
}
body.woocommerce-checkout .form-row { margin-bottom: 18px; }
/* Campo con error de validación de WooCommerce */
body.woocommerce-checkout .woocommerce-invalid input.input-text,
body.woocommerce-checkout .woocommerce-invalid select { border-color: #e23b3b; }

/* ── Sección de FACTURA CFDI destacada ────────────────────────── */
body.woocommerce-checkout .form-row.mx-factura-toggle {
    background: #fff8ec;
    border: 1px solid var(--co-gold-1);
    border-radius: 12px;
    padding: 16px 18px;
    margin: 22px 0 12px;
}
body.woocommerce-checkout .form-row.mx-factura-toggle label {
    color: #8a6d16; font-weight: 800; font-size: .95rem;
    display: flex; align-items: center; gap: 10px; margin: 0; cursor: pointer;
}
body.woocommerce-checkout .form-row.mx-factura-toggle input[type="checkbox"] {
    width: 20px; height: 20px; accent-color: var(--co-gold-1); cursor: pointer; margin: 0;
}
body.woocommerce-checkout .form-row.mx-factura-field { border-left: 3px solid var(--co-gold-2); padding-left: 16px; }

/* ── Resumen del pedido ───────────────────────────────────────── */
body.woocommerce-checkout #order_review table.shop_table { border: none; margin: 0; }
body.woocommerce-checkout #order_review table.shop_table thead th {
    border: none; color: var(--co-soft);
    text-transform: uppercase; font-size: .74rem; letter-spacing: .05em;
    padding: 0 0 12px;
}
body.woocommerce-checkout #order_review table.shop_table td,
body.woocommerce-checkout #order_review table.shop_table th {
    color: var(--co-ink); border-top: 1px solid var(--co-line); padding: 13px 0;
}
body.woocommerce-checkout #order_review .cart-subtotal th,
body.woocommerce-checkout #order_review .cart-subtotal td { color: var(--co-soft); font-weight: 600; }
body.woocommerce-checkout #order_review .order-total th,
body.woocommerce-checkout #order_review .order-total td {
    font-size: 1.2rem; font-weight: 800; color: var(--co-navy);
}
body.woocommerce-checkout #order_review .product-name { color: var(--co-ink); }

/* ── Caja de pago ─────────────────────────────────────────────── */
body.woocommerce-checkout #payment {
    background: #f6f8fc;
    border: 1px solid var(--co-line);
    border-radius: 14px;
    padding: 6px 20px 22px;
    margin-top: 18px;
}
body.woocommerce-checkout #payment ul.payment_methods { border: none; padding: 16px 0 0; margin: 0; }
body.woocommerce-checkout #payment ul.payment_methods li { color: var(--co-ink); margin: 0 0 10px; }
body.woocommerce-checkout #payment ul.payment_methods li label { font-weight: 700; color: var(--co-ink); }
body.woocommerce-checkout #payment div.payment_box {
    background: #fff; border: 1px solid var(--co-line); border-radius: 10px; color: var(--co-soft);
}
body.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }
body.woocommerce-checkout #payment .woocommerce-privacy-policy-text { color: var(--co-soft); font-size: .85rem; margin-top: 12px; }
body.woocommerce-checkout #payment .woocommerce-privacy-policy-text a,
body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper a { color: var(--co-navy); }
/* Aviso "sin métodos de pago" legible */
body.woocommerce-checkout #order_review .woocommerce-info,
body.woocommerce-checkout #payment .woocommerce-info {
    background: #fff7ed; border-left: 4px solid var(--co-gold-1); color: #7c5e12; border-radius: 10px;
}

/* ── Botón "Realizar el pedido" con el dorado del tema ─────────── */
body.woocommerce-checkout #payment #place_order,
body.woocommerce-checkout #place_order,
body.woocommerce #payment #place_order {
    width: 100%;
    background: linear-gradient(135deg, var(--co-gold-1), var(--co-gold-2)) !important;
    color: var(--co-navy) !important;
    font-weight: 800 !important;
    letter-spacing: .02em;
    border: none !important;
    border-radius: 999px !important;
    padding: 16px 26px !important;
    font-size: 16px !important;
    margin-top: 16px;
    box-shadow: 0 12px 26px rgba(201, 168, 76, .35);
    transition: background .2s ease, transform .08s ease;
    text-shadow: none;
}
body.woocommerce-checkout #place_order:hover,
body.woocommerce #payment #place_order:hover {
    background: linear-gradient(135deg, var(--co-gold-h1), var(--co-gold-h2)) !important;
}
body.woocommerce-checkout #place_order:active { transform: translateY(1px); }

/* ── Avisos generales legibles ────────────────────────────────── */
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-message { border-radius: 10px; }

/* ── Responsive ───────────────────────────────────────────────── */
@media (max-width: 991px) {
    body.woocommerce-checkout #customer_details { margin-bottom: 22px; }
    body.woocommerce-checkout #order_review_heading { color: #fff; margin-top: 6px; }
}


/* ════════════════════════════════════════════════════════════
   FORMULARIO DE REGISTRO — selector de boleto legible
   El <option> heredaba texto blanco sobre desplegable blanco.
   ════════════════════════════════════════════════════════════ */
#foropbip-wc-registro-form select.form-control { color: #ffffff; }
#foropbip-wc-registro-form select.form-control option { color: #0f172a; background: #ffffff; }

/* Resaltado de campos faltantes (la clase la agrega child.js) */
#foropbip-wc-registro-form .field-error {
    border-color: #ff5d5d !important;
    box-shadow: 0 0 0 3px rgba(255, 93, 93, .22) !important;
}
#foropbip-wc-registro-message.error { color: #ffb4b4; font-weight: 600; }
#foropbip-wc-registro-message.success { color: #b9f6c8; font-weight: 600; }


/* ════════════════════════════════════════════════════════════
   PÁGINA DE VERIFICACIÓN QR (plugin) — texto legible
   ════════════════════════════════════════════════════════════ */
.wc-dfa-qr-scan { color: #1f2937; }
.wc-dfa-qr-scan h1 { color: #0f172a; margin-top: 0; }
.wc-dfa-qr-scan table td { color: #1f2937; }
.wc-dfa-qr-scan strong { color: #0f172a; }
.wc-dfa-qr-scan a { color: #003366; font-weight: 600; }

.foropbip-public-invoice {
    min-height: 100vh;
    padding-top: 150px;
}

.foropbip-public-invoice-panel {
    max-width: 920px;
    margin: 0 auto;
    padding: 34px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 18px;
    background: rgba(7, 28, 55, .82);
    color: #fff;
    box-shadow: 0 22px 60px rgba(0, 0, 0, .28);
}

.foropbip-public-invoice-panel h1,
.foropbip-public-invoice-panel h2,
.foropbip-public-invoice-panel h3 {
    color: #fff;
}

.foropbip-public-invoice-form label {
    color: rgba(255, 255, 255, .86);
    font-weight: 700;
}

.foropbip-public-invoice-form input,
.foropbip-public-invoice-form select {
    width: 100%;
    min-height: 46px;
    border-radius: 8px;
}

.foropbip-public-invoice-notice {
    margin: 16px 0;
    padding: 14px 16px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
}

.foropbip-public-invoice-notice--success {
    color: #c8f7d1;
    border-color: rgba(80, 210, 120, .35);
}

.foropbip-public-invoice-notice--error {
    color: #ffd0d0;
    border-color: rgba(255, 90, 90, .4);
}

.woocommerce-account .wc-dfa-customer-qr {
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 16px;
    background: rgba(6, 26, 52, .72);
}

.woocommerce-account .wc-dfa-customer-qr h2,
.woocommerce-account .wc-dfa-customer-qr p {
    color: #fff;
}

.woocommerce-account .wc-dfa-customer-qr > div > div {
    border-color: rgba(215, 181, 109, .26) !important;
    background: rgba(255, 255, 255, .94) !important;
    color: #1f2937 !important;
}

.woocommerce-account .wc-dfa-customer-qr > div > div p,
.woocommerce-account .wc-dfa-customer-qr > div > div strong,
.woocommerce-account .wc-dfa-customer-qr > div > div small {
    color: #1f2937 !important;
}

.woocommerce-account .wc-dfa-customer-qr img {
    padding: 8px;
    border-radius: 12px;
    background: #fff;
}

@media (max-width: 767.98px) {
    .foropbip-public-invoice {
        padding-top: 120px;
    }

    .foropbip-public-invoice-panel {
        padding: 24px 18px;
    }
}

.foropbip-contact-captcha-wrap {
    margin-top: 4px;
}

.foropbip-contact-captcha-label {
    display: block;
    margin-bottom: 10px;
    color: rgba(255,255,255,.9);
    font-size: .95rem;
    font-weight: 600;
}

.foropbip-contact-captcha-input {
    max-width: 220px;
}

.foropbip-contact-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.foropbip-agenda-section .agenda-timeline-container--premium {
    --agenda-accent: #d7b56d;
    --agenda-accent-soft: rgba(215, 181, 109, .18);
    --agenda-surface: rgba(8, 31, 59, .97);
    --agenda-surface-2: rgba(12, 39, 71, .95);
    --agenda-border: rgba(215, 181, 109, .16);
    --agenda-text-soft: rgba(255,255,255,.68);
    background: linear-gradient(180deg, var(--agenda-surface-2), var(--agenda-surface));
    border: 1px solid var(--agenda-border);
    border-radius: 30px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .22);
    overflow: hidden;
}

.foropbip-agenda-section .timeline-nav {
    padding: 28px 34px 20px;
    background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.00));
    border-bottom: 1px solid rgba(255,255,255,.06);
}

.foropbip-agenda-section .nav-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: flex-start;
    margin-bottom: 18px;
}

.foropbip-agenda-section .tab-btn {
    position: relative;
    min-width: 190px;
    min-height: 104px;
    padding: 20px 24px;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
    border: 1px solid rgba(255,255,255,.08);
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

.foropbip-agenda-section .tab-btn:hover {
    transform: translateY(-1px);
    border-color: rgba(215, 181, 109, .24);
    background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
}

.foropbip-agenda-section .tab-btn.active {
    background: linear-gradient(180deg, rgba(215, 181, 109, .22), rgba(215, 181, 109, .14));
    border-color: rgba(215, 181, 109, .5);
    color: #fff;
    box-shadow: 0 12px 24px rgba(0, 0, 0, .18), inset 0 0 0 1px rgba(255,255,255,.04);
}

.foropbip-agenda-section .tab-btn.active::after {
    display: none;
}

.foropbip-agenda-section .tab-title {
    display: block;
    font-size: 1.05rem;
    font-weight: 800;
    margin-bottom: 16px;
}

.foropbip-agenda-section .tab-date {
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    opacity: .82;
}

.foropbip-agenda-section .tab-btn.active .tab-title,
.foropbip-agenda-section .tab-btn.active .tab-date {
    color: #fff;
}

.foropbip-agenda-section .progress-track {
    height: 6px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
}

.foropbip-agenda-section .progress-fill {
    border-radius: 999px;
    background: linear-gradient(90deg, var(--agenda-accent), #cda75d);
}

.foropbip-agenda-section .day-timeline {
    padding: 0 0 38px;
}

.foropbip-agenda-section .timeline-header {
    text-align: center;
    padding: 28px 24px 22px;
    border-bottom: 1px solid rgba(255,255,255,.06);
    margin-bottom: 0;
}

.foropbip-agenda-section .timeline-header h4 {
    margin: 0 0 8px;
    color: #fff;
    font-size: clamp(1.8rem, 2.6vw, 2.8rem);
    font-weight: 800;
    line-height: 1.12;
}

.foropbip-agenda-section .day-subtitle {
    max-width: 760px;
    margin: 0 auto;
    color: var(--agenda-text-soft);
    font-size: .98rem;
}

.foropbip-agenda-section .timeline-track {
    position: relative;
    max-width: 1280px;
    margin: 0 auto;
    padding: 34px 36px 0;
}

.foropbip-agenda-section .timeline-line {
    left: 42px;
    top: 34px;
    bottom: 14px;
    width: 2px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(215, 181, 109, .9), rgba(215, 181, 109, .32));
}

.foropbip-agenda-section .timeline-item {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 22px;
    margin-bottom: 28px;
    padding-left: 0;
}

.foropbip-agenda-section .timeline-marker {
    left: 24px;
    top: 22px;
    width: 34px;
    height: 34px;
    border: 4px solid rgba(255,255,255,.92);
    background: var(--agenda-accent);
    box-shadow: 0 0 0 8px rgba(255,255,255,.04);
}

.foropbip-agenda-section .timeline-marker i {
    opacity: 0;
}

.foropbip-agenda-section .timeline-card {
    width: calc(100% - 92px);
    min-height: 0;
    margin-left: 92px;
    border-radius: 26px;
    padding: 28px 30px 24px;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,249,255,.98));
    box-shadow: 0 16px 32px rgba(3, 15, 32, .14);
    position: relative;
}

.foropbip-agenda-section .timeline-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 6px;
    border-radius: 26px 0 0 26px;
    background: var(--agenda-accent);
}

.foropbip-agenda-section .card-time {
    color: #17497a;
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: .02em;
    margin-bottom: 14px;
}

.foropbip-agenda-section .card-content h5 {
    color: #1f2f4a;
    font-size: clamp(1.35rem, 1.7vw, 1.8rem);
    line-height: 1.22;
    font-weight: 700;
    margin-bottom: 14px;
}

.foropbip-agenda-section .speakers-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
}

.foropbip-agenda-section .speaker-name {
    display: inline-flex;
    align-items: center;
    padding: 9px 16px;
    border-radius: 999px;
    background: #e9eef6;
    color: #6e7f9c;
    font-size: .95rem;
    font-style: normal;
}

.foropbip-agenda-section .event-type {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 8px 16px;
    border-radius: 999px;
    background: var(--agenda-accent-soft);
    color: #876727;
    font-size: .86rem;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.foropbip-agenda-section .timeline-item.registration,
.foropbip-agenda-section .timeline-item.keynote,
.foropbip-agenda-section .timeline-item.panel,
.foropbip-agenda-section .timeline-item.break,
.foropbip-agenda-section .timeline-item.lunch,
.foropbip-agenda-section .timeline-item.conference,
.foropbip-agenda-section .timeline-item.closing,
.foropbip-agenda-section .timeline-item.final {
    --agenda-accent: #d7b56d;
}

@media (max-width: 1200px) {
    .foropbip-agenda-section .timeline-line {
        left: 34px;
    }

    .foropbip-agenda-section .timeline-marker {
        left: 16px;
    }

    .foropbip-agenda-section .timeline-card {
        width: auto;
        margin-left: 82px;
    }
}

@media (max-width: 768px) {
    .foropbip-agenda-section .timeline-nav {
        padding: 20px 18px 18px;
    }

    .foropbip-agenda-section .nav-tabs {
        gap: 10px;
    }

    .foropbip-agenda-section .tab-btn {
        min-width: calc(50% - 5px);
        min-height: 88px;
        padding: 16px 18px;
    }

    .foropbip-agenda-section .timeline-header {
        padding: 22px 18px 18px;
    }

    .foropbip-agenda-section .timeline-track {
        padding: 24px 18px 0;
    }

    .foropbip-agenda-section .timeline-line {
        left: 24px;
    }

    .foropbip-agenda-section .timeline-item {
        gap: 14px;
        margin-bottom: 20px;
    }

    .foropbip-agenda-section .timeline-marker {
        left: 8px;
        width: 30px;
        height: 30px;
    }

    .foropbip-agenda-section .timeline-card {
        min-height: 0;
        margin-left: 52px;
        padding: 20px 18px 18px;
        border-radius: 22px;
    }

    .foropbip-agenda-section .timeline-card::before {
        border-radius: 22px 0 0 22px;
    }

    .foropbip-agenda-section .card-time {
        font-size: 1rem;
        margin-bottom: 12px;
    }

    .foropbip-agenda-section .card-content h5 {
        font-size: 1.2rem;
        margin-bottom: 14px;
    }

    .foropbip-agenda-section .speaker-name,
    .foropbip-agenda-section .event-type {
        font-size: .92rem;
        min-height: 42px;
        padding: 8px 14px;
    }
}


/* ════════════════════════════════════════════════════════════
   HEADER + MENÚ MÓVIL
   1) Compensa la barra de administrador de WordPress (admin bar).
   2) Menú móvil tipo hamburguesa (panel desplegable sólido).
   ════════════════════════════════════════════════════════════ */

/* 1) Cuando estás logueado, la admin bar (32/46px) tapaba el header.
      Bajamos el navbar fijo y los logos esa misma altura. */
body.admin-bar #foropbip-navbar { top: 32px; }
body.admin-bar .fixed-logo { top: calc(var(--pbip-nav-height) + 12px + 32px); }
@media screen and (max-width: 782px) {
    body.admin-bar #foropbip-navbar { top: 46px; }
}

/* 2) Menú móvil (el navbar colapsa por debajo de 768px) */
@media (max-width: 767.98px) {
    #foropbip-navbar .container { position: relative; }

    /* Hamburguesa siempre visible y estilizada */
    #foropbip-navbar .navbar-toggler {
        display: inline-flex;
        align-items: center;
        border: 1px solid rgba(255, 255, 255, .45);
        border-radius: 9px;
        padding: 7px 11px;
        margin-left: auto;
        background: rgba(0, 30, 60, .35);
    }
    #foropbip-navbar .navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(201, 168, 76, .35); }

    /* Panel desplegable */
    #foropbip-navbar #navbarMain {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: rgba(0, 30, 60, .98);
        -webkit-backdrop-filter: blur(10px);
        backdrop-filter: blur(10px);
        border-top: 3px solid #c9a84c;
        border-radius: 0 0 14px 14px;
        box-shadow: 0 14px 34px rgba(0, 0, 0, .45);
        padding: 6px 0 10px;
    }
    /* Oculto por defecto; visible solo con .show (Bootstrap) o .foropbip-open (fallback) */
    #foropbip-navbar #navbarMain:not(.show):not(.foropbip-open) { display: none; }

    #foropbip-navbar .navbar-nav { width: 100%; margin: 0 !important; }
    #foropbip-navbar .navbar-nav .nav-item { width: 100%; }
    #foropbip-navbar .navbar-nav .nav-link {
        padding: 15px 20px !important;
        text-align: center;
        font-size: 1.05rem;
        border-bottom: 1px solid rgba(255, 255, 255, .08);
    }
    #foropbip-navbar .navbar-lang { width: 100%; text-align: center; padding: 12px 0 4px; margin: 0 !important; }

    /* Barra transparente en móvil, también al hacer scroll (sin el fondo azul).
       El menú desplegable abierto sí tiene su propio fondo sólido. */
    #foropbip-navbar,
    #foropbip-navbar.scrolled {
        background: transparent !important;
        box-shadow: none !important;
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
    }
}

/* Mostrar los logos OEA (izq) y CIP (der) también en móvil/tablet
   (el tema padre los oculta por debajo de 992px). */
@media (max-width: 992px) {
    .fixed-logo { display: flex !important; }
}
@media (max-width: 767.98px) {
    .fixed-logo { top: calc(var(--pbip-nav-height) + 8px); }
    body.admin-bar .fixed-logo { top: calc(var(--pbip-nav-height) + 8px + 46px); }
    .fixed-logo-left  { left: 10px; }
    .fixed-logo-right { right: 10px; }
}


/* ════════════════════════════════════════════════════════════
   LOGOS FIJOS (OEA / CIP) — mostrar solo la imagen
   Cuando hay imagen cargada, ocultamos el texto que la acompaña.
   (Si no hay imagen, el texto sigue visible como respaldo.)
   ════════════════════════════════════════════════════════════ */
.fixed-logo {
    transition: opacity .22s ease, visibility .22s ease;
}

.fixed-logo img + .fixed-logo-text { display: none; }

@media (max-width: 767.98px) {
    body.foropbip-scrolled .fixed-logo {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
}

body.woocommerce-account .fixed-logo,
body.woocommerce-checkout .fixed-logo,
body.woocommerce-cart .fixed-logo {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}


/* ════════════════════════════════════════════════════════════
   AGENDA — tarjetas de día (Día 1/2/3) tipo "glass", iguales
   Más transparencia pero legibles; activo en dorado del tema.
   ════════════════════════════════════════════════════════════ */
.agenda-timeline-container .nav-tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 18px;
}

/* Tarjetas iguales */
.agenda-timeline-container .tab-btn {
    flex: 1 1 0;
    min-width: 150px;
    max-width: 360px;            /* más grandes en PC */
    background: rgba(255, 255, 255, .06) !important;
    border: 1px solid rgba(255, 255, 255, .16) !important;
    border-radius: 16px !important;
    color: #fff;
    padding: 22px 26px !important;
    text-align: left;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    box-shadow: none !important;
    transition: background .2s ease, border-color .2s ease, transform .15s ease;
}
@media (min-width: 992px) {
    .agenda-timeline-container .tab-btn { padding: 26px 30px !important; }
    .agenda-timeline-container .tab-title { font-size: 1.2rem; }
}
.agenda-timeline-container .tab-btn:hover {
    background: rgba(255, 255, 255, .12) !important;
    border-color: rgba(201, 168, 76, .55) !important;
    transform: translateY(-2px);
}

/* Estado activo: dorado suave, sin el borde blanco duro */
.agenda-timeline-container .tab-btn.active {
    background: rgba(201, 168, 76, .15) !important;
    border-color: #c9a84c !important;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .28) !important;
}
.agenda-timeline-container .tab-btn.active .tab-title { color: #e6c96a; }

/* Textos */
.agenda-timeline-container .tab-title { color: #fff; font-weight: 700; font-size: 1.05rem; }
.agenda-timeline-container .tab-date  { color: rgba(255, 255, 255, .65); font-size: .78rem; letter-spacing: 1.5px; }

/* Barra de progreso en dorado */
.agenda-timeline-container .progress-track { background: rgba(255, 255, 255, .15); }
.agenda-timeline-container .progress-fill  { background: linear-gradient(90deg, #c9a84c, #e6c96a) !important; }

/* La barra de tabs era "sticky" y se montaba sobre el título "Dia 1 - Lunes"
   al hacer scroll (líneas atravesando el texto). La dejamos en flujo normal
   y separamos el título del progreso. */
.agenda-timeline-container .timeline-nav { position: static !important; }
.agenda-timeline-container .timeline-progress { margin: 6px 0 30px; }
.agenda-timeline-container .timeline-header { margin-top: 12px; position: relative; z-index: 1; }

@media (max-width: 575.98px) {
    .agenda-timeline-container .tab-btn { min-width: 110px; padding: 14px 14px !important; }
}

/* ─── Eventos de la agenda: tarjetas transparentes, un solo color ───
   Sin rellenos de color, sin barras laterales pegadas, texto elegante.
   (Las reglas del padre no usan !important, así que estas ganan y
    neutralizan los colores por tipo: keynote/panel/break/registration…) */

/* Línea/spine sutil en dorado tenue */
.agenda-timeline-container .timeline-line {
    width: 2px !important;
    background: rgba(201, 168, 76, .35) !important;
}

/* Marcador: un solo punto dorado discreto */
.agenda-timeline-container .timeline-marker {
    background: #c9a84c !important;
    border: 2px solid rgba(255, 255, 255, .85) !important;
    box-shadow: none !important;
}
.agenda-timeline-container .timeline-marker i { color: #16213a !important; }

/* Tarjeta de evento: cristal translúcido, sin borde de color a la izquierda */
.agenda-timeline-container .timeline-card {
    background: rgba(255, 255, 255, .06) !important;
    border: 1px solid rgba(255, 255, 255, .14) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
.agenda-timeline-container .timeline-card:hover {
    background: rgba(255, 255, 255, .10) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .25) !important;
}

/* Texto elegante en claro/dorado */
.agenda-timeline-container .card-time {
    color: #e6c96a !important;
    letter-spacing: .5px;
}
.agenda-timeline-container .card-content h5 {
    color: #ffffff !important;
    font-weight: 600;
}
.agenda-timeline-container .speaker-name {
    color: rgba(255, 255, 255, .72) !important;
}

/* Badge tipo evento: solo contorno dorado, sin relleno */
.agenda-timeline-container .event-type {
    background: transparent !important;
    color: #e6c96a !important;
    border: 1px solid rgba(201, 168, 76, .6) !important;
}

/* Delegados del evento: etiqueta + uno por línea con ícono */
.agenda-timeline-container .speakers-preview { margin: 8px 0 12px; }
.agenda-timeline-container .speakers-label {
    display: block;
    font-size: .68rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .55);
    margin-bottom: 6px;
}
.agenda-timeline-container .speaker-name {
    display: block;
    color: rgba(255, 255, 255, .85) !important;
    font-style: normal !important;
    margin-bottom: 3px;
}
.agenda-timeline-container .speaker-name .fa-user { color: #c9a84c; margin-right: 6px; font-size: .85em; }


/* Agenda tipo editorial clean, inspirada en la referencia */
.foropbip-agenda-section .timeline-nav,
.agenda-timeline-container .timeline-nav {
    padding: 26px 34px 16px;
    border-bottom: 0 !important;
}

.foropbip-agenda-section .timeline-progress,
.agenda-timeline-container .timeline-progress {
    display: block !important;
    width: min(100%, 960px);
    margin: 0 auto;
}

.foropbip-agenda-section .nav-tabs,
.agenda-timeline-container .nav-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    width: min(100%, 960px);
    margin: 0 auto 18px;
    border-bottom: 0 !important;
}

.foropbip-agenda-section .tab-btn,
.agenda-timeline-container .tab-btn {
    width: 100%;
    min-width: 0;
    min-height: auto;
    padding: 16px 18px !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, .04) !important;
    border: 1px solid rgba(255, 255, 255, .10) !important;
    box-shadow: none !important;
    text-align: left;
}

.foropbip-agenda-section .tab-title,
.agenda-timeline-container .tab-title {
    margin-bottom: 8px;
    font-size: .98rem !important;
    font-weight: 700 !important;
}

.foropbip-agenda-section .tab-date,
.agenda-timeline-container .tab-date {
    font-size: .72rem !important;
    letter-spacing: .12em !important;
    opacity: .7;
}

.foropbip-agenda-section .timeline-header,
.agenda-timeline-container .timeline-header {
    width: min(100%, 760px);
    margin: 0 auto;
    padding: 30px 18px 18px 112px;
    border-bottom: 0;
    text-align: left;
}

.foropbip-agenda-section .timeline-header h4,
.agenda-timeline-container .timeline-header h4 {
    color: #d7b56d !important;
    font-family: 'Exo 2', sans-serif !important;
    font-size: 2.15rem !important;
    font-weight: 800 !important;
    letter-spacing: 0;
    line-height: 1.1;
    margin-bottom: 10px !important;
}

.foropbip-agenda-section .day-subtitle,
.agenda-timeline-container .day-subtitle {
    margin: 0;
    max-width: 760px;
    color: rgba(255, 255, 255, .92) !important;
    font-size: .98rem !important;
    line-height: 1.45;
}

.foropbip-agenda-section .timeline-track,
.agenda-timeline-container .timeline-track {
    position: relative;
    max-width: 760px;
    margin: 0 auto;
    padding: 4px 18px 12px;
}

.foropbip-agenda-section .timeline-line,
.agenda-timeline-container .timeline-line {
    display: block !important;
    position: absolute;
    left: 48px;
    top: 0;
    bottom: 0;
    width: 1px !important;
    background: linear-gradient(180deg, rgba(215, 181, 109, .85), rgba(215, 181, 109, .38)) !important;
    border-radius: 999px;
}

.foropbip-agenda-section .timeline-item,
.agenda-timeline-container .timeline-item {
    position: relative;
    display: block;
    margin-bottom: 18px;
    min-height: 0;
}

.foropbip-agenda-section .timeline-marker,
.agenda-timeline-container .timeline-marker {
    display: flex !important;
    position: absolute;
    left: 33px;
    top: 38px;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    border: 1px solid rgba(215, 181, 109, .32) !important;
    background: rgba(215, 181, 109, .16) !important;
    box-shadow: none !important;
    align-items: center;
    justify-content: center;
}

.foropbip-agenda-section .timeline-marker::before,
.agenda-timeline-container .timeline-marker::before {
    content: "";
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: #d7b56d;
    box-shadow: 0 0 0 4px rgba(215, 181, 109, .12);
}

.foropbip-agenda-section .timeline-marker i,
.agenda-timeline-container .timeline-marker i {
    display: none;
}

.foropbip-agenda-section .timeline-card,
.agenda-timeline-container .timeline-card {
    position: relative;
    width: auto !important;
    margin-left: 112px !important;
    margin-right: 0 !important;
    border-radius: 18px !important;
    padding: 20px 72px 18px 22px !important;
    background: linear-gradient(180deg, rgba(17, 49, 89, .96), rgba(12, 40, 75, .96)) !important;
    border: 1px solid rgba(255, 255, 255, .05) !important;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .24) !important;
}

.foropbip-agenda-section .timeline-card::before,
.agenda-timeline-container .timeline-card::before {
    display: none !important;
}

.foropbip-agenda-section .card-number,
.agenda-timeline-container .card-number {
    position: absolute;
    top: 18px;
    right: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    border: 1px solid rgba(215, 181, 109, .56);
    color: #d7b56d;
    background: rgba(215, 181, 109, .08);
    font-family: 'Exo 2', sans-serif;
    font-size: .9rem;
    font-weight: 800;
    line-height: 1;
}

.foropbip-agenda-section .card-time,
.agenda-timeline-container .card-time {
    color: rgba(215, 181, 109, .96) !important;
    font-size: .82rem !important;
    font-weight: 500 !important;
    letter-spacing: .02em;
    text-transform: none;
    margin-bottom: 8px;
}

.foropbip-agenda-section .card-content h5,
.agenda-timeline-container .card-content h5 {
    color: #ffffff !important;
    font-family: 'Exo 2', sans-serif !important;
    font-size: 1.28rem !important;
    font-weight: 800 !important;
    line-height: 1.22;
    letter-spacing: 0;
    margin-bottom: 14px !important;
}

.foropbip-agenda-section .speakers-preview,
.agenda-timeline-container .speakers-preview {
    display: block;
    margin: 0 0 12px;
}

.foropbip-agenda-section .speakers-label,
.agenda-timeline-container .speakers-label {
    display: block;
    margin-bottom: 6px;
    color: rgba(215, 181, 109, .88);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.foropbip-agenda-section .speaker-name,
.agenda-timeline-container .speaker-name {
    display: block;
    margin-bottom: 3px;
    padding: 0;
    background: transparent !important;
    color: rgba(255, 255, 255, .78) !important;
    font-size: .92rem;
}

.foropbip-agenda-section .speaker-name .fa-user,
.agenda-timeline-container .speaker-name .fa-user {
    color: rgba(215, 181, 109, .88);
}

.foropbip-agenda-section .event-type,
.agenda-timeline-container .event-type {
    display: inline-flex;
    align-items: center;
    min-height: 0;
    padding: 7px 16px !important;
    border-radius: 999px !important;
    background: transparent !important;
    border: 1px solid rgba(215, 181, 109, .82) !important;
    color: rgba(215, 181, 109, .96) !important;
    font-size: .76rem !important;
    font-weight: 600 !important;
    letter-spacing: .04em;
    box-shadow: none !important;
}

@media (min-width: 992px) {
    .foropbip-agenda-section .timeline-header,
    .agenda-timeline-container .timeline-header {
        width: min(100%, 1080px);
        padding: 30px 32px 18px;
    }

    .foropbip-agenda-section .timeline-track,
    .agenda-timeline-container .timeline-track {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
        max-width: 1080px;
        padding: 8px 32px 26px;
    }

    .foropbip-agenda-section .timeline-line,
    .foropbip-agenda-section .timeline-marker,
    .agenda-timeline-container .timeline-line,
    .agenda-timeline-container .timeline-marker {
        display: none !important;
    }

    .foropbip-agenda-section .timeline-item,
    .agenda-timeline-container .timeline-item {
        margin-bottom: 0;
        min-height: 100%;
    }

    .foropbip-agenda-section .timeline-card,
    .agenda-timeline-container .timeline-card {
        height: 100%;
        margin-left: 0 !important;
    }
}

@media (max-width: 991px) {
    .foropbip-agenda-section .nav-tabs,
    .agenda-timeline-container .nav-tabs {
        grid-template-columns: 1fr;
        width: min(100%, 560px);
    }

    .foropbip-agenda-section .timeline-track,
    .agenda-timeline-container .timeline-track {
        padding: 10px 18px 8px;
    }

    .foropbip-agenda-section .timeline-header,
    .agenda-timeline-container .timeline-header {
        width: min(100%, 560px);
        padding: 22px 18px 14px 64px;
    }

    .foropbip-agenda-section .timeline-line,
    .agenda-timeline-container .timeline-line {
        left: 18px;
    }

    .foropbip-agenda-section .timeline-marker,
    .agenda-timeline-container .timeline-marker {
        left: 3px;
        top: 34px;
    }

    .foropbip-agenda-section .timeline-card,
    .agenda-timeline-container .timeline-card {
        width: calc(100% - 46px) !important;
        margin-left: 46px !important;
        border-radius: 20px !important;
        padding-right: 66px !important;
    }
}

@media (max-width: 575.98px) {
    .foropbip-agenda-section .nav-tabs,
    .agenda-timeline-container .nav-tabs {
        grid-template-columns: 1fr;
    }

    .foropbip-agenda-section .tab-btn,
    .agenda-timeline-container .tab-btn {
        text-align: left;
    }

    .foropbip-agenda-section .timeline-header h4,
    .agenda-timeline-container .timeline-header h4 {
        font-size: 1.8rem !important;
    }

    .foropbip-agenda-section .day-subtitle,
    .agenda-timeline-container .day-subtitle {
        font-size: .95rem !important;
    }
}


/* ════════════════════════════════════════════════════════════
   CONTADOR REGRESIVO DEL HERO (antes del botón Registrarse)
   ════════════════════════════════════════════════════════════ */
.foropbip-hero-countdown-wrap {
    margin: 26px auto 22px;
    text-align: center;
}
.foropbip-hero-countdown-wrap .cd-title {
    color: rgba(255, 255, 255, .75);
    font-size: .8rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin: 0 0 12px;
}
.foropbip-hero-countdown {
    display: inline-flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
}
.foropbip-hero-countdown .cd-item {
    min-width: 78px;
    padding: 14px 10px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(201, 168, 76, .35);
    border-radius: 14px;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    display: flex;
    flex-direction: column;
    align-items: center;
}
.foropbip-hero-countdown .cd-num {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
    color: #e6c96a;
}
.foropbip-hero-countdown .cd-lbl {
    margin-top: 6px;
    font-size: .68rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .7);
}
@media (max-width: 480px) {
    .foropbip-hero-countdown .cd-item { min-width: 64px; padding: 11px 8px; }
    .foropbip-hero-countdown .cd-num { font-size: 1.6rem; }
}

@media (max-width: 768px) {
    .foropbip-agenda-section .timeline-track,
    .agenda-timeline-container .timeline-track {
        --timeline-mobile-axis: 49px;
        --timeline-mobile-track-padding-left: 18px;
        --timeline-mobile-marker-size: 30px;
    }

    .foropbip-agenda-section .timeline-line,
    .agenda-timeline-container .timeline-line {
        left: var(--timeline-mobile-axis) !important;
    }

    .foropbip-agenda-section .timeline-marker,
    .agenda-timeline-container .timeline-marker {
        left: calc(
            var(--timeline-mobile-axis)
            - var(--timeline-mobile-track-padding-left)
            - (var(--timeline-mobile-marker-size) / 2)
        ) !important;
        transform: none !important;
    }
}
