.site-header {
    position: fixed; inset: 0 0 auto; z-index: 100; height: var(--header-height);
    color: var(--white); border-bottom: 1px solid rgba(255,255,255,0.18);
    transition: height var(--transition), color var(--transition), background var(--transition), box-shadow var(--transition);
}
.site-header.is-scrolled { height: 70px; color: var(--primary); background: rgba(255,255,255,0.96); box-shadow: var(--shadow-header); border-color: transparent; backdrop-filter: blur(16px); }
.site-header__inner { height: 100%; display: grid; grid-template-columns: minmax(150px, 0.85fr) auto minmax(150px, 0.85fr); align-items: center; gap: 2rem; }
.wordmark { display: inline-flex; width: max-content; flex-direction: column; line-height: 0.95; letter-spacing: 0.17em; }
.wordmark span { font-family: var(--font-serif); font-size: 0.68rem; font-style: italic; }
.wordmark strong { font-family: var(--font-serif); font-size: 1.18rem; font-weight: 500; }
.wordmark--dark { color: var(--primary); }
.desktop-nav ul { display: flex; align-items: center; gap: clamp(1.1rem, 2vw, 2.25rem); }
.desktop-nav a, .nav-pending { position: relative; display: block; padding: 0.45rem 0; font-size: 0.875rem; font-weight: 600; white-space: nowrap; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px; background: currentColor; transition: right var(--transition); }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { right: 0; }
.nav-pending { opacity: 0.58; cursor: default; }
.header-phone { justify-self: end; display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.header-phone span { font-size: 0.68rem; letter-spacing: 0.16em; opacity: 0.68; }
.header-phone strong { font-family: var(--font-serif); font-size: 1.1rem; letter-spacing: 0.08em; }
.mobile-actions { display: none; align-items: center; gap: 0.25rem; }
.icon-button, .menu-toggle { width: 42px; height: 42px; display: inline-grid; place-items: center; border: 0; background: transparent; cursor: pointer; }
.icon-button svg { width: 21px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.menu-toggle { gap: 5px; align-content: center; }
.menu-toggle span { width: 22px; height: 1px; background: currentColor; }
.drawer-layer { position: fixed; inset: 0; z-index: 200; }
.drawer-layer[hidden] { display: none; }
.drawer-overlay { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(4, 10, 20, 0.58); opacity: 0; transition: opacity var(--transition); }
.mobile-drawer {
    position: absolute; inset: 0 0 0 auto; width: min(88vw, 390px); padding: 1.2rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom));
    display: flex; flex-direction: column; color: var(--primary); background: var(--white); transform: translateX(100%); transition: transform 280ms ease;
}
.drawer-layer.is-open .drawer-overlay { opacity: 1; }
.drawer-layer.is-open .mobile-drawer { transform: none; }
.mobile-drawer__header { min-height: 54px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.drawer-close { position: relative; width: 42px; height: 42px; border: 0; background: transparent; cursor: pointer; }
.drawer-close span { position: absolute; left: 10px; top: 20px; width: 23px; height: 1px; background: currentColor; transform: rotate(45deg); }
.drawer-close span + span { transform: rotate(-45deg); }
.mobile-nav { padding: 1.4rem 0; }
.mobile-nav li + li { border-top: 1px solid var(--line); }
.mobile-nav a, .mobile-nav__pending { min-height: 56px; display: flex; align-items: center; justify-content: space-between; font-size: 1rem; font-weight: 650; }
.mobile-nav__pending { color: var(--text-light); }
.mobile-nav__pending small { font-size: 0.7rem; font-weight: 500; letter-spacing: 0.08em; }
.mobile-drawer__contact { margin-top: auto; padding: 1.25rem; background: var(--background-soft); border-radius: var(--radius-medium); }
.mobile-drawer__contact p { color: var(--text-light); font-size: 0.78rem; letter-spacing: 0.12em; }
.mobile-drawer__contact strong { display: block; margin: 0.1rem 0 1rem; font-family: var(--font-serif); font-size: 1.65rem; letter-spacing: 0.04em; }
.button { min-height: 52px; padding: 0.8rem 1.45rem; display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; border: 1px solid transparent; font-size: 0.9rem; font-weight: 700; letter-spacing: 0.04em; transition: color var(--transition), background var(--transition), border-color var(--transition); }
.button--primary { color: var(--white); background: var(--primary); }
.button--primary:hover { background: var(--secondary); }
.button--full { width: 100%; }
.button--light { color: var(--primary); background: var(--white); }
.button--light:hover { color: var(--white); background: var(--secondary); }
.button--outline { color: var(--white); border-color: rgba(255,255,255,0.55); }
.button--outline.is-disabled { cursor: default; opacity: 0.7; }
.button--navy-outline { color: var(--primary); border-color: var(--primary); background: transparent; }
.button--navy-outline:hover { color: var(--white); background: var(--primary); }
.button small { font-size: 0.65rem; font-weight: 500; }

.floating-cta {
    position: fixed; z-index: 90; right: 1.25rem; top: 50%; width: 84px; overflow: hidden;
    color: var(--white); background: rgba(13,23,42,0.94); border: 1px solid rgba(255,255,255,0.14);
    box-shadow: 0 14px 38px rgba(5,12,24,0.2); transform: translateY(-35%); backdrop-filter: blur(12px);
}
.floating-cta a { min-height: 73px; padding: 0.75rem 0.35rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.15rem; font-size: 0.73rem; font-weight: 650; text-align: center; }
.floating-cta a + a { border-top: 1px solid rgba(255,255,255,0.12); }
.floating-cta a:hover, .floating-cta a:focus-visible { color: var(--primary-deep); background: var(--secondary-light); }
.floating-cta a span { color: var(--secondary-light); font-size: 0.55rem; letter-spacing: 0.12em; }
.floating-cta a:hover span, .floating-cta a:focus-visible span { color: var(--primary); }
.floating-cta__top span { font-size: 1rem !important; }
.mobile-cta { display: none; }

.site-footer { color: rgba(255,255,255,0.68); background: #091222; }
.site-footer__inner { padding-block: 4rem 3rem; display: grid; grid-template-columns: 0.72fr 1.55fr 0.73fr; gap: 3.5rem; }
.site-footer__brand { display: flex; flex-direction: column; align-items: flex-start; color: var(--white); font-family: var(--font-serif); line-height: 1; letter-spacing: 0.14em; }
.site-footer__brand span { font-size: 0.7rem; font-style: italic; }
.site-footer__brand strong { font-size: 1.3rem; font-weight: 500; }
.site-footer__brand a { margin-top: 1.3rem; color: var(--secondary-light); font-family: var(--font-sans); font-size: 1rem; letter-spacing: 0.08em; }
.site-footer__details dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem 2rem; }
.site-footer__details dl div { display: grid; grid-template-columns: 82px 1fr; gap: 0.75rem; font-size: 0.78rem; }
.site-footer__details dt { color: rgba(255,255,255,0.4); }
.site-footer__details dd { margin: 0; }
.site-footer__details > p { margin-top: 1.4rem; color: rgba(255,255,255,0.36); font-size: 0.72rem; }
.site-footer__legal { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; text-align: right; }
.site-footer__legal nav { display: flex; gap: 1rem; color: var(--white); font-size: 0.78rem; }
.site-footer__legal p { color: rgba(255,255,255,0.36); font-size: 0.68rem; letter-spacing: 0.04em; }

.floorplan-modal { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; padding: 2rem; }
.floorplan-modal[hidden] { display: none; }
.floorplan-modal__overlay { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(3,8,18,0.8); opacity: 0; transition: opacity var(--transition); }
.floorplan-modal__dialog { position: relative; width: min(1080px, 92vw); max-height: 90vh; display: flex; flex-direction: column; background: var(--white); box-shadow: 0 24px 80px rgba(0,0,0,0.35); opacity: 0; transform: translateY(16px); transition: opacity var(--transition), transform var(--transition); }
.floorplan-modal.is-open .floorplan-modal__overlay, .floorplan-modal.is-open .floorplan-modal__dialog { opacity: 1; transform: none; }
.floorplan-modal__header { min-height: 64px; padding: 0 1.2rem 0 1.5rem; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.floorplan-modal__header h3 { margin: 0; color: var(--primary); font-family: var(--font-serif); font-size: 1.3rem; font-weight: 500; }
.floorplan-modal__close { position: relative; width: 42px; height: 42px; border: 0; background: transparent; cursor: pointer; }
.floorplan-modal__close span { position: absolute; left: 10px; top: 20px; width: 23px; height: 1px; background: var(--primary); transform: rotate(45deg); }
.floorplan-modal__close span + span { transform: rotate(-45deg); }
.floorplan-modal__image { min-height: 0; padding: 1.25rem; display: grid; place-items: center; overflow: auto; background: var(--background-soft); }
.floorplan-modal__image img { max-width: 100%; max-height: calc(90vh - 110px); object-fit: contain; }
