/* Maps page only. */
.maps-page { color:var(--color-text-primary); }
.maps-page h1,.maps-page h2 { font-family:"Segoe UI",Arial,sans-serif; font-weight:700; letter-spacing:-.045em; line-height:1.12; text-wrap:balance; margin:0 0 24px; }
.maps-page h1 { font-size:clamp(2.7rem,3.7vw,3.3rem); }
.maps-page h2 { font-size:clamp(2rem,3.3vw,2.8rem); }
.maps-page h3 { font-size:1.2rem; line-height:1.35; margin:0 0 12px; }
.maps-page em { color:var(--color-text-brand); font-family:Georgia,"Times New Roman",serif; font-weight:400; }
.maps-page p { color:var(--color-text-secondary); line-height:1.7; margin:0 0 20px; }
.maps-page .maps-lead { font-size:1.125rem; }
.maps-page a,.maps-page a:hover { text-decoration:none; }
.maps-page a:focus-visible { outline:3px solid var(--color-text-brand); outline-offset:5px; }
.maps-page .btn-primary { border-radius:3px; background:#2563eb; color:#fff; }
.maps-page .btn-primary:hover { background:#1d4ed8; }
.maps-page .cta-group { align-items:center; gap:12px 24px; margin-top:28px; }
.maps-link { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:.9375rem; font-weight:600; color:var(--color-text-brand); }
.maps-link:hover { opacity:.8; }
.maps-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center; }
.maps-split > * { min-width:0; }
.maps-align-start { align-items:start; }
.maps-hero { padding:36px 0 64px; }
.maps-hero-art { display:block; width:100%; max-width:440px; height:auto; margin:auto; border-radius:3px; box-shadow:0 12px 28px -15px #16293c66; }
.maps-page .maps-plan { font-size:.875rem; margin:20px 0 0; max-width:460px; }
.maps-plan a { display:inline-block; min-height:44px; padding-top:8px; color:var(--color-text-brand); }
.maps-section { padding:80px 0; scroll-margin-top:80px; }
.maps-tint { background:var(--color-bg-tinted); }
.maps-gallery { position:relative; aspect-ratio:800/557; overflow:hidden; border-radius:3px; background:#f4f0eb; }
.maps-slide { position:absolute; inset:0; transition:opacity 650ms ease; }
.maps-slide[hidden] { display:none; }
.maps-gallery-map { display:none; }
.maps-gallery-detail { position:absolute; inset:0; overflow:hidden; }
.maps-gallery img { position:absolute; width:100%; height:auto; left:0; bottom:0; }
.maps-gallery img[hidden] { display:none; }
.maps-search { overflow:hidden; border:1px solid var(--color-border); border-radius:3px; margin-top:28px; }
.maps-search img { display:block; width:100%; height:auto; }
.maps-import-view img,.maps-design-view img { display:block; width:100%; height:auto; }
.maps-import-view { border:1px solid var(--color-border); border-radius:3px; overflow:hidden; }
.maps-rule { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; border-top:1px solid var(--color-border); padding-top:32px; margin-top:40px; }
.maps-rule h3 { max-width:300px; font-size:1.5rem; }
.maps-rule p { margin-bottom:8px; }
.maps-design-intro { margin-bottom:28px; }
.maps-design-intro h2,.maps-design-intro p { margin-bottom:0; }
.maps-design-result { display:none; }
.maps-design-view { border:1px solid var(--color-border); border-radius:3px; overflow:hidden; }
.maps-steps { list-style:none; counter-reset:maps-step; margin:0; padding:0; }
.maps-steps li { counter-increment:maps-step; position:relative; padding:0 0 28px 44px; }
.maps-steps li:before { content:counter(maps-step,decimal-leading-zero); position:absolute; left:0; top:2px; color:var(--color-text-brand); font-size:.875rem; }
.maps-steps li:last-child { padding-bottom:0; }
.maps-steps p { margin:0; }
.maps-close { background:#0b2842; color:#fff; padding-top:64px; }
.maps-close-main { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); align-items:center; gap:72px; padding-bottom:48px; }
.maps-close h2 { color:#fff; font-size:clamp(2.5rem,4.4vw,3.8rem); }
.maps-close h2 em { color:#9ec4ff; }
.maps-close p { color:#cfdeea; max-width:440px; }
.maps-close .btn-primary { background:#fff; color:#0b2842; min-height:54px; gap:24px; padding:15px 24px; margin-top:8px; }
.maps-close .btn-primary:hover { background:#dfebff; color:#0b2842; }
.maps-close a:focus-visible { outline-color:#9ec4ff; }
.maps-close-art img { width:100%; height:auto; display:block; border-radius:3px; }
.maps-page .maps-close-note { font-size:.875rem; margin:16px 0 0; }
.maps-close-note a { color:#fff; display:inline-block; min-height:44px; padding-top:8px; }
.maps-close-footer { display:flex; justify-content:space-between; align-items:center; gap:16px 32px; border-top:1px solid #385167; padding:20px 0; }
.maps-close-footer p { margin:0; font-size:.875rem; max-width:none; }
.maps-close-footer a { color:#fff; }
.maps-close-footer p a { display:inline-flex; align-items:center; min-height:44px; margin-left:12px; }
.maps-close a:hover { color:#9ec4ff; }
@media(max-width:1000px) { .maps-split,.maps-rule { gap:36px; } }
@media(max-width:900px) { .maps-hero .maps-split { grid-template-columns:1fr; gap:32px; } .maps-hero-art { max-width:400px; } .maps-hero .maps-split>div { max-width:650px; } }
@media(max-width:768px) {
 .maps-page h1 { font-size:clamp(2.5rem,8.5vw,3.6rem); }
 .maps-page h2 { font-size:clamp(1.95rem,6.8vw,2.6rem); }
 .maps-split,.maps-rule,.maps-close-main { grid-template-columns:1fr; gap:28px; }
 .maps-section { padding:52px 0; }
 .maps-hero { padding:28px 0 44px; }
 .maps-page .cta-group { flex-direction:column; align-items:flex-start; gap:10px; }
 .maps-close { padding-top:44px; }
 .maps-close-main { padding-bottom:32px; }
 .maps-close-art { max-width:440px; }
 .maps-close-footer { flex-direction:column; align-items:flex-start; gap:6px; padding:16px 0; }
 .maps-close h2 { font-size:clamp(2.3rem,8vw,3.5rem); }
 .maps-search { aspect-ratio:740/328; position:relative; }
 .maps-search img { position:absolute; width:151.62%; max-width:none; left:0; top:0; }
 .maps-design-view { aspect-ratio:800/835; position:relative; }
 .maps-design-view img { position:absolute; width:263.25%; max-width:none; left:-3%; top:-12%; }
 .maps-design-result { display:block; position:relative; aspect-ratio:730/750; overflow:hidden; margin-top:20px; border:1px solid var(--color-border); border-radius:3px; }
 .maps-design-result img { position:absolute; width:288.49%; max-width:none; left:-185%; top:-18%; }
 .maps-import-view { aspect-ratio:1010/1060; }
 .maps-import-view img { width:225.44%; max-width:none; }
 .maps-gallery { aspect-ratio:390/893; background:transparent; }
 .maps-slide { display:grid; grid-template-rows:420fr 470fr; gap:12px; }
 .maps-gallery-map { display:block; position:relative; overflow:hidden; border-radius:3px; }
 .maps-gallery-detail { position:relative; inset:auto; border-radius:3px; }
 .maps-gallery-detail img { width:210%; max-width:none; left:auto; right:0; }
 .maps-gallery-map img { width:207.25%; max-width:none; left:-7.25%; bottom:-7%; }
}
@media(prefers-reduced-motion:reduce) { .maps-slide { transition:none; } }
