/*
 * Starkwood Properties — Live Mobile/Tablet Optimization
 * Scope: public website only. Desktop (1181px and wider) is intentionally unchanged.
 * Version: 1.5.7
 */


/* Navigation safety: inactive overlays never intercept clicks. */
.mobile-overlay { pointer-events: none; }
.mobile-overlay.open { pointer-events: auto; }
.mobile-menu { pointer-events: none; }
.mobile-menu.open {
  right: 0 !important;
  visibility: visible !important;
  pointer-events: auto;
}


/* Schedule Viewing page: responsive grid and overflow protection. */
.schedule-viewing-page .viewing-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
  gap: 64px;
  align-items: start;
}
.schedule-viewing-page .viewing-layout > *,
.schedule-viewing-page .viewing-form-column,
.schedule-viewing-page .contact-form-card,
.schedule-viewing-page .contact-form {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.schedule-viewing-page .viewing-info-list {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.schedule-viewing-page .viewing-info-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px;
  background: var(--bg);
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  min-width: 0;
}
.schedule-viewing-page .viewing-info-card > div:last-child { min-width: 0; }
.schedule-viewing-page .viewing-info-card a { overflow-wrap: anywhere; }
.schedule-viewing-page .viewing-info-icon {
  width: 44px;
  height: 44px;
  background: var(--primary);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent);
  font-size: 1rem;
  flex: 0 0 44px;
}
.schedule-viewing-page .viewing-expect-card {
  margin-top: 40px;
  padding: 28px;
  background: rgba(31,61,43,.05);
  border-radius: var(--radius-lg);
  border: 1px solid rgba(31,61,43,.1);
}
.schedule-viewing-page .viewing-benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.schedule-viewing-page .viewing-benefit-card {
  min-width: 0;
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 32px;
  border: 1px solid var(--border);
  text-align: center;
}

/* Desktop is explicitly protected from the responsive navigation layer. */
@media (min-width: 1181px) {
  .header nav,
  .header .nav-list { display: flex !important; }
  .header .hamburger { display: none !important; }
  .header-actions > .btn { display: inline-flex !important; }
  .mobile-menu,
  .mobile-overlay {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}

/* Tablet and compact laptop navigation */
@media (max-width: 1180px) {
  .mobile-menu { display: block; pointer-events: none; }
  .mobile-menu.open { right: 0 !important; pointer-events: auto; }
  .mobile-overlay { display: block; pointer-events: none; }
  .mobile-overlay.open { visibility: visible !important; opacity: 1 !important; pointer-events: auto; }
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body { min-width: 320px; }

  .header {
    padding: 9px 0;
    background: rgba(6, 26, 16, .94);
    border-bottom: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(14px) saturate(130%);
  }
  .header::before { display: none; }
  .header .container { padding-inline: clamp(16px, 3vw, 28px); }
  .header-inner { min-height: 58px; gap: 14px; }
  .header .logo img,
  .header.scrolled .logo img {
    height: 48px !important;
    max-width: 160px;
    object-fit: contain;
  }
  .hamburger {
    display: flex;
    width: 44px;
    height: 44px;
    padding: 11px 8px;
    align-items: flex-end;
    justify-content: center;
    border-radius: 10px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
  }
  .hamburger span,
  .header.scrolled .hamburger span { background: #fff; }

  .mobile-menu {
    width: min(430px, 92vw);
    height: 100vh;
    height: 100dvh;
    padding: max(76px, calc(env(safe-area-inset-top) + 62px)) 24px max(32px, calc(env(safe-area-inset-bottom) + 24px));
    overscroll-behavior: contain;
  }
  .mobile-close {
    top: max(16px, env(safe-area-inset-top));
    right: 16px;
    width: 44px;
    height: 44px;
  }
  .mobile-nav-list { margin-bottom: 24px; }
  .mobile-nav-item a {
    min-height: 50px;
    display: flex;
    align-items: center;
    padding: 13px 4px;
    font-size: .96rem;
    line-height: 1.35;
  }
  .mobile-cta .btn { min-height: 50px; }

  .section { padding-block: 76px; }
  .container { padding-inline: clamp(18px, 3vw, 28px); }
  .section-header-center { margin-bottom: 42px; }
  .section-title { text-wrap: balance; }

  /* Hero sections */
  .hero {
    height: auto;
    min-height: 680px;
    min-height: min(780px, 88svh);
    padding-top: 82px;
    padding-bottom: 64px;
    align-items: center;
  }
  .hero-content { padding-top: 40px; max-width: 720px; }
  .hero-content > div:first-child:not(.hero-label) { display: none; }
  .hero-title { font-size: clamp(2.75rem, 7.5vw, 4.6rem); line-height: 1.02; }
  .hero-subtitle { max-width: 620px; }
  .hero-actions { margin-bottom: 30px; }
  .hero-trust { margin-top: 0; }

  .page-hero {
    height: 370px;
    min-height: 370px;
    padding-top: 92px;
    padding-bottom: 44px;
    background-position: center;
  }
  .page-title { font-size: clamp(2.35rem, 7vw, 3.7rem); }
  .page-subtitle { max-width: 650px; }

  /* Common grids */
  .about-grid,
  .project-showcase,
  .location-grid,
  .contact-message-layout,
  .office-map-grid,
  .contact-cta-inner,
  .project-detail-card { grid-template-columns: minmax(0, 1fr) !important; }

  .about-content,
  .project-info,
  .location-content { padding-inline: 0; }
  .about-img-main,
  .project-img-main { height: clamp(330px, 48vw, 470px); }

  .why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .amenities-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .journey-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nearby-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .project-detail-image,
  .project-detail-image img { min-height: 390px !important; }
  .project-detail-content { padding: 38px !important; }
  .project-detail-actions { gap: 10px; }

  .contact-cards-grid { max-width: 680px; }
  .contact-message-panel,
  .contact-form-card,
  .office-details-card { padding: 34px !important; }

  .form-row,
  .contact-form-card .form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-control,
  input,
  select,
  textarea { max-width: 100%; }

  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 28px; }
  .footer-brand { grid-column: 1 / -1; }

  /* Location and maps */
  .location-places-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .map-full,
  .location-map-wrap,
  .office-map-card,
  .office-map-card iframe { min-height: 430px; height: 430px; }

  /* Public inventory map */
  .availability-heading-row { align-items: flex-start; flex-direction: column; gap: 12px; }
  .availability-live-note { white-space: normal; }
  .inventory-status-strip { grid-template-columns: repeat(4, minmax(145px, 1fr)); overflow-x: auto; padding: 2px 2px 10px; scroll-snap-type: x proximity; scrollbar-width: thin; }
  .inventory-status-card { scroll-snap-align: start; }
  .inventory-map-toolbar { align-items: stretch; }
  .inventory-map-toolbar .map-search { flex-basis: 100%; min-width: 100%; }
  .inventory-map-toolbar input,
  .inventory-map-toolbar select,
  .map-tool-btn { min-height: 46px; }
  .inventory-map-viewport { min-height: 520px; aspect-ratio: auto; }
  .inventory-map-footer { flex-direction: column; align-items: stretch; }
  .inventory-map-footer-actions { width: 100%; }
  .inventory-map-footer-actions .btn { flex: 1 1 220px; }

  /* Filters remain usable on touch */
  .gallery-filters,
  .faq-categories {
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    padding: 3px 2px 10px;
    margin-inline: -2px;
  }
  .filter-btn,
  .faq-cat-btn { flex: 0 0 auto; min-height: 44px; }

  /* Embedded content */
  iframe { max-width: 100%; }
}

@media (max-width: 900px) {
  .section { padding-block: 64px; }
  .stats-bar-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .why-grid,
  .journey-grid,
  .nearby-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .amenities-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .gallery-full-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .gallery-full-item.tall { grid-row: span 1 !important; aspect-ratio: 4 / 3 !important; }
  .gallery-full-overlay { opacity: 1; background: linear-gradient(to top, rgba(12,35,23,.78), transparent 68%); }

  .project-detail-content .project-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-form-card .form-row,
  .form-row { grid-template-columns: minmax(0, 1fr) !important; gap: 0 !important; }

  .public-unit-modal { align-items: flex-end; padding: 0; }
  .public-unit-card {
    width: 100%;
    max-height: min(88dvh, 760px);
    overflow-y: auto;
    border-radius: 22px 22px 0 0;
    padding-bottom: env(safe-area-inset-bottom);
  }
}


@media (max-width: 1024px) {
  .schedule-viewing-page .viewing-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 48px;
  }
  .schedule-viewing-page .viewing-form-column,
  .schedule-viewing-page .contact-form-card {
    width: 100%;
  }
  .schedule-viewing-page .viewing-benefits-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Phone layout */
@media (max-width: 768px) {
  :root { --mobile-sticky-height: 72px; }
  body { padding-bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom)); }
  body.keyboard-open { padding-bottom: 0; }

  .schedule-viewing-page .viewing-layout { gap: 36px; }
  .schedule-viewing-page .viewing-section { padding-top: 46px; }
  .schedule-viewing-page .viewing-info-list { margin-top: 26px; gap: 14px; }
  .schedule-viewing-page .viewing-info-card { padding: 16px; gap: 13px; }
  .schedule-viewing-page .viewing-info-icon { width: 40px; height: 40px; flex-basis: 40px; }
  .schedule-viewing-page .viewing-expect-card { margin-top: 28px; padding: 22px 18px; }
  .schedule-viewing-page .viewing-benefits-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .schedule-viewing-page .viewing-benefit-card { padding: 24px 18px; }
  .schedule-viewing-page .contact-form-card h3 { font-size: 1.35rem !important; line-height: 1.2; }
  .schedule-viewing-page .contact-form-card .btn-block { width: 100%; white-space: normal; }

  .container { padding-inline: 16px; }
  .section { padding-block: 52px; }
  .section-header-center { margin-bottom: 32px; }
  .section-label { font-size: .68rem; letter-spacing: .16em; }
  .section-title { font-size: clamp(1.9rem, 8.7vw, 2.55rem); line-height: 1.08; }
  .section-desc { font-size: .93rem; line-height: 1.7; }

  .header .container { padding-inline: 14px; }
  .header-inner { min-height: 52px; }
  .header .logo img,
  .header.scrolled .logo img {
    height: 42px !important;
    max-width: 132px;
  }
  .hamburger { width: 42px; height: 42px; }

  .mobile-menu { width: min(92vw, 390px); padding-inline: 20px; }
  .mobile-nav-item a { font-size: .92rem; }

  .hero {
    min-height: 640px;
    min-height: max(620px, 88svh);
    padding-top: 78px;
    padding-bottom: 48px;
    align-items: flex-end;
  }
  .hero-bg { background-position: 62% center; }
  .hero-content { padding-top: 20px; }
  .hero-title {
    font-size: clamp(2.15rem, 10.5vw, 3.1rem);
    line-height: 1.04;
    letter-spacing: -.035em;
    margin-bottom: 20px;
  }
  .hero-subtitle { font-size: .94rem; line-height: 1.65; margin-bottom: 28px; }
  .hero-label { margin-bottom: 16px; }
  .hero-actions { flex-direction: column; gap: 10px; margin-bottom: 24px; }
  .hero-actions .btn { width: 100%; min-height: 52px; }
  .hero-trust { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .trust-badge { justify-content: flex-start; min-height: 40px; }

  .page-hero {
    height: 315px;
    min-height: 315px;
    padding-top: 94px;
    padding-bottom: 32px;
  }
  .page-title { font-size: clamp(2rem, 10vw, 2.8rem); line-height: 1.06; }
  .page-subtitle { font-size: .92rem; line-height: 1.6; }
  .breadcrumb { flex-wrap: wrap; font-size: .75rem; }

  .stats-bar-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat-item { min-height: 104px; padding: 18px 8px; }
  .stat-number { font-size: 1.65rem; }
  .stat-label { font-size: .7rem; line-height: 1.35; }

  .about-grid,
  .project-showcase,
  .location-grid { gap: 32px; }
  .about-img-main,
  .project-img-main { height: 280px; }
  .about-img-badge,
  .about-img-accent,
  .project-img-thumb { display: none; }
  .about-actions,
  .project-actions,
  .project-detail-actions,
  .cta-actions,
  .office-details-actions { flex-direction: column; align-items: stretch; }
  .about-actions .btn,
  .project-actions .btn,
  .project-detail-actions .btn,
  .cta-actions .btn,
  .office-details-actions .btn { width: 100%; justify-content: center; }

  .why-grid,
  .journey-grid,
  .nearby-grid,
  .amenities-grid { grid-template-columns: minmax(0, 1fr); }
  .why-card,
  .journey-card,
  .contact-card,
  .location-advantage-card { padding: 24px 20px; }
  .amenity-card { min-height: 104px; padding: 18px 14px; }

  .project-detail-card { border-radius: 14px; }
  .project-detail-image,
  .project-detail-image img { min-height: 250px !important; }
  .project-detail-content { padding: 26px 20px !important; }
  .project-detail-title { font-size: 2rem !important; }
  .project-detail-content .project-highlights { grid-template-columns: minmax(0, 1fr) !important; }
  .project-status-badge,
  .project-type-badge { left: 16px !important; }

  .gallery-full-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 12px !important; }
  .gallery-full-item,
  .gallery-full-item.tall { aspect-ratio: 4 / 3 !important; }
  .gallery-full-overlay { padding: 14px; }
  .gallery-full-caption { font-size: .78rem; }

  .lightbox-inner { max-width: calc(100vw - 28px); max-height: calc(100dvh - 110px); }
  .lightbox-img { max-width: 100%; max-height: calc(100dvh - 160px); }
  .lightbox-close { top: max(12px, env(safe-area-inset-top)); right: 12px; }
  .lightbox-prev,
  .lightbox-next { width: 42px; height: 42px; }
  .lightbox-prev { left: 8px; }
  .lightbox-next { right: 8px; }

  .faq-question { padding: 17px 16px !important; gap: 10px; }
  .faq-question-text,
  .faq-q-text { font-size: .9rem !important; line-height: 1.45; }
  .faq-number { width: 26px; height: 26px; }
  .faq-toggle,
  .faq-icon { width: 30px; height: 30px; }
  .faq-answer-inner,
  .faq-item.open .faq-answer { padding-inline: 16px !important; }
  .faq-item.open .faq-answer { max-height: 900px !important; }

  .contact-page .page-hero { margin-top: 70px !important; height: 300px !important; }
  .contact-cards-grid { max-width: none; grid-template-columns: minmax(0, 1fr) !important; }
  .contact-page .contact-card { min-height: 0 !important; }
  .contact-message-section,
  .office-map-section { padding-block: 54px !important; }
  .contact-message-panel,
  .contact-form-card,
  .office-details-card,
  .contact-cta .cta-box { padding: 24px 18px !important; }
  .contact-info-item { grid-template-columns: 40px minmax(0, 1fr) !important; padding: 14px !important; }
  .contact-info-item i { width: 40px !important; height: 40px !important; }

  .form-group { margin-bottom: 16px; }
  .form-control,
  input,
  select,
  textarea {
    width: 100%;
    min-height: 50px;
    font-size: 16px !important; /* prevents iOS auto zoom */
  }
  textarea.form-control,
  textarea { min-height: 130px; }
  .form-check { align-items: flex-start; }
  .form-check input { width: 20px; min-height: 20px; flex: 0 0 20px; }

  .location-places-grid { grid-template-columns: minmax(0, 1fr); }
  .location-place-item { align-items: flex-start; padding: 14px; }
  .place-distance { white-space: normal; text-align: right; }
  .map-full,
  .location-map-wrap,
  .office-map-card,
  .office-map-card iframe { min-height: 340px; height: 340px; }

  .policy-meta { gap: 14px; padding: 18px; }
  .policy-meta-item { flex: 1 1 100%; align-items: flex-start; }
  .policy-toc { padding: 22px 18px; }
  .policy-section { margin-bottom: 36px; }
  .policy-section h2 { font-size: 1.25rem; }

  /* Inventory map phone experience */
  .availability-section { padding-top: 54px !important; padding-bottom: 54px !important; }
  .availability-heading-row { margin-bottom: 18px; }
  .inventory-status-strip {
    grid-template-columns: repeat(4, minmax(138px, 1fr));
    margin-inline: -4px;
    padding-inline: 4px;
  }
  .inventory-status-card { min-height: 60px; padding: 10px 12px; }
  .inventory-status-card strong { font-size: 17px; }
  .inventory-map-shell { border-radius: 16px; padding: 8px; margin-inline: -4px; }
  .inventory-map-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
  .inventory-map-toolbar .map-search { grid-column: 1 / -1; }
  .inventory-map-toolbar select { width: 100%; min-width: 0; }
  .map-tool-btn { min-width: 46px; padding-inline: 10px; }
  .map-tool-btn .tool-label { display: none; }
  .inventory-map-viewport { height: 440px; min-height: 440px; border-radius: 12px; }
  .inventory-map-message { left: 10px; right: 10px; bottom: 10px; max-width: none; }
  .inventory-map-footer-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .inventory-map-footer-actions .btn { width: 100%; }
  .unit-availability-hero { padding: 112px 0 48px; }
  .unit-availability-hero h1 { font-size: clamp(2rem, 9vw, 2.7rem); }
  .unit-availability-hero p { font-size: .92rem; }
  .public-unit-head { padding: 18px; position: sticky; top: 0; z-index: 2; }
  .public-unit-head h3 { font-size: 1.75rem; }
  .public-unit-body { padding: 18px; }
  .public-unit-grid { grid-template-columns: minmax(0, 1fr); }
  .public-unit-actions { flex-direction: column; }
  .public-unit-actions .btn { width: 100%; min-width: 0; }

  .footer-top { padding: 52px 0 36px; }
  .footer-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { align-items: flex-start; padding-bottom: 22px; }
  .footer-bottom-links { flex-direction: column; gap: 8px; }

  .mobile-sticky-cta {
    display: block;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    min-height: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom));
  }
  body.keyboard-open .mobile-sticky-cta { display: none; }
  .sticky-cta-inner { gap: 6px; }
  .sticky-btn { min-height: 52px; padding: 7px 4px; font-size: .64rem; line-height: 1.2; }
  .sticky-btn i { font-size: .95rem; }

  .floating-contact { right: 14px; bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom) + 12px); }
  .scroll-top { left: 14px; bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom) + 12px); }
  body.keyboard-open .floating-contact,
  body.keyboard-open .scroll-top { display: none; }
}

@media (max-width: 420px) {
  .hero { min-height: 610px; }
  .hero-title { font-size: clamp(2rem, 10vw, 2.65rem); }
  .hero-trust { display: none; }
  .page-hero { height: 290px; min-height: 290px; }
  .section-title { font-size: 1.85rem; }
  .stats-bar-inner { grid-template-columns: minmax(0, 1fr); }
  .stat-item { border-right: 0 !important; border-bottom: 1px solid var(--border); }
  .stat-item:last-child { border-bottom: 0; }
  .inventory-map-viewport { height: 400px; min-height: 400px; }
  .inventory-map-toolbar { grid-template-columns: minmax(0, 1fr); }
  .inventory-map-toolbar .map-search { grid-column: auto; }
  .map-tool-btn .tool-label { display: inline; }
  .map-tool-btn { width: 100%; }
  .location-place-item { display: grid; grid-template-columns: auto minmax(0, 1fr); }
  .place-distance { grid-column: 2; text-align: left; }
}

@media (hover: none) and (pointer: coarse) {
  .btn:hover,
  .why-card:hover,
  .journey-card:hover,
  .contact-card:hover,
  .project-card:hover,
  .location-advantage-card:hover,
  .gallery-full-item:hover img { transform: none !important; }
  .gallery-full-overlay { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-bg { animation: none !important; }
}

/* ========================================================================== 
   v1.5.3 — Home page mobile cleanup
   Keeps desktop (1181px+) unchanged and targets index.html through .home-page.
   ========================================================================== */
@media (max-width: 768px) {
  html,
  body.home-page {
    max-width: 100%;
    overflow-x: clip;
  }

  body.home-page {
    --mobile-sticky-height: 64px;
    padding-bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom));
  }

  /* Keep the navigation readable without showing page content through it. */
  body.home-page .header {
    position: sticky !important;
    inset: auto !important;
    top: 0 !important;
    width: 100%;
    padding: 6px 0 !important;
    background: #061a10 !important;
    border-bottom: 1px solid rgba(255,255,255,.1);
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    z-index: 1200;
  }
  body.home-page .header-inner { min-height: 56px; }
  body.home-page .header .logo img,
  body.home-page .header.scrolled .logo img {
    height: 44px !important;
    max-width: 142px !important;
  }
  body.home-page .hamburger {
    width: 42px;
    height: 42px;
    border-radius: 12px;
  }
  body.home-page section[id] { scroll-margin-top: 72px; }

  /* Tighter, readable first screen. */
  body.home-page .hero {
    min-height: calc(100svh - 68px) !important;
    padding: 46px 0 48px !important;
    align-items: center !important;
  }
  body.home-page .hero-content {
    max-width: 560px;
    padding-top: 0 !important;
  }
  body.home-page .hero-title {
    max-width: 100%;
    margin-bottom: 18px;
    font-size: clamp(2.15rem, 10vw, 2.85rem);
    line-height: 1.02;
    overflow-wrap: normal;
  }
  body.home-page .hero-subtitle {
    margin-bottom: 24px;
    font-size: .94rem;
    line-height: 1.62;
  }
  body.home-page .hero-actions { margin-bottom: 0; }
  body.home-page .hero-actions .btn {
    min-height: 50px;
    padding-inline: 16px;
    white-space: normal;
    text-align: center;
  }
  body.home-page .hero-scroll { display: none !important; }

  /* Reduce excess vertical length throughout the landing page. */
  body.home-page .section { padding-block: 46px !important; }
  body.home-page .section-header-center,
  body.home-page .amenities-header { margin-bottom: 28px !important; }
  body.home-page .section-title {
    font-size: clamp(1.85rem, 8.2vw, 2.35rem);
    line-height: 1.08;
  }
  body.home-page .section-desc {
    font-size: .92rem;
    line-height: 1.65;
  }

  /* Four metrics stay compact instead of becoming four full-width rows. */
  body.home-page .stats-bar-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.home-page .stat-item {
    min-height: 92px;
    padding: 14px 8px;
    border-bottom: 1px solid var(--border);
  }
  body.home-page .stat-item:nth-child(odd) { border-right: 1px solid var(--border) !important; }
  body.home-page .stat-item:nth-child(even) { border-right: 0 !important; }
  body.home-page .stat-item:nth-last-child(-n+2) { border-bottom: 0; }
  body.home-page .stat-number { font-size: 1.55rem; }
  body.home-page .stat-label { font-size: .64rem; }

  /* About and featured-project blocks. */
  body.home-page .about-grid,
  body.home-page .project-showcase,
  body.home-page .location-grid { gap: 28px !important; }
  body.home-page .about-img-main,
  body.home-page .project-img-main {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }
  body.home-page .about-content > p,
  body.home-page .project-info > p,
  body.home-page .location-content > p {
    font-size: .93rem;
    line-height: 1.7;
  }
  body.home-page .about-features { gap: 10px; }
  body.home-page .about-feature {
    min-height: 0 !important;
    padding: 14px !important;
    gap: 12px;
    border-radius: 14px;
  }
  body.home-page .af-icon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
  }
  body.home-page .af-text h5 { font-size: .94rem; }
  body.home-page .af-text p { font-size: .78rem; line-height: 1.45; }
  body.home-page .project-meta { gap: 8px; }
  body.home-page .project-tag {
    max-width: 100%;
    padding: 8px 11px;
    font-size: .72rem;
    white-space: normal;
  }
  body.home-page .project-highlights {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px;
  }
  body.home-page .highlight-item { padding: 14px 16px; }

  /* Availability totals no longer clip horizontally on narrow phones. */
  body.home-page .availability-section {
    padding-top: 46px !important;
    padding-bottom: 46px !important;
  }
  body.home-page .availability-heading-row { margin-bottom: 18px; }
  body.home-page .availability-live-note {
    width: 100%;
    font-size: .78rem;
    overflow-wrap: anywhere;
  }
  body.home-page .inventory-status-strip {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100%;
    margin-inline: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  body.home-page .inventory-status-card {
    min-width: 0 !important;
    min-height: 64px;
    padding: 10px 11px;
    scroll-snap-align: none;
  }
  body.home-page .inventory-status-card > span:last-child { min-width: 0; }
  body.home-page .inventory-status-card strong { font-size: 1rem; }
  body.home-page .inventory-status-card span span {
    font-size: .67rem;
    overflow-wrap: anywhere;
  }
  body.home-page .inventory-map-shell {
    width: 100%;
    margin-inline: 0 !important;
    padding: 10px;
    border-radius: 16px;
    overflow: hidden;
  }
  body.home-page .inventory-map-toolbar {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px;
  }
  body.home-page .inventory-map-toolbar .map-search {
    grid-column: 1 / -1 !important;
    min-width: 0 !important;
  }
  body.home-page .inventory-map-toolbar .map-tool-btn {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    padding: 7px 6px;
    gap: 6px;
    font-size: .68rem;
    white-space: nowrap;
  }
  body.home-page .inventory-map-toolbar .map-tool-btn .tool-label {
    display: inline !important;
    font-size: .65rem;
  }
  body.home-page .inventory-map-toolbar [data-map-fullscreen] {
    grid-column: 1 / -1;
  }
  body.home-page .inventory-map-viewport {
    height: clamp(330px, 92vw, 410px) !important;
    min-height: 330px !important;
  }
  body.home-page .inventory-map-message {
    font-size: .78rem;
    line-height: 1.45;
  }
  body.home-page .inventory-map-footer { gap: 14px; }
  body.home-page .inventory-map-footer-actions .btn {
    min-height: 50px;
    padding: 12px 14px;
    font-size: .78rem;
    white-space: normal;
    text-align: center;
  }
  body.home-page .inventory-map-public-note {
    margin-top: 14px;
    padding: 16px;
    font-size: .78rem;
    line-height: 1.55;
  }

  /* Turn long feature cards into concise mobile rows. */
  body.home-page .why-grid { gap: 12px !important; }
  body.home-page .why-card {
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 14px;
    row-gap: 5px;
    align-items: start;
    min-height: 0 !important;
    padding: 18px !important;
    text-align: left !important;
  }
  body.home-page .why-icon {
    grid-row: 1 / 3;
    width: 54px !important;
    height: 54px !important;
    margin: 0 !important;
  }
  body.home-page .why-title {
    margin: 2px 0 0 !important;
    font-size: 1rem;
    line-height: 1.3;
  }
  body.home-page .why-text {
    margin: 0 !important;
    font-size: .8rem;
    line-height: 1.55;
  }

  /* Twelve amenities become a clean two-column grid. */
  body.home-page .amenities-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  body.home-page .amenity-card {
    min-height: 112px !important;
    padding: 14px 8px !important;
    border-radius: 16px;
  }
  body.home-page .amenity-icon {
    width: 48px !important;
    height: 48px !important;
    margin-bottom: 9px !important;
  }
  body.home-page .amenity-name {
    font-size: .76rem !important;
    line-height: 1.35;
  }

  /* Location cards and map are kept usable without excessive scrolling. */
  body.home-page .nearby-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  body.home-page .nearby-item {
    min-height: 86px;
    padding: 12px 8px !important;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    text-align: center;
  }
  body.home-page .nearby-icon {
    width: 40px !important;
    height: 40px !important;
    flex: 0 0 40px;
  }
  body.home-page .nearby-item span {
    font-size: .72rem;
    line-height: 1.3;
  }
  body.home-page .location-map-wrap,
  body.home-page .location-map-wrap iframe {
    height: 310px !important;
    min-height: 310px !important;
  }

  /* Shorter process cards. */
  body.home-page .journey-grid { gap: 30px !important; }
  body.home-page .journey-card {
    min-height: 0 !important;
    padding: 54px 18px 24px !important;
  }
  body.home-page .journey-icon {
    width: 66px !important;
    height: 66px !important;
    margin-bottom: 18px !important;
  }
  body.home-page .journey-title { font-size: 1.08rem; }
  body.home-page .journey-text { font-size: .84rem; line-height: 1.6; }

  body.home-page .cta-inner { padding: 28px 20px !important; }
  body.home-page .cta-title { font-size: 1.9rem; line-height: 1.1; }
  body.home-page .cta-desc { font-size: .88rem; line-height: 1.65; }
  body.home-page .cta-actions { gap: 10px; }

  /* Footer logo, links and contact details fit naturally on phones. */
  body.home-page .footer-top { padding: 42px 0 30px !important; }
  body.home-page .footer-grid { gap: 28px !important; }
  body.home-page .footer-logo img {
    display: block;
    width: 190px !important;
    height: auto !important;
    max-width: 62vw !important;
  }
  body.home-page .footer-brand > p {
    max-width: 34rem;
    font-size: .86rem;
    line-height: 1.7;
  }
  body.home-page .footer-col h4 { margin-bottom: 14px; }
  body.home-page .footer-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px 14px;
  }
  body.home-page .footer-links li { margin: 0 !important; }
  body.home-page .footer-links a { font-size: .84rem; line-height: 1.45; }
  body.home-page .footer-contact-list li {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    margin-bottom: 14px;
  }
  body.home-page .footer-contact-list i {
    width: 28px;
    margin-top: 3px;
    text-align: center;
  }
  body.home-page .footer-contact-list span,
  body.home-page .footer-contact-list a {
    min-width: 0;
    font-size: .84rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
  }
  body.home-page .footer-bottom {
    gap: 12px;
    padding: 20px 0 18px !important;
  }
  body.home-page .footer-bottom p { font-size: .78rem; line-height: 1.5; }
  body.home-page .footer-bottom-links {
    flex-direction: row !important;
    flex-wrap: wrap;
    gap: 8px 16px !important;
  }
  body.home-page .footer-bottom-links a { font-size: .78rem; }

  /* Mobile utility controls no longer cover large portions of the page. */
  body.home-page .mobile-sticky-cta {
    padding: 6px 8px calc(6px + env(safe-area-inset-bottom)) !important;
    min-height: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom));
  }
  body.home-page .sticky-cta-inner { gap: 6px; }
  body.home-page .sticky-btn {
    min-height: 48px;
    padding: 7px 5px;
    flex-direction: row !important;
    justify-content: center;
    gap: 7px;
    border-radius: 12px;
    font-size: .66rem;
    line-height: 1;
  }
  body.home-page .sticky-btn i { font-size: .9rem; }
  body.home-page .floating-contact {
    right: 12px !important;
    bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom) + 10px) !important;
  }
  body.home-page .floating-main-btn {
    width: 52px !important;
    height: 52px !important;
    font-size: 1rem !important;
  }
  body.home-page .scroll-top { display: none !important; }
  body.home-page.footer-in-view .floating-contact {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
  }
}

@media (max-width: 390px) {
  body.home-page .inventory-map-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.home-page .inventory-map-toolbar [data-map-reset] { grid-column: 1 / -1; }
  body.home-page .inventory-map-toolbar [data-map-fullscreen] { grid-column: 1 / -1; }
  body.home-page .footer-links { grid-template-columns: minmax(0, 1fr); }
}


/* ==========================================================================
   v1.5.4 — Unified footer across all public pages
   ========================================================================== */
.footer {
  position: relative;
  overflow: hidden;
}
.footer .footer-top {
  padding: 64px 0 42px;
}
.footer .footer-grid {
  display: grid !important;
  grid-template-columns: minmax(240px, 1.35fr) minmax(150px, .75fr) minmax(185px, .95fr) minmax(240px, 1.15fr) !important;
  align-items: start;
  gap: 44px 32px !important;
}
.footer .footer-brand {
  grid-column: auto !important;
  min-width: 0;
}
.footer .footer-logo img,
.contact-page .footer-logo img,
.home-page .footer-logo img {
  display: block;
  width: 190px !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain;
}
.footer .footer-brand > p {
  max-width: 34rem;
  margin-top: 18px;
  line-height: 1.75;
}
.footer .footer-social {
  margin-top: 20px;
}
.footer .footer-col {
  min-width: 0;
}
.footer .footer-col h4 {
  margin-bottom: 18px;
}
.footer .footer-links {
  margin: 0;
  padding: 0;
}
.footer .footer-links li {
  margin-bottom: 10px;
}
.footer .footer-links a,
.footer .footer-contact-list a {
  color: rgba(255,255,255,.68) !important;
  text-decoration: none;
}
.footer .footer-links a:hover,
.footer .footer-contact-list a:hover {
  color: #fff !important;
}
.footer .footer-contact-list {
  margin: 0;
  padding: 0;
}
.footer .footer-contact-list li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  margin-bottom: 15px;
}
.footer .footer-contact-list i {
  width: 28px;
  margin-top: 4px;
  text-align: center;
}
.footer .footer-contact-list span,
.footer .footer-contact-list a {
  min-width: 0;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.footer .footer-bottom {
  gap: 18px;
}
.footer .footer-bottom-links {
  flex-wrap: wrap;
}

@media (max-width: 1100px) {
  .footer .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .footer .footer-brand {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 768px) {
  .footer .footer-top {
    padding: 42px 0 30px !important;
  }
  .footer .footer-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
  }
  .footer .footer-brand {
    grid-column: auto !important;
  }
  body .footer .footer-logo img,
  body.contact-page .footer-logo img,
  body.home-page .footer-logo img {
    width: 170px !important;
    max-width: 58vw !important;
  }
  .footer .footer-brand > p {
    margin-top: 16px;
    font-size: .86rem;
    line-height: 1.7;
  }
  .footer .footer-col h4 {
    margin-bottom: 14px;
  }
  .footer .footer-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px 14px;
  }
  .footer .footer-links li {
    margin: 0 !important;
  }
  .footer .footer-links a {
    font-size: .84rem;
    line-height: 1.45;
  }
  .footer .footer-contact-list li {
    margin-bottom: 14px;
  }
  .footer .footer-contact-list span,
  .footer .footer-contact-list a {
    font-size: .84rem;
    line-height: 1.55;
  }
  .footer .footer-bottom {
    align-items: flex-start !important;
    gap: 12px;
    padding: 20px 0 18px !important;
  }
  .footer .footer-bottom p,
  .footer .footer-bottom-links a {
    font-size: .78rem;
    line-height: 1.5;
  }
  .footer .footer-bottom-links {
    flex-direction: row !important;
    flex-wrap: wrap;
    gap: 8px 16px !important;
  }
  body.footer-in-view .floating-contact {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
  }
}

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

/* ========================================================================== 
   v1.5.5 — About page mobile/tablet cleanup
   Targets about.html only through body.about-page. Desktop 1181px+ remains
   unchanged.
   ========================================================================== */
body.about-page .mission-vision-grid > *,
body.about-page .trust-grid > *,
body.about-page .trust-feature > div:last-child,
body.about-page .about-grid > * {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 900px) {
  body.about-page .mission-vision-grid,
  body.about-page .trust-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  body.about-page .mission-vision-grid {
    gap: 18px !important;
    margin-bottom: 46px !important;
  }
  body.about-page .trust-grid {
    gap: 34px !important;
  }
  body.about-page .trust-image {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
  }
}

@media (max-width: 768px) {
  html,
  body.about-page {
    max-width: 100%;
    overflow-x: clip;
  }

  body.about-page {
    --mobile-sticky-height: 64px;
    padding-bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom));
  }

  /* The header now occupies its own space instead of covering headings/cards. */
  body.about-page .header {
    position: sticky !important;
    inset: auto !important;
    top: 0 !important;
    width: 100%;
    padding: 6px 0 !important;
    background: #061a10 !important;
    border-bottom: 1px solid rgba(255,255,255,.1);
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    z-index: 1200;
  }
  body.about-page .header-inner { min-height: 56px; }
  body.about-page .header .logo img,
  body.about-page .header.scrolled .logo img {
    height: 44px !important;
    max-width: 142px !important;
  }
  body.about-page .hamburger {
    width: 42px;
    height: 42px;
    border-radius: 12px;
  }
  body.about-page section[id] { scroll-margin-top: 72px; }

  /* Hero remains readable and no longer sits underneath the navigation. */
  body.about-page .page-hero {
    height: auto !important;
    min-height: 300px !important;
    margin-top: 0 !important;
    padding: 54px 0 38px !important;
    background-position: center !important;
  }
  body.about-page .page-hero-content { max-width: 680px; }
  body.about-page .page-title {
    max-width: 100%;
    margin-bottom: 14px;
    font-size: clamp(2rem, 9.5vw, 2.65rem);
    line-height: 1.04;
    overflow-wrap: normal;
  }
  body.about-page .page-subtitle {
    max-width: 100%;
    font-size: .91rem;
    line-height: 1.6;
  }

  body.about-page .section { padding-block: 46px !important; }
  body.about-page .section-header-center { margin-bottom: 28px !important; }
  body.about-page .section-title {
    font-size: clamp(1.85rem, 8.4vw, 2.35rem);
    line-height: 1.08;
  }
  body.about-page .section-desc {
    font-size: .91rem;
    line-height: 1.65;
  }

  /* Company story: normal-width copy and a predictable image ratio. */
  body.about-page .about-grid { gap: 28px !important; }
  body.about-page .about-img-main {
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
  }
  body.about-page .about-content > p,
  body.about-page .about-trust-section p {
    font-size: .92rem;
    line-height: 1.72;
  }
  body.about-page .about-actions {
    margin-top: 24px !important;
    gap: 10px;
  }
  body.about-page .about-actions .btn {
    min-height: 50px;
    white-space: normal;
    text-align: center;
  }

  /* Mission and vision are stacked; no more two narrow vertical columns. */
  body.about-page .mission-vision-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
    margin-bottom: 40px !important;
  }
  body.about-page .mission-vision-card {
    width: 100%;
    min-height: 0;
    padding: 24px 20px !important;
    border-radius: 18px !important;
  }
  body.about-page .mission-vision-card > div:nth-child(2) {
    width: 50px !important;
    height: 50px !important;
    margin-bottom: 18px !important;
  }
  body.about-page .mission-vision-card h3 {
    margin-bottom: 10px !important;
    font-size: 1.35rem !important;
    line-height: 1.2;
  }
  body.about-page .mission-vision-card p {
    margin: 0;
    font-size: .89rem;
    line-height: 1.68 !important;
  }

  /* Core values become concise icon-and-copy rows. */
  body.about-page .why-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }
  body.about-page .why-card {
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 14px;
    row-gap: 5px;
    align-items: start;
    min-height: 0 !important;
    padding: 18px !important;
    text-align: left !important;
    border-radius: 16px !important;
  }
  body.about-page .why-icon {
    grid-row: 1 / 3;
    width: 54px !important;
    height: 54px !important;
    margin: 0 !important;
  }
  body.about-page .why-title {
    margin: 2px 0 0 !important;
    font-size: 1rem;
    line-height: 1.3;
  }
  body.about-page .why-text {
    margin: 0 !important;
    font-size: .8rem;
    line-height: 1.55;
  }

  /* Trust section uses one full-width column and compact feature rows. */
  body.about-page .trust-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
    align-items: stretch !important;
  }
  body.about-page .trust-list {
    margin-top: 24px !important;
    gap: 10px !important;
  }
  body.about-page .trust-feature {
    width: 100%;
    padding: 15px !important;
    gap: 12px !important;
    border-radius: 14px !important;
  }
  body.about-page .trust-feature-icon {
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
  }
  body.about-page .trust-feature h5 {
    margin: 0 0 3px !important;
    font-size: .92rem !important;
    line-height: 1.35;
  }
  body.about-page .trust-feature p {
    margin: 0 !important;
    font-size: .78rem !important;
    line-height: 1.5 !important;
  }
  body.about-page .trust-image-wrap {
    width: 100%;
    overflow: hidden;
    border-radius: 18px;
  }
  body.about-page .trust-image {
    display: block;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
    border-radius: 18px !important;
  }

  body.about-page .final-cta.section { padding-block: 42px !important; }
  body.about-page .cta-inner { padding: 28px 20px !important; }
  body.about-page .cta-title {
    font-size: clamp(1.75rem, 8vw, 2.2rem);
    line-height: 1.1;
  }
  body.about-page .cta-desc {
    font-size: .88rem;
    line-height: 1.65;
  }
  body.about-page .cta-actions { gap: 10px; }
  body.about-page .cta-actions .btn {
    min-height: 50px;
    white-space: normal;
    text-align: center;
  }

  /* Keep utility controls useful without covering the page content. */
  body.about-page .mobile-sticky-cta {
    padding: 6px 8px calc(6px + env(safe-area-inset-bottom)) !important;
    min-height: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom));
  }
  body.about-page .sticky-cta-inner { gap: 6px; }
  body.about-page .sticky-btn {
    min-height: 48px;
    padding: 7px 5px;
    flex-direction: row !important;
    justify-content: center;
    gap: 7px;
    border-radius: 12px;
    font-size: .66rem;
    line-height: 1;
  }
  body.about-page .sticky-btn i { font-size: .9rem; }
  body.about-page .floating-contact {
    right: 12px !important;
    bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom) + 10px) !important;
  }
  body.about-page .floating-main-btn {
    width: 52px !important;
    height: 52px !important;
    font-size: 1rem !important;
  }
  body.about-page .scroll-top {
    left: 12px !important;
    bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom) + 10px) !important;
    width: 48px !important;
    height: 48px !important;
  }
}

@media (max-width: 390px) {
  body.about-page .page-title { font-size: 2rem; }
  body.about-page .section-title { font-size: 1.78rem; }
  body.about-page .mission-vision-card { padding: 22px 18px !important; }
  body.about-page .why-card {
    grid-template-columns: 48px minmax(0, 1fr);
    padding: 16px !important;
  }
  body.about-page .why-icon {
    width: 48px !important;
    height: 48px !important;
  }
}

/* ========================================================================
   v1.5.6 — Projects page mobile repair
   Scope is limited to projects.html through body.projects-page.
   Desktop at 769px and wider remains governed by the existing design.
   ======================================================================== */

body.projects-page .project-detail-card,
body.projects-page .project-detail-card > *,
body.projects-page .project-detail-content,
body.projects-page .project-meta-row,
body.projects-page .project-highlights,
body.projects-page .project-detail-actions {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 900px) {
  body.projects-page .project-detail-card {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: start !important;
    height: auto !important;
    min-height: 0 !important;
  }
  body.projects-page .project-detail-image,
  body.projects-page .project-detail-image img {
    height: clamp(300px, 54vw, 390px) !important;
    min-height: 0 !important;
  }
  body.projects-page .project-detail-content {
    height: auto !important;
    min-height: 0 !important;
    justify-content: flex-start !important;
  }
}

@media (max-width: 768px) {
  html,
  body.projects-page {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  body.projects-page {
    --mobile-sticky-height: 64px;
    padding-bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom));
  }

  /* Give the navigation its own space so it never covers the hero or cards. */
  body.projects-page .header {
    position: sticky !important;
    inset: auto !important;
    top: 0 !important;
    width: 100%;
    padding: 6px 0 !important;
    background: #061a10 !important;
    border-bottom: 1px solid rgba(255,255,255,.1);
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    z-index: 1200;
  }
  body.projects-page .header-inner { min-height: 56px; }
  body.projects-page .header .logo img,
  body.projects-page .header.scrolled .logo img {
    height: 44px !important;
    max-width: 142px !important;
  }
  body.projects-page .hamburger {
    width: 42px;
    height: 42px;
    border-radius: 12px;
  }
  body.projects-page section[id] { scroll-margin-top: 72px; }

  /* Compact, readable page hero. */
  body.projects-page .page-hero {
    height: auto !important;
    min-height: 310px !important;
    margin-top: 0 !important;
    padding: 48px 0 38px !important;
    background-position: center !important;
  }
  body.projects-page .breadcrumb {
    margin-bottom: 20px !important;
    font-size: .78rem;
  }
  body.projects-page .page-title {
    max-width: 100%;
    margin-bottom: 14px;
    font-size: clamp(2.15rem, 10vw, 2.8rem);
    line-height: 1.02;
    text-wrap: balance;
  }
  body.projects-page .page-subtitle {
    max-width: 100%;
    margin: 0;
    font-size: .9rem;
    line-height: 1.62;
  }

  body.projects-page .section { padding-block: 46px !important; }
  body.projects-page .section-header-center {
    max-width: 100%;
    margin-bottom: 28px !important;
  }
  body.projects-page .section-label {
    font-size: .72rem;
    letter-spacing: .16em;
  }
  body.projects-page .section-title {
    margin-bottom: 14px;
    font-size: clamp(1.9rem, 9vw, 2.35rem);
    line-height: 1.08;
  }
  body.projects-page .section-desc {
    max-width: 100%;
    font-size: .88rem;
    line-height: 1.65;
  }

  /* Remove inherited fixed heights that created the large blank gap. */
  body.projects-page .project-detail-card {
    display: block !important;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    border-radius: 18px !important;
    overflow: hidden !important;
  }
  body.projects-page .project-detail-image {
    display: block !important;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--bg);
  }
  body.projects-page .project-detail-image img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center;
  }
  body.projects-page .project-status-badge,
  body.projects-page .project-type-badge {
    left: 14px !important;
    max-width: calc(100% - 28px);
    padding: 7px 12px !important;
    font-size: .62rem !important;
    line-height: 1.2;
    letter-spacing: .1em !important;
    white-space: normal;
    text-align: center;
  }
  body.projects-page .project-status-badge { top: 14px !important; }
  body.projects-page .project-type-badge { top: 54px !important; }

  body.projects-page .project-detail-content {
    display: block !important;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    padding: 22px 18px 24px !important;
    justify-content: flex-start !important;
  }
  body.projects-page .project-meta-row {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px !important;
    margin: 0 0 20px !important;
  }
  body.projects-page .project-meta-item {
    width: auto;
    max-width: 100%;
    padding: 8px 11px !important;
    font-size: .7rem !important;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  body.projects-page .project-meta-item i { flex: 0 0 auto; }

  body.projects-page .project-detail-title {
    margin: 0 0 14px !important;
    font-size: clamp(1.75rem, 8.6vw, 2.15rem) !important;
    line-height: 1.08;
    text-wrap: balance;
  }
  body.projects-page .project-detail-desc {
    margin: 0 0 22px !important;
    font-size: .87rem;
    line-height: 1.68;
  }

  /* Two compact columns replace the oversized one-item-per-row blocks. */
  body.projects-page .project-detail-content .project-highlights {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin: 0 0 22px !important;
  }
  body.projects-page .project-detail-content .highlight-item {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    width: 100%;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 11px 10px !important;
    border: 1px solid var(--border) !important;
    border-left: 3px solid var(--accent) !important;
    border-radius: 12px !important;
    background: var(--white) !important;
    box-shadow: none !important;
    text-align: left !important;
  }
  body.projects-page .project-detail-content .highlight-item i {
    min-width: 18px !important;
    margin: 0 !important;
    font-size: .92rem !important;
    text-align: center;
  }
  body.projects-page .project-detail-content .highlight-item span {
    font-size: .76rem !important;
    line-height: 1.3;
    overflow-wrap: anywhere;
  }

  body.projects-page .project-detail-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;
    margin: 0 !important;
  }
  body.projects-page .project-detail-actions .btn {
    width: 100% !important;
    min-height: 50px;
    margin: 0 !important;
    padding: 12px 14px !important;
    justify-content: center;
    white-space: normal;
    text-align: center;
    font-size: .82rem;
    line-height: 1.3;
    border-radius: 12px;
  }

  /* Ensure the final CTA is fully visible above the sticky action bar. */
  body.projects-page .final-cta.section {
    padding-block: 42px !important;
  }
  body.projects-page .cta-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 22px !important;
    padding: 28px 20px !important;
  }
  body.projects-page .cta-title {
    margin-bottom: 12px;
    font-size: clamp(1.7rem, 8vw, 2.15rem);
    line-height: 1.1;
    text-wrap: balance;
  }
  body.projects-page .cta-desc {
    font-size: .86rem;
    line-height: 1.65;
  }
  body.projects-page .cta-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;
    width: 100%;
  }
  body.projects-page .cta-actions .btn {
    width: 100%;
    min-height: 50px;
    margin: 0 !important;
    padding: 12px 14px !important;
    justify-content: center;
    white-space: normal;
    text-align: center;
    font-size: .82rem;
    border-radius: 12px;
  }

  /* Keep utility controls clear of content and of one another. */
  body.projects-page .mobile-sticky-cta {
    padding: 6px 8px calc(6px + env(safe-area-inset-bottom)) !important;
    min-height: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom));
  }
  body.projects-page .sticky-cta-inner { gap: 6px; }
  body.projects-page .sticky-btn {
    min-height: 48px;
    padding: 7px 5px;
    flex-direction: row !important;
    justify-content: center;
    gap: 7px;
    border-radius: 12px;
    font-size: .66rem;
    line-height: 1;
  }
  body.projects-page .sticky-btn i { font-size: .9rem; }
  body.projects-page .floating-contact {
    right: 12px !important;
    bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom) + 10px) !important;
  }
  body.projects-page .floating-main-btn {
    width: 52px !important;
    height: 52px !important;
    font-size: 1rem !important;
  }
  body.projects-page .scroll-top {
    left: 12px !important;
    bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom) + 10px) !important;
    width: 48px !important;
    height: 48px !important;
  }
}

@media (max-width: 390px) {
  body.projects-page .page-title { font-size: 2.05rem; }
  body.projects-page .section-title { font-size: 1.82rem; }
  body.projects-page .project-detail-content { padding: 20px 16px 22px !important; }
  body.projects-page .project-detail-content .project-highlights {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  body.projects-page .project-detail-content .highlight-item { min-height: 52px !important; }
}


/* ========================================================================
   v1.5.7 — Estelle Woods page mobile repair
   Scope is limited to estelle-woods.html through body.estelle-page.
   Desktop at 769px and wider remains governed by the existing design.
   ======================================================================== */

body.estelle-page .hero-content,
body.estelle-page .quick-info-inner,
body.estelle-page .about-grid,
body.estelle-page .about-grid > *,
body.estelle-page .why-grid,
body.estelle-page .why-card,
body.estelle-page .amenities-grid,
body.estelle-page .amenity-card,
body.estelle-page .home-features-grid,
body.estelle-page .home-features-grid > *,
body.estelle-page .location-grid,
body.estelle-page .location-grid > *,
body.estelle-page .estelle-inquiry-grid,
body.estelle-page .estelle-inquiry-grid > *,
body.estelle-page .contact-form-card,
body.estelle-page .contact-form,
body.estelle-page .footer-grid,
body.estelle-page .footer-grid > * {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

body.estelle-page .home-features-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 64px;
  align-items: center;
}
body.estelle-page .home-features-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
body.estelle-page .home-feature-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  background: var(--bg);
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
}
body.estelle-page .home-feature-dot {
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  border-radius: 50%;
  background: var(--accent);
}
body.estelle-page .home-feature-text {
  min-width: 0;
  color: var(--text);
  font-size: .95rem;
  font-weight: 500;
}
body.estelle-page .home-features-note {
  margin-top: 24px;
  padding: 20px 24px;
  border: 1px solid rgba(201,164,92,.3);
  border-radius: var(--radius-md);
  background: rgba(201,164,92,.1);
}
body.estelle-page .home-features-note p {
  margin: 0;
  color: var(--text-muted);
  font-size: .875rem;
  font-style: italic;
}
body.estelle-page .home-features-image img {
  display: block;
  width: 100%;
  height: 520px;
  object-fit: cover;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
}
body.estelle-page .estelle-inquiry-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 64px;
  align-items: start;
}
body.estelle-page .estelle-contact-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 32px;
}
body.estelle-page .estelle-contact-item {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}
body.estelle-page .estelle-contact-item > div:last-child { min-width: 0; }
body.estelle-page .estelle-contact-item a,
body.estelle-page .estelle-contact-item span { overflow-wrap: anywhere; }

@media (max-width: 900px) {
  body.estelle-page .home-features-grid,
  body.estelle-page .estelle-inquiry-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 32px !important;
  }
}

@media (max-width: 768px) {
  html,
  body.estelle-page {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  body.estelle-page {
    --mobile-sticky-height: 64px;
    padding-bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom));
  }

  /* The navigation occupies its own row instead of covering page content. */
  body.estelle-page .header {
    position: sticky !important;
    inset: auto !important;
    top: 0 !important;
    width: 100%;
    padding: 6px 0 !important;
    background: #061a10 !important;
    border-bottom: 1px solid rgba(255,255,255,.1);
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    z-index: 1200;
  }
  body.estelle-page .header-inner { min-height: 56px; }
  body.estelle-page .header .logo img,
  body.estelle-page .header.scrolled .logo img {
    height: 44px !important;
    max-width: 142px !important;
  }
  body.estelle-page .hamburger {
    width: 42px;
    height: 42px;
    border-radius: 12px;
  }
  body.estelle-page section[id] { scroll-margin-top: 72px; }

  /* Compact hero with all calls to action inside the viewport width. */
  body.estelle-page .hero {
    height: auto !important;
    min-height: 570px !important;
    margin-top: 0 !important;
    padding: 42px 0 46px !important;
    align-items: center;
  }
  body.estelle-page .hero-bg { background-position: 56% center !important; }
  body.estelle-page .hero-content {
    width: 100%;
    max-width: 100%;
    padding-top: 0 !important;
  }
  body.estelle-page .hero-label {
    width: fit-content;
    max-width: 100%;
    margin-bottom: 16px;
    padding: 9px 12px;
    font-size: .68rem;
    line-height: 1.35;
    letter-spacing: .12em;
    white-space: normal;
  }
  body.estelle-page .hero-title {
    max-width: 100%;
    margin-bottom: 18px;
    font-size: clamp(2.25rem, 11vw, 2.9rem);
    line-height: 1.02;
    text-wrap: balance;
  }
  body.estelle-page .hero-subtitle {
    max-width: 100%;
    margin-bottom: 24px;
    font-size: .9rem;
    line-height: 1.65;
  }
  body.estelle-page .hero-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;
    width: 100%;
    margin-bottom: 0 !important;
  }
  body.estelle-page .hero-actions .btn {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px !important;
    justify-content: center;
    white-space: normal;
    text-align: center;
    font-size: .8rem;
    line-height: 1.3;
    border-radius: 12px;
  }
  body.estelle-page .hero-trust,
  body.estelle-page .hero-scroll { display: none !important; }

  /* Four facts become a compact two-by-two information grid. */
  body.estelle-page .quick-info-bar { padding-block: 0 !important; }
  body.estelle-page .quick-info-inner {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
    padding: 8px 0 !important;
  }
  body.estelle-page .quick-info-item {
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 82px;
    padding: 12px 10px !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--border);
  }
  body.estelle-page .quick-info-item:nth-last-child(-n+2) { border-bottom: 0; }
  body.estelle-page .qi-icon {
    width: 40px !important;
    height: 40px !important;
    font-size: .92rem !important;
  }
  body.estelle-page .qi-text h4 {
    margin-bottom: 3px;
    font-size: .63rem !important;
    line-height: 1.25;
    letter-spacing: .1em;
  }
  body.estelle-page .qi-text p {
    font-size: .72rem !important;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }

  body.estelle-page .section { padding-block: 46px !important; }
  body.estelle-page .section-header-center,
  body.estelle-page .amenities-header {
    max-width: 100%;
    margin-bottom: 28px !important;
  }
  body.estelle-page .section-label {
    font-size: .7rem;
    line-height: 1.35;
    letter-spacing: .16em;
  }
  body.estelle-page .section-title {
    max-width: 100%;
    margin-bottom: 14px;
    font-size: clamp(1.9rem, 9vw, 2.3rem);
    line-height: 1.08;
    text-wrap: balance;
  }
  body.estelle-page .section-desc,
  body.estelle-page .about-content > p,
  body.estelle-page .location-content > p,
  body.estelle-page .estelle-inquiry-copy > p {
    max-width: 100%;
    font-size: .87rem !important;
    line-height: 1.68 !important;
  }

  /* Overview: image, copy, facts and actions read as one mobile story. */
  body.estelle-page .estelle-overview .about-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
  }
  body.estelle-page .estelle-overview .about-image-wrap {
    width: 100%;
    max-width: 100%;
  }
  body.estelle-page .estelle-overview .about-img-main {
    display: block;
    width: 100%;
    height: 250px !important;
    min-height: 0 !important;
    object-fit: cover;
    object-position: center;
    border-radius: 18px;
  }
  body.estelle-page .estelle-overview .about-img-badge,
  body.estelle-page .estelle-overview .about-img-accent { display: none !important; }
  body.estelle-page .about-features {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin-top: 22px !important;
  }
  body.estelle-page .about-feature {
    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 9px !important;
    min-height: 74px;
    padding: 11px 10px !important;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--bg);
  }
  body.estelle-page .af-icon {
    width: 38px !important;
    height: 38px !important;
    font-size: .82rem !important;
  }
  body.estelle-page .af-text h5 {
    font-size: .72rem !important;
    line-height: 1.25;
  }
  body.estelle-page .af-text p {
    margin-top: 2px;
    font-size: .62rem !important;
    line-height: 1.3;
  }
  body.estelle-page .about-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;
    margin-top: 22px !important;
  }
  body.estelle-page .about-actions .btn {
    width: 100%;
    min-height: 50px;
    margin: 0 !important;
    padding: 12px 14px !important;
    justify-content: center;
    white-space: normal;
    font-size: .8rem;
    border-radius: 12px;
  }

  /* Selling-point cards use a compact icon-and-copy layout. */
  body.estelle-page .why-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }
  body.estelle-page .why-card {
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr) !important;
    grid-template-rows: auto auto;
    align-items: start;
    column-gap: 14px !important;
    row-gap: 5px !important;
    min-height: 0 !important;
    padding: 18px 16px !important;
    text-align: left !important;
    border-radius: 16px !important;
  }
  body.estelle-page .why-icon {
    grid-row: 1 / 3;
    width: 54px !important;
    height: 54px !important;
    margin: 0 !important;
    font-size: 1rem !important;
  }
  body.estelle-page .why-title {
    grid-column: 2;
    margin: 0 !important;
    font-size: .96rem !important;
    line-height: 1.3;
  }
  body.estelle-page .why-text {
    grid-column: 2;
    margin: 0 !important;
    font-size: .75rem !important;
    line-height: 1.55;
  }

  /* Amenities become compact two-column tiles instead of oversized rows. */
  body.estelle-page .amenities-section.section { padding-block: 46px !important; }
  body.estelle-page .amenities-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  body.estelle-page .amenity-card {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 105px !important;
    padding: 14px 10px !important;
    border-radius: 14px !important;
    text-align: center;
  }
  body.estelle-page .amenity-icon {
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    font-size: .9rem !important;
  }
  body.estelle-page .amenity-name {
    font-size: .72rem !important;
    line-height: 1.3;
    overflow-wrap: anywhere;
  }

  /* Home features stack cleanly; cards and photo are never side by side. */
  body.estelle-page .home-features-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
    align-items: start !important;
  }
  body.estelle-page .home-features-list { gap: 10px !important; }
  body.estelle-page .home-feature-item {
    min-height: 58px;
    gap: 12px !important;
    padding: 13px 14px !important;
    border-radius: 13px !important;
  }
  body.estelle-page .home-feature-text {
    font-size: .78rem !important;
    line-height: 1.45;
  }
  body.estelle-page .home-features-note {
    margin-top: 12px !important;
    padding: 15px 14px !important;
    border-radius: 13px !important;
  }
  body.estelle-page .home-features-note p {
    font-size: .73rem !important;
    line-height: 1.55;
  }
  body.estelle-page .home-features-image { order: -1; }
  body.estelle-page .home-features-image img {
    width: 100%;
    height: 250px !important;
    min-height: 0 !important;
    object-fit: cover;
    object-position: center;
    border-radius: 18px !important;
  }

  /* Nearby places and map use the full mobile width. */
  body.estelle-page .location-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
  }
  body.estelle-page .nearby-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    margin-top: 22px !important;
  }
  body.estelle-page .nearby-item {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 11px !important;
    min-height: 64px !important;
    padding: 11px 12px !important;
    border-radius: 13px !important;
  }
  body.estelle-page .nearby-icon {
    width: 42px !important;
    height: 42px !important;
    font-size: .85rem !important;
  }
  body.estelle-page .nearby-item span {
    min-width: 0;
    font-size: .78rem !important;
    line-height: 1.38;
    overflow-wrap: anywhere;
  }
  body.estelle-page .location-content > .btn {
    width: 100%;
    min-height: 50px;
    margin-top: 18px !important;
    padding: 12px 14px !important;
    justify-content: center;
    white-space: normal;
    font-size: .8rem;
    border-radius: 12px;
  }
  body.estelle-page .location-map-wrap,
  body.estelle-page .location-map-wrap iframe {
    width: 100%;
    height: 300px !important;
    min-height: 300px !important;
    border-radius: 16px !important;
  }

  /* Inquiry copy and form stack into one readable column. */
  body.estelle-page .estelle-inquiry-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
  }
  body.estelle-page .estelle-contact-list {
    gap: 10px !important;
    margin-top: 22px !important;
  }
  body.estelle-page .estelle-contact-item {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 11px !important;
    min-height: 64px;
    padding: 11px 12px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: var(--white);
  }
  body.estelle-page .estelle-contact-item > div:first-child {
    width: 42px !important;
    height: 42px !important;
    font-size: .85rem !important;
  }
  body.estelle-page .estelle-contact-item p { font-size: .67rem !important; }
  body.estelle-page .estelle-contact-item a,
  body.estelle-page .estelle-contact-item span {
    font-size: .78rem !important;
    line-height: 1.4;
  }
  body.estelle-page .contact-form-card {
    width: 100%;
    padding: 22px 17px !important;
    border-radius: 16px !important;
  }
  body.estelle-page .contact-form-card h3 {
    margin-bottom: 18px !important;
    font-size: 1.3rem !important;
    line-height: 1.2;
  }
  body.estelle-page .contact-form-card .form-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
  }
  body.estelle-page .contact-form-card .form-group { margin-bottom: 15px; }
  body.estelle-page .contact-form-card .form-control,
  body.estelle-page .contact-form-card input,
  body.estelle-page .contact-form-card select,
  body.estelle-page .contact-form-card textarea {
    width: 100%;
    max-width: 100%;
    min-height: 50px;
    font-size: 16px !important;
  }
  body.estelle-page .contact-form-card textarea { min-height: 120px; }
  body.estelle-page .contact-form-card .btn-block {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px !important;
    justify-content: center;
    white-space: normal;
    font-size: .8rem;
    border-radius: 12px;
  }

  /* Keep the final call-to-action and footer clear of the sticky controls. */
  body.estelle-page .final-cta.section { padding-block: 42px !important; }
  body.estelle-page .cta-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 22px !important;
    padding: 28px 20px !important;
  }
  body.estelle-page .cta-title {
    margin-bottom: 12px;
    font-size: clamp(1.7rem, 8vw, 2.12rem);
    line-height: 1.1;
    text-wrap: balance;
  }
  body.estelle-page .cta-desc {
    font-size: .84rem;
    line-height: 1.65;
  }
  body.estelle-page .cta-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;
    width: 100%;
  }
  body.estelle-page .cta-actions .btn {
    width: 100%;
    min-height: 50px;
    margin: 0 !important;
    padding: 12px 14px !important;
    justify-content: center;
    white-space: normal;
    text-align: center;
    font-size: .8rem;
    line-height: 1.3;
    border-radius: 12px;
  }
  /* Keep the Estelle Woods footer identical to the unified site footer. */
  body.estelle-page .footer .footer-logo img {
    display: block;
    width: 170px !important;
    max-width: 58vw !important;
    height: auto !important;
    object-fit: contain;
  }

  body.estelle-page .mobile-sticky-cta {
    padding: 6px 8px calc(6px + env(safe-area-inset-bottom)) !important;
    min-height: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom));
  }
  body.estelle-page .sticky-cta-inner { gap: 6px; }
  body.estelle-page .sticky-btn {
    min-height: 48px;
    padding: 7px 5px;
    flex-direction: row !important;
    justify-content: center;
    gap: 7px;
    border-radius: 12px;
    font-size: .66rem;
    line-height: 1;
  }
  body.estelle-page .sticky-btn i { font-size: .9rem; }
  body.estelle-page .floating-contact {
    right: 12px !important;
    bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom) + 10px) !important;
  }
  body.estelle-page .floating-main-btn {
    width: 52px !important;
    height: 52px !important;
    font-size: 1rem !important;
  }
  body.estelle-page .scroll-top {
    left: 12px !important;
    bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom) + 10px) !important;
    width: 48px !important;
    height: 48px !important;
  }
}

@media (max-width: 390px) {
  body.estelle-page .hero { min-height: 550px !important; }
  body.estelle-page .hero-title { font-size: 2.2rem; }
  body.estelle-page .section-title { font-size: 1.82rem; }
  body.estelle-page .quick-info-inner,
  body.estelle-page .about-features,
  body.estelle-page .amenities-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  body.estelle-page .quick-info-item,
  body.estelle-page .quick-info-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--border); }
  body.estelle-page .quick-info-item:last-child { border-bottom: 0; }
}

/* ==========================================================================
   v1.5.8 — Estelle Woods unified footer correction
   Keeps estelle-woods.html aligned with the footer used by all public pages.
   ========================================================================== */
@media (max-width: 768px) {
  body.estelle-page .footer {
    overflow: hidden;
  }

  body.estelle-page .footer .footer-top {
    padding: 42px 0 30px !important;
  }

  body.estelle-page .footer .footer-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 28px !important;
  }

  body.estelle-page .footer .footer-brand,
  body.estelle-page .footer .footer-col {
    grid-column: auto !important;
    width: 100%;
    min-width: 0;
  }

  body.estelle-page .footer .footer-logo img {
    width: 170px !important;
    max-width: 58vw !important;
    height: auto !important;
    margin: 0 !important;
  }

  body.estelle-page .footer .footer-brand > p {
    max-width: 100%;
    margin: 16px 0 0 !important;
    font-size: .86rem !important;
    line-height: 1.7 !important;
    overflow-wrap: anywhere;
  }

  body.estelle-page .footer .footer-social {
    margin-top: 20px !important;
  }

  body.estelle-page .footer .footer-col h4 {
    margin: 0 0 14px !important;
  }

  body.estelle-page .footer .footer-links {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px 14px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.estelle-page .footer .footer-links li {
    margin: 0 !important;
    min-width: 0;
  }

  body.estelle-page .footer .footer-links a,
  body.estelle-page .footer .footer-contact-list a,
  body.estelle-page .footer .footer-contact-list span {
    font-size: .84rem !important;
    line-height: 1.55 !important;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  body.estelle-page .footer .footer-contact-list {
    margin: 0 !important;
    padding: 0 !important;
  }

  body.estelle-page .footer .footer-contact-list li {
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 10px !important;
    margin-bottom: 14px !important;
  }

  body.estelle-page .footer .footer-bottom {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 20px 0 22px !important;
  }

  body.estelle-page .footer .footer-bottom p,
  body.estelle-page .footer .footer-bottom-links a {
    margin: 0 !important;
    font-size: .78rem !important;
    line-height: 1.5 !important;
  }

  body.estelle-page .footer .footer-bottom-links {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 8px 16px !important;
  }

  body.estelle-page.footer-in-view .floating-contact {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(8px) !important;
  }
}

@media (max-width: 390px) {
  body.estelle-page .footer .footer-links {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}



/* ==========================================================================
   v1.5.9 — Unit Availability mobile/tablet correction
   Scoped to unit-availability.html through body.unit-availability-page.
   ========================================================================== */
body.unit-availability-page .public-inventory-map-widget,
body.unit-availability-page .inventory-status-strip,
body.unit-availability-page .inventory-map-shell,
body.unit-availability-page .inventory-map-toolbar,
body.unit-availability-page .inventory-map-viewport,
body.unit-availability-page .inventory-map-footer,
body.unit-availability-page .inventory-map-public-note {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 1024px) {
  html,
  body.unit-availability-page {
    max-width: 100%;
    overflow-x: clip;
  }

  body.unit-availability-page .inventory-status-strip {
    width: 100%;
  }

  body.unit-availability-page .inventory-map-toolbar {
    width: 100%;
  }
}

@media (max-width: 768px) {
  body.unit-availability-page {
    --mobile-sticky-height: 64px;
    padding-bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom));
    background: #fff;
  }

  /* Give the header its own layout space instead of covering page content. */
  body.unit-availability-page .header {
    position: sticky !important;
    inset: auto !important;
    top: 0 !important;
    width: 100%;
    padding: 6px 0 !important;
    background: #061a10 !important;
    border-bottom: 1px solid rgba(255,255,255,.1);
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    z-index: 1200;
  }
  body.unit-availability-page .header-inner { min-height: 56px; }
  body.unit-availability-page .header .logo img,
  body.unit-availability-page .header.scrolled .logo img {
    height: 44px !important;
    max-width: 142px !important;
  }
  body.unit-availability-page .hamburger {
    width: 42px;
    height: 42px;
    border-radius: 12px;
  }

  /* Compact, readable hero with no hidden heading underneath the header. */
  body.unit-availability-page .unit-availability-hero {
    min-height: 0 !important;
    margin-top: 0 !important;
    padding: 44px 0 42px !important;
    background-position: center !important;
  }
  body.unit-availability-page .unit-availability-hero .hero-breadcrumb {
    margin-bottom: 24px !important;
    flex-wrap: wrap;
    gap: 9px;
    font-size: .76rem;
  }
  body.unit-availability-page .unit-availability-hero .section-label {
    margin-bottom: 13px !important;
  }
  body.unit-availability-page .unit-availability-hero h1 {
    max-width: 12ch;
    margin: 0 0 17px !important;
    font-size: clamp(2.15rem, 10vw, 2.85rem) !important;
    line-height: 1.02 !important;
    text-wrap: balance;
  }
  body.unit-availability-page .unit-availability-hero p {
    max-width: 38rem;
    margin: 0;
    font-size: .88rem !important;
    line-height: 1.7 !important;
  }

  body.unit-availability-page .availability-section {
    padding: 40px 0 42px !important;
    overflow: hidden;
  }
  body.unit-availability-page .availability-heading-row {
    margin-bottom: 16px !important;
  }
  body.unit-availability-page .availability-live-note {
    display: inline-flex;
    align-items: center;
    width: auto;
    max-width: 100%;
    padding: 8px 11px;
    border-radius: 999px;
    font-size: .75rem;
    line-height: 1.3;
    white-space: normal;
  }

  /* Replace the clipped horizontal legend with a clean two-by-two grid. */
  body.unit-availability-page .inventory-status-strip {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
    width: 100%;
    margin: 0 0 14px !important;
    padding: 0 !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
  }
  body.unit-availability-page .inventory-status-card {
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100%;
    min-width: 0 !important;
    min-height: 68px !important;
    padding: 11px 12px !important;
    border-radius: 14px !important;
    scroll-snap-align: none !important;
    text-align: left;
  }
  body.unit-availability-page .inventory-status-dot {
    width: 22px !important;
    height: 22px !important;
    flex: 0 0 22px !important;
  }
  body.unit-availability-page .inventory-status-card > span:last-child {
    display: grid;
    min-width: 0;
    gap: 2px;
  }
  body.unit-availability-page .inventory-status-card strong {
    font-size: 1rem !important;
    line-height: 1;
  }
  body.unit-availability-page .inventory-status-card span span {
    font-size: .66rem !important;
    line-height: 1.25;
    letter-spacing: .07em;
    white-space: normal;
  }

  /* Compact control panel: search, two filters, three tools, fullscreen. */
  body.unit-availability-page .inventory-map-shell {
    width: 100%;
    margin: 0 !important;
    padding: 11px !important;
    border-radius: 17px !important;
    overflow: hidden;
  }
  body.unit-availability-page .inventory-map-toolbar {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin-bottom: 11px !important;
    align-items: stretch !important;
  }
  body.unit-availability-page .inventory-map-toolbar .map-search {
    grid-column: 1 / -1 !important;
    width: 100%;
    min-width: 0 !important;
    min-height: 50px !important;
  }
  body.unit-availability-page .inventory-map-toolbar .map-search input {
    width: 100%;
    min-width: 0;
    min-height: 50px !important;
    padding-right: 12px;
    font-size: 16px !important;
    text-overflow: ellipsis;
  }
  body.unit-availability-page .inventory-map-toolbar select {
    grid-column: span 3;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    padding: 10px 34px 10px 12px !important;
    font-size: 16px !important;
  }
  body.unit-availability-page .inventory-map-toolbar [data-map-zoom-out],
  body.unit-availability-page .inventory-map-toolbar [data-map-zoom-in],
  body.unit-availability-page .inventory-map-toolbar [data-map-reset] {
    grid-column: span 2;
  }
  body.unit-availability-page .inventory-map-toolbar [data-map-fullscreen] {
    grid-column: 1 / -1;
  }
  body.unit-availability-page .map-tool-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    padding: 9px 8px !important;
    justify-content: center;
    gap: 7px;
    border-radius: 11px !important;
    font-size: .73rem !important;
    line-height: 1.2;
    white-space: normal;
  }
  body.unit-availability-page .map-tool-btn .tool-label {
    display: inline !important;
    font-size: inherit;
  }
  body.unit-availability-page .map-tool-btn i {
    flex: 0 0 auto;
    font-size: .8rem;
  }

  body.unit-availability-page .inventory-map-viewport {
    width: 100%;
    height: 360px !important;
    min-height: 360px !important;
    border-radius: 13px !important;
    overflow: hidden;
  }
  body.unit-availability-page .public-map-stage,
  body.unit-availability-page .public-map-stage img,
  body.unit-availability-page .public-map-stage svg {
    max-width: none;
  }
  body.unit-availability-page .inventory-map-message {
    left: 10px !important;
    right: 10px !important;
    bottom: 10px !important;
    max-width: none !important;
    padding: 12px 13px !important;
    border-radius: 12px !important;
    font-size: .76rem !important;
    line-height: 1.5 !important;
  }
  body.unit-availability-page .map-loader-card {
    max-width: calc(100% - 24px);
    padding: 16px 18px;
    font-size: .78rem;
  }

  body.unit-availability-page .inventory-map-footer {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    padding: 14px 2px 1px !important;
  }
  body.unit-availability-page .inventory-map-footer > p {
    margin: 0 !important;
    font-size: .77rem !important;
    line-height: 1.45;
  }
  body.unit-availability-page .inventory-map-footer-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100%;
  }
  body.unit-availability-page .inventory-map-footer-actions .btn {
    width: 100%;
    min-width: 0;
    min-height: 50px;
    margin: 0 !important;
    padding: 12px 14px !important;
    justify-content: center;
    white-space: normal;
    text-align: center;
    font-size: .79rem;
    line-height: 1.3;
    border-radius: 12px;
  }

  body.unit-availability-page .inventory-map-public-note {
    margin: 16px 0 0 !important;
    padding: 16px !important;
    border-radius: 14px !important;
    font-size: .77rem !important;
    line-height: 1.58 !important;
    overflow-wrap: anywhere;
  }

  /* Keep the unit page footer identical to the site's compact unified footer. */
  body.unit-availability-page .footer {
    overflow: hidden;
  }
  body.unit-availability-page .footer .footer-top {
    padding: 40px 0 28px !important;
  }
  body.unit-availability-page .footer .footer-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 26px !important;
  }
  body.unit-availability-page .footer .footer-brand,
  body.unit-availability-page .footer .footer-col {
    grid-column: auto !important;
    width: 100%;
    min-width: 0;
  }
  body.unit-availability-page .footer .footer-logo img {
    display: block;
    width: 160px !important;
    max-width: 54vw !important;
    height: auto !important;
    margin: 0 !important;
    object-fit: contain;
  }
  body.unit-availability-page .footer .footer-brand > p {
    max-width: 100%;
    margin: 15px 0 0 !important;
    font-size: .83rem !important;
    line-height: 1.68 !important;
    overflow-wrap: anywhere;
  }
  body.unit-availability-page .footer .footer-social {
    margin-top: 18px !important;
  }
  body.unit-availability-page .footer .footer-col h4 {
    margin: 0 0 13px !important;
  }
  body.unit-availability-page .footer .footer-links {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px 13px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body.unit-availability-page .footer .footer-links li {
    min-width: 0;
    margin: 0 !important;
  }
  body.unit-availability-page .footer .footer-links a,
  body.unit-availability-page .footer .footer-contact-list a,
  body.unit-availability-page .footer .footer-contact-list span {
    font-size: .82rem !important;
    line-height: 1.52 !important;
    overflow-wrap: anywhere;
  }
  body.unit-availability-page .footer .footer-contact-list li {
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 10px !important;
    margin-bottom: 13px !important;
  }
  body.unit-availability-page .footer .footer-bottom {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 11px !important;
    padding: 19px 0 21px !important;
  }
  body.unit-availability-page .footer .footer-bottom p,
  body.unit-availability-page .footer .footer-bottom-links a {
    margin: 0 !important;
    font-size: .76rem !important;
    line-height: 1.5 !important;
  }
  body.unit-availability-page .footer .footer-bottom-links {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 8px 15px !important;
  }

  body.unit-availability-page .mobile-sticky-cta {
    padding: 6px 8px calc(6px + env(safe-area-inset-bottom)) !important;
    min-height: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom));
  }
  body.unit-availability-page .sticky-cta-inner { gap: 6px; }
  body.unit-availability-page .sticky-btn {
    min-height: 48px;
    padding: 7px 5px;
    flex-direction: row !important;
    justify-content: center;
    gap: 7px;
    border-radius: 12px;
    font-size: .66rem;
    line-height: 1;
  }
  body.unit-availability-page .sticky-btn i { font-size: .9rem; }
  body.unit-availability-page .floating-contact {
    right: 12px !important;
    bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom) + 10px) !important;
  }
  body.unit-availability-page .floating-main-btn {
    width: 52px !important;
    height: 52px !important;
    font-size: 1rem !important;
  }
  body.unit-availability-page .scroll-top {
    left: 12px !important;
    bottom: calc(var(--mobile-sticky-height) + env(safe-area-inset-bottom) + 10px) !important;
    width: 48px !important;
    height: 48px !important;
  }
  body.unit-availability-page.footer-in-view .floating-contact {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(8px) !important;
  }
}

@media (max-width: 390px) {
  body.unit-availability-page .inventory-map-toolbar select {
    grid-column: 1 / -1;
  }
  body.unit-availability-page .inventory-map-toolbar [data-map-zoom-out],
  body.unit-availability-page .inventory-map-toolbar [data-map-zoom-in],
  body.unit-availability-page .inventory-map-toolbar [data-map-reset] {
    grid-column: span 2;
  }
  body.unit-availability-page .inventory-map-viewport {
    height: 330px !important;
    min-height: 330px !important;
  }
  body.unit-availability-page .inventory-status-card {
    min-height: 64px !important;
    padding: 10px !important;
  }
  body.unit-availability-page .footer .footer-links {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}
