/* ============================================================
   [v7.69.0] Unificación tipográfica de blocks
   
   Default global: cualquier elemento dentro de una block (cualquier clase
   que empiece con ws-) hereda --pg-style-body (body font) salvo que explícitamente
   declare otra cosa. Esto asegura que NINGÚN elemento sin font-family
   quede con el font del theme/WP fallback.
   
   Los elementos heading (h1-h6, .ws-*-title, .ws-*-headline) deberían usar
   --pg-style-heading; los demás --pg-style-body. Las blocks ya lo hacen para sus elementos
   principales · esta regla es defensiva para sub-elementos sin override.
   ============================================================ */

[class^="ws-"],
[class*=" ws-"],
.wapu-block-classic,
.wapu-block{
    font-family: var(--pg-style-body, 'Manrope', system-ui, sans-serif);
}

/* [v2.07] Defensive · todos los descendientes de una block tambien heredan
   --pg-style-body explicitamente. Catchea casos edge donde un elemento dentro de la
   block tenia font-family resetada por el theme o por una regla mas especifica
   del WP admin. La regla NO afecta a elementos que ya tengan font-family
   explicito (como los headings que usan --pg-style-heading). */
[class^="ws-"] *:not(svg):not(use):not(path),
[class*=" ws-"] *:not(svg):not(use):not(path),
.wapu-block-classic *:not(svg):not(use):not(path),
.wapu-block *:not(svg):not(use):not(path){
    font-family: inherit;
}
[class^="ws-"] h1, [class*=" ws-"] h1,
[class^="ws-"] h2, [class*=" ws-"] h2,
[class^="ws-"] h3, [class*=" ws-"] h3,
[class^="ws-"] h4, [class*=" ws-"] h4,
[class^="ws-"] h5, [class*=" ws-"] h5,
[class^="ws-"] h6, [class*=" ws-"] h6,
[class*="-title"][class*="ws-"],
[class*="-headline"][class*="ws-"],
[class*="-heading"][class*="ws-"]{
    font-family: var(--pg-style-heading, var(--pg-style-body, 'Playfair Display', Georgia, serif));
}

/* WapuOS - Blocks — CSS del slider clásico */
.wapu-block-classic {
    position: relative;
    width: 100%;
    aspect-ratio: 16/7;
    min-height: 17.5rem;
    overflow: clip;
    background: color-mix(in srgb, var(--pg-style-primary, var(--brand-primary, var(--wb-text))) 82%, var(--wb-text));
    color: var(--pg-sem-surface, var(--brand-surface, var(--wb-surface)));
    --wsc-c1: var(--pg-style-primary, var(--brand-primary, var(--wb-text)));
    --wsc-c2: var(--pg-style-secondary, var(--brand-secondary, var(--wb-surface-muted)));
    --wsc-c3: var(--pg-style-accent, var(--brand-accent, var(--wb-text)));
}

/* Fondo degradado sutil del kit */
.wapu-block-classic::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 20% 50%, color-mix(in srgb, var(--wsc-c1) 18%, transparent), transparent 60%),
                radial-gradient(ellipse at 80% 50%, color-mix(in srgb, var(--wsc-c2) 14%, transparent), transparent 60%);
    pointer-events: none;
    z-index: 2;
    mix-blend-mode: screen;
}

/* Línea shimmer del kit en el borde inferior */
.wapu-block-classic::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 0.1875rem;
    background: linear-gradient(90deg, var(--wsc-c1), var(--wsc-c2), var(--wsc-c3), var(--wsc-c1));
    background-size: 200% 100%;
    animation: wsc-shimmer 4s ease-in-out infinite;
    z-index: 10;
}

@keyframes wsc-shimmer {
    0%   { background-position: 0% 0%; }
    50%  { background-position: 100% 0%; }
    100% { background-position: 0% 0%; }
}
.wsc-track { position: absolute; inset: 0; }
.wsc-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity .6s ease;
    display: flex;
}
.wsc-slide.is-active { opacity: 1; }
.wsc-text {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    padding: 2rem 3rem;
}
.wsc-title {
    font-family: var(--pg-style-heading, var(--pg-style-heading, -apple-system, 'Segoe UI', sans-serif));
    font-size: clamp(1.5rem, 4vw, 3.5rem);
    font-weight: 800;
    color: var(--pg-sem-surface, var(--wb-surface));
    margin: 0 0 0.5rem;
    text-shadow: 0 0.125rem 1rem var(--wb-text);
    max-width: 16ch;
}
.wsc-desc {
    font-family: var(--pg-style-body, var(--pg-style-body, -apple-system, 'Segoe UI', sans-serif));
    font-size: clamp(0.8125rem, 1.4vw, 1.125rem);
    color: color-mix(in srgb, var(--pg-sem-surface, var(--wb-surface)) 86%, transparent);
    margin: 0 0 1.5rem;
    max-width: 40ch;
    text-shadow: 0 1px 0.5rem var(--wb-text);
}
.wsc-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.75rem 1.5rem;
    background: var(--wapu-button-bg, var(--pg-style-primary, var(--wb-text)));
    color: var(--wapu-button-text, var(--pg-sem-surface, var(--wb-surface)));
    font-size: 0.8125rem;
    font-weight: 700;
    text-decoration: none;
    border-radius: 6.25rem;
    width: fit-content;
    transition: transform .2s;
}
.wsc-btn:hover { transform: translateY(-0.125rem); }
/* Dots */
.wsc-dots {
    position: absolute;
    bottom: 1rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 0.5rem;
    z-index: 3;
}
.wsc-dot {
    width: 0.5rem; height: 0.5rem;
    border-radius: 50%;
    border: none;
    background: color-mix(in srgb, var(--pg-sem-surface, var(--wb-surface)) 42%, transparent);
    cursor: pointer;
    transition: all .2s;
}
.wsc-dot.is-active {
    background: var(--pg-sem-surface, var(--wb-surface));
    width: 1.5rem;
    border-radius: 0.25rem;
}
/* Arrows */
.wsc-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    background: color-mix(in srgb, var(--pg-sem-surface, var(--wb-surface)) 16%, transparent);
    backdrop-filter: blur(0.5rem);
    border: none;
    color: var(--pg-sem-surface, var(--wb-surface));
    font-size: 1.5rem;
    width: 2.5rem; height: 2.5rem;
    border-radius: 50%;
    cursor: pointer;
    transition: background .2s;
    display: flex; align-items: center; justify-content: center;
}
.wsc-arrow:hover { background: color-mix(in srgb, var(--pg-sem-surface, var(--wb-surface)) 30%, transparent); }
.wsc-prev { left: 1rem; }
.wsc-next { right: 1rem; }

@media (max-width: 37.5em) {
    .wsc-text { padding: 1.5rem; }
}
@container wapu-block-preview (max-width: 37.5em){
    .wsc-text { padding: 1.5rem; }
}


/* Mobile dense blocks
   Product/category/brand grids keep their full desktop layout on wide screens.
   On phones they become horizontal, touch-friendly carousels so cards do not
   collapse into a tall, cramped stack. */
@media (max-width: 47.5em) {
    .ws-fg-grid,
    .ws-bm-grid,
    .ws-bd-grid,
    .ws-pq-grid,
    .ws-pq-editorial-grid,
    .ws-pq-mosaic-grid,
    .ws-pqt-grid,
    .ws-bo-grid,
    .ws-bento-grid,
    .ws-cat-mosaic-grid,
    .ws-fanned-categories-v1__grid,
    .ws-avatar-category-showcase-v1__grid {
        display: flex !important;
        grid-template-columns: none !important;
        grid-auto-flow: column !important;
        gap: 1rem !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        overscroll-behavior-x: contain;
        padding-inline: max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right));
        margin-inline: -1rem;
    }

    .ws-fg-grid::-webkit-scrollbar,
    .ws-bm-grid::-webkit-scrollbar,
    .ws-bd-grid::-webkit-scrollbar,
    .ws-pq-grid::-webkit-scrollbar,
    .ws-pq-editorial-grid::-webkit-scrollbar,
    .ws-pq-mosaic-grid::-webkit-scrollbar,
    .ws-pqt-grid::-webkit-scrollbar,
    .ws-bo-grid::-webkit-scrollbar,
    .ws-bento-grid::-webkit-scrollbar,
    .ws-cat-mosaic-grid::-webkit-scrollbar,
    .ws-fanned-categories-v1__grid::-webkit-scrollbar,
    .ws-avatar-category-showcase-v1__grid::-webkit-scrollbar {
        display: none;
    }

    .ws-fg-grid > *,
    .ws-bm-grid > *,
    .ws-bd-grid > *,
    .ws-pq-grid > *,
    .ws-pq-editorial-grid > *,
    .ws-pq-mosaic-grid > *,
    .ws-pqt-grid > *,
    .ws-bo-grid > *,
    .ws-bento-grid > *,
    .ws-cat-mosaic-grid > *,
    .ws-fanned-categories-v1__grid > *,
    .ws-avatar-category-showcase-v1__grid > * {
        flex: 0 0 min(82vw, 20.625rem) !important;
        min-width: min(82vw, 20.625rem) !important;
        max-width: min(82vw, 20.625rem) !important;
        scroll-snap-align: start;
    }

    .ws-bm-grid > *,
    .ws-bd-grid > *,
    .ws-fg-grid > *,
    .ws-cat-mosaic-grid > *,
    .ws-fanned-categories-v1__grid > * {
        flex-basis: min(78vw, 19.375rem) !important;
        min-width: min(78vw, 19.375rem) !important;
        max-width: min(78vw, 19.375rem) !important;
    }

    .ws-avatar-category-showcase-v1__avatars,
    .ws-pqt-tabs,
    .ws-bo-tabs {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-inline: max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right));
        margin-inline: -1rem;
    }

    .ws-avatar-category-showcase-v1__avatars::-webkit-scrollbar,
    .ws-pqt-tabs::-webkit-scrollbar,
    .ws-bo-tabs::-webkit-scrollbar {
        display: none;
    }

    .ws-avatar-category-showcase-v1__avatars > *,
    .ws-pqt-tabs > *,
    .ws-bo-tabs > * {
        flex: 0 0 auto !important;
        scroll-snap-align: start;
    }
}
@container wapu-block-preview (max-width: 47.5em){
    .ws-fg-grid,
    .ws-bm-grid,
    .ws-bd-grid,
    .ws-pq-grid,
    .ws-pq-editorial-grid,
    .ws-pq-mosaic-grid,
    .ws-pqt-grid,
    .ws-bo-grid,
    .ws-bento-grid,
    .ws-cat-mosaic-grid,
    .ws-fanned-categories-v1__grid,
    .ws-avatar-category-showcase-v1__grid {
        display: flex !important;
        grid-template-columns: none !important;
        grid-auto-flow: column !important;
        gap: 1rem !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        overscroll-behavior-x: contain;
        padding-inline: max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right));
        margin-inline: -1rem;
    }

    .ws-fg-grid::-webkit-scrollbar,
    .ws-bm-grid::-webkit-scrollbar,
    .ws-bd-grid::-webkit-scrollbar,
    .ws-pq-grid::-webkit-scrollbar,
    .ws-pq-editorial-grid::-webkit-scrollbar,
    .ws-pq-mosaic-grid::-webkit-scrollbar,
    .ws-pqt-grid::-webkit-scrollbar,
    .ws-bo-grid::-webkit-scrollbar,
    .ws-bento-grid::-webkit-scrollbar,
    .ws-cat-mosaic-grid::-webkit-scrollbar,
    .ws-fanned-categories-v1__grid::-webkit-scrollbar,
    .ws-avatar-category-showcase-v1__grid::-webkit-scrollbar {
        display: none;
    }

    .ws-fg-grid > *,
    .ws-bm-grid > *,
    .ws-bd-grid > *,
    .ws-pq-grid > *,
    .ws-pq-editorial-grid > *,
    .ws-pq-mosaic-grid > *,
    .ws-pqt-grid > *,
    .ws-bo-grid > *,
    .ws-bento-grid > *,
    .ws-cat-mosaic-grid > *,
    .ws-fanned-categories-v1__grid > *,
    .ws-avatar-category-showcase-v1__grid > * {
        flex: 0 0 min(82vw, 20.625rem) !important;
        min-width: min(82vw, 20.625rem) !important;
        max-width: min(82vw, 20.625rem) !important;
        scroll-snap-align: start;
    }

    .ws-bm-grid > *,
    .ws-bd-grid > *,
    .ws-fg-grid > *,
    .ws-cat-mosaic-grid > *,
    .ws-fanned-categories-v1__grid > * {
        flex-basis: min(78vw, 19.375rem) !important;
        min-width: min(78vw, 19.375rem) !important;
        max-width: min(78vw, 19.375rem) !important;
    }

    .ws-avatar-category-showcase-v1__avatars,
    .ws-pqt-tabs,
    .ws-bo-tabs {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-inline: max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right));
        margin-inline: -1rem;
    }

    .ws-avatar-category-showcase-v1__avatars::-webkit-scrollbar,
    .ws-pqt-tabs::-webkit-scrollbar,
    .ws-bo-tabs::-webkit-scrollbar {
        display: none;
    }

    .ws-avatar-category-showcase-v1__avatars > *,
    .ws-pqt-tabs > *,
    .ws-bo-tabs > * {
        flex: 0 0 auto !important;
        scroll-snap-align: start;
    }
}


@media (max-width: 30em) {
    .ws-fg-grid > *,
    .ws-bm-grid > *,
    .ws-bd-grid > *,
    .ws-pq-grid > *,
    .ws-pq-editorial-grid > *,
    .ws-pq-mosaic-grid > *,
    .ws-pqt-grid > *,
    .ws-bo-grid > *,
    .ws-bento-grid > *,
    .ws-cat-mosaic-grid > *,
    .ws-fanned-categories-v1__grid > *,
    .ws-avatar-category-showcase-v1__grid > * {
        flex-basis: min(86vw, 18.75rem) !important;
        min-width: min(86vw, 18.75rem) !important;
        max-width: min(86vw, 18.75rem) !important;
    }
}
@container wapu-block-preview (max-width: 30em){
    .ws-fg-grid > *,
    .ws-bm-grid > *,
    .ws-bd-grid > *,
    .ws-pq-grid > *,
    .ws-pq-editorial-grid > *,
    .ws-pq-mosaic-grid > *,
    .ws-pqt-grid > *,
    .ws-bo-grid > *,
    .ws-bento-grid > *,
    .ws-cat-mosaic-grid > *,
    .ws-fanned-categories-v1__grid > *,
    .ws-avatar-category-showcase-v1__grid > * {
        flex-basis: min(86vw, 18.75rem) !important;
        min-width: min(86vw, 18.75rem) !important;
        max-width: min(86vw, 18.75rem) !important;
    }
}


/* Video en slides */
.wsc-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}
.wsc-iframe {
    object-fit: unset;
    pointer-events: none;
}
/* Overlay para que el texto se lea sobre video — teñido con el kit */
.wsc-slide:has(.wsc-video)::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to top,  var(--wb-text) 0%, var(--wb-text) 60%),
        linear-gradient(135deg,
            color-mix(in srgb, var(--wsc-c1) 22%, transparent) 0%,
            color-mix(in srgb, var(--wsc-c2) 12%, transparent) 100%
        );
    z-index: 1;
}
.wsc-text { z-index: 2; }

/* WapuOS - Blocks 2.1.3 · identidad tipográfica única */
.wapu-block-style-scope,
.wapu-block-style-scope :where(p,li,a,button,input,select,textarea,label,small,strong,span){
  font-family:var(--pg-style-body,var(--font-sans,inherit))!important;
}
.wapu-block-style-scope :where(h1,h2,h3,h4,h5,h6){
  font-family:var(--pg-style-heading,var(--font-display,inherit))!important;
}
.wapu-block-style-scope :where(.help,.helper,.caption,[data-help]){
  font-family:var(--pg-style-help,var(--font-help,var(--pg-style-body,inherit)))!important;
}

/* 2.1.8 · Fondos Wapu: blanco, negro, Primary o Secondary. */
.wapu-block-style-scope[data-wapu-background="light"] > :first-child,
.wapu-block-style-scope[data-wapu-background="dark"] > :first-child,
.wapu-block-style-scope[data-wapu-background="primary"] > :first-child,
.wapu-block-style-scope[data-wapu-background="secondary"] > :first-child{
    background-color:var(--wapu-block-bg)!important;
    color:var(--wapu-block-text)!important;
    --pg-sem-surface:var(--wapu-block-bg);
    --pg-sem-text:var(--wapu-block-text);
    --pg-sem-text-muted:var(--wapu-block-muted);
}
.wapu-block-style-scope[data-wapu-background="primary"] > :first-child,
.wapu-block-style-scope[data-wapu-background="secondary"] > :first-child{
    background-image:none;
}

/* Shared component · Brand Logo Card */
.wapu-brand-logo-card{
    display:grid;
    place-items:center;
    width:100%;
    min-width:0;
    min-height:6rem;
    padding:1.125rem 1.25rem;
    border:1px solid var(--wapu-brand-card-border,color-mix(in srgb,currentColor 9%,transparent));
    border-radius:var(--wapu-brand-card-radius,0.75rem);
    background:var(--wapu-brand-card-surface,var(--wapu-appearance-surface,var(--pg-sem-surface,var(--wb-surface))));
    color:var(--wapu-brand-card-text,var(--pg-sem-text,var(--wb-text)));
    text-decoration:none;
    box-shadow:none;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.wapu-brand-logo-card__media{
    display:grid;
    place-items:center;
    width:100%;
    min-width:0;
    height:3.375rem;
}
.wapu-brand-logo-card__media img{
    display:block;
    width:100%;
    height:100%;
    max-width:9.25rem;
    object-fit:contain;
    object-position:center;
}
.wapu-brand-logo-card__wordmark{
    display:block;
    max-width:100%;
    overflow:hidden;
    color:inherit;
    font:700 0.9375rem/1.1 var(--pg-style-heading,var(--pg-style-body,system-ui,sans-serif));
    letter-spacing:-.02em;
    text-align:center;
    text-overflow:ellipsis;
    white-space:nowrap;
}
a.wapu-brand-logo-card:is(:hover,:focus-visible){
    transform:translateY(-0.125rem);
    border-color:color-mix(in srgb,var(--wapu-brand-card-accent,var(--pg-style-primary,var(--wb-accent))) 32%,transparent);
    box-shadow:none;
}
a.wapu-brand-logo-card:focus-visible{
    outline:0.1875rem solid color-mix(in srgb,var(--wapu-brand-card-accent,var(--pg-style-primary,var(--wb-accent))) 56%,transparent);
    outline-offset:0.1875rem;
}
@media (prefers-reduced-motion:reduce){.wapu-brand-logo-card{transition:none}}
