/* =========================================================================
   FLOOR PLANS — page-specific sections
   Adapted from the live page's inline floorplans styles, using brand tokens.
   (.header / .breadcrumbs live in sections.css and are reused.)
   ========================================================================= */

/* ---------- SECTION: floorplans-section ---------- */
.floorplans-section { padding: 0 var(--x-gap); margin-bottom: var(--y-gap); }
.floorplans-section__content { text-align: center; max-width: 1000px; margin: 0 auto 2.5rem; }
.floorplans-section__content .basic-content__content-wrapper p { margin-bottom: 0; }

/* ---------- filter tabs ---------- */
.floorplans-filters {
  display: flex; justify-content: center; align-items: center;
  gap: 1rem; flex-wrap: wrap;
  max-width: 100%; margin: 0 auto 2.5rem;
}
.floorplans-filters__item {
  font-family: var(--font-family-buttons);
  font-size: 1.4rem; cursor: pointer; background: none; border: 0;
  text-transform: uppercase; color: var(--color-fg);
  transition: color var(--base-timing);
}
.floorplans-filters__item:hover,
.floorplans-filters__item:focus { color: var(--color-primary); }
.floorplans-filters__item.active {
  text-decoration: underline; text-underline-offset: 5px;
  text-decoration-color: var(--color-primary);
}

/* ---------- cards grid ---------- */
.floorplans {
  display: flex; justify-content: center; align-items: stretch;
  --fp-gap: 1.4rem 3.4rem; gap: var(--fp-gap);
  flex-wrap: wrap; max-width: 1140px; margin: 0 auto;
}
.floorplan {
  max-width: 100%; width: 470px; background-color: #fff; text-align: center;
  padding: 2rem 1rem; position: relative; box-sizing: border-box;
  display: flex; flex-direction: column; justify-content: space-between;
  box-shadow: 0 0 19px 0 rgba(0,0,0,.1);
}
.floorplan[hidden] { display: none; }
.floorplan__banner {
  position: absolute; left: 0; top: 0; padding: 10px;
  background: var(--banner-color, var(--color-primary)); color: #fff;
  text-shadow: 3px 2px var(--color-tertiary);
  font-family: var(--font-family-subheading); font-weight: var(--font-weight-subheading);
  text-transform: uppercase; font-size: 1.1rem; z-index: 1;
}
.floorplan__image_container { width: 100%; height: auto; aspect-ratio: 1137 / 900; }
.floorplan__image_container a { display: flex; align-items: center; justify-content: center; height: 100%; }
.floorplan__image { width: 100%; height: 100%; object-fit: cover; border-radius: 6px; }
.floorplan__name {
  font-family: var(--font-family-heading); font-weight: var(--font-weight-heading);
  font-size: 1.6rem; text-transform: uppercase; margin: 1.25rem 0 .5rem;
}
.floorplan__details { font-size: 1.1rem; margin-bottom: .75rem; }
.floorplan__rent { font-weight: var(--font-weight-heading); font-size: 1.3rem; margin-bottom: 1rem; }
.floorplan__rent__price { font-size: 1.3rem; margin: 0; }
.floorplan__buttons {
  display: flex; gap: .7rem; flex-wrap: wrap;
  justify-content: center; align-items: center; margin-top: auto;
}
.floorplan__buttons .btn { min-width: unset; width: 44%; font-size: 14px; padding: .4rem .5rem; }

@media (max-width: 520px) {
  .floorplan__buttons .btn { width: 100%; }
}

/* ---------- SECTION: disclaimer + fee disclosure + site map ---------- */
.content-section { padding: 0 var(--x-gap); margin-bottom: var(--y-gap); }
.content-section .content { max-width: 1600px; margin: 0 auto; }
.content-section .text-left { text-align: left; }
.content-section .disclaimer { font-size: 11px; }
.content-section a { color: var(--color-primary); }

.responsive-iframe { position: relative; width: 100%; height: 100vh; overflow: hidden; }
.responsive-iframe iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 768px) { .responsive-iframe { height: 85vh; } }
