/* =============================================================================
   DKT Store — Landing PRUDENCE (skin de marca · Fase 2 · diseño aprobado)
   10 secciones full-screen (100vh) con scroll-snap · menú propio · productos WC
   nativos · cierre con cifras + mosaico de valores. Verdad visual: secciones/*.html.

   REGLAS:
   - TODO scopeado a body.dkt-brand-prudence → cero regresión fuera de la landing.
   - REUSA tokens del PREP (--la-display Montserrat, --la-* de landing-base.css) +
     tokens locales de paleta Prudence (abajo). NO toca PREP/motor/Andalan.
   - AA: texto blanco sobre rojo #C00000 (≈6.4:1) y sobre los oscuros ✓; botones con
     fondo de color + texto de alto contraste; eyebrows ajustados para pasar AA.
   - El header global se SUPRIME aquí (CSS), no se edita inc/header.php.
   - Reveal = contrato .dkt-reveal del PREP (base.css + landing.js). reduced-motion
     y fail-visible respetados.
   ============================================================================= */

/* ---------- Tokens locales de paleta (scopeados) ---------- */
body.dkt-brand-prudence {
	--pl-off:        76px;   /* §2 r7: alto del menú fijo → offset de snap + descuento de alto de panel (1 solo punto de snap) */
	--pl-red:        #C00000;
	--pl-red-deep:   #8F0000;
	--pl-ink:        #1F140F;
	--pl-ink-2:      #160E0A;
	--pl-gold:       #E8B33A;
	--pl-neon:       #8FC400;
	--pl-neon-btn:   #2F7D12;   /* blanco encima ≈5.2:1 ✓ */
	--pl-chicle:     #CB2B85;   /* blanco encima ≈4.95:1 ✓ */
	--pl-chicle-deep:#5E1A40;
	--pl-azul:       #3DA0E5;
	--pl-naranja:    #D65836;
	--pl-cyan:       #19A6C3;
	--pl-azul2:      #0294CA;
	--pl-mag:        #E0559B;
	--pl-mag-deep:   #B60053;
	--pl-rhoda:      #E50695;
	--pl-rhoda-deep: #C0006E;
	--pl-rhoda-lt:   #FFAED6;
	--pl-line:       #3a2c24;
	--pl-ease:       cubic-bezier(.16,1,.3,1);
}

/* =============================================================================
   1 · SUPRESIÓN DEL HEADER GLOBAL + LIENZO FULL-BLEED + SCROLL-SNAP (scopeado)
   ============================================================================= */
/* El menú lo renderiza la propia landing → ocultamos el header/anuncios globales
   SOLO en esta categoría (selectores confirmados en inc/header.php + header.css). */
body.dkt-brand-prudence .dkt-header,
body.dkt-brand-prudence .dkt-announcement-bar,
body.dkt-brand-prudence #masthead,
body.dkt-brand-prudence .site-header,
body.dkt-brand-prudence .ast-above-header-wrap,
body.dkt-brand-prudence .ast-below-header-wrap { display: none !important; }
/* §13.5: el footer DKT (magenta, bugeado en esta landing) se OCULTA por CSS scopeado — igual que el header
   (no se edita inc/footer.php). El enlace "Política de Privacidad" se preserva en la franja de confianza. */
body.dkt-brand-prudence .dkt-footer { display: none !important; }

/* Full-bleed: la landing inmersiva ocupa todo el ancho/alto (Astra ya va
   page-builder/no-sidebar por el PREP; aquí solo neutralizamos paddings residuales). */
body.dkt-brand-prudence #page,
body.dkt-brand-prudence #content,
body.dkt-brand-prudence .site-content,
body.dkt-brand-prudence .ast-container,
body.dkt-brand-prudence #primary,
body.dkt-brand-prudence .site-primary {
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
	width: auto !important;
}
body.dkt-brand-prudence .site-content { padding-top: 0 !important; }

/* §2 ronda 6 — FIX franja blanca / overflow horizontal (verificado por Cowork en vivo):
   .ast-container resuelve a display:flex → .dkt-pl (block) NO se estira y mide ~53px menos que el
   viewport, asomando el body (blanco) a la derecha en TODAS las secciones. Fix SCOPEADO (no toca Astra/PREP):
   fondo del body oscuro (nada de blanco aunque algo no llene) + ast-container deja de ser flex
   (el hijo llena el ancho) + .dkt-pl al 100%. */
body.dkt-brand-prudence { background: #160E0A; }
body.dkt-brand-prudence .ast-container { display: block !important; }
body.dkt-brand-prudence .dkt-pl { width: 100%; }

/* Scroll-snap vertical SOLO en la landing (progressive enhancement vía :has()).
   'proximity' = el footer del sitio sigue siendo alcanzable; sin :has() → scroll normal. */
html:has(body.dkt-brand-prudence) {
	/* §4.6 ronda 5: scroll imantado de verdad. Seguro ahora porque todos los paneles ≤100svh y gap 0.
	   Para NO atrapar el footer global de Astra, la franja de confianza renuncia a su snap-align
	   (§13) → franja + footer scrollean libres. En ≤820px (paneles que se apilan y crecen) se relaja
	   a 'proximity' más abajo, y reduced-motion lo desactiva por completo. */
	scroll-snap-type: y mandatory;
	scroll-behavior: smooth;
}

/* =============================================================================
   2 · BASE DE PANELES + UTILIDADES COMPARTIDAS
   ============================================================================= */
body.dkt-brand-prudence .dkt-pl { background: var(--pl-ink-2); }

/* §2 r7: el panel mide EXACTAMENTE el área de snap (100svh − offset del menú) → un SOLO punto de descanso.
   (Antes: min-height 100svh + scroll-margin 76 → el panel excedía el área en 76px y daba 2 posiciones.) */
body.dkt-brand-prudence .dkt-pl-panel {
	position: relative;
	min-height: calc(100svh - var(--pl-off));
	display: flex;
	align-items: center;
	overflow: hidden;
	scroll-snap-align: start;
	scroll-margin-top: var(--pl-off);
}
/* Las mitades de los paneles split también son destino de ancla (chicle/neon/tamanos/retardante). */
body.dkt-brand-prudence .dkt-pl-half[id] { scroll-margin-top: var(--pl-off); }
body.dkt-brand-prudence .dkt-pl-panel.dkt-pl-hero { min-height: 100svh; scroll-margin-top: 0; }   /* hero llena: sin descuento ni offset (menú lo solapa) */
/* Barra de admin de WP: el offset crece (menú baja bajo #wpadminbar). */
body.dkt-brand-prudence.admin-bar { --pl-off: 108px; }
@media (max-width: 820px) {
	body.dkt-brand-prudence { --pl-off: 64px; }
	body.dkt-brand-prudence.admin-bar { --pl-off: 110px; }
}
/* Fail-safe de reveal al SALTAR por el menú (#id): si el IntersectionObserver no
   dispara durante el snap, el :target se revela igual (también sin JS). */
body.dkt-brand-prudence .dkt-pl-panel:target .dkt-reveal,
body.dkt-brand-prudence .dkt-pl-half:target .dkt-reveal { opacity: 1 !important; transform: none !important; }
/* Premium: entrada .dkt-reveal más fina dentro de la landing (solo opacity/transform → GPU). */
body.dkt-brand-prudence .dkt-reveal { transition: opacity .55s var(--pl-ease), transform .55s var(--pl-ease); }
body.dkt-brand-prudence .dkt-pl-wrap {
	position: relative;
	z-index: 3;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	/* §3.2: el offset del menú (76px) lo da scroll-margin-top; el wrap baja su padding-top
	   para que el bloque centrado quepa con el BOTÓN visible en 100svh. */
	padding: clamp(40px, 6vh, 64px) clamp(20px, 4vw, 48px) clamp(40px, 6vh, 56px);
}

/* Forzar legibilidad de títulos sobre oscuro (base.css los pinta --dkt-vino). */
body.dkt-brand-prudence .dkt-pl :is(h1, h2, h3) { color: #fff; font-family: var(--la-display); }

/* §4.7 ronda 5: la "banda negra" entre secciones era este arco oscuro en la costura.
   Se NEUTRALIZA (transición limpia, sin franja oscura). Se deja la regla por si se reactiva. */
body.dkt-brand-prudence .dkt-pl-curve { display: none; }

/* Cue "desliza". */
body.dkt-brand-prudence .dkt-pl-cue {
	position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 1; pointer-events: none;
	font-family: var(--la-display); font-weight: 700; font-size: .64rem; letter-spacing: .16em;
	text-transform: uppercase; color: rgba(255,255,255,.82);
	display: flex; flex-direction: column; align-items: center; gap: 5px;
}
/* En el hero el cue va sobre el veil; en el resto detrás del contenido (z-index 1)
   + pointer-events:none → nunca tapa ni bloquea los botones del producto central. */
body.dkt-brand-prudence .dkt-pl-hero .dkt-pl-cue { z-index: 4; }
body.dkt-brand-prudence .dkt-pl-ch {
	width: 16px; height: 16px; border-right: 2px solid #fff; border-bottom: 2px solid #fff;
	transform: rotate(45deg); animation: dkt-pl-bob 1.6s var(--pl-ease) infinite;
}
@keyframes dkt-pl-bob { 0%,100% { transform: rotate(45deg) translate(0,0); opacity: .5; } 50% { transform: rotate(45deg) translate(4px,4px); opacity: 1; } }

/* Eyebrow. */
body.dkt-brand-prudence .dkt-pl-eyebrow {
	font-family: var(--la-display); font-weight: 700; font-size: .8rem; letter-spacing: .24em;
	text-transform: uppercase; color: #FFD9D9;
}
body.dkt-brand-prudence .dkt-pl-eyebrow--neon { color: var(--pl-neon); }
body.dkt-brand-prudence .dkt-pl-eyebrow--mag  { color: var(--pl-mag); }
body.dkt-brand-prudence .dkt-pl-eyebrow--rhoda{ color: var(--pl-rhoda-lt); }

/* Títulos genéricos de sección. */
body.dkt-brand-prudence .dkt-pl-h2 {
	font-family: var(--la-display); font-weight: 900; font-size: clamp(2.3rem, 6.4vh, 4rem);
	text-transform: uppercase; letter-spacing: -.02em; line-height: .96; margin: 8px 0 0;
}
body.dkt-brand-prudence .dkt-pl-display {
	font-family: var(--la-display); font-weight: 900; font-size: clamp(2.6rem, 8vh, 5.2rem);
	text-transform: uppercase; letter-spacing: -.02em; line-height: .92; margin: 12px 0 0;
	text-shadow: 0 3px 26px rgba(0,0,0,.22);
}
body.dkt-brand-prudence .dkt-pl-lead {
	color: #E6DCD5; font-size: clamp(.98rem, 2vh, 1.16rem); line-height: 1.55; margin-top: 12px;
}

/* CTA hero. */
body.dkt-brand-prudence .dkt-pl-btn {
	display: inline-flex; align-items: center; gap: 10px; background: #fff; color: var(--pl-red);
	font-family: var(--la-display); font-weight: 800; font-size: .95rem; text-transform: uppercase;
	letter-spacing: .02em; padding: 16px 32px; border-radius: 999px; border: 0; cursor: pointer;
	text-decoration: none; transition: transform .2s var(--pl-ease), box-shadow .2s;
}
body.dkt-brand-prudence .dkt-pl-btn:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -16px rgba(0,0,0,.5); }

/* Foco accesible (AA) sobre lienzo oscuro. */
body.dkt-brand-prudence .dkt-pl-menu__nav a:focus-visible,
body.dkt-brand-prudence .dkt-pl-menu__cart:focus-visible,
body.dkt-brand-prudence .dkt-pl-menu__dkt:focus-visible,
body.dkt-brand-prudence .dkt-pl-menu__brand:focus-visible,
body.dkt-brand-prudence .dkt-pl-btn:focus-visible,
body.dkt-brand-prudence .dkt-pl-shot:focus-visible,
body.dkt-brand-prudence .dkt-pl-add:focus-visible,
body.dkt-brand-prudence .dkt-pl-vchip:focus-visible {
	outline: 3px solid #fff; outline-offset: 3px; border-radius: 6px;   /* aro blanco con offset → visible sobre cualquier chip (cae en el panel oscuro) */
}

/* ---------- Producto: shot + meta + precio + add (reusable) ---------- */
body.dkt-brand-prudence .dkt-pl-shot { display: block; position: relative; margin: 0 auto; }
body.dkt-brand-prudence .dkt-pl-shot__img,
body.dkt-brand-prudence .dkt-pl-shot img {
	height: clamp(180px, 32vh, 320px); width: auto !important; max-width: 100%;
	margin: 0 auto; filter: drop-shadow(0 16px 24px rgba(0,0,0,.42));
	transition: transform .3s var(--pl-ease), filter .3s;
}
body.dkt-brand-prudence .dkt-pl-shot:hover img { transform: translateY(-16px) scale(1.05); filter: drop-shadow(0 40px 44px rgba(0,0,0,.6)); }
body.dkt-brand-prudence .dkt-pl-ver {
	position: absolute; left: 50%; bottom: -4px; transform: translateX(-50%) translateY(8px); opacity: 0;
	transition: .2s; font-family: var(--la-display); font-weight: 700; font-size: .64rem; letter-spacing: .06em;
	text-transform: uppercase; background: #fff; color: var(--pl-red); padding: 5px 12px; border-radius: 999px; white-space: nowrap;
}
body.dkt-brand-prudence .dkt-pl-shot:hover .dkt-pl-ver,
body.dkt-brand-prudence .dkt-pl-shot:focus-visible .dkt-pl-ver { opacity: 1; transform: translateX(-50%); }

/* Placeholder fail-visible (producto pendiente de SKU). */
body.dkt-brand-prudence .dkt-pl-shot--pending {
	display: grid; place-items: center; width: min(80%, 240px); aspect-ratio: 3 / 4; margin: 0 auto;
	border: 2px dashed rgba(255,255,255,.28); border-radius: 16px; background: rgba(255,255,255,.04);
}
body.dkt-brand-prudence .dkt-pl-ph {
	font-family: var(--la-display); font-weight: 900; text-transform: uppercase; letter-spacing: .12em;
	font-size: .9rem; color: rgba(255,255,255,.34);
}
body.dkt-brand-prudence .dkt-pl-meta { display: flex; flex-direction: column; align-items: center; gap: 5px; margin-top: 16px; text-align: center; }
body.dkt-brand-prudence .dkt-pl-pn { font-family: var(--la-display); font-weight: 800; font-size: 1rem; text-transform: uppercase; letter-spacing: .02em; color: #fff; }
/* §6.2 rótulo a 2 líneas: "PRUDENCE" (línea propia) + nombre corto en la línea siguiente. */
body.dkt-brand-prudence .dkt-pl-pn__brand { display: block; font-size: .72em; font-weight: 800; letter-spacing: .1em; opacity: .92; line-height: 1.05; }
/* §14 r7: espacio visible entre el emoji inicial y el texto de la descripción (antes pegado). */
body.dkt-brand-prudence .dkt-pl-dem { margin-right: .4em; }
body.dkt-brand-prudence .dkt-pl-pd { font-size: .8rem; color: #E7D8D0; min-height: 1.1em; }
body.dkt-brand-prudence .dkt-pl-price { font-family: var(--la-display); font-weight: 900; font-size: 1.3rem; line-height: 1; white-space: nowrap; }
/* PRECIO BLANCO — bug v0.8.17: un estilo global WC/Astra pintaba el monto en #A50050.
   Fix verificado en vivo (rgb(165,0,80) → rgb(255,255,255)). Cubre .amount/bdi/ins. */
body.dkt-brand-prudence .dkt-pl-price,
body.dkt-brand-prudence .dkt-pl-price .amount,
body.dkt-brand-prudence .dkt-pl-price bdi,
body.dkt-brand-prudence .dkt-pl-price ins { color: #fff !important; }
/* Si quedara algún sufijo de precio, que NO domine al monto. */
body.dkt-brand-prudence .dkt-pl-price .woocommerce-price-suffix { font-size: .58em; font-weight: 600; opacity: .7; margin-left: 4px; }
/* Precio tachado (sale): blanco translúcido (más específico → gana al blanco sólido). */
body.dkt-brand-prudence .dkt-pl-price del,
body.dkt-brand-prudence .dkt-pl-price del .amount,
body.dkt-brand-prudence .dkt-pl-price del bdi { color: rgba(255,255,255,.78) !important; font-weight: 700; margin-right: 6px; }   /* AA: pasa el umbral 3:1 (texto grande/bold) en paneles cálidos */
body.dkt-brand-prudence .dkt-pl-price ins { text-decoration: none; }
body.dkt-brand-prudence .dkt-pl-price--lg { font-size: 1.7rem; }
/* Estado fail-visible "Disponible pronto": blanco sólido (AA en TODOS los paneles,
   incl. chicle/teal; la versión translúcida fallaba). El --lg conserva su tamaño. */
body.dkt-brand-prudence .dkt-pl-price--soon { font-size: .9rem; font-weight: 700; color: #fff; text-transform: uppercase; letter-spacing: .06em; }
body.dkt-brand-prudence .dkt-pl-price--lg.dkt-pl-price--soon { font-size: 1.4rem; }

/* Botón add-to-cart NATIVO de WC (clase .dkt-pl-add). Forma base; color por sección. */
body.dkt-brand-prudence .dkt-pl-add,
body.dkt-brand-prudence a.dkt-pl-add.button {
	display: inline-block; margin-top: 12px; border: 0; border-radius: 999px;
	font-family: var(--la-display); font-weight: 800; font-size: .8rem; text-transform: uppercase;
	letter-spacing: .02em; padding: 13px 24px; cursor: pointer; text-decoration: none;
	background: #fff; color: var(--pl-red);   /* default sin !important: los overrides de sección (0,3,1 !important) SIEMPRE ganan */
	transition: transform .2s var(--pl-ease), box-shadow .2s, filter .2s;
}
body.dkt-brand-prudence .dkt-pl-add:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -12px rgba(0,0,0,.55); }
body.dkt-brand-prudence .dkt-pl-add.added { opacity: .85; }
/* "Ver carrito" que WC añade tras add-to-cart AJAX. */
body.dkt-brand-prudence .dkt-pl-meta .added_to_cart,
body.dkt-brand-prudence .dkt-pl-femenino__buy .added_to_cart {
	display: inline-block; margin-top: 8px; font-family: var(--la-display); font-weight: 700;
	font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; color: #fff; text-decoration: underline;
}
/* Clásico y Sabores: botón blanco + texto rojo. Override de sección (0,3,1) con
   !important para ganarle al .button magenta heredado de Astra/Woo, al MISMO nivel
   que los demás overrides (neon/tamaños/etc.) → no los pisa. */
body.dkt-brand-prudence .dkt-pl-clasico .dkt-pl-add,
body.dkt-brand-prudence .dkt-pl-sabores .dkt-pl-add { background: #fff !important; color: var(--pl-red) !important; }

/* =============================================================================
   3 · MENÚ PRUDENCE (propio, fijo)
   ============================================================================= */
body.dkt-brand-prudence .dkt-pl-menu {
	position: fixed; top: 0; left: 0; right: 0; z-index: 80;
	background: var(--pl-ink-2); border-bottom: 1px solid var(--pl-line);
}
/* Alto ≈ header global del home (.dkt-header) para que el logo DKT respire. */
body.dkt-brand-prudence .dkt-pl-menu__row {
	max-width: 1360px; margin: 0 auto; height: 76px; display: flex; align-items: center;
	justify-content: space-between; gap: clamp(10px, 2vw, 28px); padding: 0 clamp(16px, 3vw, 40px);
}
/* Ambos logos juntos a la IZQUIERDA: [DKT Store][Prudence]. */
body.dkt-brand-prudence .dkt-pl-menu__logos { display: flex; align-items: center; gap: clamp(14px, 1.8vw, 26px); flex: none; }
body.dkt-brand-prudence .dkt-pl-menu__dkt { display: inline-flex; }
body.dkt-brand-prudence .dkt-pl-menu__dkt img { height: 46px; width: auto; display: block; transition: opacity .2s; }
body.dkt-brand-prudence .dkt-pl-menu__dkt:hover img { opacity: .82; }
body.dkt-brand-prudence .dkt-pl-menu__brand { display: inline-flex; min-width: 0; }
body.dkt-brand-prudence .dkt-pl-menu__brand img { height: 30px; width: auto; display: block; transition: transform .2s var(--pl-ease); }
body.dkt-brand-prudence .dkt-pl-menu__brand:hover img { transform: scale(1.04); }
body.dkt-brand-prudence .dkt-pl-menu__right { display: flex; align-items: center; gap: 9px; min-width: 0; flex: 1 1 auto; justify-content: flex-end; }
body.dkt-brand-prudence .dkt-pl-menu__account { margin-left: clamp(8px, 1.6vw, 20px); }
body.dkt-brand-prudence .dkt-pl-menu__nav { display: flex; gap: clamp(8px, 1.2vw, 20px); align-items: center; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
body.dkt-brand-prudence .dkt-pl-menu__nav::-webkit-scrollbar { display: none; }
body.dkt-brand-prudence .dkt-pl-menu__nav a {
	position: relative; font-family: var(--la-display); font-weight: 700; font-size: .74rem;
	letter-spacing: .08em; text-transform: uppercase; color: #fff; opacity: .85; white-space: nowrap;
	padding: 7px 1px; text-decoration: none; transition: opacity .2s;
}
body.dkt-brand-prudence .dkt-pl-menu__nav a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--pl-red);
	border-radius: 2px; transform: scaleX(0); transform-origin: center; transition: transform .26s var(--pl-ease);
}
body.dkt-brand-prudence .dkt-pl-menu__nav a:hover,
body.dkt-brand-prudence .dkt-pl-menu__nav a.is-active { opacity: 1; }
body.dkt-brand-prudence .dkt-pl-menu__nav a:hover::after,
body.dkt-brand-prudence .dkt-pl-menu__nav a.is-active::after { transform: scaleX(1); }
body.dkt-brand-prudence .dkt-pl-menu__cart {
	display: inline-flex; align-items: center; gap: 7px; border: 1px solid rgba(255,255,255,.25);
	border-radius: 999px; padding: 7px 13px; color: #fff; text-decoration: none;
	font-family: var(--la-display); font-weight: 700; font-size: .74rem; flex: none;
	transition: background .2s, border-color .2s;
}
body.dkt-brand-prudence .dkt-pl-menu__cart:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.45); }
body.dkt-brand-prudence .dkt-pl-menu__cart svg { fill: #fff; display: block; }
/* El contador reutiliza la clase del fragmento WC (span.dkt-cart-count) → se
   actualiza solo por AJAX; aquí se re-estiliza inline (no como badge de esquina). */
body.dkt-brand-prudence .dkt-pl-menu .dkt-cart-count {
	position: static; min-width: 0; height: auto; padding: 0; background: transparent; color: #fff;
	font-family: var(--la-display); font-weight: 700; font-size: .74rem; line-height: 1; border-radius: 0;
}
body.dkt-brand-prudence .dkt-pl-menu .dkt-cart-count[hidden] { display: none; }
/* Barra de admin de WP (usuario logueado): el menú fijo baja bajo #wpadminbar. */
body.dkt-brand-prudence.admin-bar .dkt-pl-menu { top: 32px; }
@media screen and (max-width: 782px) { body.dkt-brand-prudence.admin-bar .dkt-pl-menu { top: 46px; } }

/* =============================================================================
   4 · HERO
   ============================================================================= */
body.dkt-brand-prudence .dkt-pl-hero {
	background: radial-gradient(125% 120% at 74% 26%, #5e1015 0%, #1e0608 48%, #070406 100%);
}
body.dkt-brand-prudence .dkt-pl-hero__ph { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
body.dkt-brand-prudence .dkt-pl-hero__phframe { position: absolute; inset: 18px; border: 2px dashed rgba(255,255,255,.3); border-radius: 18px; }
body.dkt-brand-prudence .dkt-pl-hero__phword {
	position: absolute; top: 46%; left: 50%; transform: translate(-50%,-50%); text-align: center;
	color: rgba(255,255,255,.05); font-family: var(--la-display); font-weight: 900; text-transform: uppercase;
	letter-spacing: .04em; line-height: 1;
}
body.dkt-brand-prudence .dkt-pl-hero__phword b { display: block; font-size: clamp(2.2rem, 8vw, 6rem); }
body.dkt-brand-prudence .dkt-pl-hero__phword span { display: block; font-size: clamp(.7rem, 1.3vw, 1rem); letter-spacing: .3em; margin-top: 10px; color: rgba(255,255,255,.12); }
body.dkt-brand-prudence .dkt-pl-hero__phbadge {
	position: absolute; top: 80px; right: 24px; z-index: 4; background: var(--pl-ink); color: #FFD9D9;
	font-family: var(--la-display); font-weight: 700; font-size: .66rem; letter-spacing: .06em; text-transform: uppercase;
	padding: 8px 14px; border-radius: 999px; border: 1px solid #5a2a2a; display: inline-flex; align-items: center; gap: 8px;
}
body.dkt-brand-prudence .dkt-pl-dot { width: 8px; height: 8px; border-radius: 50%; background: #FFB000; box-shadow: 0 0 10px #FFB000; }
body.dkt-brand-prudence .dkt-pl-hero__veil {
	position: absolute; inset: 0; z-index: 2; pointer-events: none;
	background: linear-gradient(75deg, rgba(80,0,0,.78) 0%, rgba(120,0,0,.28) 42%, transparent 66%),
	            linear-gradient(0deg, rgba(60,0,0,.6), transparent 38%);
}
body.dkt-brand-prudence .dkt-pl-hero__content {
	position: absolute; z-index: 4; left: 0; right: 0; bottom: clamp(70px, 12vh, 120px);
	padding: 0 clamp(22px, 5vw, 72px); max-width: 920px;
}
body.dkt-brand-prudence .dkt-pl-hero__wm { height: clamp(68px, 13.5vh, 150px); width: auto; margin: 18px 0 14px; filter: drop-shadow(0 3px 16px rgba(0,0,0,.35)); }   /* §3.1 logo un poco más grande */
/* §3.2 h1 en UNA sola línea horizontal (nowrap + clamp por ancho para que no desborde). */
body.dkt-brand-prudence .dkt-pl-hero__h1 {
	font-family: var(--la-display); font-weight: 900; font-size: clamp(1.8rem, 4.8vw, 3.2rem); line-height: 1;   /* §5 r7: h1 más pequeño */
	letter-spacing: -.03em; text-transform: uppercase; color: #fff; text-shadow: 0 3px 30px rgba(0,0,0,.3); white-space: nowrap;
}
/* E1 (elevación): a prueba de móvil — debajo de 520px deja envolver para que "TODOS" nunca se corte. */
@media (max-width: 520px) {
	body.dkt-brand-prudence .dkt-pl-hero__h1 { white-space: normal; font-size: clamp(2.2rem, 11vw, 3rem); line-height: .98; }
}
/* §3.3 lead = EXACTAMENTE dos líneas (el <br> las separa; ancho holgado para que la 2ª no envuelva en desktop). */
body.dkt-brand-prudence .dkt-pl-hero__lead { font-size: clamp(1.02rem, 2.2vh, 1.3rem); color: #FFE6E6; max-width: 60ch; margin: 18px 0 26px; text-shadow: 0 1px 12px rgba(0,0,0,.3); line-height: 1.5; }
body.dkt-brand-prudence .dkt-pl-hero__cta { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
body.dkt-brand-prudence .dkt-pl-hero__mini { font-family: var(--la-display); font-weight: 800; font-size: .92rem; text-transform: uppercase; letter-spacing: .03em; color: #fff; }
/* Entrada del hero autónoma (NO depende de landing.js; antes quedaba invisible).
   Termina visible; reduced-motion = estático visible (sin animación). */
@media (prefers-reduced-motion: no-preference) {
	body.dkt-brand-prudence .dkt-pl-hero__content > * { animation: dkt-pl-hero-in .7s var(--pl-ease) both; }
	body.dkt-brand-prudence .dkt-pl-hero__content > *:nth-child(2) { animation-delay: .08s; }
	body.dkt-brand-prudence .dkt-pl-hero__content > *:nth-child(3) { animation-delay: .16s; }
	body.dkt-brand-prudence .dkt-pl-hero__content > *:nth-child(4) { animation-delay: .26s; }
	body.dkt-brand-prudence .dkt-pl-hero__content > *:nth-child(5) { animation-delay: .36s; }
}
@keyframes dkt-pl-hero-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }

/* =============================================================================
   5 · (BANDA DE CALIDAD — ELIMINADA en ronda 4; su contenido vive en el Cierre + mosaico)
   ============================================================================= */

/* =============================================================================
   6 · CLÁSICO
   ============================================================================= */
body.dkt-brand-prudence .dkt-pl-clasico { background: radial-gradient(130% 110% at 50% 118%, rgba(0,0,0,.55), transparent 55%), radial-gradient(115% 120% at 80% 16%, #C81620 0%, #930410 46%, #45020a 100%); }
body.dkt-brand-prudence .dkt-pl-clasico__grid { display: grid; grid-template-columns: 1.02fr .98fr; gap: clamp(24px, 5vw, 60px); align-items: center; }
/* §6 r7: más aire vertical entre eyebrow/título/desc/tagline/regsan. */
body.dkt-brand-prudence .dkt-pl-clasico__text { display: flex; flex-direction: column; gap: 16px; }
body.dkt-brand-prudence .dkt-pl-clasico-body { font-weight: 400; font-size: clamp(.95rem, 2vh, 1.06rem); line-height: 1.55; color: #F2DADA; max-width: 42ch; margin: 0; }
body.dkt-brand-prudence .dkt-pl-clasico-tag { font-family: var(--la-display); font-weight: 700; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: #fff; margin: 0; }
body.dkt-brand-prudence .dkt-pl-clasico-sep { width: 200px; height: 1px; background: rgba(255,255,255,.24); margin: 0; }
body.dkt-brand-prudence .dkt-pl-kicker { font-family: var(--la-display); font-weight: 700; font-size: .78rem; letter-spacing: .22em; text-transform: uppercase; color: #FFD9D9; }
body.dkt-brand-prudence .dkt-pl-line { display: inline-block; height: 2px; width: 46px; background: #FFD9D9; vertical-align: middle; margin-right: 12px; }
body.dkt-brand-prudence .dkt-pl-desc { font-size: clamp(1rem, 2.1vh, 1.18rem); line-height: 1.55; color: #FFECEC; max-width: 42ch; margin: 18px 0 14px; }
body.dkt-brand-prudence .dkt-pl-support { font-family: var(--la-display); font-weight: 700; font-size: .92rem; color: #fff; opacity: .92; }
body.dkt-brand-prudence .dkt-pl-tagline { margin-top: 20px; font-family: var(--la-display); font-weight: 700; font-size: clamp(1rem, 2.2vh, 1.3rem); color: #fff; border-top: 2px solid rgba(255,255,255,.32); padding-top: 16px; display: inline-block; }
body.dkt-brand-prudence .dkt-pl-regsan { font-size: .72rem; color: #F2D6D6; margin-top: 18px; letter-spacing: .02em; }
body.dkt-brand-prudence .dkt-pl-clasico .dkt-pl-shot img { height: clamp(240px, 40vh, 400px); }   /* §6 r7: imagen del producto más grande */
body.dkt-brand-prudence .dkt-pl-clasico .dkt-pl-price { font-size: 1.8rem; }
body.dkt-brand-prudence .dkt-pl-clasico .dkt-pl-regsan { font-size: .66rem; }   /* §5.2 regsan un poco más pequeño */
/* §5.3 producto centrado vertical+horizontal, alineado con su nombre y precio. */
body.dkt-brand-prudence .dkt-pl-clasico .dkt-pl-prod--single { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }

/* =============================================================================
   7 · SABORES (Diversión)
   ============================================================================= */
body.dkt-brand-prudence .dkt-pl-sabores {
	background: radial-gradient(110% 90% at 12% 18%, #1c4a40 0%, transparent 46%),
	            radial-gradient(120% 100% at 92% 82%, #5a0f16 0%, transparent 50%),
	            linear-gradient(160deg, #14110e 0%, var(--pl-ink) 60%, #241410 100%);
}
body.dkt-brand-prudence .dkt-pl-head { text-align: center; max-width: 760px; margin: 0 auto; }
body.dkt-brand-prudence .dkt-pl-punch { font-family: var(--la-display); font-weight: 700; font-size: clamp(.86rem, 1.7vh, 1rem); color: #fff; opacity: .85; margin-top: 6px; }
body.dkt-brand-prudence .dkt-pl-row5 { display: flex; justify-content: center; align-items: flex-end; gap: clamp(8px, 1.8vw, 28px); margin-top: clamp(10px, 2vh, 22px); flex-wrap: wrap; }   /* §3.2 menos hueco head→fila */
body.dkt-brand-prudence .dkt-pl-fcard { display: flex; flex-direction: column; align-items: center; text-align: center; width: clamp(130px, 16vw, 210px); }
body.dkt-brand-prudence .dkt-pl-fcard .dkt-pl-shot img { height: clamp(140px, 26vh, 250px); }   /* §3.2 */
body.dkt-brand-prudence .dkt-pl-fcard .dkt-pl-pn { font-size: .96rem; }
body.dkt-brand-prudence .dkt-pl-fcard .dkt-pl-price { font-size: 1.2rem; }
body.dkt-brand-prudence .dkt-pl-fcard .dkt-pl-add { margin-top: 9px; font-size: .72rem; padding: 9px 17px; }
/* §14 simetría — nombre (2 líneas) y descripción con altura reservada → precio y botón a la MISMA base en las 5 columnas. */
body.dkt-brand-prudence .dkt-pl-sabores .dkt-pl-fcard .dkt-pl-pn { min-height: 1.4em; }   /* §7 r7: nombres ahora 1 línea (sin "PRUDENCE") */
body.dkt-brand-prudence .dkt-pl-sabores .dkt-pl-fcard .dkt-pl-pd { min-height: 2.6em; display: flex; align-items: center; justify-content: center; }

/* =============================================================================
   8 · SPLIT (paneles a dos mitades con costura central)
   ============================================================================= */
body.dkt-brand-prudence .dkt-pl-split { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
body.dkt-brand-prudence .dkt-pl-half { position: relative; display: flex; align-items: center; justify-content: center; padding: clamp(40px,6vh,64px) clamp(20px,3vw,46px) 40px; overflow: hidden; }   /* §3.2 cada mitad ≤100svh */
body.dkt-brand-prudence .dkt-pl-half__inner { position: relative; z-index: 6; width: 100%; max-width: 520px; text-align: center; }   /* §7.1 textos/producto POR ENCIMA del difuminado de la costura (seam z-index 5) */
body.dkt-brand-prudence .dkt-pl-wm { position: absolute; font-family: var(--la-display); font-weight: 900; font-size: 24vh; line-height: 1; letter-spacing: -.04em; opacity: .04; white-space: nowrap; top: 50%; left: 50%; transform: translate(-50%,-50%); pointer-events: none; text-transform: uppercase; z-index: 1; }
body.dkt-brand-prudence .dkt-pl-htitle { font-family: var(--la-display); font-weight: 900; text-transform: uppercase; letter-spacing: -.02em; line-height: .95; font-size: clamp(2.1rem, 5.8vh, 3.7rem); margin: 8px 0 0; text-shadow: 0 3px 22px rgba(0,0,0,.35); }
body.dkt-brand-prudence .dkt-pl-copy { font-size: clamp(.92rem, 1.9vh, 1.06rem); line-height: 1.5; margin: 12px auto 0; max-width: 36ch; }
body.dkt-brand-prudence .dkt-pl-copy2 { font-family: var(--la-display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .82rem; margin-top: 8px; }
body.dkt-brand-prudence .dkt-pl-subtitle { font-family: var(--la-display); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; font-size: clamp(1.15rem, 3vh, 1.95rem); margin-top: 2px; }   /* §8 Ultra Sensible un poco más grande */
body.dkt-brand-prudence .dkt-pl-half .dkt-pl-prod { margin-top: clamp(10px, 2vh, 22px); }
body.dkt-brand-prudence .dkt-pl-half .dkt-pl-shot img { height: clamp(210px, 34vh, 360px); }   /* §8 r7: imágenes del split ligeramente más grandes */
/* §8/§9 r7: el cue "desliza" por ENCIMA del degradado central (seam z-index 5) para que no quede tapado. */
body.dkt-brand-prudence .dkt-pl-split .dkt-pl-cue { z-index: 7; }
body.dkt-brand-prudence .dkt-pl-seam { position: absolute; top: 0; bottom: 0; left: 50%; transform: translateX(-50%); z-index: 5; pointer-events: none; }
/* §7.1 costura más contenida (antes invadía hasta los nombres): llega solo al centro, sin tragarse los textos blancos. */
body.dkt-brand-prudence .dkt-pl-seam--wide { width: min(30vw, 380px); background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 30%, #000 47%, #000 53%, rgba(0,0,0,.55) 70%, transparent 100%); }
body.dkt-brand-prudence .dkt-pl-seam--slim { width: min(20vw, 300px); background: linear-gradient(90deg, transparent 0%, #000 42%, #000 58%, transparent 100%); }
body.dkt-brand-prudence .dkt-pl-split .dkt-pl-curve { z-index: 6; }

/* CHICLE */
body.dkt-brand-prudence .dkt-pl-chicle { background: linear-gradient(150deg, var(--pl-chicle) 0%, #9C3467 48%, var(--pl-chicle-deep) 100%); }
body.dkt-brand-prudence .dkt-pl-chicle .dkt-pl-wm { color: #fff; font-size: 20vh; }   /* §8 r7: watermark "Chicle" un poco más grande (Neón no se toca) */
body.dkt-brand-prudence .dkt-pl-chicle .dkt-pl-eyebrow { color: #fff; }
body.dkt-brand-prudence .dkt-pl-chicle .dkt-pl-copy { color: #FCE7F2; }
body.dkt-brand-prudence .dkt-pl-chicle .dkt-pl-shot img { filter: drop-shadow(0 24px 30px rgba(0,0,0,.45)); }
body.dkt-brand-prudence .dkt-pl-chicle .dkt-pl-ver { color: #9C3467; }
body.dkt-brand-prudence .dkt-pl-chicle .dkt-pl-add { background: #fff !important; color: #9C3467 !important; }

/* NEÓN */
body.dkt-brand-prudence .dkt-pl-neon { background: radial-gradient(80% 70% at 50% 42%, #0c5a26 0%, #073f18 38%, #021a0b 78%, #000 100%); }
body.dkt-brand-prudence .dkt-pl-neon .dkt-pl-wm { color: var(--pl-neon); }
body.dkt-brand-prudence .dkt-pl-neon .dkt-pl-eyebrow { color: #fff; }
body.dkt-brand-prudence .dkt-pl-neon .dkt-pl-copy { color: #EAF4D8; }   /* §3.4 AA: "Ilumina tus momentos…" casi blanco sobre verde/oscuro */
body.dkt-brand-prudence .dkt-pl-neon .dkt-pl-shot img { filter: drop-shadow(0 0 26px rgba(143,196,0,.45)) drop-shadow(0 24px 30px rgba(0,0,0,.6)); }
body.dkt-brand-prudence .dkt-pl-neon .dkt-pl-ver { color: #10240a; }
body.dkt-brand-prudence .dkt-pl-neon .dkt-pl-add { background: var(--pl-neon-btn) !important; color: #fff !important; box-shadow: 0 0 22px rgba(143,196,0,.5); }
body.dkt-brand-prudence .dkt-pl-neon .dkt-pl-add:hover { box-shadow: 0 0 30px rgba(143,196,0,.75), 0 14px 30px -12px rgba(0,0,0,.55); }

/* TAMAÑOS */
body.dkt-brand-prudence .dkt-pl-tamanos { background: radial-gradient(74% 64% at 50% 44%, #103040 0%, #0c161c 55%, #000 100%); }
body.dkt-brand-prudence .dkt-pl-tamanos .dkt-pl-wm { color: var(--pl-azul); font-size: 15vh; }   /* §8 watermark "Tamaños" más pequeño y legible */
body.dkt-brand-prudence .dkt-pl-tamanos .dkt-pl-eyebrow,
body.dkt-brand-prudence .dkt-pl-tamanos .dkt-pl-subtitle { color: var(--pl-azul); }
body.dkt-brand-prudence .dkt-pl-tamanos .dkt-pl-copy2 { color: #A9D8F4; }
body.dkt-brand-prudence .dkt-pl-tamanos .dkt-pl-copy { color: #fff; }   /* §3.4 AA: "Para todos los tamaños 😉" */
body.dkt-brand-prudence .dkt-pl-feathers { position: absolute; inset: 0; z-index: 2; pointer-events: none; overflow: hidden; }
body.dkt-brand-prudence .dkt-pl-feathers img { position: absolute; opacity: .5; filter: drop-shadow(0 0 16px rgba(61,160,229,.45)); }
/* §8 plumas al CENTRO, flanqueando el mockup (z-index 2 < inner 6 → quedan detrás del producto, no de las letras). */
/* §9 r7: pluma izquierda un poco más ARRIBA, derecha un poco más ABAJO. */
body.dkt-brand-prudence .dkt-pl-feathers .f1 { width: 40%; top: 40%; left: 50%; transform: translate(-92%, -50%) rotate(-16deg); }
body.dkt-brand-prudence .dkt-pl-feathers .f2 { width: 34%; top: 64%; left: 50%; transform: translate(-8%, -42%) rotate(168deg); }
body.dkt-brand-prudence .dkt-pl-tamanos .dkt-pl-shot img { filter: drop-shadow(0 0 40px rgba(61,160,229,.22)) drop-shadow(0 24px 30px rgba(0,0,0,.55)); }
body.dkt-brand-prudence .dkt-pl-tamanos .dkt-pl-ver { color: #0a3a57; }
body.dkt-brand-prudence .dkt-pl-tamanos .dkt-pl-add { background: #155e92 !important; color: #fff !important; }

/* RETARDANTE */
body.dkt-brand-prudence .dkt-pl-retardante { background: radial-gradient(72% 62% at 50% 44%, #262024 0%, #141013 55%, #000 100%); }
body.dkt-brand-prudence .dkt-pl-retardante .dkt-pl-wm { color: #fff; font-size: 15vh; }   /* §8 watermark "Sensaciones" más pequeño y legible */
body.dkt-brand-prudence .dkt-pl-retardante .dkt-pl-eyebrow { color: #FF6A6A; }
body.dkt-brand-prudence .dkt-pl-retardante .dkt-pl-copy { color: #fff; }   /* §3.4 AA: "⏱️ Alarga y prolonga…" */
body.dkt-brand-prudence .dkt-pl-clock { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: min(78%, 440px); opacity: .1; z-index: 1; pointer-events: none; }
body.dkt-brand-prudence .dkt-pl-retardante .dkt-pl-shot img { filter: drop-shadow(0 26px 32px rgba(0,0,0,.65)); }
body.dkt-brand-prudence .dkt-pl-retardante .dkt-pl-ver { color: var(--pl-red); }
body.dkt-brand-prudence .dkt-pl-retardante .dkt-pl-add { background: var(--pl-red) !important; color: #fff !important; }

/* =============================================================================
   9 · TEXTURAS (r7: MISMO layout que Sabores — cabecera centrada + fila de 3 tarjetas simétricas)
   ============================================================================= */
body.dkt-brand-prudence .dkt-pl-texturas {
	background: radial-gradient(110% 90% at 12% 18%, rgba(214,88,54,.45) 0%, transparent 46%), radial-gradient(120% 100% at 92% 82%, rgba(13,110,150,.55) 0%, transparent 50%), radial-gradient(rgba(255,255,255,.06) 1.4px, transparent 1.7px) 0 0 / 16px 16px, linear-gradient(160deg, #0e1014 0%, #0d1518 60%, #0a1a22 100%);
}
body.dkt-brand-prudence .dkt-pl-row5--tex { gap: clamp(30px, 6.5vw, 96px); }
body.dkt-brand-prudence .dkt-pl-row5--tex .dkt-pl-fcard { width: clamp(150px, 18vw, 230px); }
body.dkt-brand-prudence .dkt-pl-texturas .dkt-pl-fcard .dkt-pl-shot img { height: clamp(160px, 28vh, 280px); filter: drop-shadow(0 0 30px rgba(94,194,222,.28)) drop-shadow(0 18px 26px rgba(0,0,0,.55)); }
body.dkt-brand-prudence .dkt-pl-texturas .dkt-pl-ver { color: #0a3a47; }
body.dkt-brand-prudence .dkt-pl-texturas .dkt-pl-eyebrow { color: var(--pl-cyan); }
/* §10 r7: simetría — nombre 1 línea + desc con altura reservada → precio/botón a la MISMA base; más aire. */
body.dkt-brand-prudence .dkt-pl-texturas .dkt-pl-fcard .dkt-pl-pn { min-height: 1.4em; white-space: nowrap; margin-bottom: 8px; }
body.dkt-brand-prudence .dkt-pl-texturas .dkt-pl-fcard .dkt-pl-pd { min-height: 2.6em; display: flex; align-items: center; justify-content: center; }
/* §10 r7: botón "Agregar al carrito" con letras BLANCAS (teal oscuro, AA ≈5:1 con blanco). */
body.dkt-brand-prudence .dkt-pl-texturas .dkt-pl-add { background: #0B6E84 !important; color: #fff !important; }

/* =============================================================================
   10 · GELES
   ============================================================================= */
body.dkt-brand-prudence .dkt-pl-geles {
	background: radial-gradient(110% 90% at 14% 16%, #4a0f30 0%, transparent 46%),
	            radial-gradient(120% 100% at 88% 84%, #3a0a22 0%, transparent 50%),
	            linear-gradient(160deg, #160a10 0%, #1d0d16 60%, #241016 100%);
}
body.dkt-brand-prudence .dkt-pl-row5--geles { gap: clamp(0px, .6vw, 14px); align-items: flex-end; }
body.dkt-brand-prudence .dkt-pl-row5--geles .dkt-pl-fcard { width: clamp(120px, 15vw, 205px); }
body.dkt-brand-prudence .dkt-pl-row5--geles .dkt-pl-shot img { height: clamp(170px, 30vh, 300px); }   /* §3.2 cabe en 100svh (tubos reducidos) */
/* §13 r7: las imágenes de geles NO se deforman (achatadas) → fija proporción con object-fit:contain. */
body.dkt-brand-prudence .dkt-pl-geles .dkt-pl-shot img { width: auto !important; object-fit: contain; }
body.dkt-brand-prudence .dkt-pl-geles .dkt-pl-fcard .dkt-pl-pd { color: #E0CBD6; }
body.dkt-brand-prudence .dkt-pl-geles .dkt-pl-ver { color: var(--pl-mag-deep); }
body.dkt-brand-prudence .dkt-pl-geles .dkt-pl-add { background: #fff !important; color: var(--pl-mag-deep) !important; }
/* §14 simetría geles — nombre 1 línea y desc con altura reservada → precio/botón a la misma base en las 5 columnas. */
body.dkt-brand-prudence .dkt-pl-geles .dkt-pl-fcard .dkt-pl-pn { min-height: 1.2em; white-space: nowrap; }
body.dkt-brand-prudence .dkt-pl-geles .dkt-pl-fcard .dkt-pl-pd { min-height: 2.4em; display: flex; align-items: center; justify-content: center; }

/* =============================================================================
   11 · FEMENINO
   ============================================================================= */
body.dkt-brand-prudence .dkt-pl-femenino { background: radial-gradient(75% 88% at 74% 42%, #B0046E 0%, #7a0a4e 36%, #330f24 74%, #160a12 100%); }
body.dkt-brand-prudence .dkt-pl-femenino__grid { display: grid; grid-template-columns: 1.04fr .96fr; gap: clamp(28px, 5vw, 64px); align-items: center; }
body.dkt-brand-prudence .dkt-pl-femenino .dkt-pl-lead { color: #F6DCEB; max-width: 42ch; margin: 16px 0 18px; }
body.dkt-brand-prudence .dkt-pl-attrs { list-style: none; display: flex; flex-direction: column; gap: 11px; margin: 0 0 22px; padding: 0; }
body.dkt-brand-prudence .dkt-pl-attrs li { position: relative; padding-left: 26px; color: #fff; font-size: clamp(.92rem, 1.9vh, 1.05rem); }
body.dkt-brand-prudence .dkt-pl-attrs li::before { content: ""; position: absolute; left: 0; top: .5em; width: 10px; height: 10px; border-radius: 50%; background: var(--pl-rhoda); }
body.dkt-brand-prudence .dkt-pl-femenino__buy { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
body.dkt-brand-prudence .dkt-pl-femenino .dkt-pl-regsan { color: #F0C3DA; margin-top: 22px; }
/* §11 r7: reg. sanitario femenino MUCHO más pequeño. */
body.dkt-brand-prudence .dkt-pl-regsan--xs { font-size: .56rem; letter-spacing: .01em; opacity: .8; }
body.dkt-brand-prudence .dkt-pl-add--rhoda { background: var(--pl-rhoda-deep) !important; color: #fff !important; padding: 15px 28px; }
body.dkt-brand-prudence .dkt-pl-femenino__shot { position: relative; display: flex; align-items: center; justify-content: center; min-height: clamp(280px, 56vh, 520px); }
body.dkt-brand-prudence .dkt-pl-venus { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: min(80%, 420px); opacity: .1; z-index: 1; pointer-events: none; }
body.dkt-brand-prudence .dkt-pl-femenino__shot .dkt-pl-shot { position: relative; z-index: 2; }
body.dkt-brand-prudence .dkt-pl-femenino__shot .dkt-pl-shot img { height: clamp(280px, 56vh, 520px); filter: drop-shadow(0 0 50px rgba(229,6,149,.4)) drop-shadow(0 28px 40px rgba(0,0,0,.5)); }
body.dkt-brand-prudence .dkt-pl-femenino__shot .dkt-pl-ver { color: var(--pl-rhoda-deep); }

/* =============================================================================
   12 · CIERRE (cifras + mosaico de valores)
   ============================================================================= */
/* §12 r7: la fila llena el alto del panel (minmax(0,1fr)) → la columna del mosaico ocupa todo el alto disponible. */
body.dkt-brand-prudence .dkt-pl-cierre { display: grid; grid-template-columns: 1.05fr .95fr; grid-template-rows: minmax(0, 1fr); align-items: stretch; background: var(--pl-ink-2); }
body.dkt-brand-prudence .dkt-pl-reach { position: relative; display: flex; align-items: center; padding: clamp(80px,10vh,96px) clamp(22px,3.2vw,52px) 46px; overflow: hidden; }
body.dkt-brand-prudence .dkt-pl-reach__map { position: absolute; top: 50%; left: 54%; transform: translate(-50%,-50%); width: 84%; height: 92%; background-repeat: no-repeat; background-position: center; background-size: contain; opacity: .2; z-index: 0; pointer-events: none; }
body.dkt-brand-prudence .dkt-pl-king { position: absolute; left: 71%; top: 34%; transform: translate(-50%,-50%); z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 10px; }   /* §12.1 emblema + corona un poco más arriba */
body.dkt-brand-prudence .dkt-pl-crown { width: clamp(46px, 5.4vw, 66px); height: auto; color: var(--pl-gold); filter: drop-shadow(0 3px 10px rgba(232,179,58,.55)); }
body.dkt-brand-prudence .dkt-pl-emb { height: clamp(82px, 12.5vh, 132px); width: auto; }
body.dkt-brand-prudence .dkt-pl-reach__in { position: relative; z-index: 2; max-width: 360px; }
body.dkt-brand-prudence .dkt-pl-reach__h { font-family: var(--la-display); font-weight: 900; font-size: clamp(1.7rem, 3.3vh, 2.5rem); text-transform: uppercase; line-height: 1.05; letter-spacing: -.01em; margin: 0; max-width: 13ch; }
body.dkt-brand-prudence .dkt-pl-big { display: flex; align-items: center; gap: 16px; margin-top: 22px; }
body.dkt-brand-prudence .dkt-pl-big__n { font-family: var(--la-display); font-weight: 900; font-size: clamp(3.4rem, 8.4vh, 5.6rem); line-height: .82; color: #fff; }
/* §5.1: "CONDONES VENDIDOS EN 2025" blanco, MAYÚSCULAS, 3 líneas al lado de la "M". */
body.dkt-brand-prudence .dkt-pl-big__s { font-family: var(--la-display); font-weight: 800; font-size: clamp(.66rem, 1.2vh, .8rem); color: #fff; line-height: 1.18; letter-spacing: .06em; text-transform: uppercase; max-width: 7ch; }
body.dkt-brand-prudence .dkt-pl-cont { font-family: var(--la-display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .8rem; color: #fff; margin-top: 16px; }
body.dkt-brand-prudence .dkt-pl-trust { display: flex; align-items: center; gap: clamp(18px, 2.6vw, 32px); margin-top: clamp(24px, 4vh, 44px); flex-wrap: wrap; }
body.dkt-brand-prudence .dkt-pl-trust img { filter: brightness(0) invert(1); opacity: .95; }
body.dkt-brand-prudence .dkt-pl-trust__triple { height: clamp(96px, 13vh, 140px); width: auto; }   /* §5.1 sellos más grandes */
body.dkt-brand-prudence .dkt-pl-trust__elec { height: clamp(66px, 9vh, 104px); width: auto; }

/* §12 r7: columna apilada desde ARRIBA (wordmark + slogan) → el mosaico (flex:1) llena el resto a la izquierda. */
body.dkt-brand-prudence .dkt-pl-brandclose { position: relative; display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: clamp(8px,1.4vh,16px); padding: clamp(44px,6vh,68px) clamp(22px,3.2vw,48px) clamp(28px,4vh,40px); }
body.dkt-brand-prudence .dkt-pl-brandclose__pw { height: clamp(40px, 7vh, 78px); width: auto; align-self: flex-start; margin-bottom: 10px; filter: drop-shadow(0 2px 12px rgba(0,0,0,.3)); }
body.dkt-brand-prudence .dkt-pl-slogan { font-family: var(--la-display); font-weight: 900; font-size: clamp(1.35rem, 3vh, 2.1rem); text-transform: uppercase; letter-spacing: -.01em; line-height: 1; color: #fff; margin-bottom: clamp(16px, 2.8vh, 30px); }
/* MOSAICO de valores — ronda 7 (spec §12): grid FIJO 4×8 (32 celdas), 16 cápsulas, 4 tamaños por spans.
   §12 r7: MÁS GRANDE y ALINEADO A LA IZQUIERDA → llena el ancho y el alto restante de la columna
   (sin margin:auto; align-self:stretch; flex:1). grid-template-areas tila las 32 celdas sin huecos. */
body.dkt-brand-prudence .dkt-pl-mosaic {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: repeat(8, 1fr);
	grid-template-areas:
		"a a b b"
		"a a c d"
		"e f g h"
		"e i g h"
		"j j k k"
		"l m k k"
		"n n o p"
		"n n q q";
	gap: 8px;
	width: 100%;
	flex: 1 1 auto;
	align-self: stretch;
	min-height: 0;
	margin: 0;
	padding: 12px;
	border: 2px solid rgba(255,255,255,.16);
	border-radius: 22px;
	background: rgba(255,255,255,.03);
}
/* Cápsula pill (radio completo). Llena su celda (width/height 100%); el texto nunca se corta porque
   cada capsula solo rota con frases de su MISMO tamaño. */
body.dkt-brand-prudence .dkt-pl-vchip {
	display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; height: 100%;
	padding: 4px 12px; border-radius: 14px; border: 2px solid transparent;
	font-family: var(--la-display); font-weight: 800; font-size: clamp(.6rem, 1.3vh, .9rem);
	line-height: 1.06; text-align: center; white-space: normal; overflow: hidden;
	cursor: pointer; user-select: none; will-change: transform;
	transition: transform .25s var(--pl-ease), box-shadow .25s, opacity .22s ease, background .3s, color .3s;
}
/* Variantes por tamaño (4: grande 2×2, sabor 2×1, ancha 1×2 = base, chica 1×1) */
body.dkt-brand-prudence .dkt-pl-vchip.is-grande { font-size: clamp(.74rem, 1.8vh, 1.1rem); flex-direction: column; gap: 5px; padding: 10px 14px; }
body.dkt-brand-prudence .dkt-pl-vchip.is-sabor  { flex-direction: column; gap: 1px; }   /* sticker: emoji grande arriba + nombre abajo */
body.dkt-brand-prudence .dkt-pl-vchip.is-sabor .dkt-pl-vem { font-size: 2.1em; }
body.dkt-brand-prudence .dkt-pl-vchip.is-chica  { font-size: clamp(.58rem, 1.2vh, .82rem); gap: 4px; }
body.dkt-brand-prudence .dkt-pl-vchip.is-grande .dkt-pl-vic { width: 1.8em; height: 1.8em; }
body.dkt-brand-prudence .dkt-pl-vic { width: 1.15em; height: 1.15em; flex: none; }
body.dkt-brand-prudence .dkt-pl-vem { font-size: 1.15em; line-height: 1; flex: none; }
/* Hover ELEGANTE: sube suave (scale) + brillo; NO empuja vecinos (la repulsión JS se eliminó). */
body.dkt-brand-prudence .dkt-pl-vchip:hover { transform: scale(1.04); box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 10px 24px rgba(0,0,0,.45); z-index: 2; }
/* Tratamientos = los del Home (espejo de brand-values.css; NO se edita ese archivo). */
body.dkt-brand-prudence .dkt-pl-vchip.t-fill      { background: #1F140F; color: #fff; border-color: #fff; }   /* §12 r7: cápsulas fill (negro) con borde BLANCO */
body.dkt-brand-prudence .dkt-pl-vchip.t-tonal     { background: #fff; color: #1F140F; border-color: #fff; }
body.dkt-brand-prudence .dkt-pl-vchip.t-fem       { background: #DD0090; color: #fff; border-color: #ff7ccb; }
body.dkt-brand-prudence .dkt-pl-vchip.t-neon      { background: #1F140F; color: #8FC400; border-color: #8FC400; text-shadow: 0 0 8px rgba(143,196,0,.7); }
body.dkt-brand-prudence .dkt-pl-vchip.t-frutilla  { background: #D6294A; color: #fff; border-color: rgba(255,255,255,.5); }
body.dkt-brand-prudence .dkt-pl-vchip.t-menta     { background: #1A8049; color: #fff; border-color: rgba(255,255,255,.5); }
body.dkt-brand-prudence .dkt-pl-vchip.t-chicle    { background: #D42A82; color: #fff; border-color: rgba(255,255,255,.5); }
body.dkt-brand-prudence .dkt-pl-vchip.t-caipirina { background: #C2E06A; color: #14501C; border-color: #14501C; }
body.dkt-brand-prudence .dkt-pl-vchip.t-mix       { background: #FF8A1E; color: #1F140F; border-color: #1F140F; }
body.dkt-brand-prudence .dkt-pl-vchip.t-chocolate { background: #5A3620; color: #fff; border-color: #FFD9B3; }
body.dkt-brand-prudence .dkt-pl-vchip.t-fresafire { background: #D63A12; color: #fff; border-color: rgba(255,255,255,.5); }
/* §3 mosaico responsive: en pantallas angostas el cierre se apila y el mosaico ocupa todo el ancho;
   con aspect 6/5 las filas quedarían muy bajas y cortarían texto → alto AUTO con filas de altura mínima. */
@media (max-width: 700px) {
	body.dkt-brand-prudence .dkt-pl-mosaic { width: 100%; max-width: none; min-height: 0; grid-template-rows: repeat(8, minmax(46px, auto)); }
	body.dkt-brand-prudence .dkt-pl-vchip.is-grande { padding: 12px; }
}

/* =============================================================================
   13 · FRANJA DE CONFIANZA (banda delgada tras el Cierre · ronda 4)
   ============================================================================= */
/* §3 r7: la franja SÍ es snap point (sin él, con mandatory el scroll regresa al cierre y no se llega a ella).
   Seguro ahora porque el footer DKT está oculto (display:none) → no hay footer global que atrapar. */
body.dkt-brand-prudence .dkt-pl-confianza { scroll-snap-align: start; border-top: 1px solid rgba(255,255,255,.1); background: #120A07; }
body.dkt-brand-prudence .dkt-pl-cwrap { max-width: 1280px; margin: 0 auto; padding: clamp(28px,4.4vh,46px) clamp(20px,4vw,48px); }
body.dkt-brand-prudence .dkt-pl-crow { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px,2vw,28px); }   /* §13.1 exactamente 4 bloques */
body.dkt-brand-prudence .dkt-pl-cblock { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 9px; }
body.dkt-brand-prudence .dkt-pl-cblock__ic { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14); color: #fff; overflow: hidden; }
body.dkt-brand-prudence .dkt-pl-cblock__ic svg { width: 24px; height: 24px; }
body.dkt-brand-prudence .dkt-pl-cblock__ic.is-flag svg { width: 48px; height: 48px; }
body.dkt-brand-prudence .dkt-pl-cblock__t { font-family: var(--la-display); font-weight: 800; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; color: #fff; }
body.dkt-brand-prudence .dkt-pl-cblock__d { font-size: .78rem; line-height: 1.45; color: #C9BBB4; max-width: 24ch; }
/* Logos de pago (fila bajo los bloques) — fail-visible: el nombre (::before) se ve
   por defecto; el JS añade .has-img solo si el SVG carga (Ricardo los entrega en pagos/). */
body.dkt-brand-prudence .dkt-pl-pays { display: flex; align-items: center; justify-content: flex-start; gap: 14px; flex-wrap: wrap; margin-top: clamp(24px,3.4vh,36px); padding-top: clamp(18px,2.6vh,26px); border-top: 1px solid rgba(255,255,255,.08); }
body.dkt-brand-prudence .dkt-pl-pays__lbl { font-family: var(--la-display); font-weight: 700; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: #C9BBB4; margin-right: 4px; }
body.dkt-brand-prudence .dkt-pl-pcap { background: #fff; border-radius: 10px; padding: 7px 14px; display: inline-flex; align-items: center; gap: 12px; }
body.dkt-brand-prudence .dkt-pl-plogo { width: auto; display: block; }
body.dkt-brand-prudence .dkt-pl-plogo--deuna { height: 24px; }
body.dkt-brand-prudence .dkt-pl-plogo--pichincha { height: 16px; }
body.dkt-brand-prudence .dkt-pl-plogo--payphone { height: 15px; }
body.dkt-brand-prudence .dkt-pl-plogo--visa { height: 36px; }
body.dkt-brand-prudence .dkt-pl-plogo--mc { height: 31px; }
body.dkt-brand-prudence .dkt-pl-plogo--diners { height: 22px; }
body.dkt-brand-prudence .dkt-pl-plogo--discover { height: 13px; }
body.dkt-brand-prudence .dkt-pl-pdiv { width: 1px; height: 30px; background: rgba(255,255,255,.2); }
body.dkt-brand-prudence .dkt-pl-pdivi { width: 1px; height: 24px; background: rgba(0,0,0,.14); }
body.dkt-brand-prudence .dkt-pl-cod { background: #2eb85c; color: #fff; border-radius: 8px; padding: 6px 11px; display: inline-flex; align-items: center; gap: 7px; font-family: var(--la-display); font-weight: 800; font-size: .72rem; text-transform: uppercase; letter-spacing: .02em; }
body.dkt-brand-prudence .dkt-pl-cod svg { width: 18px; height: 18px; }
/* Redes + suscripción */
body.dkt-brand-prudence .dkt-pl-csub { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-top: clamp(20px,3vh,30px); padding-top: clamp(16px,2.4vh,24px); border-top: 1px solid rgba(255,255,255,.08); }
body.dkt-brand-prudence .dkt-pl-news { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
body.dkt-brand-prudence .dkt-pl-news label { font-family: var(--la-display); font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: #fff; }
/* §13.3 input más pequeño y el botón pegado a su derecha. */
body.dkt-brand-prudence .dkt-pl-news input { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: 10px 14px; color: #fff; font-family: inherit; font-size: .82rem; min-width: 0; width: clamp(150px, 22vw, 190px); }
body.dkt-brand-prudence .dkt-pl-news label { margin-right: 2px; }
body.dkt-brand-prudence .dkt-pl-news input::placeholder { color: #B7A99F; }
body.dkt-brand-prudence .dkt-pl-news__btn { background: #fff; color: var(--pl-red); border: 0; border-radius: 999px; padding: 11px 20px; font-family: var(--la-display); font-weight: 800; font-size: .76rem; text-transform: uppercase; letter-spacing: .03em; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; }
body.dkt-brand-prudence .dkt-pl-social { display: flex; align-items: center; gap: 11px; flex-wrap: wrap; }
body.dkt-brand-prudence .dkt-pl-social__lbl { font-family: var(--la-display); font-weight: 700; font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: #C9BBB4; }
body.dkt-brand-prudence .dkt-pl-social a { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); color: #fff; }
body.dkt-brand-prudence .dkt-pl-social a svg { width: 19px; height: 19px; }
body.dkt-brand-prudence .dkt-pl-social a:hover { background: rgba(255,255,255,.12); }
body.dkt-brand-prudence .dkt-pl-social a.is-wa { background: #25D366; border-color: #25D366; color: #06351a; width: auto; border-radius: 999px; padding: 0 16px; gap: 7px; font-family: var(--la-display); font-weight: 800; font-size: .74rem; text-transform: uppercase; letter-spacing: .03em; }
body.dkt-brand-prudence .dkt-pl-social a.is-wa svg { width: 17px; height: 17px; }
body.dkt-brand-prudence .dkt-pl-legal { max-width: 1280px; margin: 0 auto; padding: 0 clamp(20px,4vw,48px) clamp(22px,3vh,30px); font-size: .7rem; color: #9a8d85; line-height: 1.5; text-align: center; }
body.dkt-brand-prudence .dkt-pl-legal__link { color: #C9BBB4; text-decoration: underline; }
body.dkt-brand-prudence .dkt-pl-legal__link:hover { color: #fff; }
body.dkt-brand-prudence .dkt-pl-legal__link:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
body.dkt-brand-prudence .dkt-pl-social a:focus-visible,
body.dkt-brand-prudence .dkt-pl-news__btn:focus-visible,
body.dkt-brand-prudence .dkt-pl-news input:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* =============================================================================
   13 · RESPONSIVE
   ============================================================================= */
@media (max-width: 860px) {
	body.dkt-brand-prudence .dkt-pl-clasico__grid { grid-template-columns: 1fr; gap: 16px; text-align: center; }
	body.dkt-brand-prudence .dkt-pl-clasico__text { order: 2; }
	body.dkt-brand-prudence .dkt-pl-desc { margin-inline: auto; }
	body.dkt-brand-prudence .dkt-pl-femenino__grid { grid-template-columns: 1fr; gap: 18px; text-align: center; }
	body.dkt-brand-prudence .dkt-pl-femenino__shot { order: -1; min-height: clamp(220px, 36vh, 320px); }
	body.dkt-brand-prudence .dkt-pl-attrs { display: inline-flex; text-align: left; }
	body.dkt-brand-prudence .dkt-pl-femenino__buy { justify-content: center; }
	body.dkt-brand-prudence .dkt-pl-cierre { grid-template-columns: 1fr; grid-template-rows: auto; }   /* §12 r7: apilado en móvil → filas naturales (no comprimir) */
	body.dkt-brand-prudence .dkt-pl-king { left: 78%; }
	body.dkt-brand-prudence .dkt-pl-slogan { white-space: normal; }
}
@media (max-width: 820px) {
	/* §4.6 seguridad: en móvil los splits/tríptico se APILAN y superan 100svh → mandatory atraparía;
	   se relaja a 'proximity' (sigue imantando sin trabarse). */
	html:has(body.dkt-brand-prudence) { scroll-snap-type: y proximity; }
	body.dkt-brand-prudence .dkt-pl-menu__row { height: 64px; }
	body.dkt-brand-prudence .dkt-pl-menu__dkt img { height: 38px; }
	body.dkt-brand-prudence .dkt-pl-menu__brand img { height: 24px; }
	body.dkt-brand-prudence .dkt-pl-split,
	body.dkt-brand-prudence .dkt-pl-texturas { grid-template-columns: 1fr; }
	body.dkt-brand-prudence .dkt-pl-panel,
	body.dkt-brand-prudence .dkt-pl-split,
	body.dkt-brand-prudence .dkt-pl-texturas { min-height: 100svh; height: auto; }
	body.dkt-brand-prudence .dkt-pl-half { min-height: 70vh; }
	body.dkt-brand-prudence .dkt-pl-wm { font-size: 16vh; }
	body.dkt-brand-prudence .dkt-pl-seam--wide,
	body.dkt-brand-prudence .dkt-pl-seam--slim { top: 50%; bottom: auto; left: 0; right: 0; transform: translateY(-50%); width: 100%; height: clamp(160px, 34vh, 320px); background: linear-gradient(180deg, transparent 0%, transparent 6%, #000 47%, #000 53%, transparent 94%, transparent 100%); }
	body.dkt-brand-prudence .dkt-pl-thead { position: static; padding: 74px 20px 6px; }
	body.dkt-brand-prudence .dkt-pl-block { padding: 30px 20px 40px; }
	body.dkt-brand-prudence .dkt-pl-block + .dkt-pl-block { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); }
	body.dkt-brand-prudence .dkt-pl-fcard { width: 44%; }
}

/* Franja de confianza — responsive (espejo del mockup v2). */
@media (max-width: 900px) {
	body.dkt-brand-prudence .dkt-pl-crow { grid-template-columns: 1fr 1fr; gap: 22px; }
	body.dkt-brand-prudence .dkt-pl-csub { justify-content: center; text-align: center; }
}
@media (max-width: 560px) {
	body.dkt-brand-prudence .dkt-pl-crow { grid-template-columns: 1fr; }
}

/* =============================================================================
   15 · REDUCED MOTION (refuerzo; base.css ya gobierna .dkt-reveal)
   ============================================================================= */
@media (prefers-reduced-motion: reduce) {
	html:has(body.dkt-brand-prudence) { scroll-behavior: auto; scroll-snap-type: none; }
	body.dkt-brand-prudence .dkt-pl-ch { animation: none !important; }
	body.dkt-brand-prudence .dkt-pl-vchip { transition: none !important; }
	body.dkt-brand-prudence .dkt-pl-shot img { transition: none !important; }
	body.dkt-brand-prudence .dkt-reveal { transition: none !important; }
}
