/* EASY HOME: one visual system, from discovery to the account workspace.
   Gold is an accent, black is the primary action, silver gives content room.
   Existing floor-plan geometry, data and application behavior are unchanged. */
:root {
  --eh-font: 'DM Sans', 'Noto Sans Tamil', 'Noto Sans Kannada', 'Noto Sans Telugu', 'Noto Sans Malayalam', system-ui, sans-serif;
  --eh-ink: #1d1d1f;
  --eh-black: #161617;
  --eh-muted: #626268;
  --eh-silver: #f5f5f7;
  --eh-surface: #ffffff;
  --eh-line: #dedee3;
  --eh-gold: #b58a3c;
  --eh-gold-text: #816121;
  --eh-gold-soft: #f8f3e8;
  --eh-radius: 20px;
  --eh-shadow: 0 12px 36px #1d1d1f08;
  --eh-ease: cubic-bezier(.2, .75, .25, 1);
  --ink: var(--eh-ink);
  --navy: var(--eh-black);
  --gold: var(--eh-gold);
  --cream: var(--eh-silver);
  --muted: var(--eh-muted);
  --line: var(--eh-line);
  color-scheme: light;
}
body { background: var(--eh-surface); color: var(--eh-ink); font: 400 15px/1.65 var(--eh-font); -webkit-font-smoothing: antialiased; }
body, button, input, textarea, select { font-family: var(--eh-font); }
h1, h2, h3, h4, .type, .price, .plan-head > span, .selection-label, .stats strong, .structure-grid strong, .room-photo > span, .room-gallery-card figcaption strong, .masterplan-card h3, .portal-panel h3, .admin-kpis strong, .booking-summary-cards strong, .directory-monogram, .hero-art-label strong, .tagline-english { font-family: var(--eh-font) !important; }
h1, h2, h3, h4 { color: var(--eh-ink); }
h2, .section-heading h2, .intro h2, .selection h2, .how h2, .support h2, .location h2 { color: var(--eh-ink); font-size: clamp(32px, 3.6vw, 48px); line-height: 1.12; letter-spacing: -.04em; font-weight: 600; }
h2 em { color: var(--eh-gold-text); }
h3 { letter-spacing: -.025em; }
p { text-wrap: pretty; }
[hidden] { display: none !important; }
::selection { background: #e8d5ac; color: #161617; }
:focus-visible { outline: 3px solid var(--eh-gold-text); outline-offset: 4px; }
.button:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible { outline-color: var(--eh-gold-text); }
.skip-link { position: fixed; z-index: 100; top: 8px; left: 16px; padding: 12px 20px; background: #fff; color: var(--eh-ink); border-radius: 12px; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.section { padding: clamp(64px, 7vw, 100px) max(24px, calc((100vw - 1160px) / 2)); scroll-margin-top: 92px; }
section[id] { scroll-margin-top: 92px; }
.section-heading, .selection-header { gap: 30px; margin-bottom: 36px; }
.section-heading > p, .intro-copy p, .selection-intro { color: var(--eh-muted); font-size: 15px; line-height: 1.7; max-width: 490px; }
.eyebrow { color: var(--eh-gold-text); font-size: 11px; font-weight: 600; letter-spacing: .11em; margin-bottom: 14px; }
.announcement { display: flex; background: var(--eh-silver); color: var(--eh-muted); font-size: 11px; letter-spacing: 0; padding: 7px 20px; }
.header { height: 76px; gap: 20px; padding-inline: max(24px, calc((100vw - 1160px) / 2)); background: #ffffffed; backdrop-filter: blur(18px); border-color: #e6e6ea; }
.brand img { width: 44px; height: 44px; filter: none; }
.brand strong { font-size: 12px; color: var(--eh-ink); letter-spacing: .1em; }
.brand small { font-size: 10px; color: var(--eh-muted); }
.nav a, .header-login, .header-language-trigger { color: var(--eh-ink); font-size: 12px; }
.nav a:hover, .nav a:focus-visible, .nav a[aria-expanded='true'], .header-login:hover, .header-language-trigger:hover { color: var(--eh-gold-text); transform: none; }
.nav a::after { background: var(--eh-gold); height: 1px; }
.header-find-home, .button { min-height: 46px; padding: 13px 23px; border: 1px solid var(--eh-black); border-radius: 999px; background: var(--eh-black); background-image: none; color: #fff; font: 500 13px/1.4 var(--eh-font); text-transform: none; letter-spacing: 0; box-shadow: none; gap: 14px; transition: background .2s ease, border-color .2s ease, transform .2s var(--eh-ease); }
.button:hover, .button:focus-visible, .header-find-home:hover, .header-find-home:focus-visible { background: #363638; background-image: none; border-color: #363638; color: #fff; box-shadow: none; transform: translateY(-1px); }
.button:active, .header-find-home:active { transform: scale(.985); }
.button span, .button .has-ui-icon { color: inherit; }
.button-small { min-height: 42px; padding: 11px 17px; font-size: 12px; }
.button:disabled { opacity: .45; transform: none; }
.text-link, .card-link, .hero-secondary-link { color: var(--eh-gold-text); font-size: 13px; font-weight: 500; text-decoration: none; }
.text-link:hover, .card-link:hover, .hero-secondary-link:hover { color: var(--eh-ink); text-decoration: underline; text-underline-offset: 4px; }
.text-link span { color: inherit; }
.header-premium-panel, .mega-menu-panel { background: #fffffff7; color: var(--eh-ink); box-shadow: 0 25px 40px #16161712; border-color: var(--eh-line); }
.mega-menu-inner { max-width: 1160px; }
.mega-menu-heading h2, .header-premium-panel h2 { font-family: var(--eh-font); font-size: 26px; letter-spacing: -.03em; }
.mega-menu-heading p, .header-premium-panel p, .header-premium-links small { color: var(--eh-muted); }
.mega-menu-kicker, .mega-menu-links h3, .header-premium-links h3 { color: var(--eh-gold-text); }
.mega-menu-links a, .header-premium-links > a { color: var(--eh-ink); }
.mega-menu-links a:hover, .mega-menu-links a:focus-visible, .header-premium-links > a:hover, .header-premium-links > a:focus-visible { color: var(--eh-gold-text); background: var(--eh-gold-soft); }
.mega-menu-feature { border-radius: 16px; background: var(--eh-silver); }
.mega-menu-feature > span, .mega-menu-feature strong { color: #fff; }
.mega-menu-feature em, .mega-menu-feature small { color: #f3dfb6; }
.header-premium-link-icon { color: var(--eh-gold-text); }
.header-premium-note, .mega-menu-empty { background: var(--eh-silver); color: var(--eh-muted); border-color: var(--eh-line); }
.header-premium-language-grid button { border-radius: 10px; color: var(--eh-ink); border-color: var(--eh-line); }
.header-premium-language-grid button:hover, .header-premium-language-grid button:focus-visible, .header-premium-language-grid button[aria-pressed='true'] { color: var(--eh-gold-text); background: var(--eh-gold-soft); border-color: var(--eh-gold); }

.nav-item > a:hover, .nav-item > a:focus-visible, .nav-item > a[aria-expanded='true'],
.mega-menu-group .mega-menu-links > a:hover, .mega-menu-group .mega-menu-links > a:focus-visible { color: var(--eh-gold-text); }
.mega-menu-group .mega-menu-links > a:hover, .mega-menu-group .mega-menu-links > a:focus-visible { background: var(--eh-gold-soft); }
.mega-bhk-filters button:hover, .mega-bhk-filters button:focus-visible { border-color: var(--eh-gold-text); background: var(--eh-gold-soft); color: var(--eh-gold-text); }
.mega-menu-search input:focus { border-color: var(--eh-gold-text); outline-color: var(--eh-gold-text); }
.header-login:focus-visible, .header-language-trigger:hover, .header-language-trigger:focus-visible, .header-language-trigger[aria-expanded='true'] { color: var(--eh-gold-text); }
.header-login:focus-visible, .header-language-trigger:focus-visible, .header-find-home:focus-visible,
.site-footer a:focus-visible, .site-footer button:focus-visible, .site-footer summary:focus-visible { outline: 2px solid var(--eh-gold-text); outline-offset: 4px; }
.mega-menu-group h3, .header-premium-links > h3 { color: var(--eh-gold-text); }
.booking-records-heading h3, .directory-panel-heading h3 { color: var(--eh-ink); }
.masterplan-card > p:not(.eyebrow), .masterplan-legend span,
.media-placeholder > div:last-child > p:not(.eyebrow), .media-centre .section-heading > p { color: var(--eh-muted); }
.compare-table thead th, .compare-table tbody th { background: var(--eh-silver); color: var(--eh-ink); }
.compare-remove { color: var(--eh-gold-text); }
.terms-copy { background: var(--eh-silver); color: var(--eh-ink); border-color: var(--eh-line); border-radius: 12px; font-size: 13px; line-height: 1.7; }
.agree { color: var(--eh-ink); font-size: 12px; line-height: 1.6; }
.ui-toast { background: var(--eh-black); color: #fff; border: 1px solid #ffffff26; border-radius: 12px; box-shadow: var(--eh-shadow); }

/* A clear opening: original tower artwork, no heavy overlay or obscured model. */
.hero-redesign { display: grid; grid-template-columns: .9fr 1.1fr; grid-template-rows: 1fr; align-items: center; gap: clamp(28px, 5vw, 76px); min-height: clamp(600px, calc(100svh - 108px), 820px); height: auto; padding: 28px max(24px, calc((100vw - 1160px) / 2)) 50px; background: #fff; color: var(--eh-ink); }
.hero-redesign .hero-content { grid-column: 1; grid-row: 1; max-width: 510px; padding: 0; background: none; color: var(--eh-ink); }
.hero-redesign .hero-art { position: relative; grid-column: 2; grid-row: 1; inset: auto; width: 100%; height: 100%; min-height: 0; border-radius: 24px; overflow: hidden; background: #ececf0; }
.hero-redesign .hero-art img { width: 100%; height: 100%; object-fit: cover; object-position: center center; filter: none; }
.hero-redesign .art-overlay { display: none; }
.hero-redesign .eyebrow { display: flex; border: 0; border-radius: 0; padding: 0; background: none; color: var(--eh-gold-text); font-size: 10px; letter-spacing: .1em; margin-bottom: 22px; }
.hero-eyebrow-mark { color: var(--eh-gold-text); }
.hero-redesign h1 { color: var(--eh-ink); font-size: clamp(42px, 4.9vw, 66px); font-weight: 600; line-height: 1.04; letter-spacing: -.055em; }
.hero-redesign h1 em { color: var(--eh-gold-text); }
.hero-redesign .hero-copy { color: var(--eh-muted); font-size: 16px; line-height: 1.7; margin: 24px 0 25px; max-width: 430px; }
.hero-redesign .hero-actions { flex-wrap: wrap; gap: 14px 20px; }
.hero-redesign .hero-actions .button { min-height: 48px; }
.hero-secondary-link, .hero-secondary-link span { color: var(--eh-gold-text); font-size: 13px; }
.hero-redesign .hero-trust { display: flex; flex-wrap: wrap; margin-top: 30px; gap: 18px; color: var(--eh-muted); }
.hero-redesign .hero-trust span { display: grid; gap: 2px; padding: 0; border: 0; font-size: 11px; line-height: 1.5; }
.hero-redesign .hero-trust strong { color: var(--eh-ink); font: 600 23px/1.2 var(--eh-font); }
.hero-scroll-cue { display: none; }
.hero-art-label { position: absolute; z-index: 2; left: auto; right: max(42px, calc((100vw - 1124px) / 2)); bottom: 68px; max-width: 310px; padding: 12px 16px; border-radius: 12px; background: #171719ce; color: #fff; text-shadow: none; text-align: left; backdrop-filter: blur(10px); }
.hero-art-label span { font-size: 9px; color: #e7cd96; letter-spacing: .1em; }
.hero-art-label strong { color: #fff; font-size: 14px; letter-spacing: -.015em; }
.hero-art-label small { color: #e2e2e7; font-size: 10px; }
.hero-optional-swipe { margin-top: 20px; }
.hero-optional-swipe .swipe-action { width: 350px; max-width: 100%; min-height: 56px; }
.hero-gesture { margin-top: 16px; }
.hero-gesture-label { display: block; margin-bottom: 7px; color: var(--eh-muted); font-size: 10px; }
.hero-gesture .swipe-action { max-width: 350px; min-height: 56px; }
.swipe-action, .gallery-toolbar .swipe-action { border-color: var(--eh-line); background: var(--eh-silver); color: var(--eh-ink); box-shadow: none; }
.swipe-action-copy strong, .gallery-toolbar .swipe-action-copy strong { color: var(--eh-ink); font-size: 12px; }
.swipe-action-copy small { color: var(--eh-muted); font-size: 10px; }
.swipe-action-track { border-color: #d1c7b5; background: #ebe6dc; }
.swipe-action-track::after { color: var(--eh-gold-text); }
.swipe-action-thumb { background: var(--eh-black); color: #f0d7a6; box-shadow: none; border: 0; }
.swipe-action.is-complete { background: #edf4ee; border-color: #79947c; }
.home-journey { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 24px max(24px, calc((100vw - 1160px) / 2)) 40px; background: #fff; }
.home-journey a { display: flex; align-items: center; gap: 12px; padding: 21px 17px; border: 1px solid var(--eh-line); border-radius: 16px; color: var(--eh-ink); text-decoration: none; transition: background .2s, border-color .2s; }
.home-journey a:hover { background: var(--eh-silver); border-color: #b9b9c1; }
.journey-number { color: var(--eh-gold-text); font-size: 11px; }
.home-journey strong, .home-journey small { display: block; }
.home-journey strong { font-size: 13px; font-weight: 600; line-height: 1.4; }
.home-journey small { color: var(--eh-muted); font-size: 11px; margin-top: 4px; }
.journey-arrow { margin-left: auto; color: var(--eh-gold-text); }

/* Shared editorial hierarchy and restrained surfaces. */
.stats { padding: 28px max(24px, calc((100vw - 1160px) / 2)); background: var(--eh-silver); color: var(--eh-ink); }
.stats strong { font-size: 40px; color: var(--eh-ink); font-weight: 600; letter-spacing: -.045em; }
.stats span { color: var(--eh-muted); font-size: 12px; }
.stats div { border-color: var(--eh-line); }
.project-structure, .floor-plans, .selection, .image-library, .master-plan, .location, .partners, .booking-insights, .admin-preview { background: var(--eh-silver); color: var(--eh-ink); }
.intro, .explorer, .apartments, .gallery, .dashboard, .faq, .support, .media-centre { background: #fff; color: var(--eh-ink); }
.project-structure .section-heading > p { color: var(--eh-muted); }
.structure-grid { gap: 16px; }
.structure-grid article { background: #fff; border: 1px solid var(--eh-line); border-radius: var(--eh-radius); padding: 25px; }
.structure-grid article > span { color: var(--eh-gold-text); font-size: 10px; letter-spacing: .08em; }
.structure-grid strong { color: var(--eh-ink); font-size: 36px; font-weight: 600; letter-spacing: -.04em; }
.structure-grid article p, .structure-footnote small { color: var(--eh-muted); font-size: 12px; }
.structure-footnote { color: var(--eh-gold-text); border-color: var(--eh-line); font-size: 10px; }
.tagline-english { font-size: 22px; font-style: normal; color: var(--eh-ink); line-height: 1.5; letter-spacing: -.025em; }
.explorer-board, .explorer-board[data-scene='night'] { background: var(--eh-black); border-radius: var(--eh-radius); color: #f5f5f7; }
.explorer-board[data-scene='day'] { background: #232325; }
.explorer-details { background: transparent; }
.explorer-details h3 { color: #fff; font-size: 28px; }
.explorer-details p, .explorer-disclaimer { color: #bfbfc5; font-size: 12px; }
.toolbar-label, .floor-range-label, .explorer-details .eyebrow { color: #ddc18a; }
.explorer-flat { background: #ffffff0d; color: #eeeef2; border-color: #ffffff25; }
.explorer-toggle, .section-switcher button { border-radius: 8px; color: #fff; }
.explorer-toggle:hover, .explorer-toggle[aria-pressed='true'], .section-switcher button[aria-pressed='true'] { background: #d1b477; color: var(--eh-black); border-color: #d1b477; }
.tower-floor { min-height: 0; height: auto; font-size: 0; }
.apartment-grid { gap: 16px; }
.apartment-card, .apartment-card:nth-child(even) { background: var(--eh-silver); color: var(--eh-ink); border: 1px solid #e8e8ed; border-radius: var(--eh-radius); box-shadow: none; padding: 26px 23px; }
.apartment-card:hover { box-shadow: var(--eh-shadow); transform: translateY(-3px); }
.apartment-card .type { color: var(--eh-ink); font-size: 29px; font-weight: 600; letter-spacing: -.04em; }
.apartment-card > p { color: var(--eh-muted); font-size: 12px; line-height: 1.65; }
.apartment-card .price { color: var(--eh-ink); font-size: 29px; font-weight: 600; letter-spacing: -.03em; }
.apartment-card .price small, .apartment-card .area { color: var(--eh-muted); font-size: 12px; font-weight: 400; }
.card-link { margin-top: 22px; }
.apartment-tools button { color: var(--eh-muted); border-color: var(--eh-line); background: #fff; border-radius: 999px; font-size: 11px; }
.apartment-tools button[aria-pressed='true'] { color: var(--eh-gold-text); background: var(--eh-gold-soft); border-color: var(--eh-gold); }
.compare-panel, .plan-card, .selection-panel, .location-card, .partner-empty, .portal-panel, .admin-panel, .dashboard-booking { border: 1px solid var(--eh-line); border-radius: var(--eh-radius); background: #fff; color: var(--eh-ink); box-shadow: none; }
.compare-heading h3 { font-size: 28px; }
.compare-heading p, .compare-empty, .favorite-strip small, .compare-table { color: var(--eh-muted); font-size: 12px; }
.compare-table th { background: var(--eh-silver); color: var(--eh-ink); }
.compare-table td, .compare-table th { border-color: var(--eh-line); }
.favorite-chip { background: var(--eh-silver); color: var(--eh-ink); border-color: var(--eh-line); border-radius: 999px; }
.plan-card { padding: 24px; }
.plan-head > span { color: var(--eh-ink); font-size: 20px; font-weight: 600; letter-spacing: -.02em; }
.plan-head small, .plan-meta span, .plan-legend > span { color: var(--eh-muted); font-size: 12px; }
.plan-meta strong { color: var(--eh-gold-text); }
.plan-art { background: #fcfcfd; border-radius: 12px; }
.plan-svg .room-shape { stroke: #8b8881; }
.plan-svg .plan-label { fill: var(--eh-ink); }
.plan-card > p, .plan-drawing-note, .plan-area-note { color: var(--eh-muted); font-size: 12px; line-height: 1.65; }
.payment-disclosure, .selection-data-note, .portal-warning, .admin-note, .booking-data-alert, .directory-notice, .plan-area-warning, .room-schedule-note, .modal-note { background: var(--eh-gold-soft); color: #655332; border: 0; border-left: 2px solid var(--eh-gold); border-radius: 0 10px 10px 0; font-size: 12px; line-height: 1.65; padding: 13px 16px; }
.selection-data-note a, .data-attribution a, .faq-list a[href^='mailto:'] { color: var(--eh-gold-text); }
.demo-pill, .portal-tag { color: var(--eh-gold-text); background: var(--eh-gold-soft); border: 1px solid #e5dac2; border-radius: 999px; padding: 6px 10px; font-size: 10px; letter-spacing: .04em; white-space: nowrap; }

/* Selection is a guided task, with one current decision and a visible path. */
.selection-intro { max-width: 810px; }
.bhk-filter button, .portal-tabs button, .admin-nav button, .image-library-filters button { background: #fff; color: var(--eh-muted); border: 1px solid var(--eh-line); border-radius: 999px; padding: 11px 17px; font: 500 12px/1.4 var(--eh-font); }
.bhk-filter button.selected, .portal-tabs button.selected, .admin-nav button.selected, .image-library-filters button[aria-pressed='true'] { background: var(--eh-black); color: #fff; border-color: var(--eh-black); }
.steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border: 1px solid var(--eh-line); background: #fff; border-radius: 16px; overflow: hidden; }
.step { background: none; color: var(--eh-muted); border-color: var(--eh-line); padding: 18px 13px; min-width: 0; }
.step.active { background: var(--eh-gold-soft); color: var(--eh-ink); }
.step.done { background: #fafafa; color: var(--eh-ink); }
.step.active.done { background: var(--eh-gold-soft); }
.step.active b, .step.done b { background: var(--eh-black); color: #fff; border-radius: 50%; }
.step b { font-size: 11px; color: var(--eh-muted); }
.step > span { font-size: 12px; font-weight: 500; }
.step small { font-size: 10px; color: var(--eh-muted); }
.step.active small { color: var(--eh-gold-text); }
.selection-panel { padding: 28px; margin-top: 18px; }
.selection-label { color: var(--eh-ink); font-size: 24px; font-weight: 600; letter-spacing: -.025em; text-transform: none; }
.selection-guidance { color: var(--eh-muted); font-size: 13px; margin: 6px 0 0; }
.selection-navigation { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 18px; }
.selection-navigation button { color: var(--eh-gold-text); background: none; border: 0; font-size: 12px; }
.choices { gap: 12px; scrollbar-color: #bdbdc5 #f5f5f7; }
.choice { border: 1px solid var(--eh-line); border-radius: 12px; background: #fff; color: var(--eh-ink); padding: 17px; }
.choice:hover:not(:disabled) { border-color: var(--eh-gold); background: var(--eh-gold-soft); transform: translateY(-1px); }
.choice.is-selected { border-color: var(--eh-gold); background: var(--eh-gold-soft); box-shadow: inset 0 0 0 1px var(--eh-gold); }
.choice-heading strong { color: var(--eh-ink); font-size: 13px; font-weight: 600; }
.choice small { color: var(--eh-muted); font-size: 11px; }
.choice-badge { color: var(--eh-gold-text); background: var(--eh-gold-soft); font-size: 9px; border-radius: 4px; }
.choice-counts { border-color: var(--eh-line); }
.choice-counts > span { font-size: 9px; color: var(--eh-muted); }
.choice-counts strong { font-size: 12px; }
.selection-summary { background: var(--eh-silver); border-color: var(--eh-line); border-radius: 10px; padding: 15px; }
.selection-summary > span, .selection-summary small { color: var(--eh-muted); font-size: 11px; }
.selection-summary strong { color: var(--eh-ink); font-size: 12px; }
input:not([type='checkbox']):not([type='radio']):not([type='range']), select, textarea { color: var(--eh-ink); background: #fff; border: 1px solid #cdced4; border-radius: 10px; padding: 12px 14px; font-size: 14px; min-height: 46px; }
input[type='checkbox'], input[type='radio'] { min-height: 0; width: 17px; height: 17px; accent-color: var(--eh-gold-text); flex: 0 0 auto; }
input[type='range'] { accent-color: var(--eh-gold); }
input:not([type='range']):focus, textarea:focus, select:focus { outline: 2px solid var(--eh-gold-text); outline-offset: 2px; box-shadow: none; }
.choice-search { border-radius: 10px; }
.choice-result-count, .inventory-legend, .data-attribution { color: var(--eh-muted); font-size: 11px; }

/* Room imagery and community content share the same card family. */
.how { background: var(--eh-black); color: #fff; }
.how h2, .how strong { color: #fff; }
.how h2 em, .how .eyebrow, .how li > span { color: #dfc28a; }
.how p { color: #c8c8cf; font-size: 13px; }
.how li { border-color: #ffffff20; }
.how-image > div { font-family: var(--eh-font); letter-spacing: -.035em; }
.gallery-grid { gap: 24px; }
.room-gallery-card { border: 1px solid var(--eh-line); border-radius: var(--eh-radius); background: #fff; box-shadow: none; }
.room-gallery-card figcaption { padding: 22px; }
.room-gallery-card figcaption strong { color: var(--eh-ink); font-size: 25px; font-weight: 600; letter-spacing: -.035em; }
.room-gallery-card figcaption small, .room-gallery-card figcaption > span, .gallery-toolbar, .gallery-toolbar small { color: var(--eh-muted); font-size: 11px; }
.room-gallery-card figcaption small { color: var(--eh-gold-text); letter-spacing: .08em; }
.room-photo > span { background: #171719bd; color: #fff; border: 0; }
.gallery-arrow { background: #fff; background-image: none; color: var(--eh-ink); border: 1px solid var(--eh-line); }
.gallery-arrow:hover, .gallery-arrow:focus-visible { background: var(--eh-black); background-image: none; color: #fff; border-color: var(--eh-black); transform: none; }
.amenity-list { padding: 30px; border-radius: var(--eh-radius); background: var(--eh-black); }
.amenity-list h3 { color: #fff; font-size: 24px; }
.amenity-list .eyebrow, .amenity-list > div { color: #dfc28a; }
.amenity-list > div span { color: #eeeef2; font-size: 12px; }
.image-library-card { border: 1px solid var(--eh-line); border-radius: 16px; background: #fff; box-shadow: none; }
.image-library-card figcaption strong { color: var(--eh-ink); font-size: 14px; }
.image-library-card figcaption small, .image-library-card figcaption > span { color: var(--eh-muted); }
.image-library-note, .gallery-results-summary { color: var(--eh-muted); font-size: 12px; }
.gallery-load-more { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: 14px 24px; padding-top: 24px; }
.masterplan-map { box-shadow: none; border: 1px solid var(--eh-line); border-radius: var(--eh-radius); }
.masterplan-card { background: #fff; color: var(--eh-ink); border: 1px solid var(--eh-line); border-radius: var(--eh-radius); box-shadow: none; }
.masterplan-card h3, .location h2, .media-centre h2 { color: var(--eh-ink); }
.masterplan-card p, .masterplan-card small, .masterplan-legend, .location-copy, .location-card p, .location-checklist { color: var(--eh-muted); font-size: 13px; }
.location-map-placeholder { background: var(--eh-silver); color: var(--eh-gold-text); border-radius: 12px; }
.location-map-placeholder strong { color: var(--eh-ink); }
.location-map-placeholder small, .location-checklist b { color: var(--eh-muted); }
.media-placeholder { border: 1px solid var(--eh-line); border-radius: var(--eh-radius); background: var(--eh-silver); overflow: hidden; }
.media-placeholder h3 { color: var(--eh-ink); font-family: var(--eh-font); }
.media-placeholder p, .media-placeholder .eyebrow { color: var(--eh-muted); }
.media-placeholder .text-link { color: var(--eh-gold-text); }
.directory-panel { background: #fff; border: 1px solid var(--eh-line); border-radius: var(--eh-radius); }
.directory-card { border-color: var(--eh-line); border-radius: 12px; background: var(--eh-silver); color: var(--eh-ink); }
.directory-card strong { color: var(--eh-ink); }
.directory-card p, .directory-description, .directory-card small, .directory-footnote { color: var(--eh-muted); }
.directory-card em { color: var(--eh-gold-text); }
.directory-monogram { background: #eae3d6; color: var(--eh-gold-text); border-radius: 10px; }
.booking-summary-cards article { border-radius: 16px; border-color: var(--eh-line); background: #fff; }
.booking-summary-cards article strong { color: var(--eh-ink); font-size: 25px; }
.booking-summary-cards article small, .booking-records > small { color: var(--eh-muted); }
.booking-records table th, .admin-table th { background: var(--eh-silver); color: var(--eh-ink); }
.booking-records table td, .booking-records table th, .admin-table th, .admin-table td { border-color: var(--eh-line); }

/* Every booking screen uses the same review card, fields and next action. */
.modal, .search-modal { background: #16161780; backdrop-filter: blur(10px); }
.modal-card, .search-card { border: 1px solid var(--eh-line); border-radius: 24px; background: #fff; color: var(--eh-ink); box-shadow: 0 25px 80px #16161728; padding: 32px; }
.modal-card { width: min(760px, 100%); max-height: calc(100dvh - 40px); }
.modal-card h2, .search-card h2 { font-family: var(--eh-font); color: var(--eh-ink); font-size: 32px; letter-spacing: -.035em; line-height: 1.15; }
.modal-card .close, .search-close { width: 36px; height: 36px; min-height: 36px; display: grid; place-items: center; padding: 0; border-radius: 50%; background: var(--eh-silver); color: var(--eh-muted); font-size: 23px; top: 14px; right: 14px; }
.modal-card .close.has-ui-icon, .search-close.has-ui-icon { font-size: 0; }
.modal-card .close.has-ui-icon::before, .search-close.has-ui-icon::before { width: 20px; height: 20px; }
.form-intro, .modal-note, .journey-note { color: var(--eh-muted); font-size: 13px; line-height: 1.6; }
.booking-summary { border: 1px solid var(--eh-line); border-radius: 14px; padding: 7px 18px; background: var(--eh-silver); }
.booking-summary > div { border-color: var(--eh-line); padding: 10px 0; }
.booking-summary span { color: var(--eh-muted); font-size: 12px; }
.booking-summary strong { color: var(--eh-ink); font-size: 12px; font-weight: 500; }
.booking-journey { margin: 12px 0 24px; padding: 0; }
.booking-journey > ol { display: flex; gap: 5px; padding: 0; margin: 0; list-style: none; }
.booking-journey li { flex: 1; min-width: 0; padding: 9px 4px; border-bottom: 2px solid var(--eh-line); color: var(--eh-muted); font-size: 10px; line-height: 1.3; }
.booking-journey li.is-current, .booking-journey li[aria-current='step'] { color: var(--eh-ink); border-color: var(--eh-gold); font-weight: 600; }
.booking-journey li.is-complete { color: var(--eh-gold-text); border-color: #cab998; }
.booking-journey span { display: block; }
.journey-step-number { margin-bottom: 7px; font-size: 11px; }
.booking-context { display: flex; flex-wrap: wrap; gap: 4px 14px; padding: 13px 15px; border: 1px solid var(--eh-line); border-radius: 12px; background: var(--eh-silver); color: var(--eh-muted); font-size: 11px; margin-bottom: 20px; }
.journey-back { display: inline-flex; align-items: center; padding: 8px 0; min-height: 40px; border: 0; background: none; color: var(--eh-gold-text); font-size: 12px; cursor: pointer; }
.booking-form label, .support-form label { color: var(--eh-ink); font-size: 12px; font-weight: 500; }
.modal-form label { color: var(--eh-ink); font-size: 12px; font-weight: 500; }
.modal-form input { margin-top: 6px; }
.booking-fee-total strong { font: 600 24px/1.3 var(--eh-font); }
.booking-form input, .booking-form select, .booking-form textarea { margin-top: 6px; }
.terms-content { background: var(--eh-silver); color: var(--eh-muted); border: 1px solid var(--eh-line); border-radius: 14px; }
.terms-check { color: var(--eh-ink); line-height: 1.55; font-size: 12px; }
.payment-methods { gap: 10px; }
.payment-methods label { padding: 15px; border: 1px solid var(--eh-line); border-radius: 12px; background: #fff; color: var(--eh-ink); }
.payment-methods label:has(input:checked) { border-color: var(--eh-gold); background: var(--eh-gold-soft); }
.processing-screen h3 { color: var(--eh-ink); }
.success-mark { background: var(--eh-gold-soft); color: var(--eh-gold-text); border-color: #e5dac2; }
.qr-preview { border: 1px solid var(--eh-line); border-radius: 12px; background: var(--eh-silver); color: var(--eh-ink); padding: 15px; }
.qr-preview small { color: var(--eh-muted); }
.booking-room-schedule { border: 1px solid var(--eh-line); border-radius: 12px; overflow: hidden; margin: 20px 0; }
.booking-room-schedule summary { background: var(--eh-silver); color: var(--eh-ink); font-size: 12px; }
.booking-room-schedule th, .booking-room-schedule td { color: var(--eh-ink); border-color: var(--eh-line); font-size: 11px; }
.booking-room-schedule thead th { background: var(--eh-silver); }
.room-schedule-note { margin: 0; border-radius: 0; font-size: 11px; }

/* Customer and admin workspaces belong to the same product. */
.portal-tabs, .admin-nav { gap: 8px; border: 0; margin-block: 24px; }
.portal-panel, .admin-panel { padding: 28px; }
.account-view-header, .admin-view-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.account-view-header h3, .admin-view-header h3 { margin: 0; font-size: 25px; color: var(--eh-ink); }
.account-view-header p, .admin-view-header p { color: var(--eh-muted); font-size: 13px; margin: 8px 0 0; max-width: 660px; }
.account-local-label { padding: 6px 10px; border-radius: 999px; background: var(--eh-gold-soft); color: var(--eh-gold-text); font-size: 10px; white-space: nowrap; }
.account-view-grid, .portal-preview-grid, .admin-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.account-info-card, .portal-preview-grid article, .admin-kpis article { padding: 22px; background: var(--eh-silver); border: 1px solid var(--eh-line); border-radius: 14px; }
.account-info-card strong { display: block; font-size: 19px; color: var(--eh-ink); letter-spacing: -.02em; }
.account-info-card > span:not(.account-card-icon) { display: block; margin: 12px 0 8px; font-size: 11px; color: var(--eh-muted); }
.account-card-icon { display: inline-grid; place-items: center; width: 42px; height: 42px; margin-bottom: 12px; border: 1px solid #e5dac2; border-radius: 12px; background: var(--eh-gold-soft); color: var(--eh-gold-text); }
.account-card-icon svg { width: 22px; height: 22px; display: block; }
.account-info-card p, .account-info-card small { color: var(--eh-muted); font-size: 12px; line-height: 1.6; }
.account-info-card .text-link { display: inline-flex; margin-top: 9px; }
.account-empty-state { padding: 28px; background: var(--eh-silver); border-radius: 14px; text-align: center; }
.account-empty-state h4 { font-size: 21px; margin: 0 0 8px; }
.account-empty-state p { color: var(--eh-muted); max-width: 600px; font-size: 13px; margin: 0 auto 18px; }
.account-inline-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 20px; }
.account-empty-state .account-inline-actions { justify-content: center; }
.account-notice { margin: 20px 0 0; padding: 14px 17px; background: var(--eh-gold-soft); color: #655332; border-radius: 10px; font-size: 12px; }
.account-notifications { display: grid; gap: 12px; }
.account-preferences { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.account-notification { padding: 20px; border: 1px solid var(--eh-line); border-radius: 14px; background: var(--eh-silver); }
.account-notification { display: flex; align-items: flex-start; gap: 15px; }
.account-notification .account-card-icon { flex: 0 0 42px; }
.account-notification .text-link { margin-left: auto; white-space: nowrap; }
.account-notification h4 { margin: 0; font-size: 15px; }
.account-notification p, .account-notification small { color: var(--eh-muted); font-size: 12px; }
.account-preference { display: flex; align-items: flex-start; gap: 12px; padding: 18px; border: 1px solid var(--eh-line); border-radius: 12px; font-size: 13px; }
.admin-workflow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 22px; }
.admin-workflow { padding: 0; list-style: none; }
.admin-workflow-step { background: var(--eh-silver); border-radius: 12px; border: 1px solid var(--eh-line); padding: 18px; }
.admin-workflow-step > span { display: block; color: var(--eh-gold-text); font-size: 11px; margin-bottom: 10px; }
.admin-workflow-step small { display: block; color: var(--eh-muted); font-size: 11px; margin-top: 7px; }
.admin-table-scroll { overflow-x: auto; }
.admin-workflow-step strong { font-size: 14px; }
.admin-workflow-step p { color: var(--eh-muted); font-size: 12px; }
.dashboard-booking-head { border-color: var(--eh-line); }
.dashboard-booking-head h3 { font-size: 25px; }
.dashboard-booking-head small, .dashboard-details small { color: var(--eh-muted); }
.dashboard-details strong { color: var(--eh-ink); }
.dashboard-empty { background: var(--eh-silver); border-radius: 14px; border: 1px solid var(--eh-line); }
.pending { color: var(--eh-gold-text); }
.faq-list details { border-color: var(--eh-line); padding-block: 20px; }
.faq-list summary { color: var(--eh-ink); font-size: 14px; font-weight: 500; }
.faq-list summary::after { color: var(--eh-muted); }
.faq-list details p { color: var(--eh-muted); font-size: 13px; }
.assistant-card { border-radius: var(--eh-radius); background: var(--eh-silver); color: var(--eh-ink); border: 1px solid var(--eh-line); }
.assistant-card h3 { color: var(--eh-ink); font-size: 25px; }
.assistant-card > p:not(.eyebrow), .assistant-answer { color: var(--eh-muted); font-size: 12px; }
.assistant-prompts button { background: #fff; color: var(--eh-gold-text); border-color: var(--eh-line); border-radius: 999px; font-size: 11px; }
.assistant-form { border: 0; gap: 7px; }
.assistant-form input { border: 1px solid #cdced4; }
.assistant-form button { border-radius: 10px; background: var(--eh-black); color: #fff; }
.assistant-answer { background: #fff; border: 1px solid var(--eh-line); border-radius: 10px; }
.support h2 { color: var(--eh-ink); }
.support > div > p, .support > div > p:last-child { color: var(--eh-muted); font-size: 14px; }
.support-contact a, .support-contact a:hover { color: var(--eh-gold-text); font-size: 14px; }
.support-form { background: var(--eh-silver); border: 1px solid var(--eh-line); box-shadow: none; border-radius: var(--eh-radius); padding: 28px; }
.support-form small { color: var(--eh-muted); font-size: 11px; }
.search-result { background: var(--eh-silver); color: var(--eh-ink); border-radius: 10px; border-color: transparent; }
.search-result strong { color: var(--eh-ink); }
.search-result:hover, .search-result:focus { background: var(--eh-gold-soft); border-color: var(--eh-gold); }
.search-result small, .search-hint { color: var(--eh-muted); }
.search-status { color: var(--eh-muted); font-size: 12px; }
.toast { background: var(--eh-black); color: #fff; border-radius: 12px; box-shadow: 0 6px 25px #0002; }
.site-footer { background: var(--eh-silver); }
.footer-inner { max-width: 1160px; }
.site-footer .footer-contact-line a { color: var(--eh-gold-text); }
.site-footer a:focus-visible, .site-footer button:focus-visible, .site-footer summary:focus-visible { outline-color: var(--eh-gold-text); }
.reveal-ready { transform: translateY(10px); transition-duration: .4s; }

@media (max-width: 1100px) {
  .header { gap: 12px; padding-inline: 24px; }
  .hero-redesign { gap: 28px; }
  .hero-redesign h1 { font-size: 48px; }
  .hero-redesign .hero-copy { font-size: 14px; }
  .home-journey a { padding: 17px 12px; gap: 9px; }
  .apartment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-workflow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
  .header { height: auto; min-height: 72px; padding-block: 12px; }
  .nav.nav-open { background: #fff; border-color: var(--eh-line); }
  .menu-toggle { background: #fff; border-radius: 10px; color: var(--eh-ink); border-color: var(--eh-line); }
  .menu-toggle[aria-expanded='true'] { background: var(--eh-gold-soft); border-color: var(--eh-gold); }
  .hero-redesign { height: auto; min-height: 0; grid-template-columns: 1fr; gap: 28px; padding: 44px 24px 30px; }
  .hero-redesign .hero-content { grid-column: 1; grid-row: 1; max-width: 600px; text-align: center; margin-inline: auto; }
  .hero-redesign .eyebrow, .hero-redesign .hero-actions, .hero-redesign .hero-trust { justify-content: center; }
  .hero-redesign h1 { font-size: clamp(39px, 6.5vw, 54px); }
  .hero-redesign .hero-copy { margin-inline: auto; max-width: 470px; font-size: 15px; }
  .hero-redesign .hero-art { grid-column: 1; grid-row: 2; height: 530px; max-width: 720px; margin-inline: auto; }
  .hero-art-label { left: 42px; right: auto; bottom: 48px; }
  .hero-redesign .hero-trust { display: none; }
  .hero-optional-swipe { margin-top: 16px; }
  .hero-optional-swipe .swipe-action { margin-inline: auto; text-align: left; }
  .hero-gesture .swipe-action { margin-inline: auto; text-align: left; }
  .home-journey { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-inline: 24px; }
  .section-heading, .selection-header { align-items: flex-start; gap: 20px; }
  .section-heading > p { max-width: 600px; }
  .account-view-grid, .portal-preview-grid, .admin-kpis { grid-template-columns: 1fr; }
  .account-view-header, .admin-view-header { flex-direction: column; gap: 10px; }
  .booking-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
  .announcement { justify-content: center; font-size: 10px; padding: 7px 16px; text-align: center; line-height: 1.45; }
  .announcement > span:first-child, .announcement > span:nth-child(2) { display: none; }
  .header { gap: 7px; padding: 10px 14px; min-height: 70px; }
  .brand { gap: 5px; }
  .brand img { width: 36px; height: 36px; }
  .brand strong { font-size: 10px; }
  .brand small { font-size: 8px; }
  .header-login, .header-language-trigger { font-size: 11px; }
  .header-find-home { min-height: 38px; padding: 9px 11px; font-size: 10px; }
  .header .menu-toggle { width: 35px; min-width: 35px; min-height: 38px; }
  .hero-redesign { padding: 37px 18px 20px; gap: 25px; }
  .hero-redesign .eyebrow { font-size: 9px; margin-bottom: 18px; }
  .hero-redesign h1 { font-size: clamp(35px, 9.7vw, 46px); line-height: 1.06; }
  .hero-redesign .hero-copy { font-size: 14px; line-height: 1.65; margin-block: 20px; }
  .hero-redesign .hero-actions { flex-direction: row; align-items: center; gap: 14px; }
  .hero-redesign .hero-actions .button { padding: 12px 18px; font-size: 12px; }
  .hero-secondary-link { font-size: 12px; gap: 7px; }
  .hero-redesign .hero-art { height: 430px; border-radius: 18px; }
  .hero-art-label { left: 30px; bottom: 33px; padding: 9px 12px; max-width: 285px; }
  .hero-art-label strong { font-size: 12px; }
  .hero-art-label small { font-size: 9px; }
  .home-journey { padding: 18px 18px 28px; gap: 9px; }
  .home-journey a { padding: 15px 12px; border-radius: 12px; gap: 8px; }
  .home-journey strong { font-size: 12px; }
  .home-journey small { font-size: 10px; }
  .journey-number { font-size: 9px; }
  .journey-arrow { display: none; }
  .section { padding: 60px 18px; }
  h2, .section-heading h2, .intro h2, .selection h2, .how h2, .support h2, .location h2 { font-size: 32px; }
  .section-heading { margin-bottom: 26px; }
  .section-heading > p, .selection-intro, .intro-copy p { font-size: 13px; }
  .stats { padding: 23px 18px; }
  .stats strong { font-size: 29px; }
  .stats span { font-size: 10px; }
  .structure-grid article { padding: 19px 16px; }
  .structure-grid strong { font-size: 28px; }
  .structure-grid article p { font-size: 11px; }
  .apartment-grid, .plans-grid { grid-template-columns: 1fr; }
  .apartment-card { padding: 26px; }
  .plan-card { padding: 18px; }
  .steps { display: flex; overflow-x: auto; border-radius: 12px; scrollbar-width: none; }
  .step { flex: 0 0 102px; display: flex; align-items: center; padding: 13px 9px; }
  .step b { width: 23px; height: 23px; flex: 0 0 23px; }
  .step small { font-size: 9px; }
  .selection-panel { padding: 18px; border-radius: 16px; }
  .selection-label { font-size: 22px; }
  .choices, .choices.tower-choices, .choices.floor-choices, .choices.flat-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; max-height: 470px; }
  .choice { padding: 12px; }
  .choice-heading strong { font-size: 12px; }
  .choice small { font-size: 10px; }
  .choice-counts > span { font-size: 8px; }
  .choice-badge { font-size: 8px; }
  .choice-counts strong { font-size: 10px; }
  .selection-summary { display: grid; gap: 5px; padding: 12px; }
  .selection-summary strong { font-size: 11px; overflow-wrap: anywhere; }
  .selection-navigation { flex-wrap: wrap; gap: 5px; }
  .bhk-filter { gap: 7px; }
  .bhk-filter button { padding: 9px 13px; font-size: 11px; }
  .booking-filters { grid-template-columns: 1fr; }
  .modal { padding: 10px; }
  .modal-card { max-height: calc(100dvh - 20px); border-radius: 18px; padding: 28px 18px 22px; }
  .modal-card h2 { font-size: 28px; }
  .modal-actions { gap: 8px; }
  .booking-journey { gap: 3px; margin-block: 12px 20px; }
  .booking-journey li { font-size: 9px; padding-inline: 2px; }
  .booking-summary { padding: 5px 12px; }
  .booking-summary > div { gap: 10px; }
  .booking-summary span, .booking-summary strong { font-size: 11px; }
  .booking-context { font-size: 10px; }
  .form-intro, .journey-note { font-size: 12px; }
  .admin-workflow { grid-template-columns: 1fr; }
  .account-empty-state, .portal-panel, .admin-panel, .support-form { padding: 20px; }
  .account-inline-actions { flex-direction: column; align-items: stretch; }
  .account-inline-actions .button { text-align: center; }
  .account-preferences { display: grid; }
  .account-notification { flex-wrap: wrap; }
  .account-notification > div { flex: 1; min-width: 180px; }
  .account-notification .text-link { margin-left: 57px; }
  .portal-tabs, .admin-nav { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; }
  .portal-tabs button, .admin-nav button { flex: 0 0 auto; }
  .footer-column li > a, .footer-column li > button { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal-ready { opacity: 1; transform: none; }
}
