/* Hero de la landing. Estilos aislados de las páginas interiores. */
@font-face {
  font-family: 'Gotham Landing';
  src: url('../../fonts/Gotham-Bold.otf') format('opentype');
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
@font-face {
  font-family: 'Gotham Landing';
  src: url('../../fonts/Gotham-Light-Regular.otf') format('opentype');
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}
#hero.landing-hero {
  height: auto;
  min-height: max(720px, 100svh);
  padding: 150px 0 80px;
  background: linear-gradient(rgba(0,0,0,.28), rgba(0,0,0,.28)), url('../img/hero-familias.webp') center center / cover no-repeat;
  font-family: 'Gotham Landing', sans-serif;
}
#hero .hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 48px;
  align-items: start;
  text-align: left;
}
#hero .hero-copy { padding-top: 0; }
#hero #hero-title {
  font-family: 'Gotham Landing', sans-serif;
  font-weight: 700;
  font-size: clamp(40px, 4.55vw, 68px);
  line-height: 1.2;
  letter-spacing: 0;
  color: #fff;
  margin: 0 0 6px;
}
#hero .hero-subtitle {
  font-family: 'Gotham Landing', sans-serif;
  font-weight: 700;
  font-size: clamp(26px, 2.6vw, 38px);
  line-height: 1.2;
  margin: 0 0 22px;
  color: #fff;
}
#hero .hero-cta {
  display: inline-block;
  padding: 12px 20px;
  border-radius: 999px;
  background: #4777a5;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  transition: background .2s;
}
#hero .hero-cta:hover { background: #365d84; }
#hero .hero-cta:focus-visible, #hero .hero-contact:focus-visible { outline: 3px solid white; outline-offset: 5px; }
#hero .hero-contact { display: none; }
#hero .div_form_superior {
  display: block;
  position: relative;
  width: 100%;
  margin-top: 40px;
  isolation: isolate;
}
#hero .div_form_superior::before {
  content: '';
  position: absolute;
  inset: -12px;
  z-index: -1;
  border-radius: 20px;
  background: rgb(48 32 25 / 92%);
  filter: blur(50px);
  pointer-events: none;
}
#hero .form {
  padding: 20px;
  border-radius: 10px;
  background: #eee;
  box-shadow: 0 6px 16px rgb(0 0 0 / 18%);
  backdrop-filter: none;
}
#hero .form label { font-family: 'Gotham Landing', sans-serif; font-weight: 700; font-size: 10px; }
#hero .form #solo-familias { margin: 0 0 12px; padding: 6px 10px; font-size: 11px; }
#hero .form .input-form {
  font-family: 'Gotham Landing', sans-serif;
  font-weight: 300;
  font-size: 12px;
  border-radius: 5px;
  padding: 6px 8px;
  margin-bottom: 8px;
  min-height: 32px;
}
#hero .form .tiene { align-items: center; gap: 8px; margin: 4px 0; }
#hero .form .tiene label { margin: 0; }
#hero .form input[type=checkbox] { width: 14px; height: 14px; margin: 0; }
#hero .form textarea { resize: vertical; height: 55px; }
#hero .form #comentarios-form-ini { margin-top: 12px; }
#hero .form button[type=submit] { padding: 9px 16px; font-family: 'Gotham Landing', sans-serif; font-size: 11px; }
#hero .g-recaptcha { transform: scale(.90); transform-origin: left top; width: 304px; height: 70px; margin-bottom: 6px; }
@media (min-width: 1400px) {
  #hero .hero-layout { grid-template-columns: minmax(0, 1fr) 340px; }
  #hero .g-recaptcha { transform: scale(.97); height: 76px; }
}
@media (max-width: 1199px) and (min-width: 992px) {
  #header .navbar > ul > li { padding-left: 12px; }
    #hero .hero-layout { gap: 28px; }
}
@media (max-width: 991px) {
  #hero.landing-hero { min-height: 720px; min-height: 100svh; padding: 150px 0 90px; background-position: 46% center; }
  #hero .hero-layout { display: block; }
  #hero .div_form_superior { display: none; }
  #hero #hero-title { font-size: clamp(34px, 6.5vw, 58px); }
  #hero .hero-subtitle { font-size: clamp(24px, 4vw, 32px); margin-top: 12px; }
  #hero .hero-contact { display: block; width: fit-content; margin-top: 16px; padding: 12px 20px; border-radius: 999px; background: #7b5aa2; color: #fff; font-size: 20px; font-weight: 700; line-height: 1.2; text-decoration: none; transition: background .2s; }
  #hero .hero-contact:hover { background: #624483; }
}
@media (max-width: 575px) {
  #hero .hero-layout { padding-left: 24px; padding-right: 24px; }
  #hero #hero-title { font-size: clamp(28px, 7.5vw, 42px); }
  #hero .hero-cta, #hero .hero-contact { font-size: 17px; }
}

/* Presentación debajo del hero: medidas fluidas según la referencia. */
.family-intro {
  position: relative;
  overflow: hidden;
  padding: clamp(64px, 6vw, 112px) 0 40px;
  background: transparent;
  color: #fff;
  font-family: 'Gotham Landing', sans-serif;
}
.family-intro__content {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: .40fr .60fr;
  align-items: center;
  gap: 20px;
}
.family-intro__content::before {
  content: '';
  position: absolute;
  inset: 0 20px;
  background: rgb(195 110 148 / 45%);
  filter: blur(66px);
  z-index: -1;
  pointer-events: none;
}
.family-intro #family-title {
  margin: 0;
  color: #fff;
  font-family: 'Gotham Landing', sans-serif;
  font-weight: 700;
  font-size: clamp(40px, 5.1vw, 69pt);
  line-height: 1.18;
  letter-spacing: 0;
  text-align: right;
}
.family-intro__text {
  font-size: clamp(18px, 1.85vw, 23pt);
  line-height: clamp(24px, 2.27vw, 30pt);
  font-weight: 300;
}
.family-intro__text p { margin: 0; }
.family-intro__text strong {
  font-size: clamp(28px, 2.96vw, 30pt);
  line-height: 0;
  font-weight: 700;
}
.family-intro__star {
  display: block;
  width: clamp(86px, 8vw, 128px);
  height: auto;
  margin: clamp(60px, 6vw, 100px) auto 0;
  filter: blur(2px);
}
@media (max-width: 991px) {
  .family-intro__content { grid-template-columns: 1fr; gap: 28px; }
  .family-intro #family-title { text-align: left; font-size: clamp(36px, 6vw, 58px); }
  .family-intro__text { font-size: 20px; line-height: 30px; }
  .family-intro__text strong { font-size: 25px; }
  .family-intro__text p + p { margin-top: 10px; }
}
@media (max-width: 575px) {
  .family-intro > .container { padding-inline: 24px; }
  .family-intro #family-title { font-size: clamp(32px, 8vw, 42px); }
  .family-intro__text { font-size: 18px; line-height: 28px; }
  .family-intro__text strong { font-size: 23px; }
}

/* Usar los contornos originales de Gotham sin negrita sintetizada. */
#hero, .family-intro { font-synthesis: none; }
.family-intro__text { letter-spacing: -.025em; }
.family-intro__text strong { letter-spacing: -.02em; }
@media (min-width: 992px) {
  .family-intro > .container { width: 94%; max-width: 1700px; padding-inline: 0; }
  .family-intro__content { grid-template-columns: minmax(0, 40fr) minmax(0, 60fr); align-items: start; }
  .family-intro__text { padding-top: .4em; }
}
@media (max-width: 991px) {
  .family-intro__text strong { line-height: 1; }
}

@font-face {
  font-family: 'Gotham Light';
  src: url('../../fonts/Gotham Light.otf') format('opentype');
  font-weight: 300 600;
  font-style: normal;
  font-display: swap;
}
#exp.landing-experiences { padding: 0 0 64px; background: transparent; }
#exp .experiences-heading {
  position: relative;
  isolation: isolate;
  padding: 12px 24px 88px;
  background: transparent;
}
#exp .experiences-heading::before {
  content: '';
  position: absolute;
  inset: 5% 12% 25%;
  background: rgb(255 239 125 / 61%);
  filter: blur(72px);
  z-index: -1;
  pointer-events: none;
}
#exp #experiences-title {
  margin: 0;
  color: white;
  text-align: center;
  font-family: 'Gotham Landing', sans-serif;
  font-weight: 700;
  font-size: 55pt;
  line-height: 1.25;
  -webkit-text-stroke: 2pt currentColor;
  paint-order: stroke fill;
}
#exp #experiencia {
  width: 98%;
  max-width: 1760px;
  padding: 170px 10% 160px;
  background: url('../img/colores-fondo.webp') center / contain no-repeat;
}
#exp .row-exp { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
#exp .row-exp .div_img { margin: 0; padding: 0; width: 100%; }
#exp .row-exp a { display: block; width: 100%; border-radius: 10px; }
#exp .row-exp img { display: block; width: 100%; height: auto; aspect-ratio: 1.45; object-fit: cover; }
#exp .row-exp a:focus-visible { outline: 3px solid white; outline-offset: 4px; }
@media (max-width: 991px) {
  #exp .experiences-heading { padding-bottom: 48px; }
  #exp #experiencia { width: 100%; padding: 85px 7% 85px; }
  #exp .row-exp { gap: 14px; }
}
@media (max-width: 575px) {
  #exp #experiences-title { font-size: 30px; }
  #exp .row-exp { grid-template-columns: 1fr; gap: 16px; }
  #exp.landing-experiences { padding-bottom: 40px; }
}

/* Un solo fondo continuo para la presentación y toda la galería. */
.family-experiences {
  background: #f0a35f url('../img/fondo-familia.webp') center / 100% 100% no-repeat;
}

/* Foto del complejo con llamada a los departamentos. */
.summer-banner {
  position: relative;
  padding: 0;
  isolation: isolate;
  background: #c4d8ef;
}
.summer-banner__image { display: block; width: 100%; height: auto; }
.summer-banner__copy {
  position: absolute;
  top: 7%;
  right: 4%;
  left: 4%;
  text-align: right;
  color: #7b5aa2;
  font-family: 'Gotham Landing', sans-serif;
  font-synthesis: none;
}
#summer-title {
  margin: 0 0 20px;
  font-family: inherit;
  font-weight: 700;
  font-size: clamp(30px, 5.3vw, 86px);
  line-height: 1.2;
  color: inherit;
}
.summer-banner__cta {
  display: inline-block;
  border-radius: 999px;
  padding: 13px 26px;
  background: #7b5aa2;
  color: #fff;
  font-size: clamp(18px, 2vw, 28px);
  font-weight: 700;
  line-height: 1.2;
  box-shadow: 0 5px 10px rgb(48 32 65 / 15%);
  transition: background .2s;
}
.summer-banner__cta:hover { background: #624483; color: #fff; }
.summer-banner__cta:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
@media (max-width: 575px) {
  .summer-banner__image { min-height: 480px; object-fit: cover; object-position: center; }
  .summer-banner__copy { top: 24px; right: 20px; left: 20px; }
  #summer-title { font-size: clamp(25px, 6.4vw, 36px); margin-bottom: 16px; }
  .summer-banner__cta { padding: 11px 20px; font-size: 16px; }
}

/* Encabezado informativo, visualmente distinto del botón Enviar. */
#hero .form #solo-familias,
#contacto .form #solo-familias {
  background: none;
  box-shadow: none;
  border: 0;
  border-radius: 0;
  padding: 0 0 10px;
  margin: 0 0 12px;
  color: #625044;
  font-family: 'Gotham Landing', sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .025em;
  text-align: center;
}

@media (max-width: 1199px) {
  #exp #experiences-title { font-size: clamp(30px, 4.5vw, 55pt); }
}

/* Propuesta adicional; no reemplaza la sección original #deptos. */
.apartment-options {
  padding: 64px 0 120px;
  background: #f0a35f url('../img/fondo-familia.webp') center / 100% 100% no-repeat;
  font-family: 'Gotham Landing', sans-serif;
}
.apartment-options__inner { width: 84%; max-width: 1400px; margin: auto; }
#apartment-options-title {
  color: #9170ae;
  font-family: inherit;
  font-weight: 300;
  font-size: clamp(28px, 4vw, 60px);
  text-align: center;
  line-height: 1.25;
  margin: 0 0 100px;
}
.apartment-options__choices { position: relative; isolation: isolate; }
.apartment-options__choices::before,
.apartment-options__family::before {
  content: ''; position: absolute; inset: 0 -20px;
  background: rgb(195 110 148 / 45%);
  filter: blur(66px); z-index: -1; pointer-events: none;
}
.apartment-options__row { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 30px; }
.apartment-choice { position: relative; display: flex; align-items: center; justify-content: center; width: 14%; height: clamp(80px, 10vw, 145px); color: #fff; }
.apartment-choice svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.apartment-choice path { fill: transparent; stroke: #ad70b5; stroke-width: 4px; vector-effect: non-scaling-stroke; transition: fill .2s; }
.apartment-choice span { position: relative; font-size: clamp(46px, 8vw, 118px); line-height: 1; font-weight: 700; letter-spacing: -.04em; }
.apartment-choice--1 svg { transform: scaleX(-1); }
.apartment-choice--2 svg { transform: scaleY(-1); }
.apartment-options__row--1 .apartment-choice:nth-child(4) { width: 24%; }
.apartment-options__row--3 { justify-content: space-around; margin-bottom: 0; }
.apartment-options__row--3 .apartment-choice { width: 40%; }
.apartment-choice:hover { color: #fff; }
.apartment-choice:hover path { fill: rgb(173 112 181 / 22%); }
.apartment-choice:focus-visible { outline: 3px solid #795698; outline-offset: 8px; border-radius: 16px; }
.apartment-options__family { position: relative; isolation: isolate; margin-top: 180px; padding: 15px 0; }
.apartment-options__family h3 { width: 54%; margin: 0; color: white; text-align: right; font-family: inherit; font-weight: 700; font-size: clamp(36px, 5.4vw, 82px); line-height: 1.2; }
@media (max-width: 767px) {
  .apartment-options { padding: 48px 0 72px; }
  .apartment-options__inner { width: 88%; }
  #apartment-options-title { margin-bottom: 48px; }
  .apartment-options__row { flex-wrap: wrap; justify-content: center; gap: 18px; margin-bottom: 18px; }
  .apartment-options__row .apartment-choice { width: 27%; height: 85px; }
  .apartment-options__row--1 .apartment-choice:nth-child(4) { width: 39%; }
  .apartment-choice span { font-size: 52px; }
  .apartment-options__row--3 .apartment-choice { width: 46%; }
  .apartment-options__row--3 .apartment-choice span { font-size: clamp(32px, 7vw, 52px); }
  .apartment-options__family { margin-top: 80px; }
  .apartment-options__family h3 { width: 100%; text-align: center; font-size: clamp(32px, 7vw, 48px); }
}

/* Curva y anotación sobre la foto, conservando el texto y botón existentes. */
.summer-banner__wave {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: clamp(38px, 6vw, 100px);
  fill: #f0a35f;
  pointer-events: none;
}
.summer-banner__sea-note {
  position: absolute;
  top: 5%;
  left: 5%;
  color: #fff;
  text-align: center;
  font-family: 'Bradley Hand', 'Segoe Print', 'Comic Sans MS', cursive;
  font-style: italic;
  font-size: clamp(23px, 2.5vw, 40px);
  line-height: 1.05;
  transform: rotate(-10deg);
  text-shadow: 0 1px 5px rgb(0 0 0 / 25%);
  pointer-events: none;
}
.summer-banner__sea-note svg { display: block; width: 65px; height: 90px; margin: 4px auto 0; }
.summer-banner__sea-note path { stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 575px) {
  .summer-banner__sea-note { top: 190px; left: auto; right: 20px; font-size: 23px; }
  .summer-banner__sea-note svg { width: 45px; height: 65px; }
}

.cta-arrow { display: inline-block; margin-left: .45em; font-family: Arial, sans-serif; font-weight: 400; }


/* Segunda variante de departamentos para comparar con los números. */
.apartment-cards { position: relative; isolation: isolate; margin-top: 90px; padding: 28px 0; }
.apartment-cards::before { content: ''; position: absolute; inset: 0 -24px; z-index: -1; background: rgb(195 110 148 / 30%); filter: blur(55px); pointer-events: none; }
.apartment-cards__row { display: grid; gap: 18px; margin-bottom: 18px; }
.apartment-cards__row--1 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.apartment-cards__row--2 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.apartment-cards__row--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 0; }
.apartment-card { position: relative; overflow: hidden; display: block; height: clamp(200px, 20vw, 290px); border-radius: 22px; color: #fff; isolation: isolate; }
.apartment-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s; }
.apartment-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 35%, rgb(28 18 19 / 78%) 100%); pointer-events: none; }
.apartment-card__caption { position: absolute; bottom: 16px; left: 14px; right: 10px; z-index: 1; font-family: 'Gotham Landing', sans-serif; }
.apartment-card__caption strong { display: block; color: #fff; font-size: clamp(34px, 3.4vw, 52px); font-weight: 700; line-height: 1.05; margin-bottom: 6px; }
.apartment-card__caption > span { display: block; font-size: clamp(11px, 1.05vw, 16px); font-weight: 300; color: #fff; }
.apartment-card__caption > span > span { margin-left: 6px; }
.apartment-cards__row--3 .apartment-card { height: clamp(180px, 17vw, 250px); }
.apartment-card:hover img { transform: scale(1.04); }
.apartment-card:focus-visible { outline: 3px solid #795698; outline-offset: 5px; }
@media (max-width: 991px) {
  .apartment-cards__row--1, .apartment-cards__row--2 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .apartment-card__caption > span { font-size: 12px; }
}
@media (max-width: 575px) {
  .apartment-cards { margin-top: 56px; }
  .apartment-cards__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
  .apartment-cards__row--3 { grid-template-columns: 1fr; }
  .apartment-card { height: 210px; border-radius: 18px; }
  .apartment-card__caption { left: 10px; right: 8px; }
  .apartment-card__caption > span { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) { .apartment-card img { transition: none; } }

/* Anotación centrada sobre el techo de la foto. */
#casita-verano .summer-banner__sea-note { top: 16%; left: 24%; right: auto; }
@media (max-width: 575px) {
  #casita-verano .summer-banner__sea-note { top: 33%; left: 12%; right: auto; }
}
/* Servicios sobre la fotografía, con la misma curva de cierre. */
#services {
  position: relative;
  background: linear-gradient(rgb(0 0 0 / 25%), rgb(0 0 0 / 35%)), url('../img/fondo-home.webp') center / cover no-repeat;
  padding-bottom: 100px;
}
#services .services__grid { padding-bottom: 40px; }
#services .container > div > img { max-width: 100%; height: auto; }
#services .services-wave { fill: #f0a35f; }

/* Preguntas frecuentes: desplegables nativos, accesibles sin JavaScript. */
.landing-faq { padding: 80px 24px; background: #f0a35f url('../img/fondo-familia.webp') center / 100% 100% no-repeat; font-family: 'Gotham Landing', sans-serif; }
.landing-faq__inner { max-width: 1060px; margin: auto; }
#faq-title { font-family: inherit; font-size: clamp(30px, 4vw, 52px); font-weight: 700; color: #795698; text-align: center; margin: 0 0 44px; line-height: 1.2; }
.landing-faq__list { display: grid; gap: 12px; }
.landing-faq__item { background: rgb(255 255 255 / 88%); border: 1px solid rgb(123 90 162 / 18%); border-radius: 16px; color: #443647; }
.landing-faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 26px; cursor: pointer; list-style: none; font-weight: 700; font-size: 17px; line-height: 1.45; color: #70508e; }
.landing-faq__item summary::-webkit-details-marker { display: none; }
.landing-faq__item summary:focus-visible { outline: 3px solid #795698; outline-offset: 3px; border-radius: 16px; }
.landing-faq__toggle { position: relative; flex: 0 0 20px; height: 20px; }
.landing-faq__toggle::before, .landing-faq__toggle::after { content: ''; position: absolute; top: 9px; left: 2px; width: 16px; height: 2px; background: currentColor; }
.landing-faq__toggle::after { transform: rotate(90deg); }
.landing-faq__item[open] .landing-faq__toggle::after { display: none; }
.landing-faq__answer { padding: 0 26px 24px; font-size: 16px; font-weight: 300; line-height: 1.75; }
.landing-faq__answer p { margin: 0; }
.landing-faq__answer p + p { margin-top: 12px; }
.landing-faq__contact { display: table; margin: 32px auto 0; background: #7b5aa2; color: white; border-radius: 999px; padding: 14px 24px; font-weight: 700; text-align: center; }
.landing-faq__contact:hover { background: #624483; color: white; }
.landing-faq__contact:focus-visible { outline: 3px solid #624483; outline-offset: 4px; }
@media (max-width: 575px) {
  .landing-faq { padding: 56px 20px; }
  .landing-faq__item summary { padding: 18px; font-size: 15px; gap: 12px; }
  .landing-faq__answer { padding: 0 18px 20px; font-size: 15px; }
}

/* Ubicación provisoria del logo aniversario. */
.anniversary-logo { padding: 40px 24px; text-align: center; }
.anniversary-logo img { display: block; width: min(100%, 520px); height: auto; margin: auto; }

/* Encabezado de departamentos según la nueva referencia. */
.apartment-options__heading { position: relative; isolation: isolate; display: grid; grid-template-columns: 1.15fr 1fr; gap: 30px; align-items: start; margin-bottom: 90px; }
.apartment-options__heading::before { content: ''; position: absolute; inset: -15px -25px; background: rgb(195 110 148 / 45%); filter: blur(66px); z-index: -1; pointer-events: none; }
.apartment-options__heading #apartment-options-title { color: #fff; font-weight: 700; font-size: clamp(32px, 4.5vw, 68px); line-height: 1.18; text-align: left; margin: 0; }
.apartment-options__description { color: #fff; font-weight: 300; font-size: clamp(18px, 2.1vw, 30px); line-height: 1.2; padding-top: 4px; }
.apartment-options__description p { margin: 0; }
@media (max-width: 767px) {
  .apartment-options__heading { grid-template-columns: 1fr; gap: 22px; margin-bottom: 48px; }
  .apartment-options__heading #apartment-options-title { font-size: clamp(28px, 6.5vw, 42px); }
  .apartment-options__description { font-size: 20px; line-height: 1.4; }
}

/* La canción acompaña la galería de experiencias. */
.complex-song { width: min(88%, 1060px); margin: 40px auto 0; text-align: center; font-family: 'Gotham Landing', sans-serif; }
.complex-song h3 { font-family: inherit; color: #795698; font-weight: 700; font-size: clamp(28px, 3.2vw, 44px); margin-bottom: 12px; }
.complex-song p { color: #573f68; font-size: 18px; font-weight: 300; margin-bottom: 26px; }
.complex-song__player { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 20px; background: #302019; box-shadow: 0 12px 32px rgb(48 32 25 / 20%); }
.complex-song iframe { width: 100%; height: 100%; border: 0; display: block; }
.complex-song > a { display: inline-block; color: #573f68; text-decoration: underline; text-underline-offset: 4px; margin-top: 18px; }
/* Quiénes somos: foto sin recortar a las personas y cierre en curva. */
.about-family { background: #ffbe48; font-family: 'Gotham Landing', sans-serif; }
.about-family__photo { position: relative; }
.about-family__photo > img { display: block; width: 100%; height: auto; }
.about-family__photo .summer-banner__wave { fill: #ffbe48; }
#about-family-title { position: absolute; left: 5%; bottom: 14%; z-index: 1; isolation: isolate; margin: 0; color: #fff; font-family: inherit; font-weight: 700; font-size: clamp(34px, 5.4vw, 78px); line-height: 1.18; text-align: center; }
#about-family-title::before { content: ''; position: absolute; inset: -10px -22px; z-index: -1; border-radius: 20px; background: rgb(48 32 25 / 92%); filter: blur(50px); }
.about-family__copy { padding: 32px 24px 70px; text-align: center; color: #fff; }
.about-family__copy p { max-width: 1160px; margin: auto; font-weight: 700; font-size: clamp(18px, 2vw, 28pt); line-height: 1.46; }
.about-family__copy .family-intro__star { margin-top: 40px; }
@media (max-width: 575px) {
  #about-family-title { font-size: 28px; left: 5%; bottom: 16%; }
  .about-family__copy { padding: 24px 20px 48px; }
  .about-family__copy p { font-size: 17px; }
  .complex-song__player { border-radius: 12px; }
}

/* Servicios alineados: dos filas de seis en escritorio. */
#services .services__grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  align-items: stretch;
  direction: ltr;
  gap: 20px;
}
#services .services__item { height: 100%; min-width: 0; padding: 24px 12px; }
@media (max-width: 991px) {
  #services .services__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
  #services .services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}

/* Historia familiar en párrafos para una lectura cómoda. */
.about-family__story { max-width: 960px; margin: auto; text-align: left; }
.about-family__story p { font-weight: 300; font-size: clamp(18px, 1.65vw, 24px); line-height: 1.65; }
.about-family__story p + p { margin-top: 24px; }

/* Nuestra playa: dos horizontales, cinco verticales y dos horizontales. */
.beach-section { position: relative; padding: 80px 0 100px; background: #f0a35f url('../img/fondo-familia.webp') center / 100% 100% no-repeat; font-family: 'Gotham Landing', sans-serif; }
.beach-section__inner { width: 92%; max-width: 1400px; margin: auto; text-align: center; }
#beach-title { font-family: inherit; font-weight: 700; color: #7b5aa2; font-size: clamp(40px, 6vw, 86px); margin: 0 0 12px; line-height: 1.15; }
.beach-section__subtitle { color: #795698; font-weight: 300; font-size: clamp(18px, 2vw, 28px); margin: 0 0 40px; }
.beach-gallery { position: relative; isolation: isolate; }
.beach-gallery::before { content: ''; position: absolute; inset: 10% -20px; z-index: -1; background: rgb(195 110 148 / 40%); filter: blur(66px); pointer-events: none; }
.beach-gallery__row { display: grid; gap: 16px; margin-bottom: 16px; align-items: start; }
.beach-gallery__row--landscape { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.beach-gallery__row--portrait { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.beach-gallery a { display: block; overflow: hidden; border-radius: 18px; }
.beach-gallery img { display: block; width: 100%; height: auto; }
.beach-gallery a:focus-visible { outline: 3px solid #795698; outline-offset: 4px; }
.beach-section__cta { display: inline-block; margin: 22px auto 0; padding: 15px 30px; border-radius: 999px; background: #7b5aa2; color: #fff; font-size: 20px; font-weight: 700; }
.beach-section__cta:hover { background: #624483; color: white; }
.beach-section__cta:focus-visible { outline: 3px solid #624483; outline-offset: 4px; }
.beach-section .beach-section__star { width: 60px; margin-top: 28px; }
.beach-section > .summer-banner__wave { fill: #ffbe48; }
@media (max-width: 767px) {
  .beach-section { padding-top: 56px; }
  .beach-gallery__row { gap: 12px; margin-bottom: 12px; }
  .beach-gallery__row--portrait { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .beach-gallery a { border-radius: 12px; }
}
@media (max-width: 575px) {
  .beach-gallery__row--landscape { grid-template-columns: 1fr; }
  .beach-gallery__row--portrait { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .beach-section__cta { font-size: 18px; }
}

/* Historia con arcoíris y énfasis según la referencia. */
.about-family__copy { position: relative; isolation: isolate; padding-top: 4px; }
.about-family__rainbow { display: block; width: clamp(180px, 20vw, 270px); height: auto; margin: -12px auto -18px; }
.about-family__story { position: relative; isolation: isolate; max-width: 1240px; text-align: center; }
.about-family__story::before { content: ''; position: absolute; inset: -12px -18px; z-index: -1; background: rgb(195 110 148 / 45%); filter: blur(50px); pointer-events: none; }
.about-family__story p { font-weight: 700; font-size: clamp(17px, 1.75vw, 26px); line-height: 1.6; }
.about-family__story p + p { margin-top: 38px; }
.about-family__highlight { background: #c36e94; padding: .08em .22em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
@media (max-width: 575px) {
  .about-family__story p { font-size: 16px; line-height: 1.6; }
  .about-family__story p + p { margin-top: 26px; }
  .about-family__rainbow { width: 180px; margin-bottom: -8px; }
}

/* En celular, la tira vertical evita una última foto aislada. */
@media (max-width: 767px) {
  .beach-gallery__row--portrait {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    padding: 0 0 12px;
    scrollbar-width: thin;
    scrollbar-color: #7b5aa2 transparent;
  }
  .beach-gallery__row--portrait a { flex: 0 0 62%; scroll-snap-align: start; }
  .beach-gallery__row--portrait:focus-visible { outline: 2px solid #7b5aa2; outline-offset: 4px; }
  .beach-gallery__row--landscape { grid-template-columns: 1fr; }
}

/* Servicios: foto despejada y contenido en un bloque independiente. */
#services { background: #ffa14b; padding-bottom: 0; }
.services-photo { position: relative; }
#services .services-photo { overflow: hidden; }
#services .services-photo > img { display: block; width: 100%; height: auto; margin-top: -22.17448%; }
#services .services-wave { fill: #ffa14b; }
#services .services-layout { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) 280px; column-gap: 42px; align-items: center; padding-top: 64px; padding-bottom: 80px; }
#services .services-layout::before { content: ''; position: absolute; inset: 45px 0; z-index: -1; background: rgb(195 110 148 / 45%); filter: blur(66px); pointer-events: none; }
#services-title { grid-column: 2; grid-row: 1; margin: 0; color: white; font-family: 'Gotham Landing', sans-serif; font-weight: 700; font-size: clamp(38px, 4vw, 60px); line-height: 1.2; text-align: right; }
#services .services__grid { grid-column: 1; grid-row: 1; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding-bottom: 0; overflow: visible; }
#services .services__item { padding: 18px 8px; min-height: 150px; }
#services .services__item h3 { font-family: 'Gotham Landing', sans-serif; font-size: 15px; }
@media (max-width: 991px) {
  #services .services-layout { grid-template-columns: 1fr; gap: 32px; padding-top: 40px; padding-bottom: 56px; }
  #services-title { grid-column: 1; grid-row: 1; text-align: center; }
  #services .services__grid { grid-column: 1; grid-row: 2; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
  #services .services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}

/* Solo el recuadro exterior agrupa el ícono y el título. */
#services .services__icon {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}
#services .services-star { padding: 0 24px 48px; text-align: center; }
#services .services-star img { display: block; width: 80px; height: auto; margin: auto; filter: blur(2px); }

/* Tres filas visibles juntas en pantallas de escritorio. */
@media (min-width: 992px) {
  .apartment-cards { padding-block: 16px; }
  .apartment-cards__row { gap: 14px; margin-bottom: 14px; }
  .apartment-cards__row--3 { margin-bottom: 0; }
  .apartment-card,
  .apartment-cards__row--3 .apartment-card { height: clamp(110px, calc((100svh - 200px) / 3), 190px); border-radius: 18px; }
  .apartment-card__caption { bottom: 12px; }
  .apartment-card__caption strong { font-size: clamp(30px, 3vw, 42px); margin-bottom: 4px; }
}

/* Ubicación seguida por Nuestra playa. */
.location-section { background: #f0a35f; padding-top: 48px; padding-bottom: 24px; font-family: 'Gotham Landing', sans-serif; }
.location-section__photo { position: relative; }
.location-section__photo > img { display: block; width: 100%; max-height: 560px; object-fit: cover; object-position: center; }
#location-title { position: absolute; top: 7%; left: 7%; margin: 0; color: white; font-family: inherit; font-weight: 700; font-size: clamp(34px, 5vw, 72px); line-height: 1.15; text-shadow: 0 2px 12px rgb(48 32 25 / 40%); }
.location-section .summer-banner__wave { fill: #f0a35f; }
.location-section__info { padding: 24px 20px 32px; text-align: center; color: #fff; font-weight: 700; }
.location-section__info p { font-size: clamp(18px, 2.3vw, 35pt); line-height: 1.4; margin: 0; }
.location-section__info p + p { margin-top: 8px; }
.location-section__distance { background: #c36e94; padding: 2px 10px; font-size: 1.12em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
#donde-estamos .div_map { width: 86%; max-width: 1100px; margin: auto; }
#donde-estamos #mapa { display: block; width: 100%; height: clamp(260px, 28vw, 380px); border-radius: 12px; }
#donde-estamos + .beach-section { padding-top: 20px; background: #f0a35f url('../img/fondo-familia.webp') center / 100% 100% no-repeat; }
#donde-estamos + .beach-section #beach-title { color: #fff; }
@media (max-width: 575px) {
  .location-section__photo > img { height: 300px; object-position: 50% 50%; }
  #location-title { font-size: 32px; }
  #donde-estamos .div_map { width: 92%; }
}

/* Cierre en ola hacia las reseñas. */
#quienes-somos { position: relative; padding-bottom: clamp(40px, 6vw, 100px); }
#quienes-somos > .about-family__closing-wave { fill: #f0a35f; }
#quienes-somos + #testimonials { margin-top: 0; }
#departamentos-propuesta { scroll-margin-top: 105px; }

/* Bordes superiores ondulados con el tono de la sección precedente. */
.photo-top-wave { position: absolute; top: -1px; left: 0; width: 100%; height: clamp(28px, 5vw, 76px); z-index: 2; pointer-events: none; }
.services-photo > .photo-top-wave { fill: #f0a35f; }
.location-section__photo > .photo-top-wave { fill: #ffa14b; }
.about-family__photo > .photo-top-wave { fill: #ffbe48; }
#donde-estamos { background: linear-gradient(to bottom, #ffa14b 48px, #f0a35f 48px); }
#location-title { top: max(60px, 12%); }

/* Formulario inferior compacto y centrado en celular. */
@media (max-width: 767px) {
  #contacto .div_contacto > .div_form { display: block; width: min(320px, calc(100% - 48px)); margin: 0 auto 28px; }
  #contacto #form2 { width: 100%; min-width: 0; padding: 20px 16px; border-radius: 14px; box-sizing: border-box; }
  #contacto #form2 .input-form { box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; font-size: 16px; padding: 8px 10px; margin-bottom: 8px; }
  #contacto #form2 textarea { height: 76px; resize: vertical; }
  #contacto #form2 .tiene { align-items: center; gap: 8px; }
  #contacto #form2 .tiene label { margin: 0; }
  #contacto #form2 input[type=checkbox] { width: 18px; height: 18px; margin: 0; flex-shrink: 0; }
  #contacto #recaptcha2 { width: 304px; height: 62px; margin-left: calc((100% - 304px) / 2); transform: scale(.78); transform-origin: center top; margin-bottom: 0; }
  #contacto #form2 button[type=submit] { padding: 11px 18px; }
}

#nuestros-servicios { scroll-margin-top: 90px; }

/* Mayor contraste y una indicación de distancia sin dirección. */
#header #navbar .nav-link { font-weight: 700; color: #fff; -webkit-text-stroke: .35px currentColor; }
#header #navbar .nav-link:hover,
#header #navbar .nav-link.active { color: #fff; }
#header #navbar > ul > li > a::before { background: #fff; }
#donde-estamos + .beach-section #beach-title,
#contacto > .section__title { color: #795698; }
#contacto > .section__title { font-family: 'Gotham Landing', sans-serif; font-weight: 700; }
#exp #experiences-title { position: relative; isolation: isolate; color: #fff; }
#exp #experiences-title::before {
  content: ''; position: absolute; inset: -18px -12px; z-index: -1;
  background: rgb(154 77 119 / 65%); border-radius: 50%; filter: blur(32px); pointer-events: none;
}
#casita-verano .summer-banner__sea-note {
  background: rgb(121 86 152 / 78%); border: 2px solid #fff;
  border-radius: 48% 55% 44% 52% / 51% 43% 57% 46%;
  padding: 18px 25px; width: auto; aspect-ratio: auto;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Bradley Hand', 'Segoe Print', 'Comic Sans MS', cursive; font-style: italic;
  font-size: clamp(23px, 2.5vw, 40px); line-height: 1.05;
  transform: rotate(-8deg); text-shadow: none; box-shadow: 3px 4px 0 rgb(80 57 102 / 20%);
}
.summer-banner__sea-note strong { font-weight: inherit; }
#contacto .div_contacto { display: grid; grid-template-columns: repeat(2, minmax(0, 400px)); gap: 32px; width: calc(100% - 48px); margin: 0 auto 28px; align-items: stretch; }
#contacto .div_contacto > .div_form { display: block; width: 100%; margin: 0; }
#contacto #form2 { width: 100%; margin: 0; box-sizing: border-box; }
#contacto .div-video { position: relative; min-width: 0; overflow: hidden; border-radius: 14px; background: #302019; }
#contacto .video-labe { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: contain; }
.anniversary-logo p { max-width: 620px; margin: 24px auto 0; font-family: 'Gotham Landing', sans-serif; font-size: clamp(16px, 1.6vw, 21px); line-height: 1.6; color: #503966; }
@media (max-width: 767px) {
  #contacto .div_contacto { grid-template-columns: minmax(0, 320px); justify-content: center; gap: 24px; }
  #contacto .div_contacto > .div_form { width: 100%; margin: 0; }
  #contacto .div-video { aspect-ratio: 9 / 16; }
  #casita-verano .summer-banner__sea-note { width: auto; padding: 12px 19px; font-size: 23px; }
}

/* Reseñas con fuente visible y lectura directa en celular. */
.guest-reviews { background: #f0a35f; padding: 64px 0; font-family: 'Gotham Landing', sans-serif; text-align: center; }
#reviews-title { color: #684486; font: 700 clamp(28px, 3.5vw, 48px)/1.2 'Gotham Landing', sans-serif; }
.guest-reviews__intro { color: #503966; margin: 16px auto 28px; }
.review-platforms { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-bottom: 28px; }
.review-platform { display: flex; align-items: center; gap: 14px; padding: 18px 22px; border-radius: 16px; background: #fff8ef; color: #503966; text-align: left; }
.review-platform small { display: block; margin-top: 5px; }
.booking-icon, .google-icon { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex-shrink: 0; border-radius: 8px; font: 700 23px/1 Arial, sans-serif; }
.booking-icon { color: white; background: #003b95; }
.google-icon { color: #4285f4; background: white; }
.guest-reviews__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; text-align: left; }
.guest-review { display: flex; flex-direction: column; padding: 26px; border-radius: 18px; background: #fff8ef; color: #503966; box-shadow: 0 4px 18px rgb(80 57 102 / 7%); }
.review-source { display: flex; align-items: center; gap: 10px; font: 600 14px Arial, sans-serif; }
.guest-review blockquote { font-size: 20px; line-height: 1.5; margin: 24px 0; flex: 1; }
.guest-review__author { font-weight: 700; margin-bottom: 12px; }
.guest-review a { color: #684486; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.guest-reviews__note { font-size: 12px; color: #503966; margin: 22px 0; }
.guest-reviews__cta { display: inline-block; background: #795698; color: white; border-radius: 99px; padding: 14px 24px; font-weight: 700; }
.guest-reviews__cta:hover { background: #60417e; color: white; }
.guest-reviews a:focus-visible { outline: 3px solid #503966; outline-offset: 4px; }
@media (max-width: 767px) {
 .guest-reviews { padding: 44px 12px; }
 .guest-reviews__grid { grid-template-columns: 1fr; gap: 14px; }
 .review-platform { width: 100%; }
 .review-platform > span:last-child { margin-left: auto; }
 .guest-review { padding: 22px; }
}

/* Globitos de conversación y controles cómodos para las reseñas. */
.guest-reviews .testimonials-slider { padding: 12px 8px 8px; }
.guest-reviews .swiper-slide { height: auto; display: flex; padding-bottom: 22px; }
.guest-reviews .guest-review { width: 100%; position: relative; border: 2px solid #9874b3; border-radius: 28px 34px 26px 12px; box-shadow: 5px 6px 0 rgb(121 86 152 / 22%); }
.guest-reviews .guest-review::after { content: ''; position: absolute; left: 30px; bottom: -12px; width: 22px; height: 22px; background: #fff8ef; border-right: 2px solid #9874b3; border-bottom: 2px solid #9874b3; transform: skewY(30deg); border-radius: 0 0 7px 0; }
.guest-reviews .review-platform { border: 2px solid #9874b3; border-radius: 22px 18px 24px 17px; box-shadow: 3px 4px 0 rgb(121 86 152 / 15%); }
.guest-reviews .review-controls { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 16px; }
.guest-reviews .review-controls .swiper-pagination { position: static; width: auto; }
.guest-reviews .swiper-pagination-bullet { background: #795698; width: 10px; height: 10px; }
.review-controls button { width: 44px; height: 44px; border: 2px solid #795698; border-radius: 45% 55% 48% 52%; background: #fff8ef; color: #795698; font-size: 24px; cursor: pointer; }
.review-controls button:hover { background: #795698; color: white; }
.review-controls button:focus-visible { outline: 3px solid #503966; outline-offset: 4px; }

@media (max-width: 767px) {
 .guest-reviews { padding-inline: 0; }
 .guest-reviews .testimonials-slider { padding-inline: 3px; }
 .guest-reviews .guest-review { padding: 14px 10px; border-radius: 20px 24px 20px 10px; }
 .guest-reviews .guest-review blockquote { font-size: 14px; line-height: 1.5; margin: 18px 0; overflow-wrap: anywhere; }
 .guest-reviews .review-source { gap: 5px; font-size: 11px; flex-wrap: wrap; }
 .guest-reviews .review-source .booking-icon,
 .guest-reviews .review-source .google-icon { width: 24px; height: 28px; font-size: 18px; }
 .guest-reviews .guest-review__author { font-size: 12px; overflow-wrap: anywhere; }
 .guest-reviews .guest-review a { font-size: 11px; line-height: 1.5; }
}

/* Destacado igual al texto de distancia en Ubicación. */
#exp #experiences-title::before { content: none; }
#exp #experiences-title > span {
  color: #fff;
  background: #c36e94;
  padding: 2px 10px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* Datos de contacto destacados con los tres colores elegidos. */
#contacto .contacto > a.test {
  display: inline-block;
  padding: 4px 12px;
  max-width: calc(100% - 24px);
  color: #000;
  overflow-wrap: anywhere;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
#contacto .contacto > a[href^="mailto:"] { background: #80c3cc; }
#contacto .contacto > a[href^="tel:"] { background: #b7d292; }
#contacto .contacto > a[href*="instagram.com"] { background: #fae390; }
#contacto .contacto > a.test i { color: #000; }
#contacto .contacto > a.test:hover { color: #000; text-decoration: underline; text-underline-offset: 4px; }
#contacto .contacto > a.test:focus-visible { outline: 2px solid #000; outline-offset: 4px; }

/* Vista aérea completa para mostrar la relación entre el complejo y el mar. */
#services .services-photo > img { margin-top: 0; height: auto; }

/* Departamentos 10, 11 y 12 agrupados. */
@media (min-width: 992px) { .apartment-cards__row--2 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.apartment-card[href="dpto12.html"] .apartment-card__caption strong { font-size: clamp(24px, 2.7vw, 38px); }


/* Una grilla continua evita huecos entre los antiguos grupos de tarjetas. */
@media (max-width: 991px) {
  #departamentos-fotos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  #departamentos-fotos .apartment-cards__row { display: contents; }
  #departamentos-fotos .apartment-card { grid-column: span 2; height: 230px; min-width: 0; }
  #departamentos-fotos .apartment-cards__row:last-child .apartment-card:last-child { grid-column: 2 / span 2; }
}
@media (max-width: 575px) {
  #departamentos-fotos .apartment-card { height: 210px; }
  #departamentos-fotos .apartment-card__caption strong { font-size: clamp(24px, 7vw, 34px); }
  #departamentos-fotos .apartment-card[href="dpto12.html"] .apartment-card__caption strong { font-size: clamp(19px, 5.5vw, 28px); }
}

/* Ajustes exclusivos de celular; escritorio conserva sus estilos. */
@media (max-width: 767px) {
  #exp #experiences-title { font-size: 28px; line-height: 1.4; -webkit-text-stroke: 0; font-weight: 700; }
  .family-intro__text { font-size: 16px; line-height: 1.55; }
  .family-intro__text strong { font-size: 19px; line-height: inherit; }
  #exp .row-exp { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  #exp .row-exp .div_img { min-width: 0; }
  #services .services__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  #services .services__item { min-height: 120px; padding: 12px 5px; gap: 8px; }
  #services .services__icon { width: 36px; height: 36px; min-width: 36px; min-height: 36px; }
  #services .services__item h3 { font-size: 12px; line-height: 1.3; overflow-wrap: anywhere; }
  .guest-reviews .guest-review blockquote {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5;
    overflow: hidden; flex: none; height: 7.5em; margin: 16px 0;
  }
  .guest-reviews .guest-review__author { margin-top: auto; }
  #contacto #form2 input[type="date"] {
    display: block; -webkit-appearance: none; appearance: none;
    width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box;
    height: 42px; min-height: 42px; padding: 8px 10px; font-size: 16px;
  }
  #contacto #form2 input[type="date"]::-webkit-date-and-time-value { min-width: 0; text-align: left; }
  #contacto #form2 input[type="date"]::-webkit-datetime-edit { min-width: 0; padding: 0; }
}

/* Puntajes destacados, título de contacto y destacado blanco del video. */
.review-platform__name { display: block; }
.review-platform__rating { display: flex; align-items: baseline; gap: 3px; margin-top: 6px; color: #684486; line-height: 1; }
.review-platform__rating > strong { font-size: clamp(36px, 4vw, 48px); font-weight: 700; }
.review-platform__rating > span { font-size: 18px; }
#contacto > .section__title { font-size: clamp(36px, 4vw, 56px); line-height: 1.2; text-align: center; margin-bottom: 32px; }
.complex-song h3 > span { background: #fff; color: #795698; padding: 3px 12px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.complex-song h3 { line-height: 1.4; }

/* Íconos más legibles conservando las tarjetas actuales. */
#services .services__item i { font-size: 42px; color: #563574; }
#services .services__item:hover i { color: #563574; }
#departamentos-fotos .apartment-card[href="dpto12.html"] img { object-position: center 82%; }
@media (max-width: 767px) {
  #services .services__item i { font-size: 36px; }
}

#departamentos-fotos .apartment-card[href="depa21a24.html"] img { object-position: center 60%; }

#services .services__item h3 { color: #563574; }

#departamentos-fotos .apartment-card[href="depa25a28.html"] img { object-position: center 60%; }

@media (max-width: 767px) {
  #services .services__item { align-items: center; text-align: center; }
  #services .services__icon { width: 100%; min-width: 0; display: flex; align-items: center; justify-content: center; margin-inline: auto; }
  #services .services__icon i { flex: 0 0 auto; width: auto; margin: 0; text-align: center; }
}

/* Centrado vertical del contenido de servicios en celular. */
@media (max-width: 767px) {
  #services .services__item { justify-content: center; }
  #services .services__item h3 { margin: 0; }
}
