/* Shared responsive overrides. Loaded after page styles to preserve desktop layouts. */
.site-header .vh-mobile-nav-toggle { display: none; }
@media (max-width: 1100px) {
  .site-header { height: 88px; padding: 12px 24px; grid-template-columns: 1fr auto; align-items: center; }
  .site-header .header-logo { grid-column: 1; grid-row: 1; justify-self: start; padding: 0; }
  .site-header .header-logo img { height: 60px; max-height: 60px; width: auto; }
  .site-header .header-nav-left, .site-header .header-right-col { display: none; }
  .site-header .vh-mobile-nav-toggle { display: flex !important; grid-column: 2; grid-row: 1; align-items: center; justify-content: center; width: 48px; height: 48px; border: 1px solid rgba(194,155,107,.4); background: transparent; color: white; cursor: pointer; }
  .site-header.nav-open { height: auto; max-height: 100vh; max-height: 100dvh; overflow-y: auto; background: #0b1220; transform: none; align-content: start; }
  .site-header.nav-open .header-nav-left, .site-header.nav-open .header-right-col { display: flex; position: static; grid-column: 1 / -1; flex-direction: column; align-items: stretch; padding: 12px 0; margin: 0; gap: 0; background: transparent; border: 0; }
  .site-header.nav-open .header-nav-left { grid-row: 2; }
  .site-header.nav-open .header-right-col { grid-row: 3; }
  .site-header.nav-open .header-nav-right { flex-direction: column; align-items: stretch; padding: 0; margin: 0; }
  .site-header.nav-open li { padding: 0; list-style: none; }
  .site-header.nav-open a:not(.header-logo), .site-header.nav-open button:not(.vh-mobile-nav-toggle) { min-height: 44px; display: flex; align-items: center; white-space: normal; }
  .site-header.nav-open .header-utility { flex-direction: row; flex-wrap: wrap; gap: 20px; margin: 0 0 12px; }
  .site-header.nav-open .header-util-btn { color: rgba(255,255,255,.8); }
  .site-footer { padding: 64px 32px 96px; }
  .footer-main { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; }
  .footer-main > * { min-width: 0; overflow-wrap: anywhere; }
  .footer-bottom { flex-wrap: wrap; gap: 24px; }
  .footer-legal-links { justify-content: flex-start; }
}
@media (max-width: 767px) {
  .site-header { padding-inline: 20px; }
  input:not([type='checkbox']):not([type='radio']), select, textarea { font-size: 16px; max-width: 100%; }
  .site-footer { padding: 56px 20px 100px; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; padding-bottom: 40px; }
  .footer-main > :first-child, .footer-brands-col { grid-column: 1 / -1; }
  .footer-logo { max-width: 100%; object-fit: contain; object-position: left; }
  .footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
  .footer-links { gap: 4px; }
  .footer-legal-links { gap: 8px 20px; }
  .footer-legal-links a { white-space: normal; min-height: 44px; display: flex; align-items: center; }
  .footer-social-link { width: 44px; height: 44px; }
  .pref-modal, .partner-modal, .join-modal, .ps-modal { box-sizing: border-box; width: calc(100% - 32px); max-width: 480px; max-height: calc(100dvh - 32px); overflow-y: auto; padding: 48px 24px 28px; }
  .info-panel { box-sizing: border-box; width: 100%; height: 100dvh; padding: 80px 24px 32px; justify-content: flex-start; }
  .ps-input-row, .section-split { grid-template-columns: minmax(0, 1fr); }
  .split-text, .split-text.right-pad { padding: 56px 24px; }
  .split-image { min-height: 300px; }
  .results-layout.map-hidden .prop-grid, .results-layout:not(.map-hidden) .prop-grid { grid-template-columns: minmax(0, 1fr); }
  .filters-drawer { width: 100%; max-width: 100%; height: 100dvh; }
  .filters-drawer:not(.open) { visibility: hidden; }
  .fd-check-grid, .fd-check-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vh-hero__field { min-width: 0; }
  .vh-hero__bar { padding-bottom: 36px; }
  .vh-hero { margin-top: -72px; }
  .vh-loc__panel { min-width: 0; max-width: calc(100vw - 40px); }
  .fb-inner, .filter-bar-inner { flex-wrap: wrap; }
}
/* Home page: stacked editorial sections and always-visible touch actions. */
@media (max-width: 900px) {
  .home-page .hero { height: auto; min-height: 100svh; padding: 140px 0 72px; }
  .home-page .hero-content { grid-template-columns: minmax(0, 1fr); gap: 36px; padding: 0 24px; }
  .home-page .hero-right { text-align: left; align-items: flex-start; }
  .home-page .hero-stats { flex-wrap: wrap; gap: 24px; }
  .home-page .hero-ctas { flex-wrap: wrap; }
  .home-page .hero-subline { margin: 24px 0; }
  .home-page .hero-scroll-indicator { display: none; }
  .home-page .properties-section, .home-page .about-section, .home-page .testimonials-section, .home-page .insights-section, .home-page .brand-statement, .home-page .private-search-section, .home-page .lf-trigger-section { padding: 64px 24px; }
  .home-page .about-section { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .home-page .services-header, .home-page .properties-header, .home-page .insights-header { flex-direction: column; align-items: flex-start; gap: 24px; }
  .home-page .services-header { padding: 0 24px 40px; }
  .home-page .services-accordion { height: auto; flex-direction: column; }
  .home-page .service-panel, .home-page .service-panel:hover, .home-page .service-panel.active { flex: auto; }
  .home-page .service-panel-content { padding: 40px 24px; }
  .home-page .service-panel-title { white-space: normal; }
  .home-page .service-panel-desc, .home-page .service-panel-cta { opacity: 1; transform: none; }
  .home-page .properties-grid, .home-page .insights-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .home-page .property-card:first-child { grid-column: auto; aspect-ratio: 3 / 4; }
  .home-page .lf-trigger-pillars { flex-wrap: wrap; }
  .home-page .globe-section { height: auto; min-height: 0; padding: 56px 24px 400px; }
  .home-page .globe-left { position: relative; top: auto; left: auto; max-width: none; transform: none; animation: none; opacity: 1; }
  .home-page .home-globe-container { top: auto; bottom: 0; width: 100%; height: 400px; }
  .home-page .home-globe-overlay { background: linear-gradient(to bottom, #080c16 0%, transparent 80%); }
  .home-page .home-network-status { bottom: 20px; right: 24px; padding: 12px; }
  .home-page .sticky-bar { max-width: calc(100% - 24px); bottom: max(12px, env(safe-area-inset-bottom)); }
  .home-page .sticky-bar-item { padding: 0 12px; font-size: 9px; letter-spacing: .08em; white-space: normal; }
}
@media (max-width: 480px) {
  .home-page .hero-headline { font-size: 38px; }
  .home-page .hero-ctas > * { width: 100%; justify-content: center; }
  .home-page .about-differentiators { grid-template-columns: minmax(0, 1fr); }
  .home-page .diff-item { padding: 28px 24px; }
  .home-page .destination-card { flex-basis: calc(100vw - 48px); }
  .home-page .ps-options { grid-template-columns: minmax(0, 1fr); }
  .home-page .lf-trigger-btn { padding: 18px 24px; width: 100%; }
  .home-page .globe-stat { padding-right: 20px; margin-right: 20px; }
}
/* Entry screen must work without hover and allow natural vertical scrolling. */
@media (max-width: 1024px) {
  html:has(.fullscreen-wrapper), body:has(.fullscreen-wrapper) { height: auto; overflow: auto; }
  body:has(.fullscreen-wrapper) .logo-container { position: absolute; top: 20px; left: 24px; }
  body:has(.fullscreen-wrapper) .main-logo { height: 56px; }
  .fullscreen-wrapper { height: auto; padding-top: 100px; }
  .fullscreen-wrapper .category-section, .fullscreen-wrapper .category-section:hover { flex: auto; height: auto; min-height: 0; }
  .fullscreen-wrapper .category-overlay { padding: 40px 24px; gap: 24px; }
  .fullscreen-wrapper .category-overlay > div { position: static; width: 100%; transform: none; opacity: 1; pointer-events: auto; }
  .fullscreen-wrapper .category-section:hover .content-collapsed, .fullscreen-wrapper .category-section:hover .content-expanded { transform: none; }
  .fullscreen-wrapper .category-subtitle { opacity: 1; }
}

@media (max-width: 767px) {
  .section-intro { padding: 156px 24px 64px; }
  .vision-title { overflow-wrap: break-word; }
}
@media (max-width: 767px) {
  .article-meta-inner { height: auto; min-height: 60px; flex-wrap: wrap; gap: 16px; padding-block: 16px; }
  .article-share { flex-wrap: wrap; gap: 8px; min-width: 0; }
  .filter-group { flex-wrap: wrap; }
  .newsletter-text, .newsletter-form { min-width: 0; width: 100%; }
  .newsletter-fields { flex-wrap: wrap; }
  .newsletter-fields input { min-width: 0; flex-basis: 100%; }
  .newsletter-btn { width: 100%; min-height: 44px; }
}
@media (max-width: 1100px) {
  .site-header:has(.header-nav) { display: grid; }
  .site-header .header-nav { display: none; }
  .site-header.nav-open .header-nav { display: flex; grid-column: 1 / -1; flex-direction: column; align-items: stretch; gap: 8px; }
}
@media (max-width: 767px) {
  .article-table-scroll { max-width: 100%; overflow-x: auto; }
  .newsletter-fields input { border-right: 1px solid rgba(194,155,107,.45); }
}
