@font-face {
  font-family: "DM Sans";
  src: url("/fuentes/dm-sans.woff2") format("woff2");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Geist Mono";
  src: url("/fuentes/geist-mono.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --color-fondo: #0e1011;
  --color-texto: #fff;
  --color-texto-secundario: rgba(255, 255, 255, .6);
  --color-superficie: rgba(255, 255, 255, .0706);
  --color-superficie-hover: rgba(255, 255, 255, .1098);
  --color-superficie-opaca: #1f2122;
  --color-inverso: #fff;
  --color-inverso-hover: #f6f6f6;
  --color-texto-inverso: #0e1011;
  --color-texto-inverso-secundario: rgba(14, 16, 17, .6);
  --color-negro: #000;
  --color-borde-campo: rgba(136, 136, 136, .1);
  --color-borde-foco: #262829;
  --color-velo: rgba(0, 0, 0, .8);
  --color-translucido: rgba(14, 16, 17, .2);
  --color-error: #ff2244;
  --color-error-fondo: rgba(255, 34, 68, .15);
  --color-superficie-clara: #f6f6f6;
  --color-superficie-clara-hover: #ececec;
  --color-borde-activo: rgba(255, 255, 255, .6);

  --fuente: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fuente-formulario: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --texto-titulo-1: 2.5rem;
  --interlineado-titulo-1: 1.2;
  --texto-titulo-2: 2rem;
  --texto-titulo-3: 1.75rem;
  --texto-titulo-4: 1.5rem;
  --texto-titulo-5: 1.125rem;
  --texto-titulo-6: 1rem;
  --texto-entradilla: 1rem;
  --texto-cuerpo: .9375rem;
  --texto-interfaz: .875rem;
  --texto-etiqueta: .75rem;

  --radio-tarjeta: .75rem;
  --radio-pestana: 1.125rem;
  --radio-muesca: 1.25rem;
  --radio-menu-boton: .625rem;
  --radio-pie-foto: .5rem;
  --radio-boton: .375rem;
  --radio-etiqueta: .25rem;

  --marco: .75rem;
  --hueco: .75rem;
  --contenedor: 78rem;
  --lado: 4rem;
  --v: 6rem;
  --v-tit: 3rem;
  --alto-muesca: 2.25rem;
  --columna: max(var(--lado), calc((100% - var(--contenedor)) / 2));
  --ancho-carrusel: calc((100% - var(--hueco) * 3) / 3.5);
  --aire-foco: calc(var(--marco) + var(--alto-muesca) + 1.5rem);
  --texto-titular: clamp(2.25rem, 7vw, 3.75rem);

  --curva-entrada: cubic-bezier(.12, .23, .5, 1);
  --curva-boton-envio: cubic-bezier(.44, 0, .56, 1);
  --curva-in-out-quart: cubic-bezier(.76, 0, .24, 1);
  --curva-out-quart: cubic-bezier(.25, 1, .5, 1);
  --curva-ease-in-out: cubic-bezier(.42, 0, .58, 1);
  --curva-pintar: cubic-bezier(.33, 1, .68, 1);
  --muelle-hover: linear(0, 0.0203, 0.0725, 0.1453, 0.2299, 0.3197, 0.4097, 0.4963, 0.5773, 0.6511, 0.717, 0.7747, 0.8244, 0.8664, 0.9014, 0.9301, 0.9532, 0.9714, 0.9854, 0.9959, 1.0036, 1.0089, 1.0123, 1.0142, 1.0151, 1.0151, 1.0145, 1.0136, 1.0123, 1.011, 1.0096, 1.0083, 1.007, 1.0058, 1.0048, 1.0038, 1.003, 1.0023, 1.0018, 1.0013, 1);
  --muelle-carrusel: linear(0, 0.02, 0.0714, 0.1432, 0.2268, 0.3157, 0.405, 0.4912, 0.5719, 0.6456, 0.7115, 0.7695, 0.8195, 0.862, 0.8975, 0.9267, 0.9502, 0.9689, 0.9834, 0.9944, 1.0024, 1.008, 1.0117, 1.0139, 1.015, 1.0151, 1.0147, 1.0138, 1.0127, 1.0114, 1.01, 1.0087, 1.0074, 1.0062, 1.0051, 1.0041, 1.0033, 1.0026, 1.0019, 1.0014, 1);
  --muelle-menu: linear(0, 0.0236, 0.0811, 0.1572, 0.2417, 0.3277, 0.411, 0.4888, 0.5598, 0.6235, 0.6798, 0.729, 0.7717, 0.8083, 0.8396, 0.8662, 0.8887, 0.9077, 0.9235, 0.9368, 0.9479, 0.9571, 0.9647, 0.971, 0.9763, 0.9806, 0.9841, 0.987, 0.9894, 0.9914, 0.993, 0.9943, 0.9953, 0.9962, 0.9969, 0.9975, 0.998, 0.9984, 0.9987, 0.9989, 1);
  --muelle-suave: linear(0, 0.0576, 0.1692, 0.2884, 0.3984, 0.4946, 0.5766, 0.6459, 0.704, 0.7527, 0.7934, 0.8274, 0.8558, 0.8796, 0.8994, 0.916, 0.9298, 0.9414, 0.951, 0.9591, 0.9658, 0.9715, 0.9762, 0.9801, 0.9834, 0.9861, 0.9884, 0.9903, 0.9919, 0.9932, 0.9944, 0.9953, 0.9961, 0.9967, 0.9973, 0.9977, 0.9981, 0.9984, 0.9987, 0.9989, 1);
  --duracion-muelle-hover: .38s;
  --duracion-muelle-carrusel: 1.13s;
  --duracion-muelle-menu: .61s;
  --duracion-muelle-suave: .72s;
  --duracion-entrada: .5s;

  --esquina-ai: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M0 0L0 18C0 8.059 8.059 0 18 0Z'/%3E%3C/svg%3E");
  --esquina-ad: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M18 0L0 0C9.941 0 18 8.059 18 18Z'/%3E%3C/svg%3E");
  --esquina-bi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M0 18L18 18C8.059 18 0 9.941 0 0Z'/%3E%3C/svg%3E");
  --esquina-bd: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M18 18L18 0C18 9.941 9.941 18 0 18Z'/%3E%3C/svg%3E");
  --marco-ai: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M0 0L0 12C0 5.373 5.373 0 12 0Z'/%3E%3C/svg%3E");
  --marco-ad: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M12 0L0 0C6.627 0 12 5.373 12 12Z'/%3E%3C/svg%3E");
  --marco-bi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M0 12L12 12C5.373 12 0 6.627 0 0Z'/%3E%3C/svg%3E");
  --marco-bd: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M12 12L12 0C12 6.627 6.627 12 0 12Z'/%3E%3C/svg%3E");
  --mascara-cinta: linear-gradient(to right, transparent 0%, #000 12.5%, #000 87.5%, transparent 100%);
  --casilla: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Crect x='.5' y='.5' width='17' height='17' rx='3.5' fill='%230e1011' stroke='%23262829'/%3E%3C/svg%3E");
  --casilla-error: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Crect x='.5' y='.5' width='17' height='17' rx='3.5' fill='%230e1011' stroke='%23ff2244'/%3E%3C/svg%3E");
  --casilla-marcada: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Crect width='18' height='18' rx='4' fill='%23fff'/%3E%3Cpath d='M4.6 9.2l2.9 2.9l5.9 -5.9' fill='none' stroke='%230e1011' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

@supports not (transition-timing-function: linear(0, 1)) {
  :root {
    --muelle-hover: cubic-bezier(.4, .9, .1, 1.05);
    --muelle-carrusel: cubic-bezier(.4, .9, .1, 1.05);
    --muelle-menu: cubic-bezier(.3, .6, .1, 1.05);
    --muelle-suave: cubic-bezier(.2, .6, .05, 1.05);
  }
}

@media (max-width: 1199.98px) {
  :root {
    --texto-titulo-1: 2.25rem;
    --interlineado-titulo-1: 1.1;
    --texto-titulo-2: 1.875rem;
    --texto-titulo-3: 1.625rem;
    --texto-titulo-4: 1.375rem;
    --lado: 3rem;
    --v: 4rem;
    --v-tit: 2.5rem;
  }
}

@media (max-width: 991.98px) {
  :root {
    --ancho-carrusel: calc((100% - var(--hueco) * 2) / 2.5);
  }
}

@media (max-width: 809.98px) {
  :root {
    --texto-titulo-1: 2rem;
    --interlineado-titulo-1: 1.2;
    --texto-titulo-2: 1.75rem;
    --texto-titulo-3: 1.5rem;
    --texto-titulo-4: 1.25rem;
    --lado: 1.25rem;
    --v: 3rem;
    --v-tit: 2rem;
  }
}

@media (max-width: 479.98px) {
  :root {
    --texto-titular: min(9.25vw, 2.25rem);
    --ancho-carrusel: calc((100% - var(--hueco)) / 1.2);
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: clamp(100%, calc(100vw / 90), 150%);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  background: var(--color-fondo);
  scrollbar-gutter: stable;
  scroll-padding-top: var(--aire-foco);
}

html.sin-desplazamiento {
  overflow: hidden;
}

body {
  margin: 0;
  min-height: 100vh;
  padding: var(--marco);
  background: var(--color-fondo);
  color: var(--color-texto);
  font-family: var(--fuente);
  font-size: var(--texto-cuerpo);
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: 0;
  font-optical-sizing: none;
  font-variation-settings: "opsz" 14;
  overflow-x: clip;
}

img,
svg,
video {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea,
select {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
}

button {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  text-align: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 400;
}

ul,
ol {
  padding: 0;
  list-style: none;
}

[hidden] {
  display: none !important;
}

::selection {
  background: var(--color-texto);
  color: var(--color-fondo);
}

:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: .1875rem;
}

.oculto {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.saltar {
  position: fixed;
  top: var(--marco);
  left: 50%;
  z-index: 60;
  display: flex;
  align-items: center;
  min-height: 2.5rem;
  padding: .625rem .875rem;
  border-radius: var(--radio-boton);
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
  font-size: var(--texto-interfaz);
  line-height: 1;
  transform: translate(-50%, -200%);
}

.saltar:focus-visible {
  transform: translate(-50%, 0);
}

.icono {
  flex: none;
  width: var(--icono-tamano, .875rem);
  height: var(--icono-tamano, .875rem);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.125;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.icono-rodillo {
  display: flex;
  flex: none;
  flex-direction: column;
  width: var(--icono-tamano, .875rem);
  height: var(--icono-tamano, .875rem);
  overflow: hidden;
}

.icono-rodillo .icono {
  transition: transform var(--duracion-icono, var(--duracion-muelle-suave)) var(--curva-icono, var(--muelle-suave));
}

.rodillo {
  display: inline-flex;
  flex: none;
  height: var(--rodillo-alto, 1.0625rem);
  overflow: hidden;
  vertical-align: top;
}

.rodillo__pista {
  display: flex;
  flex: none;
  align-self: flex-start;
  flex-direction: column;
  gap: var(--rodillo-hueco, 0px);
  transition: transform var(--rodillo-duracion, var(--duracion-muelle-menu)) var(--rodillo-curva, var(--muelle-menu));
}

.rodillo__linea {
  display: block;
  white-space: nowrap;
}

.rodillo--inverso .rodillo__pista {
  transform: translateY(calc(var(--rodillo-alto, 1.0625rem) - 100%));
}

@media (hover: hover) {
  :is(a, button):hover .rodillo:not(.rodillo--estado) .rodillo__pista {
    transform: translateY(calc(var(--rodillo-alto, 1.0625rem) - 100%));
  }

  :is(a, button):hover .rodillo--inverso:not(.rodillo--estado) .rodillo__pista {
    transform: none;
  }

  :is(a, button):hover > .icono-rodillo .icono,
  :is(a, button):hover > * > .icono-rodillo .icono {
    transform: translateY(-100%);
  }
}

.titulo-1 {
  font-size: var(--texto-titulo-1);
  line-height: var(--interlineado-titulo-1);
}

.titulo-2 {
  font-size: var(--texto-titulo-2);
  line-height: 1.2;
}

.titulo-3 {
  font-size: var(--texto-titulo-3);
  line-height: 1.2;
}

.titulo-4 {
  font-size: var(--texto-titulo-4);
  line-height: 1.2;
}

.titulo-5 {
  font-size: var(--texto-titulo-5);
  line-height: 1.2;
}

.titulo-6 {
  font-size: var(--texto-titulo-6);
  line-height: 1.4;
}

.entradilla {
  font-size: var(--texto-entradilla);
  line-height: 1.6;
}

.texto {
  font-size: var(--texto-cuerpo);
  line-height: 1.6;
}

.texto-interfaz {
  font-size: var(--texto-interfaz);
  line-height: 1.2;
}

.texto-secundario {
  color: var(--color-texto-secundario);
}

.tarjeta--clara .texto-secundario {
  color: var(--color-texto-inverso-secundario);
}

.titulo-seccion {
  font-size: var(--texto-titulo-1);
  line-height: var(--interlineado-titulo-1);
  text-wrap: balance;
}

.marco {
  position: fixed;
  inset: 0;
  z-index: 50;
  pointer-events: none;
  border: var(--marco) solid var(--color-fondo);
}

.marco::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--color-fondo);
  -webkit-mask: var(--marco-ai) top left / var(--marco) var(--marco) no-repeat, var(--marco-ad) top right / var(--marco) var(--marco) no-repeat, var(--marco-bi) bottom left / var(--marco) var(--marco) no-repeat, var(--marco-bd) bottom right / var(--marco) var(--marco) no-repeat;
  mask: var(--marco-ai) top left / var(--marco) var(--marco) no-repeat, var(--marco-ad) top right / var(--marco) var(--marco) no-repeat, var(--marco-bi) bottom left / var(--marco) var(--marco) no-repeat, var(--marco-bd) bottom right / var(--marco) var(--marco) no-repeat;
}

.contenedor {
  width: 100%;
  max-width: var(--contenedor);
  margin-inline: auto;
}

.pagina {
  display: flex;
  flex-direction: column;
  gap: var(--hueco);
}

.seccion {
  position: relative;
}

.seccion--suelta {
  padding: var(--v) var(--columna);
}

.seccion--suelta + .seccion--suelta {
  padding-top: 0;
}

.tarjeta {
  position: relative;
  border-radius: var(--radio-tarjeta);
  background: var(--color-superficie);
}

.tarjeta--seccion {
  padding: var(--v) var(--lado);
}

.tarjeta--clara {
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
}

.tarjeta--foto {
  overflow: hidden;
  isolation: isolate;
}

.tarjeta--enlace {
  display: block;
  transition: background-color var(--duracion-muelle-hover) var(--muelle-hover);
}

@media (hover: hover) {
  .tarjeta--enlace:hover {
    background-color: var(--color-superficie-hover);
  }
}

.pestana {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem 1rem .75rem;
  border-bottom-right-radius: var(--radio-pestana);
  background: var(--pestana-color, var(--color-fondo));
  color: var(--color-texto);
  font-size: var(--texto-interfaz);
  line-height: 1.05rem;
  white-space: nowrap;
}

.pestana::before,
.pestana::after {
  content: "";
  position: absolute;
  width: var(--radio-pestana);
  height: var(--radio-pestana);
  pointer-events: none;
  background: var(--pestana-color, var(--color-fondo));
  -webkit-mask: var(--pieza-esquina, var(--esquina-ai)) var(--pieza-sitio) / var(--radio-pestana) var(--radio-pestana) no-repeat, linear-gradient(#000 0 0) var(--pieza-union) / var(--pieza-union-tamano) no-repeat;
  mask: var(--pieza-esquina, var(--esquina-ai)) var(--pieza-sitio) / var(--radio-pestana) var(--radio-pestana) no-repeat, linear-gradient(#000 0 0) var(--pieza-union) / var(--pieza-union-tamano) no-repeat;
}

.pestana::before {
  left: 0;
  top: calc(100% - 1px);
  height: calc(var(--radio-pestana) + 1px);
  --pieza-sitio: 0 100%;
  --pieza-union: 0 0;
  --pieza-union-tamano: 100% 1px;
}

.pestana::after {
  left: calc(100% - 1px);
  top: 0;
  width: calc(var(--radio-pestana) + 1px);
  --pieza-sitio: 100% 0;
  --pieza-union: 0 0;
  --pieza-union-tamano: 1px 100%;
}

.pestana--arriba-derecha {
  left: auto;
  right: 0;
  border-radius: 0 0 0 var(--radio-pestana);
}

.pestana--arriba-derecha::before,
.pestana--arriba-derecha::after {
  --pieza-esquina: var(--esquina-ad);
}

.pestana--arriba-derecha::before {
  left: auto;
  top: 0;
  right: calc(100% - 1px);
  width: calc(var(--radio-pestana) + 1px);
  height: var(--radio-pestana);
  --pieza-sitio: 0 0;
  --pieza-union: 100% 0;
  --pieza-union-tamano: 1px 100%;
}

.pestana--arriba-derecha::after {
  left: auto;
  top: calc(100% - 1px);
  right: 0;
  width: var(--radio-pestana);
  height: calc(var(--radio-pestana) + 1px);
  --pieza-sitio: 0 100%;
  --pieza-union: 0 0;
  --pieza-union-tamano: 100% 1px;
}

.pestana--abajo-izquierda {
  top: auto;
  bottom: 0;
  padding: .75rem 1rem .5rem;
  border-radius: 0 var(--radio-pestana) 0 0;
}

.pestana--abajo-izquierda::before,
.pestana--abajo-izquierda::after {
  --pieza-esquina: var(--esquina-bi);
}

.pestana--abajo-izquierda::before {
  top: auto;
  bottom: calc(100% - 1px);
  left: 0;
  --pieza-sitio: 0 0;
  --pieza-union: 0 100%;
  --pieza-union-tamano: 100% 1px;
}

.pestana--abajo-izquierda::after {
  top: auto;
  bottom: 0;
  left: calc(100% - 1px);
  --pieza-sitio: 100% 0;
  --pieza-union: 0 0;
  --pieza-union-tamano: 1px 100%;
}

.pestana--abajo-derecha {
  top: auto;
  left: auto;
  right: 0;
  bottom: 0;
  padding: .75rem 1rem .5rem;
  border-radius: var(--radio-pestana) 0 0 0;
}

.pestana--abajo-derecha::before,
.pestana--abajo-derecha::after {
  --pieza-esquina: var(--esquina-bd);
}

.pestana--abajo-derecha::before {
  left: auto;
  top: auto;
  right: calc(100% - 1px);
  bottom: 0;
  width: calc(var(--radio-pestana) + 1px);
  height: var(--radio-pestana);
  --pieza-sitio: 0 0;
  --pieza-union: 100% 0;
  --pieza-union-tamano: 1px 100%;
}

.pestana--abajo-derecha::after {
  left: auto;
  top: auto;
  right: 0;
  bottom: calc(100% - 1px);
  width: var(--radio-pestana);
  height: calc(var(--radio-pestana) + 1px);
  --pieza-sitio: 0 0;
  --pieza-union: 0 100%;
  --pieza-union-tamano: 100% 1px;
}

.pestana--clara {
  --pestana-color: var(--color-inverso);
  color: var(--color-texto-inverso);
}

.rotulo {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: var(--texto-interfaz);
  line-height: 1.05rem;
  white-space: nowrap;
}

.rotulo--punto::before {
  content: "";
  flex: none;
  width: .375rem;
  height: .375rem;
  border-radius: 50%;
  background: currentColor;
}

.etiqueta {
  display: inline-flex;
  align-items: center;
  padding: .375rem .5rem;
  border-radius: var(--radio-etiqueta);
  background: var(--color-fondo);
  color: var(--color-texto);
  font-size: var(--texto-etiqueta);
  line-height: 1;
  white-space: nowrap;
}

.etiqueta--clara {
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
}

.etiqueta--apagada {
  background: var(--color-superficie-hover);
}

.boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  padding: .625rem .875rem;
  border-radius: var(--radio-boton);
  font-size: var(--texto-interfaz);
  line-height: .875rem;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--duracion-muelle-suave) var(--muelle-suave), color var(--duracion-muelle-suave) var(--muelle-suave);
}

.boton:has(.icono-rodillo) {
  padding: .625rem .75rem .625rem .875rem;
}

.boton .rodillo {
  --rodillo-alto: 1.0625rem;
  margin-block: -.0938rem;
  line-height: 1.0625rem;
}

.boton--oscuro {
  background: var(--color-fondo);
  color: var(--color-texto);
}

.boton--apagado {
  background: var(--color-superficie);
  color: var(--color-texto);
}

.boton--principal {
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
}

.boton--translucido {
  background: var(--color-translucido);
  color: var(--color-texto);
  -webkit-backdrop-filter: blur(.9375rem);
  backdrop-filter: blur(.9375rem);
}

.boton--solo-icono {
  padding: .625rem;
}

.boton--solo-icono:has(.icono-rodillo) {
  padding: .625rem;
}

@media (hover: hover) {
  .boton--oscuro:hover {
    background: var(--color-negro);
  }

  .boton--apagado:hover {
    background: var(--color-superficie-hover);
  }

  .boton--principal:hover {
    background: var(--color-inverso-hover);
  }

  .boton--translucido:hover {
    background: rgba(14, 16, 17, .3);
  }
}

.enlace-texto {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .75rem 0 .875rem;
  margin: -.75rem 0;
  font-size: var(--texto-interfaz);
  line-height: .875rem;
  white-space: nowrap;
  --icono-tamano: .75rem;
}

.enlace-texto::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: .75rem;
  width: 100%;
  height: 1px;
  background: currentColor;
  transition: width var(--duracion-muelle-suave) var(--muelle-suave);
}

@media (hover: hover) {
  .enlace-texto:hover::after {
    width: 1.25rem;
  }
}

.tarjeta-red {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: 1.25rem;
  border-radius: var(--radio-tarjeta);
  background: var(--color-superficie);
  color: var(--color-texto);
  font-size: var(--texto-interfaz);
  line-height: 1.05rem;
  --icono-tamano: 1.125rem;
  --duracion-icono: var(--duracion-muelle-hover);
  --curva-icono: var(--muelle-hover);
  transition: background-color var(--duracion-muelle-hover) var(--muelle-hover);
}

.tarjeta-red--principal {
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
}

@media (hover: hover) {
  .tarjeta-red:hover {
    background: var(--color-superficie-hover);
  }

  .tarjeta-red--principal:hover {
    background: var(--color-inverso-hover);
  }
}

.marca {
  display: grid;
  place-items: center;
  flex: none;
  width: var(--marca-tamano, 3.75rem);
  height: var(--marca-tamano, 3.75rem);
  border-radius: calc(var(--marca-tamano, 3.75rem) * .1875);
  background: var(--marca-fondo, var(--color-inverso));
  color: var(--marca-trazo, var(--color-texto-inverso));
}

.marca svg {
  width: 53.5%;
  height: auto;
  aspect-ratio: 819.98 / 355.84;
}

.logo {
  display: flex;
  align-items: center;
  gap: .5rem;
  color: currentColor;
}

.logo__dibujo {
  flex: none;
  width: 5.0838rem;
  height: .875rem;
  fill: currentColor;
}

.js [data-entrada]:not(.entrada-hecha) {
  opacity: 0;
}

.entrada-hecha {
  animation: entrada var(--duracion-entrada) var(--curva-entrada) var(--retardo, 0s) backwards;
}

@keyframes entrada {
  from {
    opacity: 0;
    transform: translateY(1.25rem);
  }
}

.carrusel {
  padding-block: .25rem;
  margin-block: -.25rem;
  overflow: hidden;
  touch-action: pan-y;
}

.carrusel__pista {
  display: flex;
  gap: var(--hueco);
  will-change: transform;
}

.carrusel--moviendo .carrusel__pista {
  transition: transform var(--duracion-muelle-carrusel) var(--muelle-carrusel);
}

.carrusel--arrastrando {
  cursor: grabbing;
}

.carrusel--arrastrando .carrusel__elemento {
  pointer-events: none;
}

.carrusel__elemento {
  display: flex;
  flex: 0 0 var(--ancho-carrusel);
  min-width: 0;
}

.flecha {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--radio-etiqueta);
  background: var(--color-superficie);
  color: var(--color-texto);
  transition: background-color var(--duracion-muelle-hover) var(--muelle-hover), transform .15s var(--curva-ease-in-out), opacity .3s var(--curva-ease-in-out);
  --icono-tamano: 2.5rem;
}

.flecha .icono {
  stroke-width: 2;
  transition: transform var(--duracion-muelle-hover) var(--muelle-hover);
}

.flecha:active {
  transform: scale(.9);
}

.flecha:disabled {
  cursor: default;
  opacity: .4;
}

@media (hover: hover) {
  .flecha:not(:disabled):hover {
    background: var(--color-superficie-hover);
  }

  .flecha[data-carrusel-anterior]:not(:disabled):hover .icono {
    transform: translateX(-.25rem);
  }

  .flecha[data-carrusel-siguiente]:not(:disabled):hover .icono {
    transform: translateX(.25rem);
  }
}

.acordeon {
  display: flex;
  flex-direction: column;
  gap: var(--hueco);
}

.acordeon__elemento {
  border-radius: var(--radio-tarjeta);
  background: var(--color-superficie);
  transition: background-color var(--duracion-muelle-hover) var(--muelle-hover);
}

@media (hover: hover) {
  .acordeon__elemento:hover {
    background: var(--color-superficie-hover);
  }
}

.acordeon__boton {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2.125rem;
  align-items: center;
  gap: 1rem;
  width: 100%;
  padding: 1.5rem;
  text-align: left;
}

.acordeon__boton:focus-visible {
  outline-offset: -.25rem;
  border-radius: var(--radio-tarjeta);
}

.acordeon__titulo {
  font-size: var(--texto-titulo-5);
  line-height: 1.2;
}

.acordeon__signo {
  display: grid;
  place-items: center;
  width: 2.125rem;
  height: 2.125rem;
  border-radius: var(--radio-boton);
  background: var(--color-fondo);
  transition: background-color var(--duracion-muelle-suave) var(--muelle-suave);
}

.acordeon__signo .icono {
  transition: transform var(--duracion-muelle-hover) var(--muelle-hover);
}

@media (hover: hover) {
  .acordeon__boton:hover .acordeon__signo {
    background: var(--color-negro);
  }
}

.acordeon__elemento--abierto .acordeon__signo .icono {
  transform: rotate(45deg);
}

.js .acordeon__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--duracion-muelle-hover) var(--muelle-hover);
}

.js .acordeon__elemento--abierto .acordeon__panel {
  grid-template-rows: 1fr;
}

.acordeon--quieto .acordeon__panel {
  transition: none;
}

.acordeon__contenido {
  min-height: 0;
  overflow: hidden;
}

.acordeon__contenido > * {
  max-width: 37rem;
  margin: 0 1.5rem 1rem;
  color: var(--color-texto-secundario);
  font-size: var(--texto-cuerpo);
  line-height: 1.6;
}

.acordeon__contenido > :last-child {
  margin-bottom: 1.5rem;
}

.acordeon__contenido a {
  color: var(--color-texto);
  text-decoration: underline;
  text-underline-offset: .1875rem;
}

.acordeon__lista {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.acordeon__lista li {
  display: flex;
  align-items: baseline;
  gap: .75rem;
}

.acordeon__lista li::before {
  content: "";
  flex: none;
  width: .375rem;
  height: .375rem;
  border-radius: 50%;
  background: currentColor;
  transform: translateY(-.125rem);
}

.acordeon__clave {
  background: linear-gradient(var(--color-texto-inverso), var(--color-texto-inverso)) 0 0 / 0% 100% no-repeat, linear-gradient(var(--color-texto-inverso-secundario), var(--color-texto-inverso-secundario));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  transition: background-size 0s;
}

.acordeon--visible .acordeon__elemento--abierto .acordeon__clave,
html:not(.js) .acordeon__clave {
  background-size: 100% 100%, auto;
  transition: background-size .9s var(--curva-pintar) .25s;
}

.tarjeta--clara .acordeon__elemento {
  background: var(--color-superficie-clara);
}

@media (hover: hover) {
  .tarjeta--clara .acordeon__elemento:hover {
    background: var(--color-superficie-clara-hover);
  }

  .tarjeta--clara .acordeon__boton:hover .acordeon__signo {
    background: var(--color-inverso-hover);
  }
}

.tarjeta--clara .acordeon__boton {
  color: var(--color-texto-inverso);
}

.tarjeta--clara .acordeon__contenido > * {
  color: var(--color-texto-inverso-secundario);
}

.tarjeta--clara .acordeon__signo {
  background: var(--color-inverso);
}

.tarjeta--clara .acordeon__contenido a {
  color: var(--color-texto-inverso);
}

@media (max-width: 809.98px) {
  .acordeon__boton {
    padding: 1.25rem;
  }

  .acordeon__contenido > * {
    margin-inline: 1.25rem;
  }

  .acordeon__contenido > :last-child {
    margin-bottom: 1.25rem;
  }

  .acordeon__signo {
    width: 2.5rem;
    height: 2.5rem;
    margin: -.1875rem 0;
  }
}

.importe {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.importe__desde {
  color: var(--color-texto-secundario);
  font-size: var(--texto-etiqueta);
  line-height: 1;
}

.importe__cifra {
  font-size: var(--texto-titulo-1);
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.cabecero {
  overflow: hidden;
  padding-top: calc(var(--v) + var(--alto-muesca));
}

.cabecero__contenedor {
  position: relative;
}

.cabecero__contenedor:has(.cabecero__forma) {
  display: flex;
  flex-direction: column;
  min-height: 21.25rem;
}

.cabecero__contenedor:has(.cabecero__forma) .cabecero__pie {
  margin-top: auto;
}

.cabecero__forma {
  position: absolute;
  top: -1.25rem;
  left: 17.5rem;
  width: 43rem;
  height: auto;
  max-width: none;
  aspect-ratio: 688 / 430;
  overflow: visible;
  fill: var(--color-superficie);
  pointer-events: none;
}

.cabecero__migas,
.cabecero__titulo,
.cabecero__pie {
  position: relative;
}

.cabecero__migas {
  display: flex;
}

.cabecero__miga {
  padding: .75rem;
  margin: -.75rem;
  border-radius: var(--radio-etiqueta);
  transition: opacity .3s var(--curva-ease-in-out);
}

.cabecero__miga:focus-visible {
  outline-offset: -.5rem;
}

@media (hover: hover) {
  .cabecero__miga:hover {
    opacity: .6;
  }
}

.cabecero__titulo {
  max-width: 46rem;
  margin: 1.5rem 0;
  font-size: var(--texto-titular);
  line-height: 1;
  text-wrap: pretty;
}

.cabecero__entradilla {
  max-width: 32rem;
}

.cabecero__botones {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 2rem;
  margin-top: 1.5rem;
}

@media (min-width: 992px) {
  .cabecero__botones .boton--principal {
    background: var(--color-fondo);
    color: var(--color-texto);
  }
}

@media (min-width: 992px) and (hover: hover) {
  .cabecero__botones .boton--principal:hover {
    background: var(--color-negro);
  }
}

.imagen-principal {
  grid-column: 1 / -1;
  border-radius: var(--radio-tarjeta) var(--radio-tarjeta) 0 var(--radio-tarjeta);
  --pestana-color: var(--color-superficie-opaca);
}

.imagen-principal__foto {
  width: 100%;
}

.imagen-principal__mosaico {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  aspect-ratio: 1536 / 672;
}

.imagen-principal__mosaico .imagen-principal__foto {
  height: 100%;
  object-fit: cover;
}

.imagen-cabecera {
  position: relative;
  margin-top: 1.5rem;
  overflow: hidden;
  border-radius: 0 var(--radio-tarjeta) 0 var(--radio-tarjeta);
  aspect-ratio: 1536 / 672;
  --pestana-color: var(--color-superficie-opaca);
}

.imagen-cabecera__foto {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.imagen-cabecera__acciones {
  gap: 2rem;
  padding: 0 1rem .75rem;
}

.reparto {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  align-items: start;
  gap: var(--v-tit) 1rem;
}

.reparto__columna {
  align-self: stretch;
}

.reparto__pegado {
  position: sticky;
  top: calc(var(--marco) + var(--alto-muesca) + 3rem);
}

.reparto__pegado .reparto__titulo {
  position: static;
}

.reparto__columna--escalera {
  padding-bottom: min(25rem, 28.6cqw);
}

.preguntas--escalera .tarjeta {
  container-type: inline-size;
}

.escalera {
  position: absolute;
  bottom: -1px;
  width: min(35rem, 40%);
  aspect-ratio: 560 / 400;
  container-type: inline-size;
}

.escalera--izquierda {
  left: -1px;
}

.escalera--pared {
  position: relative;
  bottom: auto;
  width: calc(min(100%, 26rem) + var(--hasta-borde, 0px));
  margin-top: 3rem;
  margin-left: calc(-1 * var(--hasta-borde, 0px));
}

.escalera__dibujo {
  display: block;
  width: 100%;
  height: 100%;
  fill: var(--color-fondo);
}

.escalera--izquierda .escalera__dibujo {
  transform: scaleX(-1);
}

.escalera__temas {
  margin: 0;
  padding: 0;
  list-style: none;
}

.escalera__tema {
  position: absolute;
  left: var(--x);
  top: var(--y);
  padding: .5rem .75rem;
  border: 0;
  background: none;
  color: var(--color-texto-secundario);
  font: 500 max(.75rem, 3.2cqw)/1 var(--fuente);
  width: max-content;
  max-width: 42cqw;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transform: translate(-50%, -50%);
  transition: color .3s var(--curva-ease-in-out);
}

.escalera__tema[aria-current] {
  color: var(--color-texto);
}

@media (hover: hover) {
  .escalera__tema:hover {
    color: var(--color-texto);
  }
}

.js .escalera__dibujo {
  clip-path: inset(100% 100% 0 0);
}

.js .escalera--izquierda .escalera__dibujo {
  clip-path: inset(100% 0 0 100%);
}

.js .escalera--pared .escalera__dibujo {
  clip-path: inset(0 100% 0 0);
}

.js .escalera--visible .escalera__dibujo {
  clip-path: inset(0 0 0 0);
  transition: clip-path var(--duracion-muelle-carrusel) var(--muelle-carrusel);
}

.js .escalera__tema {
  opacity: 0;
}

.js .escalera--visible .escalera__tema {
  opacity: 1;
  animation: entrada-tema var(--duracion-entrada) var(--curva-entrada) calc(var(--retardo) + .2s) backwards;
}

.js .escalera--pared.escalera--visible .escalera__dibujo {
  transition: clip-path 1.2s var(--curva-entrada);
}

.js .escalera--pared.escalera--visible .escalera__tema {
  animation-name: entrada-tema-izquierda;
}

.js .escalera--pared.escalera--visible li:nth-child(1) .escalera__tema {
  animation-delay: .25s;
}

.js .escalera--pared.escalera--visible li:nth-child(2) .escalera__tema {
  animation-delay: .4s;
}

.js .escalera--pared.escalera--visible li:nth-child(3) .escalera__tema {
  animation-delay: .7s;
}

.js .escalera--pared.escalera--visible li:nth-child(4) .escalera__tema {
  animation-delay: .15s;
}

.js .escalera--pared.escalera--visible li:nth-child(5) .escalera__tema {
  animation-delay: .6s;
}

.js .escalera--pared.escalera--visible li:nth-child(6) .escalera__tema {
  animation-delay: .75s;
}

@keyframes entrada-tema-izquierda {
  from {
    opacity: 0;
    transform: translate(calc(-50% - .75rem), -50%);
  }
}

@keyframes entrada-tema {
  from {
    opacity: 0;
    transform: translate(-50%, calc(-50% + 1.25rem));
  }
}

.reparto__titulo {
  position: sticky;
  top: calc(var(--marco) + var(--alto-muesca) + 3rem);
  max-width: 28rem;
}

.detalle {
  row-gap: var(--v);
}

.detalle__frase {
  font-size: var(--texto-titulo-1);
  line-height: var(--interlineado-titulo-1);
}

.detalle__cuerpo {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

.detalle__resumen {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  max-width: 33.5rem;
  padding-left: 1.5rem;
}

.lista-servicios {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--hueco);
}

.lista-servicios > li {
  display: flex;
  grid-column: span 2;
}

.lista-servicios > li:nth-child(n + 4) {
  grid-column: span 3;
}

.lista-servicios--cuatro {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lista-servicios--cuatro > li,
.lista-servicios--cuatro > li:nth-child(n + 4) {
  grid-column: auto;
}

.tarjeta-servicio {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: flex-start;
  min-width: 0;
  gap: var(--v-tit);
  min-height: 15rem;
  padding: 2.5rem;
  transition: background-color var(--duracion-muelle-hover) var(--muelle-hover), opacity var(--duracion-muelle-hover) var(--muelle-hover);
}

.tarjeta-servicio__cabeza {
  display: flex;
  align-items: center;
  min-height: 1.75rem;
}

.tarjeta-servicio__icono {
  display: flex;
  flex: none;
  width: 0;
  overflow: hidden;
  transition: width var(--duracion-muelle-hover) var(--muelle-hover);
  --icono-tamano: 1.75rem;
}

.tarjeta-servicio__texto {
  color: var(--color-texto-secundario);
}

.tarjeta-servicio__datos {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.tarjeta-servicio__nombre {
  font-size: var(--texto-titulo-3);
  line-height: 1.2;
}

.tarjeta-servicio__texto {
  max-width: 30rem;
  font-size: var(--texto-cuerpo);
  line-height: 1.6;
}

.tarjeta-servicio__flecha {
  position: absolute;
  top: 2rem;
  right: 2rem;
  opacity: 0;
  transition: opacity var(--duracion-muelle-hover) var(--muelle-hover), top var(--duracion-muelle-hover) var(--muelle-hover), right var(--duracion-muelle-hover) var(--muelle-hover);
  --icono-tamano: 1rem;
}

.tarjeta-servicio:focus-visible .tarjeta-servicio__icono {
  width: 2.5rem;
}

.tarjeta-servicio:focus-visible .tarjeta-servicio__flecha {
  top: 1.5rem;
  right: 1.5rem;
  opacity: 1;
}

@media (hover: hover) {
  .tarjeta-servicio:hover .tarjeta-servicio__icono {
    width: 2.5rem;
  }

  .tarjeta-servicio:hover .tarjeta-servicio__flecha {
    top: 1.5rem;
    right: 1.5rem;
    opacity: 1;
  }

  .lista-servicios:has(.tarjeta-servicio:hover) .tarjeta-servicio:not(:hover) {
    opacity: .3;
  }
}

@media (hover: none) {
  .tarjeta-servicio__icono {
    width: 2.5rem;
  }

  .tarjeta-servicio__flecha {
    top: 1.5rem;
    right: 1.5rem;
    opacity: 1;
  }
}

.mapa-zonas {
  position: relative;
  overflow: hidden;
  aspect-ratio: 720 / 570;
  container-type: inline-size;
  background-image: radial-gradient(circle, rgba(255, 255, 255, .14) 1px, transparent .1rem);
  background-size: 1.5rem 1.5rem;
  background-position: .75rem .75rem;
}

.mapa-zonas__bocadillo,
.mapa-zonas__cursor {
  position: absolute;
  animation: flotar var(--duracion-flotar, 8s) ease-in-out var(--retardo-flotar, 0s) infinite;
}

.mapa-zonas__bocadillo {
  display: inline-flex;
  align-items: center;
  min-height: 2.5rem;
  padding: .625rem .875rem;
  border-radius: .75rem .75rem .75rem .25rem;
  background: var(--color-superficie-hover);
  color: var(--color-texto);
  font-size: var(--texto-interfaz);
  line-height: 1.05rem;
  white-space: nowrap;
  transition: background-color var(--duracion-muelle-suave) var(--muelle-suave), color var(--duracion-muelle-suave) var(--muelle-suave);
}

.mapa-zonas__bocadillo::before {
  content: "";
  position: absolute;
  left: -.5rem;
  bottom: -.5rem;
  width: .375rem;
  height: .375rem;
  border-radius: 50%;
  background: var(--color-texto);
}

.mapa-zonas__bocadillo[aria-current="page"] {
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
}

@media (hover: hover) {
  .mapa-zonas__bocadillo:hover {
    background: var(--color-inverso);
    color: var(--color-texto-inverso);
  }
}

.mapa-zonas__cursor {
  display: flex;
  align-items: flex-end;
  gap: .25rem;
  pointer-events: none;
  --icono-tamano: 1.25rem;
  --dx: 1.625rem;
  --dy: -1.125rem;
  --duracion-flotar: 7s;
}

.mapa-zonas__cursor .icono {
  fill: var(--color-texto);
  stroke: var(--color-fondo);
}

.mapa-zonas__etiqueta {
  padding: .375rem .5rem;
  border-radius: var(--radio-etiqueta);
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
  font-size: var(--texto-etiqueta);
  line-height: 1;
  transform: translateY(.625rem);
}

@keyframes flotar {
  50% {
    transform: translate(var(--dx, 0), var(--dy, 0));
  }
}

@container (max-width: 34.9988rem) {
  .mapa-zonas__bocadillo {
    min-height: 2.625rem;
    padding: .5rem .625rem;
    font-size: .8125rem;
  }

  .mapa-zonas__cursor {
    --dx: .875rem;
    --dy: -.625rem;
  }
}

@media (max-width: 1199.98px) {
  .cabecero__contenedor:has(.cabecero__forma) {
    min-height: 18.25rem;
  }

  .cabecero__forma {
    left: auto;
    right: calc(var(--lado) * -1 + 1.5rem);
    width: min(35rem, 62%);
  }

  .tarjeta-servicio {
    padding: 2rem;
  }

  .lista-servicios--cuatro {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .reparto {
    grid-template-columns: minmax(0, 1fr);
  }

  .escalera {
    display: none;
  }

  .reparto__columna--escalera {
    padding-bottom: 0;
  }

  .reparto__pegado {
    position: static;
  }

  .reparto__titulo {
    position: static;
    max-width: 35rem;
  }

  .detalle {
    row-gap: var(--v-tit);
  }

  .detalle__cuerpo {
    gap: var(--v-tit);
  }

  .detalle__resumen {
    padding-left: 0;
  }

  .lista-servicios > li,
  .lista-servicios > li:nth-child(n + 4) {
    grid-column: span 3;
  }

  .lista-servicios > li:last-child {
    grid-column: 1 / -1;
  }

  .lista-servicios--cuatro > li,
  .lista-servicios--cuatro > li:nth-child(n + 4),
  .lista-servicios--cuatro > li:last-child {
    grid-column: auto;
  }
}

@media (max-width: 809.98px) {
  .cabecero__contenedor:has(.cabecero__forma) {
    min-height: 0;
  }

  .cabecero__forma {
    top: -2.75rem;
    right: -.875rem;
    width: min(calc(100% + 1.625rem), 27.5rem);
  }

  .cabecero__titulo {
    margin: 1rem 0;
  }

  .lista-servicios,
  .lista-servicios--cuatro {
    grid-template-columns: minmax(0, 1fr);
  }

  .lista-servicios > li,
  .lista-servicios > li:nth-child(n + 4),
  .lista-servicios > li:last-child {
    grid-column: auto;
  }

  .tarjeta-servicio {
    min-height: 0;
    padding: var(--lado);
  }
}

@media (max-width: 809.98px) {
  .lista-servicios--cuatro {
    grid-template-columns: minmax(0, 1fr);
    gap: .5rem;
  }

  .lista-servicios--cuatro .tarjeta-servicio {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: .75rem;
    min-height: 0;
    padding: 1rem 3.5rem 1rem 1.25rem;
  }

  .lista-servicios--cuatro .tarjeta-servicio__texto {
    display: none;
  }

  .lista-servicios--cuatro .tarjeta-servicio__icono {
    width: 1.75rem;
  }

  .lista-servicios--cuatro .tarjeta-servicio__datos {
    gap: 0;
  }

  .lista-servicios--cuatro .tarjeta-servicio .tarjeta-servicio__flecha {
    top: 50%;
    right: 1.25rem;
    opacity: 1;
    transform: translateY(-50%);
  }
}

@media (max-width: 599.98px) {
  .imagen-cabecera {
    aspect-ratio: 1;
  }


  .imagen-principal__mosaico {
    grid-template-columns: minmax(0, 1fr);
    aspect-ratio: 1;
  }

  .imagen-principal__mosaico .imagen-principal__foto + .imagen-principal__foto {
    display: none;
  }

  .tarjeta-servicio {
    min-height: 0;
    gap: 1rem;
    padding: 1.5rem;
  }

  .imagen-cabecera__acciones {
    flex-direction: column;
    align-items: flex-start;
    gap: .5rem;
  }
}

.cinta {
  position: relative;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  -webkit-mask-image: var(--mascara-cinta);
  mask-image: var(--mascara-cinta);
}

.cinta__pista {
  display: flex;
  width: max-content;
  will-change: transform;
}

.cinta__grupo {
  display: flex;
  flex: none;
  align-items: center;
}

@media (hover: none) {
  .cinta[data-deslizar-al-tocar] {
    padding-inline: var(--columna);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--columna);
    scrollbar-width: none;
    -webkit-mask-image: none;
    mask-image: none;
  }

  .cinta[data-deslizar-al-tocar]::-webkit-scrollbar {
    display: none;
  }

  .cinta[data-deslizar-al-tocar] .cinta__grupo > * {
    scroll-snap-align: start;
  }
}

.cabecera,
.acciones {
  position: sticky;
  top: var(--marco);
  display: flex;
  align-items: center;
  width: max-content;
  height: var(--alto-muesca);
  margin-bottom: calc(var(--alto-muesca) * -1);
  background: var(--color-fondo);
}

.cabecera {
  z-index: 30;
  padding: .25rem 1rem .75rem;
  border-bottom-right-radius: var(--radio-muesca);
}

.cabecera::before,
.cabecera::after,
.acciones::before,
.acciones::after {
  content: "";
  position: absolute;
  width: var(--radio-pestana);
  height: var(--radio-pestana);
  pointer-events: none;
  background: var(--color-fondo);
}

.cabecera::before,
.cabecera::after {
  -webkit-mask: var(--esquina-ai) 0 0 / 100% 100%;
  mask: var(--esquina-ai) 0 0 / 100% 100%;
}

.cabecera::before {
  left: 0;
  top: 100%;
}

.cabecera::after {
  left: 100%;
  top: 0;
}

.cabecera__logo {
  display: flex;
  align-items: center;
  height: 1.25rem;
  color: var(--color-texto);
}

.cabecera__navegacion {
  display: flex;
  align-items: center;
  height: 1.25rem;
}

.cabecera__recorte {
  height: 1.25rem;
  overflow: hidden;
  transition: width var(--duracion-muelle-menu) var(--muelle-menu);
}

.cabecera--sin-transicion .cabecera__recorte,
.cabecera--sin-transicion + .acciones .acciones__recorte {
  transition: none;
}

.cabecera__enlaces {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  width: max-content;
  height: 1.25rem;
  padding-left: 1.25rem;
}

.cabecera__enlaces > li {
  position: relative;
  display: flex;
  transition: transform var(--duracion-muelle-menu) var(--muelle-menu), opacity .3s var(--curva-ease-in-out);
}

.cabecera__enlace {
  position: relative;
  display: flex;
  align-items: center;
  gap: .25rem;
  height: 1.0625rem;
  color: var(--color-texto);
  font-size: var(--texto-interfaz);
  line-height: 1.05rem;
  white-space: nowrap;
}

.cabecera__enlace:focus-visible,
.cabecera__servicio:focus-visible {
  outline: none;
  text-decoration: underline;
  text-underline-offset: .1875rem;
}

.cabecera__enlace[aria-current="page"]::before,
.cabecera__desplegable:has([aria-current="page"]) .cabecera__disparador::before,
.menu__boton[aria-current="page"] .menu__texto::before,
.menu__grupo:has([aria-current="page"]) .menu__disparador .menu__texto::before {
  content: "";
  flex: none;
  width: .375rem;
  height: .375rem;
  margin-right: .25rem;
  border-radius: 50%;
  background: currentColor;
}

.cabecera__disparador .icono {
  transition: transform var(--duracion-muelle-hover) var(--muelle-hover);
}

.cabecera__servicios {
  position: absolute;
  top: 0;
  left: 100%;
  display: flex;
  gap: 1.25rem;
  height: 1.0625rem;
  padding-left: 1.25rem;
  overflow: hidden;
}

.cabecera__servicios li {
  display: flex;
  opacity: 0;
  transform: translateY(100%);
  transition: transform .3s var(--curva-out-quart), opacity .3s var(--curva-ease-in-out);
}

.cabecera__servicio {
  display: block;
  height: 1.0625rem;
  color: var(--color-texto);
  font-size: var(--texto-interfaz);
  line-height: 1.05rem;
  white-space: nowrap;
  transition: opacity .3s var(--curva-ease-in-out);
}

@media (hover: hover) {
  .cabecera__servicios:hover .cabecera__servicio:not(:hover) {
    opacity: .5;
  }
}

.cabecera--servicios .cabecera__disparador {
  color: var(--color-texto-secundario);
}

.cabecera--servicios .cabecera__disparador .icono {
  transform: rotate(45deg);
}

.cabecera--servicios .cabecera__enlaces > li:not(.cabecera__desplegable) {
  opacity: 0;
  transform: translateY(-100%);
}

.cabecera--servicios .cabecera__servicios li {
  opacity: 1;
  transform: none;
  transition: transform .4s var(--curva-out-quart) var(--retardo-servicio, 0s), opacity .4s var(--curva-out-quart) var(--retardo-servicio, 0s);
}

.cabecera__servicios li:nth-child(1) { --retardo-servicio: .08s; }
.cabecera__servicios li:nth-child(2) { --retardo-servicio: .16s; }
.cabecera__servicios li:nth-child(3) { --retardo-servicio: .24s; }
.cabecera__servicios li:nth-child(4) { --retardo-servicio: .32s; }
.cabecera__servicios li:nth-child(5) { --retardo-servicio: .4s; }

.cabecera-compacta .cabecera__enlaces > li {
  opacity: 0;
  transform: translateY(-100%);
}

.acciones {
  z-index: 34;
  margin-left: auto;
  padding: .25rem .25rem .375rem .5rem;
  border-bottom-left-radius: var(--radio-pestana);
  transition: opacity .3s var(--curva-ease-in-out), visibility 0s linear 0s;
}

.acciones::before,
.acciones::after {
  -webkit-mask: var(--esquina-ad) 0 0 / 100% 100%;
  mask: var(--esquina-ad) 0 0 / 100% 100%;
}

.acciones::before {
  right: 100%;
  top: 0;
}

.acciones::after {
  right: 0;
  top: 100%;
}

.acciones--apartada {
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s var(--curva-ease-in-out), visibility 0s linear .3s;
}

.acciones__recorte {
  position: relative;
  display: flex;
  justify-content: flex-end;
  height: 1.625rem;
  overflow: hidden;
  transition: width var(--duracion-muelle-menu) var(--muelle-menu);
}

.acciones__presupuesto,
.acciones__menu {
  position: absolute;
  top: 0;
  right: 0;
  height: 1.625rem;
  transition: transform var(--duracion-muelle-menu) var(--muelle-menu), opacity .3s var(--curva-ease-in-out), background-color var(--duracion-muelle-suave) var(--muelle-suave);
}

.acciones__presupuesto {
  position: relative;
  flex: none;
  padding: .375rem .75rem;
}

.acciones__menu {
  display: flex;
  align-items: center;
  padding: 0 .75rem 0 .5rem;
  color: var(--color-texto);
  font-size: var(--texto-interfaz);
  line-height: 1.05rem;
  opacity: 0;
  transform: translateY(100%);
}

.acciones__menu .rodillo {
  --rodillo-duracion: var(--duracion-muelle-menu);
}

.acciones__menu .rodillo__pista {
  align-items: center;
}

.acciones__menu[aria-expanded="true"] .rodillo__pista {
  transform: translateY(calc(var(--rodillo-alto, 1.0625rem) - 100%));
}

.cabecera-compacta .acciones__presupuesto {
  opacity: 0;
  transform: translateY(-100%);
}

.cabecera-compacta .acciones__menu {
  opacity: 1;
  transform: none;
}

@media (max-width: 991.98px) {
  .cabecera__navegacion,
  .acciones__presupuesto {
    display: none;
  }

  .acciones {
    padding: .25rem .25rem .375rem .25rem;
  }

  .acciones__recorte {
    width: auto !important;
    overflow: visible;
  }

  .acciones__menu {
    position: relative;
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 809.98px) {
  .cabecera__logo {
    height: 2.5rem;
    margin: -.625rem 0;
  }

  .acciones__menu {
    height: 2.5rem;
    margin: -.4375rem 0;
    padding: 0 .75rem;
    font-size: .9375rem;
    line-height: 1.125rem;
  }

  .acciones__menu .rodillo {
    --rodillo-alto: 1.125rem;
  }
}

.menu {
  position: fixed;
  inset: 0;
  z-index: 32;
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s linear .4s;
}

.menu--abierto {
  visibility: visible;
  pointer-events: auto;
  transition: none;
}

.menu__velo {
  position: absolute;
  inset: 0;
  background: var(--color-velo);
  opacity: 0;
  transition: opacity .3s var(--curva-ease-in-out);
}

.menu--abierto .menu__velo {
  opacity: 1;
  transition-duration: .4s;
}

.menu__tarjeta {
  position: absolute;
  top: var(--menu-arriba, var(--marco));
  right: var(--marco);
  display: flex;
  flex-direction: column;
  width: 22.875rem;
  max-height: calc(100% - var(--menu-arriba, var(--marco)) - var(--marco));
  padding: .75rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  border-radius: var(--radio-tarjeta);
  background: var(--color-superficie-opaca);
  clip-path: circle(0 at calc(100% - 2rem) 1.125rem);
  transition: clip-path .4s var(--curva-in-out-quart);
}

.menu--abierto .menu__tarjeta {
  clip-path: circle(150% at calc(100% - 2rem) 1.125rem);
  transition-duration: .5s;
}

.menu__cabeza {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .75rem;
  color: var(--color-texto);
}

.menu__nombre {
  font-size: var(--texto-titulo-5);
  line-height: 1.2;
}

.menu__navegacion {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  margin-top: 1.5rem;
}

.menu__lista {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.menu__lista > li,
.menu__datos > li {
  transition: opacity .3s var(--curva-ease-in-out);
}

.menu__boton {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  width: 100%;
  min-height: 3rem;
  padding: 1rem 1.25rem;
  border-radius: var(--radio-menu-boton);
  background: var(--color-superficie-hover);
  color: var(--color-texto);
  font-size: .9375rem;
  line-height: .9375rem;
  --icono-tamano: 1rem;
  --duracion-icono: var(--duracion-muelle-hover);
  --curva-icono: var(--muelle-hover);
}

.menu__texto {
  display: flex;
  align-items: center;
  min-width: 0;
  overflow-wrap: anywhere;
}

.menu__boton--principal {
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
}

.menu__datos {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.menu__disparador .icono {
  transition: transform .4s var(--curva-in-out-quart);
}

.menu__grupo--abierto .menu__disparador .icono {
  transform: rotate(45deg);
}

.menu__servicios {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .4s var(--curva-in-out-quart);
}

.menu__grupo--abierto .menu__servicios {
  grid-template-rows: 1fr;
}

.menu__servicios > ul {
  min-height: 0;
  overflow: hidden;
}

.menu__servicio {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0 1.25rem;
  color: var(--color-texto-secundario);
  font-size: var(--texto-interfaz);
  line-height: 1.05rem;
  transition: color .3s var(--curva-ease-in-out);
}

.menu__servicios li:first-child .menu__servicio {
  margin-top: .25rem;
}

.menu__servicio[aria-current="page"] {
  color: var(--color-texto);
}

@media (hover: hover) {
  .menu__servicio:hover {
    color: var(--color-texto);
  }
}

.menu--servicios .menu__lista > li:not(.menu__grupo),
.menu--servicios .menu__datos > li {
  opacity: .5;
}

.menu__pieza {
  opacity: 0;
  transform: translateY(1.25rem);
  transition: opacity 0s linear .4s, transform 0s linear .4s;
}

.menu--abierto .menu__pieza {
  opacity: 1;
  transform: none;
  transition: opacity var(--duracion-entrada) var(--curva-entrada) var(--retardo, 0s), transform var(--duracion-entrada) var(--curva-entrada) var(--retardo, 0s);
}

@media (max-width: 599.98px) {
  .menu__tarjeta {
    left: var(--marco);
    bottom: var(--marco);
    width: auto;
    max-height: none;
  }

  .menu__navegacion {
    margin-top: auto;
    padding-top: 1.5rem;
  }
}

.ventana {
  position: fixed;
  inset: 0;
  z-index: 40;
  display: none;
  padding: var(--marco);
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--color-fondo);
  scroll-padding-top: calc(var(--marco) + 1.5rem);
}

.ventana--abierta {
  display: block;
}

.ventana__rejilla {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: var(--hueco);
}

.ventana__lado {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  gap: var(--hueco);
  min-height: calc(100vh - var(--marco) * 2);
}

.ventana__cabeza {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
}

.ventana__foto {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ventana__pestana {
  position: relative;
  align-self: flex-start;
  padding: 1.5rem 2rem 0 0;
  white-space: normal;
}

.ventana__pestana .titulo-1 {
  line-height: 1;
}

.ventana__canales {
  display: flex;
  flex-direction: column;
  gap: var(--hueco);
}

.ventana__cuerpo {
  min-height: calc(100vh - var(--marco) * 2);
  padding: 3rem;
}

.ventana__cuerpo:has(.envio--hecho) {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.ventana__cerrar {
  position: fixed;
  top: var(--marco);
  right: var(--marco);
  left: auto;
  z-index: 3;
  min-height: 2.5rem;
  padding: .5rem 1rem .75rem;
  cursor: pointer;
}

.ventana__cerrar .rodillo {
  --rodillo-alto: 1.0625rem;
}

.ventana__pieza {
  opacity: 0;
}

.ventana--abierta .ventana__pieza {
  opacity: 1;
  animation: entrada var(--duracion-entrada) var(--curva-entrada) var(--retardo, 0s) backwards;
}

@media (max-width: 991.98px) {
  .ventana__rejilla {
    grid-template-columns: minmax(0, 1fr);
  }

  .ventana__lado {
    display: contents;
  }

  .ventana__cabeza {
    order: 1;
    min-height: 20rem;
  }

  .ventana__cuerpo {
    order: 2;
    min-height: 0;
  }

  .ventana__canales {
    order: 3;
  }
}

@media (max-width: 809.98px) {
  .ventana__cabeza {
    min-height: 15rem;
  }

  .ventana__cuerpo {
    padding: 2rem var(--lado);
  }
}

.envio {
  position: relative;
  container-type: inline-size;
}

.formulario {
  display: flex;
  flex-direction: column;
  font-family: var(--fuente-formulario);
  font-optical-sizing: auto;
  font-variation-settings: normal;
}

.formulario__trampa {
  position: absolute;
  left: -624.9375rem;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.paso {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.pregunta-fichas,
.campo__etiqueta {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .75rem;
  color: var(--color-texto-secundario);
  font-size: .8125rem;
  line-height: 1.4;
}

.pregunta-fichas {
  margin-bottom: -.75rem;
}

.pregunta-fichas:has(+ .fichas--error) {
  color: var(--color-error);
}

label.campo__etiqueta {
  padding: .6875rem 0;
  margin: -.6875rem 0 1px;
}

.fichas {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .5rem;
}

.ficha {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
  padding: .75rem .875rem;
  border: 1px solid var(--color-borde-campo);
  border-radius: var(--radio-boton);
  background: var(--color-fondo);
  color: var(--color-texto);
  font-size: var(--texto-interfaz);
  line-height: 1.2;
  text-align: left;
  transition: background-color var(--duracion-muelle-suave) var(--muelle-suave), color var(--duracion-muelle-suave) var(--muelle-suave), border-color .2s var(--curva-ease-in-out);
}

.ficha--entera {
  grid-column: 1 / -1;
}

@media (hover: hover) {
  .ficha:hover {
    background: var(--color-negro);
  }
}

.ficha[aria-pressed="true"] {
  border-color: var(--color-inverso);
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
}

.fichas--error .ficha {
  border-color: var(--color-error);
}

@container (max-width: 32.4988rem) {
  .fichas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.campo {
  display: flex;
  flex-direction: column;
}

.campo__entrada {
  width: 100%;
  height: 2.875rem;
  padding: .875rem 1rem;
  border: 1px solid var(--color-borde-campo);
  border-radius: var(--radio-boton);
  background: var(--color-fondo);
  color: var(--color-texto);
  font-family: var(--fuente-formulario);
  font-size: var(--texto-cuerpo);
  line-height: 1.2;
  outline: none;
  transition: border-color .2s var(--curva-ease-in-out);
}

.campo__entrada::placeholder {
  color: var(--color-texto-secundario);
}

textarea.campo__entrada {
  height: 7.5rem;
  resize: vertical;
}

.campo__entrada:focus {
  border-color: var(--color-borde-activo);
}

.campo--error .campo__entrada,
.campo--error .archivo {
  border-color: var(--color-error);
}

.campo--error .campo__etiqueta {
  color: var(--color-error);
}

.campo__subgrupo {
  display: flex;
  align-items: center;
  margin-top: .5rem;
  border: 1px solid var(--color-borde-campo);
  border-radius: var(--radio-boton);
  background: var(--color-fondo);
  transition: border-color .2s var(--curva-ease-in-out);
}

.campo__subgrupo:focus-within {
  border-color: var(--color-borde-activo);
}

.campo__subetiqueta {
  flex: none;
  padding-left: 1rem;
  color: var(--color-texto-secundario);
  font-size: var(--texto-interfaz);
  line-height: 1.2;
}

.campo__subgrupo .campo__entrada {
  border: 0;
  padding-left: .25rem;
  background: transparent;
}

.campo--archivo {
  position: relative;
}

.campo--archivo .campo__etiqueta {
  position: relative;
}

.archivo {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-height: 2.875rem;
  padding: .75rem 1rem;
  border: 1px solid var(--color-borde-campo);
  border-radius: var(--radio-boton);
  background: var(--color-fondo);
  color: var(--color-texto-secundario);
  font-size: var(--texto-interfaz);
  line-height: 1.2;
  cursor: pointer;
  transition: border-color .2s var(--curva-ease-in-out), color .2s var(--curva-ease-in-out);
  --icono-tamano: 1.125rem;
}

.archivo__texto {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.archivo__entrada {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.archivo:hover {
  border-color: var(--color-borde-foco);
  color: var(--color-texto);
}

.archivo__entrada:focus-visible + .archivo {
  border-color: var(--color-borde-activo);
  color: var(--color-texto);
}

.campo--adjunto .archivo {
  color: var(--color-texto);
  padding-right: 3.25rem;
}

.archivo__quitar {
  position: absolute;
  right: .1875rem;
  bottom: .1875rem;
  display: none;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--radio-boton);
  color: var(--color-texto-secundario);
}

.campo--adjunto .archivo__quitar {
  display: grid;
}

.archivo__quitar:hover {
  color: var(--color-texto);
}

.ayuda {
  display: inline-flex;
}

.ayuda__boton {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  margin: -.75rem -.625rem;
  color: var(--color-texto-secundario);
  transition: color .2s var(--curva-ease-in-out);
  --icono-tamano: 1.125rem;
}

.ayuda__boton:hover,
.ayuda--abierta .ayuda__boton {
  color: var(--color-texto);
}

.ayuda__globo {
  position: absolute;
  left: 0;
  top: calc(100% + .25rem);
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: min(20rem, 100%);
  padding: 1.25rem;
  border-radius: var(--radio-pie-foto);
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
  font-size: .8125rem;
  line-height: 1.5;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-.5rem);
  transition: opacity .2s var(--curva-ease-in-out), transform .2s var(--curva-ease-in-out), visibility 0s linear .2s;
}

.ayuda--abierta .ayuda__globo {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: opacity .2s var(--curva-ease-in-out), transform .2s var(--curva-ease-in-out), visibility 0s;
}

.ayuda__descarga {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: 2.5rem;
  margin: -.625rem 0;
  text-decoration: underline;
  text-underline-offset: .1875rem;
  --icono-tamano: 1rem;
}

.paso__pie,
.formulario__pie {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  margin-top: .5rem;
}

.paso__volver {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: 2.5rem;
  margin: -.625rem 0 -.5rem;
  color: var(--color-texto-secundario);
  font-size: var(--texto-interfaz);
  transition: color .2s var(--curva-ease-in-out);
}

.paso__volver:hover {
  color: var(--color-texto);
}

.formulario__aviso {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  color: var(--color-texto-secundario);
  font-size: .8125rem;
  line-height: 1.5;
}

.formulario__aviso input {
  flex: none;
  appearance: none;
  -webkit-appearance: none;
  width: 2.5rem;
  height: 2.5rem;
  margin: -.625rem -.6875rem -.625rem -.6875rem;
  border: 0;
  border-radius: var(--radio-boton);
  background: var(--casilla) center / 1.125rem 1.125rem no-repeat;
  cursor: pointer;
}

.formulario__aviso input:checked {
  background-image: var(--casilla-marcada);
}

.formulario__aviso input:focus-visible {
  outline-offset: -.5rem;
}

.formulario__aviso label {
  padding: .625rem 0;
  margin: -.625rem 0;
  cursor: pointer;
}

.formulario__aviso a {
  display: inline-block;
  padding: .625rem 0;
  margin: -.625rem 0;
  color: var(--color-texto);
  text-decoration: underline;
  text-underline-offset: .1875rem;
}

.formulario__aviso--error input {
  background-image: var(--casilla-error);
}

.formulario__aviso--error label {
  color: var(--color-error);
}

.formulario__info {
  color: var(--color-texto-secundario);
  font-size: .75rem;
  line-height: 1.5;
}

.formulario__enviar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 2.5rem;
  border-radius: var(--radio-boton);
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
  font-family: var(--fuente-formulario);
  font-size: var(--texto-interfaz);
  line-height: .875rem;
  transition: background-color .2s var(--curva-boton-envio), color .2s var(--curva-boton-envio), opacity .2s var(--curva-boton-envio);
}

@media (hover: hover) {
  .formulario__enviar:hover {
    background: var(--color-inverso-hover);
  }
}

.formulario__enviar:active {
  background: var(--color-inverso-hover);
}

.formulario__enviar--cargando {
  color: transparent;
  pointer-events: none;
}

.formulario__enviar--cargando::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1.25rem;
  height: 1.25rem;
  margin: -.625rem 0 0 -.625rem;
  border-radius: 50%;
  background: conic-gradient(from 0deg, rgba(14, 16, 17, 0) 7deg, var(--color-texto-inverso) 342deg);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - .125rem), #000 calc(100% - .0938rem));
  mask: radial-gradient(farthest-side, transparent calc(100% - .125rem), #000 calc(100% - .0938rem));
  animation: girar 1s linear infinite;
}

@keyframes girar {
  to {
    transform: rotate(360deg);
  }
}

.formulario__enviar--error {
  background: var(--color-error-fondo);
  color: var(--color-error);
}

.formulario__error {
  color: var(--color-error);
  font-size: .8125rem;
  line-height: 1.5;
}

.formulario__error:empty {
  display: none;
}

.exito {
  display: none;
}

.envio--hecho .formulario {
  display: none;
}

.envio--hecho .exito {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  animation: entrada var(--duracion-entrada) var(--curva-entrada) backwards;
}

.exito__monograma {
  width: 4.0324rem;
  height: 1.75rem;
  margin-bottom: .5rem;
  color: var(--color-texto);
}

.exito__titulo {
  font-size: var(--texto-titulo-2);
  line-height: 1.2;
}

.exito__titulo:focus {
  outline: none;
}

.exito__descripcion {
  max-width: 31.25rem;
  color: var(--color-texto-secundario);
  font-size: var(--texto-entradilla);
  line-height: 1.6;
}

@media (max-width: 809.98px) {
  .ficha {
    padding: .75rem;
    font-size: .7812rem;
  }

  .boton {
    min-height: 2.5rem;
    padding-block: .8125rem;
  }

  .boton:has(.icono-rodillo) {
    padding-block: .8125rem;
  }

  .boton--solo-icono,
  .boton--solo-icono:has(.icono-rodillo) {
    min-width: 2.5rem;
    padding: .8125rem;
  }
}

@container (max-width: 21.2488rem) {
  .ficha {
    padding-inline: .5rem;
    font-size: .75rem;
  }
}

.llamada {
  margin-top: var(--hueco);
  padding: calc(var(--v) * 1.25) var(--lado);
  overflow: hidden;
  border-radius: var(--radio-tarjeta);
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
}

.llamada__contenido {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  align-items: end;
  gap: 2rem 4rem;
}

.llamada__titulo {
  margin: 0;
  font-size: clamp(2.75rem, 6.5vw, 6.5rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.03em;
}

.llamada__lado {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
  padding-bottom: .5rem;
}

.llamada__texto {
  max-width: 26rem;
  margin: 0;
  color: var(--color-texto-inverso-secundario);
  font-size: var(--texto-entradilla);
  line-height: 1.5;
}

@media (max-width: 809.98px) {
  .llamada__contenido {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }
}

.pie {
  margin-top: var(--hueco);
  padding: 4rem var(--lado) 3rem;
  border-radius: var(--radio-tarjeta);
  background: var(--color-inverso);
  color: var(--color-texto-inverso);
}

.pie__contenedor {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

.pie__cabeza {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.pie__marca {
  display: flex;
  align-items: center;
  gap: 1rem;
  --marca-fondo: var(--color-fondo);
  --marca-trazo: var(--color-texto);
}

.pie__datos {
  display: flex;
  flex-direction: column;
  gap: .125rem;
}

.pie__nombre {
  font-size: var(--texto-titulo-4);
  line-height: 1.2;
}

.pie__base {
  color: var(--color-texto-inverso-secundario);
  font-size: var(--texto-interfaz);
  line-height: 1.05rem;
}

.pie__redes {
  display: flex;
  gap: var(--hueco);
  width: 19.5rem;
}

.pie__red {
  flex: 1 1 0;
  min-width: 0;
  transition: flex-grow var(--duracion-muelle-hover) var(--muelle-hover), background-color var(--duracion-muelle-suave) var(--muelle-suave);
}

@media (hover: hover) {
  .pie__red:hover {
    flex-grow: 1.75;
  }
}

.pie__columnas {
  display: grid;
  grid-auto-columns: minmax(0, 1fr);
  grid-auto-flow: column;
  gap: 4rem;
}

.pie__columna {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  min-width: 0;
}

.pie__titulo {
  font-size: var(--texto-titulo-6);
  line-height: 1.4;
}

.pie__lista {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
}

.pie__enlace {
  display: flex;
  padding: .8125rem .25rem;
  margin: -.8125rem -.25rem;
  color: var(--color-texto-inverso-secundario);
  font-size: var(--texto-interfaz);
  line-height: .9625rem;
  transition: color var(--duracion-muelle-suave) var(--muelle-suave);
}

.pie__enlace .rodillo {
  --rodillo-alto: .9375rem;
  --rodillo-hueco: 1px;
  --rodillo-duracion: var(--duracion-muelle-suave);
  --rodillo-curva: var(--muelle-suave);
}

.pie__enlace[aria-current="page"],
.pie__enlace:focus-visible {
  color: var(--color-texto-inverso);
}

@media (hover: hover) {
  .pie__enlace:hover {
    color: var(--color-texto-inverso);
  }
}

.pie__final {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  color: var(--color-texto-inverso-secundario);
  font-size: var(--texto-interfaz);
  line-height: 1.05rem;
}

.pie__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem 1.5rem;
}

.pie__legal a {
  padding: .75rem 0;
  margin: -.75rem 0;
  color: var(--color-texto-inverso);
  text-decoration: underline;
  text-underline-offset: .1875rem;
}

.pie__subir {
  --icono-tamano: .875rem;
}

@media (max-width: 1199.98px) {
  .pie {
    padding: 3rem var(--lado);
  }

  .pie__columnas {
    gap: 2rem;
  }
}

@media (max-width: 991.98px) {
  .pie__columnas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-flow: row;
    gap: 3rem 2rem;
  }
}

@media (max-width: 809.98px) {
  .pie {
    padding: 2.5rem var(--lado);
  }
}

@media (max-width: 599.98px) {
  .pie__contenedor {
    gap: 3rem;
    text-align: center;
  }

  .pie__cabeza,
  .pie__marca {
    flex-direction: column;
  }

  .pie__cabeza {
    gap: 2rem;
  }

  .pie__marca {
    gap: 1rem;
  }

  .pie__redes {
    width: 100%;
    max-width: 19.5rem;
  }

  .pie__columnas {
    grid-template-columns: minmax(0, 1fr);
    gap: 3rem;
  }

  .pie__columna,
  .pie__lista {
    align-items: center;
  }

  .pie__final {
    flex-direction: column;
    justify-content: center;
  }

  .pie__legal {
    justify-content: center;
  }
}

.error-pagina {
  display: flex;
  min-height: calc(100vh - var(--alto-muesca) - var(--marco) * 2);
  padding: calc(var(--v) + var(--alto-muesca)) var(--lado) var(--v);
}

.error-pagina__contenido {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 8rem;
}

.error-pagina__texto {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
  max-width: 31.25rem;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0s !important;
    transition-delay: 0s !important;
    animation-duration: 0s !important;
    animation-delay: 0s !important;
  }

  .formulario__enviar--cargando::after {
    animation-duration: 1s !important;
  }
}

.lista-servicios > li {
  min-width: 0;
}

a[href^="tel:"],
.ficha {
  white-space: nowrap;
}

@media (max-width: 379.98px) {
  .tarjeta-servicio {
    padding: 1.25rem;
  }

  .tarjeta-servicio__nombre {
    font-size: 1.125rem;
  }

  .lista-servicios--cuatro .tarjeta-servicio {
    padding-right: 2.75rem;
  }

  .archivo__texto {
    overflow: visible;
    white-space: normal;
  }
}

@media (max-height: 600px) {
  .menu__cabeza {
    display: none;
  }
}

@media (pointer: coarse) {
  .boton,
  .pie__enlace {
    min-height: 2.75rem;
  }

  .flecha,
  .pie__subir {
    width: 2.75rem;
    height: 2.75rem;
  }

  .campo__entrada {
    font-size: 1rem;
  }

  .cabecera__logo {
    position: relative;
  }

  .cabecera__enlace::after,
  .acciones__menu::after,
  .acciones__presupuesto::after,
  .cabecera__logo::after {
    content: "";
    position: absolute;
    inset: -.625rem -.25rem;
  }
}

.cabecero__migas > span:last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (orientation: landscape) and (max-height: 500px) {
  :root {
    --texto-titular: 2.5rem;
  }

  .cabecero,
  .zona-cabecera--destacada {
    padding-top: calc(var(--alto-muesca) + 1.5rem);
  }

  .cabecero__contenedor:has(.cabecero__forma) {
    min-height: 0;
  }

  .cabecero__titulo {
    margin: .75rem 0;
  }
}

@media (pointer: coarse) {
  .enlace-texto,
  .visor__cerrar,
  .mapa-zonas__bocadillo {
    min-height: 2.75rem;
  }

  .cabecero__miga,
  .pie__legal a {
    padding-block: .875rem;
    margin-block: -.875rem;
  }

  .cabecera__enlace::after {
    inset: -.875rem -.25rem;
  }
}

@media (min-width: 992px) {
  .imagen-cabecera__acciones > [data-abrir-presupuesto],
  .cabecero__botones > [data-abrir-presupuesto] {
    display: none;
  }

  .imagen-cabecera__acciones > [data-abrir-presupuesto]:only-child {
    display: inline-flex;
    visibility: hidden;
  }
}
