/* Tokens locales del core para animación y spacing reutilizable. */
:root {
  --avm-container-max: 1240px;
  --avm-breakpoint-mobile-max: 767px;
  --avm-breakpoint-tablet-min: 768px;
  --avm-breakpoint-tablet-max: 1023px;
  --avm-breakpoint-desktop-min: 1024px;
  --avm-anim-duration-fast: 280ms;
  --avm-anim-duration-base: 480ms;
  --avm-anim-duration-slow: 720ms;
  --avm-anim-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --avm-anim-distance-sm: 12px;
  --avm-anim-distance-md: 24px;
  --avm-anim-distance-lg: 40px;
  --wp--preset--spacing--space-2xs: 0.5rem;
  --wp--preset--spacing--space-xs: 0.75rem;
  --wp--preset--spacing--space-sm: 1rem;
  --wp--preset--spacing--space-md: 1.25rem;
  --wp--preset--spacing--space-lg: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  --wp--preset--spacing--space-xl: clamp(2rem, 1.4rem + 2vw, 3rem);
  --wp--preset--spacing--space-2xl: clamp(3rem, 2rem + 3vw, 5rem);
  --wp--preset--spacing--space-3xl: clamp(4rem, 2.5rem + 5vw, 8rem);
  --wp--preset--spacing--space-4xl: clamp(5rem, 3rem + 8vw, 12rem);
  --wp--preset--spacing--space-5xl: clamp(6rem, 3.5rem + 14vw, 20rem);
}

/* Normaliza box model en toda la interfaz. */
* {
  box-sizing: border-box;
}

/* Mantiene scroll suave para anclas internas. */
html {
  scroll-behavior: smooth;
}

/* Aplica transición de color a links de contenido, navegación y site title. */
.wp-site-blocks a:not(.wp-block-button__link):not(.wp-element-button),
.editor-styles-wrapper a:not(.wp-block-button__link):not(.wp-element-button),
.wp-site-blocks .wp-block-navigation a,
.editor-styles-wrapper .wp-block-navigation a,
.wp-site-blocks .wp-block-site-title a,
.editor-styles-wrapper .wp-block-site-title a {
  transition: color 180ms ease, opacity 180ms ease;
}

/* Usa el token hover como color de interacción para links del sitio. */
.wp-site-blocks a:not(.wp-block-button__link):not(.wp-element-button):hover,
.wp-site-blocks a:not(.wp-block-button__link):not(.wp-element-button):focus,
.editor-styles-wrapper a:not(.wp-block-button__link):not(.wp-element-button):hover,
.editor-styles-wrapper a:not(.wp-block-button__link):not(.wp-element-button):focus,
.wp-site-blocks .wp-block-navigation a:hover,
.wp-site-blocks .wp-block-navigation a:focus,
.editor-styles-wrapper .wp-block-navigation a:hover,
.editor-styles-wrapper .wp-block-navigation a:focus,
.wp-site-blocks .wp-block-site-title a:hover,
.wp-site-blocks .wp-block-site-title a:focus,
.editor-styles-wrapper .wp-block-site-title a:hover,
.editor-styles-wrapper .wp-block-site-title a:focus {
  color: var(--wp--preset--color--hover);
}

/* Refuerza la transición en items del bloque Navigation que WordPress serializa aparte. */
.wp-site-blocks .wp-block-navigation .wp-block-navigation-item__content,
.wp-site-blocks .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content,
.wp-site-blocks .wp-block-navigation .wp-block-navigation-item__label,
.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item__content,
.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content,
.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item__label {
  transition: color 180ms ease, opacity 180ms ease;
}

/* Fuerza el hover del menú para ganarle a reglas heredadas del bloque nativo. */
.wp-site-blocks .wp-block-navigation .wp-block-navigation-item__content:hover,
.wp-site-blocks .wp-block-navigation .wp-block-navigation-item__content:focus,
.wp-site-blocks .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:hover,
.wp-site-blocks .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:focus,
.wp-site-blocks .wp-block-navigation .wp-block-navigation-item__content:where(:not([contenteditable="true"])):hover,
.wp-site-blocks .wp-block-navigation .wp-block-navigation-item__content:where(:not([contenteditable="true"])):focus,
.wp-site-blocks .wp-block-navigation .wp-block-navigation-item__label:hover,
.wp-site-blocks .wp-block-navigation .wp-block-navigation-item__label:focus,
.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item__content:hover,
.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item__content:focus,
.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:hover,
.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:focus,
.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item__content:where(:not([contenteditable="true"])):hover,
.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item__content:where(:not([contenteditable="true"])):focus,
.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item__label:hover,
.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item__label:focus {
  color: var(--wp--preset--color--hover) !important;
}

/* Garantiza que la estructura principal pueda ocupar toda la altura de la ventana. */
.wp-site-blocks {
  min-height: 100vh;
}

/* Fuente editable para extras del menú mobile: se oculta en frontend y el JS la clona al overlay. */
.wp-site-blocks .avm-mobile-menu-extras:not(.avm-mobile-menu-extras-clone) {
  display: none !important;
}

/* Define el gutter lateral base usando las variables oficiales del layout root de WordPress. */
body,
.editor-styles-wrapper {
  --wp--style--root--padding-left: var(--wp--preset--spacing--space-md);
  --wp--style--root--padding-right: var(--wp--preset--spacing--space-md);
}

/* Desde tablet en adelante el gutter root se resetea para no añadir espacio lateral extra. */
@media (min-width: 768px) {
  body,
  .editor-styles-wrapper {
    --wp--style--root--padding-left: 0px;
    --wp--style--root--padding-right: 0px;
  }
}

/* Evita desbordes visuales en imágenes responsivas. */
img {
  max-width: 100%;
  height: auto;
}

/* El bloque Spacer no debe aportar márgenes propios; solo altura. */
.wp-block-spacer {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Variaciones del Spacer enlazadas al sistema de spacing del theme. */
.wp-block-spacer.is-style-space-2xs,
.is-style-space-2xs .wp-block-spacer {
  height: var(--wp--preset--spacing--space-2xs) !important;
}

.wp-block-spacer.is-style-space-xs,
.is-style-space-xs .wp-block-spacer {
  height: var(--wp--preset--spacing--space-xs) !important;
}

.wp-block-spacer.is-style-space-sm,
.is-style-space-sm .wp-block-spacer {
  height: var(--wp--preset--spacing--space-sm) !important;
}

.wp-block-spacer.is-style-space-md,
.is-style-space-md .wp-block-spacer {
  height: var(--wp--preset--spacing--space-md) !important;
}

.wp-block-spacer.is-style-space-lg,
.is-style-space-lg .wp-block-spacer {
  height: var(--wp--preset--spacing--space-lg) !important;
}

.wp-block-spacer.is-style-space-xl,
.is-style-space-xl .wp-block-spacer {
  height: var(--wp--preset--spacing--space-xl) !important;
}

.wp-block-spacer.is-style-space-2xl,
.is-style-space-2xl .wp-block-spacer {
  height: var(--wp--preset--spacing--space-2xl) !important;
}

.wp-block-spacer.is-style-space-3xl,
.is-style-space-3xl .wp-block-spacer {
  height: var(--wp--preset--spacing--space-3xl) !important;
}

.wp-block-spacer.is-style-space-4xl,
.is-style-space-4xl .wp-block-spacer {
  height: var(--wp--preset--spacing--space-4xl) !important;
}

.wp-block-spacer.is-style-space-5xl,
.is-style-space-5xl .wp-block-spacer {
  height: var(--wp--preset--spacing--space-5xl) !important;
}

/* Tablas base: más aire, borde consistente y mejor lectura. */
:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table :is(th, td) {
  padding: 0.9rem 1rem;
  border: 1px solid var(--wp--preset--color--line);
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table th {
  font-size: var(--wp--preset--font-size--text-lg);
  font-weight: 700;
  border-bottom: 0;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table thead {
  border-bottom: 2px solid color-mix(
    in srgb,
    var(--wp--preset--color--text) 16%,
    var(--wp--preset--color--line)
  ) !important;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table thead th {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table tbody tr:first-child td {
  border-top: 0;
}

/* Variación de tabla con panel surface y header primary. */
:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table.is-style-surface-header table {
  background: var(--wp--preset--color--surface);
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table.is-style-surface-header thead {
  background: var(--wp--preset--color--primary);
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table.is-style-surface-header thead th {
  color: var(--wp--preset--color--surface);
  border-top-color: color-mix(in srgb, var(--wp--preset--color--primary) 78%, black);
  border-left-color: color-mix(in srgb, var(--wp--preset--color--primary) 78%, black);
  border-right-color: color-mix(in srgb, var(--wp--preset--color--primary) 78%, black);
  border-bottom: 0;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table.is-style-surface-header tbody td {
  background: var(--wp--preset--color--surface);
}

/* Variante stripes: conserva zebra rows pero la integra al sistema surface/primary. */
:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table.is-style-stripes table {
  background: var(--wp--preset--color--surface);
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table.is-style-stripes thead {
  background: var(--wp--preset--color--primary);
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table.is-style-stripes thead th {
  color: var(--wp--preset--color--surface);
  border-top-color: color-mix(in srgb, var(--wp--preset--color--primary) 78%, black);
  border-left-color: color-mix(in srgb, var(--wp--preset--color--primary) 78%, black);
  border-right-color: color-mix(in srgb, var(--wp--preset--color--primary) 78%, black);
  border-bottom: 0;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table.is-style-stripes tbody tr td {
  background: var(--wp--preset--color--surface);
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table.is-style-stripes tbody tr:nth-child(odd) td {
  background: color-mix(in srgb, var(--wp--preset--color--surface) 72%, var(--wp--preset--color--line));
}

/* En pantallas pequeñas la tabla conserva su estructura y se desplaza horizontalmente. */
@media (max-width: 767px) {
  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table table {
    min-width: 36rem;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-table :is(th, td) {
    padding: 0.75rem 0.85rem;
  }
}

/* Header reveal utility: el header se oculta al bajar y reaparece fijo al subir. */
.avm-header-reveal-on-scroll {
  position: relative;
  z-index: 40;
}

@media (min-width: 768px) {
  .avm-header-reveal-on-scroll {
    position: sticky;
    top: 0;
    transition: transform 220ms var(--avm-anim-ease-out), box-shadow 220ms ease, background-color 220ms ease, border-color 220ms ease;
    will-change: transform;
  }

  .avm-header-reveal-on-scroll.avm-header-is-scrolled {
    background-color: var(--wp--preset--color--surface);
    border-bottom-color: var(--wp--preset--color--line) !important;
    box-shadow: var(--wp--preset--shadow--card-soft);
  }

  .avm-header-reveal-on-scroll.avm-header-is-hidden {
    transform: translateY(calc(-100% - 1px));
    box-shadow: none;
  }

  .avm-header-reveal-on-scroll.avm-header-is-visible {
    transform: translateY(0);
  }
}

/* Hace que los presets de color de texto ganen sobre la regla genérica .has-text-color de WordPress. */
.has-text-color.has-background-color {
  color: var(--wp--preset--color--background) !important;
}

.has-text-color.has-surface-color {
  color: var(--wp--preset--color--surface) !important;
}

.has-text-color.has-muted-color {
  color: var(--wp--preset--color--muted) !important;
}

.has-text-color.has-primary-color {
  color: var(--wp--preset--color--primary) !important;
}

.has-text-color.has-hover-color {
  color: var(--wp--preset--color--hover) !important;
}

.has-text-color.has-secondary-color {
  color: var(--wp--preset--color--secondary) !important;
}

.has-text-color.has-accent-color {
  color: var(--wp--preset--color--accent) !important;
}

.has-text-color.has-line-color {
  color: var(--wp--preset--color--line) !important;
}

.has-text-color.has-success-color {
  color: var(--wp--preset--color--success) !important;
}

.has-text-color.has-warning-color {
  color: var(--wp--preset--color--warning) !important;
}

.has-text-color.has-error-color {
  color: var(--wp--preset--color--error) !important;
}

/* Keyframes base del sistema de animaciones reutilizable del starter. */
@keyframes avm-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes avm-fade-in-up {
  from {
    opacity: 0;
    transform: translateY(var(--avm-anim-distance-md));
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes avm-fade-in-down {
  from {
    opacity: 0;
    transform: translateY(calc(var(--avm-anim-distance-md) * -1));
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes avm-fade-in-left {
  from {
    opacity: 0;
    transform: translateX(var(--avm-anim-distance-md));
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes avm-fade-in-right {
  from {
    opacity: 0;
    transform: translateX(calc(var(--avm-anim-distance-md) * -1));
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes avm-fade-in-scale {
  from {
    opacity: 0;
    transform: scale(0.96);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Clases principales que activan animaciones de entrada. */
.avm-animate,
.avm-animate-fade-in,
.avm-animate-fade-in-up,
.avm-animate-fade-in-down,
.avm-animate-fade-in-left,
.avm-animate-fade-in-right,
.avm-animate-fade-in-scale {
  animation-duration: var(--avm-anim-duration-base);
  animation-fill-mode: both;
  animation-timing-function: var(--avm-anim-ease-out);
  will-change: opacity, transform;
}

/* Mapea cada utilidad a su keyframe correspondiente. */
.avm-animate,
.avm-animate-fade-in {
  animation-name: avm-fade-in;
}

.avm-animate-fade-in-up {
  animation-name: avm-fade-in-up;
}

.avm-animate-fade-in-down {
  animation-name: avm-fade-in-down;
}

.avm-animate-fade-in-left {
  animation-name: avm-fade-in-left;
}

.avm-animate-fade-in-right {
  animation-name: avm-fade-in-right;
}

.avm-animate-fade-in-scale {
  animation-name: avm-fade-in-scale;
}

/* Utilidades de ritmo para duración, delay y distancia. */
.avm-animate-fast {
  animation-duration: var(--avm-anim-duration-fast);
}

.avm-animate-slow {
  animation-duration: var(--avm-anim-duration-slow);
}

.avm-animate-delay-1 {
  animation-delay: 120ms;
}

.avm-animate-delay-2 {
  animation-delay: 220ms;
}

.avm-animate-delay-3 {
  animation-delay: 320ms;
}

.avm-animate-delay-4 {
  animation-delay: 420ms;
}

.avm-animate-distance-sm {
  --avm-anim-distance-md: var(--avm-anim-distance-sm);
}

.avm-animate-distance-lg {
  --avm-anim-distance-md: var(--avm-anim-distance-lg);
}

/* Estado inicial para animaciones disparadas al entrar en viewport. */
.avm-animate-on-scroll:not(.avm-animate-in-view) {
  animation: none !important;
  opacity: 0;
}

.avm-animate-on-scroll.avm-animate-fade-in-up:not(.avm-animate-in-view) {
  transform: translateY(var(--avm-anim-distance-md));
}

.avm-animate-on-scroll.avm-animate-fade-in-down:not(.avm-animate-in-view) {
  transform: translateY(calc(var(--avm-anim-distance-md) * -1));
}

.avm-animate-on-scroll.avm-animate-fade-in-left:not(.avm-animate-in-view) {
  transform: translateX(var(--avm-anim-distance-md));
}

.avm-animate-on-scroll.avm-animate-fade-in-right:not(.avm-animate-in-view) {
  transform: translateX(calc(var(--avm-anim-distance-md) * -1));
}

.avm-animate-on-scroll.avm-animate-fade-in-scale:not(.avm-animate-in-view) {
  transform: scale(0.96);
}

/* Respeta usuarios con reducción de movimiento y desactiva efectos no esenciales. */
@media (prefers-reduced-motion: reduce) {
  .avm-animate,
  .avm-animate-fade-in,
  .avm-animate-fade-in-up,
  .avm-animate-fade-in-down,
  .avm-animate-fade-in-left,
  .avm-animate-fade-in-right,
  .avm-animate-fade-in-scale,
  .avm-animate-fast,
  .avm-animate-slow,
  .avm-animate-delay-1,
  .avm-animate-delay-2,
  .avm-animate-delay-3,
  .avm-animate-delay-4,
  .avm-animate-on-scroll,
  .avm-animate-in-view {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* El starter usa 768px como breakpoint global por defecto para el bloque Navigation. */
@media (min-width: 600px) and (max-width: 767px) {
  .wp-site-blocks .wp-block-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
  .editor-styles-wrapper .wp-block-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: none !important;
  }

  .wp-site-blocks .wp-block-navigation .wp-block-navigation__responsive-container-open:not(.always-shown),
  .editor-styles-wrapper .wp-block-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex !important;
  }
}

@media (min-width: 600px) and (max-width: 819px) {
  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-820 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-820 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: none !important;
  }

  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-820 .wp-block-navigation__responsive-container-open:not(.always-shown),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-820 .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex !important;
  }
}

@media (min-width: 600px) and (max-width: 899px) {
  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-900 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-900 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: none !important;
  }

  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-900 .wp-block-navigation__responsive-container-open:not(.always-shown),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-900 .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex !important;
  }
}

@media (min-width: 600px) and (max-width: 959px) {
  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-960 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-960 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: none !important;
  }

  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-960 .wp-block-navigation__responsive-container-open:not(.always-shown),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-960 .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex !important;
  }
}

@media (min-width: 600px) and (max-width: 1023px) {
  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-1024 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-1024 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: none !important;
  }

  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-1024 .wp-block-navigation__responsive-container-open:not(.always-shown),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-1024 .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex !important;
  }
}

/* Reestablece la navegación expandida desde 768px en adelante como comportamiento global. */
@media (min-width: 768px) {
  .wp-site-blocks .wp-block-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
  .editor-styles-wrapper .wp-block-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: block !important;
  }

  .wp-site-blocks .wp-block-navigation .wp-block-navigation__responsive-container-open:not(.always-shown),
  .editor-styles-wrapper .wp-block-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: none !important;
  }
}

/* Pulido visual base del bloque Navigation: estados, foco, desktop y overlay mobile. */
:root {
  --avm-nav-dropdown-offset: 0.6rem;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation-item__content {
  border-radius: 999px;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation :is(
  .current-menu-item,
  .current-menu-ancestor,
  .current_page_item,
  .current_page_ancestor
) > .wp-block-navigation-item__content {
  color: var(--wp--preset--color--accent) !important;
  font-weight: 600;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation :is(
  .current-menu-item,
  .current-menu-ancestor,
  .current_page_item,
  .current_page_ancestor
) > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon {
  color: var(--wp--preset--color--accent) !important;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation :is(
  .current-menu-item,
  .current-menu-ancestor,
  .current_page_item,
  .current_page_ancestor
) > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon :is(svg, path, polygon, polyline) {
  fill: none !important;
  stroke: var(--wp--preset--color--accent) !important;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation :is(
  .current-menu-item,
  .current-menu-ancestor,
  .current_page_item,
  .current_page_ancestor
) > .wp-block-navigation-submenu__toggle,
:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation :is(
  .current-menu-item,
  .current-menu-ancestor,
  .current_page_item,
  .current_page_ancestor
) > .wp-block-navigation-submenu__toggle :is(svg, path, polygon, polyline),
:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation :is(
  .current-menu-item,
  .current-menu-ancestor,
  .current_page_item,
  .current_page_ancestor
) > .wp-block-navigation-item__content + .wp-block-navigation-submenu__toggle,
:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation :is(
  .current-menu-item,
  .current-menu-ancestor,
  .current_page_item,
  .current_page_ancestor
) > .wp-block-navigation-item__content + .wp-block-navigation-submenu__toggle :is(svg, path, polygon, polyline) {
  color: var(--wp--preset--color--accent) !important;
  fill: none !important;
  stroke: var(--wp--preset--color--accent) !important;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation :is(
  .wp-block-navigation-item__content,
  .wp-block-navigation__responsive-container-open,
  .wp-block-navigation__responsive-container-close
):focus-visible {
  outline: 2px solid var(--wp--preset--color--accent);
  outline-offset: 3px;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-container {
  min-width: 14rem;
  padding: 1rem;
  margin-top: 0.35rem;
  border: 0;
  border-radius: 16px;
  background: var(--wp--preset--color--surface);
  box-shadow: var(--wp--preset--shadow--card-soft);
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__container {
  gap: 0 !important;
  margin: 0;
  padding: 0;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item {
  margin: 0;
  padding: 0;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  display: block;
  min-height: 0;
  border-radius: 10px;
  padding: 0.22rem 0.6rem;
  font-size: var(--wp--preset--font-size--text-sm);
  line-height: 1.15;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item + .wp-block-navigation-item {
  margin-top: 0;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-icon {
  margin-left: 0.35rem;
  transition: transform 180ms ease;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .has-child.open-on-click[aria-expanded="true"] > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon {
  transform: rotate(180deg);
}

/* Botón hamburguesa y cierre base. */
:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation :is(
  .wp-block-navigation__responsive-container-open,
  .wp-block-navigation__responsive-container-close
) {
  min-width: 40px;
  min-height: 40px;
  padding: 0.55rem;
  border: 1px solid rgba(209, 217, 224, 0.75);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--wp--preset--color--text);
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__responsive-container-close svg {
  width: 16px !important;
  height: 16px !important;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation :is(
  .wp-block-navigation__responsive-container-open,
  .wp-block-navigation__responsive-container-close
):is(:hover, :focus) {
  border-color: var(--wp--preset--color--accent);
  color: var(--wp--preset--color--accent);
  transform: translateY(-1px);
}


@media (min-width: 768px) {
  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-container {
    top: calc(100% + var(--avm-nav-dropdown-offset)) !important;
    margin-top: 0 !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-container::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: calc(var(--avm-nav-dropdown-offset) + 0.2rem);
    background: transparent;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-container :is(.wp-block-navigation__container, ul) {
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item + .wp-block-navigation-item {
    margin-top: 0 !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    min-height: auto !important;
    padding: 0.18rem 0.6rem !important;
    line-height: 1.1 !important;
  }
}
/* Overlay mobile: solo aquí vive la capa más custom del nav. */
@media (max-width: 767px) {
  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open {
    padding: 0.65rem 1rem 0.85rem;
    color: inherit;
    background: var(--wp--preset--color--background);
    backdrop-filter: blur(12px);
    -webkit-tap-highlight-color: transparent;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    display: flex;
    flex-direction: column;
    justify-content: flex-start !important;
    align-items: stretch;
    min-height: auto !important;
    padding-top: 0 !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    width: 100%;
    padding-top: 0.25rem;
    padding-bottom: 0.35rem;
    margin-bottom: 2.4rem;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    width: 100%;
    min-height: auto;
    margin-inline: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.15rem;
    width: 100%;
    margin-top: 0;
    padding-top: 0 !important;
    padding-inline: 0.35rem;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:first-child {
    margin-top: 0.35rem;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    position: absolute;
    top: -40px;
    right: 0;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 36px;
    padding: 0.35rem;
    border: 1px solid var(--wp--preset--color--line);
    background: transparent !important;
    box-shadow: none !important;
    color: inherit;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:is(:hover, :focus) {
    border-color: var(--wp--preset--color--accent);
    background: transparent !important;
    color: var(--wp--preset--color--accent);
    transform: none;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
    width: 16px !important;
    height: 16px !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    position: relative;
    width: 100%;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    padding: 0.8rem 1rem;
    border-radius: 12px;
    font-size: var(--wp--preset--font-size--text-lg);
    line-height: 1.35;
    text-align: center;
    color: inherit !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item + .wp-block-navigation-item {
    border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent);
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation-item__content {
    justify-content: center;
    text-align: center;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle,
  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
    display: none !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-nav-has-submenu > .avm-nav-submenu-toggle {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-nav-has-submenu > .avm-nav-submenu-toggle:focus-visible {
    outline: 2px solid var(--wp--preset--color--accent);
    outline-offset: -2px;
    border-radius: 999px;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-nav-submenu-toggle-icon {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 180ms ease;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-nav-has-submenu.avm-nav-submenu-open > .avm-nav-submenu-toggle .avm-nav-submenu-toggle-icon {
    transform: rotate(225deg);
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:is(:hover, :focus) {
    background: transparent !important;
    color: inherit !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation-item__content, .wp-block-navigation-submenu__toggle):active {
    opacity: 0.82;
    transform: scale(0.985);
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open :is(
    .current-menu-item,
    .current-menu-ancestor,
    .current_page_item,
    .current_page_ancestor,
    .current-page-ancestor
  ) > .wp-block-navigation-item__content,
  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:is([aria-current="page"], [aria-current="true"]) {
    background: transparent !important;
    color: var(--wp--preset--color--accent) !important;
    box-shadow: none !important;
    border: 0 !important;
    font-weight: 600;
    text-decoration: underline !important;
    text-decoration-color: currentColor !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 0.3em !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open :is(
    .current-menu-item,
    .current-menu-ancestor,
    .current_page_item,
    .current_page_ancestor
  ) > .wp-block-navigation-item__content:is(:hover, :focus) {
    background: transparent !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    width: 100%;
    min-width: 0;
    margin-top: -0.15rem;
    margin-left: 0;
    margin-bottom: 0;
    padding: 0.05rem 0 0.55rem;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation__container {
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
    margin: 0 !important;
    padding: 0 !important;
    border-top: 0 !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-nav-has-submenu > .wp-block-navigation__submenu-container {
    display: none !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-nav-has-submenu.avm-nav-submenu-open > .wp-block-navigation__submenu-container {
    display: block !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    min-height: 28px;
    padding: 0.125rem 0.5rem;
    font-size: var(--wp--preset--font-size--text-sm);
    line-height: 1.2;
    color: var(--wp--preset--color--muted) !important;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item + .wp-block-navigation-item {
    border-top: 0;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone {
    width: 100%;
    margin-top: 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 18px;
    background: rgba(0, 0, 0, 0.06);
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container + .avm-mobile-menu-extras-clone {
    align-self: stretch;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone :is(p, .wp-block-heading) {
    margin: 0;
    color: inherit;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone a:not(.wp-block-button__link):not(.wp-element-button) {
    color: inherit;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone > .wp-block-group,
  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone > .wp-block-buttons,
  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone > .wp-block-columns,
  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone > .wp-block-social-links,
  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone > p {
    margin-block-start: 0;
    margin-block-end: 0;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone .wp-block-buttons {
    margin-top: 0;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone .wp-block-social-links {
    gap: 0.5rem;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone .is-layout-flex {
    align-items: center;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone .is-layout-flex:not(.wp-block-social-links) {
    gap: 0.75rem;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone .wp-block-social-link-anchor {
    color: inherit;
  }

  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone .wp-block-button .wp-block-button__link,
  :is(.wp-site-blocks, .editor-styles-wrapper) .wp-block-navigation__responsive-container.is-menu-open .avm-mobile-menu-extras-clone .wp-element-button {
    box-shadow: none;
  }
}

@media (min-width: 820px) {
  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-820 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-820 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: block !important;
  }

  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-820 .wp-block-navigation__responsive-container-open:not(.always-shown),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-820 .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: none !important;
  }
}

@media (min-width: 900px) {
  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-900 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-900 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: block !important;
  }

  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-900 .wp-block-navigation__responsive-container-open:not(.always-shown),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-900 .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: none !important;
  }
}

@media (min-width: 960px) {
  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-960 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-960 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: block !important;
  }

  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-960 .wp-block-navigation__responsive-container-open:not(.always-shown),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-960 .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: none !important;
  }
}

@media (min-width: 1024px) {
  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-1024 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-1024 .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: block !important;
  }

  .wp-site-blocks .wp-block-navigation.avm-nav-breakpoint-1024 .wp-block-navigation__responsive-container-open:not(.always-shown),
  .editor-styles-wrapper .wp-block-navigation.avm-nav-breakpoint-1024 .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: none !important;
  }
}

/* Corrige Columns para que no apile antes de 768px cuando core lo hace demasiado pronto. */
@media (min-width: 768px) and (max-width: 781px) {
  .wp-site-blocks .wp-block-columns:not(.is-not-stacked-on-mobile),
  .editor-styles-wrapper .wp-block-columns:not(.is-not-stacked-on-mobile) {
    flex-wrap: nowrap !important;
  }

  .wp-site-blocks .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column,
  .editor-styles-wrapper .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    margin-block-start: 0 !important;
    flex-basis: 0;
    flex-grow: 1;
  }
}

/* Utilidades responsive para reordenar y alinear layouts sin depender de CSS ad hoc por página. */
@media (max-width: 767px) {
  .avm-order-mobile-first {
    order: -1 !important;
  }

  .avm-order-mobile-last {
    order: 99 !important;
  }

  .avm-justify-mobile-start {
    justify-content: flex-start !important;
  }

  .avm-justify-mobile-center {
    justify-content: center !important;
  }

  .avm-justify-mobile-end {
    justify-content: flex-end !important;
  }

  .avm-text-mobile-left {
    text-align: left !important;
  }

  .avm-text-mobile-center {
    text-align: center !important;
  }

  .avm-text-mobile-right {
    text-align: right !important;
  }
}

/* Estados visuales en el editor para bloques con visibilidad responsive activa. */
.editor-styles-wrapper .block-editor-block-list__block.avm-hide-desktop,
.editor-styles-wrapper .block-editor-block-list__block.avm-hide-tablet,
.editor-styles-wrapper .block-editor-block-list__block.avm-hide-mobile {
  outline: 1px dashed rgba(31, 41, 51, 0.18);
  outline-offset: 4px;
}

.editor-styles-wrapper .block-editor-block-list__block.avm-hide-desktop::before,
.editor-styles-wrapper .block-editor-block-list__block.avm-hide-tablet::before,
.editor-styles-wrapper .block-editor-block-list__block.avm-hide-mobile::before {
  position: absolute;
  top: -0.8rem;
  right: 0;
  z-index: 2;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  background: rgba(31, 41, 51, 0.9);
  color: #fff;
  font-size: 11px;
  line-height: 1.3;
}

.editor-styles-wrapper .block-editor-block-list__block.avm-hide-desktop::before {
  content: "Hide desktop";
}

.editor-styles-wrapper .block-editor-block-list__block.avm-hide-desktop.avm-hide-tablet::before {
  content: "Hide desktop + tablet";
}

.editor-styles-wrapper .block-editor-block-list__block.avm-hide-desktop.avm-hide-mobile::before {
  content: "Hide desktop + mobile";
}

.editor-styles-wrapper .block-editor-block-list__block.avm-hide-tablet::before {
  content: "Hide tablet";
}

.editor-styles-wrapper .block-editor-block-list__block.avm-hide-tablet.avm-hide-mobile::before {
  content: "Hide tablet + mobile";
}

.editor-styles-wrapper .block-editor-block-list__block.avm-hide-desktop.avm-hide-tablet.avm-hide-mobile::before {
  content: "Hide all devices";
}

.editor-styles-wrapper .block-editor-block-list__block.avm-hide-mobile::before {
  content: "Hide mobile";
}

/* Oculta bloques en frontend según el breakpoint correspondiente. */
@media (min-width: 1024px) {
  .wp-site-blocks .avm-hide-desktop {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .wp-site-blocks .avm-hide-tablet {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .wp-site-blocks .avm-hide-mobile {
    display: none !important;
  }
}

/* Transición compartida para todas las variantes de botones. */
.wp-block-button .wp-block-button__link,
.wp-block-button .wp-element-button,
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform .wp-element-button {
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

/* Hover del botón fill/accent: cambia fondo, borde, elevación y color de texto. */
.wp-block-button:not(.is-style-outline):not(.is-style-outline-white) .wp-block-button__link:not(.has-surface-background-color):hover,
.wp-block-button:not(.is-style-outline):not(.is-style-outline-white) .wp-block-button__link:not(.has-surface-background-color):focus,
.wp-block-button:not(.is-style-outline):not(.is-style-outline-white) .wp-element-button:not(.has-surface-background-color):hover,
.wp-block-button:not(.is-style-outline):not(.is-style-outline-white) .wp-element-button:not(.has-surface-background-color):focus,
.wp-block-button .wp-block-button__link.has-accent-background-color:hover,
.wp-block-button .wp-block-button__link.has-accent-background-color:focus,
.wp-block-button .wp-element-button.has-accent-background-color:hover,
.wp-block-button .wp-element-button.has-accent-background-color:focus,
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform .wp-element-button.has-accent-background-color:hover,
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform .wp-element-button.has-accent-background-color:focus {
  background: var(--wp--preset--color--hover) !important;
  border-color: var(--wp--preset--color--hover) !important;
  box-shadow: var(--wp--preset--shadow--card-soft);
  color: var(--wp--preset--color--surface) !important;
  transform: translateY(-1px);
}

/* Hover de outline: pasa a fondo hover con texto claro. */
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus,
.wp-block-button.is-style-outline .wp-block-button__link.has-text-color:hover,
.wp-block-button.is-style-outline .wp-block-button__link.has-text-color:focus,
.wp-block-button.is-style-outline > .wp-element-button:hover,
  .wp-block-button.is-style-outline > .wp-element-button:focus,
  .wp-block-button.is-style-outline > .wp-element-button.has-text-color:hover,
  .wp-block-button.is-style-outline > .wp-element-button.has-text-color:focus {
  background: var(--wp--preset--color--hover) !important;
  border-color: var(--wp--preset--color--hover) !important;
  color: var(--wp--preset--color--surface) !important;
}

/* Estado base del outline: borde y texto en accent. */
.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link.has-text-color,
.wp-block-button.is-style-outline > .wp-element-button,
.wp-block-button.is-style-outline > .wp-element-button.has-text-color {
  border-color: var(--wp--preset--color--accent) !important;
  color: var(--wp--preset--color--accent) !important;
}

/* Variante outline-white para fondos oscuros o superficies con contraste alto. */
.wp-block-button.is-style-outline-white .wp-block-button__link,
.wp-block-button.is-style-outline-white > .wp-block-button__link.wp-element-button {
  background: transparent;
  border: 1px solid var(--wp--preset--color--surface);
  color: var(--wp--preset--color--surface);
}

/* Hover de outline-white: invierte a fondo blanco con texto hover. */
.wp-block-button.is-style-outline-white .wp-block-button__link:hover,
.wp-block-button.is-style-outline-white .wp-block-button__link:focus,
.wp-block-button.is-style-outline-white .wp-block-button__link.has-text-color:hover,
.wp-block-button.is-style-outline-white .wp-block-button__link.has-text-color:focus,
.wp-block-button.is-style-outline-white > .wp-block-button__link.wp-element-button:hover,
.wp-block-button.is-style-outline-white > .wp-block-button__link.wp-element-button:focus,
.wp-block-button.is-style-outline-white > .wp-block-button__link.wp-element-button.has-text-color:hover,
.wp-block-button.is-style-outline-white > .wp-block-button__link.wp-element-button.has-text-color:focus {
  background: var(--wp--preset--color--surface) !important;
  border-color: var(--wp--preset--color--surface) !important;
  color: var(--wp--preset--color--hover) !important;
}

/* Fluent Forms: base visual alineada al design system del theme. */
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform .ff-el-form-control,
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform select.ff-el-form-control,
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform textarea.ff-el-form-control {
  font: inherit;
  letter-spacing: inherit;
  min-height: 3rem;
  padding: 0.8rem 1rem;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 8px;
  background: var(--wp--preset--color--surface);
  color: var(--wp--preset--color--text);
  box-shadow: none;
  transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform textarea.ff-el-form-control {
  min-height: 8rem;
  padding-top: 0.9rem;
  padding-bottom: 0.9rem;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform .ff-el-form-control::placeholder,
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform textarea.ff-el-form-control::placeholder {
  color: var(--wp--preset--color--muted);
  opacity: 1;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform .ff-el-form-control:focus,
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform select.ff-el-form-control:focus,
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform textarea.ff-el-form-control:focus {
  border-color: var(--wp--preset--color--accent);
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--accent) 18%, transparent);
}

:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform .ff-el-input--label label,
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform .ff-el-form-check label {
  font: inherit;
  color: var(--wp--preset--color--text);
  font-weight: 600;
}

:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform .ff-btn,
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform .ff-btn-submit,
:is(.wp-site-blocks, .editor-styles-wrapper) .fluentform .ff_submit_btn_wrapper .ff-btn {
  text-decoration: none;
  cursor: pointer;
}
