.cursor-dot,
.cursor-ring {
    z-index: 100010 !important;
}

/* Páginas ocultas («hidden» en i18n/pages.json; las aplica scripts/site_seo.py, 31-10-2026): lo que solo existe para
   ellas no se ve aunque su pieza tenga su propio display, y un enlace a ellas dentro de una frase queda como el texto */
[data-if-page][hidden] {
    display: none !important;
}

a[data-link-if-page]:not([href]) {
    color: inherit;
    text-decoration: none;
}

/* Al pulsar con el dedo, nunca el recuadro del navegador: cada pieza responde a su manera (site-navigation.js,
   initTouchPress). */
html {
    -webkit-tap-highlight-color: transparent;
}

:root {
    --site-nav-separator-gap: 0.75rem;
    --site-nav-separator-opacity: 0.34;
}

/* Opacity and transform isolate the submenu from the header's difference
   blending. Height-only animation keeps every label in the same contrast layer. */
header#navbar .nav-submenu {
    opacity: 1 !important;
    transform: none !important;
    transition-property: max-height !important;
}

header#navbar .nav-submenu a {
    color: #F5F4F1 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}

header#navbar .nav-link::after {
    display: none !important;
}

header#navbar nav > .nav-link.is-current {
    position: relative;
}

/* El punto de la pagina actual va a la izquierda de la palabra: el menu llega a --site-edge del borde (05-10-2026) */
header#navbar nav > .nav-link.is-current::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -1rem;
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 999px;
    background: currentColor;
    transform: translateY(-50%);
    box-shadow: none;
}

header#navbar .nav-submenu > div {
    border-right-color: transparent !important;
}

/* Al pasar el ratón: el trazo fino de luz del libro de marca (1 px, sin halo). Crece de izquierda a derecha y el brillo
   va en la punta que avanza; el arranque queda apagado.
   Sobre oscuro y fotos, la luz de noche; sobre una sección clara, la de día, en naranja. */
.site-nav-hover-indicator {
    --trazo: 232, 172, 104;
    background: linear-gradient(90deg, rgba(var(--trazo), 0), rgba(var(--trazo), .95));
    height: 1px;
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    top: 0;
    transform: scaleX(0);
    transform-origin: left center;
    will-change: transform, opacity;
    width: 0;
    z-index: 100250;
}

.site-nav-hover-indicator.is-visible {
    opacity: 1;
}

.site-nav-hover-indicator.is-day {
    --trazo: 214, 140, 70;
}

/* El borde del desplegable: el mismo trazo, apagado en los dos extremos y brillante en el centro, donde nace al abrirse
   y desde donde se estira hacia arriba y hacia abajo (el desplegable siempre es oscuro) */
.site-nav-submenu-accent {
    background: linear-gradient(180deg, rgba(232, 172, 104, 0), rgba(232, 172, 104, .95) 50%, rgba(232, 172, 104, 0));
    height: 0;
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    top: 0;
    transform: scaleY(0);
    transform-origin: center center;
    transition: transform 1s cubic-bezier(0.16, 0.84, 0.32, 1), opacity 0.15s ease;
    width: 1px;
    will-change: transform, opacity;
    z-index: 100250;
}

.site-nav-submenu-accent.is-visible {
    opacity: 1;
    transform: scaleY(1);
}

@media (max-width: 767px) {
    .site-nav-hover-indicator,
    .site-nav-submenu-accent {
        display: none;
    }
}

.site-gutter {
    width: 100%;
    padding-left: clamp(1.5rem, 5.55vw, 5rem);
    padding-right: clamp(1.5rem, 5.55vw, 5rem);
}

/* Distancia al borde de la pantalla de todo lo fijo: cabecera, cookies y WhatsApp (decision del usuario,
   05-10-2026). Una sola medida; floating-contact.css y cookie-consent.css la leen. */
:root {
    --site-edge: 1rem;
}

@media (max-width: 900px) {
    :root {
        --site-edge: 0.75rem;
    }
}

/* La cabecera se coloca por lo que se ve: el simbolo del logo va 5 px por encima de su texto (alineacion optica),
   asi que su borde de arriba, el de la primera linea del menu y el del boton de movil quedan a --site-edge. */
header#navbar {
    padding-top: calc(var(--site-edge) + 4px);
}

header#navbar > .site-gutter {
    padding-left: var(--site-edge);
    padding-right: var(--site-edge);
}

header#navbar > .site-gutter > nav,
header#navbar > .site-gutter > #mobile-menu-btn {
    margin-top: -4px;
}

.site-language-switcher {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.34rem;
    margin-top: 0 !important;
    padding-top: var(--site-nav-separator-gap);
    border-top: 0;
    color: #FFFFFF;
    font-family: Inter, sans-serif;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    pointer-events: auto;
    text-transform: uppercase;
}

.site-language-switcher::before,
header nav > .nav-link.border-t::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 1px;
    background: currentColor;
    opacity: var(--site-nav-separator-opacity);
    pointer-events: none;
}

.site-language-switcher__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.58rem;
    height: 1.58rem;
    border-radius: 999px;
    color: currentColor;
    opacity: 0.72;
    text-decoration: none;
    transition: background 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

:where(html:not(.is-touch)) .site-language-switcher__link:hover,
.site-language-switcher__link:focus-visible {
    background: rgba(255, 255, 255, 0.14);
    opacity: 1;
    outline: none;
}

.site-language-switcher__link:focus-visible {
    box-shadow: 0 0 0 2px rgba(168, 40, 136, 0.54);
}

.site-language-switcher__link.is-active {
    background: #FFFFFF;
    color: #111111;
    opacity: 1;
}

:where(html:not(.is-touch)) .site-language-switcher__link:not(.is-active):hover {
    transform: translateY(-1px);
}

header nav > .nav-link.border-t {
    position: relative;
    margin-top: 0 !important;
    padding-top: var(--site-nav-separator-gap) !important;
    border-top: 0 !important;
    text-align: right;
}

header nav > .nav-link.flex.items-center {
    min-height: 1.15rem;
}

header nav > .nav-link.flex.items-center img {
    width: 1.35rem !important;
    height: 1.35rem !important;
    margin-top: -0.12rem !important;
}

header nav > .nav-link.flex.items-center + .site-language-switcher {
    margin-top: 0 !important;
}
