/* OfficeDoor Front Preview — isolated from the legacy public frontend. */

:root {
    --front-ink: #11151a;
    --front-muted: #687078;
    --front-line: #d9dde0;
    --front-paper: #f5f4f0;
    --front-surface: #ffffff;
    --front-accent: #19324a;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--front-paper);
    color: var(--front-ink);
    font-family: Pretendard, "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}

img {
    display: block;
    max-width: 100%;
}

a {
    font: inherit;
}

.front-shell {
    width: min(1440px, calc(100% - 64px));
    margin: 0 auto;
}

.front-header {
    height: 68px;
    background: rgba(245, 244, 240, 0.96);
    border-bottom: 1px solid rgba(17, 21, 26, 0.1);
}

.front-header__inner {
    height: 100%;
    display: flex;
    align-items: center;
}

.front-brand {
    color: var(--front-ink);
    text-decoration: none;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.front-hero {
    min-height: calc(100svh - 68px);
    padding: clamp(28px, 3.6vw, 52px) 0 30px;
}

.front-hero__body {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
    gap: clamp(44px, 6vw, 96px);
    align-items: start;
}

.front-hero__copy {
    max-width: 760px;
    padding-top: clamp(34px, 4.8vw, 72px);
}

.front-hero__eyebrow-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
    margin-bottom: 22px;
}

.front-hero__eyebrow {
    margin: 0;
    color: var(--front-accent);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: -0.01em;
}

.front-hero__badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid rgba(25, 50, 74, 0.22);
    color: var(--front-accent);
    background: rgba(255, 255, 255, 0.55);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: 0.02em;
}

.front-hero h1 {
    margin: 0;
    max-width: 760px;
    font-size: clamp(48px, 5.8vw, 84px);
    line-height: 0.98;
    letter-spacing: -0.055em;
    font-weight: 760;
    word-break: keep-all;
}

.front-hero__lead {
    max-width: 640px;
    margin: 26px 0 0;
    color: #424a52;
    font-size: clamp(17px, 1.25vw, 20px);
    line-height: 1.68;
    letter-spacing: -0.025em;
    word-break: keep-all;
}

.front-hero__address {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 22px 0 0;
    color: var(--front-muted);
    font-size: 14px;
    line-height: 1.6;
}

.front-hero__address svg {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    margin-top: 2px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.7;
}

.front-hero__visual {
    position: relative;
    min-height: 500px;
    height: min(59vh, 640px);
    overflow: hidden;
    background: #dfe3e6;
}

.front-hero__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.front-hero__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 15, 20, 0.015) 62%, rgba(8, 15, 20, 0.12) 100%);
    pointer-events: none;
}

.front-hero__visual-empty {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    background:
        linear-gradient(145deg, rgba(255,255,255,0.08), transparent 48%),
        #243746;
    color: rgba(255, 255, 255, 0.78);
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0.18em;
}

.front-hero__facts {
    margin-top: clamp(26px, 3vw, 40px);
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    border-top: 1px solid var(--front-line);
    border-bottom: 1px solid var(--front-line);
    background: rgba(255, 255, 255, 0.44);
}

.front-hero__fact {
    min-height: 108px;
    padding: 20px 20px 18px;
    border-right: 1px solid var(--front-line);
}

.front-hero__fact:last-child {
    border-right: 0;
}

.front-hero__fact--key {
    background: rgba(255, 255, 255, 0.72);
}

.front-hero__fact span {
    display: block;
    margin-bottom: 10px;
    color: #7a8289;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.front-hero__fact--key span {
    color: var(--front-accent);
}

.front-hero__fact strong {
    display: block;
    color: var(--front-ink);
    font-size: 17px;
    line-height: 1.4;
    letter-spacing: -0.025em;
    word-break: keep-all;
}

.front-hero__fact--key strong {
    font-size: 19px;
}

.front-hero__fact small {
    display: block;
    margin-top: 4px;
    color: var(--front-muted);
    font-size: 12px;
    line-height: 1.45;
}

.front-building {
    padding: clamp(80px, 8vw, 128px) 0;
    background: var(--front-surface);
    border-top: 1px solid var(--front-line);
}

.front-building__layout {
    display: grid;
    grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(56px, 7vw, 112px);
    align-items: start;
}

.front-building__heading {
    max-width: 440px;
}

.front-section-kicker {
    margin: 0 0 18px;
    color: var(--front-accent);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.front-building__heading h2 {
    margin: 0;
    color: var(--front-ink);
    font-size: clamp(36px, 3.6vw, 56px);
    line-height: 1.08;
    letter-spacing: -0.045em;
    font-weight: 760;
    word-break: keep-all;
}

.front-building__heading > p:last-child {
    max-width: 400px;
    margin: 26px 0 0;
    color: var(--front-muted);
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: -0.02em;
    word-break: keep-all;
}

.front-building__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--front-line);
    border-left: 1px solid var(--front-line);
}

.front-building__item {
    min-height: 132px;
    padding: 24px 24px 22px;
    border-right: 1px solid var(--front-line);
    border-bottom: 1px solid var(--front-line);
}

.front-building__item span {
    display: block;
    margin-bottom: 14px;
    color: #7a8289;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: -0.01em;
}

.front-building__item strong {
    display: block;
    color: var(--front-ink);
    font-size: 19px;
    line-height: 1.45;
    letter-spacing: -0.03em;
    font-weight: 720;
    word-break: keep-all;
}

.front-building__item small {
    display: block;
    margin-top: 6px;
    color: var(--front-muted);
    font-size: 12px;
    line-height: 1.45;
}

.front-access {
    padding: clamp(84px, 8vw, 132px) 0;
    background: var(--front-paper);
    border-top: 1px solid var(--front-line);
}

.front-access__heading {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    gap: clamp(44px, 7vw, 112px);
    align-items: end;
    margin-bottom: clamp(36px, 4vw, 56px);
}

.front-access__heading h2 {
    margin: 0;
    max-width: 760px;
    color: var(--front-ink);
    font-size: clamp(38px, 4.2vw, 62px);
    line-height: 1.06;
    letter-spacing: -0.05em;
    font-weight: 760;
    word-break: keep-all;
}

.front-access__heading > p {
    max-width: 440px;
    margin: 0 0 4px auto;
    color: var(--front-muted);
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: -0.02em;
    word-break: keep-all;
}

.front-access__primary {
    padding: clamp(28px, 3vw, 42px);
    background: var(--front-accent);
    color: #fff;
}

.front-access__primary-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: clamp(42px, 5vw, 72px);
}

.front-access__verified,
.front-access__mode {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.front-access__verified {
    padding: 0 10px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: rgba(255, 255, 255, 0.9);
}

.front-access__mode {
    color: rgba(255, 255, 255, 0.6);
}

.front-access__primary-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(40px, 6vw, 96px);
    align-items: end;
}

.front-access__line-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 14px;
    font-weight: 700;
}

.front-access__line-chip {
    display: inline-grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: var(--front-accent);
    font-size: 13px;
    font-weight: 850;
}

.front-access__primary-copy h3 {
    margin: 0;
    color: #fff;
    font-size: clamp(44px, 5vw, 72px);
    line-height: 1;
    letter-spacing: -0.05em;
    font-weight: 760;
    word-break: keep-all;
}

.front-access__primary-copy > p {
    margin: 18px 0 0;
    color: rgba(255, 255, 255, 0.62);
    font-size: 13px;
    line-height: 1.6;
}

.front-access__metrics {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(132px, auto);
    border-left: 1px solid rgba(255, 255, 255, 0.18);
}

.front-access__metrics > div {
    min-width: 132px;
    padding: 2px 28px 2px;
    border-right: 1px solid rgba(255, 255, 255, 0.18);
}

.front-access__metrics span,
.front-access__metrics strong,
.front-access__metrics small {
    display: block;
}

.front-access__metrics span {
    margin-bottom: 12px;
    color: rgba(255, 255, 255, 0.52);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.front-access__metrics strong {
    color: #fff;
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: -0.04em;
}

.front-access__metrics small {
    margin-top: 6px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 11px;
}

.front-access__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-left: 1px solid var(--front-line);
    border-top: 1px solid var(--front-line);
    background: rgba(255, 255, 255, 0.42);
}

.front-access__item {
    min-height: 170px;
    padding: 24px;
    border-right: 1px solid var(--front-line);
    border-bottom: 1px solid var(--front-line);
}

.front-access__item-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 30px;
}

.front-access__item-top span {
    color: var(--front-accent);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.front-access__item-top small {
    color: var(--front-muted);
    font-size: 11px;
}

.front-access__item > strong {
    display: block;
    color: var(--front-ink);
    font-size: 20px;
    line-height: 1.4;
    letter-spacing: -0.03em;
    word-break: keep-all;
}

.front-access__item > p {
    margin: 8px 0 0;
    color: var(--front-muted);
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 1024px) {
    .front-shell {
        width: min(100% - 40px, 960px);
    }

    .front-hero__body {
        grid-template-columns: minmax(0, 1fr) minmax(340px, 0.8fr);
        gap: 38px;
    }

    .front-hero__copy {
        padding-top: 28px;
    }

    .front-hero h1 {
        font-size: clamp(42px, 6vw, 62px);
    }

    .front-hero__visual {
        min-height: 450px;
    }

    .front-hero__facts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .front-hero__fact:nth-child(3) {
        border-right: 0;
    }

    .front-hero__fact:nth-child(n+4) {
        border-top: 1px solid var(--front-line);
    }

    .front-building__layout {
        grid-template-columns: minmax(220px, 0.62fr) minmax(0, 1.38fr);
        gap: 44px;
    }

    .front-building__heading h2 {
        font-size: clamp(34px, 4vw, 44px);
    }

    .front-access__heading {
        grid-template-columns: minmax(0, 1fr) minmax(240px, 0.72fr);
        gap: 44px;
    }

    .front-access__heading h2 {
        font-size: clamp(38px, 5vw, 50px);
    }

    .front-access__primary-main {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 36px;
    }

    .front-access__metrics > div {
        min-width: 112px;
        padding: 2px 20px;
    }
}

@media (max-width: 720px) {
    .front-shell {
        width: calc(100% - 32px);
    }

    .front-header {
        height: 60px;
    }

    .front-hero {
        min-height: auto;
        padding: 0 0 26px;
    }

    .front-hero__body {
        display: flex;
        flex-direction: column;
        gap: 0;
        align-items: stretch;
    }

    .front-hero__visual {
        order: -1;
        width: calc(100% + 32px);
        margin-left: -16px;
        min-height: 0;
        height: auto;
        aspect-ratio: 3 / 2;
    }

    .front-hero__copy {
        padding-top: 22px;
    }

    .front-hero__eyebrow-row {
        margin-bottom: 16px;
    }

    .front-hero h1 {
        font-size: clamp(40px, 12.5vw, 58px);
        line-height: 1.03;
    }

    .front-hero__lead {
        margin-top: 20px;
        font-size: 16px;
        line-height: 1.65;
    }

    .front-hero__address {
        margin-top: 18px;
        font-size: 13px;
    }

    .front-hero__facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 28px;
    }

    .front-hero__fact {
        min-height: 102px;
        padding: 17px 14px;
    }

    .front-hero__fact:nth-child(odd) {
        border-right: 1px solid var(--front-line);
    }

    .front-hero__fact:nth-child(even) {
        border-right: 0;
    }

    .front-hero__fact:nth-child(n+3) {
        border-top: 1px solid var(--front-line);
    }

    .front-hero__fact--transit {
        grid-column: 1 / -1;
        border-right: 0 !important;
    }

    .front-building {
        padding: 54px 0 64px;
    }

    .front-building__layout {
        display: block;
    }

    .front-building__heading {
        max-width: none;
        margin-bottom: 30px;
    }

    .front-section-kicker {
        margin-bottom: 14px;
        font-size: 10px;
    }

    .front-building__heading h2 {
        font-size: 34px;
        line-height: 1.12;
    }

    .front-building__heading > p:last-child {
        margin-top: 18px;
        font-size: 14px;
        line-height: 1.7;
    }

    .front-building__grid {
        display: block;
        border-left: 0;
    }

    .front-building__item {
        min-height: 0;
        display: grid;
        grid-template-columns: 86px minmax(0, 1fr);
        gap: 0 14px;
        padding: 17px 0;
        border-right: 0;
    }

    .front-building__item span {
        margin: 3px 0 0;
        font-size: 11px;
    }

    .front-building__item strong {
        font-size: 16px;
        line-height: 1.5;
    }

    .front-building__item small {
        grid-column: 2;
        margin-top: 5px;
    }

    .front-access {
        padding: 62px 0 72px;
    }

    .front-access__heading {
        display: block;
        margin-bottom: 28px;
    }

    .front-access__heading h2 {
        font-size: 34px;
        line-height: 1.1;
    }

    .front-access__heading > p {
        max-width: none;
        margin: 18px 0 0;
        font-size: 14px;
        line-height: 1.7;
    }

    .front-access__primary {
        padding: 22px 18px 24px;
    }

    .front-access__primary-top {
        margin-bottom: 34px;
    }

    .front-access__primary-main {
        display: block;
    }

    .front-access__line-row {
        margin-bottom: 14px;
        font-size: 13px;
    }

    .front-access__line-chip {
        width: 28px;
        height: 28px;
        font-size: 12px;
    }

    .front-access__primary-copy h3 {
        font-size: 38px;
        line-height: 1.03;
    }

    .front-access__primary-copy > p {
        margin-top: 14px;
        font-size: 12px;
    }

    .front-access__metrics {
        grid-auto-flow: column;
        grid-auto-columns: minmax(0, 1fr);
        margin-top: 30px;
        border-top: 1px solid rgba(255, 255, 255, 0.18);
        border-left: 0;
    }

    .front-access__metrics > div {
        min-width: 0;
        padding: 20px 14px 0 0;
        border-right: 1px solid rgba(255, 255, 255, 0.18);
    }

    .front-access__metrics > div + div {
        padding-left: 18px;
    }

    .front-access__metrics > div:last-child {
        border-right: 0;
    }

    .front-access__metrics strong {
        font-size: 24px;
    }

    .front-access__list {
        display: block;
        border-left: 0;
    }

    .front-access__item {
        min-height: 0;
        padding: 20px 0;
        border-right: 0;
    }

    .front-access__item-top {
        margin-bottom: 18px;
    }
}

.front-floor-plan {
    padding: clamp(84px, 8vw, 132px) 0;
    background: var(--front-surface);
    border-top: 1px solid var(--front-line);
}

.front-floor-plan__heading {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    gap: clamp(44px, 7vw, 112px);
    align-items: end;
    margin-bottom: clamp(32px, 4vw, 52px);
}

.front-floor-plan__heading h2 {
    margin: 0;
    color: var(--front-ink);
    font-size: clamp(38px, 4.2vw, 62px);
    line-height: 1.06;
    letter-spacing: -0.05em;
    font-weight: 760;
    word-break: keep-all;
}

.front-floor-plan__heading > p {
    max-width: 440px;
    margin: 0 0 4px auto;
    color: var(--front-muted);
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: -0.02em;
    word-break: keep-all;
}

.front-floor-plan__floors {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(58px, 1fr));
    gap: 0;
    margin-bottom: 20px;
    overflow: visible;
}

.front-floor-plan__floors a {
    min-width: 0;
    padding: 12px 8px;
    border: 1px solid var(--front-line);
    margin-left: -1px;
    color: var(--front-ink);
    background: #fff;
    text-align: center;
    text-decoration: none;
}

.front-floor-plan__floors a:first-child {
    margin-left: 0;
}

.front-floor-plan__floors a.is-active {
    position: relative;
    z-index: 1;
    border-color: var(--front-accent);
    background: var(--front-accent);
    color: #fff;
}

.front-floor-plan__floors strong {
    display: block;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 760;
}

.front-floor-plan__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    align-items: stretch;
}

.front-floor-plan__canvas,
.front-floor-plan__units {
    border: 1px solid var(--front-line);
    background: #fff;
}

.front-floor-plan__units {
    border-left: 0;
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.front-floor-plan__canvas-head,
.front-floor-plan__units-head {
    min-height: 92px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 24px;
}

.front-floor-plan__canvas-head > div:first-child > span,
.front-floor-plan__units-head span {
    display: block;
    margin-bottom: 5px;
    color: var(--front-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.front-floor-plan__canvas-head h3,
.front-floor-plan__units-head strong {
    margin: 0;
    color: var(--front-ink);
    font-size: 21px;
    line-height: 1.35;
    letter-spacing: -0.03em;
}

.front-floor-plan__canvas-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
}

.front-floor-plan__canvas-meta > span,
.front-floor-plan__badge-toggle {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    border: 1px solid transparent;
    background: var(--front-paper);
    color: var(--front-muted);
    font: inherit;
    font-size: 10px;
    font-weight: 700;
}

.front-floor-plan__badge-toggle {
    border-color: var(--front-line);
    cursor: pointer;
}

.front-floor-plan__badge-toggle[aria-pressed="true"] {
    border-color: var(--front-accent);
    background: var(--front-accent);
    color: #fff;
}

.front-floor-plan__stage {
    position: relative;
    overflow: hidden;
    border-top: 1px solid var(--front-line);
    border-bottom: 1px solid var(--front-line);
    background: #f1f2f2;
}

.front-floor-plan__stage > img {
    width: 100%;
    height: auto;
}

.front-floor-plan__polygons,
.front-floor-plan__markers {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.front-floor-plan__polygons {
    pointer-events: none;
}

.front-floor-plan__polygons polygon {
    opacity: 0;
    fill: rgba(25, 50, 74, 0.13);
    stroke: var(--front-accent);
    stroke-width: 0.9;
    vector-effect: non-scaling-stroke;
    transition: opacity 120ms ease;
}

.front-floor-plan__polygons polygon.is-selected {
    opacity: 1;
}

.front-floor-plan__markers {
    pointer-events: none;
}

.front-floor-plan__markers.is-hidden {
    display: none;
}

.front-floor-plan__marker {
    position: absolute;
    display: inline-flex;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}

.front-floor-plan__marker b {
    display: block;
    padding: 2px 4px;
    border: 1px solid rgba(25, 50, 74, 0.22);
    background: rgba(255, 255, 255, 0.9);
    color: var(--front-accent);
    font-size: 9px;
    line-height: 1.2;
    font-weight: 800;
}

.front-floor-plan__marker.is-selected b {
    border-color: var(--front-accent);
    background: var(--front-accent);
    color: #fff;
}

.front-floor-plan__note {
    margin: 0;
    padding: 14px 24px 16px;
    color: var(--front-muted);
    font-size: 11px;
    line-height: 1.6;
}

.front-floor-plan__units-head {
    border-bottom: 1px solid var(--front-line);
}

.front-floor-plan__unit-list {
    max-height: 720px;
    overflow-y: auto;
}

.front-floor-plan__unit {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 16px 20px;
    border: 0;
    border-bottom: 1px solid var(--front-line);
    background: #fff;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.front-floor-plan__unit:last-child {
    border-bottom: 0;
}

.front-floor-plan__unit:hover,
.front-floor-plan__unit.is-selected {
    background: var(--front-paper);
}

.front-floor-plan__unit.is-selected {
    box-shadow: inset 3px 0 0 var(--front-accent);
}

.front-floor-plan__unit > div strong,
.front-floor-plan__unit > div small,
.front-floor-plan__unit > span,
.front-floor-plan__unit > span small {
    display: block;
}

.front-floor-plan__unit > div strong {
    color: var(--front-ink);
    font-size: 14px;
    line-height: 1.35;
}

.front-floor-plan__unit > div small {
    margin-top: 4px;
    color: var(--front-muted);
    font-size: 10px;
}

.front-floor-plan__unit > span {
    flex: 0 0 auto;
    color: var(--front-ink);
    font-size: 12px;
    line-height: 1.35;
    text-align: right;
}

.front-floor-plan__unit > span small {
    margin-top: 3px;
    color: var(--front-muted);
    font-size: 10px;
}

.front-floor-plan__empty {
    padding: 42px 28px;
    border: 1px solid var(--front-line);
    background: var(--front-paper);
}

.front-floor-plan__empty strong {
    display: block;
    font-size: 18px;
}

.front-floor-plan__empty p {
    margin: 8px 0 0;
    color: var(--front-muted);
    font-size: 13px;
    line-height: 1.6;
}

@media (max-width: 1024px) {
    .front-floor-plan__heading {
        grid-template-columns: minmax(0, 1fr) minmax(240px, 0.72fr);
        gap: 44px;
    }

    .front-floor-plan__heading h2 {
        font-size: clamp(38px, 5vw, 50px);
    }

    .front-floor-plan__layout {
        grid-template-columns: minmax(0, 1fr) 280px;
    }
}

@media (max-width: 720px) {
    .front-floor-plan {
        padding: 62px 0 72px;
    }

    .front-floor-plan__heading {
        display: block;
        margin-bottom: 28px;
    }

    .front-floor-plan__heading h2 {
        font-size: 34px;
        line-height: 1.1;
    }

    .front-floor-plan__heading > p {
        max-width: none;
        margin: 18px 0 0;
        font-size: 14px;
        line-height: 1.7;
    }

    .front-floor-plan__floors {
        grid-template-columns: repeat(auto-fit, minmax(50px, 1fr));
        margin-bottom: 18px;
    }

    .front-floor-plan__floors a {
        padding: 10px 6px;
    }

    .front-floor-plan__floors strong {
        font-size: 12px;
    }

    .front-floor-plan__layout {
        display: block;
    }

    .front-floor-plan__units {
        border-top: 0;
        border-left: 1px solid var(--front-line);
    }

    .front-floor-plan__canvas-head,
    .front-floor-plan__units-head {
        min-height: 0;
        padding: 16px;
    }

    .front-floor-plan__canvas-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .front-floor-plan__canvas-meta {
        width: 100%;
        justify-content: flex-start;
    }

    .front-floor-plan__canvas-head h3,
    .front-floor-plan__units-head strong {
        font-size: 18px;
    }

    .front-floor-plan__marker b {
        font-size: 8px;
    }

    .front-floor-plan__note {
        padding: 12px 16px 14px;
        font-size: 10px;
    }

    .front-floor-plan__unit-list {
        max-height: none;
    }

    .front-floor-plan__unit {
        padding: 15px 16px;
    }
}

/* === Floor-plan interaction states === */
/* OfficeDoor front floor plan interaction states. */

.front-floor-plan__floors a {
    padding-top: 18px;
    padding-bottom: 18px;
}

.front-floor-plan__badge-toggle {
    flex: 0 0 82px;
    width: 82px;
    min-width: 82px;
    justify-content: center;
    white-space: nowrap;
    line-height: 1;
    border-color: var(--front-accent);
    border-radius: 999px;
    background: #fff;
    color: var(--front-accent);
    font-weight: 800;
    box-shadow: 0 1px 2px rgba(17, 21, 26, 0.08);
    transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease, transform 150ms ease;
}

.front-floor-plan__badge-toggle[aria-pressed="true"] {
    border-color: var(--front-accent);
    background: var(--front-accent);
    color: #fff;
}

.front-floor-plan__badge-toggle:hover,
.front-floor-plan__badge-toggle:focus-visible {
    border-color: var(--front-accent);
    outline: 2px solid rgba(25, 50, 74, 0.14);
    outline-offset: 2px;
}

.front-floor-plan__badge-toggle:active {
    transform: translateY(1px);
}

.front-floor-plan__note {
    display: none;
}

.front-floor-plan__layout {
    align-items: stretch;
}

.front-floor-plan__units {
    contain: size;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    align-self: stretch;
    min-height: 0;
    overflow: hidden;
}

.front-floor-plan__unit-list {
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.front-floor-plan__units-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.front-floor-plan__units-basis {
    display: none;
}

.front-floor-plan__area-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    flex: 0 0 auto;
    min-width: 40px;
    height: 28px;
    padding: 0 7px;
    border: 1px solid #d7dce0;
    border-radius: 6px;
    background: #fff;
    color: #2b3137;
    cursor: pointer;
    font-size: 10px;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
    transition: border-color 150ms ease, background-color 150ms ease, transform 150ms ease;
}

.front-floor-plan__area-toggle:hover,
.front-floor-plan__area-toggle:focus-visible {
    border-color: #aeb6bd;
    background: #fafbfc;
    outline: none;
}

.front-floor-plan__area-toggle:active {
    transform: translateY(1px);
}

.front-floor-plan__area-toggle-icon,
.front-floor-plan__area-toggle-label {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    height: 10px;
    margin: 0 !important;
    color: inherit;
    font: inherit;
    font-size: 10px !important;
    font-weight: 650 !important;
    line-height: 10px !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.front-floor-plan__area-toggle-icon {
    width: 10px;
    color: #6f7880;
}

.front-floor-plan__unit {
    display: block;
    padding: 15px 18px 16px;
    text-align: left;
}

.front-floor-plan__unit-name {
    display: block;
    margin: 0 0 9px;
    color: var(--front-ink);
    font-size: 15px;
    line-height: 1.3;
    font-weight: 780;
    letter-spacing: -0.02em;
}

.front-floor-plan__unit-area-main {
    display: flex !important;
    align-items: baseline;
    gap: 6px;
    margin: 0;
    color: var(--front-ink);
    font-size: 12px !important;
    line-height: 1.35;
    text-align: left !important;
}

.front-floor-plan__unit-area-main b {
    color: var(--front-muted);
    font-size: 10px;
    font-weight: 700;
}

.front-floor-plan__unit-area-main i {
    color: var(--front-line);
    font-style: normal;
}

.front-floor-plan__unit-area-main strong {
    color: var(--front-ink);
    font-size: 13px;
    font-weight: 760;
}

.front-floor-plan__unit-area-sub {
    display: block;
    margin-top: 5px;
    color: var(--front-muted);
    font-size: 10px;
    line-height: 1.45;
    letter-spacing: -0.01em;
}

.front-floor-plan__polygons polygon.is-selected {
    opacity: 1;
    fill: rgba(220, 38, 38, 0.045);
    stroke: #dc2626;
    stroke-width: 2.6;
    stroke-dasharray: 9 6;
    stroke-linecap: round;
    stroke-linejoin: round;
    animation: front-floor-plan-outline-flow 0.9s linear infinite;
}

.front-floor-plan__unit.is-selected {
    background: #fff7f7;
    box-shadow: inset 4px 0 0 #dc2626;
}

.front-floor-plan__mobile-preview {
    display: none;
}

@keyframes front-floor-plan-outline-flow {
    to {
        stroke-dashoffset: -30;
    }
}

@media (max-width: 720px) {
    html.front-floor-plan-preview-open,
    body.front-floor-plan-preview-open {
        overflow: hidden;
        overscroll-behavior: none;
    }

    .front-floor-plan__polygons polygon.is-selected {
        stroke-width: 1;
        stroke-dasharray: 5 4;
        vector-effect: non-scaling-stroke;
    }

    .front-floor-plan__floors {
        display: flex;
        grid-template-columns: none;
        gap: 0;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .front-floor-plan__floors::-webkit-scrollbar {
        display: none;
    }

    .front-floor-plan__floors a {
        flex: 0 0 62px;
        min-width: 62px;
        min-height: 42px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 10px;
        scroll-snap-align: center;
    }

    .front-floor-plan__floors strong {
        font-size: 12px;
        line-height: 1;
    }

    .front-floor-plan__canvas-head {
        min-height: 48px;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto;
        align-items: center;
        column-gap: 10px;
        row-gap: 0;
        padding: 9px 12px;
    }

    .front-floor-plan__canvas-head > div:first-child {
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
    }

    .front-floor-plan__canvas-head > div:first-child > span {
        display: none;
    }

    .front-floor-plan__canvas-head h3 {
        font-size: 17px;
        line-height: 1.25;
    }

    .front-floor-plan__canvas-meta {
        grid-column: 2;
        grid-row: 1;
        width: auto;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 6px;
    }

    .front-floor-plan__canvas-meta > span {
        height: 28px;
        min-height: 28px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 8px;
        border: 1px solid var(--front-line);
        border-radius: 6px;
        background: #fff;
        color: #626b73;
        box-shadow: none;
        font-size: 9px;
        font-weight: 750;
        line-height: 1;
        white-space: nowrap;
    }

    .front-floor-plan__canvas-meta > span:first-child {
        grid-column: 1;
        grid-row: 2;
        justify-self: start;
        width: 52px;
        min-width: 52px;
        justify-content: center;
        padding-left: 0;
        padding-right: 0;
        border-color: rgba(25, 50, 74, 0.18);
        background: #f8fafb;
        color: var(--front-accent);
    }

    .front-floor-plan__canvas-meta > span:nth-child(2) {
        grid-column: 2 / 4;
        grid-row: 2;
        justify-self: start;
        min-width: 0;
        margin-left: 0;
    }

    .front-floor-plan__badge-toggle {
        grid-column: 3;
        grid-row: 1;
        align-self: start;
        justify-self: end;
        margin: 0;
        flex: none;
        width: 72px;
        min-width: 72px;
        height: 28px;
        min-height: 28px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 8px;
        font-size: 0;
        line-height: 1;
    }

    .front-floor-plan__badge-toggle::before {
        content: "호실 OFF";
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        font-size: 10px;
        font-weight: 800;
        line-height: 1;
        letter-spacing: -0.02em;
        transform: none;
    }

    .front-floor-plan__badge-toggle[aria-pressed="true"]::before {
        content: "호실 ON";
    }

    .front-floor-plan__units {
        contain: none;
        display: block;
        overflow: visible;
    }

    .front-floor-plan__unit-list {
        overflow: visible;
    }

    .front-floor-plan__units-head {
        min-height: 40px;
        align-items: center;
        padding: 6px 12px;
    }

    .front-floor-plan__units-head span {
        display: none;
    }

    .front-floor-plan__units-head strong {
        display: block;
        font-size: 14px;
        line-height: 1.2;
        font-weight: 800;
    }

    .front-floor-plan__area-toggle {
        min-width: 38px;
        height: 28px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 6px;
        border-radius: 6px;
        line-height: 1;
    }

    .front-floor-plan__area-toggle-icon,
    .front-floor-plan__area-toggle-label {
        height: auto !important;
        min-height: 0;
        margin: 0 !important;
        line-height: 1 !important;
        transform: none;
    }

    .front-floor-plan__unit {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        column-gap: 10px;
        row-gap: 4px;
        min-height: 76px;
        padding: 8px 12px 9px;
    }

    .front-floor-plan__unit-title {
        grid-column: 1 / -1;
        min-width: 0;
    }

    .front-floor-plan__unit-card-head {
        width: 100%;
        margin-bottom: 0 !important;
    }

    .front-floor-plan__unit-identity {
        min-width: 0;
    }

    .front-floor-plan__unit-area-main {
        grid-column: 1;
        min-width: 0;
        white-space: nowrap;
    }

    .front-floor-plan__unit-area-sub {
        grid-column: 2;
        justify-self: end;
        min-width: 0;
        margin-top: 0;
        overflow: hidden;
        font-size: 9px;
        line-height: 1.25;
        text-align: right;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .front-floor-plan__unit-name {
        font-size: 16px;
        line-height: 1.2;
    }

    .front-floor-plan__unit-area-main strong {
        font-size: 14px;
    }

    .front-floor-plan__unit-actions {
        gap: 5px !important;
    }

    .front-floor-plan__unit-action,
    .front-floor-plan__unit-select-action {
        width: 28px !important;
        min-width: 28px !important;
        height: 28px !important;
        min-height: 28px !important;
        border-radius: 5px !important;
    }

    .front-floor-plan__unit-action svg,
    .front-floor-plan__unit-select-action svg {
        width: 14px;
        height: 14px;
    }


    .front-floor-plan__mobile-preview:not([hidden]) {
        position: fixed;
        inset: 0;
        z-index: 1200;
        display: block;
        background: #fff;
    }

    .front-floor-plan__mobile-preview-dialog {
        width: 100%;
        height: 100%;
        display: grid;
        grid-template-rows: auto minmax(0, 1fr) auto;
        background: #fff;
        overflow: hidden;
    }

    .front-floor-plan__mobile-preview-head {
        min-height: 70px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        padding: 12px 16px 12px 18px;
        border-bottom: 1px solid var(--front-line);
        background: #fff;
    }

    .front-floor-plan__mobile-preview-head > div {
        min-width: 0;
    }

    .front-floor-plan__mobile-preview-head span,
    .front-floor-plan__mobile-preview-head strong {
        display: block;
    }

    .front-floor-plan__mobile-preview-head span {
        margin-bottom: 3px;
        color: var(--front-muted);
        font-size: 10px;
        font-weight: 750;
        line-height: 1.3;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .front-floor-plan__mobile-preview-head strong {
        color: var(--front-ink);
        font-size: 20px;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: -0.03em;
    }

    .front-floor-plan__mobile-preview-close {
        flex: 0 0 38px;
        width: 38px;
        height: 38px;
        display: inline-grid;
        place-items: center;
        padding: 0;
        border: 1px solid var(--front-line);
        border-radius: 50%;
        background: #fff;
        color: var(--front-ink);
        font: inherit;
        font-size: 25px;
        font-weight: 300;
        line-height: 1;
        cursor: pointer;
    }

    .front-floor-plan__mobile-preview-stage {
        position: relative;
        min-height: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        background: #f4f5f5;
        overscroll-behavior: none;
        touch-action: none;
    }

    .front-floor-plan__mobile-preview-stage .front-floor-plan__stage {
        flex: 0 0 100%;
        width: 100%;
        border-top: 0;
        border-bottom: 0;
        background: #f4f5f5;
    }

    .front-floor-plan__mobile-preview-stage .front-floor-plan__stage > img {
        width: 100%;
        height: auto;
    }

    .front-floor-plan__mobile-preview-canvas {
        transform-origin: center center;
        will-change: transform;
        user-select: none;
        -webkit-user-select: none;
    }

    .front-floor-plan__mobile-preview-canvas *,
    .front-floor-plan__mobile-preview-canvas > img {
        pointer-events: none;
        user-select: none;
        -webkit-user-select: none;
        -webkit-user-drag: none;
    }

    .front-floor-plan__mobile-preview-meta {
        min-height: 82px;
        padding: 14px 18px 16px;
        border-top: 1px solid var(--front-line);
        background: #fff;
    }

    .front-floor-plan__mobile-preview-meta .front-floor-plan__unit-area-main {
        font-size: 13px !important;
    }

    .front-floor-plan__mobile-preview-meta .front-floor-plan__unit-area-main strong {
        font-size: 15px;
    }

    .front-floor-plan__mobile-preview-meta .front-floor-plan__unit-area-sub {
        margin-top: 6px;
        font-size: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .front-floor-plan__polygons polygon.is-selected {
        animation: none;
        stroke-dashoffset: 0;
    }
}


/* Physical unit transaction / contract badges */
.front-floor-plan__unit-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    min-width:0;
}
.front-floor-plan__unit-title .front-floor-plan__unit-name{
    min-width:0;
}

.front-floor-plan__unit-identity{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
}
.front-floor-plan__unit-badges{
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
    flex-wrap:wrap;
    flex:0 0 auto;
}
.front-floor-plan__unit-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:20px;
    padding:3px 7px;
    border:1px solid transparent;
    border-radius:999px;
    font-size:9px;
    font-weight:850;
    line-height:1;
    letter-spacing:-.02em;
    white-space:nowrap;
}
.front-floor-plan__unit-badge.is-lease{
    border-color:#bfd7fb;
    background:#eaf2ff;
    color:#1557b0;
}
.front-floor-plan__unit-badge.is-primary-sale{
    border-color:#d1c5ff;
    background:#f0edff;
    color:#6445c8;
}
.front-floor-plan__unit-badge.is-sale{
    border-color:#b9e5d8;
    background:#e8f8f2;
    color:#08795c;
}
.front-floor-plan__unit-badge.is-resale{
    border-color:#f1d4ae;
    background:#fff3e4;
    color:#a85b08;
}
.front-floor-plan__unit-badge.is-completed{
    border-color:#c7ced6;
    background:#eef1f4;
    color:#4c5b69;
}
@media(max-width:720px){
    .front-floor-plan__unit-title{
        display:block;
    }

    .front-floor-plan__unit-card-head{
        display:flex !important;
        align-items:center !important;
        justify-content:space-between !important;
        gap:8px !important;
    }

    .front-floor-plan__unit-identity{
        display:flex;
        align-items:center;
        gap:7px;
        min-width:0;
    }

    .front-floor-plan__unit-badges{
        flex-wrap:nowrap;
        justify-content:flex-start;
        gap:3px;
    }

    .front-floor-plan__unit-badge{
        min-height:17px;
        padding:2px 5px;
        font-size:8px;
    }
}

.front-floor-plan [data-floor-unit].is-search-highlight{
    position:relative;
    border-color:var(--front-line)!important;
    background:#f8fbff!important;
    box-shadow:none!important;
}
.front-floor-plan [data-floor-unit].is-search-highlight:before{
    content:"연결 선택";
    position:absolute;
    top:7px;
    right:8px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    color:#1769e8;
    font-size:8px;
    font-weight:900;
    line-height:1;
    z-index:2;
}

/* === Mobile preview layout (consolidated from front-floor-plan-preview.css) === */
/* OfficeDoor mobile unit preview header detail placement. */

@media (max-width: 720px) {
    .front-floor-plan__mobile-preview-dialog {
        grid-template-rows: auto auto minmax(0, 1fr);
    }

    .front-floor-plan__mobile-preview-head {
        grid-row: 1;
        border-bottom: 1px solid var(--front-line);
    }

    .front-floor-plan__mobile-preview-meta {
        grid-row: 2;
        min-height: 0;
        padding: 10px 18px 12px;
        border-top: 0;
        border-bottom: 1px solid var(--front-line);
        background: #fff;
    }

    .front-floor-plan__mobile-preview-areas {
        text-align: left;
    }

    .front-floor-plan__mobile-preview-areas .front-floor-plan__unit-area-sub {
        width: 100%;
        margin: 6px 0 0 !important;
        padding-left: 0 !important;
        justify-self: start;
        text-align: left !important;
        text-indent: 0;
        transform: none;
        font-size: 11px !important;
        line-height: 1.35;
    }

    .front-floor-plan__mobile-preview-stage {
        grid-row: 3;
    }
}

/* === Multi-selection UI (consolidated from front-floor-plan-multi-select.css) === */
/* OfficeDoor floor unit multi-selection summary. */

.front-floor-plan__selection-summary[hidden] {
    display: none !important;
}

.front-floor-plan__selection-summary {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 48px;
    padding: 8px 14px;
    border-top: 1px solid var(--front-line);
    border-bottom: 1px solid var(--front-line);
    background: #f8fafb;
}

.front-floor-plan__selection-count {
    flex: 0 0 auto;
    color: var(--front-accent);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.front-floor-plan__selection-chips {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: 6px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
}

.front-floor-plan__selection-chips::-webkit-scrollbar {
    display: none;
}

.front-floor-plan__selection-chip {
    flex: 0 0 auto;
    height: 28px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 9px 0 10px;
    border: 1px solid rgba(25, 50, 74, 0.28);
    border-radius: 999px;
    background: #fff;
    color: var(--front-accent);
    font: inherit;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

.front-floor-plan__selection-chip b {
    font-size: 15px;
    font-weight: 400;
    line-height: 1;
}

.front-floor-plan__selection-totals {
    flex: 0 0 auto;
    min-width: 190px;
    text-align: right;
}

.front-floor-plan__selection-totals strong,
.front-floor-plan__selection-totals small {
    display: block;
}

.front-floor-plan__selection-totals strong {
    color: var(--front-ink);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

.front-floor-plan__selection-totals small {
    margin-top: 3px;
    color: var(--front-muted);
    font-size: 9px;
    font-weight: 500;
    line-height: 1.25;
    white-space: nowrap;
}

.front-floor-plan__multi-select-toggle {
    flex: 0 0 auto;
    min-width: 72px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    border: 1px solid var(--front-accent);
    border-radius: 999px;
    background: #fff;
    color: var(--front-accent);
    font: inherit;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

.front-floor-plan__multi-select-toggle[aria-pressed="true"] {
    background: var(--front-accent);
    color: #fff;
}

.front-floor-plan__multi-preview-toggle {
    display: none;
}

.front-floor-plan__unit-select-action {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    display: none !important;
    place-items: center;
    padding: 0 !important;
    border: 1px solid rgba(25, 50, 74, 0.22) !important;
    border-radius: 7px !important;
    background: #fff !important;
    color: var(--front-accent) !important;
    box-shadow: none !important;
    cursor: pointer;
}

.front-floor-plan.is-multi-select-mode .front-floor-plan__unit-select-action {
    display: inline-grid !important;
}

.front-floor-plan.is-multi-select-mode [data-floor-unit-view],
.front-floor-plan.is-multi-select-mode [data-floor-unit-fullscreen] {
    display: none !important;
}

.front-floor-plan__unit-select-action[aria-pressed="true"] {
    border-color: var(--front-accent) !important;
    background: var(--front-accent) !important;
    color: #fff !important;
}

.front-floor-plan__unit.is-multi-selected:not(.is-selected) {
    background: #f7fafc;
    box-shadow: inset 3px 0 0 var(--front-accent);
}

.front-floor-plan__polygons polygon.is-multi-selected {
    opacity: 1;
    fill: rgba(220, 38, 38, 0.8);
    stroke: none;
    stroke-width: 0;
    stroke-dasharray: none;
    animation: none;
}

.front-floor-plan__marker.is-multi-selected:not(.is-selected) {
    outline: 1px solid var(--front-accent);
    outline-offset: 1px;
}

@media (min-width: 721px) {
    .front-floor-plan__canvas-head {
        display: grid !important;
        grid-template-columns: minmax(190px, 0.7fr) minmax(320px, 2.3fr) auto;
        column-gap: 24px;
        align-items: center;
    }

    .front-floor-plan__canvas-head > div:first-child {
        grid-column: 1;
        min-width: 0;
    }

    .front-floor-plan__canvas-head > .front-floor-plan__canvas-meta {
        grid-column: 3;
        justify-self: end;
    }

    .front-floor-plan__canvas-head > .front-floor-plan__selection-summary {
        grid-column: 2;
        min-width: 0;
        min-height: 0;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-rows: auto auto;
        gap: 7px 12px;
        padding: 0;
        border: 0;
        background: transparent;
    }

    .front-floor-plan__canvas-head .front-floor-plan__selection-chips {
        grid-column: 1 / -1;
        grid-row: 1;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 5px;
        overflow: visible;
    }

    .front-floor-plan__canvas-head .front-floor-plan__selection-chip {
        height: 25px;
        padding: 0 8px 0 9px;
        font-size: 9px;
    }

    .front-floor-plan__canvas-head .front-floor-plan__selection-chip b {
        font-size: 14px;
    }

    .front-floor-plan__canvas-head .front-floor-plan__selection-count {
        grid-column: 1;
        grid-row: 2;
        align-self: end;
        font-size: 12px;
    }

    .front-floor-plan__canvas-head .front-floor-plan__selection-totals {
        grid-column: 2;
        grid-row: 2;
        align-self: end;
        justify-self: end;
        min-width: 0;
        display: flex;
        align-items: baseline;
        justify-content: flex-end;
        flex-wrap: wrap;
        gap: 3px 10px;
        text-align: right;
    }

    .front-floor-plan__canvas-head .front-floor-plan__selection-totals strong,
    .front-floor-plan__canvas-head .front-floor-plan__selection-totals small {
        display: inline;
        margin: 0;
        white-space: nowrap;
    }

    .front-floor-plan__canvas-head .front-floor-plan__selection-totals strong {
        font-size: 12px;
    }

    .front-floor-plan__canvas-head .front-floor-plan__selection-totals small {
        font-size: 10px;
    }
}

@media (max-width: 720px) {
    .front-floor-plan__units-head{
        justify-content:flex-start;
        gap:6px;
    }

    .front-floor-plan__units-head > div:first-child{
        order:0;
        min-width:0;
        margin-right:auto;
    }

    .front-floor-plan__multi-preview-toggle{
        order:1;
        flex:0 0 auto;
    }

    .front-floor-plan__units-head > .front-floor-plan__area-toggle{
        order:2;
        flex:0 0 50px;
        margin:0 !important;
    }

    .front-floor-plan__multi-select-toggle{
        order:3;
        flex:0 0 66px;
        width:66px;
        min-width:66px;
        margin:0;
    }

    .front-floor-plan__canvas-head > .front-floor-plan__area-toggle,
    .front-floor-plan__canvas-head > .front-floor-plan__area-toggle .front-floor-plan__area-toggle-icon,
    .front-floor-plan__canvas-head > .front-floor-plan__area-toggle .front-floor-plan__area-toggle-label {
        font-size: 13px !important;
    }

    .front-floor-plan__multi-select-toggle {
        min-width: 66px;
        height: 28px;
        min-height: 28px;
        padding: 0 8px;
        box-sizing: border-box;
        font-size: 9px;
    }

    .front-floor-plan__units-head > .front-floor-plan__area-toggle {
        height: 28px !important;
        min-height: 28px !important;
        box-sizing: border-box;
    }

    .front-floor-plan__units-head > .front-floor-plan__area-toggle .front-floor-plan__area-toggle-icon,
    .front-floor-plan__units-head > .front-floor-plan__area-toggle .front-floor-plan__area-toggle-label {
        margin: 0 !important;
        color: inherit !important;
    }

    .front-floor-plan__units-head > .front-floor-plan__area-toggle[aria-pressed="true"],
    .front-floor-plan__units-head > .front-floor-plan__area-toggle[aria-pressed="true"] .front-floor-plan__area-toggle-icon,
    .front-floor-plan__units-head > .front-floor-plan__area-toggle[aria-pressed="true"] .front-floor-plan__area-toggle-label {
        color: #fff !important;
    }

    .front-floor-plan.is-multi-select-mode .front-floor-plan__multi-preview-toggle {
        width: 28px;
        min-width: 28px;
        height: 28px;
        display: inline-grid;
        place-items: center;
        padding: 0;
        border: 1px solid rgba(25, 50, 74, 0.24);
        border-radius: 7px;
        background: #fff;
        color: var(--front-accent);
        cursor: pointer;
    }

    .front-floor-plan.is-multi-select-mode .front-floor-plan__multi-preview-toggle:not(:disabled) {
        border-color: var(--front-accent);
        box-shadow: 0 1px 2px rgba(17, 21, 26, 0.08);
    }

    .front-floor-plan.is-multi-select-mode .front-floor-plan__multi-preview-toggle:disabled {
        opacity: 0.34;
        cursor: default;
    }

    .front-floor-plan__selection-summary {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-rows: auto auto;
        column-gap: 10px;
        row-gap: 7px;
        min-height: 0;
        padding: 8px 12px 9px;
    }

    /* When relocated below the mobile plan, keep one continuous panel edge. */
    .front-floor-plan__layout > .front-floor-plan__selection-summary {
        border-top: 0;
        border-right: 1px solid var(--front-line);
        border-left: 1px solid var(--front-line);
    }

    .front-floor-plan__selection-count {
        grid-column: 1;
        grid-row: 1;
        align-self: center;
    }

    .front-floor-plan__selection-totals {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
        text-align: right;
    }

    .front-floor-plan__selection-totals strong {
        font-size: 11px;
    }

    .front-floor-plan__selection-totals small {
        margin-top: 2px;
        font-size: 8px;
    }

    .front-floor-plan__selection-chips {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
    }

    .front-floor-plan__selection-chip {
        height: 26px;
        padding: 0 8px 0 9px;
        font-size: 9px;
    }

    .front-floor-plan__selection-chip b {
        font-size: 14px;
    }
}

/* === Consolidated front detail sections and enhancements === */
.front-media{border-top:1px solid #26394b;background:#12283d;padding:88px 20px 96px;color:#fff}.front-media .front-shell{max-width:1480px}.front-media__heading{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:64px;align-items:start;margin-bottom:34px}.front-media__heading .front-section-kicker{color:#9eb2c3}.front-media__heading h2{margin:0;font-size:clamp(28px,3vw,40px);line-height:1.17;letter-spacing:-.045em}.front-media__heading>p{max-width:620px;margin:5px 0 0;color:#aebdca;font-size:13px;line-height:1.75}.front-media__tabs{display:flex;gap:6px;margin:0 0 14px;padding:0 0 2px;overflow-x:auto;scrollbar-width:none}.front-media__tabs::-webkit-scrollbar{display:none}.front-media__tab{flex:0 0 auto;display:inline-flex;min-height:34px;align-items:center;gap:7px;padding:0 13px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:transparent;color:#b9c7d2;font:inherit;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}.front-media__tab strong{font-size:9px;opacity:.65}.front-media__tab.is-active{border-color:#fff;background:#fff;color:#12283d}.front-media__viewer{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.13);background:#08131d}.front-media__stage{position:relative;aspect-ratio:16/9;min-height:460px}.front-media__slide{position:absolute;inset:0;display:none}.front-media__slide.is-active{display:block}.front-media__slide>img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:#08131d}.front-media__video{position:absolute;inset:0;background:#050b10}.front-media__video iframe{display:block;width:100%;height:100%;border:0}.front-media__empty-video{display:grid;width:100%;height:100%;place-items:center;color:#93a4b2;font-size:12px}.front-media__caption{position:absolute;z-index:2;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:54px 24px 22px;background:linear-gradient(180deg,transparent,rgba(5,13,20,.88));pointer-events:none}.front-media__caption-copy{min-width:0}.front-media__caption-category{display:block;margin-bottom:5px;color:#b5c5d1;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.front-media__caption h3{margin:0;font-size:18px;line-height:1.35;letter-spacing:-.025em}.front-media__caption p{max-width:660px;margin:7px 0 0;color:#c6d1da;font-size:11px;line-height:1.65}.front-media__index{flex:0 0 auto;color:#c4d0d9;font-size:10px;font-weight:800}.front-media__nav{position:absolute;z-index:4;top:50%;display:grid;width:42px;height:42px;place-items:center;transform:translateY(-50%);border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(7,17,26,.68);color:#fff;cursor:pointer}.front-media__nav:hover{background:rgba(7,17,26,.9)}.front-media__nav svg,.front-media__thumbnav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.front-media__nav.is-prev{left:16px}.front-media__nav.is-next{right:16px}.front-media__thumbrail{position:relative;margin-top:9px;padding:0;overflow:hidden}.front-media__thumbs{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}.front-media__thumbs::-webkit-scrollbar{display:none}.front-media__thumb{position:relative;display:block;flex:0 0 144px;width:144px;height:88px;padding:0;overflow:hidden;border:1px solid transparent;background:#08131d;cursor:pointer}.front-media__thumb.is-hidden{display:none}.front-media__thumb.is-active{border-color:#fff}.front-media__thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.72;transition:opacity .18s ease,transform .18s ease}.front-media__thumb:hover img,.front-media__thumb.is-active img{opacity:1}.front-media__thumb:hover img{transform:scale(1.025)}.front-media__thumb-label{position:absolute;right:0;bottom:0;left:0;padding:20px 9px 7px;background:linear-gradient(180deg,transparent,rgba(3,10,15,.84));color:#fff;font-size:9px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.front-media__thumbnav{position:absolute;z-index:6;top:50%;display:grid;width:34px;height:54px;place-items:center;transform:translateY(-50%);border:1px solid rgba(255,255,255,.25);border-radius:8px;background:rgba(7,17,26,.78);color:#fff;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,.28);backdrop-filter:blur(3px)}.front-media__thumbnav[hidden]{display:none}.front-media__thumbnav.is-prev{left:6px}.front-media__thumbnav.is-next{right:6px}.front-media__thumbnav:hover{background:rgba(7,17,26,.95)}.front-media__play{position:absolute;z-index:2;top:50%;left:50%;display:grid;width:34px;height:34px;place-items:center;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(5,13,20,.58);color:#fff}.front-media__play svg{width:13px;height:13px;margin-left:2px;fill:currentColor}.front-media__empty{padding:50px 22px;border:1px solid rgba(255,255,255,.14);color:#aab9c5;text-align:center;font-size:12px}.front-media__count-note{margin:12px 0 0;color:#8195a6;font-size:9px;text-align:right}
@media(max-width:720px){.front-media{padding:50px 16px 58px}.front-media .front-shell{max-width:none}.front-media__heading{grid-template-columns:1fr;gap:14px;margin-bottom:24px}.front-media__heading h2{font-size:27px}.front-media__heading>p{font-size:12px}.front-media__tabs{margin-right:-16px;padding-right:16px}.front-media__stage{min-height:0;aspect-ratio:4/3}.front-media__caption{padding:48px 16px 14px}.front-media__caption h3{font-size:15px}.front-media__caption p{display:none}.front-media__index{font-size:9px}.front-media__nav{width:36px;height:36px}.front-media__nav.is-prev{left:10px}.front-media__nav.is-next{right:10px}.front-media__thumbrail{padding:0}.front-media__thumb{flex-basis:112px;width:112px;height:72px}.front-media__thumbnav{width:30px;height:46px}.front-media__thumbnav.is-prev{left:5px}.front-media__thumbnav.is-next{right:5px}.front-media__thumb-label{font-size:8px}.front-media__count-note{text-align:left}}

/* === Listings === */
.front-listings{border-top:1px solid #e3e7ea;background:#f6f7f8;padding:92px 20px 96px;color:#111820}.front-listings .front-shell{max-width:1480px}.front-listings__heading{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:64px;align-items:start;margin-bottom:34px}.front-listings__heading h2{margin:0;font-size:clamp(30px,3vw,42px);line-height:1.15;letter-spacing:-.045em}.front-listings__heading>p{max-width:700px;margin:5px 0 0;color:#65717c;font-size:14px;line-height:1.75}.front-listings__overview{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);border:1px solid #dbe1e6;background:#fff}.front-listings__overview-copy{display:flex;min-height:184px;flex-direction:column;justify-content:center;padding:30px 32px;border-right:1px solid #e3e7ea}.front-listings__overview-copy>span,.front-listings__sample-head span,.front-listings__consult-note span{display:block;margin-bottom:8px;color:#66737e;font-size:10px;font-weight:850;letter-spacing:.12em}.front-listings__overview-copy>strong{font-size:28px;line-height:1.25;letter-spacing:-.035em}.front-listings__overview-copy>p{max-width:430px;margin:10px 0 0;color:#6d7983;font-size:12px;line-height:1.65}.front-listings__overview-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:stretch}.front-listings__overview-stats>div{display:flex;min-height:184px;flex-direction:column;justify-content:center;padding:24px 22px;border-right:1px solid #edf0f2}.front-listings__overview-stats>div:last-child{border-right:0}.front-listings__overview-stats span{display:block;margin-bottom:9px;color:#84909a;font-size:10px}.front-listings__overview-stats strong{font-size:22px;line-height:1.2;letter-spacing:-.03em}.front-listings__overview-stats small{display:block;margin-top:5px;color:#8c969e;font-size:10px}.front-listings__sample-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:36px 0 16px}.front-listings__sample-head h3{margin:0;font-size:26px;line-height:1.2;letter-spacing:-.035em}.front-listings__sample-head>div:first-child>p{margin:7px 0 0;color:#74808a;font-size:13px}.front-listings__area-toggle{display:flex;align-items:center;gap:8px}.front-listings__area-toggle button{min-width:104px;height:42px;padding:0 16px;border:1px solid #d5dce2;border-radius:999px;background:#fff;color:#1e2d39;font:inherit;font-size:13px;font-weight:850;cursor:pointer;transition:.16s ease}.front-listings__area-toggle button small{display:inline;margin:0 0 0 3px;color:inherit;font-size:11px;font-weight:750;letter-spacing:0}.front-listings__area-toggle button.is-active{border-color:#17324a;background:#17324a;color:#fff;box-shadow:0 4px 14px rgba(23,50,74,.14)}.front-listings__area-toggle button:focus-visible{outline:2px solid #17324a;outline-offset:2px}.front-listings__samples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:14px;align-items:stretch}.front-listings__sample{display:flex;height:100%;min-height:390px;flex-direction:column;padding:22px 24px;border:1px solid #dbe1e6;background:#fff}.front-listings__sample-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.front-listings__sample-top>small{color:#adb5bc;font-size:10px;font-weight:800;letter-spacing:.08em}.front-listings__sample-badges{display:flex;flex-wrap:wrap;gap:6px}.front-listings__sample-badges span{display:inline-flex;min-height:24px;align-items:center;padding:0 9px;border-radius:999px;background:#17324a;color:#fff;font-size:10px;font-weight:850}.front-listings__sample-badges span.is-muted{background:#eef2f5;color:#596772}.front-listings__sample-identity{margin-top:16px}.front-listings__sample-identity>span{display:block;margin-bottom:3px;color:#7d8993;font-size:10px;font-weight:800}.front-listings__sample-identity>strong{display:block;font-size:28px;line-height:1.12;letter-spacing:-.04em}.front-listings__sample-identity>p{margin:6px 0 0;color:#65727c;font-size:12px;font-weight:750}.front-listings__sample-identity>p b{color:#33414d;font-weight:850}.front-listings__area-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:16px 0 0;border:1px solid #e7ebef;background:#f8fafb}.front-listings__area-grid>div{padding:12px 13px;border-right:1px solid #e7ebef}.front-listings__area-grid>div:last-child{border-right:0}.front-listings__area-grid dt{margin:0 0 4px;color:#7f8a93;font-size:9px}.front-listings__area-grid dd{margin:0;color:#1d2b36;font-size:14px;font-weight:850;white-space:nowrap}.front-listings__sample-price{margin-top:16px;padding-top:14px;border-top:1px solid #e9edf0}.front-listings__sample-conditions{display:grid;gap:0}.front-listings__sample-conditions.is-paired{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.front-listings__sample-condition{padding:12px 0;border-top:1px solid #edf0f2}.front-listings__sample-condition:first-child{padding-top:0;border-top:0}.front-listings__sample-condition:last-child{padding-bottom:0}.front-listings__sample-conditions.is-paired .front-listings__sample-condition{padding:0 0 0 18px;border-top:0;border-left:1px solid #e6eaed}.front-listings__sample-conditions.is-paired .front-listings__sample-condition:first-child{padding-left:0;border-left:0}.front-listings__sample-conditions.is-paired .front-listings__sample-condition:not(:first-child) .front-listings__sample-condition-meta{display:none}.front-listings__sample-condition-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.front-listings__sample-condition-head>span{color:#53616d;font-size:11px;font-weight:850}.front-listings__sample-condition-head>small{color:#8c969e;font-size:9px;font-weight:750}.front-listings__sample-condition>strong{display:block;font-size:18px;line-height:1.38;letter-spacing:-.03em}.front-listings__sample-condition-meta{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;margin-top:7px}.front-listings__sample-condition-meta>span{color:#919aa2;font-size:9px}.front-listings__sample-condition-meta>b{color:#56616a;font-size:10px;font-weight:750;line-height:1.45}.front-listings__sample-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto;padding-top:18px}.front-listings__sample-actions a{display:inline-flex;min-height:40px;align-items:center;justify-content:center;padding:0 12px;border:1px solid #cfd7dd;background:#fff;color:#26343f;text-decoration:none;font-size:11px;font-weight:850;text-align:center}.front-listings__sample-actions a:first-child{border-color:#17324a;background:#17324a;color:#fff}.front-listings__sample-actions a:focus-visible{outline:2px solid #17324a;outline-offset:2px}.front-listings__sample-verified{margin:10px 0 0;color:#8d979f;font-size:9px}.front-listings__consult-note{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:42px;align-items:center;margin-top:16px;padding:25px 28px;border:1px solid #dbe1e6;background:#edf2f5}.front-listings__consult-note strong{display:block;font-size:15px;line-height:1.55;letter-spacing:-.015em}.front-listings__consult-note p{margin:0;color:#65727c;font-size:11px;line-height:1.65}.front-listings__empty{padding:48px 28px;border:1px solid #dbe1e6;background:#fff}.front-listings__empty strong{display:block;margin-bottom:8px;font-size:18px;letter-spacing:-.025em}.front-listings__empty p{max-width:720px;margin:0;color:#6e7982;font-size:12px;line-height:1.7}
@media(max-width:1180px){.front-listings__overview{grid-template-columns:1fr}.front-listings__overview-copy{min-height:0;border-right:0;border-bottom:1px solid #e3e7ea}.front-listings__overview-stats{grid-template-columns:repeat(6,minmax(140px,1fr));overflow-x:auto}.front-listings__overview-stats>div{min-height:132px}.front-listings__samples{grid-template-columns:repeat(2,minmax(0,1fr))}.front-listings__sample{min-height:380px}}
@media(max-width:720px){.front-listings{padding:54px 16px 64px}.front-listings .front-shell{max-width:none}.front-listings__heading{grid-template-columns:1fr;gap:14px;margin-bottom:24px}.front-listings__heading h2{font-size:28px}.front-listings__heading>p{font-size:13px}.front-listings__overview-copy{padding:24px 20px}.front-listings__overview-copy>strong{font-size:23px}.front-listings__overview-stats{grid-template-columns:repeat(6,minmax(118px,1fr));scrollbar-width:none}.front-listings__overview-stats::-webkit-scrollbar{display:none}.front-listings__overview-stats>div{min-height:112px;padding:18px 16px}.front-listings__overview-stats strong{font-size:19px}.front-listings__sample-head{display:grid;gap:13px;margin-top:28px}.front-listings__sample-head h3{font-size:23px}.front-listings__sample-head>div:first-child>p{font-size:12px}.front-listings__area-toggle{justify-content:flex-start}.front-listings__area-toggle button{min-width:96px;height:38px;padding:0 13px;font-size:12px}.front-listings__samples{grid-template-columns:1fr;grid-auto-rows:auto}.front-listings__sample{height:auto;min-height:0;padding:20px}.front-listings__sample-identity{margin-top:14px}.front-listings__sample-identity>strong{font-size:25px}.front-listings__area-grid{margin-top:13px}.front-listings__area-grid>div{padding:11px 9px}.front-listings__area-grid dd{font-size:13px}.front-listings__sample-price{margin-top:14px;padding-top:12px}.front-listings__sample-conditions.is-paired{grid-template-columns:1fr}.front-listings__sample-conditions.is-paired .front-listings__sample-condition{padding:11px 0;border-left:0;border-top:1px solid #edf0f2}.front-listings__sample-conditions.is-paired .front-listings__sample-condition:first-child{padding-top:0;border-top:0}.front-listings__sample-conditions.is-paired .front-listings__sample-condition:not(:first-child) .front-listings__sample-condition-meta{display:none}.front-listings__sample-condition{padding:11px 0}.front-listings__sample-condition>strong{font-size:17px}.front-listings__sample-actions{margin-top:15px;padding-top:0}.front-listings__sample-actions a{min-height:40px;padding:0 8px}.front-listings__sample-verified{margin-top:10px}.front-listings__consult-note{grid-template-columns:1fr;gap:12px;padding:22px 20px}.front-listings__empty{padding:34px 20px}}

/* === Listing floor-plan modal === */
.front-listing-plan-modal[hidden]{display:none}.front-listing-plan-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;background:rgba(5,15,24,.78);backdrop-filter:blur(4px)}html.front-listing-plan-modal-open,body.front-listing-plan-modal-open{overflow:hidden}.front-listing-plan-modal__dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(1500px,calc(100vw - 40px));height:min(900px,calc(100dvh - 40px));max-height:calc(100dvh - 40px);overflow:hidden;border:1px solid rgba(255,255,255,.16);background:#102b40;color:#fff;box-shadow:0 30px 90px rgba(0,0,0,.38)}.front-listing-plan-modal__head{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.12);background:#102b40}.front-listing-plan-modal__title-wrap{min-width:0}.front-listing-plan-modal__title-wrap span{display:block;margin:0;color:#fff;font-size:16px;font-weight:800;line-height:1.2;letter-spacing:-.03em;text-transform:none}.front-listing-plan-modal__title-wrap strong{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.front-listing-plan-modal__controls{display:flex;align-items:center;gap:6px;flex:0 0 auto}.front-listing-plan-modal__controls button{display:inline-grid;min-width:38px;height:38px;place-items:center;padding:0 10px;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:rgba(255,255,255,.06);color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.front-listing-plan-modal__controls button:hover{background:rgba(255,255,255,.14)}.front-listing-plan-modal__controls [data-listing-plan-reset]{min-width:58px;font-size:10px}.front-listing-plan-modal__controls .front-listing-plan-modal__close{margin-left:5px;border-color:rgba(255,255,255,.3);font-size:22px;font-weight:400}.front-listing-plan-modal__viewport{position:relative;display:flex;min-width:0;min-height:0;align-items:center;justify-content:center;overflow:hidden;background:#071a2a;touch-action:none;user-select:none;cursor:grab}.front-listing-plan-modal__viewport:active{cursor:grabbing}.front-listing-plan-modal__loading,.front-listing-plan-modal__error{padding:28px;color:#b9c8d3;font-size:12px;line-height:1.6;text-align:center}.front-listing-plan-modal__error{color:#fff}.front-listing-plan-modal__canvas.front-floor-plan__stage{position:relative;flex:0 0 auto;max-width:none!important;max-height:none!important;margin:0!important;overflow:visible!important;background:#fff;transform-origin:center center;will-change:transform}.front-listing-plan-modal__canvas.front-floor-plan__stage>img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:fill!important;pointer-events:none}.front-listing-plan-modal__canvas .front-floor-plan__polygons{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;pointer-events:none}.front-listing-plan-modal__canvas [data-unit-polygon]{fill:transparent!important;stroke:rgba(25,50,74,.18)!important;stroke-width:.1!important;vector-effect:non-scaling-stroke}.front-listing-plan-modal__canvas [data-unit-polygon].is-selected{fill:rgba(220,38,38,.28)!important;stroke:#dc2626!important;stroke-width:.8!important;stroke-dasharray:none!important;animation:none!important;vector-effect:non-scaling-stroke}.front-listing-plan-modal__canvas .front-floor-plan__markers{display:none!important}.front-listing-plan-modal__foot{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:44px;padding:9px 18px;border-top:1px solid rgba(255,255,255,.1);background:#102b40;color:#9fb3c2;font-size:9px;line-height:1.4}.front-listing-plan-modal__foot span:last-child{text-align:right}
@media(max-width:720px){.front-listing-plan-modal{padding:0}.front-listing-plan-modal__dialog{width:100vw;height:100dvh;max-height:100dvh;border:0}.front-listing-plan-modal__head{min-height:58px;padding:9px 10px}.front-listing-plan-modal__title-wrap span{font-size:15px}.front-listing-plan-modal__controls{gap:4px}.front-listing-plan-modal__controls button{min-width:34px;height:34px;padding:0 8px}.front-listing-plan-modal__controls [data-listing-plan-reset]{min-width:46px;font-size:9px}.front-listing-plan-modal__controls .front-listing-plan-modal__close{margin-left:1px}.front-listing-plan-modal__foot{min-height:48px;padding:8px 12px;font-size:8px}.front-listing-plan-modal__foot span:first-child{display:none}}

/* === Documents === */
.front-documents{position:relative;padding:104px 0 108px;background:#fff;border-top:1px solid #dfe4e9;border-bottom:1px solid #dfe4e9}.front-documents::before{content:'';position:absolute;inset:0 0 auto;height:1px;background:rgba(25,50,74,.035);pointer-events:none}.front-documents__head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:64px;align-items:end;margin-bottom:30px}.front-documents__head h2{margin:8px 0 0;color:var(--front-ink);font-size:clamp(34px,4.2vw,56px);line-height:1.04;letter-spacing:-.055em}.front-documents__head-copy{text-align:right}.front-documents__head-copy strong{display:block;color:#24384b;font-size:14px;line-height:1.6}.front-documents__head-copy p{margin:7px 0 0;color:var(--front-muted);font-size:12px;line-height:1.7}.front-documents__head-copy span{display:block;margin-top:8px;color:#929aa4;font-size:10px;line-height:1.65}.front-documents__trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px;border:1px solid #e2e7ec;border-radius:14px;background:#f8fafb;overflow:hidden}.front-documents__trust>div{position:relative;padding:17px 20px 18px}.front-documents__trust>div+div{border-left:1px solid #e2e7ec}.front-documents__trust b{display:block;margin-bottom:8px;color:#7890a4;font-size:9px;letter-spacing:.12em}.front-documents__trust strong{display:block;color:#19324a;font-size:12px}.front-documents__trust span{display:block;margin-top:5px;color:#7b8793;font-size:10px;line-height:1.55}.front-documents__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.front-documents__card{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px;border:1px solid #dde3e9;border-radius:16px;background:#f8fafb;box-shadow:0 14px 34px rgba(17,24,39,.055)}.front-documents__icon{width:64px;height:64px;display:grid;place-items:center;border-radius:15px;background:#eef3f7;color:#19324a}.front-documents__icon svg{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.front-documents__meta{display:flex;align-items:center;gap:7px;margin-bottom:8px}.front-documents__meta span,.front-documents__meta b{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;font-size:10px;font-weight:900}.front-documents__meta span{background:#e9f0f5;color:#355068}.front-documents__meta b{background:#fff2f2;color:#c24141;border:1px solid #f7dada}.front-documents__body h3{margin:0;color:#111827;font-size:17px;line-height:1.35;letter-spacing:-.025em;overflow-wrap:anywhere}.front-documents__body>p{margin:7px 0 0;color:#6b7280;font-size:12px;line-height:1.65}.front-documents__details{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:11px;color:#9aa2ad;font-size:10px}.front-documents__details span+span{position:relative}.front-documents__details span+span::before{content:'';position:absolute;left:-7px;top:50%;width:2px;height:2px;border-radius:50%;background:#c9cfd6}.front-documents__download{min-width:118px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 14px;border:1px solid #d6dde5;border-radius:11px;background:#fff;color:#19324a;font-family:inherit;font-size:11px;font-weight:900;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}.front-documents__download:hover{transform:translateY(-1px);background:#19324a;color:#fff;border-color:#19324a}.front-documents__download b{font-size:16px;line-height:1}.front-documents__notice{margin:20px 0 0;color:#8b949f;font-size:10px;line-height:1.7}.front-documents__notice::before{content:'※ '}.front-documents-modal-open{overflow:hidden}.front-documents__modal[hidden]{display:none}.front-documents__modal{position:fixed;z-index:10050;inset:0;display:grid;place-items:center;padding:20px;background:rgba(10,20,30,.62);backdrop-filter:blur(7px)}.front-documents__dialog{width:min(100%,510px);max-height:calc(100vh - 40px);overflow:auto;padding:28px;border:1px solid rgba(255,255,255,.7);border-radius:20px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.26);outline:none}.front-documents__dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.front-documents__dialog-head span{display:block;color:#668097;font-size:9px;font-weight:900;letter-spacing:.13em}.front-documents__dialog-head h3{margin:7px 0 0;color:#111827;font-size:25px;line-height:1.25;letter-spacing:-.04em}.front-documents__dialog-close{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #e1e6eb;border-radius:50%;background:#fff;color:#66717c;font-size:23px;line-height:1;cursor:pointer}.front-documents__selected{margin-top:22px;padding:14px 16px;border-radius:11px;background:#f4f7f9}.front-documents__selected small{display:block;color:#81909d;font-size:9px;font-weight:800}.front-documents__selected strong{display:block;margin-top:4px;color:#19324a;font-size:13px;line-height:1.45}.front-documents__dialog-intro{margin:18px 0 20px;color:#64707c;font-size:12px;line-height:1.75}.front-documents__dialog-intro strong{color:#33495d}.front-documents__form{display:grid;gap:14px}.front-documents__form>label>span{display:block;margin-bottom:7px;color:#263746;font-size:11px;font-weight:800}.front-documents__form em{color:#b74a4a;font-style:normal;font-size:9px}.front-documents__form input[type=text],.front-documents__form input[type=email]{width:100%;min-height:46px;padding:0 13px;border:1px solid #d8dee5;border-radius:9px;background:#fff;color:#111827;font:inherit;font-size:13px;box-sizing:border-box;outline:none}.front-documents__form input[type=text]:focus,.front-documents__form input[type=email]:focus{border-color:#6f879c;box-shadow:0 0 0 3px rgba(25,50,74,.08)}.front-documents__form label>small{display:block;margin-top:6px;color:#8b949f;font-size:9px;line-height:1.55}.front-documents__consent{display:flex;align-items:flex-start;gap:9px;padding-top:3px}.front-documents__consent input{width:15px;height:15px;margin:2px 0 0;flex:0 0 auto}.front-documents__consent>span{margin:0!important;color:#65717c!important;font-size:10px!important;font-weight:600!important;line-height:1.6}.front-documents__consent a{color:#19324a;font-weight:800;text-underline-offset:2px}.front-documents__modal-status{padding:11px 13px;border-radius:9px;font-size:11px;line-height:1.55}.front-documents__modal-status.is-success{border:1px solid #cce7d7;background:#f2fbf6;color:#286343}.front-documents__modal-status.is-error{border:1px solid #efd0d0;background:#fff6f6;color:#9f3434}.front-documents__submit{min-height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border:0;border-radius:10px;background:#19324a;color:#fff;font-family:inherit;font-size:12px;font-weight:900;cursor:pointer}.front-documents__submit:disabled{opacity:.58;cursor:default}.front-documents__submit b{font-size:17px}.front-documents__security-note{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:16px;padding-top:15px;border-top:1px solid #edf0f3;color:#7f8b96;font-size:9px}.front-documents__security-note span{white-space:nowrap}@media(max-width:960px){.front-documents{padding:80px 0 84px}.front-documents__head{grid-template-columns:1fr;gap:20px}.front-documents__head-copy{text-align:left}.front-documents__grid{grid-template-columns:1fr}}@media(max-width:720px){.front-documents{padding:66px 0 70px}.front-documents__head{margin-bottom:22px}.front-documents__head h2{font-size:34px}.front-documents__head-copy strong{font-size:13px}.front-documents__trust{grid-template-columns:1fr}.front-documents__trust>div{padding:14px 16px}.front-documents__trust>div+div{border-left:0;border-top:1px solid #e2e7ec}.front-documents__card{grid-template-columns:52px minmax(0,1fr);gap:14px;padding:17px;border-radius:13px}.front-documents__icon{width:50px;height:50px;border-radius:12px}.front-documents__icon svg{width:29px;height:29px}.front-documents__body h3{font-size:16px}.front-documents__body>p{font-size:11px}.front-documents__download{grid-column:1/-1;width:100%;min-height:45px;margin-top:2px}.front-documents__details{margin-top:9px}.front-documents__modal{padding:12px;align-items:end}.front-documents__dialog{width:100%;max-height:calc(100vh - 24px);padding:22px 18px 18px;border-radius:18px 18px 14px 14px}.front-documents__dialog-head h3{font-size:22px}.front-documents__security-note{display:grid;grid-template-columns:1fr 1fr;gap:7px}}

/* === Inquiry === */
.front-inquiry-modal[hidden],
.front-inquiry__privacy-modal[hidden]{
    display:none!important;
}

.front-inquiry-modal{
    position:fixed;
    inset:0;
    z-index:1200;
    display:grid;
    place-items:center;
    padding:24px;
}

.front-inquiry-modal__backdrop{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
    background:rgba(8,20,31,.64);
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
    cursor:pointer;
}

.front-inquiry-modal__dialog{
    position:relative;
    z-index:1;
    width:min(680px,100%);
    max-height:min(88vh,780px);
    display:grid;
    grid-template-rows:auto 3px minmax(0,1fr);
    overflow:hidden;
    border:1px solid rgba(255,255,255,.2);
    border-radius:8px;
    background:#fff;
    box-shadow:0 28px 80px rgba(5,20,33,.28);
    outline:none;
}

.front-inquiry-modal__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    padding:20px 22px 16px;
    border-bottom:1px solid #e6eaed;
}

.front-inquiry-modal__head h2{
    margin:0;
    color:#14202b;
    font-size:24px;
    line-height:1.18;
    letter-spacing:-.035em;
}

.front-inquiry-modal__head p{
    margin:5px 0 0;
    color:#73808a;
    font-size:12px;
    line-height:1.5;
}

.front-inquiry-modal__close{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    padding:0;
    border:1px solid #dfe5e9;
    border-radius:50%;
    background:#fff;
    color:#4d5c67;
    font:inherit;
    font-size:22px;
    line-height:1;
    cursor:pointer;
}

.front-inquiry-modal__progress{
    position:relative;
    overflow:hidden;
    background:#edf1f4;
}

.front-inquiry-modal__progress span{
    display:block;
    width:25%;
    height:100%;
    background:#246d9f;
    transition:width .22s ease;
}

.front-inquiry__panel{
    min-height:0;
    overflow:auto;
    padding:22px;
    background:#fff;
    overscroll-behavior:contain;
}

.front-inquiry__form{
    display:block;
}

.front-inquiry__honeypot{
    position:absolute!important;
    left:-10000px!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
}

.front-inquiry-step[hidden]{
    display:none!important;
}

.front-inquiry-step__question{
    margin-bottom:18px;
}

.front-inquiry-step__question>span{
    display:block;
    margin-bottom:7px;
    color:#2b6f9f;
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
}

.front-inquiry-step__question h3{
    margin:0;
    color:#14202b;
    font-size:22px;
    line-height:1.22;
    letter-spacing:-.035em;
}

.front-inquiry-step__question p{
    margin:6px 0 0;
    color:#75818b;
    font-size:12px;
    line-height:1.55;
}

.front-inquiry-choice-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}

.front-inquiry-choice{
    position:relative;
    display:block;
    cursor:pointer;
}

.front-inquiry-choice input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.front-inquiry-choice>span{
    min-height:74px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    padding:13px 14px;
    border:1px solid #dce3e8;
    border-radius:5px;
    background:#fff;
    transition:border-color .16s ease,background .16s ease,box-shadow .16s ease;
}

.front-inquiry-choice strong{
    color:#233746;
    font-size:14px;
    line-height:1.25;
}

.front-inquiry-choice small{
    color:#83909a;
    font-size:11px;
    line-height:1.45;
}

.front-inquiry-choice input:checked+span{
    border-color:#246d9f;
    background:#f1f7fb;
    box-shadow:inset 3px 0 0 #246d9f;
}

.front-inquiry-choice input:focus-visible+span{
    outline:2px solid rgba(36,109,159,.3);
    outline-offset:2px;
}

.front-inquiry-choice-grid--area{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

.front-inquiry-choice--compact>span{
    min-height:50px;
    align-items:center;
    text-align:center;
    padding:10px;
}

.front-inquiry__custom-area{
    margin-top:14px;
}

.front-inquiry__custom-area[hidden]{
    display:none!important;
}

.front-inquiry-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px 12px;
}

.front-inquiry__field{
    display:grid;
    gap:7px;
}

.front-inquiry__field label,
.front-inquiry__custom-area>label{
    color:#56636d;
    font-size:11px;
    font-weight:850;
    letter-spacing:.02em;
}

.front-inquiry__field label em{
    color:#246d9f;
    font-style:normal;
}

.front-inquiry__field label span{
    color:#98a1a8;
    font-weight:700;
}

.front-inquiry__field input,
.front-inquiry__field textarea,
.front-inquiry__area-input input{
    width:100%;
    box-sizing:border-box;
    border:1px solid #d9e1e6;
    border-radius:5px;
    background:#fbfcfd;
    color:#14202b;
    font:inherit;
    font-size:14px;
    outline:none;
    transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}

.front-inquiry__field input,
.front-inquiry__area-input input{
    height:48px;
    padding:0 13px;
}

.front-inquiry__field textarea{
    min-height:118px;
    padding:13px;
    resize:vertical;
    line-height:1.6;
}

.front-inquiry__field input:focus,
.front-inquiry__field textarea:focus,
.front-inquiry__area-input input:focus{
    border-color:#5f91b5;
    background:#fff;
    box-shadow:0 0 0 3px rgba(36,109,159,.08);
}

.front-inquiry__area-input{
    position:relative;
    margin-top:7px;
}

.front-inquiry__area-input input{
    padding-right:48px;
}

.front-inquiry__area-input span{
    position:absolute;
    right:14px;
    top:50%;
    transform:translateY(-50%);
    color:#66747e;
    font-size:13px;
    font-weight:900;
    pointer-events:none;
}

.front-inquiry__consent{
    display:flex;
    align-items:flex-start;
    gap:9px;
    margin-top:17px;
    color:#65727c;
    font-size:12px;
    line-height:1.6;
    cursor:pointer;
}

.front-inquiry__consent input{
    margin-top:3px;
    accent-color:#246d9f;
}

.front-inquiry__privacy-open{
    margin:0 0 0 3px;
    padding:0;
    border:0;
    background:transparent;
    color:#246d9f;
    font:inherit;
    font-weight:850;
    text-decoration:underline;
    text-underline-offset:3px;
    cursor:pointer;
}

.front-inquiry__note{
    margin:11px 0 0;
    color:#929ba2;
    font-size:11px;
    line-height:1.55;
}

.front-inquiry-modal__actions{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:10px;
    margin-top:22px;
    padding-top:16px;
    border-top:1px solid #e8ecef;
}

.front-inquiry-modal__prev{grid-column:1;justify-self:start}
.front-inquiry-modal__step-label{grid-column:2;justify-self:center}
.front-inquiry-modal__next,
.front-inquiry__submit{grid-column:3;justify-self:end}

.front-inquiry-modal__prev[hidden],
.front-inquiry-modal__next[hidden],
.front-inquiry__submit[hidden]{
    display:none!important;
}

.front-inquiry-modal__prev,
.front-inquiry-modal__next,
.front-inquiry__submit{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 17px;
    border-radius:4px;
    font:inherit;
    font-size:13px;
    font-weight:900;
    cursor:pointer;
}

.front-inquiry-modal__prev{
    border:1px solid #d7e0e6;
    background:#fff;
    color:#53636f;
}

.front-inquiry-modal__next,
.front-inquiry__submit{
    border:1px solid #193b59;
    background:#193b59;
    color:#fff;
}

.front-inquiry__submit{
    gap:14px;
}

.front-inquiry__submit b{
    font-size:17px;
}

.front-inquiry-modal__step-label{
    color:#8a959d;
    font-size:11px;
    font-weight:850;
}

.front-inquiry__errors{
    margin-bottom:18px;
    padding:13px 14px;
    border:1px solid #edd0ca;
    border-radius:5px;
    background:#fff6f4;
    color:#7d2d24;
}

.front-inquiry__errors strong{
    display:block;
    font-size:13px;
}

.front-inquiry__errors ul{
    margin:6px 0 0;
    padding-left:18px;
    font-size:12px;
    line-height:1.6;
}

.front-inquiry__complete{
    min-height:360px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:28px 18px;
    text-align:center;
}

.front-inquiry__complete-icon{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    margin-bottom:18px;
    border-radius:50%;
    background:#edf8f1;
    color:#15803d;
    font-size:28px;
    font-weight:900;
}

.front-inquiry__complete-kicker{
    margin:0 0 8px;
    color:#246d9f;
    font-size:10px!important;
    font-weight:900;
    letter-spacing:.13em;
}

.front-inquiry__complete h3{
    margin:0;
    color:#14202b;
    font-size:25px;
    letter-spacing:-.035em;
}

.front-inquiry__complete>p:not(.front-inquiry__complete-kicker){
    margin:9px 0 0;
    color:#67757f;
    font-size:13px;
    line-height:1.65;
}

.front-inquiry__complete-note{
    width:min(420px,100%);
    display:grid;
    gap:6px;
    margin-top:24px;
    padding:16px 18px;
    border:1px solid #e2e7ea;
    border-radius:5px;
    background:#f8fafb;
}

.front-inquiry__complete-note strong{
    color:#243744;
    font-size:13px;
}

.front-inquiry__complete-note span{
    color:#7a8790;
    font-size:11px;
    line-height:1.55;
}

.front-inquiry-modal-open{
    overflow:hidden;
}

.front-inquiry__privacy-modal{
    position:fixed;
    inset:0;
    z-index:1220;
    display:grid;
    place-items:center;
    padding:24px;
    background:rgba(10,20,30,.68);
    backdrop-filter:blur(6px);
}

.front-inquiry__privacy-dialog{
    width:min(760px,100%);
    max-height:min(82vh,780px);
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.16);
    border-radius:8px;
    background:#fff;
    box-shadow:0 30px 90px rgba(0,0,0,.3);
    outline:none;
}

.front-inquiry__privacy-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    padding:22px 24px 18px;
    border-bottom:1px solid #e5e9ed;
}

.front-inquiry__privacy-head span{
    display:block;
    margin-bottom:7px;
    color:#246d9f;
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
}

.front-inquiry__privacy-head h3{
    margin:0;
    color:#14202b;
    font-size:24px;
    letter-spacing:-.035em;
}

.front-inquiry__privacy-head p{
    margin:6px 0 0;
    color:#7a848c;
    font-size:11px;
}

.front-inquiry__privacy-x{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    padding:0;
    border:1px solid #dfe5e9;
    border-radius:50%;
    background:#fff;
    color:#51606b;
    font-size:22px;
    cursor:pointer;
}

.front-inquiry__privacy-body{
    overflow:auto;
    padding:22px 24px;
    white-space:pre-wrap;
    color:#34434e;
    font-size:13px;
    line-height:1.8;
    word-break:break-word;
}

.front-inquiry__privacy-actions{
    display:flex;
    justify-content:flex-end;
    padding:14px 24px 18px;
    border-top:1px solid #e5e9ed;
    background:#fbfcfd;
}

.front-inquiry__privacy-actions button{
    min-width:96px;
    height:42px;
    border:0;
    border-radius:4px;
    background:#193b59;
    color:#fff;
    font:inherit;
    font-size:12px;
    font-weight:900;
    cursor:pointer;
}

@media(max-width:720px){
    .front-inquiry-modal{
        align-items:end;
        padding:10px 10px calc(16px + env(safe-area-inset-bottom));
    }

    .front-inquiry-modal__dialog{
        width:100%;
        max-height:min(82dvh,720px);
        border:1px solid #dfe5e9;
        border-radius:10px;
    }

    .front-inquiry-modal__head{
        padding:15px 16px 13px;
    }

    .front-inquiry-modal__head h2{
        font-size:20px;
    }

    .front-inquiry-modal__head p{
        font-size:12px;
    }

    .front-inquiry__panel{
        padding:18px 16px;
    }

    .front-inquiry-step__question{
        margin-bottom:15px;
    }

    .front-inquiry-step__question h3{
        font-size:20px;
    }

    .front-inquiry-step__question p{
        font-size:12px;
    }

    .front-inquiry-choice-grid,
    .front-inquiry-choice-grid--area{
        grid-template-columns:1fr 1fr;
        gap:8px;
    }

    .front-inquiry-choice>span{
        min-height:54px;
        padding:10px 11px;
    }

    .front-inquiry-choice--compact>span{
        min-height:46px;
    }

    .front-inquiry-choice strong{
        font-size:13px;
    }

    .front-inquiry-choice small{
        font-size:10px;
    }

    .front-inquiry-fields{
        grid-template-columns:1fr;
        gap:13px;
    }

    .front-inquiry-modal__actions{
        position:sticky;
        bottom:-18px;
        margin:18px -16px -18px;
        padding:11px 16px 12px;
        background:rgba(255,255,255,.98);
        border-top:1px solid #e3e8ec;
    }

    .front-inquiry-modal__prev,
    .front-inquiry-modal__next,
    .front-inquiry__submit{
        min-height:46px;
        font-size:13px;
    }

    .front-inquiry__privacy-modal{
        padding:10px;
    }

    .front-inquiry__privacy-dialog{
        max-height:90vh;
        border-radius:8px;
    }

    .front-inquiry__privacy-head{
        padding:18px 16px 15px;
    }

    .front-inquiry__privacy-head h3{
        font-size:21px;
    }

    .front-inquiry__privacy-body{
        padding:18px 16px;
        font-size:12px;
    }

    .front-inquiry__privacy-actions{
        padding:12px 16px 15px;
    }

    .front-inquiry__privacy-actions button{
        width:100%;
    }
}

@media(prefers-reduced-motion:reduce){
    .front-inquiry-modal__progress span,
    .front-inquiry-choice>span{
        transition:none;
    }
}

/* === Detail enhancements / patches === */
.front-site-details__amenities{
    grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr)!important;
    gap:48px!important;
    align-items:center!important;
    padding:40px 0!important;
}

.front-site-details__amenities h3{
    font-size:24px!important;
    letter-spacing:-.035em;
}

.front-site-details__amenity-list{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px!important;
}

.front-site-details__amenity-list>span.front-amenity-card{
    --amenity-icon-bg:#f3f6f8;
    --amenity-icon-border:#dbe2e7;
    --amenity-icon-color:#19324a;
    display:flex!important;
    min-width:0;
    min-height:126px;
    flex-direction:column;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    padding:20px!important;
    border:1px solid #d8dee1!important;
    border-radius:16px!important;
    background:#fff!important;
    color:#11151a;
    font-size:12px!important;
    font-weight:800!important;
    line-height:1.35;
    box-shadow:0 8px 24px rgba(25,50,74,.045);
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}

.front-site-details__amenity-list>span.front-amenity-card:hover{
    transform:translateY(-2px);
    border-color:#cbd5df!important;
    box-shadow:0 14px 30px rgba(25,50,74,.08);
}

.front-amenity-card__icon{
    display:grid;
    width:58px;
    height:58px;
    flex:0 0 58px;
    place-items:center;
    border:1px solid var(--amenity-icon-border);
    border-radius:18px;
    background:var(--amenity-icon-bg);
    color:var(--amenity-icon-color);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}

.front-site-details__amenity-list .front-amenity-card__icon svg{
    width:30px!important;
    height:30px!important;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.front-amenity-card__label{
    display:block;
    color:#1a2027;
    font-size:13px;
    font-weight:850;
    letter-spacing:-.02em;
    word-break:keep-all;
}

.front-amenity-card.is-amber{
    --amenity-icon-bg:#fff6df;
    --amenity-icon-border:#f7dd9e;
    --amenity-icon-color:#c66a08;
}

.front-amenity-card.is-coffee{
    --amenity-icon-bg:#f8f0e9;
    --amenity-icon-border:#e8d1bf;
    --amenity-icon-color:#8b5a36;
}

.front-amenity-card.is-coral{
    --amenity-icon-bg:#fff0ea;
    --amenity-icon-border:#f4c9b9;
    --amenity-icon-color:#d55d35;
}

.front-amenity-card.is-blue{
    --amenity-icon-bg:#edf5ff;
    --amenity-icon-border:#c7ddff;
    --amenity-icon-color:#2563c9;
}

.front-amenity-card.is-indigo{
    --amenity-icon-bg:#f1f2ff;
    --amenity-icon-border:#d6d8ff;
    --amenity-icon-color:#4f56b8;
}

.front-amenity-card.is-rose{
    --amenity-icon-bg:#fff0f3;
    --amenity-icon-border:#f4c7d2;
    --amenity-icon-color:#c84f6d;
}

.front-amenity-card.is-emerald{
    --amenity-icon-bg:#eafaf2;
    --amenity-icon-border:#bcebd3;
    --amenity-icon-color:#13835a;
}

.front-amenity-card.is-sky{
    --amenity-icon-bg:#eaf8fb;
    --amenity-icon-border:#bee7ef;
    --amenity-icon-color:#16839c;
}

.front-amenity-card.is-leaf{
    --amenity-icon-bg:#eef9e9;
    --amenity-icon-border:#cbe8bd;
    --amenity-icon-color:#4b8c2c;
}

.front-amenity-card.is-slate{
    --amenity-icon-bg:#f1f4f7;
    --amenity-icon-border:#d5dde5;
    --amenity-icon-color:#526576;
}

.front-amenity-card.is-violet{
    --amenity-icon-bg:#f4f0ff;
    --amenity-icon-border:#ddd0ff;
    --amenity-icon-color:#7150bf;
}

@media(max-width:1180px){
    .front-site-details__amenity-list{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:720px){
    .front-site-details__amenities{
        grid-template-columns:1fr!important;
        gap:20px!important;
        padding:30px 0!important;
    }

    .front-site-details__amenities h3{
        font-size:22px!important;
    }

    .front-site-details__amenity-list{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:9px!important;
    }

    .front-site-details__amenity-list>span.front-amenity-card{
        min-height:112px;
        gap:14px;
        padding:15px!important;
        border-radius:14px!important;
    }

    .front-amenity-card__icon{
        width:48px;
        height:48px;
        flex-basis:48px;
        border-radius:15px;
    }

    .front-site-details__amenity-list .front-amenity-card__icon svg{
        width:25px!important;
        height:25px!important;
    }

    .front-amenity-card__label{
        font-size:12px;
    }
}

/* === Front detail consolidated enhancements === */
/* OfficeDoor front detail consolidated enhancements. */

/* Access motion */

.front-access__opposite-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 9px;
    margin-left: 8px;
    border: 1px solid rgba(194, 107, 40, .24);
    border-radius: 999px;
    background: rgba(255, 244, 232, .96);
    color: #a45118;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.01em;
    white-space: nowrap;
}

.front-access-route-wrap {
    width: min(720px, calc(100% - 48px));
    margin: 14px auto 30px;
    display: grid;
    justify-items: center;
    gap: 14px;
}

.front-access-route {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: 76px minmax(180px, 1fr) 18px 96px;
    align-items: center;
    column-gap: 14px;
    color: rgba(255,255,255,.94);
}

.front-access-route__node { min-width: 0; display: grid; justify-items: center; gap: 8px; text-align: center; }
.front-access-route__node strong { max-width: 130px; overflow: hidden; color: rgba(255,255,255,.84); font-size: 10px; font-weight: 750; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.front-access-route__node-icon { width: 54px; height: 54px; display: grid; place-items: center; color: #fff; }
.front-access-route__node-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.front-access-route__node-icon--site { width: 58px; height: 58px; }
.front-access-route__track { position: relative; height: 72px; min-width: 130px; }
.front-access-route__line { position: absolute; top: 22px; left: 0; right: 0; width: 100%; height: 28px; overflow: visible; }
.front-access-route__line line { fill: none; stroke: rgba(255,255,255,.62); stroke-width: 2.2; stroke-linecap: round; stroke-dasharray: 3 8; animation: frontAccessRouteDash .72s linear infinite; }
.front-access-route__arrow { width: 18px; height: 28px; display: grid; place-items: center; color: rgba(255,255,255,.92); justify-self: center; transform: translateX(8px); }
.front-access-route__arrow svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; animation: frontAccessArrowStep .72s ease-in-out infinite; }
.front-access-route__walker { position: absolute; z-index: 2; top: -5px; left: 10px; width: 42px; height: 52px; filter: drop-shadow(0 2px 6px rgba(0,0,0,.18)); animation: frontAccessWalker 7.2s linear infinite; }
.front-access-route__walker svg { width: 100%; height: 100%; overflow: visible; }
.front-access-route__walker .walker-head, .front-access-route__walker .walker-skin { fill: #f2b38d; }
.front-access-route__walker .walker-hair { fill: #1f2a44; }
.front-access-route__walker .walker-shirt { fill: #f7f8fa; }
.front-access-route__walker .walker-pants { fill: #263653; }
.front-access-route__walker .walker-shoe { fill: #ffffff; }
.front-access-route__walker .walker-arm, .front-access-route__walker .walker-leg { transform-box: fill-box; transform-origin: 50% 10%; }
.front-access-route__walker .walker-arm--a, .front-access-route__walker .walker-leg--b { animation: frontAccessLimbA .72s ease-in-out infinite alternate; }
.front-access-route__walker .walker-arm--b, .front-access-route__walker .walker-leg--a { animation: frontAccessLimbB .72s ease-in-out infinite alternate; }
.front-access-route__walker .walker-figure { transform-origin: center; animation: frontAccessBodyBob .36s ease-in-out infinite alternate; }

.front-access-route__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
}

.front-access-route__map-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 36px;
    padding: 0 15px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.9);
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.front-access-route__map-link--location {
    background: rgba(255,255,255,.04);
}

.front-access-route__map-link:hover,
.front-access-route__map-link:focus-visible {
    border-color: rgba(255,255,255,.42);
    background: rgba(255,255,255,.14);
    transform: translateY(-1px);
}

.front-access-route__map-link b {
    font-size: 13px;
    font-weight: 700;
}

body.is-access-route-notice-open {
    overflow: hidden;
}

.front-access-route__notice-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(8, 18, 28, .58);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

.front-access-route__notice-backdrop[hidden] {
    display: none !important;
}

.front-access-route__notice {
    width: min(460px, 100%);
    border: 1px solid rgba(25, 50, 74, .12);
    border-radius: 20px;
    background: #ffffff;
    color: #19324a;
    box-shadow: 0 24px 70px rgba(8, 18, 28, .24);
    overflow: hidden;
}

.front-access-route__notice-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 20px 0;
}

.front-access-route__notice-head span {
    display: block;
    margin-bottom: 4px;
    color: #7a8793;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .12em;
}

.front-access-route__notice-head strong {
    display: block;
    color: #11151a;
    font-size: 18px;
    line-height: 1.35;
}

.front-access-route__notice-close {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(25, 50, 74, .12);
    border-radius: 999px;
    background: #f6f8fa;
    color: #425466;
    cursor: pointer;
}

.front-access-route__notice-close span {
    margin: 0;
    color: inherit;
    font-size: 21px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
}

.front-access-route__notice-body {
    padding: 18px 20px 20px;
}

.front-access-route__notice-body p {
    margin: 0;
    color: #536474;
    font-size: 13px;
    line-height: 1.7;
    word-break: keep-all;
}

.front-access-route__notice-body p + p {
    margin-top: 8px;
}

.front-access-route__notice-body p strong {
    color: #19324a;
    font-weight: 900;
}

.front-access-route__notice-route {
    margin-top: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f5f8fa;
    color: #19324a;
    font-size: 11px;
    font-weight: 850;
    text-align: center;
}

.front-access-route__notice-route b {
    color: #8a98a5;
    font-weight: 700;
}

.front-access-route__notice-actions {
    display: grid;
    grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
    gap: 8px;
    padding: 0 20px 20px;
}

.front-access-route__notice-actions button {
    min-height: 44px;
    border-radius: 12px;
    font: inherit;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
}

.front-access-route__notice-cancel {
    border: 1px solid rgba(25, 50, 74, .12);
    background: #f5f7f9;
    color: #536474;
}

.front-access-route__notice-confirm {
    border: 1px solid #19324a;
    background: #19324a;
    color: #ffffff;
}

.front-access-route__notice-close:hover,
.front-access-route__notice-close:focus-visible,
.front-access-route__notice-cancel:hover,
.front-access-route__notice-cancel:focus-visible {
    border-color: rgba(25, 50, 74, .28);
}

.front-access-route__notice-confirm:hover,
.front-access-route__notice-confirm:focus-visible {
    background: #244763;
}

@keyframes frontAccessRouteDash { to { stroke-dashoffset: -11; } }
@keyframes frontAccessArrowStep { 0%, 100% { transform: translateX(0); opacity: .72; } 50% { transform: translateX(4px); opacity: 1; } }
@keyframes frontAccessWalker { 0%, 6% { left: 10px; } 88%, 100% { left: calc(100% - 54px); } }
@keyframes frontAccessLimbA { from { transform: rotate(-5deg); } to { transform: rotate(7deg); } }
@keyframes frontAccessLimbB { from { transform: rotate(5deg); } to { transform: rotate(-7deg); } }
@keyframes frontAccessBodyBob { from { transform: translateY(0); } to { transform: translateY(1.2px); } }

@media (max-width: 1180px) {
    .front-access-route-wrap { width: min(640px, calc(100% - 40px)); }
    .front-access-route { grid-template-columns: 62px minmax(150px, 1fr) 16px 78px; column-gap: 10px; }
    .front-access-route__node-icon, .front-access-route__node-icon--site { width: 46px; height: 46px; }
    .front-access-route__arrow { width: 16px; height: 25px; transform: translateX(6px); }
}

@media (max-width: 900px) {
    .front-access-route-wrap { width: min(560px, calc(100% - 32px)); margin-bottom: 26px; }
}

@media (max-width: 720px) {
    .front-access__opposite-badge { min-height: 21px; padding: 3px 7px; margin-left: 5px; font-size: 9px; }
    .front-access-route-wrap { width: 100%; margin: 12px auto 24px; gap: 11px; }
    .front-access-route { grid-template-columns: 48px minmax(100px, 1fr) 14px 58px; column-gap: 7px; }
    .front-access-route__node-icon, .front-access-route__node-icon--site { width: 42px; height: 42px; }
    .front-access-route__node strong { max-width: 78px; font-size: 9px; }
    .front-access-route__track { height: 62px; }
    .front-access-route__line { top: 18px; }
    .front-access-route__arrow { width: 14px; height: 23px; transform: translateX(5px); }
    .front-access-route__walker { top: -5px; width: 36px; height: 47px; }
    .front-access-route__actions { width: 100%; gap: 8px; margin-top: 3px; }
    .front-access-route__map-link { flex: 1 1 calc(50% - 4px); min-width: 0; min-height: 34px; padding: 0 10px; font-size: 9px; }
    .front-access-route__notice-backdrop { padding: 16px; }
    .front-access-route__notice { border-radius: 16px; }
    .front-access-route__notice-head { padding: 18px 18px 0; }
    .front-access-route__notice-head strong { font-size: 17px; }
    .front-access-route__notice-body { padding: 16px 18px 18px; }
    .front-access-route__notice-body p { font-size: 12px; line-height: 1.65; }
    .front-access-route__notice-route { align-items: stretch; flex-direction: column; gap: 4px; }
    .front-access-route__notice-route b { transform: rotate(90deg); }
    .front-access-route__notice-actions { grid-template-columns: 1fr; padding: 0 18px 18px; }
    .front-access-route__notice-actions button { min-height: 42px; }
    @keyframes frontAccessWalker { 0%, 6% { left: 8px; } 88%, 100% { left: calc(100% - 46px); } }
}

@media (prefers-reduced-motion: reduce) {
    .front-access-route__line line, .front-access-route__arrow svg, .front-access-route__walker, .front-access-route__walker .walker-arm, .front-access-route__walker .walker-leg, .front-access-route__walker .walker-figure { animation: none !important; }
    .front-access-route__walker { left: calc(50% - 21px); }
}


/* Access expansion / bus routes */

.front-access__item[hidden] {
    display: none !important;
}

.front-access__opposite-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    margin-left: 8px;
    padding: 0 8px;
    border: 1px solid #f2d2b7;
    border-radius: 999px;
    background: #fff3e8;
    color: #b45f16;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.01em;
    vertical-align: middle;
    white-space: nowrap;
}

.front-access__item,
.front-access__primary {
    position: relative;
}

.front-access__route-action {
    margin-top: 12px;
}

.front-access__route-action--primary {
    margin: 0;
}

.front-access__route-open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid rgba(25, 50, 74, .14);
    border-radius: 999px;
    background: #f7f9fb;
    color: #19324a;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: -.015em;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.front-access__route-open:hover,
.front-access__route-open:focus-visible {
    border-color: rgba(25, 50, 74, .3);
    background: #eef3f7;
}

.front-access__route-open:active {
    transform: translateY(1px);
}

.front-access__route-action--primary > .front-access__route-open {
    position: absolute;
    right: 24px;
    bottom: 20px;
    z-index: 2;
}

.front-access__route-modal {
    position: absolute;
    inset: 0;
    z-index: 20;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 20px;
    border: 0;
    border-radius: inherit;
    background: rgba(12, 24, 36, .75);
    box-shadow: none;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.front-access__route-modal[hidden] {
    display: none !important;
}

.front-access__route-modal-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

.front-access__route-modal-head > div {
    min-width: 0;
}

.front-access__route-modal-head span {
    display: block;
    margin-bottom: 3px;
    color: rgba(255, 255, 255, .72);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .12em;
}

.front-access__route-modal-head strong {
    display: block;
    color: #ffffff;
    font-size: 16px;
    line-height: 1.35;
    word-break: keep-all;
    text-shadow: 0 1px 4px rgba(0, 0, 0, .22);
}

.front-access__route-close {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
    background: rgba(12, 24, 36, .28);
    color: #ffffff;
    font: inherit;
    cursor: pointer;
}

.front-access__route-close:hover,
.front-access__route-close:focus-visible {
    border-color: rgba(255, 255, 255, .5);
    background: rgba(12, 24, 36, .4);
}

.front-access__route-close b {
    font-size: 19px;
    font-weight: 500;
    line-height: 1;
}

.front-access__route-modal-list {
    display: flex;
    align-content: flex-start;
    flex-wrap: wrap;
    gap: 7px;
    min-height: 0;
    overflow-y: auto;
    padding-right: 2px;
}

.front-access__bus-route {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 5px;
    min-height: 25px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -.015em;
    white-space: nowrap;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16);
}

.front-access__bus-route b {
    font: inherit;
    font-weight: 900;
    opacity: .86;
}

.front-access__bus-route span {
    font-weight: 900;
}

.front-access__more-controls {
    display: flex;
    justify-content: center;
    padding-top: 18px;
}

.front-access__more-button {
    min-width: 190px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 0 18px;
    border: 1px solid rgba(25, 50, 74, .16);
    border-radius: 999px;
    background: rgba(255, 255, 255, .82);
    color: #19324a;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(17, 21, 26, .05);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.front-access__more-button:hover {
    transform: translateY(-1px);
    border-color: rgba(25, 50, 74, .32);
    box-shadow: 0 10px 26px rgba(17, 21, 26, .08);
}

.front-access__more-button svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .18s ease;
}

.front-access__more-button[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

@media (max-width: 720px) {
    .front-access__secondary-head {
        gap: 12px;
    }

    .front-access__secondary-head p {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .front-access__list {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100%;
        gap: 10px !important;
    }

    .front-access__item {
        width: 100%;
        min-width: 0;
        min-height: 0 !important;
        padding: 16px 17px !important;
    }

    .front-access__item-top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 13px !important;
    }

    .front-access__item-mode {
        min-width: 0;
        flex-wrap: wrap;
        row-gap: 6px;
    }

    .front-access__item-top > small {
        flex: 0 0 auto;
        max-width: 46%;
        text-align: right;
        line-height: 1.45;
    }

    .front-access__item > strong {
        display: block;
        min-width: 0;
        font-size: 18px !important;
        line-height: 1.35;
        overflow-wrap: anywhere;
        word-break: keep-all;
    }

    .front-access__item > p {
        margin-top: 8px !important;
        font-size: 13px !important;
        line-height: 1.55;
    }

    .front-access__route-action {
        margin-top: 11px;
    }

    .front-access__route-open {
        width: 100%;
        min-height: 36px;
    }

    .front-access__route-action--primary > .front-access__route-open {
        position: static;
        width: auto;
        margin: 12px 16px 16px;
    }

    .front-access__route-modal {
        inset: 0;
        padding: 16px;
        border-radius: inherit;
    }

    .front-access__route-modal-head {
        margin-bottom: 13px;
    }

    .front-access__route-modal-head strong {
        font-size: 15px;
    }

    .front-access__route-modal-list {
        gap: 6px;
    }

    .front-access__bus-route {
        min-height: 24px;
        padding: 3px 8px;
        font-size: 9px;
    }

    .front-access__opposite-badge {
        min-height: 20px;
        margin-left: 7px;
        padding: 0 7px;
        font-size: 9px;
    }

    .front-access__more-controls {
        padding-top: 14px;
    }

    .front-access__more-button {
        width: 100%;
        min-height: 42px;
    }
}


/* Layout / detail navigation / floor-plan alignment */

.front-floor-plan__polygons polygon.is-selected {
    fill: #000 !important;
    fill-opacity: .5 !important;
}

.front-site-details__detail-media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, .32);
    pointer-events: none;
}

.front-site-details__detail-media figcaption {
    z-index: 1;
}

.front-site-details__verified {
    display: none !important;
}

.front-access__primary {
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 48px rgba(25, 50, 74, .12);
}

.front-access__primary-labels {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
}

.front-access__verified {
    min-height: 32px;
    padding: 0 13px;
    border: 0;
    border-radius: 999px;
    background: #f4c95d;
    color: #19324a;
    letter-spacing: 0;
    text-transform: none;
    font-size: 11px;
}

.front-access__primary-note {
    color: rgba(255,255,255,.62);
    font-size: 12px;
    line-height: 1.5;
}

.front-access__primary-main {
    grid-template-columns: 118px minmax(0,1fr) auto;
    align-items: center;
}

.front-access__primary-icon {
    width: 104px;
    height: 104px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,.38);
    background: rgba(255,255,255,.1);
    color: #fff;
    box-shadow: inset 0 0 0 8px rgba(255,255,255,.04);
}

.front-access__primary-icon svg,
.front-access__item-icon svg {
    width: 58%;
    height: 58%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.front-access__primary-icon--subway { background: rgba(153,108,172,.22); }
.front-access__primary-icon--rail { background: rgba(0,144,210,.24); }
.front-access__primary-icon--bus { background: rgba(37,150,89,.24); }

.front-access__type-row { margin-bottom: 9px; }

.front-access__type-row span {
    color: rgba(255,255,255,.66);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}

.front-access__line-row { margin-bottom: 13px; }

.front-access__secondary-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    padding: 34px 2px 16px;
}

.front-access__secondary-head span,
.front-access__secondary-head strong { display: block; }

.front-access__secondary-head span {
    margin-bottom: 5px;
    color: #7a8289;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
}

.front-access__secondary-head strong {
    color: var(--front-ink);
    font-size: 24px;
    letter-spacing: -.035em;
}

.front-access__secondary-head p {
    margin: 0;
    color: var(--front-muted);
    font-size: 12px;
}

.front-access__list {
    gap: 14px;
    border: 0;
    background: transparent;
}

.front-access__item {
    min-height: 184px;
    padding: 22px;
    border: 1px solid var(--front-line);
    border-radius: 14px;
    background: rgba(255,255,255,.72);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.front-access__item:hover {
    transform: translateY(-2px);
    border-color: rgba(25,50,74,.24);
    box-shadow: 0 12px 28px rgba(17,21,26,.06);
}

.front-access__item-top { margin-bottom: 22px; }

.front-access__item-mode {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.front-access__item-mode b {
    color: var(--front-accent);
    font-size: 11px;
    font-weight: 800;
}

.front-access__item-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    color: #fff;
    background: #64748b;
}

.front-access__item-icon--subway { background: #8f63a8; }
.front-access__item-icon--rail { background: #0090d2; }
.front-access__item-icon--bus { background: #24945a; }

.front-access__item > strong { font-size: 21px; }

.front-access__item > p {
    margin-top: 10px;
    font-size: 13px;
}

/* Shared public shell: main header/footer + detail navigation + top button. */
.front-office-page .site-header {
    z-index: 90;
}

.front-office-page .front-hero {
    min-height: calc(100svh - 132px);
}

.front-detail-nav {
    position: sticky;
    top: 78px;
    z-index: 70;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(16px) saturate(140%);
    -webkit-backdrop-filter: blur(16px) saturate(140%);
}

.front-detail-nav__inner {
    display: flex;
    align-items: center;
    min-height: 54px;
    overflow: visible;
}

.front-detail-nav__scroll {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    align-items: center;
    gap: 4px;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
}

.front-detail-nav__scroll::-webkit-scrollbar { display: none; }

.front-detail-nav__home {
    width: 54px;
    align-self: stretch;
    min-height: 54px;
    padding: 0 16px !important;
    margin-right: 8px;
    color: #0f4f83 !important;
    background: #ffffff;
    border: 0;
    box-shadow: none;
}

.front-detail-nav__home svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.front-detail-nav__home::after {
    display: none !important;
}

.front-detail-nav__home:hover,
.front-detail-nav__home:focus-visible {
    color: #0f4f83 !important;
    background: #eef1f4;
}

.front-detail-nav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 54px;
    padding: 0 14px;
    color: #64748b;
    text-decoration: none;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: -.02em;
    transition: color .18s ease;
}

.front-detail-nav a::after {
    content: '';
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 0;
    height: 2px;
    background: #0f6fff;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .18s ease;
}

.front-detail-nav a:hover,
.front-detail-nav a:focus-visible,
.front-detail-nav a.is-active {
    color: #0b1220;
}

.front-detail-nav a.is-active::after {
    transform: scaleX(1);
}

#front-office-title,
#building,
#access,
#floor-plan,
#site-details-preview,
#media,
#available-space,
#documents,
#inquiry {
    scroll-margin-top: 150px;
}

.front-top-button {
    position: fixed;
    z-index: 75;
    right: max(24px, env(safe-area-inset-right));
    bottom: max(24px, env(safe-area-inset-bottom));
    display: grid;
    place-items: center;
    gap: 1px;
    width: 54px;
    height: 54px;
    padding: 6px 0 5px;
    border: 1px solid rgba(15, 23, 42, .13);
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    color: #0b1220;
    box-shadow: 0 12px 34px rgba(15, 23, 42, .16);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease, border-color .2s ease;
}

.front-top-button.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.front-top-button:hover,
.front-top-button:focus-visible {
    border-color: rgba(15, 111, 255, .5);
    color: #0f6fff;
}

.front-top-button:focus-visible {
    outline: 2px solid #0f6fff;
    outline-offset: 3px;
}

.front-top-button svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.front-top-button span {
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .08em;
    line-height: 1;
}

.front-office-page .site-footer {
    position: relative;
    z-index: 1;
}

@media (min-width: 721px) {
    .front-floor-plan__area-toggle-icon,
    .front-floor-plan__area-toggle-label {
        height: auto !important;
        font-size: 14px !important;
        line-height: 1 !important;
    }

    .front-floor-plan__area-toggle-icon { width: 14px; }
}

@media (max-width: 1199px) {
    .front-detail-nav { top: 70px; }
    .front-office-page .front-hero { min-height: calc(100svh - 122px); }

    #front-office-title,
    #building,
    #access,
    #floor-plan,
    #site-details-preview,
    #media,
    #available-space,
    #documents,
    #inquiry {
        scroll-margin-top: 136px;
    }
}

@media (max-width: 1024px) {
    .front-access__primary-main {
        grid-template-columns: 88px minmax(0,1fr) auto;
        gap: 28px;
    }

    .front-access__primary-icon {
        width: 80px;
        height: 80px;
    }
}

@media (max-width: 720px) {
    .front-detail-nav__inner {
        width: 100%;
        min-height: 50px;
        padding: 0;
    }

    .front-detail-nav a {
        min-height: 50px;
        padding: 0 11px;
        font-size: 11.5px;
    }

    .front-detail-nav a::after {
        left: 11px;
        right: 11px;
    }

    .front-top-button {
        right: max(15px, env(safe-area-inset-right));
        bottom: max(15px, env(safe-area-inset-bottom));
        width: 48px;
        height: 48px;
        padding-top: 5px;
    }

    .front-top-button svg {
        width: 16px;
        height: 16px;
    }

    .front-floor-plan__area-toggle-icon,
    .front-floor-plan__area-toggle-label {
        height: auto !important;
        font-size: 13px !important;
        line-height: 1 !important;
    }

    .front-floor-plan__area-toggle-icon { width: 13px; }

    .front-access__primary { border-radius: 14px; }
    .front-access__primary-top { align-items: flex-start; }
    .front-access__primary-labels { display: block; }

    .front-access__primary-note {
        display: block;
        margin-top: 8px;
        max-width: 220px;
    }

    .front-access__primary-main {
        display: grid;
        grid-template-columns: 68px minmax(0,1fr);
        gap: 18px;
        align-items: start;
    }

    .front-access__primary-icon {
        width: 64px;
        height: 64px;
    }

    .front-access__primary-copy h3 { font-size: 34px; }

    .front-access__metrics {
        grid-column: 1 / -1;
        width: 100%;
    }

    .front-access__secondary-head {
        padding-top: 28px;
        align-items: flex-start;
    }

    .front-access__secondary-head strong { font-size: 21px; }

    .front-access__secondary-head p {
        padding-top: 3px;
        text-align: right;
    }

    .front-access__list {
        display: grid;
        gap: 10px;
    }

    .front-access__item {
        min-height: 0;
        padding: 17px;
        border-radius: 12px;
    }

    .front-access__item-top { margin-bottom: 13px; }

    .front-access__item-icon {
        width: 30px;
        height: 30px;
    }

    .front-access__item > strong { font-size: 18px; }
}

@media (max-width: 560px) {
    .front-detail-nav { top: 66px; }
    .front-office-page .front-hero { min-height: calc(100svh - 116px); }

    #front-office-title,
    #building,
    #access,
    #floor-plan,
    #site-details-preview,
    #media,
    #available-space,
    #documents,
    #inquiry {
        scroll-margin-top: 126px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .front-detail-nav a::after,
    .front-top-button {
        transition: none;
    }
}


/* Floating quick actions */

.front-floating-actions{
    position:fixed;
    z-index:76;
    right:max(20px,env(safe-area-inset-right));
    bottom:max(20px,env(safe-area-inset-bottom));
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:9px;
}

.front-floating-actions__toggle{
    display:none;
    width:54px;
    height:54px;
    min-width:54px;
    min-height:54px;
    place-items:center;
    padding:0;
    border:1px solid #1769e8;
    border-radius:50%;
    background:linear-gradient(145deg,#1769e8,#247cf0);
    color:#fff;
    box-shadow:0 10px 28px rgba(23,105,232,.30);
    cursor:pointer;
}

.front-floating-actions__toggle svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.front-floating-actions__toggle circle{
    fill:currentColor;
    stroke:none;
}

.front-floating-actions__icon-close{
    display:none;
}

.front-floating-actions__toggle[aria-expanded="true"] .front-floating-actions__icon-more{
    display:none;
}

.front-floating-actions__toggle[aria-expanded="true"] .front-floating-actions__icon-close{
    display:block;
}

.front-floating-action,
.front-floating-actions .front-top-button{
    position:static;
    right:auto;
    bottom:auto;
    display:grid;
    place-items:center;
    width:54px;
    height:54px;
    min-width:54px;
    min-height:54px;
    margin:0;
    padding:0;
    border:1px solid rgba(15,23,42,.14);
    border-radius:50%;
    box-sizing:border-box;
    cursor:pointer;
    box-shadow:0 10px 28px rgba(15,23,42,.14);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;
}

.front-floating-action{
    color:#fff;
    text-decoration:none;
}

.front-floating-action>span{
    display:none;
}

.front-floating-action svg,
.front-floating-actions .front-top-button svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.front-floating-action--phone{
    background:#2478b8;
    border-color:#2478b8;
}

.front-floating-action--inquiry{
    background:#193b59;
    border-color:#193b59;
}

.front-floating-action--documents{
    background:#fff;
    color:#193b59;
}

.front-floating-actions .front-top-button{
    background:rgba(255,255,255,.98);
    color:#193b59;
    opacity:0;
    visibility:hidden;
    transform:translateY(8px);
    pointer-events:none;
}

.front-floating-actions .front-top-button.is-visible{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    pointer-events:auto;
}

.front-floating-actions .front-top-button span{
    display:block;
    margin-top:-1px;
    font-size:8px;
    font-weight:900;
    line-height:1;
    letter-spacing:.08em;
}

.front-floating-actions .front-top-button{
    grid-template-rows:auto auto;
    gap:1px;
    padding:5px 0 4px;
}

.front-floating-action:hover,
.front-floating-action:focus-visible,
.front-floating-actions .front-top-button:hover,
.front-floating-actions .front-top-button:focus-visible{
    transform:translateY(-2px);
    box-shadow:0 14px 34px rgba(15,23,42,.19);
}

.front-floating-action:focus-visible,
.front-floating-actions .front-top-button:focus-visible{
    outline:2px solid #2f80bd;
    outline-offset:3px;
}

@media(max-width:720px){
    .front-office-page,
    .unit-detail-page{
        padding-bottom:0;
    }

    .front-floating-actions{
        right:max(12px,env(safe-area-inset-right));
        bottom:calc(14px + env(safe-area-inset-bottom));
        gap:8px;
    }

    /* Mobile defaults to one unobtrusive control. Actions only occupy space when opened. */
    .front-floating-actions:not(.is-expanded) .front-floating-action,
    .front-floating-actions:not(.is-expanded) .front-top-button{
        display:none;
    }

    .front-floating-actions.is-expanded .front-floating-action{
        position:relative;
        display:grid;
    }

    /* Mobile quick-action bubbles: subtle 20px labels, icon buttons stay unchanged. */
    .front-floating-actions.is-expanded .front-floating-action>span{
        position:absolute;
        top:50%;
        right:calc(100% + 6px);
        display:inline-flex;
        align-items:center;
        justify-content:center;
        width:max-content;
        min-height:20px;
        padding:0 6px;
        border:0;
        border-radius:5px;
        background:rgba(8,30,49,.90);
        color:#fff;
        box-shadow:0 2px 6px rgba(6,20,34,.11);
        font-size:10px;
        font-weight:700;
        line-height:1;
        letter-spacing:-.025em;
        white-space:nowrap;
        transform:translateY(-50%);
        pointer-events:none;
    }

    .front-floating-actions.is-expanded .front-floating-action>span::after{
        content:"";
        position:absolute;
        top:50%;
        right:-3px;
        width:5px;
        height:5px;
        background:rgba(8,30,49,.90);
        transform:translateY(-50%) rotate(45deg);
        border:0;
    }

    .front-floating-actions.is-expanded .front-top-button.is-visible{
        display:grid;
        /* 펼친 메뉴에서 TOP을 가장 위에 배치하며 기존 동작은 그대로 유지합니다. */
        order:-1;
    }

    .front-floating-actions.is-expanded .front-top-button:not(.is-visible){
        display:none;
    }

    .front-floating-action,
    .front-floating-actions .front-top-button,
    .front-floating-actions__toggle{
        width:52px;
        height:52px;
        min-width:52px;
        min-height:52px;
        box-shadow:0 8px 22px rgba(15,23,42,.16);
    }

    .front-floating-actions__toggle{
        display:grid;
    }

    .front-floating-action svg,
    .front-floating-actions .front-top-button svg{
        width:20px;
        height:20px;
    }

    .front-floating-actions__toggle svg{
        width:24px;
        height:24px;
    }

    .front-floating-actions .front-top-button span{
        font-size:8px;
    }

    .front-floating-action:hover,
    .front-floating-action:focus-visible,
    .front-floating-actions .front-top-button:hover,
    .front-floating-actions .front-top-button:focus-visible,
    .front-floating-actions__toggle:hover,
    .front-floating-actions__toggle:focus-visible{
        transform:none;
    }

    .front-floating-actions__toggle:hover,
    .front-floating-actions__toggle:focus-visible{
        background:linear-gradient(145deg,#125fcf,#1f73e4);
        box-shadow:0 10px 28px rgba(23,105,232,.36);
    }

    .front-floating-actions__toggle[aria-expanded="true"]{
        background:#123b5d;
        border-color:#123b5d;
        box-shadow:0 8px 22px rgba(15,23,42,.22);
    }

    .front-floating-actions__toggle:focus-visible{
        outline:2px solid #6cb5ff;
        outline-offset:3px;
    }
}

@media(prefers-reduced-motion:reduce){
    .front-floating-action,
    .front-floating-actions .front-top-button,
    .front-floating-actions__toggle{
        transition:none;
    }
}

/* === Unit detail page === */
:root{--unit-ink:#102036;--unit-muted:#6f7e92;--unit-line:#e3e8ef;--unit-blue:#0f67ee;--unit-blue-soft:#eef5ff;--unit-navy:#17324d;--unit-bg:#f7f9fc;--unit-white:#fff;--unit-shadow:0 16px 42px rgba(25,45,72,.08)}
.unit-detail{background:#fff;color:var(--unit-ink);padding-bottom:0}
.unit-detail *{box-sizing:border-box}
.unit-detail a{text-decoration:none}
.unit-detail__shell{width:min(1240px,calc(100% - 40px));margin:0 auto;padding:28px 0 80px}
.unit-detail__breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:22px;color:#8996a8;font-size:12px}
.unit-detail__breadcrumb a{color:#66768b}.unit-detail__breadcrumb strong{color:#26364a}
.unit-detail__hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);gap:42px;align-items:stretch;min-height:520px;border-bottom:1px solid var(--unit-line);padding-bottom:48px}
.unit-detail__hero-copy{display:flex;flex-direction:column;justify-content:center;padding:18px 0}
.unit-detail__eyebrow,.unit-detail__section-head>div>span,.unit-detail__position-copy>span{display:block;margin-bottom:12px;color:#8096b5;font-size:11px;font-weight:850;letter-spacing:.14em}
.unit-detail__building{margin:0 0 10px;color:#61738a;font-size:16px;font-weight:750}
.unit-detail__hero h1{margin:0;font-size:clamp(48px,6vw,80px);line-height:.98;letter-spacing:-.065em}.unit-detail__hero h1 strong{color:var(--unit-blue)}
.unit-detail__types{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}.unit-detail__types span{padding:7px 10px;border-radius:999px;background:var(--unit-blue-soft);color:#145dc8;font-size:12px;font-weight:850}
.unit-detail__lead{max-width:600px;margin:24px 0 0;color:#5e6e82;font-size:16px;line-height:1.75}
.unit-detail__area-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:30px;border:1px solid var(--unit-line);border-radius:16px;overflow:hidden;background:var(--unit-line)}
.unit-detail__area-summary>div{padding:16px 18px;background:#fff}.unit-detail__area-summary span{display:block;color:#8a97a8;font-size:10px;font-weight:800}.unit-detail__area-summary strong{display:block;margin-top:6px;font-size:20px;letter-spacing:-.035em}.unit-detail__area-summary small{display:block;margin-top:3px;color:#718095;font-size:11px}
.unit-detail__hero-actions{display:flex;gap:10px;margin-top:24px}.unit-detail__hero-actions a,.unit-detail__hero-actions button,.unit-detail__closing-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border:1px solid #d4deea;border-radius:11px;color:#1f3b5a;font:inherit;font-size:13px;font-weight:850;background:#fff;cursor:pointer}.unit-detail__hero-actions a.is-primary,.unit-detail__hero-actions button.is-primary,.unit-detail__closing-actions a.is-primary{border-color:var(--unit-blue);background:var(--unit-blue);color:#fff}
.unit-detail__verified{margin:16px 0 0;color:#617188;font-size:12px}.unit-detail__verified span{color:#0a9b68}
.unit-detail__hero-media{position:relative;overflow:hidden;min-height:520px;border-radius:28px;background:#e8eef6;box-shadow:var(--unit-shadow)}.unit-detail__hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.unit-detail__hero-media:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(180deg,rgba(7,20,38,0),rgba(7,20,38,.72))}.unit-detail__hero-caption{position:absolute;z-index:2;left:28px;right:28px;bottom:24px;color:#fff}.unit-detail__hero-caption small{display:block;font-size:10px;font-weight:850;letter-spacing:.16em;opacity:.72}.unit-detail__hero-caption strong{display:block;margin-top:8px;font-size:28px;letter-spacing:-.04em}.unit-detail__hero-caption span{display:block;margin-top:7px;color:rgba(255,255,255,.8);font-size:12px}.unit-detail__hero-empty{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,#e7edf5,#b9c9db);color:#75859a;font-weight:900;letter-spacing:.14em}
.unit-detail__section{padding:76px 0;border-bottom:1px solid var(--unit-line)}.unit-detail__section-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:30px}.unit-detail__section-head h2,.unit-detail__position-copy h2{margin:0;font-size:clamp(34px,4vw,54px);line-height:1.03;letter-spacing:-.055em}.unit-detail__section-head>p{max-width:430px;margin:0;color:var(--unit-muted);font-size:14px;line-height:1.7}
.unit-detail__offer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.unit-detail__offer{padding:24px;border:1px solid var(--unit-line);border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(22,42,68,.045)}.unit-detail__offer header{display:flex;justify-content:space-between;align-items:center}.unit-detail__offer header span{padding:6px 9px;border-radius:999px;background:var(--unit-blue-soft);color:#145ecb;font-size:12px;font-weight:900}.unit-detail__offer header small{color:#75859a;font-size:11px;font-weight:800}.unit-detail__offer-price{padding:22px 0;border-bottom:1px solid #edf1f5}.unit-detail__offer-price strong{display:block;font-size:24px;line-height:1.3;letter-spacing:-.04em}.unit-detail__offer-price p{margin:8px 0 0;color:#7a8799;font-size:12px;line-height:1.55}.unit-detail__offer dl{margin:0;padding-top:6px}.unit-detail__offer dl>div{display:grid;grid-template-columns:100px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid #f0f3f7}.unit-detail__offer dl>div:last-child{border-bottom:0}.unit-detail__offer dt{color:#8a96a6;font-size:12px}.unit-detail__offer dd{margin:0;color:#26384e;font-size:13px;font-weight:700;line-height:1.55}
.unit-detail__split{display:grid;grid-template-columns:.72fr 1.28fr;gap:38px;align-items:center}.unit-detail__position-copy p{max-width:420px;margin:20px 0;color:var(--unit-muted);line-height:1.75}.unit-detail__position-copy a{color:var(--unit-blue);font-size:14px;font-weight:850}.unit-detail__plan-card{overflow:hidden;min-height:0;border:1px solid var(--unit-line);border-radius:22px;background:#f5f7fa;box-shadow:var(--unit-shadow)}.unit-detail__plan-card img{display:block;width:100%;height:auto;min-height:0;object-fit:contain;background:#fff}.unit-detail__plan-empty{display:grid;place-items:center;min-height:360px;color:#8c98a8;font-size:13px}
.unit-detail__facts dl{display:grid;grid-template-columns:repeat(2,1fr);margin:0;border:1px solid var(--unit-line);border-radius:18px;overflow:hidden}.unit-detail__facts dl>div{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:18px 20px;border-bottom:1px solid var(--unit-line);background:#fff}.unit-detail__facts dl>div:nth-child(odd){border-right:1px solid var(--unit-line)}.unit-detail__facts dl>div:nth-last-child(-n+2){border-bottom:0}.unit-detail__facts dt{color:#8995a5;font-size:12px}.unit-detail__facts dd{margin:0;color:#20344d;font-size:14px;font-weight:800}.unit-detail__facts dd a{color:var(--unit-blue)}
.unit-detail__related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.unit-detail__related-grid a{padding:18px;border:1px solid var(--unit-line);border-radius:16px;background:#fff;color:var(--unit-ink);transition:transform .18s ease,box-shadow .18s ease}.unit-detail__related-grid a:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(22,42,68,.07)}.unit-detail__related-grid span{display:block;color:#8a97a8;font-size:10px;font-weight:800}.unit-detail__related-grid strong{display:block;margin-top:6px;font-size:20px}.unit-detail__related-grid small{display:block;margin-top:5px;color:#748396}.unit-detail__related-grid b{display:block;margin-top:16px;color:var(--unit-blue);font-size:12px}
.unit-detail__closing{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:end;margin-top:56px;padding:34px;border-radius:24px;background:var(--unit-navy);color:#fff}.unit-detail__closing small{color:#84a9d0;font-size:10px;font-weight:850;letter-spacing:.14em}.unit-detail__closing h2{margin:10px 0 0;font-size:34px;line-height:1.08;letter-spacing:-.045em}.unit-detail__closing p{max-width:620px;margin:14px 0 0;color:#b5c2d1;line-height:1.7}.unit-detail__closing-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.unit-detail__closing-actions a{border-color:rgba(255,255,255,.22);background:transparent;color:#fff}.unit-detail__closing-actions a.is-primary{border-color:#fff;background:#fff;color:#17324d}
.unit-detail__mobile-actions{display:none}
@media(max-width:920px){.unit-detail__hero{grid-template-columns:1fr;gap:24px}.unit-detail__hero-media{min-height:420px}.unit-detail__split{grid-template-columns:1fr}.unit-detail__offer-grid{grid-template-columns:1fr}.unit-detail__closing{grid-template-columns:1fr}.unit-detail__closing-actions{justify-content:flex-start}}
@media(max-width:720px){.unit-detail{padding-bottom:68px}.unit-detail__shell{width:min(100% - 28px,720px);padding-top:18px;padding-bottom:44px}.unit-detail__breadcrumb{margin-bottom:14px;overflow:auto;white-space:nowrap}.unit-detail__hero{min-height:0;padding-bottom:34px}.unit-detail__hero-copy{padding:8px 0}.unit-detail__eyebrow{font-size:9px}.unit-detail__building{font-size:13px}.unit-detail__hero h1{font-size:clamp(42px,13vw,58px)}.unit-detail__lead{font-size:14px;line-height:1.68}.unit-detail__area-summary{margin-top:22px}.unit-detail__area-summary>div{padding:13px 10px}.unit-detail__area-summary strong{font-size:16px}.unit-detail__area-summary small{font-size:9px}.unit-detail__hero-actions{display:grid;grid-template-columns:1fr 1fr}.unit-detail__hero-actions a,.unit-detail__hero-actions button{padding:0 10px;font-size:12px}.unit-detail__hero-media{min-height:300px;border-radius:18px}.unit-detail__hero-caption{left:18px;right:18px;bottom:17px}.unit-detail__hero-caption strong{font-size:22px}.unit-detail__section{padding:48px 0}.unit-detail__section-head{display:block;margin-bottom:22px}.unit-detail__section-head h2,.unit-detail__position-copy h2{font-size:36px}.unit-detail__section-head>p{margin-top:14px;font-size:13px}.unit-detail__offer{padding:18px}.unit-detail__offer-price strong{font-size:20px}.unit-detail__offer dl>div{grid-template-columns:88px 1fr}.unit-detail__plan-empty{min-height:250px}.unit-detail__facts dl{grid-template-columns:1fr}.unit-detail__facts dl>div{grid-template-columns:105px 1fr;border-right:0!important}.unit-detail__facts dl>div:nth-last-child(-n+2){border-bottom:1px solid var(--unit-line)}.unit-detail__facts dl>div:last-child{border-bottom:0}.unit-detail__related-grid{grid-template-columns:1fr 1fr}.unit-detail__closing{margin-top:38px;padding:24px}.unit-detail__closing h2{font-size:28px}.unit-detail__closing-actions{display:grid;grid-template-columns:1fr 1fr}.unit-detail__closing-actions a{padding:0 10px;font-size:12px}.unit-detail__mobile-actions{position:fixed;z-index:80;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:6px;padding:8px max(12px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid #e3e8ef;background:rgba(255,255,255,.97);box-shadow:0 -8px 24px rgba(15,28,46,.07);backdrop-filter:blur(12px)}.unit-detail__mobile-actions a{display:flex;align-items:center;justify-content:center;height:44px;border:1px solid #d7e0ea;border-radius:10px;color:#19324a;background:#fff;font-size:13px;font-weight:850}.unit-detail__mobile-actions a.is-primary{border-color:#19324a;background:#19324a;color:#fff}}

/* Interactive floor-plan viewer on unit detail pages. */
.unit-detail__plan-card.is-unit-plan-zoom-ready{position:relative;cursor:zoom-in;overscroll-behavior:contain;touch-action:pan-y;background:#fff}
.unit-detail__plan-card.is-unit-plan-zoom-ready.is-zoomed{cursor:grab}
.unit-detail__plan-card.is-unit-plan-zoom-ready.is-dragging{cursor:grabbing}
.unit-detail__plan-stage{position:relative;width:100%;min-height:0;transform-origin:50% 50%;will-change:transform;background:#fff;line-height:0}
.unit-detail__plan-stage img{display:block;width:100%;height:auto!important;min-height:0!important;pointer-events:none;user-select:none;-webkit-user-drag:none}
.unit-detail__plan-overlay{position:absolute;z-index:2;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.unit-detail__plan-selected-area{fill:#ef5b5b;fill-opacity:.12;stroke:#e53935;stroke-width:.85;stroke-dasharray:2.2 1.45;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 .75px rgba(255,255,255,.92))}
.unit-detail__plan-selected-ring{fill:#ef5b5b;fill-opacity:.09;stroke:#e53935;stroke-width:.8;stroke-dasharray:2 1.3;vector-effect:non-scaling-stroke}
.unit-detail__plan-selected-dot{fill:#e53935;stroke:#fff;stroke-width:.45;vector-effect:non-scaling-stroke}
.unit-detail__plan-selected-label rect{display:block;x:-5.2px;y:-1.9px;width:10.4px;height:3.8px;rx:1.15px;fill:#fff;fill-opacity:.9;stroke:#7fa4ca;stroke-opacity:.48;stroke-width:.22;vector-effect:non-scaling-stroke;filter:drop-shadow(0 .35px .7px rgba(21,48,76,.16))}
.unit-detail__plan-selected-label path{display:none}
.unit-detail__plan-selected-label text{fill:#183b63;stroke:none;font-size:1.45px;font-weight:800;letter-spacing:0;dominant-baseline:middle;font-family:Arial,sans-serif;transform:translateY(2.35px)}
.unit-detail__plan-position-note{grid-column:2;margin:-22px 0 0;color:#8a96a7;font-size:12px;line-height:1.5}
.unit-detail__plan-controls{position:absolute;z-index:5;right:14px;top:14px;display:grid;grid-template-columns:40px 58px 40px;align-items:center;overflow:hidden;border:1px solid rgba(15,32,54,.12);border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(15,32,54,.1);backdrop-filter:blur(10px)}
.unit-detail__plan-controls button{height:40px;border:0;border-right:1px solid #e3e8ef;background:transparent;color:#17324d;font:inherit;font-size:19px;font-weight:800;cursor:pointer}
.unit-detail__plan-controls button:last-child{border-right:0}
.unit-detail__plan-controls button:hover{background:#f3f7fb}
.unit-detail__plan-controls button:focus-visible{position:relative;z-index:1;outline:2px solid #0f67ee;outline-offset:-2px}
.unit-detail__plan-controls .unit-detail__plan-scale{font-size:11px;font-weight:850;color:#4f6075}
.unit-detail__plan-card.is-zoomed::after{content:'드래그해서 이동';position:absolute;z-index:4;left:14px;bottom:14px;padding:7px 10px;border-radius:999px;background:rgba(15,32,54,.78);color:#fff;font-size:10px;font-weight:800;letter-spacing:-.01em;pointer-events:none}
@media(max-width:920px){.unit-detail__plan-position-note{grid-column:auto;margin:-12px 0 0}}
@media(max-width:720px){.unit-detail__plan-controls{right:10px;top:10px;grid-template-columns:36px 52px 36px;border-radius:10px}.unit-detail__plan-controls button{height:36px;font-size:18px}.unit-detail__plan-controls .unit-detail__plan-scale{font-size:10px}.unit-detail__plan-card.is-zoomed::after{left:10px;bottom:10px;padding:6px 9px;font-size:9px}.unit-detail__plan-selected-area{fill-opacity:.14;stroke-width:.95;stroke-dasharray:2 1.25}.unit-detail__plan-selected-label rect{x:-5px;width:10px;height:3.6px;rx:1.05px}.unit-detail__plan-selected-label text{font-size:1.35px}}

/* Completed unit condition */
.unit-detail__types span.is-completed{background:#eef1f4;color:#485969}
.unit-detail__completed-condition{max-width:760px;padding:30px 32px;border:1px solid #dce3ea;border-radius:20px;background:#f7f9fb;box-shadow:0 10px 30px rgba(22,42,68,.035)}
.unit-detail__completed-condition>span{display:block;color:#8b98a6;font-size:10px;font-weight:900;letter-spacing:.14em}
.unit-detail__completed-condition>strong{display:block;margin-top:12px;color:#172b40;font-size:28px;font-weight:900;letter-spacing:-.04em}
.unit-detail__completed-condition>p{margin:10px 0 0;color:#718095;font-size:13px;line-height:1.65}
@media(max-width:720px){.unit-detail__completed-condition{padding:22px 20px;border-radius:16px}.unit-detail__completed-condition>strong{font-size:23px}}


/* Unit detail: two-link subnavigation, shared with the mobile text-tab language.
   No fixed leading button; keep the existing hero and data sections untouched. */
.unit-detail.od-structured-page .unit-detail__subnav{
  position:sticky;
  top:var(--site-header-height,70px);
  z-index:70;
  width:100%;
  border-bottom:1px solid #e9edf2;
  background:#fff;
  box-shadow:none;
}
.unit-detail.od-structured-page .unit-detail__subnav-inner{
  box-sizing:border-box;
  display:flex;
  align-items:center;
  gap:28px;
  width:min(1240px,calc(100% - 40px));
  min-height:54px;
  margin:0 auto;
  padding:0;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.unit-detail.od-structured-page .unit-detail__subnav-inner::-webkit-scrollbar{
  display:none;
}
.unit-detail.od-structured-page .unit-detail__subnav a{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-height:54px;
  gap:6px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#64748b;
  font-size:15px;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
  text-decoration:none;
  box-shadow:none;
}
.unit-detail.od-structured-page .unit-detail__subnav a:hover,
.unit-detail.od-structured-page .unit-detail__subnav a:focus-visible{
  color:#143d66;
}
.unit-detail.od-structured-page .unit-detail__subnav a:focus-visible{
  outline:2px solid #6ba7dd;
  outline-offset:-3px;
}
.unit-detail.od-structured-page .unit-detail__subnav a[data-unit-history-back]{
  color:#5f6b7a;
}
@media(max-width:720px){
  .unit-detail.od-structured-page .unit-detail__subnav-inner{
    width:100%;
    max-width:none;
    min-height:52px;
    gap:24px;
    padding:0 16px;
  }
  .unit-detail.od-structured-page .unit-detail__subnav a{
    min-height:52px;
    font-size:15px;
  }
}
