/* v43: product storytelling and proportional, uncropped app screenshots. */
.election-product h1 {font-size:clamp(2.3rem,4.5vw,4.3rem);line-height:1.08;letter-spacing:-.045em;}
.election-hero-visual {min-width:0;}
.election-hero-visual .caption {margin-top:1rem;}
.election-shot {margin:0;min-width:0;text-align:center;}
.election-shot a {display:block;border-radius:20px;overflow:hidden;background:#e9eef5;box-shadow:0 18px 40px rgba(8,27,58,.14);border:1px solid #d5deeb;}
.election-shot img {display:block;width:100%;height:auto;object-fit:contain;}
.election-shot figcaption {font-size:.88rem;font-weight:650;margin-top:.85rem;color:#46546a;line-height:1.5;}
.election-shot.portrait {width:min(100%,278px);margin-inline:auto;}
.election-shot.wide {width:100%;}
.election-jump {display:flex;flex-wrap:wrap;gap:.7rem;padding-block:1.25rem;border-bottom:1px solid #dce4ed;}
.election-jump a {padding:.65rem 1rem;border:1px solid #d5deeb;border-radius:8px;font-weight:650;color:#14375d;background:#f4f7fb;text-decoration:none;}
.election-jump a:hover {background:#e6eef9;}
.election-product section[id] {scroll-margin-top:100px;}
.election-feature-grid {display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(2rem,6vw,5rem);align-items:center;}
.election-live {background:linear-gradient(120deg,#f2f6fc,#edf3f9);}
.election-live .feature-list li {margin-bottom:.9rem;}
.election-model-grid {display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2rem;align-items:start;}
.election-model-grid .panel {margin-top:1.2rem;}
.election-model-points {margin-block:2rem 1rem;}
.election-model-grid .election-house-model .portrait {max-width:230px;}
.election-screenshot-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 1.5rem;align-items:start;}
.election-screenshot-grid .election-shot.portrait {max-width:240px;width:100%;}
.election-screenshot-grid .wide {grid-column:1 / -1;max-width:850px;margin-inline:auto;}
.election-screen-frame {width:min(270px,100%);margin:auto;border-radius:18px;background:#ecf1f7;padding:8px;border:1px solid #cbd5e3;}
.election-screen-frame.wide {width:min(640px,100%);}
.election-screen-frame .screen {background:transparent;aspect-ratio:auto;border-radius:12px;overflow:hidden;}
.election-screen-frame .screen img {width:100%;height:auto;max-height:540px;object-fit:contain;display:block;}
.product-card.election .product-card-visual img {object-fit:contain;max-height:270px;}
.city-hero-shot img[src*="us-election/"] {width:100%;height:auto;object-fit:contain;}
.election-shot a:focus-visible,.election-jump a:focus-visible {outline:3px solid #1764ca;outline-offset:5px;}
@media(max-width:780px) {
 .election-feature-grid,.election-model-grid {grid-template-columns:1fr;gap:2rem;}
 .election-screenshot-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8rem 1rem;}
 .election-feature-grid .portrait {max-width:270px;}
 .election-model-grid .election-house-model .portrait {max-width:270px;}
 .election-jump {gap:.5rem;}
 .election-jump a {font-size:.88rem;padding:.6rem .75rem;}
}
@media(max-width:420px) {
 .election-screenshot-grid {gap:1.6rem .75rem;}
 .election-shot a {border-radius:12px;}
 .election-shot figcaption {font-size:.8rem;}
}
@media(prefers-reduced-motion:reduce) {.election-product * {scroll-behavior:auto;}}

/* v45: genuine portrait captures; all image containers preserve the full screen. */
.election-hero-phones {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;max-width:520px;margin-inline:auto;}
.election-hero-phones .election-shot {width:100%;}
.election-hero-phones .election-shot:nth-child(2) {margin-top:44px;}
.election-models-three {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;}
.election-models-three article {min-width:0;}
.election-models-three h3 {margin-top:24px;}
.election-models-three .election-shot {max-width:245px;}
.election-city-portrait {display:flex;justify-content:center;}
.city-hero-shot.election-city-portrait img[src*="us-election/"] {width:min(100%,260px);height:auto;}
.product-card.election .product-card-visual {height:320px;}
.product-card.election .product-card-visual img {width:auto;max-width:100%;height:auto;max-height:280px;object-fit:contain;}
.election-stage {min-height:570px;max-width:510px;width:100%;margin-inline:auto;}
.stage-primary,.stage-secondary {position:absolute;border:7px solid #26364d;border-radius:25px;box-shadow:0 24px 55px rgba(0,0,0,.3);overflow:hidden;background:#101725;z-index:2;}
.stage-primary {width:190px;left:15px;top:12px;transform:rotate(-4deg);}
.stage-secondary {width:170px;right:12px;top:90px;transform:rotate(5deg);}
.stage-primary img,.stage-secondary img {display:block;width:100%;height:auto;}
.election-stage .stage-note {left:0;bottom:0;max-width:270px;}
.shot-collage {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;min-height:0;max-width:510px;align-items:center;margin-inline:auto;}
.shot-collage .shot-large,.shot-collage .shot-small {position:relative;inset:auto;width:100%;border-width:6px;}
.shot-collage .shot-small {margin-top:65px;}
.shot-collage img {width:100%;height:auto;}
@media(max-width:1000px) {.election-stage {min-height:560px;}.election-models-three {gap:20px;}}
@media(max-width:780px) {.election-models-three {grid-template-columns:1fr;gap:36px;}.election-models-three article {max-width:460px;margin-inline:auto;}.election-hero-phones {max-width:470px;}.election-hero-phones .election-shot {max-width:none;}}
@media(max-width:620px) {
 .election-stage {min-height:470px;max-width:380px;}
 .stage-primary {width:150px;left:8px;top:16px;border-width:5px;}
 .stage-secondary {width:135px;right:10px;top:68px;border-width:5px;}
 .election-stage .stage-note {bottom:0;max-width:245px;}
 .election-hero-phones {gap:12px;}.election-hero-phones figcaption {font-size:.77rem;}
 .shot-collage {gap:14px;}.shot-collage .shot-small {margin-top:40px;}
}
@media(max-width:360px) {.stage-primary {width:135px;left:0;}.stage-secondary {width:120px;right:0;}.election-stage {min-height:435px;}}
.election-product > .city-landing-hero {padding-block:56px;}
.election-hero-phones figcaption {color:#e9f0fb;}
@media(max-width:620px) {.election-product > .city-landing-hero {padding-block:36px;}}

@media(max-width:620px) {.shot-collage .shot-small {transform:rotate(3deg);}}

/* v46: bound the city directory's portrait preview without stretching it. */
.city-guide-preview {display:flex;align-items:center;justify-content:center;padding:24px;min-width:0;}
.city-guide-preview img {display:block;width:min(100%,220px);height:auto;max-height:480px;object-fit:contain;margin-inline:auto;border:6px solid #1e2e46;border-radius:22px;box-shadow:0 18px 36px rgba(7,27,58,.18);}
@media(max-width:620px) {.city-guide-preview {padding:20px;}.city-guide-preview img {width:min(100%,184px);max-height:400px;}}
