/*
Theme Name: Digital Bee Child
Theme URI: https://digitalbee.cl
Description: Child theme personalizado para Digital Bee Marketing. Aquí vive todo el código custom del sitio.
Author: Digital Bee Marketing
Author URI: https://digitalbee.cl
Template: Divi
Version: 1.0.0
Text Domain: digitalbee-child
*/

/* ============================================================
   DIGITAL BEE — SISTEMA DE DISEÑO
   Variables, reset, base, componentes y utilidades.
   No editar el header de tema (líneas superiores).
   ============================================================ */


/* ----- 1. VARIABLES CSS (paleta, tipografías, espaciados) ---- */
:root {
  /* Paleta de marca */
  --db-negro:           #0A0A0F; /* Fondo principal */
  --db-negro-suave:     #14141C; /* Variación del fondo */
  --db-gris-oscuro:     #1A1A24; /* Cards y secciones */
  --db-gris-medio:      #2A2A36; /* Bordes y divisores */
  --db-gris-claro:      #6B7280; /* Texto secundario */
  --db-amarillo:        #FFB800; /* Marca principal, CTAs */
  --db-amarillo-suave:  #FFC533; /* Hover */
  --db-naranja:         #FF8A00; /* Acentos cálidos */
  --db-azul:            #3B82F6; /* Links y elementos tech */
  --db-azul-suave:      #60A5FA; /* Hover de links */
  --db-blanco:          #FAFAF7; /* Texto principal */
  --db-blanco-suave:    #E5E5E0; /* Texto cuerpo */
  --db-blanco-tenue:    rgba(250, 250, 247, 0.6); /* Texto suave */

  /* Tipografías */
  --db-font-titulo: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --db-font-cuerpo: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --db-font-mono:   'JetBrains Mono', ui-monospace, 'Courier New', monospace;

  /* Escala de espaciado (base 8px) */
  --db-space-1:  0.25rem;   /*  4px */
  --db-space-2:  0.5rem;    /*  8px */
  --db-space-3:  0.75rem;   /* 12px */
  --db-space-4:  1rem;      /* 16px */
  --db-space-5:  1.5rem;    /* 24px */
  --db-space-6:  2rem;      /* 32px */
  --db-space-7:  3rem;      /* 48px */
  --db-space-8:  4rem;      /* 64px */
  --db-space-9:  6rem;      /* 96px */
  --db-space-10: 8rem;      /* 128px */
  --db-space-11: 10rem;     /* 160px */
  --db-space-12: 12rem;     /* 192px */

  /* Radios */
  --db-radio-sm:   6px;
  --db-radio-md:  10px;
  --db-radio-lg:  16px;
  --db-radio-xl:  24px;
  --db-radio-pill: 9999px;

  /* Sombras y resplandores */
  --db-sombra-sm:     0 1px 2px rgba(0, 0, 0, 0.30);
  --db-sombra-md:     0 4px 12px rgba(0, 0, 0, 0.40);
  --db-sombra-lg:     0 12px 32px rgba(0, 0, 0, 0.50);
  --db-glow-amarillo: 0 0 24px rgba(255, 184, 0, 0.35);
  --db-glow-naranja:  0 0 24px rgba(255, 138, 0, 0.35);

  /* Transiciones */
  --db-trans-rapida: 150ms ease;
  --db-trans-base:   250ms ease;
  --db-trans-lenta:  400ms ease;

  /* Contenedor */
  --db-container-max: 1280px;
}


/* ----- 2. RESET MINIMALISTA (estilo moderno, no normalize completo) ---- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

input, button, textarea, select { font: inherit; }

p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }

button {
  cursor: pointer;
  border: none;
  background: none;
  color: inherit;
}


/* ----- 3. BODY Y TIPOGRAFÍA BASE (dark mode por defecto) ---- */
body {
  background-color: var(--db-negro);
  color: var(--db-blanco-suave);
  font-family: var(--db-font-cuerpo);
  font-size: 1rem;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--db-font-titulo);
  color: var(--db-blanco);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

/* Escala fluida con clamp() — responsive sin media queries */
h1 { font-size: clamp(2.25rem, 5vw, 4rem);    font-weight: 800; }
h2 { font-size: clamp(1.875rem, 3.5vw, 2.75rem); }
h3 { font-size: clamp(1.5rem, 2.5vw, 2rem); }
h4 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
h5 { font-size: 1.125rem; }
h6 { font-size: 1rem; letter-spacing: 0.05em; text-transform: uppercase; }

p { color: var(--db-blanco-suave); }

a {
  color: var(--db-azul);
  text-decoration: none;
  transition: color var(--db-trans-rapida);
}
a:hover { color: var(--db-azul-suave); }

code, pre, kbd {
  font-family: var(--db-font-mono);
  font-size: 0.9em;
}
code {
  background: var(--db-gris-oscuro);
  padding: 0.15em 0.4em;
  border-radius: var(--db-radio-sm);
  color: var(--db-amarillo);
}


/* ----- 4. BOTONES ---- */

/* Botón base reutilizable */
.db-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--db-space-2);
  padding: 0.85rem 1.75rem;
  font-family: var(--db-font-titulo);
  font-weight: 600;
  font-size: 0.95rem;
  border-radius: var(--db-radio-md);
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: transform var(--db-trans-base),
              background-color var(--db-trans-base),
              box-shadow var(--db-trans-base),
              color var(--db-trans-base);
  will-change: transform;
}
.db-btn:hover  { transform: translateY(-2px); }
.db-btn:active { transform: translateY(0); }

/* Primario: amarillo → naranja en hover, con elevación */
.db-btn-primario {
  background: var(--db-amarillo);
  color: var(--db-negro);
}
.db-btn-primario:hover {
  background: var(--db-naranja);
  color: var(--db-negro);
  box-shadow: var(--db-glow-naranja);
}

/* Secundario: outline amarillo, se rellena en hover */
.db-btn-secundario {
  background: transparent;
  color: var(--db-amarillo);
  border: 1px solid var(--db-amarillo);
}
.db-btn-secundario:hover {
  background: var(--db-amarillo);
  color: var(--db-negro);
  box-shadow: var(--db-glow-amarillo);
}

/* Fantasma: para zonas con poco peso visual */
.db-btn-fantasma {
  background: transparent;
  color: var(--db-blanco-suave);
  border: 1px solid var(--db-gris-medio);
}
.db-btn-fantasma:hover {
  border-color: var(--db-amarillo);
  color: var(--db-amarillo);
}

/* Inverso: para usar SOBRE fondo amarillo (ej. sección CTA final).
   Resting: negro con texto amarillo.
   Hover: naranja con texto negro — contrasta sobre el bg amarillo
   de la sección y refuerza el naranja miel de la marca. */
.db-btn-inverso {
  background: var(--db-negro);
  color: var(--db-amarillo);
}
.db-btn-inverso:hover {
  background: var(--db-naranja);
  color: var(--db-negro);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.25);
}

/* Override del botón nativo de Divi (.et_pb_button) para que herede el estilo Digital Bee.
   Usamos !important porque Divi inyecta su propio CSS con alta especificidad. */
.et_pb_button,
.et_pb_button:hover {
  font-family: var(--db-font-titulo) !important;
  font-weight: 600 !important;
  padding: 0.85rem 1.75rem !important;
  border-radius: var(--db-radio-md) !important;
  letter-spacing: 0 !important;
  transition: transform var(--db-trans-base),
              background-color var(--db-trans-base),
              box-shadow var(--db-trans-base),
              color var(--db-trans-base) !important;
}
.et_pb_button {
  background-color: var(--db-amarillo) !important;
  color: var(--db-negro) !important;
  border: none !important;
}
.et_pb_button:hover {
  background-color: var(--db-naranja) !important;
  color: var(--db-negro) !important;
  box-shadow: var(--db-glow-naranja);
  transform: translateY(-2px);
}
/* Quitar la flechita por defecto de Divi en los botones */
.et_pb_button:after { display: none !important; }


/* ----- 5. SCROLLBAR PERSONALIZADA ---- */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--db-gris-medio) var(--db-negro-suave);
}
::-webkit-scrollbar          { width: 10px; height: 10px; }
::-webkit-scrollbar-track    { background: var(--db-negro-suave); }
::-webkit-scrollbar-thumb {
  background: var(--db-gris-medio);
  border-radius: var(--db-radio-pill);
}
::-webkit-scrollbar-thumb:hover { background: var(--db-amarillo); }


/* ----- 6. SELECCIÓN DE TEXTO ---- */
::selection      { background: var(--db-amarillo); color: var(--db-negro); }
::-moz-selection { background: var(--db-amarillo); color: var(--db-negro); }


/* ----- 7. ANIMACIONES BASE ---- */
@keyframes db-fade-up {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes db-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes db-pulse-suave {
  0%, 100% { opacity: 1;    transform: scale(1); }
  50%      { opacity: 0.85; transform: scale(1.03); }
}

/* Clases utilitarias para aplicar las animaciones desde HTML/Divi */
.db-fade-up { animation: db-fade-up   600ms ease-out both; }
.db-fade-in { animation: db-fade-in   600ms ease-out both; }
.db-pulse   { animation: db-pulse-suave 2.4s ease-in-out infinite; }

/* Accesibilidad: respetar a usuarios que prefieren menos movimiento */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ----- Animaciones al scroll (utilidad reusable [data-db-animate]) ----
   Cualquier elemento con data-db-animate="fade-up|fade-in" arranca
   invisible y se anima cuando js/home-scroll-animations.js le añade
   .db-visible al entrar al viewport. Usamos animation (no transition)
   con animation-fill-mode: backwards para que el stagger por nth-child
   no contamine las transitions de hover de las propias cards. */
[data-db-animate="fade-up"]:not(.db-visible) {
  opacity: 0;
  transform: translateY(24px);
}
[data-db-animate="fade-in"]:not(.db-visible) {
  opacity: 0;
}
[data-db-animate].db-visible {
  animation-duration: 700ms;
  animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
  animation-fill-mode: backwards;
}
[data-db-animate="fade-up"].db-visible { animation-name: db-on-scroll-fade-up; }
[data-db-animate="fade-in"].db-visible { animation-name: db-on-scroll-fade-in; }

@keyframes db-on-scroll-fade-up {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes db-on-scroll-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}


/* ----- 8. UTILIDADES ---- */
.db-container {
  width: 100%;
  max-width: var(--db-container-max);
  margin-inline: auto;
  padding-inline: var(--db-space-5);
}
.db-text-centro     { text-align: center; }
.db-mono            { font-family: var(--db-font-mono); }
.db-color-amarillo  { color: var(--db-amarillo); }
.db-color-naranja   { color: var(--db-naranja); }
.db-color-azul      { color: var(--db-azul); }
.db-color-tenue     { color: var(--db-blanco-tenue); }

/* Skip-link de accesibilidad (oculto hasta recibir foco con tab) */
.db-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 9999;
  padding: var(--db-space-3) var(--db-space-5);
  background: var(--db-amarillo);
  color: var(--db-negro);
  font-weight: 600;
}
.db-skip-link:focus { left: var(--db-space-4); }


/* ============================================================
   9. OVERRIDE DE DIVI — DARK MODE GLOBAL
   Divi inyecta fondos blancos y colores oscuros en múltiples
   contenedores asumiendo light mode. Forzamos la paleta Digital
   Bee en TODAS las capas del contenido. El header se trabaja
   aparte en Etapa B (no se toca aquí).
   ============================================================ */

/* ----- 9.1 Contenedores principales del layout ---- */
#page-container,
#et-main-area,
#main-content {
  background-color: var(--db-negro);
}

/* El .container interno y las variantes de sidebar de Divi */
#main-content .container,
body.et_right_sidebar  #main-content .container,
body.et_left_sidebar   #main-content .container,
body.et_full_width_page #main-content .container,
body.et_no_sidebar     #main-content .container {
  background-color: transparent !important;
}

/* Áreas de contenido y sidebar */
#left-area,
#sidebar,
#content-area,
.entry-content,
article.post,
article.page,
.et_pb_post {
  background-color: transparent;
  color: var(--db-blanco-suave);
}


/* ----- 9.2 Secciones, filas y columnas del Divi Builder ---- */
/* Solo override del default blanco del padre — si el usuario fija
   un color en el Builder, ese estilo inline gana sobre éste. */
.et_pb_section,
.et_pb_section.et_pb_section_regular {
  background-color: var(--db-negro);
}
.et_pb_row,
.et_pb_column { background-color: transparent; }


/* ----- 9.3 Títulos y meta de posts ---- */
.entry-title,
.entry-title a,
.post-title,
.post-title a,
#left-area .entry-title,
#left-area .entry-title a,
.et_pb_post .entry-title,
.et_pb_post .entry-title a {
  color: var(--db-blanco) !important;
}
.entry-title a:hover,
.post-title a:hover,
#left-area .entry-title a:hover {
  color: var(--db-amarillo) !important;
}

.post-meta,
.post-meta a,
.entry-meta,
.entry-meta a {
  color: var(--db-blanco-tenue);
}
.post-meta a:hover,
.entry-meta a:hover { color: var(--db-amarillo); }


/* ----- 9.4 Sidebar y widgets ---- */
#sidebar { background-color: transparent; }

.widget,
.et_pb_widget {
  background-color: transparent;
  color: var(--db-blanco-suave);
  margin-bottom: var(--db-space-6);
}

.widget a,
.et_pb_widget a {
  color: var(--db-blanco-suave);
  transition: color var(--db-trans-rapida);
}
.widget a:hover,
.et_pb_widget a:hover { color: var(--db-amarillo); }

.widget h4,
.widgettitle,
.widget_title,
h4.widgettitle,
.et_pb_widget h4.widgettitle {
  color: var(--db-blanco) !important;
  font-family: var(--db-font-titulo);
  border-bottom: 1px solid var(--db-gris-medio);
  padding-bottom: var(--db-space-3);
  margin-bottom: var(--db-space-3);
}

.widget ul,
.widget ol {
  list-style: none;
  padding-left: 0;
}
.widget ul li,
.widget ol li {
  border-bottom: 1px solid var(--db-gris-medio);
  padding: var(--db-space-2) 0;
}
.widget ul li:last-child,
.widget ol li:last-child { border-bottom: none; }


/* ----- 9.5 Formularios (inputs, búsqueda, contacto) ---- */
input[type="text"],
input[type="email"],
input[type="search"],
input[type="password"],
input[type="url"],
input[type="tel"],
input[type="number"],
textarea,
select,
.et_pb_searchform input[type="text"],
.et_pb_contact_form_container input,
.et_pb_contact_form_container textarea {
  background-color: var(--db-gris-oscuro) !important;
  color: var(--db-blanco) !important;
  border: 1px solid var(--db-gris-medio) !important;
  border-radius: var(--db-radio-md) !important;
  padding: 0.75rem 1rem !important;
  font-family: var(--db-font-cuerpo) !important;
  transition: border-color var(--db-trans-base),
              box-shadow var(--db-trans-base) !important;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="search"]:focus,
input[type="password"]:focus,
input[type="url"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
textarea:focus,
select:focus {
  border-color: var(--db-amarillo) !important;
  box-shadow: 0 0 0 3px rgba(255, 184, 0, 0.2) !important;
  outline: none !important;
}

/* Placeholders */
input::placeholder,
textarea::placeholder { color: var(--db-blanco-tenue); }

/* Botones submit nativos (incluye #searchsubmit del widget de búsqueda) */
input[type="submit"],
button[type="submit"],
#searchsubmit {
  background-color: var(--db-amarillo) !important;
  color: var(--db-negro) !important;
  border: none !important;
  padding: 0.75rem 1.5rem !important;
  border-radius: var(--db-radio-md) !important;
  font-family: var(--db-font-titulo) !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: background-color var(--db-trans-base),
              transform var(--db-trans-base),
              box-shadow var(--db-trans-base) !important;
}
input[type="submit"]:hover,
button[type="submit"]:hover,
#searchsubmit:hover {
  background-color: var(--db-naranja) !important;
  color: var(--db-negro) !important;
  transform: translateY(-2px);
  box-shadow: var(--db-glow-naranja);
}


/* ----- 9.6 Comentarios ---- */
#comments,
.comments-area,
.comment-respond,
.comment-form {
  color: var(--db-blanco-suave);
}
.comments-area .comments-title,
.comment-respond .comment-reply-title { color: var(--db-blanco); }

.comment-form label { color: var(--db-blanco-suave); }

.comment-list .comment {
  background: var(--db-gris-oscuro);
  padding: var(--db-space-4);
  border-radius: var(--db-radio-md);
  margin-bottom: var(--db-space-4);
  border: 1px solid var(--db-gris-medio);
}
.comment-list .comment .comment-author { color: var(--db-blanco); }
.comment-list .comment .comment-meta a { color: var(--db-blanco-tenue); }


/* ----- 9.7 Tablas y blockquote ---- */
table {
  background-color: var(--db-gris-oscuro);
  color: var(--db-blanco-suave);
  border-collapse: collapse;
  width: 100%;
}
table th,
table td {
  border: 1px solid var(--db-gris-medio) !important;
  padding: var(--db-space-3) var(--db-space-4);
}
table th {
  background-color: var(--db-negro-suave);
  color: var(--db-blanco);
}

blockquote {
  background: var(--db-gris-oscuro);
  border-left: 4px solid var(--db-amarillo);
  padding: var(--db-space-4) var(--db-space-5);
  color: var(--db-blanco-suave);
  font-style: italic;
  border-radius: 0 var(--db-radio-md) var(--db-radio-md) 0;
  margin: var(--db-space-5) 0;
}


/* ----- 9.8 Paginación y enlaces "Read more" ---- */
.wp-pagenavi,
.pagination,
.nav-links {
  color: var(--db-blanco-suave);
}
.wp-pagenavi a,
.pagination a,
.nav-links a {
  color: var(--db-blanco-suave);
  background: var(--db-gris-oscuro);
  padding: var(--db-space-2) var(--db-space-3);
  border-radius: var(--db-radio-sm);
  transition: all var(--db-trans-base);
}
.wp-pagenavi a:hover,
.pagination a:hover,
.nav-links a:hover {
  background: var(--db-amarillo);
  color: var(--db-negro);
}

.more-link,
a.more-link {
  display: inline-block;
  color: var(--db-amarillo);
  font-weight: 600;
  margin-top: var(--db-space-3);
}
.more-link:hover { color: var(--db-amarillo-suave); }


/* ============================================================
   10. HEADER GLOBAL PERSONALIZADO
   Estiliza el header de Divi (#main-header) para Digital Bee:
   fondo negro, logo placeholder, menú, CTA, mobile drawer y
   comportamiento sticky con blur al scrollear más de 50px.
   La inyección del CTA y el toggle de scroll viven en js/header.js.
   ============================================================ */

/* ----- 10.1 Estructura base del header ---- */
#main-header {
  background-color: var(--db-negro) !important;
  box-shadow: 0 1px 0 var(--db-gris-medio),
              0 4px 24px rgba(0, 0, 0, 0.4) !important;
  border-bottom: none !important;
  padding: 0 !important;
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  z-index: 99999;
  transition: background-color var(--db-trans-base),
              box-shadow var(--db-trans-base),
              backdrop-filter var(--db-trans-base),
              padding var(--db-trans-base);
}
#main-header .container {
  padding-top: 14px !important;
  padding-bottom: 14px !important;
  background: transparent !important;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: var(--db-space-6);
  min-height: 56px;
  position: relative;
}

/* Compensar el header fixed para que el contenido no quede debajo */
body { padding-top: 80px; }
@media (max-width: 980px) {
  body { padding-top: 64px; }
}

/* Esconder la top-bar de Divi (barrita superior de redes/contacto) */
#top-header { display: none !important; }


/* ----- 10.2 Logo placeholder (texto "Digital Bee" en amarillo) ----
   El <span class="db-logo-text"> lo inyecta js/header.js dentro del <a>
   de .logo_container. Divi usa la CLASE .logo_container (no id) —
   gotcha confirmado leyendo el header.php del tema padre.
   Cuando llegue la imagen de la abeja:
     1) Subirla por Apariencia > Personalizar > Identidad del sitio.
     2) Eliminar este bloque entero — el <img id="logo"> volverá a verse.
   --------------------------------------------------------------- */
.logo_container,
#logo_container { /* fallback por si en algún Divi viejo era id */
  display: flex !important;
  align-items: center;

  /* Anular el position:absolute que Divi le pone por defecto.
     Sin esto, el logo se sale del flex y se encima al menú. */
  position: relative !important;
  float: none !important;
  margin: 0 !important;
  width: auto !important;
  height: auto !important;

  /* Reservar espacio cómodo y evitar que el logo se encoja */
  flex-shrink: 0;
  min-width: 160px;
  padding-right: var(--db-space-5);
}
.logo_container img#logo,
#main-header img#logo {
  display: none !important;
}
.logo_container > a,
#main-header .logo_container > a {
  display: inline-flex;
  align-items: center;
  text-decoration: none !important;
}
.db-logo-text {
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: 1.6rem;
  color: var(--db-amarillo);
  letter-spacing: -0.02em;
  line-height: 1;
  transition: color var(--db-trans-base),
              font-size var(--db-trans-base);
}
.logo_container > a:hover .db-logo-text {
  color: var(--db-amarillo-suave);
}


/* ----- 10.3 Menú principal (desktop) ---- */
#et-top-navigation {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: var(--db-space-5);
  padding-top: 0 !important;
  float: none !important;
  width: auto !important;

  /* Tomar el espacio restante del header sin pisar al logo */
  flex: 1 1 auto;
  min-width: 0; /* evita overflow cuando hay flex anidados */
}

#top-menu,
#top-menu li { background: transparent !important; }

#top-menu {
  display: flex !important;
  align-items: center;
  gap: var(--db-space-2);
  margin: 0;
  padding: 0;
}
#top-menu li {
  padding: 0 !important;
  list-style: none;
}
#top-menu li a {
  color: var(--db-blanco-suave) !important;
  font-family: var(--db-font-titulo);
  font-weight: 500;
  font-size: 0.95rem;
  letter-spacing: 0;
  padding: 0.5rem 1rem !important;
  opacity: 1 !important;
  border-radius: var(--db-radio-sm);
  transition: color var(--db-trans-rapida),
              background-color var(--db-trans-rapida);
}
#top-menu li a:hover {
  color: var(--db-amarillo) !important;
  opacity: 1 !important;
}
#top-menu li.current-menu-item > a,
#top-menu li.current_page_item > a,
#top-menu li.current-menu-ancestor > a {
  color: var(--db-amarillo) !important;
}

/* Submenús dropdown en desktop */
#top-menu li ul.sub-menu {
  background: var(--db-gris-oscuro) !important;
  border: 1px solid var(--db-gris-medio) !important;
  border-radius: var(--db-radio-md);
  box-shadow: var(--db-sombra-lg);
  padding: var(--db-space-2) 0 !important;
  margin-top: var(--db-space-2);
}
#top-menu li ul.sub-menu li a {
  padding: var(--db-space-2) var(--db-space-4) !important;
  width: 100%;
  border-radius: 0;
}
#top-menu li ul.sub-menu li a:hover {
  background: var(--db-gris-medio);
  color: var(--db-amarillo) !important;
}


/* ----- 10.4 CTA "Diagnóstico Digital Gratis" en header ----
   El CTA se inyecta dinámicamente por js/header.js en el contenedor
   #et-top-navigation (desktop) y dentro de #mobile_menu (mobile).
   --------------------------------------------------------------- */
.db-header-cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 1.4rem !important;
  background: var(--db-amarillo) !important;
  color: var(--db-negro) !important;
  font-family: var(--db-font-titulo);
  font-weight: 600;
  font-size: 0.9rem !important;
  border-radius: var(--db-radio-md);
  text-decoration: none !important;
  white-space: nowrap;
  border: none;
  cursor: pointer;
  transition: transform var(--db-trans-base),
              background-color var(--db-trans-base),
              box-shadow var(--db-trans-base),
              color var(--db-trans-base);
  will-change: transform;
}
.db-header-cta:hover {
  background: var(--db-naranja) !important;
  color: var(--db-negro) !important;
  transform: translateY(-2px);
  box-shadow: var(--db-glow-naranja);
}
.db-header-cta:active { transform: translateY(0); }

/* (La visibilidad del CTA desktop vs mobile se consolida en 10.7) */

/* CTA dentro del drawer mobile */
#mobile_menu .db-header-cta-wrap {
  list-style: none;
  padding: var(--db-space-4) var(--db-space-4) var(--db-space-2);
  border-bottom: none !important;
}
#mobile_menu .db-header-cta {
  display: block !important;
  width: 100%;
  text-align: center;
  padding: 0.9rem 1.4rem !important;
}


/* ----- 10.5 Mobile: hamburger + drawer ---- */

/* Icono hamburguesa en blanco, amarillo al hover */
.mobile_menu_bar,
.mobile_menu_bar::before {
  color: var(--db-blanco) !important;
  transition: color var(--db-trans-rapida);
}
.mobile_menu_bar:hover::before,
.et_mobile_nav_menu .mobile_menu_bar:hover::before {
  color: var(--db-amarillo) !important;
}

/* Drawer (panel desplegable del menú mobile) */
.et_mobile_menu {
  background-color: var(--db-negro-suave) !important;
  border-top: 3px solid var(--db-amarillo) !important;
  box-shadow: var(--db-sombra-lg);
  padding: var(--db-space-2) 0 var(--db-space-4) !important;
}
.et_mobile_menu li a {
  color: var(--db-blanco-suave) !important;
  font-family: var(--db-font-titulo);
  font-weight: 500;
  border-bottom: 1px solid var(--db-gris-medio) !important;
  padding: var(--db-space-3) var(--db-space-5) !important;
  opacity: 1 !important;
  transition: color var(--db-trans-rapida),
              background-color var(--db-trans-rapida);
}
.et_mobile_menu li a:hover {
  color: var(--db-amarillo) !important;
  background-color: var(--db-gris-oscuro) !important;
  opacity: 1 !important;
}
.et_mobile_menu li.current-menu-item > a {
  color: var(--db-amarillo) !important;
}

/* Submenús anidados dentro del drawer */
.et_mobile_menu .sub-menu {
  background: var(--db-negro) !important;
  padding-left: var(--db-space-4) !important;
}


/* ----- 10.6 Estado sticky con scroll (clase .db-scrolled en body) ----
   El toggle se hace desde js/header.js cuando scrollY > 50.
   Aplicamos blur + transparencia leve para un efecto premium.
   --------------------------------------------------------------- */
body.db-scrolled #main-header {
  background-color: rgba(10, 10, 15, 0.85) !important;
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  box-shadow: 0 1px 0 var(--db-gris-medio),
              0 8px 32px rgba(0, 0, 0, 0.6) !important;
}
body.db-scrolled #main-header .container {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}
body.db-scrolled .db-logo-text {
  font-size: 1.4rem;
}

/* Reset de la clase nativa de Divi 'et-fixed-header' (no la usamos) */
#main-header.et-fixed-header {
  background-color: var(--db-negro) !important;
}
body.db-scrolled #main-header.et-fixed-header {
  background-color: rgba(10, 10, 15, 0.85) !important;
}


/* ----- 10.7 Esconder elementos default de Divi que no usamos ----
   - Lupa del header (#et_top_search + form expandido).
   - Hamburger solo visible en mobile (≤980px), nunca en desktop.
   - CTA desktop oculto en mobile (lo replica el JS en el drawer).
   --------------------------------------------------------------- */
#et_top_search,
#et_search_icon,
.et_search_outer,
.et_search_form_container {
  display: none !important;
}

/* Desktop: ocultar elementos mobile que Divi puede dejar en el DOM */
.mobile_menu_bar,
.et_mobile_nav_menu {
  display: none !important;
}

@media (max-width: 980px) {
  /* Mobile: mostrar hamburger, ocultar menú desktop y CTA desktop */
  .et_mobile_nav_menu { display: block !important; }
  .mobile_menu_bar    { display: inline-block !important; }
  #top-menu-nav       { display: none !important; }
  #et-top-navigation > .db-header-cta { display: none !important; }
}


/* ============================================================
   11. HOME — HERO (sección 1 de 8 del home)
   front-page.php → <section class="db-hero">.
   Layout de 2 columnas en desktop, apilado en mobile.
   Animaciones de entrada en cascada + abeja flotante con glow.
   ============================================================ */

/* ----- 11.1 Contenedor del hero ---- */
.db-hero {
  position: relative;
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: var(--db-space-7);
  background-color: var(--db-negro);
  overflow: hidden;
}


/* ----- 11.2 Patrón de puntos del fondo (puro CSS) ---- */
.db-hero__patron {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  /* Difumina los bordes del patrón para que respire con la composición */
  mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 40%, rgba(0,0,0,0) 80%);
  -webkit-mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 40%, rgba(0,0,0,0) 80%);
}


/* ----- 11.3 Grid de 2 columnas ---- */
.db-hero__grid {
  position: relative; /* sobre el patrón */
  display: grid;
  grid-template-columns: 60% 40%;
  align-items: center;
  gap: var(--db-space-7);
  width: 100%;
}


/* ----- 11.4 Contenido textual + animaciones en cascada ---- */
.db-hero__contenido {
  display: flex;
  flex-direction: column;
  gap: var(--db-space-5);
  max-width: 640px;
}

.db-hero__titulo {
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: clamp(2.5rem, 5.5vw, 4.5rem);
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--db-blanco);
  margin: 0;
  animation: db-fade-up 700ms ease-out 0.1s both;
}

.db-hero__acento {
  color: var(--db-amarillo);
  text-shadow: 0 0 32px rgba(255, 184, 0, 0.30);
}

.db-hero__subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
  line-height: 1.6;
  color: var(--db-blanco-suave);
  max-width: 600px;
  margin: 0;
  animation: db-fade-up 700ms ease-out 0.3s both;
}

.db-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: var(--db-space-4);
  margin-top: var(--db-space-3);
  animation: db-fade-up 700ms ease-out 0.5s both;
}

/* CTA secundario "Ver Servicios" — variante outline BLANCA solo en el hero.
   No toca la .db-btn-secundario global (amarilla). */
.db-hero .db-btn-secundario {
  background: transparent !important;
  border-color: var(--db-blanco) !important;
  color: var(--db-blanco) !important;
}
.db-hero .db-btn-secundario:hover {
  background: var(--db-blanco) !important;
  color: var(--db-negro) !important;
  box-shadow: 0 0 24px rgba(250, 250, 247, 0.25);
}


/* ----- 11.5 Columna derecha: abeja + glow + flotación ---- */
.db-hero__media {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 280px;
}

/* Glow amarillo difuso detrás de la abeja, con respiración sutil */
.db-hero__glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center,
              rgba(255, 184, 0, 0.25) 0%,
              rgba(255, 184, 0, 0.08) 35%,
              transparent 65%);
  filter: blur(40px);
  pointer-events: none;
  animation: db-pulse-suave 5s ease-in-out infinite;
}

/* Abeja: fade-in con scale al cargar + flotación continua a partir de 1s */
.db-hero__abeja {
  position: relative;
  width: 100%;
  max-width: 460px;
  height: auto;
  filter: drop-shadow(0 12px 32px rgba(0, 0, 0, 0.5));
  animation: db-fade-in-scale 800ms ease-out 0.2s both,
             db-flotar 4s ease-in-out 1s infinite;
}

@keyframes db-fade-in-scale {
  from { opacity: 0; transform: scale(0.92); }
  to   { opacity: 1; transform: scale(1); }
}

@keyframes db-flotar {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-12px); }
}


/* ----- 11.6 Indicador de scroll (flechita parpadeante abajo-centro) ---- */
.db-hero__scroll {
  position: absolute;
  bottom: var(--db-space-5);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--db-space-2);
  color: var(--db-blanco-tenue);
  text-decoration: none;
  font-family: var(--db-font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  animation: db-pulse-suave 2.4s ease-in-out infinite;
  transition: color var(--db-trans-base);
}
.db-hero__scroll:hover { color: var(--db-amarillo); }

.db-hero__scroll-flecha {
  width: 10px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
}


/* ----- 11.7 Mobile (≤980px): 1 columna, abeja arriba ---- */
@media (max-width: 980px) {
  .db-hero {
    min-height: 80vh;
    padding-block: var(--db-space-6);
    text-align: center;
  }
  .db-hero__grid {
    grid-template-columns: 1fr;
    gap: var(--db-space-5);
  }
  .db-hero__media {
    order: -1;          /* abeja arriba del texto */
    min-height: 200px;
  }
  .db-hero__abeja { max-width: 260px; }
  .db-hero__contenido {
    align-items: center;
    margin: 0 auto;
  }
  .db-hero__ctas { justify-content: center; }
  .db-hero__scroll { display: none; } /* no aporta en mobile */
}


/* ============================================================
   12. HOME — QUÉ RESOLVEMOS (sección 2 de 8)
   front-page.php → <section class="db-resolvemos">.
   4 cards de dolor con ghost-number, grid 4/2/1, entrada en
   cascada via [data-db-animate] (ver bloque 7).
   ============================================================ */

/* ----- 12.1 Contenedor de la sección ---- */
.db-resolvemos {
  background-color: var(--db-negro-suave);
  padding-block: var(--db-space-9);
  position: relative;
}

/* ----- 12.2 Cabecera (título + subtítulo, centrados) ---- */
.db-resolvemos__cabecera {
  text-align: center;
  max-width: 720px;
  margin: 0 auto var(--db-space-8);
}
.db-resolvemos__titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.875rem, 4vw, 3rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-resolvemos__subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  color: var(--db-blanco-tenue);
  margin: 0;
}

/* ----- 12.3 Grid de cards: 4 → 2 → 1 columnas ---- */
.db-resolvemos__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--db-space-5);
}
@media (max-width: 1100px) {
  .db-resolvemos__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .db-resolvemos__grid { grid-template-columns: 1fr; }
}

/* ----- 12.4 Card individual ---- */
.db-resolvemos__card {
  position: relative;
  padding: var(--db-space-6) var(--db-space-5);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-lg);
  transition: transform var(--db-trans-base),
              border-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
  will-change: transform;
}
.db-resolvemos__card:hover {
  border-color: var(--db-amarillo);
  transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4),
              0 0 24px rgba(255, 184, 0, 0.15);
}
.db-resolvemos__card:hover .db-resolvemos__numero {
  opacity: 0.35;
}

/* ----- 12.5 Ghost number (01, 02, 03, 04) ---- */
.db-resolvemos__numero {
  display: block;
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: 3.5rem;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--db-amarillo);
  opacity: 0.18;
  margin-bottom: var(--db-space-4);
  font-variant-numeric: tabular-nums;
  transition: opacity var(--db-trans-base);
}

/* ----- 12.6 Texto del dolor ---- */
.db-resolvemos__texto {
  font-family: var(--db-font-titulo);
  font-weight: 600;
  font-size: 1.0625rem; /* 17px */
  line-height: 1.4;
  color: var(--db-blanco);
  margin: 0;
}

/* ----- 12.7 Stagger de entrada en cascada (100ms entre cards) ----
   La cabecera entra primero (sin delay). Las cards en orden. */
.db-resolvemos__card:nth-child(1).db-visible { animation-delay: 0ms;   }
.db-resolvemos__card:nth-child(2).db-visible { animation-delay: 100ms; }
.db-resolvemos__card:nth-child(3).db-visible { animation-delay: 200ms; }
.db-resolvemos__card:nth-child(4).db-visible { animation-delay: 300ms; }


/* ============================================================
   13. HOME — LOS 3 BLOQUES (sección 3 de 8)
   front-page.php → <section id="bloques" class="db-bloques">.
   Sección clave del home: 3 servicios principales con la card
   central destacada como "Más popular". id="bloques" = destino
   del CTA "Ver Servicios" del hero.
   ============================================================ */

/* ----- 13.1 Contenedor de la sección ---- */
.db-bloques {
  background-color: var(--db-negro);
  padding-block: var(--db-space-9);
  position: relative;
}

/* ----- 13.2 Cabecera (título + subtítulo, centrados) ---- */
.db-bloques__cabecera {
  text-align: center;
  max-width: 780px;
  margin: 0 auto var(--db-space-8);
}
.db-bloques__titulo-seccion {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.875rem, 4vw, 3rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-bloques__subtitulo-seccion {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  color: var(--db-blanco-tenue);
  margin: 0;
}

/* ----- 13.3 Grid 3 columnas (apila a 1 ≤1024px) ---- */
.db-bloques__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--db-space-5);
  align-items: stretch;
  perspective: 1200px; /* para el rotateX en hover de las cards */
}
@media (max-width: 1024px) {
  .db-bloques__grid { grid-template-columns: 1fr; }
}

/* ----- 13.4 Card base ---- */
.db-bloques__card {
  display: flex;
  flex-direction: column;
  padding: var(--db-space-7) var(--db-space-6);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-xl);
  transform-style: preserve-3d;
  transition: transform var(--db-trans-base),
              border-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
  will-change: transform;
}
@media (hover: hover) {
  .db-bloques__card:hover {
    border-color: var(--db-amarillo);
    transform: translateY(-8px) rotateX(2deg);
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.5),
                0 0 40px rgba(255, 184, 0, 0.20);
  }
}

/* ----- 13.5 Card destacada (Néctar Promo, centro) ----
   NO usa transform en estado base para no colisionar con la
   animación de entrada [data-db-animate]. Elevación visual via
   margin negativo (pull-up real del layout). */
.db-bloques__card--destacada {
  border-color: var(--db-amarillo);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5),
              0 0 32px rgba(255, 184, 0, 0.15);
}
@media (min-width: 1025px) {
  .db-bloques__card--destacada {
    margin-block: -16px 16px;
    padding: var(--db-space-8) var(--db-space-6);
  }
}
@media (hover: hover) {
  .db-bloques__card--destacada:hover {
    transform: translateY(-12px) rotateX(2deg);
    box-shadow: 0 28px 56px rgba(0, 0, 0, 0.6),
                0 0 48px rgba(255, 184, 0, 0.30);
  }
}

/* ----- 13.6 Etiqueta superior (BLOQUE N · ...) ---- */
.db-bloques__etiqueta {
  display: block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-4);
}

/* ----- 13.7 Título y subtítulo de card ---- */
.db-bloques__titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.2vw, 1.875rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-1);
}
.db-bloques__subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  color: var(--db-blanco-tenue);
  margin: 0 0 var(--db-space-4);
}

/* ----- 13.8 Separador (gradient amarillo en la destacada) ---- */
.db-bloques__separador {
  width: 100%;
  height: 1px;
  background: var(--db-gris-medio);
  margin: 0 0 var(--db-space-4);
}
.db-bloques__card--destacada .db-bloques__separador {
  background: linear-gradient(to right,
              transparent,
              var(--db-amarillo),
              transparent);
}

/* ----- 13.9 Descripción ---- */
.db-bloques__descripcion {
  font-family: var(--db-font-cuerpo);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--db-blanco-suave);
  margin: 0 0 var(--db-space-5);
}

/* ----- 13.10 Lista con checkmark amarillo ----
   Círculo amarillo + SVG inline (data-URL) stroke negro centrado. */
.db-bloques__lista {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--db-space-6);
  display: flex;
  flex-direction: column;
  gap: var(--db-space-3);
}
.db-bloques__item {
  position: relative;
  padding-left: 30px;
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--db-blanco-suave);
}
.db-bloques__item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-color: var(--db-amarillo);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230A0A0F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 8 7 12 13 4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 70%;
}

/* ----- 13.11 CTA inferior (anclado al fondo del card) ---- */
.db-bloques__cta {
  margin-top: auto;       /* empuja el botón al fondo, alinea todas las cards */
  align-self: stretch;
  justify-content: center;
}

/* ----- 13.12 Stagger de entrada en cascada (150ms entre cards) ---- */
.db-bloques__card:nth-child(1).db-visible { animation-delay: 0ms;   }
.db-bloques__card:nth-child(2).db-visible { animation-delay: 150ms; }
.db-bloques__card:nth-child(3).db-visible { animation-delay: 300ms; }


/* ============================================================
   14. HOME — CASO DE ÉXITO (sección 4 de 8)
   front-page.php → <section class="db-caso">.
   Caso ANÓNIMO (fábrica de muebles en Santiago). Layout 60/40
   con storytelling a la izquierda y 3 métricas a la derecha.
   Counters animados via [data-counter] (ver js/counter-animation.js).
   ============================================================ */

/* ----- 14.1 Contenedor de la sección ---- */
.db-caso {
  background-color: var(--db-negro-suave);
  padding-block: var(--db-space-9);
  position: relative;
}

/* ----- 14.2 Cabecera ---- */
.db-caso__cabecera {
  text-align: center;
  max-width: 820px;
  margin: 0 auto var(--db-space-8);
}
.db-caso__etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-caso__titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.875rem, 4vw, 3rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-caso__subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  color: var(--db-blanco-tenue);
  margin: 0;
}

/* ----- 14.3 Grid 60/40 (apila a 1 col ≤1024px) ---- */
.db-caso__grid {
  display: grid;
  grid-template-columns: 60% 40%;
  align-items: start; /* métricas no se estiran a la altura del texto */
  gap: var(--db-space-7);
}
@media (max-width: 1024px) {
  .db-caso__grid { grid-template-columns: 1fr; }
}

/* ----- 14.4 Historia (columna izquierda) ---- */
.db-caso__historia {
  display: flex;
  flex-direction: column;
  gap: var(--db-space-6);
}
.db-caso__parrafo {
  display: flex;
  flex-direction: column;
  gap: var(--db-space-2);
}
.db-caso__parrafo-etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
}
.db-caso__parrafo p {
  font-family: var(--db-font-cuerpo);
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--db-blanco-suave);
  margin: 0;
}

/* Stagger de párrafos */
.db-caso__parrafo:nth-child(1).db-visible { animation-delay: 0ms;   }
.db-caso__parrafo:nth-child(2).db-visible { animation-delay: 100ms; }
.db-caso__parrafo:nth-child(3).db-visible { animation-delay: 200ms; }

/* ----- 14.5 Métricas (columna derecha) ---- */
.db-caso__metricas {
  display: flex;
  flex-direction: column;
  gap: var(--db-space-4);
}
.db-caso__metrica {
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-lg);
  padding: var(--db-space-5);
}

/* Stagger de métricas (paralelo al de párrafos) */
.db-caso__metrica:nth-child(1).db-visible { animation-delay: 0ms;   }
.db-caso__metrica:nth-child(2).db-visible { animation-delay: 100ms; }
.db-caso__metrica:nth-child(3).db-visible { animation-delay: 200ms; }

/* ----- 14.6 Número de métrica + label ---- */
.db-caso__metrica-numero {
  display: block;
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: clamp(2.5rem, 4vw, 3.5rem);
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-2);
  /* tabular-nums OBLIGATORIO en counters animados: evita layout shift
     mientras los dígitos cambian de width al contar. */
  font-variant-numeric: tabular-nums;
}
.db-caso__metrica-label {
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--db-blanco-suave);
  margin: 0;
}

/* ----- 14.7 CTA final centrado ---- */
.db-caso__cta-wrap {
  text-align: center;
  margin-top: var(--db-space-8);
}


/* ============================================================
   15. HOME — POR QUÉ DIGITAL BEE (sección 5 de 8)
   front-page.php → <section class="db-porque">.
   4 diferenciadores en grid 2×2 con SVG inline Lucide-style.
   Reutiliza [data-db-animate] del bloque 7. Sin JS adicional.
   ============================================================ */

/* ----- 15.1 Contenedor de la sección ---- */
.db-porque {
  background-color: var(--db-negro);
  padding-block: var(--db-space-9);
  position: relative;
}

/* ----- 15.2 Cabecera ---- */
.db-porque__cabecera {
  text-align: center;
  max-width: 780px;
  margin: 0 auto var(--db-space-8);
}
.db-porque__etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-porque__titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.875rem, 4vw, 3rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-porque__subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  color: var(--db-blanco-tenue);
  margin: 0;
}

/* ----- 15.3 Grid 2×2 (apila a 1 col ≤768px) ---- */
.db-porque__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--db-space-5);
}
@media (max-width: 768px) {
  .db-porque__grid { grid-template-columns: 1fr; }
}

/* ----- 15.4 Card ---- */
.db-porque__card {
  display: flex;
  flex-direction: column;
  padding: var(--db-space-6);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-lg);
  transition: transform var(--db-trans-base),
              border-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
  will-change: transform;
}

/* ----- 15.5 Icono (SVG inline, color heredado via currentColor) ---- */
.db-porque__icono {
  width: 64px;
  height: 64px;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-4);
  transition: transform var(--db-trans-base);
}
.db-porque__icono svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* ----- 15.6 Título y descripción de card ---- */
.db-porque__card-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-porque__card-descripcion {
  font-family: var(--db-font-cuerpo);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--db-blanco-suave);
  margin: 0;
}

/* ----- 15.7 Hover (solo mouse, no touch) ---- */
@media (hover: hover) {
  .db-porque__card:hover {
    border-color: var(--db-amarillo);
    transform: translateY(-6px);
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.4),
                0 0 32px rgba(255, 184, 0, 0.15);
  }
  .db-porque__card:hover .db-porque__icono {
    transform: scale(1.1) rotate(-3deg);
  }
}

/* ----- 15.8 Stagger de entrada (100ms entre cards) ---- */
.db-porque__card:nth-child(1).db-visible { animation-delay: 0ms;   }
.db-porque__card:nth-child(2).db-visible { animation-delay: 100ms; }
.db-porque__card:nth-child(3).db-visible { animation-delay: 200ms; }
.db-porque__card:nth-child(4).db-visible { animation-delay: 300ms; }


/* ============================================================
   16. HOME — PARA QUIÉN / RUBROS (sección 6 de 8)
   front-page.php → <section class="db-rubros">.
   12 cards pequeñas con SVG icon + nombre. Grid 4/3/2 cols.
   Reutiliza [data-db-animate] del bloque 7. Sin JS adicional.
   ============================================================ */

/* ----- 16.1 Contenedor ---- */
.db-rubros {
  background-color: var(--db-negro-suave);
  padding-block: var(--db-space-9);
  position: relative;
}

/* ----- 16.2 Cabecera ---- */
.db-rubros__cabecera {
  text-align: center;
  max-width: 820px;
  margin: 0 auto var(--db-space-8);
}
.db-rubros__etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-rubros__titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.875rem, 4vw, 3rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-rubros__subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  color: var(--db-blanco-tenue);
  margin: 0;
}

/* ----- 16.3 Grid 4/3/2 cols ---- */
.db-rubros__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--db-space-4);
}
@media (max-width: 1024px) {
  .db-rubros__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .db-rubros__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ----- 16.4 Card (compacta, vertical, centrada) ---- */
.db-rubros__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--db-space-3);
  padding: var(--db-space-5) var(--db-space-3);
  text-align: center;
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-md);
  transition: transform var(--db-trans-base),
              border-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
  will-change: transform;
}

/* ----- 16.5 Icono ---- */
.db-rubros__icono {
  width: 28px;
  height: 28px;
  color: var(--db-amarillo);
  transition: transform var(--db-trans-base);
}
.db-rubros__icono svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* ----- 16.6 Nombre del rubro ---- */
.db-rubros__nombre {
  font-family: var(--db-font-titulo);
  font-weight: 500;
  font-size: 0.95rem;
  color: var(--db-blanco);
  line-height: 1.2;
}

/* ----- 16.7 Hover (solo mouse) ---- */
@media (hover: hover) {
  .db-rubros__card:hover {
    border-color: var(--db-amarillo);
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4),
                0 0 20px rgba(255, 184, 0, 0.10);
  }
  .db-rubros__card:hover .db-rubros__icono {
    transform: scale(1.15);
  }
}

/* ----- 16.8 Cierre (texto + link "Diagnóstico Digital Gratis →") ---- */
.db-rubros__cierre {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--db-space-3);
  margin-top: var(--db-space-7);
  text-align: center;
}
.db-rubros__cierre-texto {
  color: var(--db-blanco-tenue);
  font-family: var(--db-font-cuerpo);
  font-size: 1rem;
  line-height: 1.6;
  margin: 0;
  max-width: 600px;
}
.db-rubros__cierre-link {
  display: inline-block;
  color: var(--db-amarillo);
  font-family: var(--db-font-titulo);
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  transition: color var(--db-trans-rapida),
              transform var(--db-trans-rapida);
}
.db-rubros__cierre-link:hover {
  color: var(--db-amarillo-suave);
  transform: translateX(4px); /* la flecha "tira" del link */
}

/* ----- 16.9 Stagger 12 cards (50ms entre cada una) ---- */
.db-rubros__card:nth-child(1).db-visible  { animation-delay: 0ms;   }
.db-rubros__card:nth-child(2).db-visible  { animation-delay: 50ms;  }
.db-rubros__card:nth-child(3).db-visible  { animation-delay: 100ms; }
.db-rubros__card:nth-child(4).db-visible  { animation-delay: 150ms; }
.db-rubros__card:nth-child(5).db-visible  { animation-delay: 200ms; }
.db-rubros__card:nth-child(6).db-visible  { animation-delay: 250ms; }
.db-rubros__card:nth-child(7).db-visible  { animation-delay: 300ms; }
.db-rubros__card:nth-child(8).db-visible  { animation-delay: 350ms; }
.db-rubros__card:nth-child(9).db-visible  { animation-delay: 400ms; }
.db-rubros__card:nth-child(10).db-visible { animation-delay: 450ms; }
.db-rubros__card:nth-child(11).db-visible { animation-delay: 500ms; }
.db-rubros__card:nth-child(12).db-visible { animation-delay: 550ms; }


/* ============================================================
   17. HOME — CTA FINAL (sección 7 de 8)
   front-page.php → <section class="db-cta-final">.
   Bloque AMARILLO de máximo contraste antes del footer.
   Fondo amarillo, texto negro, botón con colores invertidos
   (.db-btn-inverso). Decoración hexagonal sutil en esquinas.
   ============================================================ */

/* ----- 17.1 Contenedor ---- */
.db-cta-final {
  position: relative;
  background-color: var(--db-amarillo);
  padding-block: var(--db-space-10);
  text-align: center;
  overflow: hidden; /* contiene las decoraciones que salen del borde */
}

/* ----- 17.2 Decoración hexagonal (panal en esquinas opuestas) ---- */
.db-cta-final__decoracion {
  position: absolute;
  width: 420px;
  height: 420px;
  color: var(--db-negro);
  opacity: 0.08;
  pointer-events: none;
}
.db-cta-final__decoracion svg {
  display: block;
  width: 100%;
  height: 100%;
}
.db-cta-final__decoracion--tr {
  top: -120px;
  right: -120px;
}
.db-cta-final__decoracion--bl {
  bottom: -120px;
  left: -120px;
}

/* ----- 17.3 Contenedor del contenido ---- */
.db-cta-final__contenido {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

/* ----- 17.4 Título ---- */
.db-cta-final__titulo {
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: clamp(2.25rem, 5vw, 3.75rem);
  letter-spacing: -0.03em;
  line-height: 1.05;
  color: var(--db-negro);
  margin: 0 0 var(--db-space-5);
}

/* ----- 17.5 Subtítulo ---- */
.db-cta-final__subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  line-height: 1.6;
  color: rgba(10, 10, 15, 0.8);
  margin: 0 auto var(--db-space-6);
  max-width: 640px;
}

/* ----- 17.6 Botón grande (override scoped al CTA Final) ---- */
.db-cta-final__boton {
  padding: 1.1rem 2.5rem !important;
  font-size: 1.05rem !important;
  margin-bottom: var(--db-space-4);
}

/* ----- 17.7 Nota debajo del botón ---- */
.db-cta-final__nota {
  font-family: var(--db-font-cuerpo);
  font-size: 0.9rem;
  color: rgba(10, 10, 15, 0.7);
  margin: 0;
  line-height: 1.5;
}

/* ----- 17.8 Mobile: padding más cómodo y decoraciones más chicas ---- */
@media (max-width: 768px) {
  .db-cta-final {
    padding-block: var(--db-space-8);
  }
  .db-cta-final__decoracion {
    width: 280px;
    height: 280px;
  }
  .db-cta-final__decoracion--tr {
    top: -80px;
    right: -80px;
  }
  .db-cta-final__decoracion--bl {
    bottom: -80px;
    left: -80px;
  }
}


/* ============================================================
   18. FOOTER GLOBAL (override del de Divi)
   footer.php (child) → <footer id="main-footer" class="db-footer">.
   Reemplaza el footer default de Divi (widgets de Archives/
   Categories + credit "Designed by Elegant Themes"). Aparece en
   TODAS las páginas, no solo el home.
   ============================================================ */

/* ----- 18.1 Contenedor del footer ---- */
.db-footer {
  background-color: var(--db-negro);
  border-top: 1px solid var(--db-gris-medio);
  padding-top: var(--db-space-9);
  color: var(--db-blanco-suave);
}

/* ----- 18.2 Grid principal 4 columnas (1.5/1/1/1.2) ----
   La primer col es más ancha porque lleva logo + descripción. */
.db-footer__contenido {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
  gap: var(--db-space-7);
  padding-bottom: var(--db-space-8);
}
@media (max-width: 1024px) {
  .db-footer__contenido {
    grid-template-columns: 1fr 1fr;
    gap: var(--db-space-6);
  }
}
@media (max-width: 640px) {
  .db-footer__contenido {
    grid-template-columns: 1fr;
    gap: var(--db-space-6);
  }
}

/* ----- 18.3 Columna marca ---- */
.db-footer__logo {
  display: inline-block;
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: 1.5rem;
  color: var(--db-amarillo);
  text-decoration: none;
  letter-spacing: -0.02em;
  margin-bottom: var(--db-space-3);
  transition: color var(--db-trans-rapida);
}
.db-footer__logo:hover { color: var(--db-amarillo-suave); }

.db-footer__tagline {
  font-family: var(--db-font-titulo);
  font-weight: 500;
  font-size: 1rem;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-2);
  line-height: 1.4;
}
.db-footer__descripcion {
  font-family: var(--db-font-cuerpo);
  font-size: 0.875rem;
  color: var(--db-blanco-tenue);
  line-height: 1.6;
  margin: 0;
  max-width: 280px;
}

/* ----- 18.4 Títulos de columnas ---- */
.db-footer__titulo-col {
  font-family: var(--db-font-titulo);
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ----- 18.5 Listas de links ---- */
.db-footer__lista {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--db-space-2);
}
.db-footer__link {
  color: var(--db-blanco-tenue);
  font-family: var(--db-font-cuerpo);
  font-size: 0.9rem;
  line-height: 1.5;
  text-decoration: none;
  transition: color var(--db-trans-rapida);
}
.db-footer__link:hover { color: var(--db-amarillo); }

/* ----- 18.6 Lista de contacto con íconos ---- */
.db-footer__lista--contacto {
  gap: var(--db-space-3);
}
.db-footer__item-contacto {
  display: flex;
  align-items: center;
  gap: var(--db-space-3);
  color: var(--db-blanco-tenue);
  font-family: var(--db-font-cuerpo);
  font-size: 0.9rem;
  line-height: 1.5;
}
.db-footer__icono {
  display: inline-flex;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  color: var(--db-amarillo);
}
.db-footer__icono svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* ----- 18.7 Barra inferior (copyright + hecho con 🐝 + legales) ---- */
.db-footer__inferior {
  border-top: 1px solid var(--db-gris-medio);
  padding-block: var(--db-space-5);
}
.db-footer__inferior-contenido {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--db-space-4);
}
.db-footer__copyright,
.db-footer__hecho {
  font-family: var(--db-font-cuerpo);
  font-size: 0.8rem;
  color: var(--db-gris-claro);
  margin: 0;
}
.db-footer__legal {
  display: flex;
  align-items: center;
  gap: var(--db-space-3);
  font-size: 0.8rem;
}
.db-footer__legal span { color: var(--db-gris-claro); }

/* ----- 18.8 Mobile: barra inferior se apila centrada ---- */
@media (max-width: 768px) {
  .db-footer__inferior-contenido {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--db-space-3);
  }
}


/* ============================================================
   19. PÁGINA CONTACTO (Etapa D, primera página interna)
   page-contacto.php → <main class="db-contacto">.
   Hero compacto + 2-col layout (info 40% / form 60%).
   Estilos de Contact Form 7 scopeados bajo .db-contacto.
   ============================================================ */

/* ----- 19.1 Wrapper general ---- */
.db-contacto {
  background-color: var(--db-negro);
}

/* ----- 19.2 Hero compacto ---- */
.db-contacto__hero {
  padding-block: var(--db-space-9) var(--db-space-7);
  text-align: center;
}
.db-contacto__hero-contenido {
  max-width: 720px;
  margin: 0 auto;
}
.db-contacto__etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-contacto__titulo {
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: clamp(2rem, 4.5vw, 3rem);
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-4);
}
.db-contacto__subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  color: var(--db-blanco-suave);
  margin: 0;
}

/* ----- 19.3 Grid 40/60 (apila a 1 col ≤1024px) ---- */
.db-contacto__contenido {
  padding-bottom: var(--db-space-10);
}
.db-contacto__grid {
  display: grid;
  grid-template-columns: 2fr 3fr;
  gap: var(--db-space-7);
  align-items: start;
}
@media (max-width: 1024px) {
  .db-contacto__grid {
    grid-template-columns: 1fr;
    gap: var(--db-space-6);
  }
}

/* ----- 19.4 Columna izquierda: info + lista de contacto ---- */
.db-contacto__info-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 600;
  font-size: 1.125rem;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-4);
}
.db-contacto__lista {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--db-space-6);
  display: flex;
  flex-direction: column;
  gap: var(--db-space-3);
}
.db-contacto__item {
  display: flex;
  align-items: center;
  gap: var(--db-space-3);
  color: var(--db-blanco-suave);
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.5;
}
.db-contacto__icono {
  display: inline-flex;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: var(--db-amarillo);
}
.db-contacto__icono svg {
  display: block;
  width: 100%;
  height: 100%;
}
.db-contacto__link {
  color: var(--db-blanco);
  text-decoration: none;
  transition: color var(--db-trans-rapida);
}
.db-contacto__link:hover { color: var(--db-amarillo); }

/* ----- 19.5 Botón WhatsApp (verde brand) ---- */
.db-contacto__item--whatsapp {
  display: block; /* override del flex de .db-contacto__item */
  margin-block: var(--db-space-1);
}
.db-contacto__whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--db-space-2);
  width: 100%;
  padding: 0.85rem 1.5rem;
  background-color: #25D366; /* WhatsApp brand green */
  color: #FFFFFF;
  font-family: var(--db-font-titulo);
  font-weight: 600;
  font-size: 0.95rem;
  border-radius: var(--db-radio-md);
  text-decoration: none;
  transition: transform var(--db-trans-base),
              background-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
}
.db-contacto__whatsapp svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.db-contacto__whatsapp:hover {
  background-color: #1DA851; /* WhatsApp green más oscuro */
  color: #FFFFFF;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(37, 211, 102, 0.3);
}

/* ----- 19.6 Trust points con checkmark amarillo (mismo SVG del bloque 13.10) ---- */
.db-contacto__confianza {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--db-space-3);
}
.db-contacto__confianza-item {
  position: relative;
  padding-left: 30px;
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--db-blanco-suave);
}
.db-contacto__confianza-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-color: var(--db-amarillo);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230A0A0F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 8 7 12 13 4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 70%;
}
/* Stagger de trust points */
.db-contacto__confianza-item:nth-child(1).db-visible { animation-delay: 0ms;   }
.db-contacto__confianza-item:nth-child(2).db-visible { animation-delay: 100ms; }
.db-contacto__confianza-item:nth-child(3).db-visible { animation-delay: 200ms; }

/* ----- 19.7 Card del form (columna derecha) ---- */
.db-contacto__form-card {
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-xl);
  padding: var(--db-space-7);
}
.db-contacto__form-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-5);
}

/* ----- 19.8 Contact Form 7 styling (scoped a .db-contacto) ----
   Vencemos las reglas globales del bloque 9.5 con !important
   SOLO en las props que difieren (bg + border-color). El resto
   (radio, padding, color de texto, focus state, placeholder)
   se hereda de la cascade y queda consistente. */

.db-contacto .wpcf7 { margin: 0; }

.db-contacto .wpcf7-form {
  display: flex;
  flex-direction: column;
  gap: var(--db-space-4);
}

/* CF7 envuelve cada campo en <p> por default. Reseteamos margin. */
.db-contacto .wpcf7-form p {
  margin: 0;
  display: flex;
  flex-direction: column;
}

/* Labels */
.db-contacto .wpcf7-form label {
  font-family: var(--db-font-titulo);
  font-weight: 500;
  font-size: 0.95rem;
  color: var(--db-blanco);
  margin-bottom: var(--db-space-2);
  display: block;
}

/* Inputs/textarea/select: bg más oscuro que la card (--db-negro)
   para separación visual. Solo override de bg y border-color
   porque el resto viene del bloque 9.5. */
.db-contacto .wpcf7-form input[type="text"],
.db-contacto .wpcf7-form input[type="email"],
.db-contacto .wpcf7-form input[type="tel"],
.db-contacto .wpcf7-form input[type="url"],
.db-contacto .wpcf7-form input[type="number"],
.db-contacto .wpcf7-form textarea,
.db-contacto .wpcf7-form select {
  background-color: var(--db-negro) !important;
  border-color: var(--db-gris-medio) !important;
  width: 100%;
}
.db-contacto .wpcf7-form textarea {
  min-height: 140px;
  resize: vertical;
}

/* Select con chevron amarillo custom */
.db-contacto .wpcf7-form select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFB800' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
  background-size: 16px !important;
  padding-right: 2.5rem !important;
  cursor: pointer;
}

/* Botón submit: aplicar estilo .db-btn-primario scoped */
.db-contacto .wpcf7-form .wpcf7-submit {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.95rem 1.75rem !important;
  background-color: var(--db-amarillo) !important;
  color: var(--db-negro) !important;
  border: none !important;
  border-radius: var(--db-radio-md) !important;
  font-family: var(--db-font-titulo) !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  cursor: pointer;
  transition: transform var(--db-trans-base),
              background-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
  margin-top: var(--db-space-2);
}
.db-contacto .wpcf7-form .wpcf7-submit:hover {
  background-color: var(--db-naranja) !important;
  color: var(--db-negro) !important;
  transform: translateY(-2px);
  box-shadow: var(--db-glow-naranja);
}

/* Estado inválido durante edición */
.db-contacto .wpcf7-form .wpcf7-not-valid {
  border-color: #FCA5A5 !important;
  box-shadow: 0 0 0 3px rgba(252, 165, 165, 0.15) !important;
}

/* Tooltip de error inline */
.db-contacto .wpcf7-form .wpcf7-not-valid-tip {
  color: #FCA5A5;
  font-family: var(--db-font-cuerpo);
  font-size: 0.85rem;
  margin-top: var(--db-space-2);
  font-weight: 500;
}

/* Mensaje de respuesta final */
.db-contacto .wpcf7-response-output {
  margin: var(--db-space-3) 0 0 !important;
  padding: var(--db-space-3) var(--db-space-4) !important;
  border-radius: var(--db-radio-md);
  font-family: var(--db-font-cuerpo);
  font-size: 0.9rem;
  line-height: 1.5;
}

/* Variante error */
.db-contacto .wpcf7 form.invalid .wpcf7-response-output,
.db-contacto .wpcf7 form.unaccepted .wpcf7-response-output,
.db-contacto .wpcf7 form.payment-required .wpcf7-response-output {
  background-color: rgba(252, 165, 165, 0.1);
  border: 1px solid #FCA5A5;
  color: #FCA5A5;
}

/* Variante éxito */
.db-contacto .wpcf7 form.sent .wpcf7-response-output {
  background-color: rgba(255, 184, 0, 0.1);
  border: 1px solid var(--db-amarillo);
  color: var(--db-amarillo);
}

/* Spinner ajax al lado del submit */
.db-contacto .wpcf7-spinner {
  margin-left: var(--db-space-3);
  vertical-align: middle;
}

/* ----- 19.9 Mobile (≤640px): padding más compacto ---- */
@media (max-width: 640px) {
  .db-contacto__hero {
    padding-block: var(--db-space-7) var(--db-space-6);
  }
  .db-contacto__form-card {
    padding: var(--db-space-5);
  }
}


/* ============================================================
   20. PÁGINA PAQUETES DE POLEN (Etapa D, segunda página interna)
   page-paquetes-de-polen.php → <main class="db-polen">.
   6 secciones: hero, cómo funciona, 4 bots, combos, garantías,
   CTA final (reutiliza .db-cta-final del bloque 17).
   Acordeón de complementos usa el componente genérico
   .db-accordion__* (bloque 21) + js/accordion.js (global).
   ============================================================ */

/* ----- 20.1 Wrapper general ---- */
.db-polen {
  background-color: var(--db-negro);
}

/* ----- 20.2 Hero compacto con patrón de puntos sutil ---- */
.db-polen__hero {
  position: relative;
  padding-block: var(--db-space-9) var(--db-space-7);
  text-align: center;
  overflow: hidden;
}
/* Patrón de puntos atenuado (más sutil que el del home: 0.03 vs 0.05) */
.db-polen__hero-patron {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 75%);
}
.db-polen__hero-contenido {
  position: relative; /* sobre el patrón */
  max-width: 820px;
  margin: 0 auto;
}
.db-polen__etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-polen__hero-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: clamp(2rem, 4.5vw, 3rem);
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-4);
}
.db-polen__hero-subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  color: var(--db-blanco-suave);
  margin: 0;
  max-width: 720px;
  margin-inline: auto;
}

/* ----- 20.3 Banda "Cómo funciona" (3 puntos horizontales) ---- */
.db-polen__como {
  padding-block: var(--db-space-6);
  border-block: 1px solid var(--db-gris-medio);
  background-color: var(--db-negro-suave);
}
.db-polen__como-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--db-space-5);
  align-items: center;
}
@media (max-width: 768px) {
  .db-polen__como-grid { grid-template-columns: 1fr; gap: var(--db-space-4); }
}
.db-polen__como-item {
  display: flex;
  align-items: center;
  gap: var(--db-space-3);
}
.db-polen__como-icono {
  display: inline-flex;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  color: var(--db-amarillo);
}
.db-polen__como-icono svg { display: block; width: 100%; height: 100%; }
.db-polen__como-texto {
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--db-blanco-suave);
  margin: 0;
}

/* ----- 20.4 Sección bots — grid 2×2 ---- */
.db-polen__bots {
  padding-block: var(--db-space-9);
}
.db-polen__bots-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--db-space-6);
}
@media (max-width: 1024px) {
  .db-polen__bots-grid { grid-template-columns: 1fr; }
}

/* ----- 20.5 Card bot base ---- */
.db-polen__bot {
  display: flex;
  flex-direction: column;
  padding: var(--db-space-6);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-xl);
  transition: border-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
}
@media (hover: hover) {
  .db-polen__bot:hover {
    border-color: var(--db-amarillo);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4),
                0 0 32px rgba(255, 184, 0, 0.10);
  }
}

/* ----- 20.6 Header card (título + badge en línea) ---- */
.db-polen__bot-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--db-space-3);
  margin-bottom: var(--db-space-3);
}
.db-polen__bot-nombre {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 1.875rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--db-blanco);
  margin: 0;
}

/* ----- 20.7 Badge "Tasa de éxito" ---- */
.db-polen__badge {
  flex-shrink: 0;
  display: inline-block;
  padding: 0.3rem 0.7rem;
  background-color: rgba(255, 184, 0, 0.12);
  border: 1px solid var(--db-amarillo);
  border-radius: var(--db-radio-pill);
  color: var(--db-amarillo);
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1.2;
  white-space: nowrap;
}

/* Descripción corta del bot */
.db-polen__bot-desc {
  font-family: var(--db-font-cuerpo);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--db-blanco-suave);
  margin: 0 0 var(--db-space-5);
}

/* ----- 20.8 Bloque de precios (Setup + Mensual) ---- */
.db-polen__precios {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--db-space-4);
  padding: var(--db-space-4) 0;
  border-block: 1px solid var(--db-gris-medio);
  margin-bottom: var(--db-space-5);
}
.db-polen__precio {
  display: flex;
  flex-direction: column;
  gap: var(--db-space-1);
}
.db-polen__precio-label {
  font-family: var(--db-font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--db-blanco-tenue);
}
.db-polen__precio-valor {
  display: flex;
  align-items: baseline;
  gap: var(--db-space-2);
  flex-wrap: wrap;
}
.db-polen__precio-monto {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 1.75rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.db-polen__precio-iva {
  font-family: var(--db-font-cuerpo);
  font-size: 0.8rem;
  color: var(--db-blanco-tenue);
}

/* ----- 20.9 Lista de features con checkmark amarillo ---- */
.db-polen__features {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--db-space-5);
  display: flex;
  flex-direction: column;
  gap: var(--db-space-2);
}
.db-polen__feature {
  position: relative;
  padding-left: 28px;
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--db-blanco-suave);
}
.db-polen__feature::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-color: var(--db-amarillo);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230A0A0F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 8 7 12 13 4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 70%;
}

/* ----- 20.10 Lista de complementos dentro del panel del acordeón ----
   El acordeón en sí (toggle / chevron / panel) ahora es genérico:
   vive en bloque 21 ".db-accordion__*" y se usa en Polen, Colmena,
   FAQ futura, etc. Acá solo queda el contenido del panel, que es
   específico de Polen (lista de complementos con nombre + precio). */
.db-polen__addons-lista {
  list-style: none;
  padding: var(--db-space-3) 0 var(--db-space-2);
  margin: 0;
  display: flex;
  flex-direction: column;
}
.db-polen__addon {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--db-space-3);
  padding: var(--db-space-2) 0;
  border-bottom: 1px solid rgba(42, 42, 54, 0.6); /* gris medio al 60% */
  font-family: var(--db-font-cuerpo);
  font-size: 0.9rem;
  line-height: 1.4;
}
.db-polen__addon:last-child { border-bottom: none; }
.db-polen__addon-nombre { color: var(--db-blanco-suave); }
.db-polen__addon-precio {
  color: var(--db-amarillo);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ----- 20.11 CTA inferior de cada card (anclado al fondo) ---- */
.db-polen__bot-cta {
  margin-top: auto;        /* empuja al fondo, alinea CTAs entre cards */
  padding-top: var(--db-space-5);
}
.db-polen__bot > .db-polen__bot-cta {
  margin-top: var(--db-space-5);
  align-self: stretch;
  justify-content: center;
}

/* ----- 20.12 Combos — 2 cards (Esencial + Colmena Bot Completo) ---- */
.db-polen__combos {
  padding-block: var(--db-space-9);
  background-color: var(--db-negro-suave);
}
.db-polen__combos-cabecera {
  text-align: center;
  max-width: 680px;
  margin: 0 auto var(--db-space-7);
}
.db-polen__combos-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.875rem, 4vw, 2.5rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-polen__combos-subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--db-blanco-tenue);
  margin: 0;
}
.db-polen__combos-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--db-space-6);
  align-items: stretch;
}
@media (max-width: 768px) {
  .db-polen__combos-grid { grid-template-columns: 1fr; }
}

.db-polen__combo {
  display: flex;
  flex-direction: column;
  padding: var(--db-space-6);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-xl);
  transition: border-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
}

/* Combo destacado (Colmena Bot Completo) — SIN transform (mismo patrón
   que .db-bloques__card--destacada: usamos margin-block negativo en
   desktop para elevarlo sin chocar con [data-db-animate]). */
.db-polen__combo--destacado {
  border-color: var(--db-amarillo);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5),
              0 0 32px rgba(255, 184, 0, 0.15);
}
@media (min-width: 769px) {
  .db-polen__combo--destacado {
    margin-block: -16px 16px;
    padding: var(--db-space-7) var(--db-space-6);
  }
}

.db-polen__combo-etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-polen__combo-nombre {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 1.875rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-2);
}
.db-polen__combo-incluye {
  font-family: var(--db-font-cuerpo);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--db-blanco-suave);
  margin: 0 0 var(--db-space-4);
}
.db-polen__combo-cta {
  margin-top: auto;
  align-self: stretch;
  justify-content: center;
}

/* ----- 20.13 Garantías — 3 puntos horizontales ---- */
.db-polen__garantias {
  padding-block: var(--db-space-9);
}
.db-polen__garantias-cabecera {
  text-align: center;
  margin-bottom: var(--db-space-7);
}
.db-polen__garantias-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.875rem, 4vw, 2.5rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  margin: 0;
}
.db-polen__garantias-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--db-space-6);
}
@media (max-width: 1024px) {
  .db-polen__garantias-grid { grid-template-columns: 1fr; }
}
.db-polen__garantia {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--db-space-3);
  padding: var(--db-space-5);
}
.db-polen__garantia-icono {
  display: inline-flex;
  width: 32px;
  height: 32px;
  color: var(--db-amarillo);
}
.db-polen__garantia-icono svg { display: block; width: 100%; height: 100%; }
.db-polen__garantia-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 600;
  font-size: 1.125rem;
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: var(--db-blanco);
  margin: 0;
}
.db-polen__garantia-desc {
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--db-blanco-tenue);
  margin: 0;
  max-width: 320px;
}


/* ============================================================
   21. COMPONENTE REUSABLE — Accordion
   Patrón accesible (button + panel) usado en:
     - Paquetes de Polen (complementos por bot)
     - Colmena 0 (complementos por sub-paquete)
     - FAQ futura, etc.
   JS en js/accordion.js (encolado global), togglea aria-expanded
   + max-height. El contenido DENTRO del .db-accordion__panel es
   específico de cada página y vive en su propio bloque
   (ej. .db-polen__addons-lista, .db-colmena__addons-lista).
   ============================================================ */

/* Botón toggle: full-width, border-top/bottom sutil */
.db-accordion__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--db-space-3) 0;
  background: transparent;
  border: none;
  border-top: 1px solid var(--db-gris-medio);
  border-bottom: 1px solid var(--db-gris-medio);
  color: var(--db-blanco-suave);
  font-family: var(--db-font-titulo);
  font-weight: 500;
  font-size: 0.95rem;
  cursor: pointer;
  transition: color var(--db-trans-rapida),
              border-color var(--db-trans-rapida);
}
.db-accordion__toggle:hover {
  color: var(--db-amarillo);
  border-color: var(--db-amarillo);
}

/* Chevron: rota 180° via [aria-expanded="true"] */
.db-accordion__chevron {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  transition: transform var(--db-trans-base);
}
.db-accordion__toggle[aria-expanded="true"] .db-accordion__chevron {
  transform: rotate(180deg);
}

/* Panel: max-height 0 inicial; JS setea scrollHeight al abrir */
.db-accordion__panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 400ms cubic-bezier(0.16, 1, 0.3, 1);
}


/* ============================================================
   22. PÁGINA COLMENA 0 (Etapa D, tercera página interna)
   page-colmena-0.php → <main class="db-colmena">.
   4 secciones: hero, 4 sub-paquetes (grid 2×2), cómo trabajamos,
   CTA final (reusa .db-cta-final del home). Acordeón usa el
   componente genérico .db-accordion__* del bloque 21.
   ============================================================ */

/* ----- 22.1 Wrapper general ---- */
.db-colmena {
  background-color: var(--db-negro);
}

/* ----- 22.2 Hero compacto con patrón de puntos atenuado ----
   Mismo approach que el hero de Polen (bloque 20.2). */
.db-colmena__hero {
  position: relative;
  padding-block: var(--db-space-9) var(--db-space-7);
  text-align: center;
  overflow: hidden;
}
.db-colmena__hero-patron {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 75%);
}
.db-colmena__hero-contenido {
  position: relative;
  max-width: 820px;
  margin: 0 auto;
}
.db-colmena__etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-colmena__hero-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: clamp(2rem, 4.5vw, 3rem);
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-4);
}
.db-colmena__hero-subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  color: var(--db-blanco-suave);
  margin: 0;
  max-width: 720px;
  margin-inline: auto;
}

/* ----- 22.3 Grid 2×2 de paquetes ---- */
.db-colmena__paquetes {
  padding-block: var(--db-space-9);
}
.db-colmena__paquetes-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--db-space-6);
  align-items: stretch;
}
@media (max-width: 1024px) {
  .db-colmena__paquetes-grid { grid-template-columns: 1fr; }
}

/* ----- 22.4 Card base del paquete ---- */
.db-colmena__paquete {
  display: flex;
  flex-direction: column;
  padding: var(--db-space-6);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-xl);
  transition: border-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
}
@media (hover: hover) {
  .db-colmena__paquete:hover {
    border-color: var(--db-amarillo);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4),
                0 0 32px rgba(255, 184, 0, 0.10);
  }
}

/* ----- 22.5 Card destacada (Néctar Web) ----
   SIN transform en estado base (gotcha conocido: chocaría con la
   animación de [data-db-animate]). Elevación visual via margin-block
   negativo en desktop. Mismo patrón que bloques 13.5 y 20.12. */
.db-colmena__paquete--destacado {
  border-color: var(--db-amarillo);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5),
              0 0 32px rgba(255, 184, 0, 0.15);
}
@media (min-width: 1025px) {
  .db-colmena__paquete--destacado {
    margin-block: -16px 16px;
  }
}

/* ----- 22.6 Header de card (nombre + tag) ---- */
.db-colmena__paquete-header {
  display: flex;
  flex-direction: column;
  gap: var(--db-space-2);
  margin-bottom: var(--db-space-3);
}
.db-colmena__paquete-nombre {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 1.875rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--db-blanco);
  margin: 0;
}
.db-colmena__tag {
  display: inline-block;
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  color: var(--db-amarillo);
  line-height: 1.4;
}
.db-colmena__tag--destacado {
  font-weight: 600;
}

/* ----- 22.7 Pill "Requiere Néctar Web" — gris medio tenue ----
   Intencionalmente NO amarillo para no competir con el tag
   amarillo de arriba ni con badges amarillos de otras secciones. */
.db-colmena__requiere {
  display: inline-block;
  align-self: flex-start;
  margin-bottom: var(--db-space-3);
  padding: 0.3rem 0.7rem;
  background-color: transparent;
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-pill);
  color: var(--db-blanco-tenue);
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1.2;
}

/* ----- 22.8 Bloque de precios ---- */
.db-colmena__precios {
  padding: var(--db-space-4) 0;
  border-top: 1px solid var(--db-gris-medio);
  border-bottom: 1px solid var(--db-gris-medio);
  margin-bottom: var(--db-space-3);
}
.db-colmena__precio {
  display: flex;
  flex-direction: column;
  gap: var(--db-space-1);
}
.db-colmena__precio-label {
  font-family: var(--db-font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--db-blanco-tenue);
}
.db-colmena__precio-valor {
  display: flex;
  align-items: baseline;
  gap: var(--db-space-2);
  flex-wrap: wrap;
}
.db-colmena__precio-monto {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 1.75rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.db-colmena__precio-iva {
  font-family: var(--db-font-cuerpo);
  font-size: 0.8rem;
  color: var(--db-blanco-tenue);
}

/* Sub-línea de renovación (solo Néctar Web) — fuera del bloque de
   precios para diferenciarla visualmente del setup principal */
.db-colmena__renovacion {
  font-family: var(--db-font-cuerpo);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--db-blanco-suave);
  margin: var(--db-space-2) 0 var(--db-space-3);
}
.db-colmena__renovacion strong {
  font-weight: 600;
  color: var(--db-blanco);
}

/* Nota de entrega — caption mono */
.db-colmena__entrega {
  font-family: var(--db-font-mono);
  font-size: 0.75rem;
  color: var(--db-blanco-tenue);
  margin: 0 0 var(--db-space-4);
  letter-spacing: 0.02em;
}

/* ----- 22.9 Features list (reusa SVG checkmark del bloque 13.10) ---- */
.db-colmena__features {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--db-space-5);
  display: flex;
  flex-direction: column;
  gap: var(--db-space-2);
}
.db-colmena__feature {
  position: relative;
  padding-left: 28px;
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--db-blanco-suave);
}
.db-colmena__feature::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-color: var(--db-amarillo);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230A0A0F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 8 7 12 13 4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 70%;
}

/* ----- 22.10 Sub-lista "Mantención incluida" (solo Néctar Web) ----
   Estilo sutil: fondo más oscuro, grid 2-col, items con bullet
   dot, nota final en caption italic. */
.db-colmena__mantencion {
  margin: 0 0 var(--db-space-5);
  padding: var(--db-space-4);
  background-color: var(--db-negro);
  border-radius: var(--db-radio-md);
}
.db-colmena__mantencion-label {
  display: block;
  font-family: var(--db-font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-colmena__mantencion-lista {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--db-space-3);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--db-space-1) var(--db-space-3);
}
@media (max-width: 640px) {
  .db-colmena__mantencion-lista { grid-template-columns: 1fr; }
}
.db-colmena__mantencion-lista li {
  position: relative;
  padding-left: 14px;
  font-family: var(--db-font-cuerpo);
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--db-blanco-tenue);
}
.db-colmena__mantencion-lista li::before {
  content: '·';
  position: absolute;
  left: 0;
  color: var(--db-amarillo);
  font-weight: 700;
}
.db-colmena__mantencion-nota {
  font-family: var(--db-font-cuerpo);
  font-size: 0.8rem;
  font-style: italic;
  color: var(--db-blanco-tenue);
  margin: 0;
}

/* ----- 22.11 Tres planes mensuales (solo Néctar Contenido) ----
   Mini-grid interno: nombre + precio + descripción por plan,
   separados por bordes sutiles. */
.db-colmena__planes {
  margin: 0 0 var(--db-space-5);
}
.db-colmena__planes-label {
  display: block;
  font-family: var(--db-font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-colmena__plan {
  padding: var(--db-space-3) 0;
  border-bottom: 1px solid var(--db-gris-medio);
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: var(--db-space-3);
  align-items: baseline;
}
.db-colmena__plan:first-of-type {
  border-top: 1px solid var(--db-gris-medio);
}
.db-colmena__plan-nombre {
  font-family: var(--db-font-titulo);
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--db-blanco);
}
.db-colmena__plan-precio {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--db-amarillo);
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}
.db-colmena__plan-iva {
  font-family: var(--db-font-cuerpo);
  font-weight: 400;
  font-size: 0.75rem;
  color: var(--db-blanco-tenue);
  margin-left: 0.25rem;
}
.db-colmena__plan-incluye {
  grid-column: 1 / -1;
  font-family: var(--db-font-cuerpo);
  font-size: 0.85rem;
  line-height: 1.4;
  color: var(--db-blanco-suave);
  margin: var(--db-space-1) 0 0;
}

/* ----- 22.12 Lista de complementos dentro del panel del acordeón ----
   Misma estructura que .db-polen__addons-lista del bloque 20.10. */
.db-colmena__addons-lista {
  list-style: none;
  padding: var(--db-space-3) 0 var(--db-space-2);
  margin: 0;
  display: flex;
  flex-direction: column;
}
.db-colmena__addon {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--db-space-3);
  padding: var(--db-space-2) 0;
  border-bottom: 1px solid rgba(42, 42, 54, 0.6);
  font-family: var(--db-font-cuerpo);
  font-size: 0.9rem;
  line-height: 1.4;
}
.db-colmena__addon:last-child { border-bottom: none; }
.db-colmena__addon-nombre { color: var(--db-blanco-suave); }
.db-colmena__addon-precio {
  color: var(--db-amarillo);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ----- 22.13 CTA de card (anclado al fondo) ---- */
.db-colmena__paquete-cta {
  margin-top: auto;
  align-self: stretch;
  justify-content: center;
}

/* ----- 22.14 Banda "Cómo trabajamos" (3 puntos horizontales) ---- */
.db-colmena__como {
  padding-block: var(--db-space-7);
  border-block: 1px solid var(--db-gris-medio);
  background-color: var(--db-negro-suave);
}
.db-colmena__como-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--db-space-5);
  align-items: center;
}
@media (max-width: 768px) {
  .db-colmena__como-grid { grid-template-columns: 1fr; gap: var(--db-space-4); }
}
.db-colmena__como-item {
  display: flex;
  align-items: center;
  gap: var(--db-space-3);
}
.db-colmena__como-icono {
  display: inline-flex;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  color: var(--db-amarillo);
}
.db-colmena__como-icono svg {
  display: block;
  width: 100%;
  height: 100%;
}
.db-colmena__como-texto {
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--db-blanco-suave);
  margin: 0;
}


/* ============================================================
   23. PÁGINA NÉCTAR PROMO (Etapa D, cuarta página interna)
   page-nectar-promo.php → <main class="db-promo">.
   5 secciones: hero, 3 planes mensuales (Floración destacada),
   2 campañas puntuales en banda diferenciada, presupuesto
   publicitario con callout + 2 modalidades, CTA final (reusa
   .db-cta-final del bloque 17).
   3 zonas de cards con DENSIDADES VISUALES DISTINTAS:
     - Planes mensuales: pesado (producto principal)
     - Campañas puntuales: medio (alternativa puntual)
     - Modalidades de pago: liviano (info-box)
   ============================================================ */

/* ----- 23.1 Wrapper general ---- */
.db-promo {
  background-color: var(--db-negro);
}

/* ----- 23.2 Hero compacto con patrón de puntos atenuado ----
   Mismo approach que Polen (20.2) y Colmena (22.2). */
.db-promo__hero {
  position: relative;
  padding-block: var(--db-space-9) var(--db-space-7);
  text-align: center;
  overflow: hidden;
}
.db-promo__hero-patron {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 75%);
}
.db-promo__hero-contenido {
  position: relative;
  max-width: 820px;
  margin: 0 auto;
}
.db-promo__etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-promo__hero-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: clamp(2rem, 4.5vw, 3rem);
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-4);
}
.db-promo__hero-subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  color: var(--db-blanco-suave);
  margin: 0;
  max-width: 720px;
  margin-inline: auto;
}

/* ----- 23.3 Sección planes mensuales — grid 3 cols ---- */
.db-promo__planes {
  padding-block: var(--db-space-9);
}
.db-promo__planes-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--db-space-6);
  align-items: stretch;
}
@media (max-width: 1024px) {
  .db-promo__planes-grid { grid-template-columns: 1fr; }
}

/* ----- 23.4 Card plan base (zona PESADA, producto principal) ---- */
.db-promo__plan {
  display: flex;
  flex-direction: column;
  padding: var(--db-space-6);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-xl);
  transition: border-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
}
@media (hover: hover) {
  .db-promo__plan:hover {
    border-color: var(--db-amarillo);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4),
                0 0 32px rgba(255, 184, 0, 0.10);
  }
}

/* ----- 23.5 Plan destacado (Floración) ----
   SIN transform en estado base. Elevación via margin-block.
   Mismo gotcha que bloques 13.5, 20.12, 22.5. */
.db-promo__plan--destacado {
  border-color: var(--db-amarillo);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5),
              0 0 32px rgba(255, 184, 0, 0.15);
}
@media (min-width: 1025px) {
  .db-promo__plan--destacado {
    margin-block: -16px 16px;
  }
}

/* ----- 23.6 Tag del plan ---- */
.db-promo__plan-tag {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-promo__plan-tag--destacado { font-weight: 600; }

/* ----- 23.7 Nombre del plan ---- */
.db-promo__plan-nombre {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 1.875rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}

/* ----- 23.8 Precios (setup + mensual) ---- */
.db-promo__precios {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--db-space-4);
  padding: var(--db-space-4) 0;
  border-block: 1px solid var(--db-gris-medio);
  margin-bottom: var(--db-space-5);
}
.db-promo__precio {
  display: flex;
  flex-direction: column;
  gap: var(--db-space-1);
}
.db-promo__precio-label {
  font-family: var(--db-font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--db-blanco-tenue);
}
.db-promo__precio-valor {
  display: flex;
  align-items: baseline;
  gap: var(--db-space-2);
  flex-wrap: wrap;
}
.db-promo__precio-monto {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 1.75rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.db-promo__precio-iva {
  font-family: var(--db-font-cuerpo);
  font-size: 0.8rem;
  color: var(--db-blanco-tenue);
}

/* ----- 23.9 Features list (reusa SVG checkmark del bloque 13.10) ---- */
.db-promo__features {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--db-space-5);
  display: flex;
  flex-direction: column;
  gap: var(--db-space-2);
}
.db-promo__feature {
  position: relative;
  padding-left: 28px;
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--db-blanco-suave);
}
.db-promo__feature::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-color: var(--db-amarillo);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230A0A0F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 8 7 12 13 4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 70%;
}

/* ----- 23.10 CTA del plan (anclado al fondo) ---- */
.db-promo__plan-cta {
  margin-top: auto;
  align-self: stretch;
  justify-content: center;
}

/* ----- 23.11 Nota de compromiso (caption tenue centrada) ---- */
.db-promo__nota-compromiso {
  text-align: center;
  max-width: 600px;
  margin: var(--db-space-7) auto 0;
  font-family: var(--db-font-cuerpo);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--db-blanco-tenue);
  font-style: italic;
}

/* ----- 23.12 Banda CAMPAÑAS PUNTUALES (zona MEDIA, bg suave) ----
   bg --db-negro-suave + border-block diferencian la zona del resto. */
.db-promo__campanas {
  padding-block: var(--db-space-9);
  background-color: var(--db-negro-suave);
  border-block: 1px solid var(--db-gris-medio);
}
.db-promo__campanas-cabecera {
  text-align: center;
  max-width: 680px;
  margin: 0 auto var(--db-space-7);
}
.db-promo__campanas-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.875rem, 4vw, 2.5rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-promo__campanas-subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--db-blanco-tenue);
  margin: 0;
}
.db-promo__campanas-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--db-space-5);
}
@media (max-width: 768px) {
  .db-promo__campanas-grid { grid-template-columns: 1fr; }
}

/* Card campaña — más simple que las de planes (sin features, sin
   2-col de precios; nombre + precio inline + 1 línea desc + CTA). */
.db-promo__campana {
  display: flex;
  flex-direction: column;
  padding: var(--db-space-6);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-lg);
  transition: border-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
}
@media (hover: hover) {
  .db-promo__campana:hover {
    border-color: var(--db-amarillo);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3),
                0 0 24px rgba(255, 184, 0, 0.08);
  }
}
.db-promo__campana-nombre {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-promo__campana-precio {
  display: flex;
  align-items: baseline;
  gap: var(--db-space-2);
  margin-bottom: var(--db-space-3);
  flex-wrap: wrap;
}
.db-promo__campana-desc {
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--db-blanco-suave);
  margin: 0 0 var(--db-space-5);
}
.db-promo__campana-cta {
  margin-top: auto;
  align-self: stretch;
  justify-content: center;
}

/* ----- 23.13 Sección PRESUPUESTO (zona LIVIANA, vuelve a negro) ---- */
.db-promo__presupuesto {
  padding-block: var(--db-space-9);
}
.db-promo__presupuesto-cabecera {
  text-align: center;
  max-width: 720px;
  margin: 0 auto var(--db-space-5);
}
.db-promo__presupuesto-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.875rem, 4vw, 2.5rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  margin: 0;
}

/* Callout del fee — borde izquierdo amarillo, estilo "nota importante".
   Más prominente que un párrafo normal, sin gritar como un alert. */
.db-promo__presupuesto-callout {
  max-width: 780px;
  margin: 0 auto var(--db-space-7);
  padding: var(--db-space-4) var(--db-space-5);
  background-color: var(--db-gris-oscuro);
  border-left: 4px solid var(--db-amarillo);
  border-radius: 0 var(--db-radio-md) var(--db-radio-md) 0;
}
.db-promo__presupuesto-callout p {
  margin: 0;
  font-family: var(--db-font-cuerpo);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--db-blanco-suave);
}
.db-promo__presupuesto-callout strong {
  color: var(--db-blanco);
  font-weight: 600;
}

/* Modalidades — info-boxes, sin precio, sin CTA */
.db-promo__modalidades-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--db-space-5);
  margin-bottom: var(--db-space-5);
}
@media (max-width: 768px) {
  .db-promo__modalidades-grid { grid-template-columns: 1fr; }
}
.db-promo__modalidad {
  padding: var(--db-space-6);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-lg);
}
.db-promo__modalidad-etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-2);
}
.db-promo__modalidad-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-promo__modalidad-desc {
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--db-blanco-suave);
  margin: 0;
}

/* Nota final de la sección presupuesto */
.db-promo__presupuesto-nota {
  text-align: center;
  max-width: 640px;
  margin: 0 auto;
  font-family: var(--db-font-cuerpo);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--db-blanco-tenue);
  font-style: italic;
}


/* ============================================================
   24. PÁGINA COMBOS (Etapa D, quinta página interna)
   page-combos.php → <main class="db-combos">.

   Concepto clave: 2 GRUPOS de combos con jerarquía visual MUY
   distinta para que la página no se sienta repetida respecto a
   Paquetes de Polen.

   - Grupo 1 (cruzados, PESADO):     producto principal de esta
     página. 4 combos exclusivos, grid 2×2, padding generoso,
     "Despegue" destacada con margin-block (gotcha conocido).
   - Grupo 2 (bots, LIVIANO):        2 packs que también viven en
     Polen. Grid 2 cols, cards compactas, bg suave con border-block,
     sin tag eyebrow, sin destacada. Caption final con link a Polen.

   La diferencia se construye en 7+ ejes (layout, padding, fondo,
   jerarquía tipográfica, tag eyebrow sí/no, formato de precios,
   ancho de CTA). Ver bloque equivalente en CLAUDE.md.

   5 secciones: hero, cruzados, bots, "por qué un combo",
   CTA final (reusa .db-cta-final del bloque 17).
   ============================================================ */

/* ----- 24.1 Wrapper general ---- */
.db-combos {
  background-color: var(--db-negro);
}

/* ----- 24.2 Hero compacto con patrón de puntos atenuado ----
   Mismo approach que Polen (20.2), Colmena (22.2) y Promo (23.2). */
.db-combos__hero {
  position: relative;
  padding-block: var(--db-space-9) var(--db-space-7);
  text-align: center;
  overflow: hidden;
}
.db-combos__hero-patron {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 75%);
}
.db-combos__hero-contenido {
  position: relative;
  max-width: 820px;
  margin: 0 auto;
}
.db-combos__etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-combos__hero-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: clamp(2rem, 4.5vw, 3rem);
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-4);
}
.db-combos__hero-subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  color: var(--db-blanco-suave);
  margin: 0;
  max-width: 720px;
  margin-inline: auto;
}

/* ============================================================
   24.3 GRUPO 1 — COMBOS CRUZADOS (PESADO)
   Sección bg negro, padding-block grande, header centrado,
   grid 2×2 de cards grandes con "Despegue" destacada.
   ============================================================ */
.db-combos__cruzados {
  padding-block: var(--db-space-9);
}
.db-combos__cruzados-cabecera {
  text-align: center;
  max-width: 720px;
  margin: 0 auto var(--db-space-7);
}
.db-combos__cruzados-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.875rem, 4vw, 2.5rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-combos__cruzados-subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--db-blanco-tenue);
  margin: 0;
}
.db-combos__cruzados-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--db-space-6);
  align-items: stretch;
}
@media (max-width: 1024px) {
  .db-combos__cruzados-grid { grid-template-columns: 1fr; }
}

/* ----- 24.4 Card cruzado base ----
   Padding GENEROSO --db-space-7 (vs --db-space-5 de los bots).
   Es el principal eje de diferenciación visual entre los grupos. */
.db-combos__cruzado {
  display: flex;
  flex-direction: column;
  padding: var(--db-space-7);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-xl);
  transition: border-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
}
@media (hover: hover) {
  .db-combos__cruzado:hover {
    border-color: var(--db-amarillo);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4),
                0 0 32px rgba(255, 184, 0, 0.10);
  }
}

/* ----- 24.5 Card destacada (Despegue) ----
   SIN transform en estado base. Elevación via margin-block.
   Mismo gotcha que bloques 13.5, 20.12, 22.5, 23.5. */
.db-combos__cruzado--destacado {
  border-color: var(--db-amarillo);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5),
              0 0 32px rgba(255, 184, 0, 0.15);
}
@media (min-width: 1025px) {
  .db-combos__cruzado--destacado {
    margin-block: -16px 16px;
  }
}

/* ----- 24.6 Tag eyebrow (mono amarillo) ----
   Presente SOLO en cruzados. Los bots no llevan tag (eje de
   diferenciación de jerarquía). */
.db-combos__cruzado-tag {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-combos__cruzado-tag--destacado { font-weight: 600; }

/* ----- 24.7 Nombre del combo (h3 grande) ---- */
.db-combos__cruzado-nombre {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 1.875rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-4);
}

/* ----- 24.8 "Qué incluye" — label mono amarillo + texto ----
   No es caja con bordes (eso lo hace el bloque de precios); aquí
   el peso visual viene del label tipo eyebrow. */
.db-combos__cruzado-incluye {
  margin-bottom: var(--db-space-5);
}
.db-combos__cruzado-incluye-label {
  display: block;
  font-family: var(--db-font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-2);
}
.db-combos__cruzado-incluye-texto {
  font-family: var(--db-font-cuerpo);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--db-blanco-suave);
  margin: 0;
}

/* ----- 24.9 Bloque de precios con bordes top+bottom ----
   Setup MONTO grande como protagonista (similar a Colmena 22.8),
   recurrente debajo en formato secundario. */
.db-combos__cruzado-precios {
  padding: var(--db-space-4) 0;
  border-block: 1px solid var(--db-gris-medio);
  margin-bottom: var(--db-space-5);
}
.db-combos__cruzado-setup-label {
  display: block;
  font-family: var(--db-font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--db-blanco-tenue);
  margin-bottom: var(--db-space-1);
}
.db-combos__cruzado-setup-valor {
  display: flex;
  align-items: baseline;
  gap: var(--db-space-2);
  flex-wrap: wrap;
  margin-bottom: var(--db-space-2);
}
.db-combos__cruzado-setup-monto {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.75rem, 3vw, 2.125rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.db-combos__cruzado-setup-iva {
  font-family: var(--db-font-cuerpo);
  font-size: 0.85rem;
  color: var(--db-blanco-tenue);
}

/* Línea de recurrente — caption normal */
.db-combos__cruzado-recurrente {
  font-family: var(--db-font-cuerpo);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--db-blanco-suave);
  margin: 0;
}
.db-combos__cruzado-recurrente strong {
  font-weight: 600;
  color: var(--db-blanco);
}

/* Modificador --variable: "Variable desde el mes 4" → mono italic
   para diferenciar visualmente del recurrente con monto fijo. */
.db-combos__cruzado-recurrente--variable {
  font-family: var(--db-font-mono);
  font-size: 0.8rem;
  font-style: italic;
  color: var(--db-blanco-tenue);
}

/* ----- 24.10 CTA del combo cruzado (anclado al fondo, full-width) ---- */
.db-combos__cruzado-cta {
  margin-top: auto;
  align-self: stretch;
  justify-content: center;
}

/* ============================================================
   24.11 GRUPO 2 — COMBOS DE BOTS (LIVIANO)
   bg --db-negro-suave + border-block (banda diferenciada igual
   que campañas de Promo 23.12). Padding-block --db-space-8
   (más comprimido que --db-space-9 de los cruzados).
   ============================================================ */
.db-combos__bots {
  padding-block: var(--db-space-8);
  background-color: var(--db-negro-suave);
  border-block: 1px solid var(--db-gris-medio);
}
.db-combos__bots-cabecera {
  text-align: center;
  max-width: 680px;
  margin: 0 auto var(--db-space-6);
}
.db-combos__bots-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  /* Más chico que el título del grupo 1: 1.5-2rem vs 1.875-2.5rem */
  font-size: clamp(1.5rem, 3vw, 2rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-3);
}
.db-combos__bots-subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--db-blanco-tenue);
  margin: 0;
}
.db-combos__bots-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--db-space-5);
  align-items: stretch;
}
@media (max-width: 768px) {
  .db-combos__bots-grid { grid-template-columns: 1fr; }
}

/* ----- 24.12 Card bot (compacta) ----
   Padding --db-space-5 (24px) vs --db-space-7 (56px) de cruzados.
   Border-radius más chico (--db-radio-lg vs --db-radio-xl).
   Layout más denso, jerarquía tipográfica reducida. */
.db-combos__bot {
  display: flex;
  flex-direction: column;
  padding: var(--db-space-5);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-lg);
  transition: border-color var(--db-trans-base),
              box-shadow var(--db-trans-base);
}
@media (hover: hover) {
  .db-combos__bot:hover {
    border-color: var(--db-amarillo);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3),
                0 0 24px rgba(255, 184, 0, 0.08);
  }
}
.db-combos__bot-nombre {
  font-family: var(--db-font-titulo);
  font-weight: 600;
  /* h3 menor — 1.125-1.25rem vs 1.5-1.875rem del nombre cruzado */
  font-size: clamp(1.125rem, 1.8vw, 1.25rem);
  letter-spacing: -0.01em;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-2);
}
/* Composición → línea plana de texto (no caja, no label eyebrow) */
.db-combos__bot-composicion {
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--db-blanco-suave);
  margin: 0 0 var(--db-space-3);
}

/* Precios INLINE horizontales (setup · mensual) → muy distinto del
   layout vertical-pesado del setup grande de los cruzados. */
.db-combos__bot-precios {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--db-space-2);
  margin-bottom: var(--db-space-4);
  font-family: var(--db-font-cuerpo);
  line-height: 1.4;
}
.db-combos__bot-precio {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
}
.db-combos__bot-precio-label {
  font-family: var(--db-font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--db-blanco-tenue);
}
.db-combos__bot-precio-monto {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: 1rem;
  color: var(--db-blanco);
  font-variant-numeric: tabular-nums;
}
.db-combos__bot-precios-divisor {
  color: var(--db-amarillo);
  font-weight: 700;
}
.db-combos__bot-precios-iva {
  font-size: 0.8rem;
  color: var(--db-blanco-tenue);
}
/* CTA secundario, NO full-width (otra diferencia con cruzados) */
.db-combos__bot-cta {
  margin-top: auto;
  align-self: flex-start;
}

/* Caption final con link a Paquetes de Polen */
.db-combos__bots-link {
  text-align: center;
  max-width: 640px;
  margin: var(--db-space-6) auto 0;
  font-family: var(--db-font-cuerpo);
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--db-blanco-tenue);
}
.db-combos__bots-link a {
  color: var(--db-amarillo);
  text-decoration: none;
  font-weight: 500;
  transition: color var(--db-trans-base);
}
.db-combos__bots-link a:hover {
  color: var(--db-amarillo-suave);
}

/* ============================================================
   24.13 POR QUÉ UN COMBO — banda breve, 3 puntos horizontales
   Layout horizontal icono + texto (mismo approach que la banda
   "Cómo trabajamos" de Colmena, bloque 22.14). bg vuelve a negro.
   ============================================================ */
.db-combos__porque {
  padding-block: var(--db-space-9);
}
.db-combos__porque-cabecera {
  text-align: center;
  max-width: 680px;
  margin: 0 auto var(--db-space-6);
}
.db-combos__porque-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.5rem, 3vw, 2rem);
  letter-spacing: -0.02em;
  color: var(--db-blanco);
  margin: 0;
}
.db-combos__porque-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--db-space-5);
  align-items: center;
}
@media (max-width: 768px) {
  .db-combos__porque-grid { grid-template-columns: 1fr; gap: var(--db-space-4); }
}
.db-combos__porque-item {
  display: flex;
  align-items: center;
  gap: var(--db-space-3);
}
.db-combos__porque-icono {
  display: inline-flex;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  color: var(--db-amarillo);
}
.db-combos__porque-icono svg {
  display: block;
  width: 100%;
  height: 100%;
}
.db-combos__porque-texto {
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--db-blanco-suave);
  margin: 0;
}

/* ============================================================
   24.14 STAGGER de [data-db-animate] específico de la página
   Aprovecha el sistema genérico del bloque 7. Cada sección tiene
   su propio delay para que el flujo de entrada sea coherente.
   ============================================================ */

/* Hero: etiqueta → título → subtítulo */
.db-combos__hero .db-combos__etiqueta.db-visible       { animation-delay: 0ms; }
.db-combos__hero .db-combos__hero-titulo.db-visible    { animation-delay: 100ms; }
.db-combos__hero .db-combos__hero-subtitulo.db-visible { animation-delay: 200ms; }

/* Cruzados: cabecera primero, luego cards en stagger 0/100/200/300 */
.db-combos__cruzados-cabecera.db-visible { animation-delay: 0ms; }
.db-combos__cruzados-grid .db-combos__cruzado.db-visible:nth-child(1) { animation-delay: 0ms; }
.db-combos__cruzados-grid .db-combos__cruzado.db-visible:nth-child(2) { animation-delay: 100ms; }
.db-combos__cruzados-grid .db-combos__cruzado.db-visible:nth-child(3) { animation-delay: 200ms; }
.db-combos__cruzados-grid .db-combos__cruzado.db-visible:nth-child(4) { animation-delay: 300ms; }

/* Bots: cabecera, cards en paralelo 0/100, caption al final */
.db-combos__bots-cabecera.db-visible { animation-delay: 0ms; }
.db-combos__bots-grid .db-combos__bot.db-visible:nth-child(1) { animation-delay: 0ms; }
.db-combos__bots-grid .db-combos__bot.db-visible:nth-child(2) { animation-delay: 100ms; }
.db-combos__bots-link.db-visible { animation-delay: 200ms; }

/* Por qué: cabecera, items 0/100/200 */
.db-combos__porque-cabecera.db-visible { animation-delay: 0ms; }
.db-combos__porque-grid .db-combos__porque-item.db-visible:nth-child(1) { animation-delay: 0ms; }
.db-combos__porque-grid .db-combos__porque-item.db-visible:nth-child(2) { animation-delay: 100ms; }
.db-combos__porque-grid .db-combos__porque-item.db-visible:nth-child(3) { animation-delay: 200ms; }


/* ============================================================
   25. PÁGINA NOSOTROS (Etapa D, sexta página interna)
   page-nosotros.php → <main class="db-nosotros">.

   Página editorial/narrativa, distinta a las de catálogo:
     - Tipografía cuerpo más grande (1.0625rem) y line-height 1.75.
     - Bloques de texto con max-width 720px (~64ch).
     - Drop cap amarillo en el primer párrafo de la historia.
     - Pull quote con comillas decorativas en la misión.

   6 secciones: hero, historia, misión (pull quote), valores (2×2),
   cómo trabajamos (banda 3 puntos), CTA final (reusa bloque 17).

   Ritmo de fondos: negro (hero+historia) → suave (misión) → negro
   (valores) → suave (banda cómo) → amarillo (CTA final).
   ============================================================ */

/* ----- 25.1 Wrapper general ---- */
.db-nosotros {
  background-color: var(--db-negro);
}

/* ----- 25.2 Hero compacto con patrón de puntos atenuado ----
   Mismo patrón que Polen (20.2), Colmena (22.2), Promo (23.2)
   y Combos (24.2). */
.db-nosotros__hero {
  position: relative;
  padding-block: var(--db-space-9) var(--db-space-7);
  text-align: center;
  overflow: hidden;
}
.db-nosotros__hero-patron {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 75%);
}
.db-nosotros__hero-contenido {
  position: relative;
  max-width: 820px;
  margin: 0 auto;
}
.db-nosotros__etiqueta {
  display: inline-block;
  font-family: var(--db-font-mono);
  font-weight: 500;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-nosotros__hero-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: clamp(2rem, 4.5vw, 3rem);
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-4);
}
.db-nosotros__hero-subtitulo {
  font-family: var(--db-font-cuerpo);
  font-size: clamp(1rem, 1.4vw, 1.125rem);
  line-height: 1.6;
  color: var(--db-blanco-suave);
  margin: 0;
  max-width: 720px;
  margin-inline: auto;
}

/* ----- 25.3 Título de sección (h2) ----
   Centrado, ancho controlado, reusable entre secciones. */
.db-nosotros__seccion-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: clamp(1.875rem, 4vw, 2.5rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--db-blanco);
  text-align: center;
  max-width: 720px;
  margin: 0 auto var(--db-space-7);
}

/* ============================================================
   25.4 HISTORIA / ORIGEN
   3 párrafos en prosa, max-width 720px (~64ch), drop cap amarillo
   en el primer párrafo.
   ============================================================ */
.db-nosotros__historia {
  padding-block: var(--db-space-9);
}
.db-nosotros__historia-texto {
  max-width: 720px;
  margin: 0 auto;
}
.db-nosotros__historia-texto > p {
  font-family: var(--db-font-cuerpo);
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--db-blanco-suave);
  margin: 0 0 var(--db-space-4);
}
.db-nosotros__historia-texto > p:last-child {
  margin-bottom: 0;
}

/* Drop cap en el primer párrafo de la historia ----
   ::first-letter es un pseudo-elemento estable: agarra solo la
   inicial visible, ignora signos de puntuación de apertura. */
.db-nosotros__historia-texto > p:first-child::first-letter {
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: 3.75rem;
  line-height: 0.9;
  color: var(--db-amarillo);
  float: left;
  padding-right: 0.5rem;
  padding-top: 0.4rem;
  /* Compensación óptica: la "D" es ancha, un pelín de margen
     izquierdo negativo la alinea al borde del bloque de texto. */
  margin-left: -2px;
}

/* ============================================================
   25.5 MISIÓN — pull quote con comillas decorativas + apoyo
   Bg --db-negro-suave para diferenciar de la sección anterior.
   ============================================================ */
.db-nosotros__mision {
  padding-block: var(--db-space-9);
  background-color: var(--db-negro-suave);
}

.db-nosotros__mision-cita {
  position: relative;
  max-width: 840px;
  margin: 0 auto var(--db-space-5);
  padding: var(--db-space-6) var(--db-space-5) var(--db-space-4);
  text-align: center;
}

/* Comilla decorativa grande arriba-izquierda — "" U+201C.
   Posicionada absolute, amarillo opacidad baja, fuente título
   en weight 800 para que sea bold y "tipográfica". */
.db-nosotros__mision-cita::before {
  content: '\201C';
  position: absolute;
  top: -0.3em;
  left: -0.2em;
  font-family: var(--db-font-titulo);
  font-weight: 800;
  font-size: 6rem;
  line-height: 1;
  color: var(--db-amarillo);
  opacity: 0.25;
  pointer-events: none;
}

.db-nosotros__mision-cita p {
  position: relative;
  font-family: var(--db-font-titulo);
  font-weight: 600;
  font-size: clamp(1.25rem, 2.4vw, 1.75rem);
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--db-blanco);
  margin: 0;
}

/* Párrafo de apoyo debajo de la cita — más chico, tenue, centrado */
.db-nosotros__mision-apoyo {
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
  font-family: var(--db-font-cuerpo);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--db-blanco-tenue);
}

/* En mobile las comillas decorativas son más chicas para no chocar */
@media (max-width: 640px) {
  .db-nosotros__mision-cita::before {
    font-size: 4rem;
    top: -0.2em;
    left: -0.1em;
  }
  .db-nosotros__mision-cita {
    padding-left: var(--db-space-3);
    padding-right: var(--db-space-3);
  }
}

/* ============================================================
   25.6 VALORES — grid 2×2 de 4 cards (SVG + título + descripción)
   Bg --db-negro (vuelve al negro tras la cita).
   ============================================================ */
.db-nosotros__valores {
  padding-block: var(--db-space-9);
}
.db-nosotros__valores-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--db-space-5);
  max-width: 960px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .db-nosotros__valores-grid { grid-template-columns: 1fr; }
}

.db-nosotros__valor {
  padding: var(--db-space-6);
  background-color: var(--db-gris-oscuro);
  border: 1px solid var(--db-gris-medio);
  border-radius: var(--db-radio-xl);
  transition: border-color var(--db-trans-base),
              box-shadow var(--db-trans-base),
              transform var(--db-trans-base);
}
@media (hover: hover) {
  .db-nosotros__valor:hover {
    border-color: var(--db-amarillo);
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4),
                0 0 32px rgba(255, 184, 0, 0.10);
  }
  /* "Wink" sutil del icono al hover de la card (mismo gesto que
     el bloque 15 "Por qué Digital Bee" del home) */
  .db-nosotros__valor:hover .db-nosotros__valor-icono svg {
    transform: scale(1.1) rotate(-3deg);
  }
}

.db-nosotros__valor-icono {
  display: inline-flex;
  width: 56px;
  height: 56px;
  color: var(--db-amarillo);
  margin-bottom: var(--db-space-3);
}
.db-nosotros__valor-icono svg {
  display: block;
  width: 100%;
  height: 100%;
  transition: transform var(--db-trans-base);
}

.db-nosotros__valor-titulo {
  font-family: var(--db-font-titulo);
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: -0.01em;
  color: var(--db-blanco);
  margin: 0 0 var(--db-space-2);
}
.db-nosotros__valor-desc {
  font-family: var(--db-font-cuerpo);
  font-size: 0.975rem;
  line-height: 1.65;
  color: var(--db-blanco-suave);
  margin: 0;
}

/* ============================================================
   25.7 CÓMO TRABAJAMOS — banda 3 puntos horizontales
   Patrón clonado de .db-colmena__como (bloque 22.14): bg suave,
   border-block, grid 3 cols, icono 28px + texto.
   ============================================================ */
.db-nosotros__como {
  padding-block: var(--db-space-7);
  border-block: 1px solid var(--db-gris-medio);
  background-color: var(--db-negro-suave);
}
.db-nosotros__como-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--db-space-5);
  align-items: center;
}
@media (max-width: 768px) {
  .db-nosotros__como-grid { grid-template-columns: 1fr; gap: var(--db-space-4); }
}
.db-nosotros__como-item {
  display: flex;
  align-items: center;
  gap: var(--db-space-3);
}
.db-nosotros__como-icono {
  display: inline-flex;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  color: var(--db-amarillo);
}
.db-nosotros__como-icono svg {
  display: block;
  width: 100%;
  height: 100%;
}
.db-nosotros__como-texto {
  font-family: var(--db-font-cuerpo);
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--db-blanco-suave);
  margin: 0;
}

/* ============================================================
   25.8 STAGGER de [data-db-animate] específico de la página
   ============================================================ */

/* Hero: etiqueta → título → subtítulo */
.db-nosotros__hero .db-nosotros__etiqueta.db-visible       { animation-delay: 0ms; }
.db-nosotros__hero .db-nosotros__hero-titulo.db-visible    { animation-delay: 100ms; }
.db-nosotros__hero .db-nosotros__hero-subtitulo.db-visible { animation-delay: 200ms; }

/* Historia: h2 + 3 párrafos en cascada */
.db-nosotros__historia .db-nosotros__seccion-titulo.db-visible { animation-delay: 0ms; }
.db-nosotros__historia-texto > p.db-visible:nth-child(1) { animation-delay: 0ms; }
.db-nosotros__historia-texto > p.db-visible:nth-child(2) { animation-delay: 100ms; }
.db-nosotros__historia-texto > p.db-visible:nth-child(3) { animation-delay: 200ms; }

/* Misión: h2, cita, apoyo */
.db-nosotros__mision .db-nosotros__seccion-titulo.db-visible { animation-delay: 0ms; }
.db-nosotros__mision-cita.db-visible  { animation-delay: 100ms; }
.db-nosotros__mision-apoyo.db-visible { animation-delay: 200ms; }

/* Valores: h2, 4 cards en stagger 0/100/200/300 */
.db-nosotros__valores .db-nosotros__seccion-titulo.db-visible { animation-delay: 0ms; }
.db-nosotros__valores-grid .db-nosotros__valor.db-visible:nth-child(1) { animation-delay: 0ms; }
.db-nosotros__valores-grid .db-nosotros__valor.db-visible:nth-child(2) { animation-delay: 100ms; }
.db-nosotros__valores-grid .db-nosotros__valor.db-visible:nth-child(3) { animation-delay: 200ms; }
.db-nosotros__valores-grid .db-nosotros__valor.db-visible:nth-child(4) { animation-delay: 300ms; }

/* Cómo: 3 puntos en stagger 0/100/200 */
.db-nosotros__como-grid .db-nosotros__como-item.db-visible:nth-child(1) { animation-delay: 0ms; }
.db-nosotros__como-grid .db-nosotros__como-item.db-visible:nth-child(2) { animation-delay: 100ms; }
.db-nosotros__como-grid .db-nosotros__como-item.db-visible:nth-child(3) { animation-delay: 200ms; }


/* ============================================================
   25. OVERRIDE TEMA CLARO — SOLO PÁGINA PUBLICIDAD (.db-promo)
   ============================================================
   Piloto del rediseño claro/oscuro. Cuerpo blanco con acentos
   naranja (#FF8A00), header/footer negros sin tocar.

   Reversible: borrar este bloque completo y la página vuelve
   al tema oscuro original. No afecta ninguna otra página.

   Acento de marca: amarillo (#FFB800) se reserva para zonas
   negras; naranja (#FF8A00) es el acento sobre blanco.
   ============================================================ */

/* ----- 25.1 Variables locales del tema claro ----- */
.db-promo {
  --promo-fondo:        #FFFFFF;  /* fondo cuerpo */
  --promo-fondo-suave:  #F6F6F3;  /* zonas diferenciadas (campañas) */
  --promo-tarjeta:      #FFFFFF;  /* fondo de tarjetas */
  --promo-borde:        #E2E2DD;  /* borde sutil tarjetas */
  --promo-acento:       #FF8A00;  /* naranja, acento principal */
  --promo-texto:        #0A0A0F;  /* títulos oscuros */
  --promo-texto-cuerpo: #444441;  /* cuerpo */
  --promo-texto-tenue:  #6B7280;  /* secundario */
}

/* ----- 25.2 Wrapper ----- */
.db-promo {
  background-color: var(--promo-fondo);
}

/* ----- 25.3 Hero ----- */
.db-promo__hero-patron {
  /* Puntos oscuros tenues en vez de blancos (sobre blanco) */
  background-image: radial-gradient(rgba(10, 10, 15, 0.04) 1px, transparent 1px);
}
.db-promo__etiqueta { color: var(--promo-acento); }
.db-promo__hero-titulo { color: var(--promo-texto); }
.db-promo__hero-subtitulo { color: var(--promo-texto-tenue); }

/* ----- 25.4 Tarjetas de plan ----- */
.db-promo__plan {
  background-color: var(--promo-tarjeta);
  border-color: var(--promo-borde);
}
@media (hover: hover) {
  .db-promo__plan:hover {
    border-color: var(--promo-acento);
    box-shadow: 0 16px 40px rgba(10, 10, 15, 0.10),
                0 0 32px rgba(255, 138, 0, 0.08);
  }
}

/* Plan destacado (Floración): borde naranja */
.db-promo__plan--destacado {
  border-color: var(--promo-acento);
  box-shadow: 0 16px 40px rgba(10, 10, 15, 0.12),
              0 0 32px rgba(255, 138, 0, 0.12);
}

/* ----- 25.5 Textos dentro de tarjetas ----- */
.db-promo__plan-tag { color: var(--promo-acento); }
.db-promo__plan-nombre { color: var(--promo-texto); }
.db-promo__precios { border-block-color: var(--promo-borde); }
.db-promo__precio-label { color: var(--promo-texto-tenue); }
.db-promo__precio-monto { color: var(--promo-texto); }
.db-promo__precio-iva { color: var(--promo-texto-tenue); }
.db-promo__feature { color: var(--promo-texto-cuerpo); }

/* Checkmark: círculo naranja, tilde blanca */
.db-promo__feature::before {
  background-color: var(--promo-acento);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23FFFFFF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 8 7 12 13 4'/%3E%3C/svg%3E");
}

.db-promo__nota-compromiso { color: var(--promo-texto-tenue); }

/* ----- 25.6 Botones dentro de la página promo -----
   El secundario global es outline amarillo (invisible sobre
   blanco). Lo reescribimos a outline naranja. El primario pasa
   a relleno naranja con texto blanco. */
.db-promo .db-btn-secundario {
  color: var(--promo-acento);
  border-color: var(--promo-acento);
}
.db-promo .db-btn-secundario:hover {
  background: var(--promo-acento);
  color: #FFFFFF;
  box-shadow: 0 8px 20px rgba(255, 138, 0, 0.25);
}
.db-promo .db-btn-primario {
  background: var(--promo-acento);
  color: #FFFFFF;
}
.db-promo .db-btn-primario:hover {
  background: #E67C00;
  color: #FFFFFF;
  box-shadow: 0 8px 20px rgba(255, 138, 0, 0.30);
}

/* ----- 25.7 Banda campañas puntuales (zona diferenciada) ----- */
.db-promo__campanas {
  background-color: var(--promo-fondo-suave);
  border-block-color: var(--promo-borde);
}
.db-promo__campanas-titulo { color: var(--promo-texto); }
.db-promo__campanas-subtitulo { color: var(--promo-texto-tenue); }
.db-promo__campana {
  background-color: var(--promo-tarjeta);
  border-color: var(--promo-borde);
}
@media (hover: hover) {
  .db-promo__campana:hover {
    border-color: var(--promo-acento);
    box-shadow: 0 12px 28px rgba(10, 10, 15, 0.08),
                0 0 24px rgba(255, 138, 0, 0.06);
  }
}
.db-promo__campana-nombre { color: var(--promo-texto); }
.db-promo__campana-desc { color: var(--promo-texto-cuerpo); }

/* ----- 25.8 Sección presupuesto ----- */
.db-promo__presupuesto-titulo { color: var(--promo-texto); }
.db-promo__presupuesto-callout {
  background-color: var(--promo-fondo-suave);
  border-left-color: var(--promo-acento);
}
.db-promo__presupuesto-callout p { color: var(--promo-texto-cuerpo); }
.db-promo__presupuesto-callout strong { color: var(--promo-texto); }
.db-promo__modalidad {
  background-color: var(--promo-tarjeta);
  border-color: var(--promo-borde);
}
.db-promo__modalidad-etiqueta { color: var(--promo-acento); }
.db-promo__modalidad-titulo { color: var(--promo-texto); }
.db-promo__modalidad-desc { color: var(--promo-texto-cuerpo); }
.db-promo__presupuesto-nota { color: var(--promo-texto-tenue); }

/* ----- 25.9 Precio monto en campañas (hereda monto global) ----- */
.db-promo__campana-precio .db-promo__precio-monto { color: var(--promo-texto); }


/* ============================================================
   26. OVERRIDE TEMA CLARO — RESTO DE PAGINAS
   ============================================================
   Replica el patron validado en .db-promo (bloque 25) a:
   Colmena 0, Polinizacion, Combos, Contacto, Nosotros y home.
   Footer y CTA final NO se tocan (siguen negros con amarillo).
   Reversible: borrar bloques 25 y 26 y todo vuelve a oscuro.
   ============================================================ */

/* ----- 26.1 Variables de tema claro (mismas que promo) ----- */
.db-colmena,
.db-polen,
.db-combos,
.db-contacto,
.db-nosotros,
.db-resolvemos,
.db-bloques,
.db-caso,
.db-porque,
.db-rubros {
  --t-fondo:#FFFFFF; --t-fondo-suave:#F6F6F3; --t-tarjeta:#FFFFFF;
  --t-borde:#E2E2DD; --t-acento:#FF8A00; --t-titulo:#0A0A0F;
  --t-cuerpo:#444441; --t-tenue:#6B7280;
}

/* ----- 26.2 Fondos oscuros -> claros ----- */
.db-resolvemos,
.db-resolvemos__card,
.db-bloques,
.db-bloques__card,
.db-caso,
.db-caso__metrica,
.db-porque,
.db-porque__card,
.db-rubros,
.db-rubros__card,
.db-contacto,
.db-contacto__form-card,
.db-contacto .wpcf7-form select,
.db-polen,
.db-polen__como,
.db-polen__bot,
.db-polen__combos,
.db-polen__combo,
.db-colmena,
.db-colmena__paquete,
.db-colmena__mantencion,
.db-colmena__como,
.db-combos,
.db-combos__cruzado,
.db-combos__bots,
.db-combos__bot,
.db-nosotros,
.db-nosotros__mision,
.db-nosotros__valor,
.db-nosotros__como {
  background-color: var(--t-fondo);
}

/* ----- 26.3 Titulos (texto blanco -> oscuro) ----- */
.db-resolvemos__titulo,
.db-resolvemos__texto,
.db-bloques__titulo-seccion,
.db-bloques__titulo,
.db-caso__titulo,
.db-porque__titulo,
.db-porque__card-titulo,
.db-rubros__titulo,
.db-rubros__nombre,
.db-contacto__titulo,
.db-contacto__info-titulo,
.db-contacto__link,
.db-contacto__form-titulo,
.db-contacto .wpcf7-form label,
.db-polen__hero-titulo,
.db-polen__bot-nombre,
.db-polen__precio-monto,
.db-polen__combos-titulo,
.db-polen__combo-nombre,
.db-polen__garantias-titulo,
.db-polen__garantia-titulo,
.db-colmena__hero-titulo,
.db-colmena__paquete-nombre,
.db-colmena__precio-monto,
.db-colmena__renovacion strong,
.db-colmena__plan-nombre,
.db-combos__hero-titulo,
.db-combos__cruzados-titulo,
.db-combos__cruzado-nombre,
.db-combos__cruzado-setup-monto,
.db-combos__cruzado-recurrente strong,
.db-combos__bots-titulo,
.db-combos__bot-nombre,
.db-combos__bot-precio-monto,
.db-combos__porque-titulo,
.db-nosotros__hero-titulo,
.db-nosotros__seccion-titulo,
.db-nosotros__mision-cita p,
.db-nosotros__valor-titulo {
  color: var(--t-titulo);
}

/* ----- 26.4 Cuerpo (blanco-suave -> gris oscuro) ----- */
.db-bloques__descripcion,
.db-bloques__item,
.db-caso__parrafo p,
.db-caso__metrica-label,
.db-porque__card-descripcion,
.db-contacto__subtitulo,
.db-contacto__item,
.db-contacto__confianza-item,
.db-polen__hero-subtitulo,
.db-polen__como-texto,
.db-polen__bot-desc,
.db-polen__feature,
.db-polen__addon-nombre,
.db-polen__combo-incluye,
.db-colmena__hero-subtitulo,
.db-colmena__renovacion,
.db-colmena__feature,
.db-colmena__plan-incluye,
.db-colmena__addon-nombre,
.db-colmena__como-texto,
.db-combos__hero-subtitulo,
.db-combos__cruzado-incluye-texto,
.db-combos__cruzado-recurrente,
.db-combos__bot-composicion,
.db-combos__porque-texto,
.db-nosotros__hero-subtitulo,
.db-nosotros__historia-texto > p,
.db-nosotros__valor-desc,
.db-nosotros__como-texto {
  color: var(--t-cuerpo);
}

/* ----- 26.5 Texto tenue/secundario ----- */
.db-resolvemos__subtitulo,
.db-bloques__subtitulo-seccion,
.db-bloques__subtitulo,
.db-caso__subtitulo,
.db-porque__subtitulo,
.db-rubros__subtitulo,
.db-rubros__cierre-texto,
.db-polen__precio-label,
.db-polen__precio-iva,
.db-polen__combos-subtitulo,
.db-polen__garantia-desc,
.db-colmena__requiere,
.db-colmena__precio-label,
.db-colmena__precio-iva,
.db-colmena__entrega,
.db-colmena__mantencion-lista li,
.db-colmena__mantencion-nota,
.db-colmena__plan-iva,
.db-combos__cruzados-subtitulo,
.db-combos__cruzado-setup-label,
.db-combos__cruzado-setup-iva,
.db-combos__cruzado-recurrente--variable,
.db-combos__bots-subtitulo,
.db-combos__bot-precio-label,
.db-combos__bot-precios-iva,
.db-combos__bots-link,
.db-nosotros__mision-apoyo {
  color: var(--t-tenue);
}

/* ----- 26.6 Acentos amarillo -> naranja ----- */
.db-resolvemos__numero,
.db-bloques__etiqueta,
.db-caso__etiqueta,
.db-caso__parrafo-etiqueta,
.db-caso__metrica-numero,
.db-porque__etiqueta,
.db-porque__icono,
.db-rubros__etiqueta,
.db-rubros__icono,
.db-rubros__cierre-link,
.db-contacto__etiqueta,
.db-contacto__icono,
.db-contacto__link:hover,
.db-contacto .wpcf7 form.sent .wpcf7-response-output,
.db-polen__etiqueta,
.db-polen__como-icono,
.db-polen__badge,
.db-polen__addon-precio,
.db-polen__combo-etiqueta,
.db-polen__garantia-icono,
.db-colmena__etiqueta,
.db-colmena__tag,
.db-colmena__mantencion-label,
.db-colmena__mantencion-lista li::before,
.db-colmena__planes-label,
.db-colmena__plan-precio,
.db-colmena__addon-precio,
.db-colmena__como-icono,
.db-combos__etiqueta,
.db-combos__cruzado-tag,
.db-combos__cruzado-incluye-label,
.db-combos__bot-precios-divisor,
.db-combos__bots-link a,
.db-combos__porque-icono,
.db-nosotros__etiqueta,
.db-nosotros__historia-texto > p:first-child::first-letter,
.db-nosotros__mision-cita::before,
.db-nosotros__valor-icono,
.db-nosotros__como-icono {
  color: var(--t-acento);
}


/* ----- 26.7 Bordes amarillos de tarjetas destacadas -> naranja ----- */
.db-bloques__card--destacada,
.db-polen__combo--destacado,
.db-colmena__paquete--destacado,
.db-combos__cruzado--destacado {
  border-color: var(--t-acento) !important;
}

/* ----- 26.8 Bordes grises -> borde claro (precios, divisores) ----- */
.db-colmena__precios,
.db-polen__precios,
.db-combos__cruzado-precios,
.db-colmena__paquete,
.db-polen__combo,
.db-combos__cruzado,
.db-colmena__mantencion,
.db-polen__bot,
.db-combos__bot,
.db-porque__card,
.db-rubros__card,
.db-bloques__card,
.db-resolvemos__card,
.db-nosotros__valor,
.db-contacto__form-card {
  border-color: var(--t-borde);
}

/* ----- 26.9 Checkmarks: circulo naranja, tilde blanca ----- */
.db-polen__feature::before,
.db-colmena__feature::before,
.db-colmena__mantencion-lista li::before {
  background-color: var(--t-acento);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23FFFFFF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 8 7 12 13 4'/%3E%3C/svg%3E");
}

/* ----- 26.10 Patrones de puntos de hero -> puntos oscuros ----- */
.db-polen__hero-patron,
.db-colmena__hero-patron,
.db-combos__hero-patron,
.db-nosotros__hero-patron {
  background-image: radial-gradient(rgba(10, 10, 15, 0.04) 1px, transparent 1px);
}

/* ----- 26.11 Botones secundarios (outline amarillo -> naranja) ----- */
.db-colmena .db-btn-secundario,
.db-polen .db-btn-secundario,
.db-combos .db-btn-secundario,
.db-contacto .db-btn-secundario,
.db-nosotros .db-btn-secundario {
  color: var(--t-acento);
  border-color: var(--t-acento);
}
.db-colmena .db-btn-secundario:hover,
.db-polen .db-btn-secundario:hover,
.db-combos .db-btn-secundario:hover,
.db-contacto .db-btn-secundario:hover,
.db-nosotros .db-btn-secundario:hover {
  background: var(--t-acento);
  color: #FFFFFF;
  box-shadow: 0 8px 20px rgba(255, 138, 0, 0.25);
}
.db-colmena .db-btn-primario,
.db-polen .db-btn-primario,
.db-combos .db-btn-primario,
.db-contacto .db-btn-primario,
.db-nosotros .db-btn-primario {
  background: var(--t-acento);
  color: #FFFFFF;
}
.db-colmena .db-btn-primario:hover,
.db-polen .db-btn-primario:hover,
.db-combos .db-btn-primario:hover,
.db-contacto .db-btn-primario:hover,
.db-nosotros .db-btn-primario:hover {
  background: #E67C00;
  color: #FFFFFF;
}

/* ----- 26.12 Zonas "como trabajamos" que vuelven a fondo suave ----- */
.db-polen__como,
.db-colmena__como,
.db-nosotros__como,
.db-nosotros__mision {
  background-color: var(--t-fondo-suave);
}

/* ----- 26.13 Inputs del formulario de contacto (CF7) ----- */
.db-contacto .wpcf7-form select,
.db-contacto .wpcf7-form input,
.db-contacto .wpcf7-form textarea {
  background-color: #FFFFFF;
  color: var(--t-titulo);
  border-color: var(--t-borde);
}


/* ============================================================
   27. AJUSTES POST-REVISION EN VIVO (tema claro)
   ============================================================
   Correcciones tras revisar el sitio renderizado:
   - Acordeon "Ver complementos": era texto claro sobre blanco.
   - Numeros 01-04 del home: opacity 0.18 los hacia invisibles.
   - Tarjetas: fondo gris sutil en vez de blanco puro.
   Reversible junto con bloques 25 y 26.
   ============================================================ */

/* ----- 27.1 Acordeon en paginas claras -----
   El toggle global es texto claro + bordes gris-oscuro (para fondo
   negro). Sobre blanco hay que oscurecer texto y aclarar bordes.
   Scoped a las paginas que pasaron a claro. */
.db-colmena .db-accordion__toggle,
.db-polen .db-accordion__toggle,
.db-combos .db-accordion__toggle {
  color: #0A0A0F;
  border-top-color: #E2E2DD;
  border-bottom-color: #E2E2DD;
}
.db-colmena .db-accordion__toggle:hover,
.db-polen .db-accordion__toggle:hover,
.db-combos .db-accordion__toggle:hover {
  color: #FF8A00;
  border-color: #FF8A00;
}
.db-colmena .db-accordion__chevron,
.db-polen .db-accordion__chevron,
.db-combos .db-accordion__chevron {
  color: #FF8A00;
}

/* ----- 27.2 Numeros 01-04 del home (db-resolvemos__numero) -----
   Sobre negro: amarillo a 18% = ghost elegante. Sobre blanco
   desaparece. Subimos opacidad y pasamos a naranja para que
   se lean como numero de orden, sin robar protagonismo al texto. */
.db-resolvemos__numero {
  color: #FF8A00;
  opacity: 0.85;
}
.db-resolvemos__card:hover .db-resolvemos__numero {
  opacity: 1;
}

/* ----- 27.3 Tarjetas con fondo gris sutil -----
   #F4F4F1: gris calido apenas perceptible. Da presencia a la
   tarjeta sobre el fondo blanco de la pagina. Las DESTACADAS
   quedan en blanco para resaltar por contraste invertido. */
.db-colmena__paquete,
.db-polen__combo,
.db-polen__bot,
.db-combos__cruzado,
.db-combos__bot,
.db-promo__plan,
.db-promo__campana,
.db-promo__modalidad,
.db-resolvemos__card,
.db-bloques__card,
.db-porque__card,
.db-rubros__card,
.db-nosotros__valor,
.db-contacto__form-card {
  background-color: #F4F4F1;
}

/* Destacadas: blancas para contraste sobre el resto gris */
.db-colmena__paquete--destacado,
.db-polen__combo--destacado,
.db-combos__cruzado--destacado,
.db-promo__plan--destacado,
.db-bloques__card--destacada {
  background-color: #FFFFFF;
}


/* ============================================================
   28. AJUSTE GRID COLMENA — 3 PLANES (antes 4)
   ============================================================
   El grid original era repeat(2,1fr) para 4 tarjetas en 2x2.
   Ahora son 3 planes: pasamos a 3 columnas en una fila
   (Esencial | Pro destacada | Catálogo). En tablet baja a 1
   columna apilada. Reversible: borrar este bloque.
   ============================================================ */
.db-colmena__paquetes-grid {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 1024px) {
  .db-colmena__paquetes-grid {
    grid-template-columns: 1fr;
    max-width: 460px;
    margin-inline: auto;
  }
}


/* ============================================================
   29. SECCIÓN PROYECTOS DESTACADOS (página Creación de webs)
   ============================================================
   Prueba social: casos web reales (ThinkCar, Construmuebles).
   Tema claro coherente con bloques 25-28. Header oscuro por
   tarjeta + cuerpo claro. Reversible: borrar este bloque.
   ============================================================ */
.db-proyectos {
  background-color: #FFFFFF;
  padding-block: var(--db-space-9, 5rem);
}
.db-proyectos__cabecera {
  text-align: center;
  max-width: 640px;
  margin: 0 auto var(--db-space-7, 3rem);
}
.db-proyectos__etiqueta {
  font-family: var(--db-font-mono, monospace);
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #FF8A00;
}
.db-proyectos__titulo {
  font-family: var(--db-font-titulo, sans-serif);
  font-size: clamp(1.5rem, 4vw, 2rem);
  color: #0A0A0F;
  margin: 0.5rem 0;
  font-weight: 700;
  line-height: 1.2;
}
.db-proyectos__subtitulo {
  font-size: 1rem;
  color: #6B7280;
  line-height: 1.6;
  margin: 0;
}
.db-proyectos__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--db-space-6, 1.5rem);
}
@media (max-width: 768px) {
  .db-proyectos__grid {
    grid-template-columns: 1fr;
    max-width: 480px;
    margin-inline: auto;
  }
}
.db-proyectos__card {
  background-color: #F4F4F1;
  border: 1px solid #E2E2DD;
  border-radius: var(--db-radio-lg, 16px);
  overflow: hidden;
}
.db-proyectos__card-header {
  background-color: #0A0A0F;
  padding: 0.95rem 1.15rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.db-proyectos__card-nombre {
  font-family: var(--db-font-titulo, sans-serif);
  color: #FAFAF7;
  font-weight: 700;
  font-size: 1rem;
  margin: 0;
}
.db-proyectos__card-rubro {
  font-family: var(--db-font-mono, monospace);
  font-size: 0.625rem;
  color: #FFB800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-align: right;
}
.db-proyectos__card-cuerpo {
  padding: 1.15rem;
}
.db-proyectos__bloque {
  margin-bottom: 0.9rem;
}
.db-proyectos__bloque:last-child {
  margin-bottom: 0;
}
.db-proyectos__bloque-etiqueta {
  display: block;
  font-family: var(--db-font-mono, monospace);
  font-size: 0.65rem;
  color: #FF8A00;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.35rem;
}
.db-proyectos__bloque-texto {
  font-size: 0.85rem;
  color: #444441;
  line-height: 1.6;
  margin: 0;
}
.db-proyectos__nota {
  margin-top: var(--db-space-6, 1.5rem);
  padding: 0.9rem 1.15rem;
  background-color: #F6F6F3;
  border-left: 4px solid #FF8A00;
  border-radius: 0 10px 10px 0;
}
.db-proyectos__nota p {
  margin: 0;
  font-size: 0.85rem;
  color: #444441;
  line-height: 1.6;
}
.db-proyectos__nota strong {
  color: #0A0A0F;
}
