/* World single layout — overview/info duplication removed and lots grid stabilized. */
.sao-world-main .sao-world-overview-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(280px,360px);
    align-items:start;
    gap:var(--sa-space-6);
    padding-top:var(--sa-space-7);
}
.sao-world-main .sao-world-overview-panel{min-width:0;align-self:start;overflow:visible;}
.sao-world-main .sao-facts{position:sticky;top:calc(var(--sa-header) + 24px);width:100%;max-width:360px;justify-self:end;z-index:2;}
.sao-world-content-sections{padding-top:var(--sa-space-7);}
.sao-world-content-sections>.sao-section:first-child{margin-top:0;}
.sao-world-lots-section{margin-top:0;}
.sao-world-lots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sa-space-4);align-items:stretch;}
.sao-world-lots-grid .sao-card{height:100%;}
.sao-world-lots-grid .sao-card-link{grid-template-rows:auto 1fr;}
.sao-world-lots-grid .sao-card-art{aspect-ratio:16/9;}
.sao-world-extra-content{margin-top:var(--sa-space-6);}
@media (max-width:1023px){
    .sao-world-main .sao-world-overview-grid{grid-template-columns:1fr;}
    .sao-world-main .sao-facts{position:static;max-width:none;justify-self:stretch;}
}
@media (max-width:640px){
    .sao-world-main .sao-world-overview-grid{padding-top:var(--sa-space-6);gap:var(--sa-space-4);}
    .sao-world-content-sections{padding-top:var(--sa-space-6);}
    .sao-world-lots-grid{grid-template-columns:1fr;}
}

/* ============================================
   10. WORLD MAP — lean v7.0 consolidated
   ============================================ */
.sao-world-map-panel{
    width:min(calc(100vw - 32px),1580px);
    max-width:none;
    margin:clamp(48px,6vw,88px) 0 var(--sa-section-y-sm);
    margin-left:50%;
    transform:translateX(-50%);
    padding:0;
}
.sao-world-map-panel .sao-section-head,
.sao-world-map-head{width:min(100%,1480px);margin-inline:auto;align-items:flex-end}
.sao-world-map-head>div:first-child{display:grid;gap:var(--sa-space-3);max-width:760px}
.sao-world-map-head p:not(.sao-kicker){margin:0;color:var(--sa-text-muted);line-height:var(--sa-lh-normal)}
.sao-world-map-legend{display:flex;flex-wrap:wrap;gap:10px}
.sao-world-map-legend-item{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:7px 12px;border-radius:var(--sa-radius-pill);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);font-size:var(--sa-text-xs);font-weight:900}
.sao-world-map-legend-plumbob{width:14px;height:18px;display:inline-flex;flex:0 0 auto}
.sao-world-map-legend-item.is-residential .sao-world-map-legend-plumbob{color:var(--sa-plumbob)}
.sao-world-map-legend-item.is-community .sao-world-map-legend-plumbob{color:var(--sa-info)}
.sao-world-map-filters{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:620px}
.sao-world-map-filters button{appearance:none;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.06);color:var(--sa-text-muted);border-radius:var(--sa-radius-pill);padding:8px 12px;font-size:var(--sa-text-xs);font-weight:900;cursor:pointer}
.sao-world-map-filters button:hover,.sao-world-map-filters button.is-active{background:var(--sa-plumbob);border-color:var(--sa-plumbob);color:var(--sa-text-on-green)}
.sao-world-map-layout{display:grid;grid-template-columns:1fr;gap:var(--sa-space-4)}
.sao-world-map-stage{position:relative;display:grid;place-items:center;overflow:visible;padding:clamp(10px,1.4vw,22px);border-radius:clamp(18px,2vw,var(--sa-radius-2xl));background:linear-gradient(135deg,rgba(10,30,92,.8),rgba(5,11,46,.96));border:1px solid rgba(255,255,255,.08);box-shadow:var(--sa-shadow-lg)}
.sao-world-map-canvas{position:relative;width:100%;aspect-ratio:var(--map-ratio,16/9);min-height:320px;isolation:isolate}
.sao-world-map-canvas .sao-world-map-image{position:absolute;inset:0;width:100%;height:100%;min-height:0;object-fit:contain;object-position:center;transform:none;border-radius:calc(var(--sa-radius-2xl) - 8px);filter:grayscale(.86) contrast(1.04) brightness(.86);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.sao-world-map-empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;gap:var(--sa-space-3);padding:var(--sa-space-7);color:var(--sa-text);border-radius:calc(var(--sa-radius-2xl) - 8px)}
.sao-world-map-empty svg{width:54px;height:72px;color:var(--sa-plumbob)}
.sao-map-marker{--marker-color:var(--sa-plumbob);position:absolute;left:var(--x);top:var(--y);z-index:8;display:grid;place-items:center;width:32px;height:40px;transform:translate(-50%,-100%);color:var(--marker-color);text-decoration:none;outline:0;transition:transform .18s var(--sa-ease),opacity .18s var(--sa-ease)}
.sao-map-marker--community,.sao-map-marker[data-palette="community"]{--marker-color:var(--sa-info)}
.sao-map-marker.is-hidden{display:none}
.sao-map-marker:hover,.sao-map-marker:focus-visible,.sao-map-marker.is-active{z-index:30;transform:translate(-50%,-100%) scale(1.18)}
.sao-map-marker-pulse{display:none}
.sao-map-marker-pin{display:grid;place-items:center;width:26px;height:34px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.55))}
.sao-map-marker-pin svg{width:100%;height:100%}
.sao-map-marker-label{position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%);max-width:160px;padding:6px 9px;border-radius:var(--sa-radius-pill);background:rgba(5,11,46,.86);border:1px solid rgba(255,255,255,.12);color:var(--sa-text);font-size:11px;line-height:1.1;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;pointer-events:none;transition:opacity .16s var(--sa-ease),transform .16s var(--sa-ease)}
.sao-map-marker:hover .sao-map-marker-label,.sao-map-marker:focus-visible .sao-map-marker-label,.sao-map-marker.is-active .sao-map-marker-label{opacity:1;transform:translateX(-50%) translateY(2px)}
.sao-map-marker.is-auto-positioned .sao-map-marker-pin{color:var(--sa-warning)}
.sao-map-marker.is-auto-positioned .sao-map-marker-label::after{content:" auto";color:var(--sa-warning);font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.sao-map-popover{position:absolute;bottom:calc(100% + 10px);left:50%;width:min(280px,72vw);display:grid;grid-template-columns:86px 1fr;gap:var(--sa-space-3);padding:var(--sa-space-3);border-radius:var(--sa-radius-lg);background:rgba(10,14,31,.96);border:1px solid rgba(143,224,61,.34);box-shadow:var(--sa-shadow-md);color:var(--sa-text);opacity:0;pointer-events:none;transform:translateX(-50%) translateY(4px);transition:opacity .15s ease,transform .15s ease}
.sao-map-marker:hover .sao-map-popover,.sao-map-marker:focus-visible .sao-map-popover,.sao-map-marker.is-active .sao-map-popover{opacity:1;transform:translateX(-50%) translateY(0)}
.sao-map-popover-art{display:block;overflow:hidden;border-radius:var(--sa-radius-md);background:var(--sa-surface-raised);aspect-ratio:1/1}
.sao-map-popover-art img,.sao-map-popover-art .sao-placeholder{width:100%;height:100%;object-fit:cover}
.sao-map-marker--community .sao-map-popover{border-color:rgba(109,174,255,.34)}
.sao-map-popover-copy{display:grid;align-content:center;gap:5px;min-width:0}
.sao-map-popover-copy strong{font-size:14px;line-height:1.1;color:var(--sa-text)}
.sao-map-popover-copy em{font-style:normal;font-size:11px;font-weight:800;color:var(--marker-color);line-height:1.25}
.sao-map-popover-copy small{font-size:11px;color:var(--sa-text-muted);line-height:1.25}
.sao-world-map-note{width:min(100%,1480px);margin:var(--sa-space-3) auto 0;color:var(--sa-text-muted);font-size:var(--sa-text-sm)}
.sao-world-map-preview{position:relative;display:flex;align-items:stretch;width:min(100%,1120px);min-height:220px;margin:clamp(18px,2vw,28px) auto 0;overflow:hidden;isolation:isolate;border-radius:clamp(18px,2vw,28px);background:linear-gradient(135deg,rgba(26,34,71,.96),rgba(8,16,48,.98));border:1px solid rgba(255,255,255,.09);box-shadow:0 22px 56px rgba(0,0,0,.34)}
.sao-world-map-preview::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--sa-plumbob),transparent);pointer-events:none;z-index:4}
.sao-world-map-preview[data-palette="community"]::before{background:linear-gradient(90deg,var(--sa-info),transparent)}
.sao-world-map-preview-art{flex:0 0 clamp(240px,32vw,360px);width:clamp(240px,32vw,360px);max-width:38%;min-height:220px;position:relative;z-index:1;overflow:hidden;background:linear-gradient(135deg,rgba(143,224,61,.12),rgba(255,255,255,.04))}
.sao-world-map-preview-art::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent 58%,rgba(8,16,48,.72) 100%)}
.sao-world-map-preview-art img,.sao-world-map-preview-art .sao-placeholder{position:relative;width:100%;height:100%;min-height:220px;object-fit:cover;display:block}
.sao-world-map-preview-copy{flex:1 1 auto;min-width:0;position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px clamp(18px,2.6vw,34px);padding:clamp(22px,2.5vw,34px);align-content:center;background:linear-gradient(90deg,rgba(8,16,48,.98),rgba(11,22,58,.76))}
.sao-world-map-preview-main{grid-column:1;display:grid;gap:8px;min-width:0}
.sao-world-map-preview-main .sao-kicker{margin:0;color:var(--sa-text-muted);letter-spacing:.18em}
.sao-world-map-preview-main h3{font-size:clamp(1.65rem,3vw,2.6rem);line-height:1;margin:0;color:var(--sa-text);overflow-wrap:anywhere}
.sao-world-map-preview-meta{margin:0;font-size:clamp(.95rem,1.4vw,1.2rem);font-weight:950;color:var(--sa-plumbob)}
.sao-world-map-preview[data-palette="community"] .sao-world-map-preview-meta,.sao-world-map-preview[data-palette="community"] .sao-world-map-preview-rooms{color:var(--sa-info)}
.sao-world-map-preview-description{margin:2px 0 0;max-width:720px;color:rgba(232,234,242,.72);font-size:var(--sa-text-base);line-height:1.55;overflow-wrap:anywhere}
.sao-world-map-preview-facts{grid-column:1;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sao-world-map-preview-facts p{margin:0;display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border-radius:var(--sa-radius-pill);background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);color:var(--sa-text-muted);font-size:var(--sa-text-sm);font-weight:850}
.sao-world-map-preview-facts p:empty{display:none}
.sao-world-map-preview-rooms{color:var(--sa-plumbob);background:rgba(143,224,61,.11);border-color:rgba(143,224,61,.24)}
.sao-world-map-preview[data-palette="community"] .sao-world-map-preview-rooms{background:rgba(109,174,255,.11);border-color:rgba(109,174,255,.24)}
.sao-world-map-preview .sao-button{grid-column:2;grid-row:1 / span 2;justify-self:end;align-self:center;margin:0;white-space:nowrap;min-width:160px}
.sao-world-map-tools{flex:1 1 100%;display:flex;align-items:center;justify-content:flex-end;gap:var(--sa-space-3);color:var(--sa-text-muted);font-size:var(--sa-text-xs)}
.sao-world-map-tool-button{appearance:none;border:1px solid rgba(143,224,61,.6);background:rgba(143,224,61,.12);color:var(--sa-plumbob);border-radius:var(--sa-radius-pill);padding:8px 12px;font-weight:900;cursor:pointer}
.sao-world-map-tool-button.is-active{background:var(--sa-plumbob);color:var(--sa-text-on-green)}
.sao-world-map-panel.is-calibrating .sao-world-map-canvas{cursor:crosshair}
.sao-world-map-panel.is-calibrating .sao-map-marker{pointer-events:none}
