/*
Theme Name:   Dekomuebles
Theme URI:    https://dekomuebles.goagl.in
Description:  Tema hijo de Astra para Dekomuebles, fábrica de muebles de Coquimbo. Grafito con el verde lima del logo; video en portada, cotizador por pasos y tienda WooCommerce.
Author:       VendeWEB.cl
Author URI:   https://vendeweb.cl
Template:     astra
Version:      1.0.0
Text Domain:  dekomuebles
*/

/* ==========================================================================
   1. Tokens
   ========================================================================== */
:root {
  --dk-negro: #0c0d0f;
  --dk-grafito: #141619;
  --dk-grafito-2: #1c1f23;
  --dk-grafito-3: #272b30;
  --dk-linea-osc: rgba(255, 255, 255, .1);
  --dk-claro: #f0f2ee;
  --dk-claro-2: #a9aea6;
  --dk-hueso: #f4f5f1;
  --dk-blanco: #fff;
  --dk-tinta: #121417;
  --dk-gris: #5b6159;
  --dk-linea: #e1e4dd;
  --dk-verde: #84c925;          /* verde del logo: fondos, botones y acentos sobre oscuro */
  --dk-verde-hover: #9bdc3f;
  --dk-verde-texto: #3d6a08;    /* el verde para texto sobre claro (contraste AA) */
  --dk-rojo: #e2412b;
  --dk-radio: 18px;
  --dk-radio-s: 12px;
  --dk-sombra: 0 18px 50px -18px rgba(12, 13, 15, .35);
  --dk-ancho: 1320px;
  --dk-cab-alto: 76px;
  --dk-fuente-t: "Sora", system-ui, sans-serif;
  --dk-fuente: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --dk-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ==========================================================================
   2. Base y limpieza de Astra
   ========================================================================== */
html { overflow-x: clip; scroll-behavior: smooth; }
body.dk {
  font-family: var(--dk-fuente);
  font-size: 16px;
  line-height: 1.6;
  color: var(--dk-tinta);
  background: var(--dk-hueso);
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}
body.dk h1, body.dk h2, body.dk h3, body.dk h4, body.dk .dk-tit h2 {
  font-family: var(--dk-fuente-t);
  letter-spacing: -.02em;
  line-height: 1.12;
  color: inherit;
  font-weight: 700;
}
body.dk a { color: inherit; }
body.dk img { max-width: 100%; height: auto; }
body.dk [hidden] { display: none !important; }
.dk-sin-scroll { overflow: hidden; }
.dk-ico { flex: none; display: inline-block; vertical-align: middle; }
.dk-envoltura { width: min(100% - 40px, var(--dk-ancho)); margin-inline: auto; }

/* páginas propias: sin contenedor de Astra */
body.dk-cab-sobre .site-content > .ast-container,
body.home .site-content > .ast-container { max-width: none; padding: 0; display: block; }
body.dk-cab-sobre #primary, body.home #primary { margin: 0; padding: 0; width: 100%; }
body.dk .site-content { background: transparent; }
body.dk #masthead, body.dk .site-footer { display: none; }

/* ==========================================================================
   3. Botones y enlaces
   ========================================================================== */
.dk-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  font-family: var(--dk-fuente-t); font-weight: 600; font-size: 15px; line-height: 1;
  padding: 14px 22px; border-radius: 999px; border: 1.5px solid transparent;
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: transform .25s var(--dk-ease), background .25s, color .25s, border-color .25s, box-shadow .25s;
}
.dk-btn:hover { transform: translateY(-2px); }
.dk-btn:focus-visible { outline: 3px solid var(--dk-verde); outline-offset: 3px; }
.dk-btn--verde { background: var(--dk-verde); color: var(--dk-negro) !important; box-shadow: 0 10px 30px -10px rgba(132, 201, 37, .7); }
.dk-btn--verde:hover { background: var(--dk-verde-hover); }
.dk-btn--borde { border-color: currentColor; color: inherit; background: transparent; }
.dk-btn--borde:hover { background: rgba(132, 201, 37, .12); border-color: var(--dk-verde); }
.dk-btn--vidrio { background: rgba(255, 255, 255, .1); color: #fff !important; border-color: rgba(255, 255, 255, .28); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.dk-btn--vidrio:hover { background: rgba(255, 255, 255, .2); }
.dk-btn--wa { background: #1faa53; color: #fff !important; }
.dk-btn--grande { padding: 17px 28px; font-size: 16px; }
.dk-btn--chico { padding: 11px 18px; font-size: 14px; }
.dk-link { display: inline-flex; align-items: center; gap: .4em; font-weight: 600; text-decoration: none; color: var(--dk-verde-texto); white-space: nowrap; }
.dk-link .dk-ico { transition: transform .25s var(--dk-ease); }
.dk-link:hover .dk-ico { transform: translateX(4px); }

/* ==========================================================================
   4. Cinta y cabecera
   ========================================================================== */
.dk-cinta { background: var(--dk-verde); color: var(--dk-negro); overflow: hidden; font-size: 13px; font-weight: 600; height: 36px; display: flex; align-items: center; position: relative; z-index: 60; }
.dk-cinta__pista { display: flex; width: max-content; animation: dk-cinta 48s linear infinite; }
.dk-cinta__dup { display: flex; }
.dk-cinta__it { display: inline-flex; align-items: center; gap: 8px; padding: 0 28px; white-space: nowrap; }
.dk-cinta__it + .dk-cinta__it::before, .dk-cinta__dup .dk-cinta__it::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: rgba(12, 13, 15, .45); margin-right: 20px; margin-left: -28px; }
@keyframes dk-cinta { to { transform: translateX(-50%); } }

.dk-cab { position: sticky; top: 0; z-index: 50; background: rgba(12, 13, 15, .92); color: #fff; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid var(--dk-linea-osc); transition: background .35s, border-color .35s; }
body.dk-cab-sobre .dk-cab { background: transparent; border-color: transparent; margin-bottom: calc(var(--dk-cab-alto) * -1); backdrop-filter: none; -webkit-backdrop-filter: none; }
body.dk-cab-sobre .dk-cab.is-solida { background: rgba(12, 13, 15, .9); border-color: var(--dk-linea-osc); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.admin-bar .dk-cab { top: 32px; }
.dk-cab__in { width: min(100% - 40px, 1440px); margin-inline: auto; height: var(--dk-cab-alto); display: flex; align-items: center; gap: 28px; }
.dk-cab__logo { text-decoration: none; flex: none; }

.dk-logo { display: inline-flex; align-items: center; gap: 4px; color: #fff; line-height: 1; }
.dk-logo__d { width: 42px; height: 42px; border-radius: 50%; background: var(--dk-verde); color: var(--dk-negro); display: grid; place-items: center; font: 800 25px/1 var(--dk-fuente-t); letter-spacing: -.04em; box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .25); }
.dk-logo__txt { display: flex; flex-direction: column; gap: 3px; }
.dk-logo__nom { font: 700 23px/1 var(--dk-fuente-t); letter-spacing: -.035em; }
.dk-logo__sub { font: 500 11px/1 var(--dk-fuente); color: var(--dk-verde); letter-spacing: .02em; padding-left: 1px; }

.dk-nav { display: flex; align-items: center; gap: 22px; margin-inline: auto; }
.dk-nav__top, .dk-nav__cta, .dk-nav__cerrar { display: none; }
.dk-nav__lista { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; }
.dk-nav__lista > li { position: relative; }
.dk-nav__lista > li > a { display: inline-flex; align-items: center; gap: 4px; padding: 10px 13px; border-radius: 999px; font-size: 15px; font-weight: 500; text-decoration: none; color: rgba(255, 255, 255, .86); transition: background .2s, color .2s; }
.dk-nav__lista > li > a:hover { background: rgba(255, 255, 255, .08); color: #fff; }

.dk-panel { position: absolute; top: calc(100% + 10px); left: -10px; width: 560px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: .25s var(--dk-ease); }
.dk-panel::before { content: ""; position: absolute; inset: -14px 0 auto; height: 14px; }
.dk-nav__tiene-panel:hover .dk-panel, .dk-nav__tiene-panel:focus-within .dk-panel { opacity: 1; visibility: visible; transform: none; }
.dk-panel__in { background: #fff; color: var(--dk-tinta); border-radius: var(--dk-radio); padding: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .5); }
.dk-panel__cat { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: var(--dk-radio-s); text-decoration: none; transition: background .2s; }
.dk-panel__cat:hover { background: var(--dk-hueso); }
.dk-panel__img { width: 54px; height: 54px; border-radius: 10px; background: var(--dk-hueso); overflow: hidden; flex: none; }
.dk-panel__img img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.dk-panel__cat strong { display: block; font: 600 14.5px/1.2 var(--dk-fuente-t); }
.dk-panel__cat small { color: var(--dk-gris); font-size: 12.5px; }
.dk-panel__todo { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-radius: var(--dk-radio-s); background: var(--dk-negro); color: #fff !important; font-weight: 600; text-decoration: none; }

.dk-cab__acc { display: flex; align-items: center; gap: 4px; }
.dk-cab__ico { position: relative; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: transparent; border: 0; cursor: pointer; padding: 0; transition: background .2s; text-decoration: none; }
.dk-cab__ico:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.dk-cab__cta { margin-left: 8px; }
.dk-cab__menu { display: none; }
.dk-carro__n { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--dk-verde); color: var(--dk-negro); font: 700 11px/18px var(--dk-fuente); text-align: center; }
.dk-carro__n[data-n="0"] { display: none; }
.dk-carro.is-pulso { animation: dk-pulso .6s var(--dk-ease); }
@keyframes dk-pulso { 40% { transform: scale(1.25); } }

.dk-buscar { position: fixed; inset: 0; z-index: 100; background: rgba(12, 13, 15, .7); backdrop-filter: blur(6px); display: flex; align-items: flex-start; justify-content: center; padding: 14vh 20px 0; }
.dk-buscar__form { width: min(720px, 100%); background: #fff; border-radius: 999px; display: flex; align-items: center; gap: 12px; padding: 8px 8px 8px 24px; box-shadow: 0 30px 80px rgba(0, 0, 0, .4); }
.dk-buscar__form input[type=search] { flex: 1; border: 0 !important; outline: 0; font-size: 18px; background: transparent !important; padding: 12px 0 !important; box-shadow: none !important; }
.dk-buscar__cerrar { width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--dk-hueso); cursor: pointer; display: grid; place-items: center; color: var(--dk-tinta); padding: 0; }

/* ==========================================================================
   5. Héroe
   ========================================================================== */
.dk-hero { position: relative; min-height: min(100svh, 980px); display: flex; flex-direction: column; color: #fff; background: var(--dk-negro); overflow: hidden; isolation: isolate; }
.dk-hero__media { position: absolute; inset: 0; z-index: -1; }
.dk-hero__v { width: 100%; height: 100%; object-fit: cover; }
.dk-hero__v--cel { display: none; }
.dk-hero__media::after { content: ""; position: absolute; inset: 0; background:
  linear-gradient(90deg, rgba(12, 13, 15, .92) 0%, rgba(12, 13, 15, .72) 42%, rgba(12, 13, 15, .25) 100%),
  linear-gradient(0deg, rgba(12, 13, 15, .95) 0%, rgba(12, 13, 15, 0) 38%); }
.dk-hero__in { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: calc(var(--dk-cab-alto) + 60px) 0 50px; }
.dk-hero__sello { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: rgba(255, 255, 255, .85); margin: 0 0 22px; }
.dk-punto { width: 9px; height: 9px; border-radius: 50%; background: var(--dk-verde); box-shadow: 0 0 0 0 rgba(132, 201, 37, .6); animation: dk-latido 2.2s infinite; }
@keyframes dk-latido { 70% { box-shadow: 0 0 0 12px rgba(132, 201, 37, 0); } 100% { box-shadow: 0 0 0 0 rgba(132, 201, 37, 0); } }
.dk-hero h1 { font-size: clamp(36px, 5.4vw, 76px); max-width: 15.5ch; margin: 0 0 22px; color: #fff; font-weight: 700; letter-spacing: -.035em; line-height: 1.02; }
.dk-hero__bajada { font-size: clamp(17px, 1.45vw, 20px); max-width: 46ch; color: rgba(255, 255, 255, .8); margin: 0 0 26px; }
.dk-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.dk-hero__promo { margin-top: 24px; align-self: flex-start; display: inline-flex; align-items: center; gap: 14px; padding: 10px 18px 10px 10px; border-radius: 999px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); text-decoration: none; color: #fff !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transition: background .25s; max-width: 100%; }
.dk-hero__promo:hover { background: rgba(255, 255, 255, .14); }
.dk-hero__promo-tag { background: var(--dk-verde); color: var(--dk-negro); font: 700 12px/1 var(--dk-fuente-t); padding: 8px 12px; border-radius: 999px; }
.dk-hero__promo-txt { display: flex; flex-direction: column; font-size: 13px; color: rgba(255, 255, 255, .75); line-height: 1.35; }
.dk-hero__promo-txt strong { color: #fff; font-size: 14.5px; font-weight: 600; }
.dk-promo__reloj { font-variant-numeric: tabular-nums; color: var(--dk-verde); font-weight: 600; }
.dk-hero__datos { border-top: 1px solid var(--dk-linea-osc); background: rgba(12, 13, 15, .55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.dk-hero__datos .dk-envoltura { display: grid; grid-template-columns: repeat(4, 1fr); }
.dk-hero__datos .dk-envoltura > div { padding: 16px 20px 16px 0; display: flex; flex-direction: column; gap: 2px; }
.dk-hero__datos .dk-envoltura > div + div { padding-left: 24px; border-left: 1px solid var(--dk-linea-osc); }
.dk-hero__datos strong { font: 700 22px/1.15 var(--dk-fuente-t); color: #fff; }
.dk-hero__datos span { font-size: 14px; color: var(--dk-claro-2); }

/* ==========================================================================
   6. Secciones genéricas
   ========================================================================== */
.dk-sec { padding: clamp(40px, 5vw, 72px) 0; position: relative; }
.dk-sec--claro { background: var(--dk-hueso); }
.dk-tit { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(20px, 2.6vw, 32px); }
.dk-tit h2 { font-size: clamp(30px, 3.6vw, 50px); margin: 0 0 8px; max-width: 20ch; }
.dk-tit p { margin: 0; font-size: 17.5px; color: var(--dk-gris); max-width: 58ch; }
.dk-tit--claro p { color: var(--dk-claro-2); }
.dk-tit--claro h2 { color: #fff; }
.dk-tit--claro .dk-link { color: var(--dk-verde); }

.dk-revela { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--dk-ease), transform .8s var(--dk-ease); transition-delay: var(--retraso, 0ms); }
.dk-revela.is-in { opacity: 1; transform: none; }
html:not(.dk-js) .dk-revela { opacity: 1; transform: none; }

.dk-check { list-style: none; margin: 0 0 26px; padding: 0; display: grid; gap: 10px; }
.dk-check li { display: flex; gap: 10px; align-items: flex-start; }
.dk-check .dk-ico { color: var(--dk-verde); margin-top: 3px; }

.dk-video { width: 100%; height: 100%; object-fit: cover; display: block; background: var(--dk-grafito-2); }

/* ==========================================================================
   7. Las tres líneas
   ========================================================================== */
.dk-lineas { background: var(--dk-blanco); }
.dk-lineas__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.dk-linea { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 600px; border-radius: 26px; overflow: hidden; text-decoration: none; color: #fff !important; isolation: isolate; background: var(--dk-negro); }
.dk-linea__media { position: absolute; inset: 0; z-index: -1; }
.dk-linea__media > *, .dk-linea__media img, .dk-linea__media picture { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--dk-ease); }
.dk-linea:hover .dk-linea__media > * { transform: scale(1.06); }
.dk-linea::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(12, 13, 15, .05) 25%, rgba(12, 13, 15, .92) 78%); transition: background .4s; }
.dk-linea__body { padding: 28px; }
.dk-linea__n { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .4); font: 600 13px/1 var(--dk-fuente-t); margin-bottom: 16px; }
.dk-linea h3 { font-size: 30px; margin: 0 0 10px; color: #fff; }
.dk-linea p { color: rgba(255, 255, 255, .8); margin: 0 0 16px; font-size: 15.5px; }
.dk-linea ul { list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.dk-linea li { font-size: 13px; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .12); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.dk-linea__cta { display: inline-flex; align-items: center; gap: 8px; font: 600 15px/1 var(--dk-fuente-t); color: var(--dk-verde); }
.dk-linea__cta .dk-ico { transition: transform .3s var(--dk-ease); }
.dk-linea:hover .dk-linea__cta .dk-ico { transform: translateX(6px); }

/* ==========================================================================
   8. Vitrina y tarjetas de producto
   ========================================================================== */
.dk-tabs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin-bottom: 26px; padding-bottom: 2px; }
.dk-tabs::-webkit-scrollbar { display: none; }
.dk-tab { flex: none; padding: 11px 18px; border-radius: 999px; border: 1.5px solid var(--dk-linea); background: #fff; color: var(--dk-tinta); font: 600 14.5px/1 var(--dk-fuente-t); cursor: pointer; transition: .2s; }
.dk-tab:hover { border-color: var(--dk-tinta); }
.dk-tab.is-on { background: var(--dk-tinta); border-color: var(--dk-tinta); color: #fff; }

.dk-carril { position: relative; }
.dk-carril__pista { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 18px) / 4); gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px 2px 18px; }
.dk-carril__pista::-webkit-scrollbar { display: none; }
.dk-carril__pista > * { scroll-snap-align: start; }
.dk-carril__btn { position: absolute; top: 34%; z-index: 3; width: 50px; height: 50px; border-radius: 50%; border: 0; background: #fff; color: var(--dk-tinta); display: grid; place-items: center; cursor: pointer; box-shadow: var(--dk-sombra); transition: opacity .25s, transform .25s; padding: 0; }
.dk-carril__btn:hover { transform: scale(1.08); background: var(--dk-verde); }
.dk-carril__btn:disabled { opacity: 0; pointer-events: none; }
.dk-carril__btn--izq { left: 8px; }
.dk-carril__btn--der { right: 8px; }
@media (min-width: 1420px) { .dk-carril__btn--izq { left: -22px; } .dk-carril__btn--der { right: -22px; } }

.dk-prod { position: relative; display: flex; flex-direction: column; background: #fff; border-radius: var(--dk-radio); overflow: hidden; height: 100%; transition: box-shadow .35s var(--dk-ease), transform .35s var(--dk-ease); border: 1px solid #eceee8; }
.dk-prod:hover { box-shadow: var(--dk-sombra); transform: translateY(-4px); }
.dk-prod__img { position: relative; display: block; aspect-ratio: 1; background: #fff; overflow: hidden; }
.dk-prod__img img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: contain; padding: 18px; transition: opacity .45s, transform .7s var(--dk-ease); }
.dk-prod__img2 { opacity: 0; object-fit: cover !important; padding: 0 !important; }
.dk-prod:hover .dk-prod__img2 { opacity: 1; }
.dk-prod:hover .dk-prod__img img:first-child { transform: scale(1.04); }
.dk-prod__dcto { position: absolute; top: 12px; left: 12px; z-index: 2; background: var(--dk-rojo); color: #fff; font: 700 13px/1 var(--dk-fuente-t); padding: 7px 10px; border-radius: 8px; }
.dk-prod__info { padding: 16px 18px 70px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.dk-prod__cat { font-size: 12.5px; color: var(--dk-gris); }
.dk-prod h3 { font: 600 16.5px/1.3 var(--dk-fuente-t); margin: 0 0 6px; letter-spacing: -.01em; }
.dk-prod h3 a { text-decoration: none; }
.dk-prod__precio { font: 700 21px/1.2 var(--dk-fuente-t); color: var(--dk-tinta); }
.dk-prod__precio del { font: 500 14px/1 var(--dk-fuente); color: #8c9189; margin-right: 6px; }
.dk-prod__precio ins { text-decoration: none; }
.dk-prod__ahorro { font-size: 13px; font-weight: 600; color: var(--dk-verde-texto); }
.dk-prod__add { position: absolute; left: 18px; right: 18px; bottom: 16px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px; border-radius: 999px; background: var(--dk-tinta); color: #fff !important; font: 600 14px/1 var(--dk-fuente-t); text-decoration: none; transition: background .25s, color .25s; }
.dk-prod__add:hover { background: var(--dk-verde); color: var(--dk-negro) !important; }
.dk-prod__add.loading { opacity: .6; }
.dk-prod__add.is-ok { background: var(--dk-verde); color: var(--dk-negro) !important; }
.dk-prod__add.added::after, .dk-prod + .added_to_cart, .dk-prod .added_to_cart { display: none !important; }

/* ==========================================================================
   9. Fábrica (bento oscuro)
   ========================================================================== */
.dk-fabrica { background: var(--dk-negro); color: #fff; }
.dk-fabrica__bento { display: grid; grid-template-columns: 1.4fr 1fr 1fr; grid-template-rows: 300px 260px; gap: 16px; }
.dk-bento { position: relative; margin: 0; border-radius: 22px; overflow: hidden; background: var(--dk-grafito-2); isolation: isolate; }
.dk-bento > video, .dk-bento > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; }
.dk-bento::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 35%, rgba(12, 13, 15, .9)); }
.dk-bento figcaption { position: absolute; left: 22px; right: 22px; bottom: 20px; display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; align-items: center; }
.dk-bento figcaption .dk-ico { grid-row: span 2; width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--dk-verde); color: var(--dk-negro); }
.dk-bento figcaption strong { font: 700 19px/1.2 var(--dk-fuente-t); }
.dk-bento figcaption span { font-size: 14px; color: rgba(255, 255, 255, .75); line-height: 1.4; }
.dk-bento--cnc { grid-row: span 2; }
.dk-bento--camion { grid-column: span 2; }
.dk-bento--camion img { object-position: center 78%; }
.dk-bento--cifras { background: var(--dk-verde); color: var(--dk-negro); display: grid; grid-template-columns: 1fr; align-content: center; gap: 14px; padding: 24px 26px; }
.dk-bento--cifras::after { display: none; }
.dk-bento--cifras > div { display: flex; align-items: baseline; gap: 10px; border-bottom: 1px solid rgba(12, 13, 15, .15); padding-bottom: 12px; }
.dk-bento--cifras > div:last-child { border: 0; padding: 0; }
.dk-bento--cifras strong { font: 800 38px/1 var(--dk-fuente-t); letter-spacing: -.04em; min-width: 2.1ch; }
.dk-bento--cifras span { font-size: 14px; font-weight: 500; }

/* ==========================================================================
   10. Empresas y minería
   ========================================================================== */
.dk-empresas { background: var(--dk-grafito); color: #fff; }
.dk-caso { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(28px, 4vw, 64px); align-items: center; }
.dk-caso__videos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dk-caso__videos > div { position: relative; aspect-ratio: 9 / 16; border-radius: 22px; overflow: hidden; background: var(--dk-grafito-2); }
.dk-caso__testimonio { transform: translateY(40px); }
.dk-caso__testimonio video { width: 100%; height: 100%; object-fit: cover; display: block; }
.dk-testimonio__play { position: absolute; inset: 0; margin: auto; width: 76px; height: 76px; border-radius: 50%; border: 0; background: var(--dk-verde); color: var(--dk-negro); display: grid; place-items: center; cursor: pointer; box-shadow: 0 0 0 10px rgba(132, 201, 37, .25); transition: transform .25s; padding: 0 0 0 4px; }
.dk-testimonio__play:hover { transform: scale(1.08); }
.dk-testimonio__tag { position: absolute; top: 14px; left: 14px; display: inline-flex; gap: 6px; align-items: center; font-size: 12.5px; font-weight: 600; padding: 7px 11px; border-radius: 999px; background: rgba(12, 13, 15, .6); backdrop-filter: blur(6px); }
.dk-caso__testimonio.is-play .dk-testimonio__play, .dk-caso__testimonio.is-play .dk-testimonio__tag { display: none; }
.dk-caso__logo { display: inline-block; font: 600 13.5px/1 var(--dk-fuente-t); color: var(--dk-verde); padding: 9px 14px; border: 1px solid rgba(132, 201, 37, .4); border-radius: 999px; margin-bottom: 20px; }
.dk-caso__lead { font: 500 clamp(20px, 1.9vw, 26px)/1.4 var(--dk-fuente-t); letter-spacing: -.015em; margin: 0 0 18px; color: #fff; }
.dk-caso__firma { color: var(--dk-claro-2); font-size: 14.5px; margin: 0 0 26px; }
.dk-caso__firma strong { display: block; color: #fff; font-size: 16px; }
.dk-empresas .dk-check li { color: rgba(255, 255, 255, .88); }
.dk-clientes { margin-top: clamp(70px, 8vw, 110px); padding-top: 28px; border-top: 1px solid var(--dk-linea-osc); display: flex; flex-wrap: wrap; gap: 14px 30px; align-items: center; }
.dk-clientes > span { color: var(--dk-claro-2); font-size: 14px; }
.dk-clientes ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.dk-clientes li { font: 600 15px/1 var(--dk-fuente-t); padding: 12px 18px; border-radius: 999px; background: var(--dk-grafito-2); border: 1px solid var(--dk-linea-osc); }

/* ==========================================================================
   11. Reels de proyectos
   ========================================================================== */
.dk-reels { background: var(--dk-negro); color: #fff; padding-bottom: clamp(70px, 8vw, 110px); }
.dk-reels__pista { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 0 max(20px, calc((100vw - var(--dk-ancho)) / 2)); scroll-padding: 0 max(20px, calc((100vw - var(--dk-ancho)) / 2)); }
.dk-reels__pista::-webkit-scrollbar { display: none; }
.dk-reel { flex: 0 0 clamp(220px, 21vw, 290px); aspect-ratio: 9 / 16; margin: 0; position: relative; border-radius: 22px; overflow: hidden; scroll-snap-align: start; background: var(--dk-grafito-2); }
.dk-reel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(12, 13, 15, .85)); }
.dk-reel figcaption { position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 2; display: flex; flex-direction: column; gap: 2px; }
.dk-reel figcaption span { font-size: 12.5px; color: var(--dk-verde); font-weight: 600; }
.dk-reel figcaption strong { font: 600 16px/1.25 var(--dk-fuente-t); }

/* ==========================================================================
   12. Cotizador
   ========================================================================== */
.dk-cotiza { background: var(--dk-blanco); }
.dk-cotiza__grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(24px, 3.5vw, 56px); align-items: start; }
.dk-cotiza__intro h2 { font-size: clamp(30px, 3.4vw, 48px); margin: 0 0 14px; }
.dk-cotiza__intro > p { font-size: 17.5px; color: var(--dk-gris); margin: 0 0 30px; }
.dk-cotiza__pasos-info { list-style: none; margin: 0 0 30px; padding: 0; display: grid; gap: 18px; }
.dk-cotiza__pasos-info li { display: flex; gap: 16px; align-items: flex-start; }
.dk-cotiza__pasos-info li > span { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--dk-tinta); color: var(--dk-verde); display: grid; place-items: center; font: 700 16px/1 var(--dk-fuente-t); }
.dk-cotiza__pasos-info strong { display: block; font: 600 17px/1.3 var(--dk-fuente-t); }
.dk-cotiza__pasos-info div { color: var(--dk-gris); font-size: 15px; }
.dk-cotiza .dk-promo { display: block; background: var(--dk-tinta); color: #fff; border-radius: var(--dk-radio); padding: 22px 24px; }
.dk-cotiza .dk-promo strong { display: block; font: 700 19px/1.3 var(--dk-fuente-t); margin-bottom: 4px; }
.dk-cotiza .dk-promo > span { color: var(--dk-claro-2); font-size: 14.5px; }
.dk-cotiza .dk-promo__reloj { display: flex; gap: 6px; align-items: baseline; margin-top: 14px; font-size: 13px; color: var(--dk-claro-2); }
.dk-cotiza .dk-promo__reloj span { font: 700 26px/1 var(--dk-fuente-t); color: var(--dk-verde); min-width: 1.4em; }

.dk-form { background: var(--dk-hueso); border-radius: 26px; padding: clamp(22px, 3vw, 38px); position: relative; overflow: hidden; border: 1px solid var(--dk-linea); }
.dk-form__barra { height: 6px; border-radius: 3px; background: #e2e5de; margin-bottom: 26px; overflow: hidden; }
.dk-form__barra span { display: block; height: 100%; width: var(--p, 33%); background: var(--dk-verde); border-radius: 3px; transition: width .5s var(--dk-ease); }
.dk-paso { border: 0; padding: 0; margin: 0; display: none; min-width: 0; }
.dk-paso.is-on { display: block; animation: dk-entra .45s var(--dk-ease); }
@keyframes dk-entra { from { opacity: 0; transform: translateX(16px); } }
.dk-paso legend { font: 700 24px/1.2 var(--dk-fuente-t); margin-bottom: 20px; padding: 0; letter-spacing: -.02em; }
.dk-opciones { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.dk-opcion input, .dk-chip input { position: absolute; opacity: 0; pointer-events: none; }
.dk-opcion span { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 16px; min-height: 112px; border-radius: 16px; background: #fff; border: 1.5px solid var(--dk-linea); font: 600 15px/1.25 var(--dk-fuente-t); cursor: pointer; transition: .2s; }
.dk-opcion span .dk-ico { color: var(--dk-verde-texto); }
.dk-opcion:hover span { border-color: var(--dk-tinta); }
.dk-opcion input:checked + span { background: var(--dk-tinta); color: #fff; border-color: var(--dk-tinta); }
.dk-opcion input:checked + span .dk-ico { color: var(--dk-verde); }
.dk-opcion input:focus-visible + span, .dk-chip input:focus-visible + span { outline: 3px solid var(--dk-verde); outline-offset: 2px; }
.dk-campo { display: block; margin-bottom: 18px; }
.dk-campo > span { display: flex; justify-content: space-between; font-weight: 600; font-size: 14.5px; margin-bottom: 8px; }
.dk-campo small { color: var(--dk-gris); font-weight: 400; }
.dk-campo output { font: 700 15px/1 var(--dk-fuente-t); color: var(--dk-verde-texto); }
.dk-form input[type=text], .dk-form input[type=tel], .dk-form textarea { width: 100%; border: 1.5px solid var(--dk-linea) !important; border-radius: 12px !important; padding: 13px 15px !important; font: 400 16px/1.4 var(--dk-fuente) !important; background: #fff !important; color: var(--dk-tinta) !important; box-shadow: none !important; transition: border-color .2s; }
.dk-form input:focus, .dk-form textarea:focus { border-color: var(--dk-tinta) !important; outline: 0; }
.dk-form input[type=range] { width: 100%; accent-color: var(--dk-verde-texto); height: 28px; }
.dk-campo-par { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dk-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.dk-chip span { display: inline-block; padding: 10px 15px; border-radius: 999px; background: #fff; border: 1.5px solid var(--dk-linea); font-size: 14.5px; font-weight: 500; cursor: pointer; transition: .2s; }
.dk-chip input:checked + span { background: var(--dk-tinta); color: #fff; border-color: var(--dk-tinta); }
.dk-form__nav { display: flex; justify-content: space-between; gap: 10px; margin-top: 22px; }
.dk-form__nav .dk-sig:only-child { margin-left: auto; }
.dk-form__error { color: var(--dk-rojo); font-weight: 600; font-size: 14.5px; margin: 12px 0 0; }
.dk-form__nota { font-size: 13px; color: var(--dk-gris); margin: 14px 0 0; }
.dk-trampa { position: absolute !important; left: -9999px !important; }
.dk-paso--ok { text-align: center; padding: 30px 0; }
.dk-ok { width: 84px; height: 84px; border-radius: 50%; background: var(--dk-verde); color: var(--dk-negro); display: grid; place-items: center; margin: 0 auto 18px; }
.dk-paso--ok h3 { font-size: 26px; margin: 0 0 8px; }
.dk-paso--ok a { color: var(--dk-verde-texto); font-weight: 600; }

/* ==========================================================================
   13. Tiendas
   ========================================================================== */
.dk-tiendas__grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 24px; align-items: stretch; }
.dk-tiendas__foto { border-radius: 24px; overflow: hidden; min-height: 380px; }
.dk-tiendas__foto picture, .dk-tiendas__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dk-tiendas__lista { display: flex; flex-direction: column; gap: 12px; }
.dk-tienda { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; padding: 20px 22px; border-radius: var(--dk-radio); background: #fff; border: 1px solid var(--dk-linea); text-decoration: none; transition: border-color .25s, transform .25s var(--dk-ease); }
.dk-tienda:hover { border-color: var(--dk-tinta); transform: translateX(4px); }
.dk-tienda__n { grid-row: span 2; font: 700 15px/1 var(--dk-fuente-t); width: 42px; height: 42px; border-radius: 12px; background: var(--dk-tinta); color: var(--dk-verde); display: grid; place-items: center; }
.dk-tienda__txt { font-size: 15px; color: var(--dk-gris); }
.dk-tienda__txt strong { display: block; color: var(--dk-tinta); font: 600 17px/1.3 var(--dk-fuente-t); }
.dk-tienda__ir { display: inline-flex; gap: 6px; align-items: center; font-weight: 600; font-size: 14px; color: var(--dk-verde-texto); }
.dk-tiendas__contacto { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }
.dk-tiendas__contacto a { display: inline-flex; gap: 8px; align-items: center; padding: 13px 18px; border-radius: 999px; background: var(--dk-tinta); color: #fff !important; text-decoration: none; font-weight: 600; font-size: 14.5px; }
.dk-mapa iframe { display: block; width: 100%; height: 420px; border: 0; filter: grayscale(.6) contrast(1.05); }

/* ==========================================================================
   14. Portada de páginas interiores
   ========================================================================== */
.dk-portada { position: relative; min-height: min(78svh, 720px); display: flex; align-items: flex-end; color: #fff; background: var(--dk-negro); overflow: hidden; isolation: isolate; }
.dk-portada__media { position: absolute; inset: 0; z-index: -1; }
.dk-portada__media > *, .dk-portada__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dk-portada__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12, 13, 15, .9), rgba(12, 13, 15, .45) 70%), linear-gradient(0deg, rgba(12, 13, 15, .9), transparent 50%); }
.dk-portada__in { padding: calc(var(--dk-cab-alto) + 44px) 0 clamp(34px, 4.5vw, 60px); }
.dk-portada__miga, .dk-portada__sep, .dk-portada__miga-actual { font-size: 14px; color: rgba(255, 255, 255, .7); text-decoration: none; }
.dk-portada__sep { margin: 0 8px; }
.dk-portada__miga-actual { color: var(--dk-verde); }
.dk-portada h1 { font-size: clamp(36px, 5vw, 70px); margin: 16px 0 18px; max-width: 17ch; color: #fff; letter-spacing: -.035em; line-height: 1.04; }
.dk-portada h1 span, .dk-pie__cta h2 span { color: var(--dk-verde); }
.dk-portada p { font-size: clamp(16.5px, 1.4vw, 19px); color: rgba(255, 255, 255, .8); max-width: 56ch; margin: 0 0 30px; }
.dk-portada__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.dk-portada__btns .dk-btn--borde { color: #fff; }

/* a medida */
.dk-medida { background: var(--dk-blanco); }
.dk-medida__b { display: grid; grid-template-columns: .8fr 1fr; gap: clamp(24px, 4vw, 60px); align-items: center; }
.dk-medida__b + .dk-medida__b { margin-top: clamp(60px, 8vw, 110px); }
.dk-medida__b--inv .dk-medida__media { order: 2; }
.dk-medida__media { aspect-ratio: 4 / 5; border-radius: 26px; overflow: hidden; max-height: 640px; }
.dk-medida__txt h2 { font-size: clamp(30px, 3.4vw, 46px); margin: 0 0 14px; }
.dk-medida__txt > p { font-size: 17.5px; color: var(--dk-gris); margin: 0 0 24px; }
.dk-galeria__grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.dk-galeria__grid figure { margin: 0; position: relative; border-radius: 20px; overflow: hidden; grid-column: span 2; aspect-ratio: 4 / 3.4; }
.dk-galeria__grid figure:nth-child(1), .dk-galeria__grid figure:nth-child(2) { grid-column: span 3; aspect-ratio: 4 / 3; }
.dk-galeria__grid picture, .dk-galeria__grid img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s var(--dk-ease); }
.dk-galeria__grid figure:hover img { transform: scale(1.05); }
.dk-galeria__grid figcaption { position: absolute; left: 14px; bottom: 14px; right: 14px; font-size: 14px; font-weight: 600; color: #fff; padding: 9px 13px; border-radius: 10px; background: rgba(12, 13, 15, .6); backdrop-filter: blur(6px); width: fit-content; }

/* inmobiliarias */
.dk-inmob__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.dk-inmob__it { margin: 0; background: #fff; border-radius: 20px; overflow: hidden; border: 1px solid var(--dk-linea); }
.dk-inmob__it picture, .dk-inmob__it img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.dk-inmob__it figcaption { padding: 16px 18px 20px; }
.dk-inmob__it strong { display: block; font: 600 16px/1.3 var(--dk-fuente-t); margin-bottom: 4px; }
.dk-inmob__it span { font-size: 14px; color: var(--dk-gris); }
.dk-ventajas { margin-top: 28px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.dk-ventajas > div { background: var(--dk-tinta); color: #fff; border-radius: 20px; padding: 24px; display: flex; flex-direction: column; gap: 6px; }
.dk-ventajas .dk-ico { color: var(--dk-verde); margin-bottom: 10px; }
.dk-ventajas strong { font: 600 18px/1.25 var(--dk-fuente-t); }
.dk-ventajas span { color: var(--dk-claro-2); font-size: 14.5px; }

/* nosotros */
.dk-valores__grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(30px, 5vw, 70px); }
.dk-valores h2 { font-size: clamp(30px, 3.4vw, 46px); margin: 0 0 16px; }
.dk-valores__grid > div > p { font-size: 17.5px; color: var(--dk-gris); }
.dk-valores__cards { display: grid; gap: 16px; }
.dk-valores__cards > div { background: #fff; border-radius: 20px; padding: 26px 28px; border: 1px solid var(--dk-linea); }
.dk-valores__cards h3 { margin: 0 0 8px; font-size: 22px; }
.dk-valores__cards p { margin: 0; color: var(--dk-gris); }

/* ==========================================================================
   15. Pie
   ========================================================================== */
.dk-pie { background: var(--dk-negro); color: var(--dk-claro-2); font-size: 15px; }
.dk-pie a { text-decoration: none; transition: color .2s; }
.dk-pie a:hover { color: var(--dk-verde); }
.dk-pie__cta { background: var(--dk-verde); color: var(--dk-negro); }
.dk-pie__cta-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: clamp(28px, 3.4vw, 44px) 0; flex-wrap: wrap; }
.dk-pie__cta h2 { font-size: clamp(28px, 3.4vw, 46px); margin: 0; color: var(--dk-negro); max-width: 20ch; }
.dk-pie__cta h2 span { color: #fff; text-shadow: 0 1px 0 rgba(0, 0, 0, .05); }
.dk-pie__cta h2 span { color: var(--dk-negro); background: #fff; padding: 0 .2em; border-radius: .2em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.dk-pie__cta-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.dk-pie__cta .dk-btn--verde { background: var(--dk-negro); color: #fff !important; box-shadow: none; }
.dk-pie__cta .dk-btn--borde { color: var(--dk-negro); }
.dk-pie__cta .dk-btn--borde:hover { background: rgba(12, 13, 15, .08); border-color: var(--dk-negro); }
.dk-pie__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr 1.3fr; gap: 30px; padding: 44px 0 32px; }
.dk-pie__marca p { margin: 18px 0; max-width: 36ch; }
.dk-pie__ig { display: inline-flex; align-items: center; gap: 8px; color: #fff !important; font-weight: 600; }
.dk-pie h3 { font: 600 15px/1.2 var(--dk-fuente-t); color: #fff; margin: 0 0 16px; }
.dk-pie ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.dk-pie__tiendas strong { display: block; color: #fff; font-weight: 600; font-size: 14.5px; }
.dk-pie__tiendas a { font-size: 14px; line-height: 1.45; display: block; }
.dk-pie__contacto a { display: inline-flex; align-items: center; gap: 8px; }
.dk-pie__base { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 16px 0 20px; border-top: 1px solid var(--dk-linea-osc); font-size: 13.5px; }
.dk-pie__base a { color: #fff; font-weight: 600; }
.dk-pie__pagos { display: inline-flex; gap: 8px; align-items: center; }

.dk-barra { display: none; }
.dk-wa-flotante { position: fixed; right: 22px; bottom: 22px; z-index: 40; width: 60px; height: 60px; border-radius: 50%; background: #1faa53; color: #fff !important; display: grid; place-items: center; box-shadow: 0 14px 30px -8px rgba(31, 170, 83, .7); transition: transform .25s var(--dk-ease); }
.dk-wa-flotante:hover { transform: scale(1.08); }

/* ==========================================================================
   16. WooCommerce
   ========================================================================== */
body.dk.woocommerce-page .site-content > .ast-container { max-width: var(--dk-ancho); flex-wrap: wrap; }
body.dk .dk-tienda-cab { flex: 0 0 100vw; width: 100vw; }
body.dk .onsale, body.dk .ast-onsale-card { display: none !important; }
.dk-tienda-cab { background: var(--dk-negro); color: #fff; padding: 38px 0 22px; margin: 0 calc(50% - 50vw) 26px; box-sizing: border-box; }
.dk-tienda-cab h1 { font-size: clamp(32px, 4vw, 54px); margin: 0 0 10px; color: #fff; }
.dk-tienda-cab p { color: var(--dk-claro-2); margin: 0 0 26px; max-width: 60ch; font-size: 17px; }
.dk-chips-cat { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.dk-chips-cat::-webkit-scrollbar { display: none; }
.dk-chips-cat a { flex: none; display: inline-flex; gap: 6px; align-items: center; padding: 10px 16px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .2); color: #fff; text-decoration: none; font-weight: 500; font-size: 14.5px; transition: .2s; }
.dk-chips-cat a small { color: var(--dk-claro-2); }
.dk-chips-cat a:hover { border-color: #fff; }
.dk-chips-cat a.is-on { background: var(--dk-verde); border-color: var(--dk-verde); color: var(--dk-negro); }
.dk-chips-cat a.is-on small { color: rgba(12, 13, 15, .65); }

body.dk.woocommerce ul.products, body.dk.woocommerce-page ul.products { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 0 0 40px !important; }
body.dk.woocommerce ul.products::before, body.dk.woocommerce ul.products::after { display: none !important; }
body.dk ul.products li.dk-li { width: auto !important; margin: 0 !important; float: none !important; list-style: none; }
body.dk .woocommerce-result-count { color: var(--dk-gris); }
body.dk .woocommerce-ordering select { border-radius: 999px; padding: 10px 16px; border: 1px solid var(--dk-linea); background-color: #fff; }

/* ficha */
body.dk.single-product div.product { margin-top: 24px; }
body.dk.single-product div.product .product_title { font-size: clamp(28px, 3vw, 42px); margin-bottom: 12px; }
body.dk.single-product div.product .summary .price { font: 700 32px/1.2 var(--dk-fuente-t); color: var(--dk-tinta); display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
body.dk.single-product div.product .summary .price del { font-size: 18px; font-weight: 500; color: #8c9189; }
body.dk.single-product div.product .summary .price ins { text-decoration: none; }
.dk-precio-dcto { background: var(--dk-rojo); color: #fff; font-size: 15px; padding: 6px 10px; border-radius: 8px; }
body.dk.single-product .woocommerce-product-gallery { background: #fff; border-radius: 22px; padding: 16px; border: 1px solid var(--dk-linea); }
body.dk.single-product .woocommerce-product-details__short-description { color: var(--dk-gris); font-size: 16px; }
body.dk .single_add_to_cart_button, body.dk.woocommerce a.button.alt, body.dk.woocommerce button.button.alt, body.dk.woocommerce-page .wc-block-components-button, body.dk .checkout-button { background: var(--dk-verde) !important; color: var(--dk-negro) !important; border-radius: 999px !important; font-family: var(--dk-fuente-t) !important; font-weight: 600 !important; padding: 16px 28px !important; border: 0 !important; }
body.dk .single_add_to_cart_button:hover { background: var(--dk-verde-hover) !important; }
body.dk.single-product form.cart .quantity input { border-radius: 999px; height: 52px; }
.dk-ficha-beneficios { list-style: none; margin: 26px 0 18px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dk-ficha-beneficios li { display: flex; gap: 10px; align-items: flex-start; padding: 14px; border-radius: 14px; background: #fff; border: 1px solid var(--dk-linea); font-size: 13.5px; color: var(--dk-gris); line-height: 1.35; }
.dk-ficha-beneficios .dk-ico { color: var(--dk-verde-texto); }
.dk-ficha-beneficios strong { display: block; color: var(--dk-tinta); font-size: 14.5px; }
.dk-ficha-wa { width: 100%; }
.dk-ficha-medida { margin-top: 14px; font-size: 14.5px; color: var(--dk-gris); }
.dk-ficha-medida a { color: var(--dk-verde-texto); font-weight: 600; }
body.dk.single-product .woocommerce-tabs ul.tabs li a { font-family: var(--dk-fuente-t); }
body.dk.single-product .related > h2 { font-size: 32px; margin-bottom: 22px; }
body.dk .woocommerce-message, body.dk .woocommerce-info { border-top-color: var(--dk-verde); border-radius: 12px; }

/* ==========================================================================
   17. Responsive
   ========================================================================== */
@media (max-width: 1200px) {
  .dk-nav__lista > li > a { padding: 10px 9px; font-size: 14.5px; }
  .dk-cab__cta { display: none; }
  .dk-carril__pista { grid-auto-columns: calc((100% - 2 * 18px) / 3); }
  .dk-pie__grid { grid-template-columns: 1fr 1fr 1fr; }
  .dk-pie__marca { grid-column: 1 / -1; }
}

@media (max-width: 1024px) {
  :root { --dk-cab-alto: 66px; }
  .dk-cab__in { gap: 12px; }
  .dk-cab__menu { display: grid; }
  .dk-nav { position: fixed; inset: 0; z-index: 90; background: var(--dk-negro); flex-direction: column; align-items: stretch; gap: 0; padding: 18px 22px 30px; transform: translateX(100%); transition: transform .4s var(--dk-ease); overflow-y: auto; margin: 0; }
  .dk-nav.is-abierto { transform: none; }
  .dk-nav__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 26px; }
  .dk-nav__cerrar { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--dk-grafito-3); color: #fff; padding: 0; }
  .dk-nav__lista { flex-direction: column; gap: 0; }
  .dk-nav__lista > li > a { font: 600 24px/1.2 var(--dk-fuente-t); padding: 16px 0; border-radius: 0; border-bottom: 1px solid var(--dk-linea-osc); width: 100%; justify-content: space-between; }
  .dk-nav__lista > li > a .dk-ico { display: none; }
  .dk-panel { position: static; width: auto; opacity: 1; visibility: visible; transform: none; margin: 10px 0 6px; }
  .dk-panel__in { background: var(--dk-grafito-2); color: #fff; padding: 8px; grid-template-columns: 1fr 1fr; box-shadow: none; }
  .dk-panel__cat:hover { background: var(--dk-grafito-3); }
  .dk-panel__cat small { color: var(--dk-claro-2); }
  .dk-panel__img { background: #fff; width: 44px; height: 44px; }
  .dk-panel__todo { background: var(--dk-verde); color: var(--dk-negro) !important; }
  .dk-nav__cta { display: inline-flex; margin-top: 26px; }
  .dk-lineas__grid { grid-template-columns: 1fr; }
  .dk-linea { min-height: 460px; }
  .dk-fabrica__bento { grid-template-columns: 1fr 1fr; grid-template-rows: 340px 260px 260px; }
  .dk-bento--cnc { grid-row: auto; grid-column: span 2; }
  .dk-bento--camion { grid-column: span 2; }
  .dk-caso, .dk-cotiza__grid, .dk-tiendas__grid, .dk-valores__grid { grid-template-columns: 1fr; }
  .dk-caso__videos { max-width: 620px; }
  .dk-inmob__grid, .dk-ventajas { grid-template-columns: 1fr 1fr; }
  body.dk.woocommerce ul.products, body.dk.woocommerce-page ul.products { grid-template-columns: repeat(3, 1fr); }
  .dk-medida__b { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  body.dk { font-size: 15.5px; }
  .dk-envoltura { width: calc(100% - 32px); }
  .dk-cab__in { width: calc(100% - 24px); }
  .dk-solo-esc { display: none !important; }
  .dk-logo__d { width: 36px; height: 36px; font-size: 21px; }
  .dk-logo__nom { font-size: 20px; }
  .dk-logo__sub { font-size: 11px; }
  .dk-cab__ico { width: 42px; height: 42px; }
  .dk-cab .dk-carro { display: none; } /* el carro va en la barra inferior */

  .dk-hero { min-height: auto; }
  .dk-hero__v--esc { display: none; }
  .dk-hero__v--cel { display: block; }
  .dk-hero__media::after { background: linear-gradient(180deg, rgba(12, 13, 15, .55) 0%, rgba(12, 13, 15, .55) 40%, rgba(12, 13, 15, .96) 85%); }
  .dk-hero__in { padding: calc(var(--dk-cab-alto) + 70px) 0 34px; min-height: 86svh; justify-content: flex-end; }
  .dk-hero h1 { font-size: clamp(32px, 9.4vw, 44px); }
  .dk-hero__bajada { font-size: 16.5px; margin-bottom: 26px; }
  .dk-hero__btns .dk-btn { flex: 1 1 100%; }
  .dk-hero__promo { margin-top: 22px; }
  .dk-hero__datos .dk-envoltura { grid-template-columns: 1fr 1fr; }
  .dk-hero__datos .dk-envoltura > div { padding: 16px 0 !important; border: 0 !important; }
  .dk-hero__datos .dk-envoltura > div:nth-child(even) { padding-left: 16px !important; border-left: 1px solid var(--dk-linea-osc) !important; }
  .dk-hero__datos .dk-envoltura > div:nth-child(n+3) { border-top: 1px solid var(--dk-linea-osc) !important; }
  .dk-hero__datos strong { font-size: 18px; }
  .dk-hero__datos span { font-size: 13px; }

  .dk-tit { flex-direction: column; align-items: flex-start; gap: 14px; }
  .dk-tit p { font-size: 16px; }
  .dk-linea { min-height: 420px; border-radius: 22px; }
  .dk-linea__body { padding: 22px; }
  .dk-linea h3 { font-size: 26px; }

  .dk-carril__pista { grid-auto-columns: 72%; gap: 12px; margin-inline: -16px; padding-inline: 16px; scroll-padding: 0 16px; }
  .dk-carril__btn { display: none; }
  .dk-prod__info { padding: 14px 14px 64px; }
  .dk-prod h3 { font-size: 15px; }
  .dk-prod__precio { font-size: 18.5px; }
  .dk-prod__add { left: 12px; right: 12px; bottom: 12px; }

  .dk-fabrica__bento { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-rows: 280px; }
  .dk-bento--cnc, .dk-bento--camion { grid-column: auto; }
  .dk-bento--cifras { grid-row: auto; height: auto; }
  .dk-caso__videos { gap: 10px; }
  .dk-caso__testimonio { transform: translateY(24px); }
  .dk-testimonio__play { width: 62px; height: 62px; }
  .dk-reel { flex-basis: 64vw; }

  .dk-opciones { grid-template-columns: 1fr 1fr; }
  .dk-opcion span { min-height: 96px; padding: 14px; font-size: 14.5px; }
  .dk-campo-par { grid-template-columns: 1fr; gap: 0; }
  .dk-form__nav .dk-btn { flex: 1; }
  .dk-paso legend { font-size: 21px; }

  .dk-tiendas__foto { min-height: 230px; }
  .dk-portada { min-height: 76svh; }
  .dk-portada h1 { font-size: clamp(32px, 9vw, 44px); }
  .dk-portada__btns .dk-btn { flex: 1 1 100%; }
  .dk-medida__b, .dk-medida__b--inv { grid-template-columns: 1fr; }
  .dk-medida__b--inv .dk-medida__media { order: 0; }
  .dk-medida__media { aspect-ratio: 4 / 4.2; }
  .dk-galeria__grid { grid-template-columns: 1fr 1fr; }
  .dk-galeria__grid figure, .dk-galeria__grid figure:nth-child(1), .dk-galeria__grid figure:nth-child(2) { grid-column: span 1; aspect-ratio: 1; }
  .dk-galeria__grid figure:nth-child(1) { grid-column: span 2; aspect-ratio: 4 / 3; }
  .dk-galeria__grid figcaption { font-size: 12.5px; left: 8px; bottom: 8px; padding: 6px 9px; }
  .dk-inmob__grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .dk-inmob__it figcaption { padding: 12px; }
  .dk-inmob__it strong { font-size: 14.5px; }
  .dk-ventajas { grid-template-columns: 1fr; }

  .dk-pie__cta-btns { width: 100%; }
  .dk-pie__cta-btns .dk-btn { flex: 1; }
  .dk-pie__grid { grid-template-columns: 1fr 1fr; gap: 30px 20px; padding-top: 46px; }
  .dk-pie__grid > div:nth-child(4), .dk-pie__grid > div:nth-child(5) { grid-column: 1 / -1; }
  .dk-pie__base { flex-direction: column; padding-bottom: 96px; }

  .dk-barra { display: grid; grid-template-columns: repeat(4, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; background: rgba(12, 13, 15, .96); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid var(--dk-linea-osc); padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); }
  .dk-barra a { position: relative; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 7px 4px; color: rgba(255, 255, 255, .85) !important; text-decoration: none; font-size: 11.5px; font-weight: 600; border-radius: 12px; }
  .dk-barra__cotizar { background: var(--dk-verde); color: var(--dk-negro) !important; }
  .dk-barra .dk-carro__n { top: 2px; right: calc(50% - 22px); }
  .dk-wa-flotante { display: none; }

  .dk-tienda-cab { padding: 26px 0 16px; margin-bottom: 16px; }
  body.dk.woocommerce ul.products, body.dk.woocommerce-page ul.products { grid-template-columns: 1fr 1fr; gap: 10px; }
  .dk-ficha-beneficios { grid-template-columns: 1fr; }
  .dk-mapa iframe { height: 320px; }
}

@media (max-width: 380px) {
  .dk-logo__sub { display: none; }
  .dk-panel__in { grid-template-columns: 1fr; }
  .dk-opciones { grid-template-columns: 1fr 1fr; gap: 8px; }
  .dk-carril__pista { grid-auto-columns: 80%; }
}

@media (max-height: 500px) and (orientation: landscape) {
  .dk-hero__in { min-height: auto; padding-top: calc(var(--dk-cab-alto) + 30px); }
  .dk-portada { min-height: auto; }
}

@media (min-width: 1800px) {
  :root { --dk-ancho: 1520px; }
  body.dk { font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
#ast-scroll-top { display: none !important; }

/* ==========================================================================
   Ventas: carro lateral, barra fija de la ficha, invitación a cotizar
   ========================================================================== */
.dk-cajon, .dk-invita { position: fixed; inset: 0; z-index: 120; }
.dk-cajon__fondo, .dk-invita__fondo { position: absolute; inset: 0; background: rgba(12, 13, 15, .55); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); opacity: 0; transition: opacity .3s var(--dk-ease); }
.dk-cajon.is-on .dk-cajon__fondo, .dk-invita.is-on .dk-invita__fondo { opacity: 1; }
.dk-cajon__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 100%); background: var(--dk-blanco); color: var(--dk-tinta); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .35s var(--dk-ease); box-shadow: -20px 0 60px -20px rgba(0, 0, 0, .4); }
.dk-cajon.is-on .dk-cajon__panel { transform: none; }
.dk-cajon__panel > header { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid var(--dk-linea); }
.dk-cajon__panel h2 { margin: 0; font: 700 1.15rem/1.2 var(--dk-fuente-t); display: flex; align-items: center; gap: 8px; color: var(--dk-tinta); }
.dk-cajon__panel h2 svg { color: var(--dk-verde-texto); }
.dk-cajon__cerrar { background: none; border: 0; padding: 8px; cursor: pointer; color: var(--dk-tinta); border-radius: 50%; }
.dk-cajon__cerrar:hover { background: var(--dk-hueso); }
.dk-cajon__cuerpo { flex: 1; overflow-y: auto; padding: 18px 22px calc(24px + env(safe-area-inset-bottom)); }
.dk-cajon__vacio { text-align: center; padding: 50px 0; }
.dk-cajon__items, .dk-cajon__sug ul, .dk-cajon__confianza { list-style: none; margin: 0; padding: 0; }
.dk-cajon__items li, .dk-cajon__sug li { display: grid; grid-template-columns: 64px 1fr auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--dk-linea); }
.dk-cajon__items img, .dk-cajon__sug img { width: 64px; height: 64px; object-fit: contain; background: var(--dk-hueso); border-radius: 10px; }
.dk-cajon__items div a, .dk-cajon__sug div a { display: block; color: var(--dk-tinta); font-weight: 600; font-size: .92rem; line-height: 1.3; text-decoration: none; }
.dk-cajon__items div span, .dk-cajon__sug div span { font-size: .88rem; color: var(--dk-gris); }
.dk-cajon__sug del { opacity: .6; font-size: .8em; }
.dk-cajon__sug ins { text-decoration: none; color: var(--dk-tinta); font-weight: 700; }
.dk-cajon__quitar { color: var(--dk-gris); padding: 6px; }
.dk-cajon__total { display: flex; justify-content: space-between; align-items: baseline; padding: 16px 0 6px; font-size: 1.05rem; }
.dk-cajon__total strong { font: 800 1.35rem var(--dk-fuente-t); }
.dk-cajon__ahorro { display: flex; gap: 6px; align-items: center; margin: 0 0 10px; color: var(--dk-verde-texto); font-weight: 600; font-size: .9rem; }
.dk-cajon__pagar { width: 100%; justify-content: center; margin-top: 6px; }
.dk-cajon__ver { display: block; text-align: center; margin: 12px 0 4px; color: var(--dk-gris); font-size: .92rem; }
.dk-cajon__confianza { display: grid; gap: 6px; margin: 14px 0 6px; padding: 12px 14px; background: var(--dk-hueso); border-radius: var(--dk-radio-s); font-size: .86rem; color: var(--dk-gris); }
.dk-cajon__confianza li { display: flex; gap: 8px; align-items: center; }
.dk-cajon__confianza svg { color: var(--dk-verde-texto); flex: none; }
.dk-cajon__sug h3 { margin: 22px 0 4px; font: 700 1rem var(--dk-fuente-t); color: var(--dk-tinta); }
.dk-cajon__mas { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--dk-verde); color: var(--dk-negro) !important; font: 700 1.3rem/1 var(--dk-fuente-t); text-decoration: none; }
.dk-cajon__mas.loading { opacity: .5; }
.dk-cajon__mas.added { background: var(--dk-tinta); color: #fff !important; }
.dk-cajon .added_to_cart, .dk-fija .added_to_cart { display: none !important; }

.dk-fija { position: fixed; left: 0; right: 0; bottom: 0; z-index: 46; background: rgba(255, 255, 255, .97); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-top: 1px solid var(--dk-linea); box-shadow: 0 -14px 40px -20px rgba(0, 0, 0, .35); transform: translateY(110%); transition: transform .3s var(--dk-ease); padding: 10px 0 calc(10px + env(safe-area-inset-bottom)); }
.dk-fija.is-on { transform: none; }
.dk-fija__in { display: flex; align-items: center; gap: 14px; }
.dk-fija__in img { width: 52px; height: 52px; object-fit: contain; background: var(--dk-hueso); border-radius: 10px; flex: none; }
.dk-fija__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.dk-fija__txt strong { font: 700 .98rem/1.25 var(--dk-fuente-t); color: var(--dk-tinta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dk-fija__txt span { font-size: .92rem; color: var(--dk-tinta); }
.dk-fija__txt del { opacity: .55; font-size: .85em; }
.dk-fija__txt ins { text-decoration: none; font-weight: 700; }
.dk-fija__wa { padding: 12px !important; }
body.dk-con-fija .dk-wa-flotante { bottom: 96px; }

.dk-invita { display: grid; place-items: center; padding: 16px; }
.dk-invita__caja { position: relative; width: min(560px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; background: var(--dk-grafito); color: var(--dk-claro); border-radius: var(--dk-radio); box-shadow: var(--dk-sombra); transform: translateY(24px) scale(.97); opacity: 0; transition: transform .35s var(--dk-ease), opacity .35s var(--dk-ease); }
.dk-invita.is-on .dk-invita__caja { transform: none; opacity: 1; }
.dk-invita__caja img { display: block; width: 100%; aspect-ratio: 16 / 8; object-fit: cover; }
.dk-invita__txt { padding: 22px 26px 26px; }
.dk-invita__txt h2 { margin: 0 0 8px; font: 800 1.55rem/1.15 var(--dk-fuente-t); color: #fff; }
.dk-invita__txt p { margin: 0 0 12px; color: var(--dk-claro-2); }
.dk-invita__promo { display: flex; gap: 8px; align-items: center; color: var(--dk-verde) !important; font-weight: 600; }
.dk-invita__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.dk-invita__cerrar { position: absolute; top: 10px; right: 10px; z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(12, 13, 15, .6); color: #fff; display: grid; place-items: center; cursor: pointer; }

.dk-carro-sug { margin: 50px 0 20px; }
.dk-carro-sug h2 { font: 800 1.5rem var(--dk-fuente-t); margin: 0 0 18px; }
.dk-carro-sug .dk-grilla-prod { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.dk-pago-confianza { list-style: none; margin: 0 0 18px; padding: 14px 16px; display: grid; gap: 8px; background: var(--dk-hueso); border-radius: var(--dk-radio-s); font-size: .92rem; }
.dk-pago-confianza li { display: flex; gap: 8px; align-items: center; }
.dk-pago-confianza svg { color: var(--dk-verde-texto); }
.dk-ficha-ahorro { margin: -6px 0 14px; color: var(--dk-verde-texto); font-weight: 700; }

@media (max-width: 1024px) {
  .dk-carro-sug .dk-grilla-prod { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}
@media (max-width: 760px) {
  .dk-fija { padding: 8px 0 calc(8px + env(safe-area-inset-bottom)); }
  .dk-barra { transition: transform .3s var(--dk-ease); }
  body.dk-con-fija .dk-barra { transform: translateY(110%); }
  .dk-ficha-wa { white-space: normal; text-align: center; line-height: 1.3; }
  .dk-fija__in { gap: 10px; }
  .dk-fija__in img { width: 44px; height: 44px; }
  .dk-fija__txt strong { font-size: .88rem; }
  .dk-fija .dk-btn--verde span { display: none; }
  .dk-fija .dk-btn--verde { padding: 12px 16px !important; }
  .dk-invita__txt { padding: 18px 20px 22px; }
  .dk-invita__txt h2 { font-size: 1.3rem; }
  .dk-invita__btns .dk-btn { flex: 1; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .dk-cajon__panel, .dk-fija, .dk-invita__caja, .dk-cajon__fondo, .dk-invita__fondo { transition: none; }
}
