/* ============================================================================
   product.css — PDP premium (Fase 3 · Ronda 1 · theme 0.8.41)
   RESTYLE (no reimplementación) de los bloques del motor + pack selector propio.
   Los bloques del motor traen CSS en wp_head 100-140 (nivel clase) → se vencen con
   selectores más específicos (.woocommerce div.product …, body.dkt-cat-* …), sin
   !important salvo el badge (bg/color inline del motor). Usa los tokens del theme.
   ========================================================================== */

/* ---- Galería: empaque placeholder (Cat A/B) ---- */
.woocommerce div.product .woocommerce-product-gallery .dkt-rx-pack{
  width:100%;height:auto;max-width:520px;margin:0 auto;display:block
}

/* ---- Badge de la ficha → chip SUAVE por clase (mismo criterio que la PLP).
   El motor fija bg/color inline (1,0,0,0) → única excepción de !important. ---- */
.dkt-single-badge{
  font-family:var(--dkt-font-titles);font-weight:600;border-radius:var(--radius-pill,999px)
}
body.dkt-cat-a .dkt-single-badge{background:#FBF0F5 !important;color:#5F0E39 !important;border:1px solid #E7CEDA !important}
body.dkt-cat-b .dkt-single-badge{background:#FEF6E7 !important;color:#B45309 !important;border:1px solid #F3D9A6 !important}
body.dkt-cat-c .dkt-single-badge{background:#ECFBFD !important;color:#0E7490 !important;border:1px solid #BEE9F0 !important}

/* ---- Fuga de taxonomía interna en la ficha (H3): se oculta la categoría de Astra
   sobre el título y las "Categorías" de la fila meta; el eyebrow limpio lo pinta el theme.
   Astra la fija con .woocommerce-js div.product div.summary .single-product-category (0,4,2);
   subimos la cadena a (0,4,3) añadiendo body → le ganamos SIN !important. Verificado en prod. ---- */
body.woocommerce-js div.product div.summary .single-product-category{display:none}
.woocommerce div.product .product_meta .posted_in{display:none}
.woocommerce div.product .summary .dkt-single-eyebrow{
  font-family:var(--dkt-font-titles);font-weight:600;font-size:.7rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--accent-ink,#8E0045);margin:0 0 .25rem
}

/* ---- Precio: "(IVA incluido)" discreto (decisión Ricardo) ---- */
.woocommerce div.product p.price .woocommerce-Price-amount,
.woocommerce div.product .summary .price .woocommerce-Price-amount{
  font-family:var(--dkt-font-titles);font-weight:700;color:var(--dkt-vino)
}
.woocommerce div.product p.price .woocommerce-price-suffix,
.woocommerce div.product .summary .price .woocommerce-price-suffix{
  font-family:var(--dkt-font-body);font-weight:400;font-size:.72rem;color:var(--dkt-muted);margin-left:.3rem
}
.woocommerce div.product p.price ins .woocommerce-Price-amount{color:var(--dkt-magenta)}
.woocommerce div.product p.price del .woocommerce-Price-amount{color:#9CA3AF;font-weight:600}

/* ---- Aviso de la variante profesional (mío, filtrable) ---- */
.dkt-pro-aviso{
  display:flex;gap:.55rem;align-items:flex-start;margin:.4rem 0 1rem;
  font-size:.82rem;color:#0F6E56;background:#E6F5EF;border:1px solid #B7E0D2;
  border-radius:var(--dkt-radius);padding:.6rem .8rem
}
.dkt-pro-aviso svg{flex:none;margin-top:.1rem}
.dkt-pro-aviso p{margin:0}

/* ---- PACK SELECTOR (sustituye la tabla de volumen del motor) ---- */
.dkt-packsel{margin:1.1rem 0}
.dkt-packsel__title{
  font-family:var(--dkt-font-titles);font-weight:600;color:var(--dkt-vino);font-size:.95rem;margin-bottom:.6rem
}
.dkt-packsel__sub{font-weight:400;font-size:.8rem;color:var(--dkt-muted)}
.dkt-packsel__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}
.dkt-packopt{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:.18rem;min-width:0;
  background:#fff;border:1.5px solid var(--dkt-line);border-radius:var(--dkt-radius);
  padding:.65rem .5rem .7rem;cursor:pointer;text-align:center;font:inherit;
  transition:border-color var(--dur,240ms),box-shadow var(--dur,240ms),transform var(--dur,240ms)
}
.dkt-packopt:hover{border-color:#E7C6D3;transform:translateY(-1px)}
.dkt-packopt[aria-pressed="true"]{border-color:var(--dkt-magenta);box-shadow:0 0 0 3px rgba(165,0,80,.10)}
.dkt-packopt__qty{font-family:var(--dkt-font-titles);font-weight:700;font-size:.76rem;color:var(--dkt-muted)}
.dkt-packopt__unit{font-family:var(--dkt-font-titles);font-weight:700;font-size:1.02rem;color:var(--dkt-vino);line-height:1.05}
.dkt-packopt__unit small{font-weight:500;font-size:.58rem;color:var(--dkt-muted);margin-left:1px}
.dkt-packopt__total{font-size:.64rem;color:var(--dkt-muted);margin-top:.16rem}
.dkt-packopt__pill{
  position:absolute;top:-8px;left:50%;transform:translateX(-50%);
  font-family:var(--dkt-font-titles);font-weight:700;font-size:.6rem;color:#fff;background:#059669;
  border-radius:var(--radius-pill,999px);padding:.08rem .4rem;white-space:nowrap;box-shadow:var(--dkt-shadow-sm)
}
.dkt-packsel__foot{font-size:.72rem;color:var(--dkt-muted);margin:.55rem 0 0}
/* Variante PLAN DE TRATAMIENTO (clínico): sobria, etiquetas de plan legibles, sin pills. */
.dkt-packsel--plan .dkt-packsel__title{color:var(--dkt-vino)}
.dkt-packsel--plan .dkt-packopt{padding:.55rem .35rem .6rem}
.dkt-packsel--plan .dkt-packopt__qty{font-size:.72rem;color:var(--dkt-vino);white-space:normal;line-height:1.15}
.dkt-packsel--plan .dkt-packopt__unit{font-size:.95rem}

/* ---- (0.8.66) La tabla ARCSA del motor se MOVIÓ a la pestaña "Información del
   producto"; su estilo vive ahora en .dkt-pinfo / .dkt-spectable (más abajo). ---- */

/* ---- Aviso de prescripción del motor (.dkt-product-notice): pulido leve ---- */
.woocommerce div.product .dkt-product-notice{border-radius:var(--dkt-radius-lg);margin:1rem 0}

/* ---- Botón "Comprar / Consulta por WhatsApp" (Ronda 2, theme 0.8.67) ----
 * OUTLINE (decisión Ricardo: menos carga de color en la página): fondo BLANCO;
 * borde en verde WhatsApp y texto + icono en verde legible; al pasar el cursor se
 * RELLENA de verde con contenido blanco. Sin subtítulo. Es un <a> sin clase .button
 * → el clobber global de <button> no lo toca; scope .woocommerce div.product para
 * ganar el color del texto sin !important. El icono hereda `currentColor` del botón
 * → sigue el verde (y se vuelve blanco en hover). */
.dkt-wa-buy{margin:.9rem 0 .2rem}
.woocommerce div.product .dkt-wa-buy__btn{
  display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;
  padding:.85rem 1.2rem;background:#F1FAF4;color:#0E8A43;
  border:2px solid #25D366;border-radius:var(--radius-pill,999px);text-decoration:none;
  font-family:var(--dkt-font-titles);font-weight:600;font-size:1.02rem;line-height:1;
  box-shadow:0 5px 16px -9px rgba(37,211,102,.55);
  transition:background var(--dur,240ms),color var(--dur,240ms),border-color var(--dur,240ms),transform var(--dur,240ms),box-shadow var(--dur,240ms)
}
.woocommerce div.product .dkt-wa-buy__btn:hover,
.woocommerce div.product .dkt-wa-buy__btn:focus-visible{
  background:#25D366;color:#fff;border-color:#25D366;transform:translateY(-2px);box-shadow:0 8px 20px -8px rgba(37,211,102,.55)
}
.dkt-wa-buy__ic{display:inline-flex;line-height:0}
.dkt-wa-buy__ic svg{width:24px;height:24px;display:block}
.dkt-wa-buy__label{white-space:nowrap}
@media(prefers-reduced-motion:reduce){.woocommerce div.product .dkt-wa-buy__btn{transition:none}}

/* ---- Añadir al carrito de la ficha → píldora magenta (AJAX/qty intactos) ---- */
.woocommerce div.product form.cart .single_add_to_cart_button{
  font-family:var(--dkt-font-titles);font-weight:600;background:var(--dkt-magenta);color:#fff;
  border:2px solid transparent;border-radius:var(--radius-pill,999px);box-shadow:var(--dkt-shadow-sm);
  transition:transform var(--dur,240ms),background var(--dur,240ms)
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover{background:var(--dkt-magenta-mid);transform:translateY(-2px)}

@media(max-width:520px){.dkt-packsel__grid{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){.dkt-packopt,.woocommerce div.product form.cart .single_add_to_cart_button{transition:none}}

/* ============================================================================
 *  JERARQUÍA DE LA FICHA (theme 0.8.57). Escala clara: TÍTULO (lo más grande) >
 *  precio (un poco menor) > cápsula elegida > cápsula > detalles. Máx. ~5 niveles.
 * ========================================================================== */
.woocommerce div.product .dkt-single-eyebrow{margin-bottom:.4rem}
.woocommerce div.product .product_title,
.woocommerce div.product .product_title.entry-title{
  font-family:var(--dkt-font-titles);font-weight:700;font-size:2.05rem;line-height:1.15;margin-bottom:.55rem}
.woocommerce div.product .summary .price,
.woocommerce div.product .entry-summary .price{font-size:1.7rem;line-height:1.12;margin:.15rem 0 1.35rem}
@media(max-width:600px){
  .woocommerce div.product .product_title,
  .woocommerce div.product .product_title.entry-title{font-size:1.55rem}
  .woocommerce div.product .summary .price,
  .woocommerce div.product .entry-summary .price{font-size:1.4rem}
}

/* ============================================================================
 *  PACK SELECTOR · CÁPSULAS (modo marca). Elegida = bloque OSCURO (vino) + detalles
 *  claros. No elegidas = fondo BLANCO + borde elegante + detalles oscuros (vino).
 *  Tamaños por DEBAJO del precio para respetar la jerarquía. shop.js sincroniza el
 *  precio de arriba, la barra móvil, la foto por cantidad y el caption de la caja.
 * ========================================================================== */
.dkt-caps__row{display:flex;gap:10px;align-items:center;margin:0}
.dkt-cap{position:relative;flex:1 1 0;min-width:0;cursor:pointer;background:var(--dkt-white,#fff);color:var(--dkt-vino);
  border-radius:20px;box-shadow:inset 0 0 0 1.5px rgba(95,14,57,.16);padding:13px 7px 11px;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  transition:flex-grow .3s var(--ease,cubic-bezier(.2,.7,.2,1)),transform .2s,box-shadow .25s,background .25s}
.dkt-cap:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1.5px rgba(95,14,57,.32),0 8px 20px -10px rgba(95,14,57,.28)}
.dkt-cap__tag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);font-family:var(--dkt-font-titles);
  font-weight:700;font-size:.58rem;color:#fff;background:#0E9E6E;border-radius:999px;padding:2px 9px;white-space:nowrap;
  box-shadow:0 3px 8px -2px rgba(14,158,110,.5)}
.dkt-cap__qty{font-family:var(--dkt-font-titles);font-weight:800;font-size:1rem;line-height:1}
.dkt-cap__price{font-family:var(--dkt-font-titles);font-weight:700;font-size:1.12rem;line-height:1.05;margin-top:3px;white-space:nowrap}
.dkt-cap__price small{font-weight:500;font-size:.54rem;color:var(--dkt-muted);margin-left:1px}
.dkt-cap .q-f{display:none}
.dkt-cap__total,.dkt-cap__save{display:none}
.dkt-cap.is-sel{flex-grow:2;background:var(--dkt-vino);color:#fff;box-shadow:0 10px 22px -12px rgba(95,14,57,.5);padding:11px 15px 12px;gap:1px}
.dkt-cap.is-sel .q-s{display:none}
.dkt-cap.is-sel .q-f{display:inline}
.dkt-cap.is-sel .dkt-cap__price small{color:#E7C6D8}
.dkt-cap.is-sel .dkt-cap__tag{background:#ED0076;box-shadow:0 3px 10px -2px rgba(237,0,118,.55)}
.dkt-cap.is-sel:hover{transform:translateY(-3px)}
.dkt-cap.is-sel .dkt-cap__qty{font-size:.9rem;font-weight:600;letter-spacing:.015em;opacity:.95}
.dkt-cap.is-sel .dkt-cap__price{font-size:1.3rem;margin-top:2px;text-shadow:0 2px 12px rgba(255,255,255,.15);
  animation:dktPricePop .5s var(--ease,cubic-bezier(.2,.7,.2,1))}
.dkt-cap.is-sel .dkt-cap__price small{font-size:.58rem}
.dkt-cap.is-sel .dkt-cap__total{display:block;font-family:var(--dkt-font-body);font-size:.72rem;color:#F2E1EB;margin-top:6px;
  border-top:1px solid rgba(255,255,255,.22);padding-top:5px}
.dkt-cap.is-sel .dkt-cap__total b{font-family:var(--dkt-font-titles);font-weight:700;color:#fff}
.dkt-cap.is-sel .dkt-cap__save{display:block;font-size:.66rem;color:#9CF0CE;font-weight:700;margin-top:2px}
@keyframes dktPricePop{0%{transform:scale(.86);opacity:0}55%{transform:scale(1.06)}100%{transform:scale(1);opacity:1}}
.dkt-caps__cajawrap{text-align:center;margin-top:13px}
.dkt-caps__caja{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;background:#FBF3F7;border:1px solid rgba(95,14,57,.14);
  border-radius:999px;font-family:var(--dkt-font-titles);font-weight:600;font-size:.8rem;color:var(--dkt-vino);
  animation:dktCajaIn .35s var(--ease,cubic-bezier(.2,.7,.2,1))}
.dkt-caps__caja svg{width:15px;height:15px;flex:0 0 auto}
.dkt-caps__caja[hidden]{display:none}   /* el atributo hidden DEBE ganarle al display:inline-flex (bug caja siempre visible) */
@keyframes dktCajaIn{0%{opacity:0;transform:translateY(4px)}100%{opacity:1;transform:none}}

/* ---- Fix (0.8.58): el clobber global de <button> (dkt-style.css §botones = magenta
 *      !important, especificidad (0,2,1)) pintaba TODAS las cápsulas del mismo color con
 *      texto blanco. Forzamos el diseño real con (0,5,1)+!important: la ELEGIDA = bloque
 *      vino con texto claro; las NO elegidas = fondo BLANCO + borde grueso de color. ---- */
.woocommerce div.product .dkt-caps .dkt-cap.is-sel{background:var(--dkt-vino)!important;color:#fff!important}
.woocommerce div.product .dkt-caps .dkt-cap:not(.is-sel){background:var(--dkt-white,#fff)!important;color:var(--dkt-vino)!important;
  box-shadow:inset 0 0 0 1.5px rgba(95,14,57,.16)!important}
.woocommerce div.product .dkt-caps .dkt-cap:not(.is-sel):hover{box-shadow:inset 0 0 0 1.5px rgba(95,14,57,.32),0 8px 20px -10px rgba(95,14,57,.28)!important;transform:translateY(-3px)}

/* ---- Ficha 0.8.60: SKU/etiquetas FUERA del resumen (van a la pestaña Info adicional en
 *      Ronda 2) + breadcrumb oculto en la ficha (rompía la jerarquía); el eyebrow "PRUDENCE"
 *      queda como enlace a la marca. ---- */
.woocommerce div.product .product_meta{display:none!important}
.single-product .woocommerce-breadcrumb{display:none!important}
.dkt-single-eyebrow a{color:inherit;text-decoration:none}
.dkt-single-eyebrow a:hover{text-decoration:underline}

/* ---- Descripción bajo el título + vector (0.8.61) ---- */
.dkt-single-desc{display:none;margin:.85rem 0 1.4rem;max-width:48ch}
.dkt-single-desc.is-placed{display:block}
.dkt-single-desc__txt{font-family:var(--dkt-font-body);font-weight:400;font-size:.92rem;line-height:1.55;color:#4a4a4a}
.dkt-single-desc__txt p{margin:0}
.dkt-single-desc__txt p + p{margin-top:.4rem}
/* ---- "Información del producto" como ACORDEÓN (Ronda 2, 0.8.68) ----
 * Cerrado por defecto, centrado y elegante; al abrir uno se cierra el otro (shop.js).
 * La cabecera es un <button> → el clobber global de <button> (magenta !important,
 * espec. 0,2,1) la pintaría → la vencemos con .woocommerce div.product … (0,3,1)+!important.
 * Apertura animada con grid-template-rows 0fr→1fr (suave, sin medir alturas). */
.dkt-acc{max-width:760px;margin:2.4rem auto 0;clear:both}   /* clear:both → cae DEBAJO de la galería/resumen flotados (bug "encima del nombre" al quitar las tabs nativas de WC que traían el clear) */
.dkt-acc__item{border:1px solid var(--dkt-line);border-radius:14px;background:#fff;overflow:hidden}
.dkt-acc__item + .dkt-acc__item{margin-top:.7rem}
.dkt-acc__h{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit}
.woocommerce div.product .dkt-acc__head{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem 1.35rem;background:#fff !important;color:var(--dkt-vino) !important;
  border:0;cursor:pointer;text-align:left;
  font-family:var(--dkt-font-titles);font-weight:600;font-size:1.02rem;line-height:1.25;
  transition:background .28s var(--ease,ease),color .28s var(--ease,ease)
}
.woocommerce div.product .dkt-acc__head:hover{background:#faf5f8 !important}
.dkt-acc__title{flex:1 1 auto}
.dkt-acc__chev{flex:0 0 auto;display:inline-flex;color:var(--dkt-magenta);transition:transform .3s var(--ease,ease)}
.dkt-acc__chev svg{width:20px;height:20px;display:block}
.woocommerce div.product .dkt-acc__item.is-open .dkt-acc__head,
.woocommerce div.product .dkt-acc__item.is-open .dkt-acc__head:hover{background:var(--dkt-vino) !important;color:#fff !important}
.dkt-acc__item.is-open .dkt-acc__chev{transform:rotate(180deg);color:#fff}
.dkt-acc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease,ease)}
.dkt-acc__item.is-open .dkt-acc__panel{grid-template-rows:1fr}
.dkt-acc__inner{overflow:hidden;min-height:0}
.dkt-acc__pad{padding:1.1rem 1.35rem 1.3rem}
.dkt-acc__text{margin:0;font-family:var(--dkt-font-body);font-size:.93rem;line-height:1.6;color:#4a4a4a}

/* Tabla de especificaciones dentro del acordeón: compacta, líneas sutiles. */
.dkt-spectable{width:100%;border-collapse:collapse;font-family:var(--dkt-font-body);margin:0}
.dkt-spectable th,.dkt-spectable td{text-align:left;padding:.55rem 0;font-size:.9rem;line-height:1.45;vertical-align:top}
.dkt-spectable th{width:40%;color:var(--dkt-vino);font-weight:600;padding-right:1.2rem}
.dkt-spectable td{color:#4a4a4a}
.dkt-spectable tr + tr th,.dkt-spectable tr + tr td{border-top:1px solid var(--dkt-line)}
.dkt-spectable a{color:var(--dkt-magenta);text-decoration:none}
.dkt-spectable a:hover{text-decoration:underline}

/* Destacados (fila de productos; reusa la tarjeta del theme content-product.php).
   Clase propia .dkt-pfeat (NO .dkt-featured, que es el Destacados del Home en featured.css →
   nunca coinciden en la misma página, pero se separan para evitar cualquier choque futuro).
   Arco de marca bajo el título (mismo motivo del Home/Métodos). */
.dkt-pfeat{max-width:1180px;margin:2.8rem auto 0;padding:0 1rem;clear:both}
.dkt-pfeat__head{text-align:center;margin:0 0 1.4rem}
.dkt-pfeat__h{font-family:var(--dkt-font-titles);font-weight:700;font-size:1.35rem;color:var(--dkt-vino);text-align:center;margin:0}
.dkt-pfeat__arco{width:88px;height:14px;margin:14px auto 0;display:block;max-width:none}
.dkt-pfeat__arco path{fill:none;stroke:var(--dkt-magenta);stroke-width:3;stroke-linecap:round}
.dkt-pfeat .products{margin:0}

/* ---- Barra de compra STICKY móvil (movida desde shop.css en 0.8.69). Se renderiza en
   la FICHA (wp_footer), donde carga product.css — NO shop.css — por eso antes salía sin
   estilos como un bloque suelto con precio al fondo en desktop. Oculta en desktop; fija
   en móvil (≤760px). El botón usa .dkt-btn de components.css (dependencia, sí carga). ---- */
.dkt-stickybuy{
  position:fixed;left:0;right:0;bottom:0;z-index:50;display:none;align-items:center;gap:.8rem;
  background:#fff;border-top:1px solid var(--dkt-line);box-shadow:0 -6px 18px rgba(95,14,57,.10);padding:.6rem .9rem
}
.dkt-stickybuy__price{font-family:var(--dkt-font-titles);font-weight:700;color:var(--dkt-vino);font-size:1.1rem;line-height:1.1}
.dkt-stickybuy__price .woocommerce-price-suffix{display:inline;font-family:var(--dkt-font-body);font-weight:400;font-size:.58rem;color:var(--dkt-muted);margin-left:.2rem}
.dkt-stickybuy__rx{display:block;font-family:var(--dkt-font-body);font-weight:400;font-size:.62rem;color:var(--dkt-vino)}
.dkt-stickybuy .dkt-btn{flex:1;justify-content:center}
@media(max-width:760px){.dkt-stickybuy{display:flex}body.single-product{padding-bottom:70px}}

@media(max-width:600px){.dkt-acc{margin-top:1.8rem}}
@media(prefers-reduced-motion:reduce){.dkt-acc__head,.dkt-acc__chev,.dkt-acc__panel{transition:none}}

/* ---- Precio dinámico del pack: MISMO tamaño/estilo que el nativo (el de "1 unidad")
 *      + sublínea pequeña con el detalle. El total usa el markup nativo
 *      .woocommerce-Price-amount → hereda el tamaño del precio nativo; así el TÍTULO
 *      del producto sigue siendo lo más grande y los botones no se achican. ---- */
.dkt-price--pack .dkt-price__was{margin-left:8px;text-decoration:none}
.dkt-price--pack .dkt-price__was .woocommerce-Price-amount{font-size:.62em;font-weight:600;color:#B39AA6;text-decoration:line-through}
.dkt-price--pack .dkt-price__sub{display:block;margin-top:5px;font-family:var(--dkt-font-body);font-weight:400;font-size:.8rem;color:var(--dkt-muted);line-height:1.45}
.dkt-price--pack .dkt-price__unit{color:var(--dkt-vino);font-weight:600}
.dkt-price--pack .dkt-price__save{color:#0E9E6E;font-weight:600}

@media(max-width:520px){
  .dkt-caps__row{flex-wrap:wrap}
  .dkt-cap{flex:1 1 40%}
  .dkt-cap.is-sel{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){
  .dkt-cap,.dkt-caps__caja{transition:none}
  .dkt-cap.is-sel .dkt-cap__price,.dkt-caps__caja{animation:none}
}

/* ============================================================================
   Galería de producto PREMIUM (.dkt-gallery) — reemplaza el carrusel nativo de
   WooCommerce (FlexSlider). La construye shop.js. Miniatura seleccionada = borde
   magenta; imagen principal contenida y enmarcada; obedece al selector de packs.
   ========================================================================== */
.woocommerce div.product .dkt-gallery{display:flex;gap:14px;margin:0 0 1.6em;align-items:flex-start;max-width:600px}
.dkt-gallery__thumbs{display:flex;flex-direction:column;gap:10px;flex:0 0 78px;order:0}
.dkt-gallery__main{flex:1 1 auto;order:1;min-width:0;background:transparent;border:none;
  border-radius:16px;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  padding:8px;overflow:hidden}
.dkt-gallery__main img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;margin:0}
/* Las miniaturas son <button> → hay que GANARLE al clobber global de botón
   (dkt-style.css `button:not(.toggle-on):not(.toggle-off)` = (0,2,1) + !important,
   que impone background magenta + padding 12px 28px). Se usa (0,3,1) + !important. */
.woocommerce div.product .dkt-gallery__thumb{padding:0!important;margin:0;border:2px solid transparent!important;
  background:#fff!important;border-radius:12px!important;box-shadow:none!important;box-sizing:border-box!important;
  width:78px;height:78px;cursor:pointer;overflow:hidden;display:flex;align-items:center;
  justify-content:center;transition:border-color .15s ease,transform .15s ease;-webkit-appearance:none;appearance:none}
.woocommerce div.product .dkt-gallery__thumb img{width:100%;height:100%;object-fit:contain;padding:5px;opacity:1!important;margin:0;display:block}
.woocommerce div.product .dkt-gallery__thumb:hover{border-color:#e2dcdf!important;background:#fff!important;transform:translateY(-1px)}
.woocommerce div.product .dkt-gallery__thumb.is-active{border-color:#A50050!important}
.woocommerce div.product .dkt-gallery__thumb:focus-visible{outline:2px solid #A50050;outline-offset:2px}
/* La galería propia va DENTRO del contenedor nativo (hereda el ancho de columna float).
   Se oculta SOLO el wrapper de imágenes nativas; el contenedor se mantiene visible y se
   fuerza opacity:1 (traía opacity:0 inline que revelaba el FlexSlider ya desactivado). */
.woocommerce div.product.dkt-has-custom-gallery .woocommerce-product-gallery{opacity:1!important;background:transparent!important;box-shadow:none!important;border:none!important}
.woocommerce div.product.dkt-has-custom-gallery .woocommerce-product-gallery__wrapper{display:none!important}
@media(max-width:768px){
  .woocommerce div.product .dkt-gallery{flex-direction:column;gap:10px}
  .dkt-gallery__thumbs{flex-direction:row;flex:0 0 auto;order:1;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .woocommerce div.product .dkt-gallery__thumb{flex:0 0 64px;width:64px;height:64px}
  .dkt-gallery__main{order:0;width:100%}
}

/* ============================================================================
   PDP · JERARQUÍA PREMIUM (0.9.4 · mockup aprobado 2026-07-26)
   Título contenido (~27px), descripción muted 14.5, precio 28 magenta, badge
   pill suave (mismo lenguaje de la Tienda), aviso Cat C DISCRETO (línea con
   border-top, no caja invasiva), acordeón proporcionado y WhatsApp suave.
   Overrides al FINAL del archivo: ganan por cascada a igual especificidad.
   ========================================================================== */
.woocommerce div.product .product_title{font-size:1.7rem!important;line-height:1.18;letter-spacing:-.01em;margin:0 0 .5rem}
.woocommerce div.product .dkt-single-desc,
.woocommerce div.product .dkt-single-desc p{font-size:.9rem;line-height:1.6;color:var(--dkt-muted)}
.woocommerce div.product .dkt-single-desc{max-width:46ch;margin-bottom:.4rem}
.woocommerce div.product p.price{margin:.35rem 0 .9rem}
.woocommerce div.product p.price .woocommerce-Price-amount{font-size:1.75rem;font-weight:700;color:var(--dkt-magenta)}
.woocommerce div.product p.price .woocommerce-price-suffix{font-size:.78rem;font-weight:500;color:var(--dkt-muted)}
/* Badge del motor (single) → pill suave por clase. El motor fija bg/color INLINE
   → !important justificado (misma excepción documentada del loop en shop.css). */
.woocommerce div.product .dkt-single-badge{border-radius:999px!important;font-family:var(--dkt-font-titles);font-weight:600;font-size:.72rem!important;padding:.34rem .85rem!important;box-shadow:none!important}
body.dkt-cat-c .dkt-single-badge{background:#ECFBFD!important;color:#0E7490!important;border:1px solid #BEE9F0!important}
body.dkt-cat-a .dkt-single-badge{background:#FBF0F5!important;color:#5F0E39!important;border:1px solid #E7CEDA!important}
body.dkt-cat-b .dkt-single-badge{background:#FEF6E7!important;color:#B45309!important;border:1px solid #F3D9A6!important}
/* Aviso Cat C del motor → LÍNEA discreta (mockup). Cat A/B conservan su caja
   (contenido regulatorio largo); aquí solo el dispositivo médico se aligera. */
body.dkt-cat-c .dkt-product-notice.dkt-notice-device{background:transparent!important;border:0!important;border-top:1px solid var(--dkt-line)!important;border-radius:0!important;padding:.8rem 0 0!important;margin:1rem 0 .9rem!important;gap:9px}
body.dkt-cat-c .dkt-notice-device .dkt-notice-icon{font-size:15px;line-height:1.4}
body.dkt-cat-c .dkt-notice-device .dkt-notice-content strong{display:inline;font-family:var(--dkt-font-titles);font-weight:600;font-size:.8rem;color:var(--dkt-vino)}
body.dkt-cat-c .dkt-notice-device .dkt-notice-content p{display:inline;font-size:.8rem;line-height:1.5;color:var(--dkt-muted);margin:0 0 0 .25rem}
/* Acordeón proporcionado */
.dkt-acc{margin-top:.4rem}
.dkt-acc__item{border:1px solid var(--dkt-line);border-radius:10px;margin-bottom:8px;overflow:hidden}
.dkt-acc__head{padding:.85rem 1rem}
.dkt-acc__title{font-size:.9rem}
/* WhatsApp de la ficha → botón SUAVE (verde claro con borde, mockup) */
.dkt-wa-buy__btn{background:#f4fbf6!important;border:1.5px solid #d6ead9!important;color:#1f8a4c!important;border-radius:10px!important;box-shadow:none!important}
.dkt-wa-buy__btn:hover{background:#eaf7ee!important}
.dkt-wa-buy__btn .dkt-wa-buy__label{color:#1f8a4c}
.dkt-wa-buy__ic svg{fill:#1f8a4c}

/* ============================================================================
   Aviso Cat B (AOE · Postpil) PREMIUM (0.9.41 · revisión Ricardo): muere la
   caja amarilla con emoji — tarjeta limpia del sistema, título y subtítulos
   en vino, texto discreto. El fineprint (GLSG/DKT) se vacía por gettext en
   functions.php; aquí se ocultan el emoji y cualquier párrafo vacío.
   ========================================================================== */
.woocommerce div.product .dkt-product-notice.dkt-notice-declaration{background:#FDF9F6!important;border:1px solid var(--dkt-line,#ECD9DE)!important;border-left:3px solid var(--dkt-magenta,#A50050)!important;border-radius:14px!important;padding:1.05rem 1.2rem!important;gap:0!important}
.woocommerce div.product .dkt-notice-declaration .dkt-notice-icon{display:none!important}
.woocommerce div.product .dkt-notice-declaration .dkt-notice-content>strong{display:block;font-family:var(--dkt-font-titles,'Poppins',sans-serif);font-weight:600;font-size:.95rem;color:var(--dkt-vino,#5F0E39);margin-bottom:.3rem}
.woocommerce div.product .dkt-notice-declaration .dkt-notice-content p{font-size:.84rem;line-height:1.55;color:var(--dkt-muted,#6a737b);margin:.4rem 0 0}
.woocommerce div.product .dkt-notice-declaration .dkt-notice-content p strong{font-family:var(--dkt-font-titles,'Poppins',sans-serif);font-weight:600;color:var(--dkt-vino,#5F0E39)}
.woocommerce div.product .dkt-notice-declaration .dkt-notice-fineprint{display:none!important}
