﻿/* ================================================================
   DRASANVI DESIGN KIT â€” Astra + Elementor
   v1.0 Â· Marzo 2026
   Archivo: wp-content/themes/drasanvi/drasanvi-kit.css

   Estructura:
   01. Google Fonts
   02. Drasanvi design tokens  (--dsv-*)
   03. Astra global variables  (--ast-*)
   04. Elementor global variables  (--e-global-*)
   05. Base â€” body & typography
   06. Astra â€” header & site identity
   07. Astra â€” navegaciÃ³n principal
   08. Astra â€” botones & CTA
   09. Astra â€” breadcrumb
   10. Astra â€” footer
   11. Elementor â€” secciones & contenedores
   12. Elementor â€” heading widget
   13. Elementor â€” button widget
   14. Elementor â€” nav-menu widget
   15. Elementor â€” text-editor & lista
   16. Elementor â€” divider & icon
   17. Elementor â€” form widget
   18. Drasanvi UI components (tag, badge, alert, card)
   19. Responsive
================================================================ */


/* â”€â”€â”€ 01. GOOGLE FONTS â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@import url('https://fonts.googleapis.com/css2?family=Zilla+Slab:wght@400;600&family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');


/* â”€â”€â”€ 02. DRASANVI DESIGN TOKENS â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
:root {
  /* Colores */
  --dsv-primary:        #00695A;
  --dsv-primary-dark:   #004D40;
  --dsv-primary-light:  #00897B;
  --dsv-primary-xlight: #E0F2F0;
  --dsv-accent:         #C8A44A;
  --dsv-accent-dark:    #A07830;
  --dsv-ink:            #1A2024;
  --dsv-ink-muted:      #4A5568;
  --dsv-ink-subtle:     #718096;
  --dsv-bg:             #FAFAF9;
  --dsv-bg-soft:        #F2F4F3;
  --dsv-white:          #FFFFFF;
  --dsv-border:         #DDE3E0;
  --dsv-success:        #2E7D32;
  --dsv-warning:        #E65100;
  --dsv-error:          #B71C1C;
  --dsv-info:           #01579B;

  /* TipografÃ­a */
  --dsv-font-heading: 'Zilla Slab', Georgia, serif;
  --dsv-font-body:    'Montserrat', system-ui, sans-serif;

  /* TamaÃ±os */
  --dsv-text-xs:   .75rem;
  --dsv-text-sm:   .875rem;
  --dsv-text-base: 1rem;
  --dsv-text-md:   1.125rem;
  --dsv-text-lg:   1.25rem;
  --dsv-text-xl:   1.5rem;
  --dsv-text-2xl:  2rem;
  --dsv-text-3xl:  2.5rem;
  --dsv-text-4xl:  3.5rem;

  /* Espaciado */
  --dsv-sp-1:  .25rem;
  --dsv-sp-2:  .5rem;
  --dsv-sp-3:  .75rem;
  --dsv-sp-4:  1rem;
  --dsv-sp-5:  1.25rem;
  --dsv-sp-6:  1.5rem;
  --dsv-sp-8:  2rem;
  --dsv-sp-10: 2.5rem;
  --dsv-sp-12: 3rem;
  --dsv-sp-16: 4rem;
  --dsv-sp-20: 5rem;

  /* Radios */
  --dsv-radius-sm:   4px;
  --dsv-radius:      8px;
  --dsv-radius-md:   12px;
  --dsv-radius-lg:   16px;
  --dsv-radius-xl:   24px;
  --dsv-radius-full: 9999px;

  /* Sombras */
  --dsv-shadow-sm: 0 1px 3px rgba(0,0,0,.08);
  --dsv-shadow:    0 4px 12px rgba(0,0,0,.10);
  --dsv-shadow-md: 0 8px 24px rgba(0,0,0,.12);
  --dsv-shadow-lg: 0 16px 48px rgba(0,0,0,.14);

  /* Transiciones */
  --dsv-ease-fast: 150ms ease;
  --dsv-ease:      250ms ease;
  --dsv-ease-slow: 400ms ease;

  /* Ancho mÃ¡ximo de contenido */
  --dsv-content-width: 1200px;
}


/* â”€â”€â”€ 03. ASTRA GLOBAL VARIABLES â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
/*
  Astra genera estas variables en un <style> inline en el <head>.
  El child theme carga despuÃ©s â†’ las redefiniciones aquÃ­ prevalecen.
  Referencias en el sitio (UAG blocks, Elementor): los valores
  quedan sincronizados automÃ¡ticamente.
*/
:root {
  --ast-global-color-0: var(--dsv-primary);        /* verde principal */
  --ast-global-color-1: var(--dsv-accent);          /* dorado */
  --ast-global-color-2: var(--dsv-primary-light);   /* verde medio (links activos) */
  --ast-global-color-3: var(--dsv-ink);             /* texto oscuro */
  --ast-global-color-4: var(--dsv-ink-muted);       /* texto apagado */
  --ast-global-color-5: var(--dsv-bg);              /* fondo claro */
  --ast-global-color-6: var(--dsv-border);          /* borde sutil */
  --ast-global-color-7: var(--dsv-primary-xlight);  /* fondo verde muy claro */
  --ast-global-color-8: var(--dsv-ink-subtle);      /* texto sutil / meta */

  /* Variables de fuente de Astra v3+ */
  --ast-body-font-family:    var(--dsv-font-body);
  --ast-heading-font-family: var(--dsv-font-heading);
  --ast-body-font-size:      16px;
  --ast-heading-font-weight: 600;
  --ast-body-font-weight:    400;
  --ast-body-line-height:    1.65;
  --ast-heading-line-height: 1.25;

  /* Botones Astra */
  --ast-button-background:   var(--dsv-primary);
  --ast-button-color:        #fff;
  --ast-button-radius:       var(--dsv-radius-full);
  --ast-button-padding:      .625rem 1.5rem;
  --ast-button-font-family:  var(--dsv-font-body);
  --ast-button-font-weight:  600;
  --ast-button-font-size:    .9375rem;

  /* Color de link */
  --ast-link-color:      var(--dsv-primary);
  --ast-link-hover-color:var(--dsv-primary-dark);
}


/* â”€â”€â”€ 04. ELEMENTOR GLOBAL VARIABLES â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
:root {
  /* Colores globales Elementor */
  --e-global-color-primary:          var(--dsv-primary);
  --e-global-color-secondary:        var(--dsv-ink);
  --e-global-color-text:             var(--dsv-ink);
  --e-global-color-accent:           var(--dsv-primary);

  /* Colores personalizados (usados en custom.css y home_cat.css) */
  --e-global-color-astglobalcolor0:  var(--dsv-primary);
  --e-global-color-astglobalcolor8:  var(--dsv-ink-subtle);
  --e-global-color-1f21b03:          var(--dsv-primary);

  /* TipografÃ­a global Elementor */
  --e-global-typography-primary-font-family:   'Zilla Slab';
  --e-global-typography-primary-font-weight:   600;
  --e-global-typography-secondary-font-family: 'Montserrat';
  --e-global-typography-secondary-font-weight: 500;
  --e-global-typography-text-font-family:      'Montserrat';
  --e-global-typography-text-font-weight:      400;
  --e-global-typography-accent-font-family:    'Montserrat';
  --e-global-typography-accent-font-weight:    600;
}


/* â”€â”€â”€ 05. BASE â€” BODY & TIPOGRAFÃA â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
body,
body.ast-theme-transparent-header {
  font-family: var(--dsv-font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.65;
  color: var(--dsv-ink);
  background-color: var(--dsv-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.ast-post-title-wrap .entry-title {
  font-family: var(--dsv-font-heading);
  font-weight: 600;
  line-height: 1.2;
  color: var(--dsv-ink);
  letter-spacing: -.02em;
}

h1 { font-size: clamp(2rem,   5vw, var(--dsv-text-4xl)); }
h2 { font-size: clamp(1.5rem, 4vw, var(--dsv-text-3xl)); }
h3 { font-size: clamp(1.25rem,3vw, var(--dsv-text-2xl)); }
h4 { font-size: var(--dsv-text-xl); }
h5 { font-size: var(--dsv-text-lg); }
h6 { font-size: var(--dsv-text-md); }

p { color: var(--dsv-ink-muted); }

a,
a:visited {
  color: var(--dsv-primary);
  transition: color var(--dsv-ease-fast);
}
a:hover,
a:focus {
  color: var(--dsv-primary-dark);
  text-decoration-color: var(--dsv-primary-dark);
}

strong, b { font-weight: 600; }

::selection {
  background: var(--dsv-primary-xlight);
  color: var(--dsv-primary-dark);
}


/* â”€â”€â”€ 06. ASTRA â€” HEADER & SITE IDENTITY â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
/* Fondo del header */
.site-header,
.ast-header-stacked,
.ast-above-header,
.ast-below-header,
#masthead,
.main-header-bar {
  background-color: var(--dsv-white);
  border-bottom: 1px solid var(--dsv-border);
}

/* Sticky header */
.ast-sticky-active .main-header-bar,
.ast-sticky-active .site-header {
  box-shadow: var(--dsv-shadow-sm);
}

/* Logo â€” sitename / tagline */
.site-title a,
.site-title a:visited {
  color: var(--dsv-ink);
  font-family: var(--dsv-font-heading);
  font-weight: 600;
}
.site-title a:hover { color: var(--dsv-primary); }
.site-description { color: var(--dsv-ink-subtle); font-size: var(--dsv-text-sm); }

/* Contenedor mÃ¡ximo del header */
.ast-container,
.main-header-bar .ast-container {
  max-width: var(--dsv-content-width);
}


/* â”€â”€â”€ 07. ASTRA â€” NAVEGACIÃ“N PRINCIPAL â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
/* Links del menÃº */
.ast-primary-menu > li > a,
.ast-primary-menu > li > .ast-menu-item > a,
.main-navigation ul li a,
#ast-hf-menu-1 .menu-item > a {
  font-family: var(--dsv-font-body);
  font-weight: 500;
  font-size: var(--dsv-text-sm);
  color: var(--dsv-ink);
  letter-spacing: .02em;
  padding: .5rem .875rem;
  transition: color var(--dsv-ease-fast), background var(--dsv-ease-fast);
}

/* Hover / activo */
.ast-primary-menu > li > a:hover,
.ast-primary-menu > li.current-menu-item > a,
.ast-primary-menu > li.current-menu-ancestor > a,
.main-navigation ul li a:hover,
.main-navigation ul li.current-menu-item > a {
  color: var(--dsv-primary);
}

/* Indicador activo */
.ast-primary-menu > li.current-menu-item > a::after,
.ast-primary-menu > li.current-menu-ancestor > a::after {
  background-color: var(--dsv-primary);
}

/* SubmenÃº */
.sub-menu,
.ast-primary-menu .sub-menu {
  background: var(--dsv-white);
  border: 1px solid var(--dsv-border);
  border-radius: var(--dsv-radius);
  box-shadow: var(--dsv-shadow);
  min-width: 14rem;
}
.ast-primary-menu .sub-menu li a {
  font-size: var(--dsv-text-sm);
  color: var(--dsv-ink-muted);
  padding: .5rem 1rem;
}
.ast-primary-menu .sub-menu li a:hover { color: var(--dsv-primary); }

/* MenÃº mÃ³vil (hamburger area) */
.ast-mobile-menu-trigger-fill { background-color: var(--dsv-primary); }
.ast-mobile-menu-trigger-fill:hover { background-color: var(--dsv-primary-dark); }

/* Toggle off-canvas */
.ast-masthead-custom-menu-items .ast-search-icon,
.ast-header-custom-item .ast-search-icon { color: var(--dsv-ink); }
.ast-header-custom-item .ast-search-icon:hover { color: var(--dsv-primary); }


/* â”€â”€â”€ 08. ASTRA â€” BOTONES & CTA â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ast-btn,
.ast-custom-button,
.page .ast-btn,
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
.button,
.wp-block-button__link {
  font-family: var(--dsv-font-body);
  font-weight: 600;
  font-size: var(--dsv-text-sm);
  letter-spacing: .04em;
  border-radius: var(--dsv-radius-full);
  padding: .625rem 1.5rem;
  background-color: var(--dsv-primary);
  color: var(--dsv-white);
  border: 2px solid transparent;
  cursor: pointer;
  transition: background var(--dsv-ease-fast), border-color var(--dsv-ease-fast),
              color var(--dsv-ease-fast), box-shadow var(--dsv-ease-fast);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .375rem;
}
.ast-btn:hover,
.ast-custom-button:hover,
button:hover,
input[type="submit"]:hover,
.button:hover,
.wp-block-button__link:hover {
  background-color: var(--dsv-primary-dark);
  color: var(--dsv-white);
  box-shadow: 0 4px 14px rgba(0,105,90,.3);
  text-decoration: none;
}

/* Variante outline */
.ast-btn.ast-outline,
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  border-color: var(--dsv-primary);
  color: var(--dsv-primary);
}
.ast-btn.ast-outline:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--dsv-primary);
  color: var(--dsv-white);
}

/* Focus accesible */
button:focus-visible,
input[type="submit"]:focus-visible,
.ast-btn:focus-visible {
  outline: 3px solid var(--dsv-primary);
  outline-offset: 2px;
}


/* â”€â”€â”€ 09. ASTRA â€” BREADCRUMB â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ast-breadcrumbs,
.ast-breadcrumbs-list {
  font-family: var(--dsv-font-body);
  font-size: var(--dsv-text-xs);
  color: var(--dsv-ink-subtle);
}
.ast-breadcrumbs-list a,
.breadcrumbs a { color: var(--dsv-ink-subtle); }
.ast-breadcrumbs-list a:hover,
.breadcrumbs a:hover { color: var(--dsv-primary); }
.ast-breadcrumbs-list .trail-end { color: var(--dsv-ink-muted); }


/* â”€â”€â”€ 10. ASTRA â€” FOOTER â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.site-footer,
.ast-main-footer,
footer#colophon {
  background-color: var(--dsv-ink);
  color: rgba(255,255,255,.75);
  font-family: var(--dsv-font-body);
  font-size: var(--dsv-text-sm);
}
.footer-widget-area {
  background-color: var(--dsv-ink);
}
.footer-widget-area h1,
.footer-widget-area h2,
.footer-widget-area h3,
.footer-widget-area h4 {
  color: var(--dsv-white);
  font-family: var(--dsv-font-heading);
}
.footer-widget-area a,
.site-footer a { color: rgba(255,255,255,.7); }
.footer-widget-area a:hover,
.site-footer a:hover { color: var(--dsv-white); }

/* Barra de copyright */
.ast-footer-copyright,
.footer-bar-wrap {
  background-color: rgba(0,0,0,.35);
  color: rgba(255,255,255,.5);
  font-size: var(--dsv-text-xs);
  padding: .75rem 0;
}


/* â”€â”€â”€ 11. ELEMENTOR â€” SECCIONES & CONTENEDORES â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
/* Sections */
.elementor-section .elementor-container,
.elementor-section > .elementor-container {
  max-width: var(--dsv-content-width);
}

/* Flex containers (Elementor 3.6+) */
.e-con {
  --container-max-width: var(--dsv-content-width);
}

/* SecciÃ³n con fondo primario */
.elementor-section.dsv-bg-primary {
  background-color: var(--dsv-primary) !important;
}
/* SecciÃ³n con fondo xlight */
.elementor-section.dsv-bg-soft,
.e-con.dsv-bg-soft {
  background-color: var(--dsv-primary-xlight) !important;
}


/* â”€â”€â”€ 12. ELEMENTOR â€” HEADING WIDGET â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
/*
  Estrategia: reglas por tag HTML real (h1â€“h6) tienen especificidad
  0,2,1 frente a 0,2,0 de las reglas de Elementor por elemento-id,
  mÃ¡s el !important en font-family para bloquear inline styles.
  Esto aplica a TODOS los widgets Heading existentes sin tener que
  limpiar la BD widget a widget.
*/

/* Base comÃºn a todos los headings de Elementor */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--dsv-font-heading) !important; /* inline style de Elementor â†’ necesita !important */
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: var(--dsv-ink);
}

/* TamaÃ±o y color POR TAG â€” especificidad 0,2,1 > 0,2,0 de Elementor, sin !important */
.elementor-widget-heading h1.elementor-heading-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  color: var(--dsv-ink);
}
.elementor-widget-heading h2.elementor-heading-title {
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  color: var(--dsv-ink);
}
.elementor-widget-heading h3.elementor-heading-title {
  font-size: clamp(1.25rem, 3vw, 2rem);
  color: var(--dsv-ink);
}
.elementor-widget-heading h4.elementor-heading-title {
  font-size: 1.5rem;
  color: var(--dsv-ink);
}
.elementor-widget-heading h5.elementor-heading-title {
  font-size: 1.25rem;
  color: var(--dsv-ink);
}
.elementor-widget-heading h6.elementor-heading-title {
  font-size: 1.125rem;
  color: var(--dsv-ink);
}

/* Elementor "size" fallback (cuando no se usa tag semÃ¡ntico) */
.elementor-widget-heading .elementor-heading-title.elementor-size-xxl  { font-size: clamp(2rem, 5vw, 3.5rem);  }
.elementor-widget-heading .elementor-heading-title.elementor-size-xl   { font-size: clamp(1.5rem, 4vw, 2.5rem); }
.elementor-widget-heading .elementor-heading-title.elementor-size-large { font-size: 2rem;    }
.elementor-widget-heading .elementor-heading-title.elementor-size-medium{ font-size: 1.5rem;  }
.elementor-widget-heading .elementor-heading-title.elementor-size-small { font-size: 1.125rem; }

/* Clases utilitarias aplicables desde "CSS Classes" en el widget */
.elementor-widget-heading.dsv-underline .elementor-heading-title {
  display: inline-block;
  border-bottom: 3px solid var(--dsv-accent);
  padding-bottom: .25em;
}
.elementor-widget-heading.dsv-light   .elementor-heading-title { color: var(--dsv-white)   !important; }
.elementor-widget-heading.dsv-primary .elementor-heading-title { color: var(--dsv-primary) !important; }
.elementor-widget-heading.dsv-accent  .elementor-heading-title { color: var(--dsv-accent)  !important; }
.elementor-widget-heading.dsv-muted   .elementor-heading-title { color: var(--dsv-ink-muted) !important; }


/* â”€â”€â”€ 13. ELEMENTOR â€” BUTTON WIDGET â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.elementor-widget-button .elementor-button {
  font-family: var(--dsv-font-body);
  font-weight: 600;
  font-size: var(--dsv-text-sm);
  letter-spacing: .04em;
  border-radius: var(--dsv-radius-full);
  padding: .75rem 2rem;
  background-color: var(--dsv-primary);
  color: var(--dsv-white);
  border: 2px solid transparent;
  transition: background var(--dsv-ease-fast), box-shadow var(--dsv-ease-fast);
}
.elementor-widget-button .elementor-button:hover,
.elementor-widget-button .elementor-button:focus {
  background-color: var(--dsv-primary-dark);
  color: var(--dsv-white);
  box-shadow: 0 4px 14px rgba(0,105,90,.3);
}

/* Variante outline (clase CSS personalizada en el widget) */
.elementor-widget-button.dsv-outline .elementor-button {
  background: transparent;
  border-color: var(--dsv-primary);
  color: var(--dsv-primary);
}
.elementor-widget-button.dsv-outline .elementor-button:hover {
  background: var(--dsv-primary);
  color: var(--dsv-white);
  box-shadow: none;
}

/* Variante dorado/acento */
.elementor-widget-button.dsv-accent .elementor-button {
  background-color: var(--dsv-accent);
  color: var(--dsv-white);
}
.elementor-widget-button.dsv-accent .elementor-button:hover {
  background-color: var(--dsv-accent-dark);
  box-shadow: 0 4px 14px rgba(200,164,74,.35);
}


/* â”€â”€â”€ 14. ELEMENTOR â€” NAV-MENU WIDGET â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.elementor-widget-nav-menu .elementor-nav-menu .elementor-item {
  font-family: var(--dsv-font-body);
  font-weight: 500;
  color: var(--dsv-ink);
}
.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus,
.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active {
  color: var(--dsv-primary);
}
.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item::before,
.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item::after {
  background-color: var(--dsv-primary);
}
.elementor-widget-nav-menu .e--pointer-framed .elementor-item::before,
.elementor-widget-nav-menu .e--pointer-framed .elementor-item::after {
  border-color: var(--dsv-primary);
}


/* â”€â”€â”€ 15. ELEMENTOR â€” TEXT-EDITOR & LISTA â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.elementor-widget-text-editor {
  font-family: var(--dsv-font-body) !important; /* inline style â†’ necesita !important */
  font-size: 1rem;
  line-height: 1.7;
  color: var(--dsv-ink-muted);
}
.elementor-widget-text-editor p,
.elementor-widget-text-editor li {
  font-family: var(--dsv-font-body) !important;
  color: var(--dsv-ink-muted);
  line-height: 1.7;
  font-size: 1rem;
}
/* Headings dentro de bloques de texto */
.elementor-widget-text-editor h1,
.elementor-widget-text-editor h2,
.elementor-widget-text-editor h3,
.elementor-widget-text-editor h4,
.elementor-widget-text-editor h5,
.elementor-widget-text-editor h6 {
  font-family: var(--dsv-font-heading) !important;
  font-weight: 600 !important;
  color: var(--dsv-ink) !important;
  line-height: 1.2;
}
.elementor-widget-text-editor a              { color: var(--dsv-primary); }
.elementor-widget-text-editor a:hover        { color: var(--dsv-primary-dark); }
.elementor-widget-text-editor strong,
.elementor-widget-text-editor b             { font-weight: 600; color: var(--dsv-ink); }

/* Widget "PÃ¡rrafo" independiente */
.elementor-widget-wp-widget-text,
.elementor-widget-wp-widget-text p {
  font-family: var(--dsv-font-body) !important;
  color: var(--dsv-ink-muted);
  line-height: 1.7;
}

/* Widget Icon List */
.elementor-widget-icon-list .elementor-icon-list-text {
  font-family: var(--dsv-font-body);
  color: var(--dsv-ink-muted);
}
.elementor-widget-icon-list .elementor-icon-list-icon i,
.elementor-widget-icon-list .elementor-icon-list-icon svg {
  color: var(--dsv-primary);
  fill: var(--dsv-primary);
}

/* Listas con icono verde */
.elementor-widget-text-editor ul li::marker,
.elementor-widget-icon-list .elementor-icon-list-icon i,
.elementor-widget-icon-list .elementor-icon-list-icon svg {
  color: var(--dsv-primary);
  fill:  var(--dsv-primary);
}
.elementor-widget-icon-list .elementor-icon-list-item > a {
  color: var(--dsv-ink-muted);
}


/* â”€â”€â”€ 16. ELEMENTOR â€” DIVIDER & ICON â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.elementor-widget-divider .elementor-divider-separator {
  border-color: var(--dsv-border);
}
/* Clase dsv-accent-divider â†’ lÃ­nea dorada */
.elementor-widget-divider.dsv-accent-divider .elementor-divider-separator {
  border-color: var(--dsv-accent);
  border-width: 2px;
}

.elementor-widget-icon .elementor-icon i,
.elementor-widget-icon .elementor-icon svg { color: var(--dsv-primary); fill: var(--dsv-primary); }


/* â”€â”€â”€ 17. ELEMENTOR â€” FORM WIDGET â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.elementor-field-group .elementor-field,
.elementor-form .elementor-field-group .elementor-field {
  font-family: var(--dsv-font-body);
  font-size: var(--dsv-text-sm);
  color: var(--dsv-ink);
  border: 1.5px solid var(--dsv-border);
  border-radius: var(--dsv-radius);
  padding: .625rem .875rem;
  transition: border-color var(--dsv-ease-fast), box-shadow var(--dsv-ease-fast);
  background: var(--dsv-white);
}
.elementor-field-group .elementor-field:focus,
.elementor-form .elementor-field-group .elementor-field:focus {
  border-color: var(--dsv-primary);
  box-shadow: 0 0 0 3px rgba(0,105,90,.15);
  outline: none;
}
.elementor-field-group label {
  font-family: var(--dsv-font-body);
  font-size: var(--dsv-text-sm);
  font-weight: 600;
  color: var(--dsv-ink);
}
.elementor-button.elementor-size-sm,
.elementor-button.elementor-size-md,
.elementor-form .elementor-button {
  background-color: var(--dsv-primary);
  border-radius: var(--dsv-radius-full);
  font-family: var(--dsv-font-body);
  font-weight: 600;
}
.elementor-form .elementor-button:hover { background-color: var(--dsv-primary-dark); }


/* â”€â”€â”€ 18. DRASANVI UI COMPONENTS â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

/* â€” Tags â€” */
.dsv-tag {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .2em .65em;
  border-radius: var(--dsv-radius-full);
  font-family: var(--dsv-font-body);
  font-size: var(--dsv-text-xs);
  font-weight: 600;
  letter-spacing: .03em;
  white-space: nowrap;
  line-height: 1.6;
}
.dsv-tag-bio    { background: #E8F5E9; color: #2E7D32; }
.dsv-tag-vegan  { background: #E0F2F0; color: var(--dsv-primary-dark); }
.dsv-tag-gold   { background: #FFF8E1; color: #795B00; }
.dsv-tag-eco    { background: #F1F8E9; color: #33691E; }
.dsv-tag-info   { background: #E3F2FD; color: #01579B; }
.dsv-tag-new    { background: var(--dsv-primary); color: var(--dsv-white); }

/* â€” Badges (inline) â€” */
.dsv-badge {
  display: inline-block;
  padding: .15em .55em;
  border-radius: var(--dsv-radius-sm);
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.dsv-badge-primary { background: var(--dsv-primary);     color: #fff; }
.dsv-badge-gold    { background: var(--dsv-accent);      color: #fff; }
.dsv-badge-outline { background: transparent; border: 1.5px solid var(--dsv-primary); color: var(--dsv-primary); }

/* â€” Alerts â€” */
.dsv-alert {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .875rem 1rem;
  border-radius: var(--dsv-radius);
  font-family: var(--dsv-font-body);
  font-size: var(--dsv-text-sm);
  line-height: 1.5;
}
.dsv-alert-icon { flex-shrink: 0; margin-top: .1em; }
.dsv-alert-new     { background: var(--dsv-primary-xlight); border-left: 3px solid var(--dsv-primary); color: var(--dsv-primary-dark); }
.dsv-alert-success { background: #E8F5E9; border-left: 3px solid #2E7D32; color: #1B5E20; }
.dsv-alert-warning { background: #FFF3E0; border-left: 3px solid #E65100; color: #BF360C; }
.dsv-alert-info    { background: #E3F2FD; border-left: 3px solid #01579B; color: #01579B; }

/* â€” Cards â€” */
.dsv-card {
  background: var(--dsv-white);
  border: 1px solid var(--dsv-border);
  border-radius: var(--dsv-radius-md);
  overflow: hidden;
  transition: transform var(--dsv-ease), box-shadow var(--dsv-ease);
  display: flex;
  flex-direction: column;
}
.dsv-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--dsv-shadow-md);
}
.dsv-card-img {
  aspect-ratio: 1/1;
  background: var(--dsv-bg-soft);
  overflow: hidden;
}
.dsv-card-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: .75rem;
  transition: transform var(--dsv-ease-slow);
}
.dsv-card:hover .dsv-card-img img { transform: scale(1.04); }
.dsv-card-body { flex: 1; padding: 1rem; }
.dsv-card-title {
  font-family: var(--dsv-font-heading);
  font-weight: 600;
  font-size: var(--dsv-text-md);
  color: var(--dsv-ink);
  margin: 0 0 .25rem;
}
.dsv-card-meta  { font-size: var(--dsv-text-xs); color: var(--dsv-ink-subtle); }
.dsv-card-price { font-size: var(--dsv-text-xl); font-weight: 700; color: var(--dsv-ink); }
.dsv-card-footer { padding: .75rem 1rem; border-top: 1px solid var(--dsv-border); }

/* â€” CTA primario (bloque hero) â€” */
.dsv-cta-block {
  background: var(--dsv-primary);
  color: var(--dsv-white);
  border-radius: var(--dsv-radius-lg);
  padding: var(--dsv-sp-8) var(--dsv-sp-10);
  text-align: center;
}
.dsv-cta-block h2, .dsv-cta-block h3 {
  color: var(--dsv-white);
  font-family: var(--dsv-font-heading);
}
.dsv-cta-block p { color: rgba(255,255,255,.8); }
.dsv-cta-block .elementor-button {
  background: var(--dsv-white) !important;
  color: var(--dsv-primary) !important;
  border-radius: var(--dsv-radius-full) !important;
}
.dsv-cta-block .elementor-button:hover {
  background: var(--dsv-primary-xlight) !important;
}

/* â€” Breadcrumb Drasanvi (tambiÃ©n en product_control.php) â€” */
.dsv-breadcrumb {
  font-family: var(--dsv-font-body);
  font-size: var(--dsv-text-xs);
  color: var(--dsv-ink-subtle);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem;
  list-style: none;
  padding: 0;
  margin: 0 0 var(--dsv-sp-6);
}
.dsv-breadcrumb a { color: var(--dsv-ink-subtle); text-decoration: none; }
.dsv-breadcrumb a:hover { color: var(--dsv-primary); }
.dsv-breadcrumb .sep { color: var(--dsv-border); user-select: none; }

/* â€” Inputs globales â€” */
input[type="text"],
input[type="email"],
input[type="search"],
input[type="tel"],
input[type="url"],
textarea,
select {
  font-family: var(--dsv-font-body);
  font-size: var(--dsv-text-sm);
  color: var(--dsv-ink);
  border: 1.5px solid var(--dsv-border);
  border-radius: var(--dsv-radius);
  background: var(--dsv-white);
  transition: border-color var(--dsv-ease-fast), box-shadow var(--dsv-ease-fast);
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="search"]:focus,
textarea:focus,
select:focus {
  border-color: var(--dsv-primary);
  box-shadow: 0 0 0 3px rgba(0,105,90,.15);
  outline: none;
}

/* â€” Spinners / estados de carga â€” */
.dsv-spinner {
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid var(--dsv-border);
  border-top-color: var(--dsv-primary);
  border-radius: 50%;
  animation: dsv-spin .6s linear infinite;
}
@keyframes dsv-spin { to { transform: rotate(360deg); } }
/* Los estilos de ficha de producto: plugin assets/css/producto.css */



/* --- 19. RESPONSIVE ------------------------------------------------ */
@media (max-width: 1023px) {
  /* Nav mobile */
  .ast-primary-menu > li > a,
  .ast-primary-menu > li > .ast-menu-item > a { font-size: var(--dsv-text-base); }
}

@media (max-width: 767px) {
  h1 { font-size: clamp(1.5rem, 6vw, 2.5rem); }
  h2 { font-size: clamp(1.25rem, 5vw, 2rem); }

  /* Contenedor de producto en movil */
  .single-drasanvi_producto .ast-container { padding: 0 1rem; }

  /* Cards en movil: una por fila */
  .dsv-card-grid { grid-template-columns: 1fr !important; }
}


/* ═══════════════════════════════════════════════════════════════
   20. CABECERA TRANSPARENTE / STICKY  (#menuca)
   ═══════════════════════════════════════════════════════════════
   Estado por defecto → fondo transparente, elementos blancos.
   .dsv-scrolled (scroll) → fondo opaco, colores normales.
   ═══════════════════════════════════════════════════════════════ */

/* ── Transiciones + estado por defecto (transparente con overlay oscuro) ──────── */
#menuca {
  background: linear-gradient(to bottom, rgba(0,0,0,.65) 0%, rgba(0,0,0,0) 100%) !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
  transition: background-color .3s ease, box-shadow .3s ease, border-color .3s ease;
}
#menuca > .e-con {
  background: transparent !important;
}

#menuca .elementor-widget-theme-site-logo img {
  filter: brightness(0) invert(1);
  transition: filter .3s ease;
}
#menuca .elementor-widget-icon-list .elementor-icon-list-text,
#menuca .elementor-widget-icon-list .elementor-icon-list-item > a,
#menuca .elementor-widget-icon-list .elementor-icon-list-icon svg,
#menuca .e-n-menu-title-text,
#menuca .e-n-menu-dropdown-icon .e-font-icon-svg,
#menuca .e-n-menu-title .e-n-menu-icon .e-font-icon-svg,
#menuca .e-n-menu-toggle .e-font-icon-svg,
#menuca .drasanvi-lang__toggle,
#menuca .drasanvi-lang__chevron {
  transition: color .3s ease, fill .3s ease, border-color .3s ease;
}

/* Icon-list: Puntos de venta · Teléfono · Contacto */
#menuca .elementor-widget-icon-list .elementor-icon-list-text,
#menuca .elementor-widget-icon-list .elementor-icon-list-item > a {
  color: #fff !important;
}
#menuca .elementor-widget-icon-list .elementor-icon-list-icon svg {
  fill: #fff !important;
}

/* Language switcher */
#menuca .drasanvi-lang__toggle {
  color: #fff;
}
#menuca .drasanvi-lang__chevron {
  border-top-color: #fff;
}

/* Mega menu Elementor: Nosotros · Mundo Drasanvi · icono bombilla */
#menuca .e-n-menu-title-text {
  color: #fff !important;
}
#menuca .e-n-menu-dropdown-icon .e-font-icon-svg {
  fill: #fff !important;
}
#menuca .e-n-menu-title .e-n-menu-icon .e-font-icon-svg {
  fill: #fff !important;
}
#menuca .e-n-menu-toggle .e-font-icon-svg {
  fill: #fff !important;
  color: #fff !important;
}

/* Dropdown "Nosotros": texto siempre legible sobre panel claro */
#menuca .e-n-menu-content .elementor-widget-icon-list .elementor-icon-list-text,
#menuca .e-n-menu-content .elementor-widget-icon-list .elementor-icon-list-item > a {
  color: var(--dsv-ink) !important;
}
#menuca .e-n-menu-content .elementor-widget-icon-list .elementor-icon-list-icon svg {
  fill: var(--dsv-primary) !important;
  color: var(--dsv-primary) !important;
}

/* ── SCROLLEADO: fondo opaco, elementos normales ───────────── */
#menuca.dsv-scrolled {
  background: var(--dsv-white) !important;
  box-shadow: var(--dsv-shadow-sm);
  border-bottom-color: var(--dsv-border) !important;
}
#menuca.dsv-scrolled > .e-con {
  background: transparent !important;
}

/* Logo → normal */
#menuca.dsv-scrolled .elementor-widget-theme-site-logo img {
  filter: none;
}

/* Icon-list → colores normales */
#menuca.dsv-scrolled .elementor-widget-icon-list .elementor-icon-list-text,
#menuca.dsv-scrolled .elementor-widget-icon-list .elementor-icon-list-item > a {
  color: var(--dsv-ink-muted) !important;
}
#menuca.dsv-scrolled .elementor-widget-icon-list .elementor-icon-list-icon svg {
  fill: var(--dsv-primary) !important;
}

/* Language switcher → normal */
#menuca.dsv-scrolled .drasanvi-lang__toggle {
  color: inherit;
}
#menuca.dsv-scrolled .drasanvi-lang__chevron {
  border-top-color: currentColor;
}

/* Mega menu → colores normales */
#menuca.dsv-scrolled .e-n-menu-title-text {
  color: var(--dsv-ink) !important;
}
#menuca.dsv-scrolled .e-n-menu-dropdown-icon .e-font-icon-svg {
  fill: var(--dsv-ink) !important;
}
#menuca.dsv-scrolled .e-n-menu-title .e-n-menu-icon .e-font-icon-svg {
  fill: var(--dsv-ink) !important;
}
#menuca.dsv-scrolled .e-n-menu-toggle .e-font-icon-svg {
  fill: var(--dsv-ink) !important;
  color: var(--dsv-ink) !important;
}

/* Reafirma legibilidad del contenido del dropdown también en scrolled */
#menuca.dsv-scrolled .e-n-menu-content .elementor-widget-icon-list .elementor-icon-list-text,
#menuca.dsv-scrolled .e-n-menu-content .elementor-widget-icon-list .elementor-icon-list-item > a {
  color: var(--dsv-ink) !important;
}

/* Corporate page heroes */
.dsv-corporate-hero {
  padding: 70px 0 !important;
}
.dsv-corporate-hero > .e-con-inner,
.dsv-corporate-hero > .elementor-container {
  align-items: stretch !important;
  gap: 64px;
}
.dsv-corporate-hero .dsv-corporate-hero__copy,
.dsv-corporate-hero .dsv-corporate-hero__media {
  width: calc(50% - 32px) !important;
  margin: 0 !important;
}
.dsv-corporate-hero .dsv-corporate-hero__copy {
  justify-content: center;
  padding: 20px 0 0 !important;
}
.dsv-corporate-hero .dsv-corporate-hero__media {
  min-height: 420px;
  padding: 0 !important;
  overflow: hidden;
  align-self: stretch;
}
.dsv-corporate-hero__media > .elementor-widget-image,
.dsv-corporate-hero__media > .elementor-widget-image > .elementor-widget-container,
.dsv-corporate-hero__media .dsv-corporate-hero__image,
.dsv-corporate-hero__media .dsv-corporate-hero__image > .elementor-widget-container {
  width: 100%;
  height: 100%;
}
.dsv-corporate-hero__media .elementor-widget-image figure {
  display: flex;
  width: 100%;
  height: 100%;
  margin: 0;
  flex-direction: column;
}
.dsv-corporate-hero__media .elementor-widget-image img {
  width: 100%;
  min-height: 0;
  height: 100%;
  flex: 1 1 auto;
  object-fit: cover;
  transition: transform .7s cubic-bezier(.2,.65,.3,1);
}
.dsv-corporate-hero__media:hover .elementor-widget-image img {
  transform: scale(1.035);
}

@media (max-width: 1024px) {
  .dsv-corporate-hero {
    padding: 56px 32px !important;
  }
  .dsv-corporate-hero > .e-con-inner,
  .dsv-corporate-hero > .elementor-container {
    gap: 40px;
  }
  .dsv-corporate-hero .dsv-corporate-hero__copy,
  .dsv-corporate-hero .dsv-corporate-hero__media {
    width: calc(50% - 20px) !important;
  }
}

@media (max-width: 767px) {
  .dsv-corporate-hero {
    padding: 40px 20px 48px !important;
  }
  .dsv-corporate-hero > .e-con-inner,
  .dsv-corporate-hero > .elementor-container {
    gap: 32px;
    flex-direction: column;
  }
  .dsv-corporate-hero .dsv-corporate-hero__copy,
  .dsv-corporate-hero .dsv-corporate-hero__media {
    width: 100% !important;
  }
  .dsv-corporate-hero .dsv-corporate-hero__copy {
    padding-top: 0 !important;
  }
  .dsv-corporate-hero .dsv-corporate-hero__media {
    min-height: 280px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dsv-corporate-hero__media .elementor-widget-image img {
    transition: none;
  }
}