/* Header fijo */
#header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: var(--color-white);
}

/* Compensar la altura del header fijo para que el contenido (carrusel)
   quede pegado justo debajo, sin hueco ni solape. Estos valores son el
   fallback por breakpoint (altura del header cerrado); custom.js ajusta el
   margen a la altura real medida en runtime (mas robusto ante cambios de
   contenido del header). */
main > #wrapper {
    margin-top: 109px !important; /* movil/tablet: barra rosa + buscador */
}

@media (min-width: 992px) {
    main > #wrapper {
        margin-top: 128px !important; /* escritorio: barra rosa + header-top */
    }
}

/* ============================================================
   BARRA SUPERIOR ROSA (header-nav)
   ============================================================ */

.header-nav {
    background: var(--color-pink) !important;
    min-height: auto !important;
    padding: 8px 0 !important;
    border-bottom: none !important;
}

/* ESCRITORIO (>=992): barra rosa con todo el contenido alineado a la DERECHA.
   El texto de "Envíos" (nav1) queda justo a la izquierda de los botones de
   cuenta (nav2) con una separacion, para que el logo (posicionado sobre la
   esquina izquierda) no lo tape. Va dentro de min-width:992 para no ganarle
   por especificidad al hidden-md-down de Bootstrap, que oculta esta barra en
   tablet/movil (<=991), donde se usa la barra movil. */
@media (min-width: 992px) {
    .header-nav > .container > .row > .hidden-md-down {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 20px;
    }

    .header-nav .hidden-md-down > [class*="col-"] {
        float: none !important;
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: none !important;
    }

    .header-nav .right-nav {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        margin-left: 0 !important;
    }
}

/* Reset TOTAL de márgenes/paddings del parent en la barra */
#header .header-nav #contact-link,
#header .header-nav #_desktop_contact_link,
#header .header-nav #_desktop_user_info,
#header .header-nav #_desktop_user_info .user-info,
#header .header-nav .right-nav > * {
    margin: 0 !important;
    padding: 0 !important;
    line-height: normal !important;
    display: flex !important;
    align-items: center !important;
}

/* Texto de envío */
#header .header-nav #contact-link p {
    font-family: var(--font-montserrat);
    font-size: 12px !important;
    padding: 0 !important;
    margin: 0 !important;
    color: var(--color-white) !important;
    white-space: nowrap;
    line-height: normal !important;
}

/* Botón INICIAR SESIÓN — sólido, uppercase, centrado */
#_desktop_user_info .user-info a {
    font-family: var(--font-montserrat);
    font-size: 10px !important;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 0 14px !important;
    margin: 0 !important;
    height: 22px;
    color: var(--color-white) !important;
    white-space: nowrap;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center;
    background: var(--color-dark-pink);
    border-radius: 11px;
    transition: background 0.2s;
    line-height: 1 !important;
}

#_desktop_user_info .user-info a:hover {
    background: var(--color-blue);
    text-decoration: none;
}

#_desktop_user_info .user-info a .material-icons {
    font-size: 12px !important;
    margin-right: 4px;
    line-height: 1 !important;
}

#_desktop_user_info .user-info a.logout {
    margin-left: 8px !important;
}

/* ============================================================
   MENÚ + BÚSQUEDA + CARRITO (header-top)
   ============================================================ */

.header-top {
    padding: 12px 0 !important;
}

.header-top-right {
    display: flex !important;
    align-items: center !important;
}

/* Menú ocupa el espacio disponible, búsqueda+carrito a la derecha */
#_desktop_top_menu {
    flex: 1;
}

#search_widget {
    flex: none;
    overflow: visible !important;
}

#search_widget input[type="text"] {
    margin-top: 0 !important;
}

#search_widget .search {
    margin: 0 !important;
    padding: 0 !important;
    top: 50% !important;
    transform: translateY(calc(-50% + 1px));
    left: 10px;
    font-size: 20px !important;
}

/* Autocomplete dropdown */
.ui-autocomplete {
    z-index: 1001 !important;
    font-family: var(--font-montserrat) !important;
    font-size: 13px !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 4px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    margin-top: 4px !important;
}

.ui-autocomplete .ui-menu-item a {
    font-family: var(--font-montserrat) !important;
    font-size: 13px !important;
    padding: 6px 12px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px;
}

.ui-autocomplete .autocomplete-thumbnail {
    width: 40px;
    height: 40px;
    object-fit: contain;
    flex-shrink: 0;
}

/* MOVIL Y TABLET: el dropdown del autocompletado imita al menu: fijo bajo el
   buscador, con alto limitado y scroll interno SOLO si hace falta, y sin scroll
   horizontal. El core (ps_searchbar.css) le pone min-height:100% en movil, con
   lo que ocupaba casi toda la pantalla (aparecia scroll vertical aunque hubiera
   pocos resultados) y, al ser position:absolute, empujaba el scroll de la
   pagina. En tablet el header es el movil, asi que aplica igual (hasta 991). */
@media (max-width: 991.98px) {
    /* Pegado al borde inferior del header (109px), sin margen ni esquinas
       redondeadas; ocupa todo el ancho. */
    .ui-autocomplete.searchbar-autocomplete {
        position: fixed !important;
        top: 109px !important;
        left: 0 !important;
        right: 0 !important;
        width: auto !important;
        min-height: 0 !important;
        max-height: calc(100vh - 109px) !important;
        margin-top: 0 !important;
        border-radius: 0 !important;
        border-left: none !important;
        border-right: none !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }
    /* nombres largos: que no fuercen ancho ni scroll horizontal interno */
    .ui-autocomplete .ui-menu-item a {
        min-width: 0;
    }
    .ui-autocomplete .ui-menu-item .product {
        min-width: 0;
        overflow-wrap: anywhere;
    }
    /* Boton limpiar (X): gris oscuro como la lupa (venia en blanco). */
    .header-top #search_widget .clear {
        color: #8a8a8a !important;
    }
}

#_desktop_cart_target {
    order: 99;
    margin-left: 8px;
    display: flex;
    align-items: center;
}

/* Carrito en header-top (movido por JS) */
#_desktop_cart .blockcart {
    width: 52px;
    height: 52px;
    background-color: var(--color-blue);
    border-radius: 50%;
    position: relative;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

#_desktop_cart .cart-preview .shopping-cart {
    color: var(--color-white);
    font-size: 24px;
    margin: 0;
    line-height: 1;
}

#_desktop_cart .cart-preview .hidden-sm-down {
    display: none !important;
}

#_desktop_cart .cart-preview .cart-products-count {
    background-color: #2a6fa8;
    color: var(--color-white);
    width: 18px;
    height: 18px;
    position: absolute;
    top: -2px;
    right: -2px;
    border-radius: 50%;
    line-height: 18px;
    text-align: center;
    font-size: 10px;
    padding: 0;
}

/* Oferta encima del nav (banner, oculto por defecto) */
.header-banner {
    background: var(--color-pink) !important;
}

.header-banner p {
    margin-bottom: 0;
    color: var(--color-white);
    text-align: center;
}

/* ============================================================
   MOVIL: area tactil minima de los iconos de accion del header
   (cuenta y carrito quedaban en ~24x22 / 40x22, por debajo del
   minimo accesible de 44px). Se agranda el area clicable sin
   cambiar el tamano visual del icono.
   ============================================================ */
@media (max-width: 991.98px) {
    #_mobile_user_info .user-info a,
    #_mobile_cart .blockcart .header > a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
    }
}

/* ============================================================
   MOVIL: franja rosa del header (DinyDon)
   - Iconos (hamburguesa, cuenta, carrito) en blanco, sin fondo.
   - Los tres bloques de accion alineados verticalmente al centro.
   - Logo mas grande (se veia diminuto; el PNG nativo es 200x142).
   ============================================================ */
@media (max-width: 991.98px) {
    /* Iconos y contador en blanco sobre el rosa */
    #menu-icon,
    #menu-icon i,
    #menu-icon .material-icons,
    #_mobile_user_info .user-info a,
    #_mobile_user_info .user-info a .material-icons,
    #_mobile_cart .blockcart,
    #_mobile_cart .blockcart a,
    #_mobile_cart .blockcart i,
    #_mobile_cart .blockcart .material-icons,
    #_mobile_cart .blockcart .cart-products-count {
        color: var(--color-white) !important;
    }

    /* Carrito móvil: mismo patrón robusto que el desktop. El icono se centra por
       flex en toda la cadena (blockcart > header > a) y el contador es un badge
       absoluto, de modo que su valor (0 o N) nunca desplaza el icono. Así queda
       alineado con el resto de iconos de la barra en cualquier estado. Se anulan
       los márgenes y paddings heredados del tema padre. */
    #_mobile_cart .blockcart,
    #_mobile_cart .blockcart .header,
    #_mobile_cart .blockcart .header > a {
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }

    #_mobile_cart .blockcart,
    #_mobile_cart .blockcart .header > a {
        cursor: pointer;
    }

    #_mobile_cart .blockcart .header > a {
        position: relative;
        min-width: 44px;
        min-height: 44px;
    }

    #_mobile_cart .blockcart .shopping-cart {
        margin: 0;
        line-height: 1;
    }

    /* Contador como badge en la esquina superior derecha del icono. */
    #_mobile_cart .blockcart .cart-products-count {
        position: absolute;
        top: 4px;
        right: 2px;
        min-width: 15px;
        height: 15px;
        padding: 0 3px;
        border-radius: 8px;
        background: var(--color-white);
        color: var(--color-pink) !important;
        font-size: 10px;
        font-weight: 700;
        line-height: 15px;
        text-align: center;
    }

    /* Sin productos el bloque lleva la clase .inactive: se oculta el badge para no
       mostrar un "0". */
    #_mobile_cart .blockcart.inactive .cart-products-count {
        display: none;
    }
    /* Cuenta y carrito solo con icono en la barra movil. Las etiquetas
       ("Iniciar sesión", "Carrito") usan .hidden-sm-down (Bootstrap las oculta
       solo <=767); en tablet reaparecian, asi que las ocultamos hasta 991. */
    #_mobile_user_info .hidden-sm-down,
    #_mobile_cart .hidden-sm-down {
        display: none !important;
    }

    /* Fila movil como flex: todo centrado verticalmente en la franja rosa.
       El layout original usaba floats (top-align) y dejaba el conjunto bajo.
       Orden visual: hamburguesa | logo (centro) | cuenta | carrito. */
    /* El padding vertical de .header-nav empujaba el contenido hacia abajo;
       se elimina en movil para que el flex centre dentro de la franja. */
    .header-nav {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
    #header .header-nav .hidden-lg-up.mobile {
        display: flex !important;
        align-items: center !important;
        min-height: 50px;
    }
    #header .header-nav .hidden-lg-up.mobile > .clearfix {
        display: none !important;
    }
    #menu-icon {
        float: none !important;
        order: 1;
    }
    #_mobile_logo {
        float: none !important;
        order: 2;
        flex: 1 1 auto;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    #_mobile_user_info {
        float: none !important;
        order: 3;
        display: flex;
        align-items: center;
    }
    #_mobile_cart {
        float: none !important;
        order: 4;
        display: flex;
        align-items: center;
        /* Un poco de aire respecto al borde derecho (quedaba pegado). */
        margin-right: 8px;
    }

    /* Logo (wordmark DIN&DON) mas grande */
    #_mobile_logo img {
        max-height: 40px !important;
        height: 40px !important;
        width: auto !important;
    }

    /* El .user-info arrastra un margin-top:15px del layout de escritorio */
    #_mobile_user_info .user-info {
        margin-top: 0 !important;
    }
}

/* MOVIL: normaliza el line-height de los iconos del header para que el
   centrado vertical (flex align-items:center) sea consistente. El material-icons
   de la hamburguesa traia line-height:50px y quedaba pegado abajo. */
@media (max-width: 991.98px) {
    #menu-icon i,
    #menu-icon .material-icons,
    #_mobile_user_info .user-info a .material-icons,
    #_mobile_cart .blockcart i,
    #_mobile_cart .blockcart .material-icons {
        line-height: 1 !important;
        vertical-align: middle !important;
    }
}

/* ============================================================
   MOVIL: menú, buscador, hamburguesa y banner (DinyDon)
   ============================================================ */
@media (max-width: 991.98px) {
    /* La columna de contenido ocupa todo el ancho (el logo desktop col-md-2
       esta oculto en <=991), para que el buscador no quede desplazado a la
       derecha en tablet igual que en movil. */
    .header-top .header-top-right {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }
    /* Buscador a lo ancho de la fila. El tema padre limita .search-widgets a
       max-width:13rem (208px) desde 576px, por eso en tablet no se extendia;
       se anula ese tope. */
    .header-top #search_widget {
        flex: 1 1 auto !important;
        width: 100% !important;
        max-width: none !important;
        display: block !important;
        margin-bottom: 0 !important; /* quitaba el centrado vertical en el flex */
    }
    .header-top #search_widget form,
    #search_widget form input {
        width: 100% !important;
    }
    /* Buscador: fondo gris claro, lupa y placeholder gris, texto gris oscuro */
    .header-top #search_widget form input {
        background: #ededed !important;
        color: #555 !important;
    }
    .header-top #search_widget .ui-autocomplete-input::placeholder {
        color: #8a8a8a !important;
        opacity: 1;
    }
    .header-top #search_widget .search {
        color: #8a8a8a !important;
    }

    /* Hamburguesa: cambia a X cuando el menú está abierto (#header.is-open) */
    #header.is-open #menu-icon i {
        font-size: 0 !important;
    }
    #header.is-open #menu-icon i::before {
        content: "\E5CD"; /* close */
        font-size: 24px;
        line-height: 1;
    }

    /* Menú desplegable: ocupa el alto restante del viewport y hace scroll
       INTERNO (nav rosa y buscador quedan fijos arriba). */
    #header.is-open #mobile_top_menu_wrapper {
        display: block !important;
        height: calc(100vh - 97px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Texto de envíos (contacto) del menú movil: Montserrat en peso normal
       (la VAG Rounded solo viene en trazo grueso y se veia en negrita). */
    #_mobile_contact_link #contact-link p,
    #_mobile_contact_link p {
        font-family: var(--font-montserrat), sans-serif !important;
        font-weight: 400 !important;
    }
}

/* MOVIL: enlaces de cuenta/contacto añadidos al menú (mismo estilo que las
   categorias: VAG Rounded, gris, mayusculas). */
@media (max-width: 991.98px) {
    .mobile-menu-account {
        display: block;
    }
    .mobile-menu-account-link {
        display: block;
        font-family: 'vagroundedblackssibold', var(--font-montserrat), sans-serif;
        font-size: 16px;
        text-transform: uppercase;
        color: #232323 !important;
        padding: 17px 20px;
        border-bottom: 1px solid #f6f6f6; /* mismo separador que las categorias */
        text-align: center;
        text-decoration: none;
    }
    .mobile-menu-account-link:hover,
    .mobile-menu-account-link:focus {
        color: var(--color-pink);
        text-decoration: none;
    }
}

/* ============================================================
   MOVIL: ajustes finales del menú/buscador (DinyDon)
   ============================================================ */
@media (max-width: 991.98px) {
    /* Opciones del menú en negro */
    #_mobile_top_menu .top-menu a,
    #mobile_top_menu_wrapper .mobile-menu-account-link {
        color: #232323 !important;
    }

    /* Buscador centrado verticalmente en su fila (menú cerrado) */
    .header-top .header-top-right {
        align-items: center !important;
    }

    /* Menú en columna: el bloque inferior (envíos/contacto) se ancla abajo del todo */
    #header.is-open #mobile_top_menu_wrapper {
        display: flex !important;
        flex-direction: column;
    }
    #header.is-open #mobile_top_menu_wrapper .js-top-menu-bottom {
        margin-top: auto;
    }
}

/* ============================================================
   MOVIL: menú centrado + sin sombra al abrir (DinyDon)
   ============================================================ */
@media (max-width: 991.98px) {
    /* Opciones del menú centradas horizontalmente */
    #_mobile_top_menu .top-menu a,
    #mobile_top_menu_wrapper .mobile-menu-account-link,
    #_mobile_contact_link,
    #_mobile_contact_link #contact-link,
    #_mobile_contact_link p {
        text-align: center !important;
    }

    /* Quita el hueco extra entre categorias y los enlaces de cuenta
       para que el separador sea uniforme */
    #_mobile_top_menu .top-menu {
        margin-bottom: 0 !important;
    }

    /* La sombra del header fijo cae al fondo del menú abierto: se quita */
    #header.is-open {
        box-shadow: none !important;
    }
}

/* MOVIL: restaura el hover de las opciones del menu (el color negro forzado lo tapaba) */
@media (max-width: 991.98px) {
    #_mobile_top_menu .top-menu a:hover,
    #_mobile_top_menu .top-menu a:focus,
    #mobile_top_menu_wrapper .mobile-menu-account-link:hover,
    #mobile_top_menu_wrapper .mobile-menu-account-link:focus {
        color: var(--color-pink) !important;
    }
}

/* ============================================================
   MOVIL: submenú desplegable (acordeón) de las categorías (DinyDon)
   El submenú de escritorio es un popover en grid de 4 columnas; en movil
   se muestra como lista vertical a lo ancho al desplegar con el toggle +/-.
   ============================================================ */
@media (max-width: 991.98px) {
    #mobile_top_menu_wrapper .sub-menu.js-sub-menu {
        position: static !important;
        width: 100% !important;
        max-width: none !important;
        box-shadow: none !important;
        border: none !important;
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        transform: none !important;
    }
    #mobile_top_menu_wrapper .sub-menu > .top-menu {
        display: block !important;
        grid-template-columns: none !important;
        width: 100% !important;
        gap: 0 !important;
    }
    /* Subcategorias: mismo estilo (centrado, negro, VAG Rounded, separador) */
    #mobile_top_menu_wrapper .sub-menu a {
        display: block !important;
        text-align: center !important;
        color: #232323 !important;
        font-family: 'vagroundedblackssibold', var(--font-montserrat), sans-serif !important;
        font-size: 14px;
        text-transform: uppercase;
        padding: 13px 20px !important;
        border-bottom: 1px solid #f6f6f6 !important;
    }
    #mobile_top_menu_wrapper .sub-menu a:hover,
    #mobile_top_menu_wrapper .sub-menu a:focus {
        color: var(--color-pink) !important;
    }
    /* Toggle +/- a la derecha del item, alineado verticalmente */
    #mobile_top_menu_wrapper .top-menu li > a {
        position: relative;
    }
    #mobile_top_menu_wrapper .top-menu .collapse-icons {
        position: absolute;
        top: 50%;
        right: 18px;
        transform: translateY(-50%);
        margin: 0;
    }
}

/* (El scroll del menú es interno al #mobile_top_menu_wrapper; el #header no scrollea
   para que la franja rosa y el buscador queden fijos.) */

/* ESCRITORIO: la anidación profunda del menú (nivel 2+) es solo para el acordeón
   móvil. En escritorio el mega-menú muestra solo el primer nivel de subcategorías,
   como antes; se ocultan los submenús anidados que ahora renderiza el TPL. */
@media (min-width: 992px) {
    #_desktop_top_menu .sub-menu .js-sub-menu {
        display: none !important;
    }
}
