/* FotoAtlas MSW Portal 2.0: scoped styles; no changes to site-wide orb/AI/voice widgets. */
.mswfa2, .mswfa2 * { box-sizing:border-box; }
.mswfa2 { --msw2-night:#081d33; --msw2-blue:#0b3d61; --msw2-cyan:#36d9ec; --msw2-ink:#102c43; --msw2-muted:#3e5870; --msw2-line:#b8d3e2; --msw2-white:#fbfeff; max-width:1580px; padding:clamp(15px,2.2vw,32px); margin:24px auto 68px; color:var(--msw2-ink); line-height:1.55; font-family:system-ui,-apple-system,'Segoe UI',Arial,sans-serif; overflow-wrap:anywhere; }
.mswfa2 a { text-decoration:none; }
.mswfa2 :focus-visible { outline:3px solid #f1ba46 !important; outline-offset:3px; }
.mswfa2 a,.mswfa2 button,.mswfa2 summary { -webkit-tap-highlight-color:transparent; }
.mswfa2 button { cursor:pointer; font:inherit; }
.mswfa2 [hidden] { display:none!important; }
.mswfa2 h1,.mswfa2 h2,.mswfa2 h3 { letter-spacing:-.027em; line-height:1.2; }
.mswfa2-hero { padding:clamp(26px,4vw,55px); background:radial-gradient(ellipse at 89% 6%,rgba(42,163,209,.32),transparent 46%),linear-gradient(126deg,#061627,#0b365a 68%,#096a87); color:white; border:1px solid #3d7f9f; border-radius:27px; box-shadow:0 17px 45px rgba(6,35,59,.22); }
.mswfa2-hero-kicker,.mswfa2-label { font-size:.78rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; color:#1788ab; }
.mswfa2-hero-kicker { color:#95eefa; }
.mswfa2-hero h1 { max-width:990px; margin:14px 0; font-size:clamp(1.85rem,3.5vw,3.25rem); color:#fff!important; }
.mswfa2-hero p { color:#e0f2fe!important; font-size:clamp(1rem,1.5vw,1.18rem); max-width:920px; line-height:1.65; }
.mswfa2-headlinks { display:flex; flex-wrap:wrap; gap:10px; margin-top:23px; }
.mswfa2-headlinks a { border:1px solid #88cadc; padding:12px 17px; min-height:47px; border-radius:12px; font-weight:750; color:#fff!important; background:rgba(255,255,255,.11); }
.mswfa2-headlinks a:hover,.mswfa2-headlinks a:focus-visible { background:#fff; color:#073d5b!important; }
.mswfa2-departments { margin:25px 0; padding:clamp(15px,2vw,25px); background:#e9f5fb; border:1px solid #c5dfe9; border-radius:20px; }
.mswfa2-departments h2 { margin:0 0 15px; font-size:clamp(1.25rem,2vw,1.7rem); color:#13354c!important; }
.mswfa2-departments nav { display:flex; flex-wrap:wrap; gap:8px; }
.mswfa2-departments nav a { padding:10px 13px; border-radius:10px; border:1px solid #b8d5e5; background:white; color:#12486a!important; font-size:.91rem; font-weight:750; min-height:44px; display:inline-flex; align-items:center; }
.mswfa2-departments nav a:hover { background:#cceef9; border-color:#56b3d6; }
.mswfa2-section-head { display:flex; justify-content:space-between; align-items:end; gap:16px; margin:32px 0 22px; }
.mswfa2-section-head h2 { color:#102e49!important; font-size:clamp(1.45rem,2.5vw,2.25rem); margin:8px 0 5px; }
.mswfa2-section-head p { color:#3a5a70!important; max-width:910px; font-size:1rem; margin:0; }
.mswfa2-section-contact a { background:#0a607d; display:inline-flex; padding:12px 18px; border-radius:12px; color:white!important; white-space:nowrap; font-weight:750; }
.mswfa2-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,305px),1fr)); gap:clamp(15px,1.8vw,25px); }
.mswfa2-card { min-width:0; display:flex; flex-direction:column; overflow:hidden; background:#f6fbff; border:1px solid #b6d6e5; border-radius:19px; box-shadow:0 8px 25px rgba(4,36,62,.10); transition:transform .19s, box-shadow .19s; }
.mswfa2-card:hover { transform:translateY(-3px); box-shadow:0 17px 36px rgba(4,36,62,.16); }
.mswfa2-picture { display:block; position:relative; width:100%; aspect-ratio:4/3; min-height:240px; max-height:340px; overflow:hidden; background:#d3e8f0; }
.mswfa2-picture img { width:100%!important; height:100%!important; max-width:100%!important; max-height:100%!important; object-fit:cover!important; object-position:center!important; display:block; margin:0; filter:none; }
.mswfa2-zoom-label { position:absolute; bottom:12px; right:12px; font-size:.79rem; color:#fff; font-weight:800; border:1px solid #70cee0; border-radius:10px; padding:9px 12px; background:rgba(5,27,45,.88); }
.mswfa2-card-body { display:flex; flex:1; flex-direction:column; gap:12px; padding:19px; color:#102e49!important; }
.mswfa2-meta { display:flex; flex-wrap:wrap; gap:8px; justify-content:space-between; font-size:.75rem; font-weight:800; color:#137299; text-transform:uppercase; letter-spacing:.04em; }
.mswfa2-card h3 { font-size:clamp(1.07rem,1.5vw,1.32rem); margin:0; color:#112b44!important; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.mswfa2-card h3 a { color:inherit!important; }
.mswfa2-card-body > p { font-size:.94rem; line-height:1.65; color:#365571!important; margin:0; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; }
.mswfa2-card details,.mswfa2-single details { border:1px solid #a7d2e5; border-radius:11px; background:#e5f6fc; margin:1px 0; }
.mswfa2-card details > summary,.mswfa2-single details > summary { padding:11px 14px; cursor:pointer; font-weight:800; color:#123e5c; min-height:45px; }
.mswfa2-card details[open] > summary { border-bottom:1px solid #a7d2e5; }
.mswfa2-detail-body { padding:10px 14px; max-height:260px; overflow:auto; }
.mswfa2-detail-body p { margin:0; font-size:.9rem; color:#244e66!important; }
.mswfa2-pending { padding:10px 12px; border-radius:9px; background:#f1f5f8; border:1px solid #d7e3eb; color:#52687b; font-size:.8rem; }
.mswfa2-card-foot { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:auto; }
.mswfa2-card-foot a,.mswfa2-card-foot button { flex:1; display:inline-flex; align-items:center; justify-content:center; min-height:43px; border-radius:9px; border:1px solid #7caaca; padding:8px 10px; background:#fdfefe; color:#0d5475!important; font-size:.84rem; font-weight:750; text-align:center; }
.mswfa2-card-foot a:hover,.mswfa2-card-foot button:hover { background:#c7eef7; }
.mswfa2-card-foot button[aria-pressed=true] { background:#0b6484; color:#fff!important; }
.mswfa2-contacts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.mswfa2-btn { display:flex; justify-content:center; align-items:center; text-align:center; border-radius:10px; padding:10px 11px!important; min-height:45px; font-weight:850!important; font-size:.82rem!important; line-height:1.35; border:1px solid transparent; }
.mswfa2-btn-tg { background:#1477a9; color:#fff!important; }
.mswfa2-btn-wa { background:#116a49; color:#fff!important; }
.mswfa2-btn-phone { background:#e7f1fa; border-color:#9abdd1; color:#104d6f!important; grid-column:1/-1; }
.mswfa2-btn:hover { filter:brightness(1.12); }
.mswfa2-pagination { margin:24px 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; padding:12px 17px; background:#edf7fc; border:1px solid #bfd9e8; border-radius:15px; color:#254a65; font-weight:750; }
.mswfa2-pagination > div { display:flex; flex-wrap:wrap; gap:8px; }
.mswfa2-pagination a { display:inline-flex; align-items:center; padding:11px 15px; min-height:44px; border-radius:10px; background:#0c6688; color:#fff!important; font-weight:800; }
.mswfa2-pagination a:hover { background:#084b68; }
.mswfa2-empty { padding:28px; border:1px dashed #80b0c9; border-radius:15px; color:#294f67!important; }
.mswfa2-breadcrumbs { display:flex; flex-wrap:wrap; gap:9px; font-size:.85rem; color:#47657a; margin:9px 0 25px; }
.mswfa2-breadcrumbs a { color:#125b7d!important; text-decoration:underline; }
.mswfa2-single-head { margin:15px 0 23px; }
.mswfa2-single-head h1 { margin:11px 0; color:#102d48!important; font-size:clamp(1.8rem,3vw,3.3rem); }
.mswfa2-single-head p { color:#365570!important; font-size:1.1rem; line-height:1.65; }
.mswfa2-single-layout { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(310px,0.85fr); gap:20px; align-items:start; }
.mswfa2-single-photo { background:#071b2c; border-radius:20px; overflow:hidden; padding:12px; display:flex; flex-direction:column; gap:10px; min-height:470px; }
.mswfa2-single-photo > a:first-child { display:flex; align-items:center; justify-content:center; width:100%; min-height:450px; max-height:80vh; background:#051422; }
.mswfa2-single-photo img { display:block; object-fit:contain!important; object-position:center; max-width:100%!important; width:100%; max-height:min(80vh,1100px); height:auto; }
.mswfa2-single-photo > a:last-child { color:#b6f1ff!important; font-size:.91rem; text-align:center; padding:9px; font-weight:750; }
.mswfa2-single-description { background:#eff8fd; border:1px solid #b7d6e5; border-radius:20px; padding:clamp(17px,2vw,26px); }
.mswfa2-single-description h2 { color:#12354d!important; font-size:1.52rem; margin:0 0 14px; }
.mswfa2-single-description > p { color:#365570!important; line-height:1.7; }
.mswfa2-single-description details { margin:14px 0; }
.mswfa2-single-description ul { color:#29475d; padding:2px 18px 10px 30px; }
.mswfa2-meta-line a { color:#0b557b!important; text-decoration:underline; }
.mswfa2-caution { font-size:.84rem; border-top:1px solid #c8e0ec; padding-top:14px; }
.mswfa2-related { margin:30px 0; }
.mswfa2-related h2 { color:#12354e!important; margin:0 0 16px; }
.mswfa2-related-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:14px; }
.mswfa2-related-grid a { display:flex; flex-direction:column; gap:11px; background:#fff; border:1px solid #cadde7; border-radius:14px; overflow:hidden; padding-bottom:14px; color:#173a53!important; font-size:.87rem; font-weight:750; }
.mswfa2-related-grid img { width:100%; height:160px; object-fit:cover; }
/* Premium full-resolution lightbox: CSS containment preserves the whole image. */
.mswfa2 .mswfa2-modal:not([open]) { display:none!important; }
.mswfa2 .mswfa2-modal[open] { position:fixed!important; inset:0!important; margin:auto!important; width:min(1600px,98vw)!important; max-width:98vw!important; max-height:96dvh!important; height:min(1030px,96dvh)!important; border:1px solid #3d95b2!important; padding:0!important; border-radius:23px!important; box-shadow:0 35px 100px rgba(0,0,0,.55); color:#eaf7ff!important; background:linear-gradient(135deg,#071729,#103451)!important; overflow:hidden; flex-direction:column; display:flex; z-index:999999; }
.mswfa2 .mswfa2-modal::backdrop { background:rgba(2,13,24,.91); backdrop-filter:blur(9px); }
.mswfa2-modal-top { display:flex; justify-content:space-between; align-items:center; padding:13px 17px; gap:12px; background:#071c31; border-bottom:1px solid #2c6785; min-height:64px; }
.mswfa2-modal-top > span { color:#c5f4fb; font-size:.88rem; font-weight:800; }
.mswfa2-modal-toolbar { display:flex; flex-wrap:wrap; gap:7px; }
.mswfa2-modal-toolbar button { min-height:43px; border-radius:9px; border:1px solid #4d8198; background:#123f5f; color:#fff!important; padding:8px 12px; font-size:.85rem; font-weight:750; }
.mswfa2-modal-toolbar button:hover { background:#226788; }
.mswfa2-modal-toolbar [data-mswfa2-close] { background:#f3fafc; color:#103953!important; border-color:#d4eef5; font-size:1.2rem; }
.mswfa2-modal-columns { display:grid; grid-template-columns:minmax(0,1.85fr) minmax(290px,.84fr); flex:1; min-height:0; }
.mswfa2-modal-media { position:relative; min-height:0; background:radial-gradient(ellipse at center,#18374e 0%,#030e18 73%); display:flex; align-items:center; justify-content:center; overflow:auto; overscroll-behavior:contain; touch-action:pan-x pan-y; }
.mswfa2-modal-media > img { display:block; object-fit:contain!important; object-position:center; width:100%!important; height:100%!important; max-width:100%!important; max-height:100%!important; min-width:0!important; min-height:0!important; flex-shrink:0; transform-origin:center center; transition:transform .17s ease; }
.mswfa2-modal-media.mswfa2-zoomed > img { transform:scale(2); cursor:zoom-out; }
.mswfa2-loading { position:absolute; bottom:15px; left:15px; padding:8px 12px; background:#0f354e; border:1px solid #457e9b; border-radius:9px; color:#fff; font-size:.83rem; pointer-events:none; }
.mswfa2-modal-side { display:flex; flex-direction:column; gap:14px; min-height:0; overflow:auto; padding:clamp(16px,2.1vw,30px); background:#10304a; }
.mswfa2-modal-side .mswfa2-label { color:#7ee3f5; }
.mswfa2-modal-side h2 { color:#fff!important; font-size:clamp(1.15rem,1.6vw,1.6rem); margin:0; }
.mswfa2-modal-side > p { color:#dbeffa!important; font-size:.94rem; line-height:1.65; margin:0; }
.mswfa2-modal-side details { background:#193d58; border:1px solid #4b819d; color:#e9f9ff; border-radius:12px; }
.mswfa2-modal-side summary { cursor:pointer; padding:13px; font-weight:800; }
.mswfa2-modal-side details p { margin:0; padding:0 13px 15px; color:#effcff!important; line-height:1.65; }
.mswfa2-modal-side .mswfa2-contacts { gap:8px; }
.mswfa2-modal-side .mswfa2-btn-phone { background:#d8ecf7; color:#0d425d!important; }
.mswfa2-fullpage,.mswfa2-original { display:block; min-height:43px; border:1px solid #569bbc; border-radius:10px; padding:10px 14px; color:#b6edfb!important; font-size:.9rem; font-weight:800; }
.mswfa2-modal-side small { color:#a8cadb; font-size:.76rem; line-height:1.6; }
@media(max-width:980px){ .mswfa2-single-layout{grid-template-columns:1fr}.mswfa2-modal-columns{grid-template-columns:minmax(0,1.5fr) minmax(245px,.85fr)}.mswfa2-modal-side{padding:17px}.mswfa2-card-body{padding:16px} }
@media(max-width:700px){
  .mswfa2 { padding:10px; margin:12px auto 40px; }
  .mswfa2-hero { padding:22px 18px; border-radius:19px; }
  .mswfa2-headlinks { display:grid; grid-template-columns:1fr 1fr; }
  .mswfa2-headlinks a { font-size:.82rem; padding:10px 9px; text-align:center; }
  .mswfa2-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .mswfa2-picture { min-height:140px; aspect-ratio:1/1; }
  .mswfa2-card-body { padding:12px; gap:8px; }
  .mswfa2-card h3 { font-size:.96rem; }
  .mswfa2-card-body > p { font-size:.82rem; -webkit-line-clamp:3; }
  .mswfa2-meta { font-size:.62rem; }
  .mswfa2-section-head { align-items:start; flex-direction:column; }
  .mswfa2-section-contact a { white-space:normal; }
  .mswfa2-btn { font-size:.74rem!important; padding:10px 5px!important; }
  .mswfa2-departments nav a { font-size:.79rem; }
  .mswfa2-single-photo { min-height:240px; }
  .mswfa2-single-photo > a:first-child { min-height:240px; }
  .mswfa2 .mswfa2-modal[open] { width:100vw!important; max-width:100vw!important; height:100dvh!important; max-height:100dvh!important; border-radius:0!important; }
  .mswfa2-modal-top { padding:7px 10px; min-height:55px; }
  .mswfa2-modal-toolbar button { padding:8px; font-size:.75rem; }
  .mswfa2-modal-columns { grid-template-columns:1fr; grid-template-rows:minmax(210px,53dvh) minmax(0,1fr); overflow:auto; }
  .mswfa2-modal-media { min-height:0; max-height:53dvh; }
  .mswfa2-modal-side { overflow:visible; }
  .mswfa2-modal-side h2 { font-size:1.2rem; }
}
@media(max-width:430px){ .mswfa2-grid{grid-template-columns:1fr}.mswfa2-picture{min-height:250px;aspect-ratio:4/3}.mswfa2-headlinks{grid-template-columns:1fr}.mswfa2-modal-toolbar button{min-width:37px;padding:7px!important}.mswfa2-modal-side{padding:15px}.mswfa2-contacts{grid-template-columns:1fr 1fr} }
@media(prefers-reduced-motion:reduce){.mswfa2 *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* Local saved and two-frame comparison are preserved from the previous FotoAtlas. */
.mswfa2-card-foot [data-mswfa2-compare-select][aria-pressed=true]{background:#0a607d;color:#fff!important;}
.mswfa2-section-contact{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.mswfa2-section-contact button{background:#ddeef7;border:1px solid #80b8d3;border-radius:10px;color:#17445e;font-weight:800;min-height:45px;padding:10px 13px}
.mswfa2-section-contact button:disabled{opacity:.6;cursor:not-allowed}
.mswfa2-section-contact button:not(:disabled):hover{background:#b5eaf7}
.mswfa2-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;width:100%;height:100%;max-height:100%;padding:12px;overflow:auto}
.mswfa2-comparison figure{margin:0;display:flex;flex-direction:column;align-items:center;min-width:0;min-height:0;height:100%;gap:10px}
.mswfa2-comparison figure img{width:100%;height:calc(100% - 60px);max-width:100%;max-height:100%;object-fit:contain;display:block;flex:1;min-height:100px}
.mswfa2-comparison figcaption{max-height:60px;overflow:auto;font-size:.83rem;color:#dcf5fc;text-align:center}
@media(max-width:700px){.mswfa2-comparison{grid-template-columns:1fr 1fr;padding:8px;gap:6px}.mswfa2-comparison figure img{height:calc(100% - 70px)}}

/* Compact, one-row lightbox toolbar on small phones. */
@media(max-width:700px) {
 .mswfa2-modal-top { display:grid!important; grid-template-columns:minmax(82px,1fr) auto; gap:7px; align-items:center; padding:7px 8px; }
 .mswfa2-modal-top > span { white-space:nowrap; min-width:0; overflow:hidden; text-overflow:ellipsis; font-size:.74rem; }
 .mswfa2-modal-toolbar { display:grid; grid-template-columns:repeat(2,34px) auto 36px; gap:5px; align-items:center; flex-wrap:nowrap; }
 .mswfa2-modal-toolbar button { min-width:0!important; min-height:38px; padding:5px!important; font-size:.7rem!important; white-space:nowrap; }
 .mswfa2-modal-toolbar [data-mswfa2-zoom]{ padding:5px 8px!important; }
}
@media(max-width:345px) { .mswfa2-modal-toolbar { grid-template-columns:repeat(2,30px) auto 33px; gap:3px; }.mswfa2-modal-toolbar [data-mswfa2-zoom]{padding:5px!important;font-size:.64rem!important;} }

/* v2.1: premium controls, search across all public rows, immersive device facts. */
.mswfa2-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:22px 0 0}
.mswfa2-stats span{border:1px solid rgba(178,229,242,.47);background:rgba(255,255,255,.075);border-radius:13px;padding:14px;color:#dff8ff;font-size:.8rem;text-align:center}
.mswfa2-stats strong{display:block;color:#fff;font-size:clamp(1.3rem,2.2vw,2rem);line-height:1.12;margin-bottom:4px}
.mswfa2-search{padding:15px;margin:8px 0 22px;background:linear-gradient(135deg,#e7f5fa,#f8fcff);border:1px solid #b6d9e9;border-radius:16px}
.mswfa2-search label{display:block;font-size:.89rem;font-weight:800;color:#143e58;margin-bottom:8px}
.mswfa2-search>div{display:flex;flex-wrap:wrap;gap:9px;align-items:stretch}
.mswfa2-search input{min-width:190px;flex:1 1 350px;background:#fff!important;color:#172e43!important;border:1px solid #88b6cb!important;border-radius:11px;min-height:45px;padding:11px 14px;font-size:1rem}
.mswfa2-search button,.mswfa2-search a{background:#0c5573;color:#fff!important;border:1px solid #0c5573;border-radius:10px;min-height:45px;padding:10px 19px;font-size:.9rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.mswfa2-search a{background:#f4fbff;color:#125275!important;border:1px solid #a7cbde}
.mswfa2-filefacts{display:flex;flex-wrap:wrap;gap:7px;color:#e4f7ff;line-height:1.4;font-size:.79rem}
.mswfa2-filefacts>span{background:#1c4d68;padding:8px 10px;border-radius:9px;border:1px solid #487c98;color:#f1fcff}
.mswfa2-copy{background:#125675!important;color:#fff!important;border:1px solid #7ac8e7!important;border-radius:10px;min-height:43px;padding:11px 13px;font-weight:800!important;font-size:.86rem;cursor:pointer;text-align:center}
.mswfa2-copy:hover{background:#267895!important}
.mswfa2-modal-media:fullscreen{background:#020e19;width:100vw;height:100vh;display:grid;place-items:center}
.mswfa2-modal-media:fullscreen>img{object-fit:contain!important;max-height:100vh!important;max-width:100vw!important}
@media(max-width:700px){.mswfa2-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.mswfa2-modal-toolbar{grid-template-columns:repeat(2,34px) auto auto 36px!important}.mswfa2-modal-toolbar [data-mswfa2-fullscreen]{font-size:0!important;width:38px;padding:0!important}.mswfa2-modal-toolbar [data-mswfa2-fullscreen]::after{content:'⛶';font-size:20px}.mswfa2-search>div{display:grid;grid-template-columns:1fr 1fr}.mswfa2-search input{grid-column:1/-1;min-width:0;width:100%}.mswfa2-search button,.mswfa2-search a{font-size:.83rem;padding:8px}}
@media(max-width:355px){.mswfa2-modal-toolbar{grid-template-columns:repeat(2,30px) auto 28px 30px!important;gap:2px}.mswfa2-modal-toolbar [data-mswfa2-fullscreen]{width:28px}.mswfa2-modal-toolbar [data-mswfa2-fullscreen]::after{font-size:16px}}
