/*
Theme Name: Poseidon
Theme URI: https://sellodigital.co
Author: Sello Digital
Author URI: https://sellodigital.co
Description: Tema premium de WooCommerce: búsqueda instantánea AJAX, carrito deslizable con barra de envío gratis, quick-add con swatches, constructor de popups, guía de tallas con calculadora, mega menú con imágenes y 3 bloques Gutenberg propios.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: poseidon
Tags: e-commerce, woocommerce, blog, custom-logo, custom-menu, editor-style, featured-images, translation-ready
*/

/* Evita scroll horizontal producido por el full-bleed del hero (100vw incluye scrollbar) */
html { overflow-x: hidden; }

/* ── Variables globales de identidad ──── */
:root {
    --poseidon-font:         'Inter', sans-serif;
    --poseidon-heading-font: 'Plus Jakarta Sans', sans-serif;
    --poseidon-text:       #111;
    --poseidon-text-body:  #1a1a1a;
    --poseidon-text-muted: #6b7280;
    --poseidon-text-meta:  #71717a;
    --poseidon-bg:         #f9fafb;
    --poseidon-surface:    #fff;
    --poseidon-surface-hover: #f3f4f6;
    --poseidon-border:     rgba(0,0,0,.1);
    --poseidon-border-strong: rgba(0,0,0,.14);
    --poseidon-accent-hover:  #333;
    --poseidon-success-bg:    #f0fdf4;
    --poseidon-success-text:  #166534;
    --poseidon-success-border:#22c55e;
    --poseidon-error-bg:      #fff0f0;
    --poseidon-error-text:    #c00;
    --poseidon-star:          #f5a623;
    --poseidon-sale:          #c00000;
    --poseidon-focus:         rgba(0,0,0,.04);
    --poseidon-cart-bg:         #fff;
    --poseidon-cart-attr-val:   #c00000;
    --poseidon-cart-title:      #231f20;
    --poseidon-cart-item-name:  #231f20;
    --poseidon-cart-price:      #231f20;
    --poseidon-cart-remove-color: #6b7280;
    --poseidon-cart-attr-label: #6b7280;
    --poseidon-card-radius:     12px;
    --poseidon-card-padding:    18px;
    --poseidon-grid-gap:        24px;
    --poseidon-card-body-padding-y: 16px;

    /* Badges compartidos */
    --poseidon-badge-font-size:      11px;
    --poseidon-badge-font-weight:    700;
    --poseidon-badge-letter-spacing: .4px;
    --poseidon-badge-text-transform: uppercase;
    --poseidon-badge-padding-x:      10px;
    --poseidon-badge-padding-y:      3px;
    --poseidon-badge-radius:         50px;

    /* Badge — Sale / Oferta genérica */
    --poseidon-badge-sale-bg:     #c00000;
    --poseidon-badge-sale-color:  #fff;
    /* Badge — Nuevo */
    --poseidon-badge-new-bg:      #059669;
    --poseidon-badge-new-color:   #fff;
    /* Badge — Agotado */
    --poseidon-badge-soldout-bg:  #6b7280;
    --poseidon-badge-soldout-color: #fff;
    /* Badge — Destacado */
    --poseidon-badge-featured-bg:     #111;
    --poseidon-badge-featured-color:  #fff;
    /* Badge — Descuento % */
    --poseidon-badge-discount-bg:     #dc2626;
    --poseidon-badge-discount-color:  #fff;
}
/* Base reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: var(--poseidon-font, 'Inter', sans-serif); color: var(--poseidon-text-body); background: var(--poseidon-bg, #f9fafb); }
h1, h2, h3, h4, h5, h6 { font-family: var(--poseidon-heading-font, inherit); }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
img { max-width: 100%; display: block; height: auto; }

/* ── Accesibilidad ── */

/* Skip link: invisible hasta recibir foco (WCAG 2.4.1) */
.skip-link {
    position: absolute;
    left: 8px;
    top: -60px;
    z-index: 99999;
    padding: 10px 18px;
    background: var(--poseidon-accent, #111);
    color: #fff;
    border-radius: 6px;
    font-weight: 600;
    transition: top .2s ease;
}
.skip-link:focus {
    top: 8px;
    outline: 2px solid #fff;
    outline-offset: 2px;
}

/* Anillo de foco visible y consistente para teclado (WCAG 2.4.7) */
:focus-visible {
    outline: 2px solid var(--poseidon-accent, #111);
    outline-offset: 2px;
}

/* Respeta usuarios que prefieren menos movimiento (WCAG 2.3.3) */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Imágenes con lazy-load reservan su altura y evitan saltos de layout */
img[loading="lazy"] { background: var(--poseidon-surface-hover, #f3f4f6); }

/* Lucide icon sizing by context */
.poseidon-search-btn .lucide,
.poseidon-user-btn .lucide,
.poseidon-cart-btn .lucide { width: 20px; height: 20px; }
.poseidon-nav__chevron.lucide { width: 10px; height: 10px; }
.poseidon-filter-btn__chevron.lucide { width: 11px; height: 11px; }
.poseidon-filter-btn--main .lucide { width: 15px; height: 15px; }
.poseidon-active-tag .lucide { width: 11px; height: 11px; }
.poseidon-search-card__cta .lucide { width: 14px; height: 14px; }
.poseidon-search-card__img-placeholder .lucide { width: 32px; height: 32px; }
.poseidon-search-page__empty .lucide { width: 48px; height: 48px; }
.poseidon-user-dropdown__link .lucide { width: 15px; height: 15px; }
.poseidon-cart-drawer__close .lucide { width: 20px; height: 20px; }
.poseidon-cart-drawer__btn-cart .lucide { width: 15px; height: 15px; }
.psp-rating__star .lucide { width: 16px; height: 16px; }
.psp-modal__close .lucide { width: 20px; height: 20px; }
.psp-calc-gender__btn svg { width: 20px; height: 20px; }

/* Layout helpers */
.poseidon-main { max-width: 1280px; margin: 0 auto; padding: 40px 24px; }
.poseidon-main__article { margin-bottom: 40px; }
.poseidon-page { max-width: 900px; margin: 0 auto; padding: 40px 24px; }
.poseidon-page:has(.poseidon-hero) { padding-top: 0; }
.poseidon-single { max-width: 800px; margin: 0 auto; padding: 40px 24px; }
.poseidon-single:has(.poseidon-hero) { padding-top: 0; }
.poseidon-single__date { color: var(--poseidon-text-muted); font-size: 13px; margin-bottom: 24px; }

/* Layout variants — vía clases en body */
.poseidon-layout--wide .poseidon-page { max-width: 1280px; }
.poseidon-layout--full .poseidon-page { max-width: 100%; padding-left: 0; padding-right: 0; }
.poseidon-layout--narrow .poseidon-page { max-width: 720px; }

.poseidon-layout--wide .poseidon-archive__inner,
.poseidon-layout--wide .poseidon-search-page__inner { max-width: 1280px; }
.poseidon-layout--full .poseidon-archive__inner,
.poseidon-layout--full .poseidon-search-page__inner { max-width: 100%; padding-left: 0; padding-right: 0; }
.poseidon-layout--narrow .poseidon-archive__inner,
.poseidon-layout--narrow .poseidon-search-page__inner { max-width: 720px; }

.poseidon-layout--full .poseidon-archive__header,
.poseidon-layout--full .poseidon-archive__toolbar,
.poseidon-layout--full .poseidon-search-page__header {
    padding-left: 24px;
    padding-right: 24px;
}

.poseidon-layout--full .poseidon-search-page__grid,
.poseidon-layout--full .poseidon-search-page__pagination,
.poseidon-layout--full .poseidon-search-page__empty {
    padding-left: 24px;
    padding-right: 24px;
}

.poseidon-hide-header .poseidon-header,
.poseidon-hide-header .poseidon-mobile-menu,
.poseidon-hide-header .poseidon-overlay,
.poseidon-hide-header .poseidon-cart-drawer { display: none; }
.poseidon-hide-title .poseidon-page h1:first-child { display: none; }

/* Resaltar item SALE en el menú */
.poseidon-nav__item.sale-link > .poseidon-nav__link { color: var(--poseidon-accent) !important; }

/* ── Flecha "→" de botones (hero, producto destacado, cart drawer, add-to-cart) ──
   El icono vive dentro de .poseidon-arrow-wrap: en reposo el contenedor mide 0
   y es invisible, así el texto del botón queda totalmente centrado (la flecha
   no ocupa espacio). En hover el contenedor crece a 22px (8px de separación +
   icono de 14px) y, como el grupo [texto + flecha] sigue centrado por
   justify-content del botón, el texto se desliza a la izquierda y al final todo
   el conjunto queda centrado. Los botones con esta flecha no deben usar `gap`
   propio: el espaciado lo aporta el padding-left del contenedor. */
.poseidon-arrow-wrap {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    padding-left: 8px;
    width: 0;
    overflow: hidden;
    opacity: 0;
    transition: width .25s ease, opacity .25s ease;
}
.poseidon-arrow-wrap .lucide {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
}
:is(.poseidon-hero__btn,
    .poseidon-featured-product__btn,
    .poseidon-cart-drawer__btn-checkout,
    .poseidon-cart-drawer__btn-cart,
    .poseidon-cart-drawer__btn-continue,
    .psp-form-wrap .single_add_to_cart_button):hover .poseidon-arrow-wrap {
    width: 22px;
    opacity: 1;
}
