
@font-face {
  font-family: "Libre Baskerville";
  src: url("/assets/fuentes/libre-baskerville-latin.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Montserrat";
  src: url("/assets/fuentes/montserrat-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Libre Baskerville respaldo";
  src: local("Georgia");
  size-adjust: 116.9%;
  ascent-override: 83%;
  descent-override: 23.1%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Montserrat respaldo";
  src: local("Arial");
  size-adjust: 107.5%;
  ascent-override: 90%;
  descent-override: 23.3%;
  line-gap-override: 0%;
}

@media (min-width: 768px) and (max-width: 1199px) {
  :root { --margen: var(--space-5); }
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; border-radius: var(--radius); }
html {
  color-scheme: dark;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: var(--encabezado-alto);
}
body {
  min-height: 100svh;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--text-18);
  font-weight: 400;
  line-height: 1.55;
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}
img, svg, video, picture { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
h1, h2, h3, p { overflow-wrap: break-word; }

.titulo-portada, .titulo, .subtitulo, .cifra { font-family: var(--font-serif); font-weight: 400; letter-spacing: 0; }
.titulo-portada {
  font-size: var(--text-56);
  line-height: 1.05;
  text-wrap: balance;
}
.titulo { font-size: var(--text-48); line-height: 1.1; text-wrap: balance; }
.subtitulo { font-size: var(--text-34); line-height: 1.2; text-wrap: balance; }
.cuerpo { font-size: var(--text-18); line-height: 1.55; max-width: 36em; text-wrap: pretty; }
.cuerpo-grande { font-size: var(--text-20); line-height: 1.55; max-width: 34em; text-wrap: pretty; }
.etiqueta {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: var(--text-16);
  line-height: 1.4;
  letter-spacing: var(--espaciado-mayusculas);
  text-transform: uppercase;
}
.cifra { font-variant-numeric: lining-nums; line-height: 1; }
.texto-secundario { color: var(--text-muted); }
@media (min-width: 768px) {
  .titulo-portada { font-size: var(--text-96); }
  .titulo { font-size: var(--text-72); }
  .subtitulo { font-size: var(--text-40); }
  .cuerpo { font-size: var(--text-20); }
  .cuerpo-grande { font-size: var(--text-24); }
  .etiqueta { font-size: var(--text-18); }
}
@media (min-width: 1200px) {
  .titulo-portada { font-size: var(--text-120); }
}

.envoltura { padding-inline: var(--margen); }
.solo-lectores {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
:focus:not(:focus-visible) { outline: none; }

.saltar {
  position: absolute; left: var(--space-2); top: -100px; z-index: 100;
  padding: var(--space-2) var(--space-3);
  background: var(--color-cantera); color: var(--color-obsidiana);
  font-weight: 500; text-decoration: none;
}
.saltar:focus { top: var(--space-2); }

.boton {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 56px; min-width: 44px;
  padding: 0 var(--space-4);
  background: var(--accent); color: var(--on-accent);
  font-family: var(--font-sans); font-weight: 500; font-size: var(--text-16);
  letter-spacing: var(--espaciado-mayusculas); text-transform: uppercase;
  text-decoration: none; text-align: center;
  transition: transform 150ms var(--ease-out);
}
.boton:active { transform: scale(0.98); }
.boton-secundario {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 56px; padding: 0 var(--space-4);
  border: 1px solid var(--color-cantera); color: var(--color-cantera);
  font-weight: 500; font-size: var(--text-16);
  letter-spacing: var(--espaciado-mayusculas); text-transform: uppercase; text-decoration: none;
  transition: transform 150ms var(--ease-out);
}
.boton-secundario:active { transform: scale(0.98); }

.enlace {
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 1px;
  padding-block: 2px;
  transition: background-size var(--motion-fast) var(--ease-out);
}
.enlace:hover, .enlace:focus-visible { background-size: 100% 1px; }

.encabezado {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  height: var(--encabezado-alto);
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-3);
  padding-inline: var(--margen);
  background: var(--color-obsidiana);
  transition: transform var(--motion-base) var(--ease-out);
}
.encabezado.oculto { transform: translateY(-100%); transition-timing-function: var(--ease-in); transition-duration: 200ms; }
.encabezado__marca { display: block; flex: none; }
.encabezado__marca img { width: 256px; height: auto; }
.encabezado__marca:focus-visible { outline-offset: -2px; }
.encabezado__nav { display: flex; gap: var(--space-4); }
.encabezado__nav a {
  display: inline-flex; align-items: center; min-height: 44px;
  font-size: var(--text-16); font-weight: 500;
  letter-spacing: var(--espaciado-mayusculas); text-transform: uppercase;
  color: var(--color-cantera);
}
.encabezado__nav[hidden] { display: none; }
.encabezado__menu, .encabezado__cerrar {
  display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; padding: 0 var(--space-1);
  margin-right: calc(var(--space-1) * -1);
  background: none; border: 0; cursor: pointer;
  font-family: var(--font-sans); font-size: var(--text-16); font-weight: 500;
  letter-spacing: var(--espaciado-mayusculas); text-transform: uppercase;
  color: var(--color-cantera);
}
.encabezado__menu[hidden], .encabezado__cerrar[hidden] { display: none; }
.compartir {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 var(--space-3);
  background: none; border: 1px solid var(--color-cantera); cursor: pointer;
  font-family: var(--font-sans); font-size: var(--text-16); font-weight: 500;
  letter-spacing: var(--espaciado-mayusculas); text-transform: uppercase;
  color: var(--color-cantera);
}
.compartir[hidden] { display: none; }
@media (min-width: 768px) { .encabezado .compartir { display: none; } }
@media (max-width: 767px) {
  .encabezado__nav { gap: var(--space-3); }
  html:not(.js) .encabezado { height: auto; flex-wrap: wrap; row-gap: 0; padding-block: var(--space-1); }
  html:not(.js) .encabezado__marca img { width: 200px; }
}
.encabezado--abierto .encabezado__nav {
  position: fixed; inset: 0; z-index: 60;
  flex-direction: column; justify-content: center; align-items: flex-start; gap: var(--space-3);
  padding: var(--encabezado-alto) var(--margen) var(--space-5);
  background: var(--color-obsidiana);
}
.encabezado--abierto .encabezado__nav a { font-size: var(--text-24); }
.encabezado--abierto .encabezado__marca { position: relative; z-index: 61; }
.encabezado--abierto .encabezado__marca img { width: 200px; }
@media (min-width: 768px) { .encabezado__nav .encabezado__inicio { display: none; } }
html:not(.js) .encabezado__nav .encabezado__inicio { display: none; }
.encabezado--abierto .encabezado__cerrar { position: absolute; top: 0; right: var(--margen); height: var(--encabezado-alto); }
.encabezado--abierto .compartir { margin-top: var(--space-3); }
html.menu-abierto { overflow: hidden; }
main { display: block; }
.bajo-encabezado { padding-top: var(--encabezado-alto); }

.pie {
  background: var(--color-obsidiana-profunda);
  color: var(--color-cantera);
  padding: var(--space-6) var(--margen) var(--space-5);
}
@media (max-width: 767px) { .pie { padding-top: var(--space-5); } }
.pie__lema { font-family: var(--font-serif); font-size: var(--text-40); line-height: 1.1; text-wrap: balance; }
.pie__que-es { margin-top: var(--space-3); max-width: 44em; font-size: var(--text-16); line-height: 1.5; color: var(--color-piedra); text-wrap: pretty; }
[data-renglones] > div { padding-block: 0.14em; margin-block: -0.14em; }
.pie__columnas { margin-top: var(--space-5); display: grid; gap: var(--space-4); }
.pie__titulo {
  font-family: var(--font-sans); font-weight: 500; font-size: var(--text-16); line-height: 1.4;
  letter-spacing: var(--espaciado-mayusculas); text-transform: uppercase; color: var(--color-piedra);
}
.pie__direccion { margin-top: var(--space-1); font-style: normal; font-size: var(--text-18); line-height: 1.5; max-width: 22em; }
.pie__columna > p { font-size: var(--text-18); }
.pie__columna a { display: inline-flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
.pie__horario { font-size: var(--text-16); color: var(--color-piedra); }
.pie__botones { margin-top: var(--space-4); display: flex; flex-wrap: wrap; gap: var(--space-2); }
.pie__boton {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 var(--space-3);
  border: 1px solid var(--color-cantera); color: var(--color-cantera); text-decoration: none;
  font-family: var(--font-sans); font-weight: 500; font-size: var(--text-16);
  letter-spacing: var(--espaciado-mayusculas); text-transform: uppercase;
  transition: background-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out);
}
.pie__boton:hover { background: var(--color-cantera); color: var(--color-obsidiana-profunda); }
.pie__nav, .pie__legales { margin-top: var(--space-4); display: flex; flex-wrap: wrap; column-gap: var(--space-4); }
.pie__nav a, .pie__legales a { display: inline-flex; align-items: center; min-height: 44px; }
.pie__nav a { font-size: var(--text-18); }
.pie__legales { margin-top: var(--space-2); }
.pie__legales a { font-size: var(--text-16); color: var(--color-piedra); }
.aviso-simplificado { margin-top: var(--space-3); max-width: 60em; font-size: var(--text-16); line-height: 1.5; color: var(--color-piedra); text-wrap: pretty; }
.pie__legal { margin-top: var(--space-3); font-size: var(--text-16); line-height: 1.5; color: var(--color-piedra); }
.pie__mapa { margin-top: var(--space-5); }
.pie__mapa img { width: 100%; max-width: 280px; height: auto; margin-top: var(--space-2); }
.pie__regiones { margin-top: var(--space-2); font-size: var(--text-16); line-height: 1.5; color: var(--color-piedra); }
.pie__region { white-space: nowrap; }
.pie__muestra { display: inline-block; width: 0.9em; height: 0.9em; margin-right: 0.4em; vertical-align: -0.1em; border: 1px solid var(--color-cantera); }
.pie__muestra--1 { background: color-mix(in srgb, var(--color-cantera) 90%, var(--color-obsidiana)); }
.pie__muestra--2 { background: color-mix(in srgb, var(--color-cantera) 55%, var(--color-obsidiana)); }
.pie__muestra--3 { background: color-mix(in srgb, var(--color-cantera) 30%, var(--color-obsidiana)); }
.pie__muestra--expansion { background: repeating-linear-gradient(45deg, var(--color-cantera) 0 1.5px, transparent 1.5px 5px); }
body:has(main.contacto) .pie__mapa { display: none; }
body:has(main.contacto) .pie .aviso-simplificado { display: none; }
@media (max-width: 767px) { .pie__boton { padding-inline: var(--space-2); } }
@media (min-width: 768px) {
  .pie__columnas { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
}
@media (min-width: 768px) { .pie__lema { font-size: var(--text-56); } }

.relieve { position: absolute; pointer-events: none; user-select: none; }
.relieve img, .relieve svg { width: 100%; height: 100%; }

[data-lampara] { position: relative; isolation: isolate; }
.lampara { position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none; mix-blend-mode: screen; }
.lampara__luz {
  position: absolute;
  left: var(--lampara-x, 50%); top: var(--lampara-y, 45%);
  width: calc(var(--lampara-radio) * 2); height: calc(var(--lampara-radio) * 2);
  margin: calc(var(--lampara-radio) * -1) 0 0 calc(var(--lampara-radio) * -1);
  background: radial-gradient(closest-side, rgb(var(--lampara-piedra)) 0%, rgb(var(--lampara-piedra) / 0.55) 45%, rgb(var(--lampara-piedra) / 0) 100%);
  will-change: transform;
}
[data-lampara="papel"] .lampara__luz {
  background: radial-gradient(closest-side, rgb(var(--lampara-papel) / 0.7) 0%, rgb(var(--lampara-papel) / 0.35) 45%, rgb(var(--lampara-papel) / 0) 100%);
}
.lampara-viva .lampara__luz { left: 0; top: 0; margin: 0; }
:where([data-lampara]) > :where(:not(.lampara):not(.relieve)) { position: relative; z-index: 2; }

@view-transition { navigation: auto; }
.encabezado__marca { view-transition-name: marca; }
::view-transition-group(*) { animation-duration: var(--motion-base); animation-timing-function: var(--ease-out); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  @view-transition { navigation: none; }
}


html.lenis, html.lenis body { height: auto; }
.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-smooth iframe { pointer-events: none; }

.cursor-etiqueta {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 90;
  margin: 20px 0 0 20px;
  padding: 6px 12px;
  background: var(--color-cantera);
  color: var(--color-obsidiana);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: var(--text-16);
  line-height: 1.2;
  letter-spacing: var(--espaciado-mayusculas);
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  scale: 0.6;
  transition: opacity 150ms var(--ease-out), scale 200ms var(--ease-out);
}
.cursor-etiqueta--visible { opacity: 1; scale: 1; }

[data-pausa] {
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: var(--space-2) calc(100% - 8px);
  background-size: calc((100% - var(--space-4)) * var(--avance, 0)) 2px;
}

.intro { display: none; --largo-brujula: 27524; }
.js .intro {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  background: var(--color-obsidiana);
  animation: intro-sale 700ms cubic-bezier(.76, 0, .24, 1) 1600ms forwards, intro-funde 200ms linear 2300ms forwards;
}
.intro__brujula { width: min(40vw, 220px); height: auto; overflow: visible; }
.con-intro .intro__brujula { animation: intro-aterriza 700ms cubic-bezier(.76, 0, .24, 1) 1600ms forwards; }
.intro__brujula use {
  fill: var(--color-laton);
  fill-opacity: 0;
  stroke: var(--color-laton);
  stroke-width: 6;
  stroke-dasharray: var(--largo-brujula);
  stroke-dashoffset: var(--largo-brujula);
  animation: intro-trazo 1400ms var(--ease-out) 100ms forwards, intro-relleno 300ms var(--ease-out) 1300ms forwards;
}
.intro--sale { animation: intro-sale 400ms cubic-bezier(.76, 0, .24, 1) forwards, intro-funde 150ms linear 400ms forwards; }
.intro--sale .intro__brujula { animation: intro-aterriza 400ms cubic-bezier(.76, 0, .24, 1) forwards; }
.intro--sale .intro__brujula use { animation: none; stroke-dashoffset: 0; fill-opacity: 1; }
.sin-intro .intro, .js .intro.intro--hecha { display: none; }
@keyframes intro-trazo { to { stroke-dashoffset: 0; } }
@keyframes intro-relleno { to { fill-opacity: 1; } }
@keyframes intro-aterriza { to { translate: var(--intro-x, 0) var(--intro-y, 0); scale: var(--intro-s, 0.26); } }
@keyframes intro-sale { to { clip-path: inset(0 0 calc(100% - var(--encabezado-alto)) 0); } }
@keyframes intro-funde { to { opacity: 0; visibility: hidden; } }
@media (prefers-reduced-motion: reduce) { .js .intro { display: none; } }

.con-intro .encabezado__marca img { clip-path: inset(0 74% 0 0); }
html.intro-lista .encabezado__marca img { clip-path: inset(0); transition: clip-path 500ms var(--ease-out); }

.pie__logo { display: block; width: 256px; max-width: 100%; height: auto; margin-bottom: var(--space-5); }
@media (prefers-reduced-motion: no-preference) {
  .js .pie__que-es, .js .pie__columnas, .js .pie__mapa, .js .pie__botones, .js .pie__nav, .js .pie__legales, .js .aviso-simplificado, .js .pie__legal { transition: translate var(--motion-slow) var(--ease-out) 300ms, opacity var(--motion-slow) var(--ease-out) 300ms; }
  .js .pie:not(.pie--vista) :is(.pie__que-es, .pie__columnas, .pie__mapa, .pie__botones, .pie__nav, .pie__legales, .aviso-simplificado, .pie__legal) { translate: 0 16px; opacity: 0; }
}

body { overflow-x: clip; }
