﻿/* Editorial finishing layer. Poster origin is measured by the CCTV builder. */
.ph-cctv.ph-cctv:not([data-cc-motion="reduced"]):not([data-cc-motion="static"]) .cc-camera { transform:none; transform-origin:36.93168055667377% 81.56881473898262%; }
.ph-cctv .cc-faq summary::-webkit-details-marker { display:none; }
.ph-cctv h1,.ph-cctv h2,.ph-cctv h3 { font-family:var(--font-heading)!important; }
.ph-cctv h2 { line-height:1.25; }
.ph-cctv .cc-headline { line-height:1.22;font-family:Lora,var(--font-heading),serif; }
.ph-cctv .cc-faq { display:flex;flex-direction:column;gap:0; }
.ph-cctv .cc-faq>.cc-index { margin-bottom:16px; }
.ph-cctv h2,.ph-cctv .cc-statement h2 { line-height:1.33!important; }
.ph-cctv .cc-headline,.ph-cctv .cc-headline * { font-family:var(--font-heading)!important;line-height:1.33; }
.ph-cctv .cc-hero h1 { font-family:var(--font-body)!important; }
.ph-cctv .cc-hero::before { top:25vh; }
.ph-cctv .cc-focus-brackets { top:30%; }

.ph-cctv { margin-top:0; }
.ph-cctv .cc-finale-copy { bottom:90px; }
.ph-cctv #cc-3 .cc-rig-mount { left:73%; }
@media(min-width:900px) and (max-height:800px) {
 .ph-cctv .cc-finale-copy { left:6vw;right:6vw;top:auto;bottom:90px;padding:0;gap:6px; }
 .ph-cctv .cc-finale-copy h2 { font-size:clamp(22px,4.5vh,36px); }
 .ph-cctv .cc-finale-copy .cc-actions { gap:12px; }
 .ph-cctv .cc-finale-copy>p { font-size:13px;line-height:1.4; }
 .ph-cctv .cc-finale-copy .cc-button { min-height:38px;padding:9px 18px; }
 .ph-cctv .cc-finale-copy .cc-signoff { margin-top:0;font-size:16px;line-height:1.3; }
 .ph-cctv .cc-finale-copy .cc-signoff small { margin-top:4px;line-height:1.3; }
 .ph-cctv .cc-feature-visual { height:min(14vh,14.625vw);width:min(24.89vh,26vw);left:calc(50% - min(12.445vh,13vw)); }
 .ph-cctv .cc-pan-arc { height:26vh; }
 .ph-cctv .cc-feature-card { padding:6px; }
 .ph-cctv .cc-feature-card h3 { font-size:clamp(13px,2.2vh,17px);margin:6px 0; }
 .ph-cctv .cc-feature-card p { font-size:clamp(11px,1.7vh,13px); }
}
.ph-cctv .cc-camera-stage { top:max(calc(var(--cc-hero-nav,138px) + 12px),17vh); }
@media(min-width:900px) and (max-height:800px) { .ph-cctv #cc-6 .cc-rig-mount { height:49vh; } }
.ph-cctv #cc-6[data-item="3"] .cc-process li:nth-child(4).is-active h3::after { content:'✓';display:inline-block;margin-left:6px;opacity:clamp(0,calc((var(--step) - .84)*10),1);color:var(--cc-gold); }
@media(min-width:900px) and (max-height:800px) {
 .ph-cctv .cc-r13-feed figcaption { top:4px;left:4px;right:4px;font-size:10px; }
 .ph-cctv .cc-r13-feed figcaption span { padding:2px; }
 .ph-cctv .cc-focus-brackets { top:43%;bottom:8%; }
 .ph-cctv .cc-object { top:55%;height:38%;width:40%; }
 .ph-cctv .cc-object span { font-size:10px;margin:2px;padding:1px; }
}
.ph-cctv .cc-health-ring { transform:rotateY(calc(var(--step,0)*180deg)); }
/* Route-scoped clearance for the shared launcher; its widget is unchanged. */
body:has(.ph-cctv),body:has(.ph-cctv) footer { background:rgb(11,12,9); }
@media(min-width:900px) and (orientation:landscape) { body:has(.ph-cctv) footer { padding-right:220px; } }
.ph-cctv .cc-camera-label { left:12vw;top:150px; }
.ph-cctv .cc-camera-corner { left:calc(50vw + 25vh);top:150px; }
.ph-cctv .cc-focus-brackets { display:none; }
.ph-cctv [data-item="0"] .cc-focus-brackets { display:block; }
.ph-cctv .cc-monitor-hud { top:6px;bottom:auto;left:6px;right:6px;flex-wrap:wrap;justify-content:flex-start;gap:5px;z-index:2; }
.ph-cctv .cc-monitor-event { position:static;padding:5px;font:12px monospace; }
.ph-cctv .cc-monitor-zone { top:48%; }
.ph-cctv .cc-monitor-box { top:52%;height:37%; }
.ph-cctv h3 { line-height:1.33; }
@media(min-width:900px) and (orientation:landscape) {
 .ph-cctv .cc-hero-right { opacity:var(--hero-right-out,1); }
 .ph-cctv #cc-6 .cc-flow { bottom:var(--timeline-clearance,100px); }
 .ph-cctv #cc-7 .cc-visual { opacity:calc(var(--caption-in,1)*var(--leave,1)); }
}
@media(min-width:900px) and (max-height:600px) {
 .ph-cctv .cc-services-copy p,.ph-cctv .cc-faq p { font-size:14px;line-height:1.5; }
 .ph-cctv .cc-services,.ph-cctv .cc-faq { padding-top:50px;padding-bottom:50px; }
 .ph-cctv .cc-network-nodes>div { padding:6px;font-size:11px;line-height:1.25; }
 .ph-cctv .cc-network-nodes span { font-size:10px;margin-top:3px; }
}
@media(min-width:900px) and (max-width:1100px) and (max-height:600px) {
 .ph-cctv .cc-feature-visual { height:11vh;width:19.56vh;left:calc(50% - 9.78vh); }
 .ph-cctv .cc-pan-arc { height:22vh; }
 .ph-cctv .cc-feature-card h3 { font-size:12px; }
 .ph-cctv .cc-feature-card p { font-size:11px;line-height:1.35; }
 .ph-cctv .cc-feature-number { font-size:11px;line-height:1.3; }
}
@media(min-width:900px) and (max-width:1100px) and (max-height:600px) {
 .ph-cctv .cc-feature-visual { height:14vh;width:24.89vh;left:calc(50% - 12.445vh); }
 .ph-cctv .cc-feature-card { padding:4px; }
 .ph-cctv .cc-feature-card h3 { font-size:11px;margin:4px 0; }
 .ph-cctv .cc-feature-card p { font-size:10px;line-height:1.3; }
 .ph-cctv .cc-feature-number { font-size:10px; }
 .ph-cctv .cc-r13-feed figcaption { font-size:9px;gap:4px; }
}
body:has(.ph-cctv) footer .font-display.leading-none { line-height:1.4; }
.ph-cctv [data-cc-sticky="cc-finale"] { margin-top:calc(42vh - var(--cc-nav)); }
@media(min-width:900px) and (max-height:600px) {
 .ph-cctv .cc-services,.ph-cctv .cc-faq { padding-top:30px;padding-bottom:30px; }
 .ph-cctv .cc-services-copy { gap:16px; }
 .ph-cctv .cc-services-copy h3 { padding-top:18px; }
}
.ph-cctv .cc-monitor-zone { top:max(48%,calc(var(--hud-height,70px) + 12px)); }
.ph-cctv .cc-monitor-box { top:max(52%,calc(var(--hud-height,70px) + 12px));height:auto;bottom:8%; }
.ph-cctv .cc-feature-stage { opacity:calc(var(--feature-in,1)*var(--leave,1)); }
.ph-cctv .cc-monitor-grid figcaption { flex-wrap:wrap;gap:4px;font-size:10px; }
.ph-cctv .cc-camera-label,.ph-cctv .cc-camera-corner { background:rgb(11,12,9); }
.ph-cctv .cc-camera-label::before,.ph-cctv .cc-camera-corner::before { content:'[ '; }
.ph-cctv .cc-camera-label::after,.ph-cctv .cc-camera-corner::after { content:' ]'; }
.ph-cctv .cc-camera-corner { left:calc(50vw + 23.18vh + 19.5px); }
@media(min-width:900px) and (max-width:1100px) and (max-height:650px) {
 .ph-cctv .cc-camera-stage { height:48vh; }
 .ph-cctv .cc-camera-corner { left:calc(50vw + 19.18vh + 19.5px); }
}
@media(min-width:900px) and (max-width:1100px) { .ph-cctv { --cc-hero-nav:122px; } }
/* Scale the centred hero for narrow landscape windows; preserve the column order. */
@media(min-width:900px) and (max-width:1100px), (min-width:900px) and (max-aspect-ratio:3/2) {
 .ph-cctv .cc-camera-stage { height:min(58vh,27vw); }
 .ph-cctv .cc-camera-corner { left:calc(50vw + min(23.18vh,10.79vw) + 19.5px); }
}
