/* Film chapter is honest while footage is pending; the same frame becomes a
   fully usable player when a local promo source is attached later. */
.will-reveal.is-visible,.service-story.will-reveal.is-visible .story-image img,.process-scenes>.will-reveal.is-visible .process-visual img{animation:none!important}
.rate-value>.rate-area{font-size:clamp(35px,3.2vw,52px);line-height:1.12;white-space:nowrap}
.rate-area span{font-size:.44em;letter-spacing:0;font-weight:400}
.area-enquiry{padding:18px 22px;margin:5px 0 22px;background:#e7f4ed;color:#073b53;border-radius:13px}
.area-enquiry>span{display:block;font-size:14px;line-height:1.4;letter-spacing:.02em}
.area-enquiry strong{display:block;font-size:clamp(25px,2.5vw,36px);line-height:1.2;font-weight:500;margin:7px 0}
.area-enquiry label{display:block;font-size:15px;font-weight:500;margin:17px 0 7px}
.area-enquiry input{display:block;width:min(100%,280px);height:52px;padding:10px 14px;border:1px solid #aac8bb;border-radius:8px;background:#fff;color:#062449;font:inherit;font-variant-numeric:tabular-nums}
.area-enquiry input:focus-visible{outline:3px solid #0754a6;outline-offset:2px}
.area-enquiry input[aria-invalid=true]{border-color:#9f3434}
.area-enquiry small{display:block;min-height:20px;margin-top:5px;color:#923232;font-size:13px}
.area-enquiry p{max-width:52ch;font-size:15px;line-height:1.5;margin:0}
.estimate-area-rate{font-size:17px!important;color:#c6f4e0!important;margin:4px 0 15px!important}
.city-choice{margin:22px 0 25px}
.city-choice label,.city-choice .city-label{display:block;font-size:16px;font-weight:500;margin-bottom:10px}
.city-choice input{display:block;width:100%;min-height:50px;padding:11px 14px;border:1px solid #c3d3e1;border-radius:8px;background:#fff;color:#071d43;font:inherit}
.city-choice input:focus-visible{outline:3px solid #0560b9;outline-offset:2px}
.city-picker{position:relative;isolation:isolate}
.city-trigger{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;min-height:58px;padding:13px 18px;border:1px solid #b9cbdc;border-radius:9px;background:#fff;color:#071d43;text-align:left;font:inherit;font-size:16px;line-height:1.4;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}
.city-trigger:hover{border-color:#4974a6;background:#f8fbff}
.city-trigger:focus-visible{outline:3px solid #0560b9;outline-offset:3px}
.city-trigger .is-placeholder{color:#526680}
.city-trigger svg{width:22px;height:22px;flex:none;fill:none;stroke:#0b377d;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s cubic-bezier(.2,.75,.25,1)}
.city-picker.is-open .city-trigger{border-color:#0c45a3}
.city-picker.is-open .city-trigger svg{transform:rotate(180deg)}
.city-options{position:absolute;z-index:30;top:calc(100% + 8px);left:0;right:0;max-height:min(318px,48vh);overflow:auto;overscroll-behavior:contain;padding:7px;background:#fff;border:1px solid #d6e2ed;border-radius:11px;box-shadow:0 18px 40px #081f4930;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-7px) scale(.985);transform-origin:top center;transition:opacity .2s ease,transform .25s cubic-bezier(.2,.75,.25,1),visibility .2s}
.city-picker.is-open .city-options{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.city-options::-webkit-scrollbar{width:7px}.city-options::-webkit-scrollbar-thumb{background:#c3d5e8;border-radius:7px}
.city-option{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:43px;padding:10px 13px;border:0;border-radius:6px;background:transparent;color:#112c52;text-align:left;font:inherit;font-size:15px;line-height:1.4;cursor:pointer;transition:background-color .16s ease,color .16s ease}
.city-option:hover,.city-option:focus-visible{background:#edf4fb;color:#00368c}
.city-option:focus-visible{outline:2px solid #1858aa;outline-offset:-2px}
.city-option[aria-selected=true]{background:#e9f2fc;color:#00368c;font-weight:600}
.city-option[aria-selected=true]::after{content:'✓';font-weight:500;font-size:17px;color:#0e7d72}
.city-choice .city-other-label{margin-top:16px;font-size:14px}
.city-choice small{display:block;margin-top:8px;color:#556781;font-size:13px;line-height:1.45}
.promo-section{position:relative;isolation:isolate;overflow:hidden;background:#061e4e;color:#fff;padding:clamp(74px,8vw,128px) 0 clamp(72px,7vw,112px)}
.promo-section:before{content:'';position:absolute;width:72vw;height:72vw;max-width:900px;max-height:900px;right:-22vw;top:-44vw;border-radius:50%;background:radial-gradient(circle,#1b65c780 0,#0b408a40 38%,transparent 68%);pointer-events:none}
.promo-inner{position:relative;z-index:1;max-width:1500px}
.promo-intro{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);align-items:end;gap:28px 8vw;margin-bottom:46px}
.promo-eyebrow{grid-column:1/-1;font-size:13px;letter-spacing:.17em;color:#bff4df;margin:0 0 2px}
.promo-intro h2{font-weight:400;letter-spacing:-.055em;font-size:clamp(46px,5.4vw,86px);line-height:1.05;margin:0;text-wrap:balance}
.promo-intro h2 em{font-style:normal;color:#bff4df}
.promo-intro>p:last-child{color:#c5d6e8;font-size:clamp(17px,1.35vw,21px);line-height:1.55;margin:0;max-width:38ch}
.promo-stage{max-width:1400px;margin:auto}
.promo-screen{position:relative;aspect-ratio:2.1;border-radius:22px;overflow:hidden;background:#142c4e;box-shadow:0 24px 70px #020e2c78;transform-origin:center center}
.promo-screen:fullscreen{border-radius:0;aspect-ratio:auto}
.promo-screen video{width:100%;height:100%;object-fit:cover;display:block}
.promo-awaiting{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:clamp(28px,5vw,72px);background:linear-gradient(90deg,#061b43cf 0,#061b4370 43%,transparent 72%),linear-gradient(0deg,#031438c9 0,transparent 48%);pointer-events:none}
.promo-awaiting[hidden]{display:none}
.promo-awaiting-mark{font-size:clamp(60px,9vw,144px);font-weight:600;letter-spacing:-.09em;line-height:.85;color:white;text-shadow:0 6px 26px #03112a55;margin-bottom:clamp(25px,4vw,55px)}
.promo-awaiting-mark span{display:inline-block;font-size:.3em;color:#bff4df;vertical-align:top;letter-spacing:0;transform:translate(10px,0)}
.promo-awaiting-copy{font-size:clamp(24px,3.2vw,48px);line-height:1.15;letter-spacing:-.04em}
.promo-awaiting small{font-size:14px;color:#d1e0ed;margin-top:12px}
.promo-caption{display:flex;justify-content:space-between;gap:20px;padding-top:17px;color:#bdd0e6;font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.promo-controls{position:absolute;bottom:0;left:0;right:0;z-index:3;display:flex;align-items:center;gap:14px;padding:18px 22px;background:linear-gradient(transparent,#061a39e8);color:white}
.promo-controls[hidden]{display:none}
.promo-controls button{width:40px;height:40px;flex:none;display:grid;place-items:center;border:1px solid #ffffff70;border-radius:50%;color:#fff;background:#102c56a8;cursor:pointer}
.promo-controls button:hover{background:#fff;color:#061e4e}
.promo-controls button:focus-visible,.promo-controls input:focus-visible{outline:3px solid #bff4df;outline-offset:3px}
.promo-controls svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.promo-controls [data-promo-play] svg{fill:currentColor;stroke:none}
.promo-time{font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.promo-controls input[type=range]{appearance:none;height:4px;background:#ffffff75;border-radius:20px;cursor:pointer}
.promo-controls input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border:0;border-radius:50%;background:#bff4df}
.promo-controls [data-promo-seek]{flex:1;min-width:50px}
.promo-controls [data-promo-volume]{width:82px}
@media(max-width:900px){.promo-intro{grid-template-columns:1fr}.promo-intro>p:last-child{max-width:55ch}.promo-screen{aspect-ratio:1.7}}
@media(max-width:600px){.promo-section{padding:64px 0}.promo-intro{gap:18px;margin-bottom:28px}.promo-eyebrow{font-size:11px}.promo-intro h2{font-size:clamp(40px,10vw,60px)}.promo-intro>p:last-child{font-size:16px}.promo-screen{aspect-ratio:1.05;border-radius:16px}.promo-awaiting{padding:24px;background:linear-gradient(0deg,#061b43ec 0,#061b4366 55%,transparent 82%)}.promo-awaiting-mark{font-size:78px}.promo-caption{font-size:10px;line-height:1.4}.promo-controls{gap:8px;padding:12px}.promo-controls [data-promo-volume]{display:none}.promo-time{font-size:11px}}
@media(prefers-reduced-motion:reduce){.promo-section:before{display:none}.city-trigger,.city-trigger svg,.city-options,.city-option{transition:none}}
