/* ==========================================================================
   Landing de campaña — estilos propios (no tocar css/styles.css global)
   Todo va namespaceado bajo .lc-landing para no chocar con el resto del sitio.
   Paleta sampleada directamente del mockup (diseño/SeniorSuites-Landing-Campaña-*.png)
   Tipografías reales de campaña (assets-landing/Font): PP Neue Montreal (texto)
   y Benton Modern Display (acentos en cursiva).
   ========================================================================== */

@font-face {
  font-family: "PP Neue Montreal";
  src: url("../fonts/landing-campana/ppneuemontreal-book.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "PP Neue Montreal";
  src: url("../fonts/landing-campana/ppneuemontreal-medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "PP Neue Montreal";
  src: url("../fonts/landing-campana/ppneuemontreal-bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Benton Modern Display";
  src: url("../fonts/landing-campana/bentonmoderndisplay-regularitalic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Benton Modern Display";
  src: url("../fonts/landing-campana/bentonmoderndisplay-semibolditalic.woff2") format("woff2");
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

.lc-landing {
  --lc-verde-oscuro: #044539;
  --lc-crema: #edeee3;
  --lc-beige-hero: #e1d1c3;
  --lc-menta: #94e8b4;
  --lc-morado: #5b377e;
  --lc-lavanda: #c1c3f6;
  --lc-blanco: #ffffff;
  --lc-texto: #1a202c;

  /* El mockup está diseñado sobre un viewport de 1920px con un contenedor de
     1480px. Los valores en vw reproducen esa proporción y escalan hacia abajo. */
  --lc-container: 1480px;
  --lc-gap-sec: clamp(48px, 6.04vw, 116px);
  --lc-fs-h1: clamp(30px, 3.02vw, 58px);
  --lc-fs-h2: clamp(24px, 2.29vw, 44px);
  --lc-fs-body: clamp(18px, 1.15vw, 22px);

  font-family: "PP Neue Montreal", "Gotham", sans-serif;
  color: var(--lc-texto);
  background-color: var(--lc-blanco);
  /* El suavizado subpíxel conserva mejor el grosor en pantallas Mac no Retina. */
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: auto;
  text-rendering: optimizeLegibility;
  font-kerning: normal;
  font-variant-ligatures: common-ligatures;
  font-synthesis: none;
}

.lc-landing * {
  box-sizing: border-box;
}

.lc-landing img {
  max-width: 100%;
  display: block;
}

.lc-landing h1,
.lc-landing h2 {
  font-weight: 500;
  line-height: 1.25;
  margin: 0 0 16px;
}

/* El destacado en cursiva va ~25% más grande que la sans. Se mantiene un
   line-height superior a 1 para evitar recortes de glifos en Safari/macOS. */
.lc-landing em {
  font-family: "Benton Modern Display", Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: 1.25em;
  line-height: 1.08;
  color: var(--lc-morado);
}

.lc-landing section {
  padding: var(--lc-gap-sec) 24px;
  scroll-margin-top: 106px;
}

/* Bloque de encabezado centrado que comparten espacios/diferenciadores/servicios/residencias.
   Ancho proporcional (56.5vw ≈ 1085px en el mockup a 1920px) para que la
   columna de texto escale igual que el contenedor de 1480px en cualquier
   resolución, en vez de quedar fija en px. */
.lc-espacios__intro,
.lc-servicios__intro,
.lc-residencias__intro,
.lc-diferenciadores h2 {
  max-width: min(1085px, 56.5vw);
  margin: 0 auto clamp(40px, 3.5vw, 68px);
  text-align: center;
}

.lc-espacios__intro h2,
.lc-servicios__intro h2,
.lc-residencias__intro h2,
.lc-diferenciadores h2 {
  font-size: var(--lc-fs-h2);
  line-height: 1.3;
  margin: 0;
}

/* Diferenciadores no tiene un div "__intro" que envuelva el h2 (a diferencia
   de espacios/servicios/residencias), asi que el propio h2 hace de wrapper.
   Por eso hay que reaplicar el centrado despues del reset de arriba, o el
   "margin: 0" de la regla anterior lo pisa (mismo selector, mismo peso, gana
   la ultima declarada). */
.lc-diferenciadores h2 {
  margin: 0 auto clamp(40px, 3.5vw, 68px);
}

.lc-espacios__intro p,
.lc-servicios__intro p {
  max-width: min(980px, 51.04vw);
  margin: 4px auto 0;
  font-size: var(--lc-fs-body);
  line-height: 1.5;
  color: #4a4f52;
}

@media (max-width: 900px) {
  .lc-espacios__intro,
  .lc-servicios__intro,
  .lc-residencias__intro,
  .lc-diferenciadores h2,
  .lc-espacios__intro p,
  .lc-servicios__intro p {
    max-width: 100%;
  }
}

/* Botones */
.lc-btn {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.73vw, 14px);
  padding: 4px clamp(18px, 1.5vw, 29px) 4px 4px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 500;
  font-size: clamp(16px, 1vw, 19px);
  transition: opacity 0.2s ease;
  border: none;
}

.lc-btn:hover {
  opacity: 0.85;
}

.lc-btn__circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(30px, 2.08vw, 40px);
  height: clamp(30px, 2.08vw, 40px);
  border-radius: 50%;
  background: var(--lc-blanco);
  color: var(--lc-verde-oscuro);
  font-size: clamp(14px, 0.94vw, 18px);
  flex-shrink: 0;
}

.lc-btn--solid {
  background: var(--lc-verde-oscuro);
  color: var(--lc-blanco);
}

.lc-btn--light {
  background: var(--lc-blanco);
  color: var(--lc-verde-oscuro);
  padding: clamp(10px, 0.75vw, 14px) clamp(20px, 1.66vw, 32px);
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.lc-header {
  background: var(--lc-verde-oscuro);
  position: sticky;
  top: 0;
  z-index: 100;
  /* El padding vive acá, no en __container, para que ese contenedor mida
     exactamente los mismos 1480px que el resto de las secciones (ver
     .lc-espacios__galeria, .lc-contacto__card, etc.) y todo quede alineado
     al mismo margen izquierdo/derecho. */
  padding: clamp(12px, 1.04vw, 20px) 24px;
}

.lc-header__container {
  max-width: var(--lc-container);
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 24px;
}

.lc-header__logo {
  flex-shrink: 0;
  display: flex;
  /* Por defecto (mobile y desktop angosto/mediano) el claim va abajo del
     logo, chico. Entre el breakpoint del menú (960px) y ~1250px no hay
     espacio para ponerlo al lado sin chocar con "Habitaciones"/el menú;
     recién en pantallas grandes hay aire de sobra para eso. */
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.lc-header__logo img {
  height: clamp(40px, 2.81vw, 54px);
  width: auto;
}

.lc-header__logo .lc-header__tagline {
  height: 16px;
}

@media (min-width: 1250px) {
  .lc-header__logo {
    flex-direction: row;
    align-items: center;
    gap: 14px;
    /* Sin tope, en pantallas muy anchas (27" en adelante) el logo+claim en
       una línea crece tanto que le quita espacio al menú y lo manda a dos
       líneas. Con esto deja de crecer más allá de este ancho. */
    max-width: 300px;
  }

  .lc-header__logo img {
    height: clamp(64px, 4.5vw, 86px);
  }

  .lc-header__logo .lc-header__tagline {
    height: clamp(22px, 1.5vw, 30px);
  }
}

.lc-header__nav {
  flex: 1;
}

.lc-header__menu {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(24px, 2.9vw, 56px);
  margin: 0;
  padding: 0 clamp(24px, 3vw, 58px) 0 0;
}

.lc-header__menu li a {
  color: var(--lc-blanco);
  text-decoration: none;
  font-size: clamp(16px, 1vw, 19px);
  font-weight: 400;
}

.lc-header__cta {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.73vw, 14px);
  padding: 6px clamp(18px, 1.5vw, 29px) 6px 6px;
  border-radius: 999px;
  background: var(--lc-menta);
  color: var(--lc-verde-oscuro);
  text-decoration: none;
  font-weight: 500;
  font-size: clamp(16px, 1vw, 19px);
  flex-shrink: 0;
}

.lc-header__cta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(28px, 2.08vw, 40px);
  height: clamp(28px, 2.08vw, 40px);
  border-radius: 50%;
  background: var(--lc-blanco);
  color: var(--lc-verde-oscuro);
  flex-shrink: 0;
}

/* ---- Menú mobile (hamburguesa) ---- */
.lc-header__toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  width: 40px;
  height: 32px;
  padding: 0;
  margin-left: auto;
  background: none;
  border: none;
  cursor: pointer;
}

.lc-header__toggle span {
  display: block;
  height: 3px;
  width: 100%;
  border-radius: 2px;
  background: var(--lc-menta);
  transition: transform 0.25s ease, opacity 0.2s ease;
}

.lc-header__toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(9px) rotate(45deg);
}

.lc-header__toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.lc-header__toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-9px) rotate(-45deg);
}

.lc-header__mobile {
  display: none;
  padding: 8px 24px 24px;
  background: var(--lc-verde-oscuro);
}

.lc-header__mobile ul {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.lc-header__mobile a {
  color: var(--lc-blanco);
  text-decoration: none;
  font-size: 17px;
}

.lc-header__mobile .lc-header__cta--mobile {
  color: var(--lc-verde-oscuro);
}

@media (max-width: 960px) {
  .lc-header__nav,
  .lc-header__container > .lc-header__cta {
    display: none;
  }

  .lc-header__toggle {
    display: flex;
  }

  .lc-header__mobile:not([hidden]) {
    display: block;
  }

  /* El logo/claim apilados ya son el layout por defecto (ver regla base
     de .lc-header__logo); acá no hace falta repetirlo. */
}

/* ==========================================================================
   HERO
   ========================================================================== */
.lc-landing .lc-hero {
  padding: 0;
  display: grid;
  grid-template-columns: 52.9% 47.1%;
  background: var(--lc-beige-hero);
  align-items: stretch;
  height: clamp(420px, 29.8vw, 572px);
  position: relative;
}

.lc-hero__text {
  /* El valor en vw funciona como respaldo en Safari antiguo. En pantallas
     amplias se mantiene la alineación con el contenedor de 1480px. */
  padding: 40px 40px 40px 7.5vw;
  padding-left: max(7.5vw, calc((100vw - var(--lc-container)) / 2));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(20px, 2.4vw, 46px);
  justify-content: center;
  position: relative;
  overflow: hidden;
}

/* Lineas decorativas curvas del fondo del hero (arcos sutiles del mockup),
   confinadas a la columna de texto para que no se metan sobre la foto */
.lc-hero__text::before,
.lc-hero__text::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  border: 1px solid var(--lc-verde-oscuro);
  opacity: 0.42;
  pointer-events: none;
  z-index: 0;
}

.lc-hero__text::before {
  width: 960px;
  height: 960px;
  top: -770px;
  right: -470px;
}

.lc-hero__text::after {
  width: 960px;
  height: 960px;
  bottom: -730px;
  left: -550px;
}

.lc-hero__text > * {
  position: relative;
  z-index: 1;
}

.lc-hero__text h1 {
  font-size: var(--lc-fs-h1);
  line-height: 1.2;
  /* Ancho en em para que el quiebre de línea siga al del mockup al escalar */
  max-width: 12.9em;
  margin: 0;
}

.lc-hero__eyebrow {
  margin: 0 0 calc(-1 * clamp(8px, 1.2vw, 26px));
  font-size: clamp(13px, 0.85vw, 16px);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lc-verde-oscuro);
}

.lc-hero__info {
  max-width: 34em;
  font-size: clamp(16px, 1.05vw, 20px);
  line-height: 1.45;
  color: var(--lc-verde-oscuro);
}

/* Centro de Día usa el header del sitio. Acá va sticky en vez de fixed: se ve igual
   al bajar, pero ocupa su alto (que crece en pantallas anchas) y el contenido parte
   justo debajo en todos los anchos. */
.lc-landing--residencia-dia .site-header {
  position: sticky;
  /* Entre 970 y ~1150 px el menú del sitio se sale por la derecha. Fixed no genera
     scroll horizontal y sticky sí: se recorta igual que en el resto del sitio. */
  overflow-x: clip;
}

/* Centro de Día: bajada del hero más grande. */
.lc-landing--residencia-dia .lc-hero__info {
  font-size: clamp(19px, 1.4vw, 25px);
  text-wrap: balance;
}

/* Mismo aire a la derecha que a la izquierda para que el bloque de texto no llegue a la foto. */
@media (min-width: 901px) {
  .lc-landing--residencia-dia .lc-hero__text {
    padding-right: 7.5vw;
  }
}

.lc-hero__info strong {
  display: inline-block;
  margin-bottom: 2px;
  font-weight: 700;
}

.lc-hero__imagen {
  overflow: hidden;
  min-height: 0;
}

.lc-hero__imagen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 900px) {
  /* Misma especificidad que la regla base (.lc-landing .lc-hero), si no el
     ancho de columnas de desktop gana igual dentro del media query. */
  .lc-landing .lc-hero {
    grid-template-columns: 1fr;
    height: auto;
  }

  /* En mobile el mockup centra titular y botón, y baja la foto a ancho completo */
  .lc-hero__text {
    padding: 44px 24px 48px;
    align-items: center;
    text-align: center;
  }

  .lc-hero__text h1 {
    max-width: none;
  }

  /* Mismos arcos que en desktop, a escala mobile (la caja de texto acá es
     angosta y de alto automático, no los ~570px de la columna desktop). */
  .lc-hero__text::before,
  .lc-hero__text::after {
    width: 420px;
    height: 420px;
  }

  .lc-hero__text::before {
    top: -360px;
    right: -220px;
  }

  .lc-hero__text::after {
    bottom: -340px;
    left: -260px;
  }

  /* En mobile la foto va primero y el texto después (pedido de Senior Suites). */
  .lc-hero__imagen {
    order: -1;
    height: auto;
  }

  .lc-hero__imagen img {
    height: auto;
    aspect-ratio: 4 / 3;
  }
}

/* ==========================================================================
   ESPACIOS / GALERIA
   ========================================================================== */
.lc-espacios {
  background: var(--lc-crema);
}

.lc-espacios__carousel {
  max-width: var(--lc-container);
  margin: 0 auto;
  position: relative;
}

.lc-espacios__wrapper {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
}

.lc-espacios__prev,
.lc-espacios__next,
.lc-espacios__pagination {
  display: none;
}

.lc-espacios__foto {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}

.lc-espacios__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lc-espacios__etiqueta {
  position: absolute;
  top: clamp(8px, 0.73vw, 14px);
  left: clamp(8px, 0.73vw, 14px);
  padding: 7px 12px;
  border-radius: 4px;
  background: var(--lc-morado);
  color: var(--lc-blanco);
  font-size: clamp(12px, 0.68vw, 13px);
  font-weight: 500;
  line-height: 1.1;
  text-transform: uppercase;
}

/* En mobile el orden visual cambia para conservar el mosaico del arte:
   dos fotos pequeñas, la actividad principal, biblioteca y otras dos pequeñas. */
@media (max-width: 900px) {
  .lc-espacios__wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows:
      clamp(132px, 36vw, 190px)
      clamp(280px, 73vw, 380px)
      clamp(170px, 44vw, 230px)
      clamp(132px, 36vw, 190px);
  }

  .lc-espacios__foto {
    aspect-ratio: auto;
  }

  .lc-espacios__foto:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
  }

  .lc-espacios__foto:nth-child(2) {
    grid-column: 1 / 3;
    grid-row: 2;
  }

  .lc-espacios__foto:nth-child(3) {
    grid-column: 1 / 3;
    grid-row: 3;
  }

  .lc-espacios__foto:nth-child(4) {
    grid-column: 2;
    grid-row: 1;
  }

  .lc-espacios__foto:nth-child(5) {
    grid-column: 1;
    grid-row: 4;
  }

  .lc-espacios__foto:nth-child(6) {
    grid-column: 2;
    grid-row: 4;
  }
}

/* Layout "bento" del mockup: foto central alta que ocupa ambas filas,
   columna izquierda y derecha con 2 fotos cada una (la derecha partida en la fila 2). */
@media (min-width: 901px) {
  .lc-espacios__wrapper {
    grid-template-columns: 1fr 1.57fr 0.734fr 0.734fr;
    grid-template-rows: repeat(2, clamp(180px, 16.93vw, 325px));
    gap: 6px;
  }

  .lc-espacios__foto {
    aspect-ratio: auto;
  }

  .lc-espacios__foto:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
  }

  .lc-espacios__foto:nth-child(2) {
    grid-column: 2;
    grid-row: 1 / 3;
  }

  .lc-espacios__foto:nth-child(3) {
    grid-column: 3 / 5;
    grid-row: 1;
  }

  .lc-espacios__foto:nth-child(4) {
    grid-column: 1;
    grid-row: 2;
  }

  .lc-espacios__foto:nth-child(5) {
    grid-column: 3;
    grid-row: 2;
  }

  .lc-espacios__foto:nth-child(6) {
    grid-column: 4;
    grid-row: 2;
  }
}

@media (max-width: 700px) {
  .lc-espacios__carousel {
    padding: 0 40px;
  }

  .lc-espacios__wrapper {
    display: flex;
    gap: 0;
  }

  .lc-espacios__foto,
  .lc-espacios__foto:nth-child(n) {
    aspect-ratio: 4 / 3;
    grid-column: auto;
    grid-row: auto;
  }

  .lc-espacios__prev,
  .lc-espacios__next {
    position: absolute;
    top: calc(50% - 12px);
    transform: translateY(-50%);
    z-index: 2;
    width: 32px;
    height: 32px;
    margin: 0;
    border: 0;
    border-radius: 50%;
    display: flex;
    cursor: pointer;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 20px;
  }

  /* Fondo blanco + ícono verde por defecto en ambas flechas (antes prev
     era blanca y next verde siempre); en hover se invierten los colores.
     currentColor NO es confiable dentro de un SVG usado como
     background-image (no hereda el "color" del elemento en todos los
     navegadores), asi que el ícono blanco de hover es un SVG aparte, no
     un recoloreo. */
  .lc-espacios__prev,
  .lc-espacios__next {
    background-color: var(--lc-blanco);
  }

  .lc-espacios__prev {
    left: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='M26 14H2m0 0l8-8m-8 8l8 8' stroke='%23044539' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }

  .lc-espacios__next {
    right: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='M2 14h24m0 0l-8-8m8 8l-8 8' stroke='%23044539' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }

  .lc-espacios__prev::after,
  .lc-espacios__next::after {
    content: none;
  }

  @media (hover: hover) and (pointer: fine) {
    .lc-espacios__prev:hover,
    .lc-espacios__next:hover {
      background-color: var(--lc-verde-oscuro);
    }

    .lc-espacios__prev:hover {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='M26 14H2m0 0l8-8m-8 8l8 8' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    }

    .lc-espacios__next:hover {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='M2 14h24m0 0l-8-8m8 8l-8 8' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    }
  }

  .lc-espacios__prev.swiper-button-disabled,
  .lc-espacios__next.swiper-button-disabled {
    opacity: 0.4;
  }

  .lc-espacios__pagination {
    position: static;
    min-height: 10px;
    margin-top: 14px;
    display: flex;
    justify-content: center;
    gap: 7px;
  }

  .lc-espacios__pagination .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    margin: 0;
    background: var(--lc-menta);
    opacity: 1;
  }

  .lc-espacios__pagination .swiper-pagination-bullet-active {
    width: 32px;
    border-radius: 999px;
    background: var(--lc-verde-oscuro);
  }
}

/* ==========================================================================
   DIFERENCIADORES
   ========================================================================== */
.lc-diferenciadores {
  background: var(--lc-menta);
  text-align: center;
}

.lc-diferenciadores__carousel {
  max-width: var(--lc-container);
  margin: 0 auto;
  position: relative;
}

/* Si hay menos cards que columnas visibles (slidesPerView), Swiper las deja
   pegadas a la izquierda por defecto. Las centramos SOLO en el breakpoint
   de escritorio ancho (4 columnas, controles ocultos, sin swipe real):
   aplicar esto en los breakpoints intermedios (2 o 3 columnas) rompe el
   cálculo de swipe de Swiper y la última card deja de ser alcanzable. */
@media (min-width: 1681px) {
  .lc-diferenciadores__swiper .swiper-wrapper {
    justify-content: center;
  }
}

/* En pantallas amplias se ven las cuatro cards y no hacen falta controles. */
@media (min-width: 1681px) {
  .lc-diferenciadores__prev,
  .lc-diferenciadores__next,
  .lc-diferenciadores__pagination {
    display: none;
  }
}

.lc-diferenciadores__card {
  height: auto;
  position: relative;
  overflow: hidden;
  aspect-ratio: 361 / 320;
  background: var(--lc-verde-oscuro);
}

.lc-diferenciadores__card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lc-diferenciadores__overlay {
  position: absolute;
  inset: auto 0 0 0;
  padding: clamp(44px, 4vw, 72px) clamp(14px, 1.25vw, 24px) clamp(16px, 1.25vw, 24px);
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.34) 52%,
    rgba(0, 0, 0, 0) 100%
  );
  text-align: left;
  color: var(--lc-blanco);
}

.lc-diferenciadores__titulo {
  display: block;
  font-weight: 700;
  font-size: clamp(18px, 1.1vw, 21px);
  line-height: 1.35;
}

.lc-diferenciadores__descripcion {
  margin: 8px 0 0;
  font-size: clamp(16px, 1vw, 19px);
  line-height: 1.5;
  font-weight: 500;
}

/* Tarjeta destacada (ej. "Centro de día"): por defecto se ve igual que las
   demás (título abajo a la izquierda). El velo verde con la descripción
   completa solo aparece al pasar el mouse por encima. */
.lc-diferenciadores__card--destacada .lc-diferenciadores__overlay {
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.68) 0%,
    rgba(4, 69, 57, 0.86) 58%,
    rgba(2, 38, 32, 0.84) 100%
  );
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: clamp(16px, 1.6vw, 30px);
  opacity: 0;
  transition: opacity 0.25s ease;
}

.lc-diferenciadores__card--destacada .lc-diferenciadores__titulo {
  color: var(--lc-menta);
  font-size: clamp(21px, 1.35vw, 26px);
  margin-bottom: clamp(8px, 0.83vw, 16px);
}

/* Estado "cerrado": solo el título, como en el resto de las tarjetas */
.lc-diferenciadores__card--destacada .lc-diferenciadores__titulo--cerrado {
  position: absolute;
  inset: auto 0 0 0;
  padding: clamp(44px, 4vw, 72px) clamp(14px, 1.25vw, 24px) clamp(16px, 1.25vw, 24px);
  margin: 0;
  text-align: left;
  color: var(--lc-blanco);
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.34) 52%,
    rgba(0, 0, 0, 0) 100%
  );
  font-size: clamp(18px, 1.1vw, 21px);
  font-weight: 700;
  transition: opacity 0.25s ease;
}

/* El hover solo tiene sentido con mouse. En touch (mobile/tablet) no hay
   hover real, asi que se revela con un tap: landing-campana.js agrega la
   clase .is-open al tocar la card (y la saca si se toca de nuevo). */
@media (hover: hover) and (pointer: fine) {
  .lc-diferenciadores__card--destacada:hover .lc-diferenciadores__overlay,
  .lc-diferenciadores__card--destacada:focus-within .lc-diferenciadores__overlay {
    opacity: 1;
  }

  .lc-diferenciadores__card--destacada:hover .lc-diferenciadores__titulo--cerrado,
  .lc-diferenciadores__card--destacada:focus-within .lc-diferenciadores__titulo--cerrado {
    opacity: 0;
  }
}

.lc-diferenciadores__card--destacada.is-open .lc-diferenciadores__overlay {
  opacity: 1;
}

.lc-diferenciadores__card--destacada.is-open .lc-diferenciadores__titulo--cerrado {
  opacity: 0;
}

/* Mobile: la card necesita mas alto para que quepa la descripcion completa
   una vez abierta (en desktop el ratio casi cuadrado alcanza porque hay
   mas ancho disponible). */
@media (max-width: 700px) {
  .lc-diferenciadores__card {
    aspect-ratio: 3 / 4;
  }
}


/* ==========================================================================
   SERVICIOS
   ========================================================================== */
.lc-servicios {
  background: var(--lc-crema);
}

.lc-servicios__carousel {
  max-width: var(--lc-container);
  margin: 0 auto;
  position: relative;
}

.lc-servicios__item {
  height: clamp(190px, 11.9vw, 228px);
  background: var(--lc-lavanda);
  padding: clamp(16px, 1.5vw, 28px) clamp(16px, 1.25vw, 24px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 1.4vw, 27px);
  text-align: center;
  font-size: clamp(17px, 1.05vw, 20px);
  line-height: 1.4;
  font-weight: 500;
}

.lc-servicios__item img {
  height: clamp(42px, 3.23vw, 62px);
  width: auto;
}

/* Centro de Día: íconos ilustrados a color, más grandes que los de línea
   de las landings de campaña. */
.lc-landing--residencia-dia .lc-servicios__item img {
  height: clamp(60px, 4.6vw, 84px);
}

@media (max-width: 600px) {
  .lc-landing--residencia-dia .lc-servicios__item img {
    height: 80px;
  }
}

/* Cuando el texto trae ":", lo que sigue queda mas chico para que
   descripciones largas (ej. "Evaluacion integral: ...") no infracten la card. */
.lc-servicios__item span small {
  display: block;
  margin-top: 4px;
  font-size: 0.7em;
  font-weight: 400;
  line-height: 1.3;
  opacity: 0.85;
}

.lc-servicios__item--extra {
  background: var(--lc-menta);
  position: relative;
}

.lc-servicios__simbologia {
  display: flex;
  justify-content: center;
  gap: clamp(16px, 2vw, 32px);
  margin-bottom: clamp(16px, 1.5vw, 24px);
  font-size: clamp(13px, 0.85vw, 15px);
}

.lc-servicios__simbologia-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.lc-servicios__dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--lc-lavanda);
}

.lc-servicios__dot--extra {
  background: var(--lc-menta);
}

/* ==========================================================================
   FLECHAS Y PAGINACION DE CARRUSELES (servicios + residencias)
   ========================================================================== */
.lc-servicios__prev,
.lc-servicios__next,
.lc-residencias__prev,
.lc-residencias__next,
.lc-diferenciadores__prev,
.lc-diferenciadores__next {
  position: absolute;
  transform: translateY(-50%);
  width: clamp(40px, 3.23vw, 62px);
  height: clamp(40px, 3.23vw, 62px);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  margin: 0;
  border: none;
}

/* "top: 50%" centraria la flecha contra el carousel completo (card +
   paginador), no contra la card. El paginador va debajo y suma alto, asi
   que hay que restar la mitad de ese alto para que quede centrada
   respecto de la card. Diferenciadores tiene un margin-top mas chico en
   su paginador, por eso el offset es distinto. */
.lc-servicios__prev,
.lc-servicios__next,
.lc-residencias__prev,
.lc-residencias__next {
  top: calc(50% - clamp(18px, 1.4vw, 26px));
}

.lc-diferenciadores__prev,
.lc-diferenciadores__next {
  top: calc(50% - clamp(11px, 0.8vw, 15px));
}

/* Solo residencias tiene fondo blanco detrás del carrusel: el círculo
   blanco se pierde sin un borde que lo marque. Servicios/diferenciadores
   están sobre fondos de color y se ven bien sin outline. */
.lc-residencias__prev,
.lc-residencias__next {
  border: 1px solid var(--lc-verde-oscuro);
}

@media (hover: hover) and (pointer: fine) {
  .lc-residencias__prev:hover,
  .lc-residencias__next:hover {
    border-color: var(--lc-blanco);
  }
}

/* La flecha va como SVG de fondo y no como glifo de texto: el carácter
   unicode no está garantizado en todas las plataformas. currentColor NO
   es confiable dentro de un SVG usado como background-image (no hereda
   el "color" del elemento en todos los navegadores): el ícono blanco de
   hover es un SVG aparte, no un recoloreo. */
.lc-servicios__prev,
.lc-servicios__next,
.lc-residencias__prev,
.lc-residencias__next,
.lc-diferenciadores__prev,
.lc-diferenciadores__next {
  background-color: var(--lc-blanco);
}

.lc-servicios__prev,
.lc-residencias__prev,
.lc-diferenciadores__prev {
  left: clamp(-85px, -4.43vw, -44px);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='M26 14H2m0 0l8-8m-8 8l8 8' stroke='%23044539' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.lc-servicios__next,
.lc-residencias__next,
.lc-diferenciadores__next {
  right: clamp(-86px, -4.48vw, -44px);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='M2 14h24m0 0l-8-8m8 8l-8 8' stroke='%23044539' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.lc-servicios__prev,
.lc-servicios__next,
.lc-residencias__prev,
.lc-residencias__next,
.lc-diferenciadores__prev,
.lc-diferenciadores__next {
  background-repeat: no-repeat;
  background-position: center;
  background-size: clamp(22px, 1.66vw, 32px);
}

@media (hover: hover) and (pointer: fine) {
  .lc-servicios__prev:hover,
  .lc-servicios__next:hover,
  .lc-residencias__prev:hover,
  .lc-residencias__next:hover,
  .lc-diferenciadores__prev:hover,
  .lc-diferenciadores__next:hover {
    background-color: var(--lc-verde-oscuro);
  }

  .lc-servicios__prev:hover,
  .lc-residencias__prev:hover,
  .lc-diferenciadores__prev:hover {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='M26 14H2m0 0l8-8m-8 8l8 8' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }

  .lc-servicios__next:hover,
  .lc-residencias__next:hover,
  .lc-diferenciadores__next:hover {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='M2 14h24m0 0l-8-8m8 8l-8 8' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }
}

/* Cuando no hay mas cards hacia ese lado, Swiper agrega swiper-button-
   disabled: bajamos la opacidad para que se note que no se puede accionar. */
.lc-servicios__prev.swiper-button-disabled,
.lc-servicios__next.swiper-button-disabled,
.lc-residencias__prev.swiper-button-disabled,
.lc-residencias__next.swiper-button-disabled,
.lc-diferenciadores__prev.swiper-button-disabled,
.lc-diferenciadores__next.swiper-button-disabled {
  opacity: 0.4;
}

.lc-servicios__prev.swiper-button-lock,
.lc-servicios__next.swiper-button-lock,
.lc-residencias__prev.swiper-button-lock,
.lc-residencias__next.swiper-button-lock,
.lc-diferenciadores__prev.swiper-button-lock,
.lc-diferenciadores__next.swiper-button-lock {
  display: none;
}

.lc-servicios__pagination.swiper-pagination-lock,
.lc-residencias__pagination.swiper-pagination-lock,
.lc-diferenciadores__pagination.swiper-pagination-lock {
  display: none;
}

/* Swiper dibuja su propio glifo en ::after; acá la flecha es el fondo SVG */
.lc-servicios__prev::after,
.lc-servicios__next::after,
.lc-residencias__prev::after,
.lc-residencias__next::after,
.lc-diferenciadores__prev::after,
.lc-diferenciadores__next::after {
  content: none;
}

/* Bajo ~1660px ya no cabe la flecha fuera del contenedor: se mete hacia adentro */
@media (max-width: 1680px) {
  .lc-servicios__carousel,
  .lc-residencias__carousel,
  .lc-diferenciadores__carousel {
    padding: 0 clamp(48px, 5vw, 78px);
  }

  .lc-servicios__prev,
  .lc-residencias__prev,
  .lc-diferenciadores__prev {
    left: 0;
  }

  .lc-servicios__next,
  .lc-residencias__next,
  .lc-diferenciadores__next {
    right: 0;
  }
}

/* Con las cuatro cards visibles, la grilla usa el ancho completo. */
@media (min-width: 1681px) {
  .lc-diferenciadores__carousel {
    padding: 0;
  }
}

.lc-servicios__pagination,
.lc-residencias__pagination,
.lc-diferenciadores__pagination {
  position: static;
  margin-top: clamp(14px, 1vw, 19px);
  min-height: clamp(8px, 0.63vw, 12px);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(6px, 0.52vw, 10px);
}

/* Mas separacion entre las cards y su paginador (servicios + residencias). */
.lc-servicios__pagination,
.lc-residencias__pagination {
  margin-top: clamp(28px, 2.2vw, 40px);
}

.lc-servicios .swiper-pagination-bullet,
.lc-residencias .swiper-pagination-bullet,
.lc-diferenciadores .swiper-pagination-bullet {
  background: var(--lc-menta);
  opacity: 1;
  width: clamp(8px, 0.63vw, 12px);
  height: clamp(8px, 0.63vw, 12px);
  border-radius: 999px;
  margin: 0;
  transition: width 0.2s ease, background 0.2s ease;
}

.lc-servicios .swiper-pagination-bullet-active,
.lc-residencias .swiper-pagination-bullet-active,
.lc-diferenciadores .swiper-pagination-bullet-active {
  background: var(--lc-verde-oscuro);
  width: clamp(28px, 2.29vw, 44px);
}

/* Sobre el fondo menta de diferenciadores los bullets menta no se verían */
.lc-diferenciadores .swiper-pagination-bullet {
  background: var(--lc-blanco);
}

/* En mobile se reserva un carril lateral para que las flechas no invadan las
   cards; el carril es angosto y las flechas más chicas, para dejarle el
   mayor ancho posible a las cards. */
@media (max-width: 700px) {
  .lc-servicios__carousel,
  .lc-residencias__carousel,
  .lc-diferenciadores__carousel {
    padding: 0 40px;
  }

  .lc-servicios__prev,
  .lc-servicios__next,
  .lc-residencias__prev,
  .lc-residencias__next,
  .lc-diferenciadores__prev,
  .lc-diferenciadores__next {
    width: 32px;
    height: 32px;
    background-size: 20px;
  }

  .lc-servicios__prev,
  .lc-residencias__prev,
  .lc-diferenciadores__prev {
    left: 0;
  }

  .lc-servicios__next,
  .lc-residencias__next,
  .lc-diferenciadores__next {
    right: 0;
  }
}

/* ==========================================================================
   RESIDENCIAS CERCANAS
   ========================================================================== */
.lc-residencias {
  background: var(--lc-blanco);
}

.lc-residencias__eyebrow {
  font-size: clamp(17px, 1.15vw, 22px);
  line-height: 1.5;
  font-weight: 400;
  margin: 0 0 clamp(12px, 1.2vw, 24px);
}

.lc-residencias__carousel {
  max-width: var(--lc-container);
  margin: 0 auto;
  position: relative;
}

.lc-residencias__card {
  height: auto;
  background: var(--lc-verde-oscuro);
  overflow: hidden;
  color: var(--lc-blanco);
  /* La foto va enmarcada por el verde de la tarjeta, como en el mockup */
  padding: clamp(10px, 0.94vw, 18px);
}

.lc-residencias__card > img,
.lc-residencias__media img {
  height: clamp(230px, 18vw, 310px);
  object-fit: cover;
  width: 100%;
}

@media (max-width: 700px) {
  .lc-residencias__card > img,
  .lc-residencias__media img {
    height: clamp(240px, 54vw, 280px);
  }
}

.lc-residencias__body {
  padding: clamp(20px, 1.77vw, 34px) clamp(6px, 0.52vw, 10px) clamp(22px, 2.03vw, 39px);
  display: flex;
  flex-direction: column;
  gap: clamp(9px, 0.78vw, 15px);
}

.lc-residencias__marca {
  font-size: clamp(15px, 0.95vw, 18px);
  font-weight: 500;
}

.lc-residencias__nombre {
  font-size: clamp(24px, 1.72vw, 33px);
  font-weight: 500;
  line-height: 1.25;
  color: var(--lc-menta);
  margin-bottom: clamp(12px, 1.09vw, 21px);
}

.lc-residencias__direccion,
.lc-residencias__telefono {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.73vw, 14px);
  font-size: clamp(17px, 1.05vw, 20px);
  line-height: 1.4;
}

.lc-residencias__direccion img,
.lc-residencias__telefono img {
  width: clamp(18px, 1.2vw, 23px);
  height: auto;
  flex-shrink: 0;
}

.lc-residencias__body .lc-btn {
  margin-top: clamp(16px, 1.51vw, 29px);
  align-self: flex-start;
}

.lc-residencias__body .lc-btn--light {
  background: var(--lc-menta);
  color: var(--lc-verde-oscuro);
}

/* ==========================================================================
   CONTACTO
   ========================================================================== */
.lc-contacto {
  background: var(--lc-crema);
}

.lc-contacto__card {
  max-width: var(--lc-container);
  margin: 0 auto;
  background: var(--lc-blanco);
  overflow: hidden;
  display: grid;
  grid-template-columns: 53.5% 46.5%;
  gap: 0;
}

.lc-contacto__imagen {
  position: relative;
  overflow: hidden;
  min-height: 100%;
}

.lc-contacto__imagen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lc-contacto__imagen::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.68) 0%,
    rgba(0, 0, 0, 0.32) 34%,
    rgba(0, 0, 0, 0) 68%
  );
  pointer-events: none;
  z-index: 1;
}

.lc-contacto__frase {
  position: absolute;
  left: clamp(20px, 2.19vw, 42px);
  right: auto;
  bottom: clamp(10px, 0.94vw, 18px);
  max-width: min(600px, calc(100% - 84px));
  color: var(--lc-menta);
  font-family: "Benton Modern Display", Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(28px, 3.33vw, 64px);
  line-height: 1.05;
  margin: 0;
  z-index: 2;
}

.lc-contacto__form {
  --lc-form-label: #202522;
  --lc-form-value: #29302d;
  --lc-form-placeholder: #a3a8a1;
  --lc-form-border: #d8dcd8;
  padding: clamp(26px, 2.6vw, 50px) clamp(24px, 2.4vw, 46px) clamp(20px, 1.3vw, 25px);
}

/* Centro de Día: foto y formulario de extremo a extremo, sin la franja crema. */
.lc-landing--residencia-dia .lc-contacto {
  padding: 0;
  background: var(--lc-blanco);
}

.lc-landing--residencia-dia .lc-contacto__card {
  max-width: none;
  grid-template-columns: 50% 50%;
}

.lc-landing--residencia-dia .lc-contacto__imagen img {
  object-position: 60% center;
}

.lc-landing--residencia-dia .lc-contacto__form {
  background: var(--lc-crema);
  /* A la derecha se alinea con el borde del contenedor de 1480px. */
  padding: clamp(40px, 4.5vw, 88px) max(clamp(32px, 5vw, 96px), calc((100vw - var(--lc-container)) / 2)) clamp(40px, 4.5vw, 88px) clamp(28px, 4.5vw, 88px);
}

/* Centro de Día: esquinas levemente redondeadas en las tarjetas. */
.lc-landing--residencia-dia .lc-servicios__item,
.lc-landing--residencia-dia .lc-residencias__card {
  border-radius: 3px;
  overflow: hidden;
}

/* El link de términos en menta no se lee sobre fondo claro. */
.lc-landing--residencia-dia .lc-contacto__form .wpcf7-acceptance .wpcf7-list-item-label a {
  color: var(--lc-verde-oscuro);
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (max-width: 900px) {
  .lc-landing--residencia-dia .lc-contacto__card {
    grid-template-columns: 1fr;
  }

  .lc-landing--residencia-dia .lc-contacto__form {
    padding: 36px 24px 40px;
  }
}


.lc-contacto__form h2 {
  font-size: clamp(22px, 1.46vw, 28px);
  font-weight: 500;
  margin: 0;
}

.lc-contacto__bajada {
  margin: clamp(10px, 0.83vw, 16px) 0 clamp(20px, 1.87vw, 36px);
  font-size: clamp(17px, 1.05vw, 20px);
  line-height: 1.5;
  color: #4a4f52;
}

/* Estilos generales para el formulario de Contact Form 7 dentro de la landing */
.lc-contacto__form .wpcf7-form p {
  margin: 0 0 20px;
}

/* CF7 (wpautop) mete un <br> entre label e input; el label ya es block */
.lc-contacto__form .wpcf7-form br {
  display: none;
}

.lc-contacto__form .form-group {
  margin-bottom: 0;
}

.lc-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
}

@media (max-width: 700px) {
  .lc-form-row {
    grid-template-columns: 1fr;
  }
}

.lc-form-acceptance {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 0;
  font-size: clamp(13px, 0.73vw, 14px);
}

.lc-form-acceptance .wpcf7-list-item {
  margin: 0;
}

/* El CSS global del sitio fuerza texto blanco en el checkbox de aceptación
   (pensado para el fondo oscuro de la sección de contacto principal); acá
   el formulario va sobre fondo blanco, así que lo pisamos. */
.lc-landing .wpcf7-acceptance .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--lc-texto);
  margin-left: 0;
  margin-bottom: 0;
  font-size: clamp(13px, 0.73vw, 14px);
  font-weight: 400;
  line-height: 1.35;
}

.lc-landing .wpcf7-acceptance input[type="checkbox"] {
  flex: 0 0 auto;
  margin: 0;
}

.lc-landing .wpcf7-acceptance .wpcf7-list-item-label a {
  color: var(--lc-menta);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.lc-contacto__form .wpcf7-form label {
  display: block;
  font-size: clamp(16px, 0.94vw, 18px);
  margin-bottom: clamp(7px, 0.47vw, 9px);
  line-height: 1.2;
  color: var(--lc-form-label);
  font-weight: 500;
}

.lc-contacto__form .wpcf7-form input:not([type="checkbox"]),
.lc-contacto__form .wpcf7-form select,
.lc-contacto__form .wpcf7-form textarea {
  width: 100%;
  padding: clamp(10px, 0.83vw, 16px) clamp(12px, 0.94vw, 18px);
  border: 1px solid var(--lc-form-border);
  border-radius: 4px;
  font-family: inherit;
  font-size: clamp(16px, 0.94vw, 18px);
  color: var(--lc-form-value);
  background: var(--lc-blanco);
  caret-color: var(--lc-verde-oscuro);
}

.lc-contacto__form .wpcf7-form input::-webkit-input-placeholder,
.lc-contacto__form .wpcf7-form textarea::-webkit-input-placeholder {
  color: var(--lc-form-placeholder);
  opacity: 1;
}

.lc-contacto__form .wpcf7-form input::placeholder,
.lc-contacto__form .wpcf7-form textarea::placeholder {
  color: var(--lc-form-placeholder);
  opacity: 1;
}

.lc-contacto__form .wpcf7-form input:not([type="checkbox"]):focus,
.lc-contacto__form .wpcf7-form select:focus,
.lc-contacto__form .wpcf7-form textarea:focus {
  border-color: #557b72;
  outline: 2px solid rgba(4, 69, 57, 0.14);
  outline-offset: 1px;
}

.lc-contacto__form .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  font-size: clamp(14px, 0.78vw, 15px);
  line-height: 1.35;
  font-weight: 400;
}

.lc-contacto__form .wpcf7-form textarea {
  min-height: clamp(104px, 7.76vw, 149px);
  resize: vertical;
}

/* Los select van nativos (sin el selectize global del sitio): les ponemos la
   flecha del mockup a mano. */
.lc-contacto__form .wpcf7-form select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23044539' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right clamp(12px, 0.94vw, 18px) center;
  padding-right: clamp(34px, 2.4vw, 46px);
  color: var(--lc-form-placeholder);
}

.lc-contacto__form .wpcf7-form select.lc-field--has-value,
.lc-contacto__form .wpcf7-form select option:not([value=""]) {
  color: var(--lc-form-value);
}

.lc-contacto__form .wpcf7-form select option[value=""] {
  color: var(--lc-form-placeholder);
}

/* Fila final: aceptación a la izquierda y botón de envío a la derecha */
.lc-form-final {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.lc-form-final .wpcf7-form-control-wrap {
  display: inline-block;
}

.lc-form-final p {
  margin: 0 !important;
}

.lc-contacto__form .wpcf7-form .lc-form-final input[type="submit"] {
  width: auto;
  border: none;
  background: var(--lc-verde-oscuro);
  color: var(--lc-blanco);
  border-radius: 999px;
  padding: clamp(10px, 0.73vw, 14px) clamp(24px, 1.77vw, 34px);
  font-weight: 500;
  font-size: clamp(16px, 1vw, 19px);
  cursor: pointer;
}

/* Círculo con flecha del botón de envío (el submit de CF7 no admite hijos) */
.lc-submit-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.lc-submit-wrap .wpcf7-spinner {
  position: absolute;
  right: -28px;
}

.lc-submit-wrap::before {
  content: "\2192";
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(30px, 2.08vw, 40px);
  height: clamp(30px, 2.08vw, 40px);
  border-radius: 50%;
  background: var(--lc-blanco);
  color: var(--lc-verde-oscuro);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(14px, 0.94vw, 18px);
  pointer-events: none;
}

.lc-contacto__form .wpcf7-form .lc-submit-wrap input[type="submit"] {
  padding-left: clamp(42px, 3.1vw, 58px);
}

@media (max-width: 900px) {
  .lc-contacto__card {
    grid-template-columns: 1fr;
    height: auto;
  }

  .lc-contacto__imagen {
    height: auto;
    aspect-ratio: 5 / 4;
  }
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.lc-footer {
  background: var(--lc-verde-oscuro);
  color: var(--lc-blanco);
  padding: clamp(44px, 4.06vw, 78px) 24px clamp(38px, 3.44vw, 66px);
}

.lc-footer__container {
  max-width: var(--lc-container);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(24px, 2.08vw, 40px);
  text-align: center;
}

/* El tagline va pegado al logo; el aire mayor va antes de las redes sociales */
.lc-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

.lc-footer__logo img {
  height: clamp(61px, 4.23vw, 81px);
  width: auto;
}

.lc-footer__tagline {
  height: clamp(19px, 1.2vw, 23px);
  width: auto;
  margin: clamp(9px, 0.68vw, 13px) auto 0;
}

.lc-footer__social {
  display: flex;
  gap: clamp(16px, 1.35vw, 26px);
  margin-top: clamp(26px, 2.45vw, 47px);
}

.lc-footer__social img {
  height: clamp(16px, 1.04vw, 20px);
  width: clamp(16px, 1.04vw, 20px);
}

.lc-footer__info {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(24px, 5vw, 96px);
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  padding-top: clamp(28px, 2.76vw, 53px);
}

.lc-footer__item {
  display: flex;
  flex-direction: column;
  gap: clamp(5px, 0.42vw, 8px);
  font-size: clamp(16px, 0.94vw, 18px);
  text-align: left;
}

.lc-footer__label {
  opacity: 0.9;
}

.lc-footer__item a {
  color: var(--lc-menta);
  text-decoration: none;
  font-weight: 400;
  font-size: clamp(19px, 1.67vw, 32px);
  line-height: 1.15;
}

/* En mobile los datos de contacto van en una sola columna centrada */
@media (max-width: 700px) {
  .lc-footer__info {
    flex-direction: column;
    align-items: center;
    gap: 22px;
  }

  .lc-footer__item {
    text-align: center;
    align-items: center;
  }
}

/* Popup de éxito al enviar el formulario — mismo componente/textos que usa
   el "Formulario de contacto" del sitio principal (template-parts/popup-
   exito-formulario.php), pero esta landing no carga css/styles.css, así
   que replicamos aquí las reglas visuales con la paleta propia. */
.popup-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.popup-overlay.show {
  display: flex;
}

.popup-content {
  background: #ffffff;
  padding: 2rem;
  border-radius: 8px;
  max-width: 567px;
  max-height: 377px;
  width: 90%;
  margin: 0 auto;
  text-align: center;
  position: relative;
  font-family: "PP Neue Montreal", "Gotham", sans-serif;
}

.popup-icon {
  margin-bottom: 1rem;
}

.popup-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
}

.popup-accept {
  margin-top: 1rem;
  padding: 0.75rem 3rem;
  width: fit-content;
  cursor: pointer;
  background-color: #044539;
  color: #ffffff;
  border: none;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 400;
}

.popup-accept:hover {
  background-color: #cfa74a;
  color: #ffffff;
}

.popup-content h2 {
  color: #044539;
  font-size: 18px;
  font-weight: 400;
  margin-bottom: 1rem;
}

.popup-content p {
  color: #1a202c;
  font-size: 16px;
  margin-bottom: 1rem;
}

@media (max-width: 660px) {
  .popup-content {
    margin: 20px;
  }

  .popup-content h2 {
    font-size: 16px;
  }

  .popup-content p {
    font-size: 14px;
  }
}

/* ==========================================================================
   TITULO DE GALERIA Y NOTA LEGAL (campos opcionales)
   ========================================================================== */
.lc-espacios__galeria-titulo {
  margin: 0 auto clamp(20px, 1.8vw, 34px);
  text-align: center;
  font-size: clamp(20px, 1.5vw, 28px);
  font-weight: 500;
  line-height: 1.3;
}

.lc-nota-legal {
  max-width: var(--lc-container);
  margin: 0 auto;
  padding: 24px clamp(24px, 7.5vw, 40px) 32px;
  font-size: 13px;
  line-height: 1.5;
  color: #6b7074;
  text-align: center;
}

/* Centro de Día: la nota legal va en la franja verde, como parte del footer. */
.lc-landing--residencia-dia .lc-nota-legal {
  max-width: none;
  margin: 0;
  padding: 28px 24px;
  background: var(--lc-verde-oscuro);
  color: rgba(255, 255, 255, 0.78);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

/* ==========================================================================
   CENTRO DE DÍA — hovers, foco y microinteracciones
   Todo va bajo .lc-landing--residencia-dia para no alterar las landings de
   campaña (Aspiracional/Premium). Las animaciones de entrada y scroll viven
   en js/centro-dia-motion.js.
   ========================================================================== */
.lc-landing--residencia-dia {
  --cd-verde-hover: #0a5a4a;
  --cd-menta-hover: #b6f1cd;
  --cd-submit-circulo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='20' fill='%23ffffff'/%3E%3C/svg%3E");
  --cd-submit-circulo-hover: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='20' fill='%2394e8b4'/%3E%3C/svg%3E");
  --cd-submit-flecha: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M12 20h15m0 0l-5-5m5 5l-5 5' fill='none' stroke='%23044539' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --cd-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  /* Flechas de los carruseles en verde oscuro (se reutilizan en el hover
     para pisar los íconos blancos de las reglas base). */
  --cd-flecha-prev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='M26 14H2m0 0l8-8m-8 8l8 8' stroke='%23044539' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --cd-flecha-next: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='M2 14h24m0 0l-8-8m8 8l-8 8' stroke='%23044539' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---- Botones .lc-btn (CTA del hero y "Ver residencia") ---- */
.lc-landing--residencia-dia .lc-btn {
  transition: background-color 0.3s var(--cd-ease);
}

.lc-landing--residencia-dia .lc-btn__circle {
  overflow: hidden; /* la flecha nunca sale del círculo */
  transition: background-color 0.3s var(--cd-ease), color 0.3s var(--cd-ease);
}

.lc-landing--residencia-dia .lc-btn:hover {
  opacity: 1;
}

/* ---- CTA del header ---- */
.lc-landing--residencia-dia .lc-header__cta {
  transition: background-color 0.3s var(--cd-ease);
}

.lc-landing--residencia-dia .lc-header__cta-icon {
  overflow: hidden;
  transition: background-color 0.3s var(--cd-ease), color 0.3s var(--cd-ease);
}

/* Flecha dentro del círculo: leve vaivén al pasar el mouse (atrás y adelante) */
.lc-landing--residencia-dia .lc-flecha {
  display: inline-block;
  transition: transform 0.3s var(--cd-ease);
}

@keyframes cd-flecha-vaiven {
  0% { transform: translateX(0); }
  40% { transform: translateX(-3px); }
  100% { transform: translateX(2px); }
}

@keyframes cd-submit-vaiven {
  0% { background-position: 4px center, 4px center; }
  40% { background-position: 1px center, 4px center; }
  100% { background-position: 6px center, 4px center; }
}

/* ---- Links del menú: subrayado animado ---- */
.lc-landing--residencia-dia .lc-header__menu li a,
.lc-landing--residencia-dia .lc-header__mobile ul a,
.lc-landing--residencia-dia .lc-residencias__telefono a {
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0 1px;
  padding-bottom: 3px;
  transition: background-size 0.3s var(--cd-ease), color 0.3s var(--cd-ease);
}

.lc-landing--residencia-dia .lc-header__menu li a,
.lc-landing--residencia-dia .lc-header__mobile ul a {
  background-image: linear-gradient(var(--lc-menta), var(--lc-menta));
}

.lc-landing--residencia-dia .lc-residencias__telefono a {
  color: inherit;
  text-decoration: none;
  background-image: linear-gradient(var(--lc-menta), var(--lc-menta));
}

/* ---- Flechas de los carruseles: relleno menta ---- */
.lc-landing--residencia-dia .lc-espacios__prev,
.lc-landing--residencia-dia .lc-espacios__next,
.lc-landing--residencia-dia .lc-servicios__prev,
.lc-landing--residencia-dia .lc-servicios__next,
.lc-landing--residencia-dia .lc-residencias__prev,
.lc-landing--residencia-dia .lc-residencias__next {
  transition: background-color 0.3s var(--cd-ease), border-color 0.3s var(--cd-ease), opacity 0.3s var(--cd-ease);
}

/* ---- Foco visible (teclado) ---- */
.lc-landing--residencia-dia a:focus-visible,
.lc-landing--residencia-dia button:focus-visible,
.lc-landing--residencia-dia input[type="submit"]:focus-visible {
  outline: 3px solid var(--lc-verde-oscuro);
  outline-offset: 3px;
  border-radius: 999px;
}

/* Sobre fondos oscuros el anillo va en menta / blanco */
.lc-landing--residencia-dia .lc-header a:focus-visible,
.lc-landing--residencia-dia .lc-header button:focus-visible,
.lc-landing--residencia-dia .lc-residencias__card a:focus-visible,
.lc-landing--residencia-dia .lc-footer a:focus-visible {
  outline-color: var(--lc-menta);
}

.lc-landing--residencia-dia .lc-header__cta:focus-visible {
  outline-color: var(--lc-blanco);
}

/* Enlaces de texto: anillo rectangular suave, no píldora */
.lc-landing--residencia-dia .lc-header__menu li a:focus-visible,
.lc-landing--residencia-dia .lc-header__mobile ul a:focus-visible,
.lc-landing--residencia-dia .lc-residencias__telefono a:focus-visible,
.lc-landing--residencia-dia .lc-footer a:focus-visible {
  border-radius: 4px;
  outline-offset: 4px;
  background-size: 100% 1px;
}

/* Flechas circulares: el radio ya es 50% */
.lc-landing--residencia-dia .lc-espacios__prev:focus-visible,
.lc-landing--residencia-dia .lc-espacios__next:focus-visible,
.lc-landing--residencia-dia .lc-servicios__prev:focus-visible,
.lc-landing--residencia-dia .lc-servicios__next:focus-visible,
.lc-landing--residencia-dia .lc-residencias__prev:focus-visible,
.lc-landing--residencia-dia .lc-residencias__next:focus-visible {
  border-radius: 50%;
  background-color: var(--lc-menta);
}

.lc-landing--residencia-dia .lc-header__toggle:focus-visible {
  border-radius: 4px;
}

/* ---- Botón de envío del formulario (<input type="submit"> de CF7) ----
   Solo estilos: el markup del formulario vive en la BD. La flecha va como
   background-image dentro de un círculo blanco, igual que .lc-btn. */
.lc-landing--residencia-dia .lc-contacto__form .wpcf7-form input.wpcf7-submit[type="submit"] {
  width: auto;
  min-height: 48px;
  padding: 0 clamp(24px, 1.8vw, 34px) 0 clamp(58px, 3.8vw, 68px);
  border: none;
  border-radius: 999px;
  background-color: var(--lc-verde-oscuro);
  /* Capa 1: flecha sobre el círculo; capa 2: círculo (solo se mueve la flecha) */
  background-image: var(--cd-submit-flecha), var(--cd-submit-circulo);
  background-repeat: no-repeat, no-repeat;
  background-position: 4px center, 4px center;
  background-size: 40px 40px, 40px 40px;
  color: var(--lc-blanco);
  font-family: inherit;
  font-size: clamp(16px, 1vw, 19px);
  font-weight: 500;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color 0.3s var(--cd-ease), background-position 0.3s var(--cd-ease), opacity 0.3s var(--cd-ease);
}

.lc-landing--residencia-dia .lc-contacto__form .wpcf7-form input.wpcf7-submit[type="submit"]:focus-visible {
  outline: 3px solid var(--lc-verde-oscuro);
  outline-offset: 3px;
}

/* Deshabilitado (CF7 lo desactiva hasta aceptar los términos) */
.lc-landing--residencia-dia .lc-contacto__form .wpcf7-form input.wpcf7-submit[type="submit"]:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
}

/* Enviando: CF7 agrega .submitting al <form> */
.lc-landing--residencia-dia .lc-contacto__form .wpcf7-form.submitting input.wpcf7-submit[type="submit"] {
  opacity: 0.7;
  cursor: progress;
}

/* ---- Hovers solo con mouse: en touch no quedan "pegados" ---- */
@media (hover: hover) and (pointer: fine) {
  .lc-landing--residencia-dia .lc-btn--solid:hover {
    background-color: var(--cd-verde-hover);
  }

  .lc-landing--residencia-dia .lc-btn--solid:hover .lc-btn__circle {
    background-color: var(--lc-menta);
  }

  .lc-landing--residencia-dia .lc-btn--light:hover {
    background-color: var(--cd-menta-hover);
  }

  .lc-landing--residencia-dia .lc-btn:hover .lc-flecha,
  .lc-landing--residencia-dia .lc-header__cta:hover .lc-flecha {
    animation: cd-flecha-vaiven 0.5s var(--cd-ease) forwards;
  }

  .lc-landing--residencia-dia .lc-header__cta:hover {
    background-color: var(--cd-menta-hover);
  }

  .lc-landing--residencia-dia .lc-header__cta:hover .lc-header__cta-icon {
    background-color: var(--lc-verde-oscuro);
    color: var(--lc-menta);
  }

  .lc-landing--residencia-dia .lc-header__menu li a:hover,
  .lc-landing--residencia-dia .lc-header__mobile ul a:hover,
  .lc-landing--residencia-dia .lc-residencias__telefono a:hover {
    background-size: 100% 1px;
  }

  /* Flechas: relleno menta con ícono verde oscuro (pisa el hover base) */
  .lc-landing--residencia-dia .lc-espacios__prev:hover,
  .lc-landing--residencia-dia .lc-espacios__next:hover,
  .lc-landing--residencia-dia .lc-servicios__prev:hover,
  .lc-landing--residencia-dia .lc-servicios__next:hover,
  .lc-landing--residencia-dia .lc-residencias__prev:hover,
  .lc-landing--residencia-dia .lc-residencias__next:hover {
    background-color: var(--lc-menta);
  }

  .lc-landing--residencia-dia .lc-espacios__prev:hover,
  .lc-landing--residencia-dia .lc-servicios__prev:hover,
  .lc-landing--residencia-dia .lc-residencias__prev:hover {
    background-image: var(--cd-flecha-prev);
  }

  .lc-landing--residencia-dia .lc-espacios__next:hover,
  .lc-landing--residencia-dia .lc-servicios__next:hover,
  .lc-landing--residencia-dia .lc-residencias__next:hover {
    background-image: var(--cd-flecha-next);
  }

  .lc-landing--residencia-dia .lc-residencias__prev:hover,
  .lc-landing--residencia-dia .lc-residencias__next:hover {
    border-color: var(--lc-verde-oscuro);
  }

  .lc-landing--residencia-dia .lc-contacto__form .wpcf7-form input.wpcf7-submit[type="submit"]:hover:not(:disabled) {
    background-color: var(--cd-verde-hover);
    background-image: var(--cd-submit-flecha), var(--cd-submit-circulo-hover);
    animation: cd-submit-vaiven 0.5s var(--cd-ease) forwards;
  }
}

/* Movimiento reducido: sin desplazamientos ni transiciones de tamaño */
@media (prefers-reduced-motion: reduce) {
  .lc-landing--residencia-dia .lc-btn__circle,
  .lc-landing--residencia-dia .lc-header__cta-icon,
  .lc-landing--residencia-dia .lc-flecha,
  .lc-landing--residencia-dia .lc-contacto__form .wpcf7-form input.wpcf7-submit[type="submit"] {
    transition: none;
    animation: none !important;
    transform: none !important;
  }

  .lc-landing--residencia-dia .lc-header,
  .lc-landing--residencia-dia .lc-header__logo img {
    transition: none;
  }
}

/* Centro de Día: estado inicial del hero mientras carga GSAP (ver template-landing-campana.php). */
html.cd-motion-pending .lc-hero__text > .lc-hero__eyebrow,
html.cd-motion-pending .lc-hero__text > h1,
html.cd-motion-pending .lc-hero__text > .lc-hero__info,
html.cd-motion-pending .lc-hero__text > .lc-btn {
  opacity: 0;
}

/* La foto y los arcos del hero también esperan a que el JS fije su estado inicial. */
html.cd-motion-pending .lc-hero__imagen {
  clip-path: inset(0% 100% 0% 0%);
}

html.cd-motion-pending .lc-hero__text {
  --cd-hero-arco: 0;
}

@media (max-width: 900px) {
  html.cd-motion-pending .lc-hero__imagen {
    clip-path: inset(0% 0% 100% 0%);
  }
}

/* Arcos del hero: GSAP anima --cd-hero-arco (0 a 1) al entrar; sin JS valen 1. */
.lc-landing--residencia-dia .lc-hero__text::before,
.lc-landing--residencia-dia .lc-hero__text::after {
  opacity: calc(0.42 * var(--cd-hero-arco, 1));
  transform: scale(calc(0.8 + 0.2 * var(--cd-hero-arco, 1)));
}

/* Centro de Día: header compacto al hacer scroll. centro-dia-motion.js agrega
   .is-compacto cuando la página baja de 80px. */
.lc-landing--residencia-dia .lc-header {
  transition: padding 0.35s var(--cd-ease);
}

.lc-landing--residencia-dia .lc-header__logo img {
  transition: height 0.35s var(--cd-ease);
}

.lc-landing--residencia-dia .lc-header.is-compacto {
  padding-top: clamp(6px, 0.5vw, 10px);
  padding-bottom: clamp(6px, 0.5vw, 10px);
}

.lc-landing--residencia-dia .lc-header.is-compacto .lc-header__logo img {
  height: clamp(32px, 2.2vw, 42px);
}

.lc-landing--residencia-dia .lc-header.is-compacto .lc-header__logo .lc-header__tagline {
  height: 13px;
}

/* Centro de Día: las máscaras de SplitText (centro-dia-motion.js) recortan los
   descendentes de la tipografía cursiva; se amplía la máscara sin cambiar el
   alto de la línea. */
.lc-landing--residencia-dia .cd-linea-mask {
  padding-block: 0.1em;
  margin-block: -0.1em;
}

/* Centro de Día: arcos decorativos en Servicios, como los del hero. Se
   desplazan apenas con el scroll (centro-dia-motion.js anima --cd-arco). */
/* El espacio bajo la galería pasa a Servicios para que el arco nazca en el
   borde de las fotos (el layout no cambia: mismo total de separación). */
.lc-landing--residencia-dia .lc-espacios {
  padding-bottom: 0;
}

.lc-landing--residencia-dia .lc-servicios {
  --cd-arco: 0px;
  position: relative;
  overflow: hidden;
  padding-top: calc(var(--lc-gap-sec) * 2);
}

.lc-landing--residencia-dia .lc-servicios > * {
  position: relative;
  z-index: 1;
}

.lc-landing--residencia-dia .lc-servicios::before,
.lc-landing--residencia-dia .lc-servicios::after {
  content: "";
  position: absolute;
  width: 960px;
  height: 960px;
  border-radius: 50%;
  border: 1px solid var(--lc-verde-oscuro);
  opacity: 0.32;
  pointer-events: none;
  z-index: 0;
}

.lc-landing--residencia-dia .lc-servicios::before {
  top: -700px;
  left: -430px; /* cruza el borde superior bajo el extremo de la primera foto */
  transform: translateY(var(--cd-arco));
}

.lc-landing--residencia-dia .lc-servicios::after {
  bottom: -690px;
  right: -480px;
  transform: translateY(calc(var(--cd-arco) * -1));
}

/* Centro de Día: tarjeta de residencia con radio, sombra tenue y zoom de la
   foto recortado por su marco (.lc-residencias__media), sin mover la tarjeta. */
.lc-landing--residencia-dia .lc-residencias__card {
  box-shadow: 0 4px 14px rgba(4, 69, 57, 0.12);
}

.lc-landing--residencia-dia .lc-residencias__media {
  overflow: hidden;
  border-radius: 2px;
}

.lc-landing--residencia-dia .lc-residencias__media img {
  display: block;
  transform-origin: 50% 50%;
  transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

@media (hover: hover) and (pointer: fine) {
  .lc-landing--residencia-dia .lc-residencias__card:hover .lc-residencias__media img {
    transform: scale(1.06);
  }
}

@media (prefers-reduced-motion: reduce) {
  .lc-landing--residencia-dia .lc-residencias__media img {
    transition: none;
    transform: none !important;
  }
}

/* Centro de Día: botón "volver arriba" (aparece al pasar el hero). */
.lc-landing--residencia-dia .cd-arriba {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 90;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--lc-verde-oscuro);
  color: var(--lc-blanco);
  font-family: inherit;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s var(--cd-ease), visibility 0s linear 0.35s, background-color 0.3s var(--cd-ease), color 0.3s var(--cd-ease);
}

.lc-landing--residencia-dia .cd-arriba.is-visible {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.35s var(--cd-ease), visibility 0s, background-color 0.3s var(--cd-ease), color 0.3s var(--cd-ease);
}

.lc-landing--residencia-dia .cd-arriba:focus-visible {
  outline: 3px solid var(--lc-menta);
  outline-offset: 3px;
}

@keyframes cd-flecha-vaiven-arriba {
  0% { transform: translateY(0); }
  40% { transform: translateY(3px); }
  100% { transform: translateY(-2px); }
}

@media (hover: hover) and (pointer: fine) {
  .lc-landing--residencia-dia .cd-arriba:hover {
    background: var(--lc-menta);
    color: var(--lc-verde-oscuro);
  }

  .lc-landing--residencia-dia .cd-arriba:hover .lc-flecha {
    animation: cd-flecha-vaiven-arriba 0.5s var(--cd-ease) forwards;
  }
}

@media (max-width: 600px) {
  .lc-landing--residencia-dia .cd-arriba {
    right: 16px;
    bottom: 16px;
    width: 44px;
    height: 44px;
  }
}

/* Centro de Día, carruseles en móvil (galería, servicios y residencias):
   a sangre, tarjeta alineada a la izquierda con la siguiente asomando, y las
   flechas debajo del carrusel, a la derecha de los puntos (no roban ancho). */
@media (max-width: 700px) {
  .lc-landing--residencia-dia .lc-espacios__carousel,
  .lc-landing--residencia-dia .lc-servicios__carousel,
  .lc-landing--residencia-dia .lc-residencias__carousel {
    position: relative;
    padding: 0 0 52px;
    margin-left: -24px;
    margin-right: -24px;
  }

  .lc-landing--residencia-dia .lc-espacios__pagination,
  .lc-landing--residencia-dia .lc-servicios__pagination,
  .lc-landing--residencia-dia .lc-residencias__pagination {
    position: absolute;
    left: 24px;
    right: 120px;
    bottom: 0;
    width: auto;
    height: 36px;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
  }

  .lc-landing--residencia-dia .lc-espacios__prev,
  .lc-landing--residencia-dia .lc-espacios__next,
  .lc-landing--residencia-dia .lc-servicios__prev,
  .lc-landing--residencia-dia .lc-servicios__next,
  .lc-landing--residencia-dia .lc-residencias__prev,
  .lc-landing--residencia-dia .lc-residencias__next {
    position: absolute;
    top: auto;
    bottom: 0;
    left: auto;
    width: 36px;
    height: 36px;
    margin: 0;
    transform: none;
    background-size: 18px 18px;
  }

  .lc-landing--residencia-dia .lc-espacios__prev,
  .lc-landing--residencia-dia .lc-servicios__prev,
  .lc-landing--residencia-dia .lc-residencias__prev {
    right: 68px;
  }

  .lc-landing--residencia-dia .lc-espacios__next,
  .lc-landing--residencia-dia .lc-servicios__next,
  .lc-landing--residencia-dia .lc-residencias__next {
    right: 24px;
  }

  .lc-landing--residencia-dia .lc-espacios__foto {
    border-radius: 3px;
    overflow: hidden;
  }

  .lc-landing--residencia-dia .lc-espacios__etiqueta {
    top: 10px;
    left: 10px;
    padding: 5px 10px;
    font-size: 11px;
  }
}

/* Centro de Día: menú móvil con más aire (filas altas con separador, texto
   más grande, CTA a todo el ancho) y entrada suave del panel. */
@keyframes cd-menu-entra {
  from { clip-path: inset(0 0 100% 0); }
  to { clip-path: inset(0 0 0 0); }
}

@media (max-width: 960px) {
  /* Aire entre el slogan del logo y la línea del panel */
  .lc-landing--residencia-dia .lc-header__logo {
    padding-bottom: 12px;
  }

  .lc-landing--residencia-dia .lc-header__mobile {
    padding: 20px 24px 36px;
  }

  .lc-landing--residencia-dia .lc-header__mobile:not([hidden]) {
    animation: cd-menu-entra 0.4s var(--cd-ease);
  }

  .lc-landing--residencia-dia .lc-header__mobile ul {
    gap: 0;
    margin: 0 0 34px;
  }

  .lc-landing--residencia-dia .lc-header__mobile li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  }

  .lc-landing--residencia-dia .lc-header__mobile li a {
    display: block;
    padding: 21px 0;
    font-size: 21px;
    line-height: 1.25;
  }

  .lc-landing--residencia-dia .lc-header__mobile .lc-header__cta--mobile {
    display: inline-flex;
    width: 100%;
    justify-content: center;
    gap: 12px;
    padding: 12px 20px 12px 10px;
    font-size: 19px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lc-landing--residencia-dia .lc-header__mobile:not([hidden]) {
    animation: none;
  }
}
