.elementor-140 .elementor-element.elementor-element-5b3f2f27{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-around;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;--padding-top:0em;--padding-bottom:0em;--padding-left:2em;--padding-right:2em;overflow:visible;}.elementor-140 .elementor-element.elementor-element-49cf4df5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;overflow:visible;}.elementor-140 .elementor-element.elementor-element-65dd82d img{width:50%;}.elementor-140 .elementor-element.elementor-element-377d4253{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;overflow:visible;}.elementor-140 .elementor-element.elementor-element-3fbddc3 .elementor-menu-toggle{margin-left:auto;}.elementor-140 .elementor-element.elementor-element-4d0f0bb7{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-end;overflow:visible;}.elementor-140 .elementor-element.elementor-element-ff32ffd{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;overflow:visible;}.elementor-140 .elementor-element.elementor-element-6b686e1{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-end;overflow:visible;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:1366px){.elementor-140 .elementor-element.elementor-element-65dd82d{text-align:start;}}@media(min-width:768px){.elementor-140 .elementor-element.elementor-element-49cf4df5{--width:15%;}.elementor-140 .elementor-element.elementor-element-377d4253{--width:55%;}.elementor-140 .elementor-element.elementor-element-4d0f0bb7{--width:18%;}.elementor-140 .elementor-element.elementor-element-6b686e1{--width:18%;}}@media(max-width:1050px) and (min-width:768px){.elementor-140 .elementor-element.elementor-element-49cf4df5{--width:30%;}.elementor-140 .elementor-element.elementor-element-377d4253{--width:70%;}}@media(max-width:1050px){.elementor-140 .elementor-element.elementor-element-5b3f2f27{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--padding-top:1em;--padding-bottom:1em;--padding-left:0em;--padding-right:0em;}}@media(max-width:767px){.elementor-140 .elementor-element.elementor-element-5b3f2f27{--padding-top:1em;--padding-bottom:1em;--padding-left:0em;--padding-right:0em;}.elementor-140 .elementor-element.elementor-element-49cf4df5{--width:50%;}.elementor-140 .elementor-element.elementor-element-377d4253{--width:50%;--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-140 .elementor-element.elementor-element-4d0f0bb7{--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-140 .elementor-element.elementor-element-ff32ffd{--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-140 .elementor-element.elementor-element-6b686e1{--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-140{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}}/* Start custom CSS */@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap");

/* =========================================================
   DIALOGANDO — HEADER COMPLETO
   Desktop, laptop, tablet y móvil
   ========================================================= */

:root {
  --dg-aqua: #69BDAC;
  --dg-turquoise: #59BAC4;
  --dg-blue-soft: #4EA1C0;
  --dg-blue: #4B88B7;
  --dg-blue-deep: #4A70AB;
  --dg-violet: #4A519C;

  --dg-ink: #17203A;
  --dg-white: #FFFFFF;
  --dg-soft-bg: #F6FBFC;
  --dg-border: rgba(74, 81, 156, 0.14);

  --dg-radius: 15px;
  --dg-header-height: 88px;

  --dg-header-shadow:
    0 12px 32px rgba(23, 32, 58, 0.08);

  --dg-button-shadow:
    0 10px 24px rgba(74, 81, 156, 0.13);
}

/* =========================================================
   CONFIGURACIÓN GENERAL
   Manrope sin afectar iconos de Elementor
   ========================================================= */

.dg-premium-header {
  font-family: "Manrope", sans-serif !important;
}

.dg-premium-header a,
.dg-premium-header button,
.dg-premium-header input,
.dg-premium-header select,
.dg-premium-header textarea {
  box-sizing: border-box !important;
  font-family: inherit !important;
}

.dg-premium-header *,
.dg-premium-header *::before,
.dg-premium-header *::after {
  box-sizing: border-box !important;
}

/* Conserva la fuente interna de los iconos de Elementor */
.dg-premium-header [class^="eicon-"],
.dg-premium-header [class*=" eicon-"] {
  font-family: "eicons" !important;
}

/* Evita que Elementor centre el logo en tablet */
.dg-header-logo-wrap {
  flex-flow: row nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0 !important;
}

.dg-header-logo {
  flex: 0 0 auto !important;
  margin-right: auto !important;
}

html {
  scroll-padding-top: calc(var(--dg-header-height) + 16px) !important;
}

body {
  padding-top: var(--dg-header-height) !important;
}
/* =========================================================
   2. HEADER PRINCIPAL
   ========================================================= */

.dg-premium-header {
  position: fixed !important;
  z-index: 999999 !important;
  top: 0 !important;
  right: 0 !important;
  left: 0 !important;

  width: 100% !important;
  min-height: var(--dg-header-height) !important;

  margin: 0 !important;
  padding: 0 24px !important;

  background:
    radial-gradient(
      circle at 8% 20%,
      rgba(105, 189, 172, 0.16),
      transparent 30%
    ),
    radial-gradient(
      circle at 92% 20%,
      rgba(74, 81, 156, 0.12),
      transparent 28%
    ),
    linear-gradient(
      90deg,
      #F1FFFC 0%,
      #F7FAFC 52%,
      #F4F4FF 100%
    ) !important;

  border: 0 !important;
  box-shadow: none !important;

  opacity: 1 !important;
  visibility: visible !important;
  overflow: visible !important;
}

.dg-premium-header.e-con,
.dg-premium-header > .e-con-inner,
.dg-premium-header .e-con-inner {
  width: 100% !important;
  max-width: 1320px !important;
  min-height: var(--dg-header-height) !important;

  margin: 0 auto !important;
  padding: 0 18px !important;

  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;

  background: rgba(255, 255, 255, 0.96) !important;

  border: 1px solid rgba(255, 255, 255, 0.8) !important;
  border-radius: var(--dg-radius) !important;

  box-shadow: var(--dg-header-shadow) !important;
  overflow: visible !important;
}

/* =========================================================
   3. STICKY Y BARRA DE ADMINISTRACIÓN
   ========================================================= */

.dg-premium-header.elementor-sticky,
.dg-premium-header.elementor-sticky--active,
.dg-premium-header.elementor-sticky--effects {
  position: fixed !important;
  top: 0 !important;
  width: 100% !important;

  transform: none !important;
  animation: none !important;
}

body.admin-bar .dg-premium-header,
body.admin-bar .dg-premium-header.elementor-sticky,
body.admin-bar .dg-premium-header.elementor-sticky--active,
body.admin-bar .dg-premium-header.elementor-sticky--effects {
  top: 32px !important;
}

body.admin-bar {
  padding-top: calc(var(--dg-header-height) + 32px) !important;
}

/* =========================================================
   4. NORMALIZACIÓN DE ELEMENTOR
   ========================================================= */

.dg-premium-header .elementor-widget,
.dg-premium-header .elementor-widget-container,
.dg-premium-header .elementor-shortcode,
.dg-header-logo-wrap,
.dg-header-nav-wrap,
.dg-header-account,
.dg-header-cta-wrap {
  margin: 0 !important;
  background: transparent !important;
}

.dg-premium-header p {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* =========================================================
   5. LOGO — DESKTOP
   ========================================================= */

.dg-header-logo-wrap {
  flex: 0 0 250px !important;

  width: 250px !important;
  min-width: 250px !important;
  max-width: 250px !important;
  min-height: 68px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;

  padding: 0 !important;
  overflow: visible !important;
}

.dg-header-logo,
.dg-header-logo .elementor-widget-container {
  width: 100% !important;
  height: 68px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;

  padding: 0 !important;
  overflow: visible !important;
}

.dg-header-logo a {
  width: auto !important;
  height: 68px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;

  margin: 0 !important;
  padding: 0 !important;
}

.dg-header-logo img {
  display: block !important;

  width: auto !important;
  height: 68px !important;
  max-width: 250px !important;
  max-height: 68px !important;

  margin: 0 !important;
  padding: 0 !important;

  object-fit: contain !important;
  object-position: left center !important;
}

/* =========================================================
   6. CONTENEDOR DEL MENÚ — DESKTOP
   ========================================================= */

.dg-header-nav-wrap {
  flex: 1 1 auto !important;

  width: auto !important;
  min-width: 0 !important;
  max-width: 680px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  overflow: visible !important;
}

.dg-header-nav,
.dg-header-nav .elementor-widget-container {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 680px !important;

  margin: 0 !important;
  padding: 0 !important;

  overflow: visible !important;
}

.dg-header-nav .elementor-nav-menu--main {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 680px !important;

  display: flex !important;
}

.dg-header-nav .elementor-nav-menu--main .elementor-nav-menu,
.dg-header-nav .elementor-nav-menu--main .menu {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 680px !important;

  margin: 0 !important;
  padding: 8px !important;

  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;

  background:
    linear-gradient(
      135deg,
      var(--dg-violet) 0%,
      var(--dg-blue-deep) 48%,
      var(--dg-blue) 100%
    ) !important;

  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  border-radius: var(--dg-radius) !important;

  box-shadow:
    0 12px 28px rgba(74, 81, 156, 0.22) !important;

  overflow: visible !important;
}

.dg-header-nav .elementor-nav-menu--main .menu-item {
  flex: 0 1 auto !important;
  min-width: 0 !important;

  margin: 0 !important;
  padding: 0 !important;
}

/* =========================================================
   7. OPCIONES DEL MENÚ
   ========================================================= */

.dg-header-nav .elementor-item,
.dg-header-nav .menu-item > a {
  min-height: 40px !important;

  margin: 0 !important;
  padding: 0 8px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  color: var(--dg-white) !important;
  background: transparent !important;

  border: 0 !important;
  border-radius: 11px !important;

  box-shadow: none !important;
  outline: none !important;

  font-size: 12.5px !important;
  line-height: 1 !important;
  font-weight: 800 !important;

  text-align: center !important;
  text-decoration: none !important;
  white-space: nowrap !important;

  transition:
    color 0.22s ease,
    background-color 0.22s ease !important;
}

.dg-header-nav .elementor-item::before,
.dg-header-nav .elementor-item::after,
.dg-header-nav .menu-item > a::before,
.dg-header-nav .menu-item > a::after {
  display: none !important;
  content: none !important;
}

.dg-header-nav .elementor-item:hover,
.dg-header-nav .elementor-item.elementor-item-active,
.dg-header-nav .elementor-item.highlighted,
.dg-header-nav .menu-item > a:hover,
.dg-header-nav .current-menu-item > a {
  color: var(--dg-white) !important;
  background: rgba(255, 255, 255, 0.16) !important;
}

.dg-header-nav .elementor-item:focus-visible,
.dg-header-nav .menu-item > a:focus-visible {
  color: var(--dg-white) !important;
  background: rgba(255, 255, 255, 0.18) !important;

  outline: 2px solid var(--dg-aqua) !important;
  outline-offset: 2px !important;
}

/* =========================================================
   8. FLECHA DE PROGRAMAS
   ========================================================= */

.dg-header-nav .sub-arrow {
  position: relative !important;

  width: 11px !important;
  min-width: 11px !important;
  height: 11px !important;

  margin: 0 0 0 5px !important;
  padding: 0 !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  color: transparent !important;

  font-size: 0 !important;
  line-height: 0 !important;

  opacity: 1 !important;
  visibility: visible !important;
}

.dg-header-nav .sub-arrow i,
.dg-header-nav .sub-arrow svg {
  display: none !important;

  width: 0 !important;
  height: 0 !important;

  opacity: 0 !important;
  visibility: hidden !important;
}

.dg-header-nav .sub-arrow::before {
  content: "" !important;

  width: 7px !important;
  height: 7px !important;

  display: block !important;

  color: var(--dg-white) !important;

  border-right: 2px solid currentColor !important;
  border-bottom: 2px solid currentColor !important;

  transform: rotate(45deg) translateY(-2px) !important;
  transform-origin: center !important;
}

.dg-header-nav .elementor-item.highlighted .sub-arrow::before,
.dg-header-nav .menu-item-has-children:hover > a .sub-arrow::before {
  transform: rotate(225deg) translate(-1px, -1px) !important;
}

/* =========================================================
   9. SUBMENÚ — DESKTOP
   ========================================================= */

.dg-header-nav .sub-menu {
  min-width: 280px !important;

  margin-top: 10px !important;
  padding: 10px !important;

  background: var(--dg-white) !important;

  border: 1px solid rgba(74, 136, 183, 0.18) !important;
  border-radius: var(--dg-radius) !important;

  box-shadow:
    0 14px 36px rgba(23, 32, 58, 0.12) !important;

  overflow: hidden !important;
}

.dg-header-nav .sub-menu a,
.dg-header-nav .sub-menu .elementor-sub-item {
  width: 100% !important;
  min-height: 44px !important;

  padding: 10px 14px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;

  color: var(--dg-ink) !important;
  background: transparent !important;

  border: 0 !important;
  border-radius: 10px !important;

  font-size: 14px !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;

  text-align: left !important;
  text-decoration: none !important;
  white-space: normal !important;
}

.dg-header-nav .sub-menu a:hover,
.dg-header-nav .sub-menu .elementor-sub-item:hover,
.dg-header-nav .sub-menu .elementor-sub-item.elementor-item-active {
  color: var(--dg-violet) !important;
  background: rgba(89, 186, 196, 0.14) !important;
}

/* =========================================================
   10. CONTENEDOR DE CUENTA
   ========================================================= */

.dg-header-account {
  flex: 0 0 auto !important;

  width: auto !important;
  min-width: max-content !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;

  margin: 0 !important;
  padding: 0 !important;

  white-space: nowrap !important;
  overflow: visible !important;
}

.dg-header-account .elementor-widget,
.dg-header-account .elementor-widget-container,
.dg-header-account .elementor-shortcode,
.dg-login-shortcode,
.dg-login-shortcode .elementor-widget-container,
.dg-login-shortcode .elementor-shortcode {
  width: auto !important;
  min-width: max-content !important;
  height: auto !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  margin: 0 !important;
  padding: 0 !important;

  line-height: 1 !important;
  overflow: visible !important;
}

/* Elimina espacios verticales añadidos al shortcode */
.dg-header-account p,
.dg-login-shortcode p,
.dg-header-account br,
.dg-login-shortcode br {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

.dg-header-account p,
.dg-login-shortcode p {
  display: contents !important;
}

/* =========================================================
   11. VISIBILIDAD SEGÚN LA SESIÓN
   ========================================================= */

body:not(.logged-in) .dg-my-account-btn {
  display: none !important;
}

body.logged-in .dg-my-account-btn {
  display: inline-flex !important;
}

.dg-access-state-login,
.dg-access-state-logout {
  display: none !important;
}

body:not(.logged-in) .dg-access-state-login {
  display: inline-flex !important;
}

body.logged-in .dg-access-state-logout {
  display: inline-flex !important;
}

/* =========================================================
   12. BOTÓN MI CUENTA / MY ACCOUNT
   ========================================================= */

.dg-my-account-btn {
  width: auto !important;
  min-width: 108px !important;
  height: 52px !important;
  min-height: 52px !important;

  margin: 0 !important;
  padding: 0 15px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  color: var(--dg-violet) !important;
  background: rgba(255, 255, 255, 0.88) !important;

  border: 1px solid var(--dg-border) !important;
  border-radius: var(--dg-radius) !important;

  box-shadow: var(--dg-button-shadow) !important;

  font-size: 12.5px !important;
  line-height: 1 !important;
  font-weight: 800 !important;

  text-align: center !important;
  text-decoration: none !important;
  white-space: nowrap !important;

  transition:
    color 0.22s ease,
    background-color 0.22s ease,
    border-color 0.22s ease,
    transform 0.22s ease !important;
}

.dg-my-account-btn:hover {
  color: var(--dg-blue-deep) !important;
  background: rgba(89, 186, 196, 0.14) !important;

  border-color: rgba(89, 186, 196, 0.35) !important;

  transform: translateY(-2px) !important;
}

/* =========================================================
   13. BOTÓN DINÁMICO — LOG IN / LOG OUT
   Corrección de alineación incluida
   ========================================================= */

.dg-dynamic-access-btn,
.dg-login-shortcode .dg-dynamic-access-btn {
  width: auto !important;
  min-width: 104px !important;
  height: 52px !important;
  min-height: 52px !important;

  margin: 0 !important;
  padding: 0 15px !important;

  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;

  color: var(--dg-violet) !important;
  background: rgba(255, 255, 255, 0.88) !important;

  border: 1px solid var(--dg-border) !important;
  border-radius: var(--dg-radius) !important;

  box-shadow: var(--dg-button-shadow) !important;

  font-size: 12.5px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;

  text-align: center !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  white-space: nowrap !important;

  vertical-align: middle !important;

  transition:
    color 0.22s ease,
    background 0.22s ease,
    border-color 0.22s ease,
    transform 0.22s ease !important;
}

/* Acceder / Log in */
.dg-login-btn {
  color: var(--dg-white) !important;

  background:
    linear-gradient(
      135deg,
      var(--dg-aqua),
      var(--dg-turquoise)
    ) !important;

  border-color: rgba(89, 186, 196, 0.55) !important;
}

.dg-login-btn:hover {
  color: var(--dg-white) !important;

  background:
    linear-gradient(
      135deg,
      var(--dg-turquoise),
      var(--dg-blue)
    ) !important;

  transform: translateY(-2px) !important;
}

/* Salir / Log out */
.dg-logout-btn {
  color: var(--dg-violet) !important;
  background: rgba(255, 255, 255, 0.88) !important;

  border-color: var(--dg-border) !important;
}

.dg-logout-btn:hover {
  color: var(--dg-blue-deep) !important;
  background: rgba(89, 186, 196, 0.14) !important;

  border-color: rgba(89, 186, 196, 0.35) !important;

  transform: translateY(-2px) !important;
}

/* =========================================================
   14. BOTÓN AGENDA / BOOK NOW
   ========================================================= */

.dg-header-cta-wrap,
.dg-header-cta-wrap .elementor-widget,
.dg-header-cta-wrap .elementor-widget-container,
.dg-header-cta-wrap .elementor-shortcode,
.dg-header-cta,
.dg-header-cta .elementor-widget-container,
.dg-header-cta .elementor-shortcode {
  flex: 0 0 auto !important;

  width: auto !important;
  min-width: max-content !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;
  overflow: visible !important;
}

.dg-header-cta p,
.dg-header-cta-wrap p {
  display: contents !important;
  margin: 0 !important;
  padding: 0 !important;
}

.dg-header-cta .elementor-button,
.dg-header-cta a.elementor-button,
.dg-header-cta > a,
.dg-header-cta-wrap .elementor-button,
.dg-header-cta-wrap a.elementor-button {
  width: auto !important;
  min-width: 120px !important;
  height: 52px !important;
  min-height: 52px !important;

  margin: 0 !important;
  padding: 0 18px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  color: var(--dg-white) !important;

  background:
    linear-gradient(
      135deg,
      var(--dg-aqua),
      var(--dg-turquoise)
    ) !important;

  border: 1px solid rgba(89, 186, 196, 0.55) !important;
  border-radius: var(--dg-radius) !important;

  box-shadow:
    0 12px 28px rgba(89, 186, 196, 0.24) !important;

  text-align: center !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;

  transition:
    background 0.22s ease,
    transform 0.22s ease,
    box-shadow 0.22s ease !important;
}

.dg-header-cta .elementor-button-content-wrapper,
.dg-header-cta-wrap .elementor-button-content-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  line-height: 1 !important;
}

.dg-header-cta .elementor-button-text,
.dg-header-cta-wrap .elementor-button-text {
  color: var(--dg-white) !important;

  font-size: 12.5px !important;
  line-height: 1 !important;
  font-weight: 800 !important;

  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

.dg-header-cta .elementor-button:hover,
.dg-header-cta a.elementor-button:hover,
.dg-header-cta-wrap .elementor-button:hover,
.dg-header-cta-wrap a.elementor-button:hover {
  color: var(--dg-white) !important;

  background:
    linear-gradient(
      135deg,
      var(--dg-turquoise),
      var(--dg-blue)
    ) !important;

  transform: translateY(-2px) !important;
}

/* =========================================================
   RESPONSIVE DEL HEADER
   Laptop, tablet y móvil
   ========================================================= */

/* Ocultos por defecto en escritorio */
.dg-mobile-account-menu {
  display: none !important;
}

.dg-header-nav .elementor-menu-toggle {
  display: none !important;
}

/* =========================================================
   LAPTOP Y TABLET
   Menú hamburguesa hasta 1399px
   ========================================================= */

@media (max-width: 1399px) {

  html {
    scroll-padding-top: 94px !important;
  }

  body {
    padding-top: 80px !important;
  }

  body.admin-bar {
    padding-top: 112px !important;
  }

  .dg-premium-header {
    min-height: 80px !important;
    padding: 7px 14px !important;
  }

  /*
   * El header es el contenedor principal de Elementor.
   * No se aplica la cuadrícula a todos los .e-con-inner.
   */
  .dg-premium-header.e-con {
    width: calc(100% - 28px) !important;
    max-width: 1180px !important;
    min-height: 66px !important;

    margin: 0 auto !important;
    padding: 7px 16px !important;

    display: grid !important;
    grid-template-columns: minmax(190px, 1fr) auto 48px !important;
    grid-template-areas: "logo agenda menu" !important;

    align-items: center !important;
    justify-content: stretch !important;
    column-gap: 14px !important;

    background: rgba(255, 255, 255, 0.97) !important;

    border: 1px solid rgba(255, 255, 255, 0.82) !important;
    border-radius: var(--dg-radius) !important;

    box-shadow: var(--dg-header-shadow) !important;
    overflow: visible !important;
  }

  /* Logo */

  .dg-header-logo-wrap {
    grid-area: logo !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 60px !important;

    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;
  }

  .dg-header-logo {
    flex: 0 0 auto !important;
    margin: 0 auto 0 0 !important;
  }

  .dg-header-logo,
  .dg-header-logo .elementor-widget-container,
  .dg-header-logo a {
    width: auto !important;
    height: 60px !important;
    max-width: 100% !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;

    padding: 0 !important;
  }

  .dg-header-logo img {
    display: block !important;

    width: auto !important;
    height: 60px !important;
    max-width: 195px !important;
    max-height: 60px !important;

    margin: 0 !important;

    object-fit: contain !important;
    object-position: left center !important;
  }

  /* Cuenta fuera del header responsive */

  .dg-header-account {
    display: none !important;
  }

  /* Agenda */

  .dg-header-cta-wrap {
    grid-area: agenda !important;

    width: auto !important;
    min-width: 0 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: end !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  .dg-header-cta .elementor-button,
  .dg-header-cta a.elementor-button,
  .dg-header-cta > a,
  .dg-header-cta-wrap .elementor-button,
  .dg-header-cta-wrap a.elementor-button {
    min-width: 112px !important;
    height: 44px !important;
    min-height: 44px !important;

    padding: 0 17px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Contenedor del menú */

  .dg-header-nav-wrap {
    grid-area: menu !important;

    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;

    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: end !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;
  }

  .dg-header-nav,
  .dg-header-nav .elementor-widget-container {
    position: static !important;

    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;
  }

  /* Oculta el menú horizontal */

  .dg-header-nav .elementor-nav-menu--main {
    display: none !important;
  }

  /* Botón hamburguesa */

  .dg-header-nav .elementor-menu-toggle {
    width: 44px !important;
    height: 44px !important;

    margin: 0 !important;
    padding: 0 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    color: var(--dg-white) !important;

    background:
      linear-gradient(
        135deg,
        var(--dg-violet),
        var(--dg-blue)
      ) !important;

    border: 0 !important;
    border-radius: 13px !important;

    box-shadow:
      0 8px 20px rgba(74, 81, 156, 0.20) !important;

    cursor: pointer !important;
  }

  .dg-header-nav .elementor-menu-toggle i,
  .dg-header-nav .elementor-menu-toggle svg {
    width: 21px !important;
    height: 21px !important;

    color: currentColor !important;
    fill: currentColor !important;

    font-size: 21px !important;
    line-height: 1 !important;
  }

  /* Estado cerrado */

  .dg-header-nav
  .elementor-menu-toggle:not(.elementor-active)
  + nav.elementor-nav-menu--dropdown {
    display: none !important;
  }

  /* Estado abierto */

  .dg-header-nav
  .elementor-menu-toggle.elementor-active
  + nav.elementor-nav-menu--dropdown {
    display: block !important;

    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  /* Panel principal desplegable */

  .dg-header-nav nav.elementor-nav-menu--dropdown {
    position: fixed !important;
    z-index: 1000000 !important;

    top: 87px !important;
    right: 18px !important;
    left: 18px !important;

    width: auto !important;
    height: auto !important;
    max-height: calc(100vh - 105px) !important;

    margin: 0 !important;
    padding: 12px !important;

    background: rgba(255, 255, 255, 0.98) !important;

    border: 1px solid var(--dg-border) !important;
    border-radius: var(--dg-radius) !important;

    box-shadow:
      0 18px 44px rgba(23, 32, 58, 0.16) !important;

    transform: none !important;

    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }

  body.admin-bar
  .dg-header-nav
  nav.elementor-nav-menu--dropdown {
    top: 119px !important;
  }

  /* Lista principal */

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  > ul.elementor-nav-menu {
    position: static !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 4px !important;

    background: transparent !important;
  }

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  > ul.elementor-nav-menu
  > li {
    position: relative !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    display: block !important;
  }

  /* Opciones principales */

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  > ul.elementor-nav-menu
  > li
  > a.elementor-item {
    position: relative !important;

    width: 100% !important;
    min-height: 46px !important;

    margin: 0 !important;
    padding: 11px 14px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;

    color: var(--dg-ink) !important;
    background: transparent !important;

    border: 0 !important;
    border-radius: 11px !important;

    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;

    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;

    box-shadow: none !important;
  }

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  > ul.elementor-nav-menu
  > li
  > a.elementor-item:hover,
  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  > ul.elementor-nav-menu
  > li
  > a.elementor-item.elementor-item-active,
  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  > ul.elementor-nav-menu
  > li
  > a.elementor-item.highlighted {
    color: var(--dg-violet) !important;
    background: rgba(89, 186, 196, 0.14) !important;
  }

  /* Flechas responsive */

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  .sub-arrow {
    flex: 0 0 18px !important;

    width: 18px !important;
    height: 18px !important;

    margin: 0 0 0 auto !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  .sub-arrow::before {
    color: var(--dg-violet) !important;
  }

  /*
   * Submenús:
   * posición estática para evitar que se monten sobre otras opciones.
   */

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  ul.sub-menu {
    position: static !important;

    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 4px 0 8px !important;
    padding: 6px !important;

    background: var(--dg-soft-bg) !important;

    border: 0 !important;
    border-radius: 11px !important;

    box-shadow: none !important;
    transform: none !important;

    overflow: hidden !important;
  }

  /* Respeta la apertura de Elementor */

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  ul.sub-menu[aria-hidden="true"] {
    display: none !important;
  }

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  ul.sub-menu[aria-hidden="false"] {
    display: block !important;
  }

  /* Opciones de submenú */

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  ul.sub-menu
  li {
    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  ul.sub-menu
  a.elementor-sub-item {
    width: 100% !important;
    min-height: 42px !important;

    margin: 0 !important;
    padding: 9px 12px 9px 18px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 7px !important;

    color: var(--dg-ink) !important;
    background: transparent !important;

    border: 0 !important;
    border-radius: 9px !important;

    font-size: 13px !important;
    line-height: 1.35 !important;
    font-weight: 650 !important;

    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
  }

  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  ul.sub-menu
  a.elementor-sub-item:hover,
  .dg-header-nav
  nav.elementor-nav-menu--dropdown
  ul.sub-menu
  a.elementor-sub-item.elementor-item-active {
    color: var(--dg-violet) !important;
    background: rgba(89, 186, 196, 0.14) !important;
  }
}

/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 767px) {

  html {
    scroll-padding-top: 96px !important;
  }

  body {
    padding-top: 86px !important;
  }

  body.admin-bar {
    padding-top: 132px !important;
  }

  body.admin-bar .dg-premium-header {
    top: 46px !important;
  }

  .dg-premium-header {
    min-height: 86px !important;
    padding: 6px 8px !important;
  }

  .dg-premium-header.e-con {
    width: calc(100% - 16px) !important;
    min-height: 74px !important;

    margin: 0 auto !important;
    padding: 5px 9px !important;

    grid-template-columns:
      minmax(130px, 1fr)
      auto
      42px !important;

    column-gap: 7px !important;
  }

  /* Logo grande y alineado a la izquierda */

  .dg-header-logo-wrap {
    min-height: 62px !important;
  }

  .dg-header-logo,
  .dg-header-logo .elementor-widget-container,
  .dg-header-logo a {
    height: 62px !important;
  }

  .dg-header-logo img {
    width: auto !important;
    height: 62px !important;
    max-width: 170px !important;
    max-height: 62px !important;
  }

  /* Agenda */

  .dg-header-cta .elementor-button,
  .dg-header-cta a.elementor-button,
  .dg-header-cta > a,
  .dg-header-cta-wrap .elementor-button,
  .dg-header-cta-wrap a.elementor-button {
    min-width: 76px !important;
    height: 40px !important;
    min-height: 40px !important;

    padding: 0 10px !important;
  }

  .dg-header-cta .elementor-button-text,
  .dg-header-cta-wrap .elementor-button-text {
    font-size: 10px !important;
    line-height: 1 !important;
    letter-spacing: 0.04em !important;
  }

  /* Hamburguesa */

  .dg-header-nav-wrap,
  .dg-header-nav,
  .dg-header-nav .elementor-widget-container {
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
  }

  .dg-header-nav .elementor-menu-toggle {
    width: 42px !important;
    height: 42px !important;
  }

  /* Dropdown móvil */

  .dg-header-nav nav.elementor-nav-menu--dropdown {
    top: 92px !important;
    right: 8px !important;
    left: 8px !important;

    max-height: calc(100vh - 104px) !important;

    padding: 10px !important;
  }

  body.admin-bar
  .dg-header-nav
  nav.elementor-nav-menu--dropdown {
    top: 138px !important;
  }
}

/* =========================================================
   MÓVIL PEQUEÑO
   ========================================================= */

@media (max-width: 420px) {

  body {
    padding-top: 80px !important;
  }

  .dg-premium-header {
    min-height: 80px !important;
  }

  .dg-premium-header.e-con {
    min-height: 68px !important;

    grid-template-columns:
      minmax(115px, 1fr)
      auto
      40px !important;

    padding: 5px 7px !important;
    column-gap: 6px !important;
  }

  .dg-header-logo-wrap {
    min-height: 56px !important;
  }

  .dg-header-logo,
  .dg-header-logo .elementor-widget-container,
  .dg-header-logo a {
    height: 56px !important;
  }

  .dg-header-logo img {
    height: 56px !important;
    max-width: 150px !important;
    max-height: 56px !important;
  }

  .dg-header-cta .elementor-button,
  .dg-header-cta a.elementor-button,
  .dg-header-cta > a,
  .dg-header-cta-wrap .elementor-button,
  .dg-header-cta-wrap a.elementor-button {
    min-width: 66px !important;
    height: 36px !important;
    min-height: 36px !important;

    padding: 0 7px !important;
  }

  .dg-header-cta .elementor-button-text,
  .dg-header-cta-wrap .elementor-button-text {
    font-size: 9px !important;
    letter-spacing: 0.02em !important;
  }

  .dg-header-nav-wrap,
  .dg-header-nav,
  .dg-header-nav .elementor-widget-container {
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
  }

  .dg-header-nav .elementor-menu-toggle {
    width: 40px !important;
    height: 40px !important;
  }

  .dg-header-nav nav.elementor-nav-menu--dropdown {
    top: 86px !important;
    max-height: calc(100vh - 98px) !important;
  }
}

/* =========================================================
   MÓVIL MUY PEQUEÑO
   ========================================================= */

@media (max-width: 360px) {

  body {
    padding-top: 76px !important;
  }

  .dg-premium-header {
    min-height: 76px !important;
  }

  .dg-premium-header.e-con {
    min-height: 64px !important;

    grid-template-columns:
      minmax(105px, 1fr)
      auto
      38px !important;

    padding: 5px 6px !important;
    column-gap: 5px !important;
  }

  .dg-header-logo-wrap {
    min-height: 50px !important;
  }

  .dg-header-logo,
  .dg-header-logo .elementor-widget-container,
  .dg-header-logo a {
    height: 50px !important;
  }

  .dg-header-logo img {
    height: 50px !important;
    max-width: 136px !important;
    max-height: 50px !important;
  }

  .dg-header-cta .elementor-button,
  .dg-header-cta a.elementor-button,
  .dg-header-cta > a,
  .dg-header-cta-wrap .elementor-button,
  .dg-header-cta-wrap a.elementor-button {
    min-width: 60px !important;
    height: 34px !important;
    min-height: 34px !important;

    padding: 0 5px !important;
  }

  .dg-header-cta .elementor-button-text,
  .dg-header-cta-wrap .elementor-button-text {
    font-size: 8.5px !important;
  }

  .dg-header-nav-wrap,
  .dg-header-nav,
  .dg-header-nav .elementor-widget-container {
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
  }

  .dg-header-nav .elementor-menu-toggle {
    width: 38px !important;
    height: 38px !important;
  }

  .dg-header-nav nav.elementor-nav-menu--dropdown {
    top: 82px !important;
    max-height: calc(100vh - 94px) !important;
  }
}

/* =========================================================
   ACCESIBILIDAD
   ========================================================= */

.dg-my-account-btn:focus-visible,
.dg-dynamic-access-btn:focus-visible,
.dg-header-cta a:focus-visible,
.dg-header-nav .elementor-menu-toggle:focus-visible,
.dg-header-nav nav.elementor-nav-menu--dropdown a:focus-visible {
  outline: 3px solid rgba(105, 189, 172, 0.72) !important;
  outline-offset: 3px !important;
}

/* =========================================================
   REDUCCIÓN DE MOVIMIENTO
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

  .dg-premium-header *,
  .dg-premium-header *::before,
  .dg-premium-header *::after {
    scroll-behavior: auto !important;

    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}/* End custom CSS */