/* P2L services system — intentionally route-specific, compact and progressive. */
.sv-page { --sv-line: rgba(255,255,255,.14); --sv-soft: #a7b0bc; overflow-x: clip; }
.sv-page main { display: block; }
.sv-page h1,.sv-page h2,.sv-page h3,.sv-page p { overflow-wrap: anywhere; }
.sv-page em { color: var(--p2l-lime); font-style: normal; }
.sv-page .bp-shell { width: min(1200px,calc(100% - 48px)); }
.sv-skip { position: fixed; top: 10px; left: 10px; z-index: 100; padding: 12px 16px; background: var(--p2l-lime); color: #05070b!important; font: 700 10px/1 var(--p2l-mono); text-transform: uppercase; transform: translateY(-160%); }
.sv-skip:focus { transform: translateY(0); }
.sv-kicker { margin: 0 0 18px; color: var(--p2l-lime); font: 600 10px/1.35 var(--p2l-mono); text-transform: uppercase; }
.sv-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 28px; }
.sv-text-link,.sv-route-link { display: inline-flex; align-items: center; gap: 11px; color: inherit; font: 700 10px/1.3 var(--p2l-mono); text-transform: uppercase; }
.sv-text-link span,.sv-route-link span { color: var(--p2l-lime); transition: transform .25s ease; }
.sv-text-link:hover span,.sv-route-link:hover span { transform: translate(3px,-3px); }
.sv-page [data-reveal] { opacity: 1; transform: none; }
.sv-page.sv-motion [data-reveal] { opacity: 1; transform: translateY(14px); transition: transform .7s cubic-bezier(.22,1,.36,1); }
.sv-page.sv-motion [data-reveal].is-visible { opacity: 1; transform: none; }
.sr-only { position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important; margin: -1px!important; overflow: hidden!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; border: 0!important; }

/* Services hub */
.sv-hub-hero { position: relative; overflow: hidden; padding: 76px 0 70px; border-bottom: 1px solid var(--sv-line); background:#05070b; }
.sv-hub-hero:after { content:"04"; position:absolute; right:-.04em; top:-.18em; pointer-events:none; color:rgba(114,215,255,.055); font:800 clamp(20rem,40vw,42rem)/1 var(--p2l-display); letter-spacing:-.12em; }
.sv-hub-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.16fr .84fr; gap: clamp(42px,7vw,100px); align-items: end; }
.sv-hero-copy h1 { max-width: 790px; margin: 0; font-size: clamp(4.2rem,7.6vw,7.2rem); line-height: .86; }
.sv-hero-copy h1 span { color: var(--p2l-lime); }
.sv-hero-copy > p:not(.sv-kicker) { max-width: 650px; margin: 26px 0 0; color: #c8d0d8; font-size: 1.08rem; line-height: 1.72; }
.sv-hero-index { display: grid; border-top: 1px solid var(--sv-line); }
.sv-hero-index a { min-height: 104px; display: grid; grid-template-columns: 34px .62fr 1fr; gap: 16px; align-items: center; padding: 18px 4px; border-bottom: 1px solid var(--sv-line); transition: padding .25s ease,background .25s ease; }
.sv-hero-index a:hover,.sv-hero-index a:focus-visible { padding-inline: 14px; background: rgba(183,242,0,.055); }
.sv-hero-index span { color: var(--p2l-lime); font: 600 9px/1 var(--p2l-mono); }
.sv-hero-index strong { font: 700 1.32rem/1 var(--p2l-display); }
.sv-hero-index small { color: var(--sv-soft); line-height: 1.5; }

.sv-route { padding: 78px 0; border-bottom: 1px solid var(--sv-line); }
.sv-route[id],.cp-story[id] { scroll-margin-top:92px; }
.sv-route-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(38px,7vw,100px); align-items: center; }
.sv-route-grid-reverse { grid-template-columns: 1.22fr .78fr; }
.sv-route-copy h2 { max-width: 560px; margin: 0; font-size: clamp(3.2rem,5.2vw,5rem); line-height: .92; }
.sv-route-copy > p:not(.sv-kicker) { max-width: 540px; margin: 22px 0 0; color: var(--sv-soft); line-height: 1.72; }
.sv-route-link { margin-top: 30px; color: var(--p2l-paper); }
.sv-route-media { position: relative; min-height: 410px; display: block; overflow: hidden; border: 1px solid var(--sv-line); border-radius: 7px; background: #0b1320; }
.sv-route-media img { width: 100%; height: 100%; min-height: 410px; object-fit: cover; transition: transform .8s cubic-bezier(.22,1,.36,1),filter .5s ease; }
.sv-route-media:hover img { transform: scale(1.035); }
.sv-media-tag { position: absolute; left: 16px; bottom: 16px; z-index: 3; padding: 9px 11px; border: 1px solid rgba(255,255,255,.18); background: rgba(5,7,11,.82); backdrop-filter: blur(10px); color: var(--p2l-lime); font: 600 8px/1 var(--p2l-mono); text-transform: uppercase; }
.sv-route-campaign { background: var(--p2l-ink); }
.sv-campaign-window:after { content:"OPEN THE OFFER"; position:absolute; inset:0; display:grid; place-items:center; background:rgba(183,242,0,.9); color:#05070b; font:800 clamp(1.5rem,3vw,3rem)/1 var(--p2l-display); letter-spacing:-.03em; clip-path:inset(0 100% 0 0); transition:clip-path .55s cubic-bezier(.22,1,.36,1); }
.sv-campaign-window:hover:after,.sv-campaign-window:focus-visible:after { clip-path:inset(0); }
.sv-scan { position:absolute; z-index:2; inset:0 auto 0 -20%; width:2px; background:rgba(255,255,255,.62); box-shadow:0 0 22px rgba(255,255,255,.45); transform:skewX(-12deg); transition:left .7s ease; }
.sv-campaign-window:hover .sv-scan { left:115%; }
.sv-route-leads { background:#07111d; }
.sv-lead-map img { object-fit:contain; padding:14px; background:#05070b; filter:saturate(.78) contrast(1.08); }
.sv-pulse { position:absolute; z-index:2; width:13px; height:13px; border:2px solid var(--p2l-lime); border-radius:50%; box-shadow:0 0 0 0 rgba(183,242,0,.5); animation:sv-pulse 2.2s infinite; }
.sv-pulse-one { left:25%; top:33%; }.sv-pulse-two { left:55%; top:52%; animation-delay:.7s }.sv-pulse-three { right:20%; bottom:24%; animation-delay:1.4s }
@keyframes sv-pulse { 70% { box-shadow:0 0 0 20px rgba(183,242,0,0) } 100% { box-shadow:0 0 0 0 rgba(183,242,0,0) } }
.sv-route-brand { background:var(--p2l-paper); color:#05070b; }
.sv-route-brand .sv-kicker { color:#a23b34; }
.sv-route-brand .sv-route-copy > p:not(.sv-kicker) { color:#59616b; }
.sv-route-brand .sv-route-link { color:#05070b; }
.sv-brand-frame { border-color:rgba(5,7,11,.15); }
.sv-brand-word { position:absolute; left:3%; top:8%; z-index:2; color:rgba(245,247,242,.92); font:800 clamp(3.8rem,8vw,8.5rem)/.8 var(--p2l-display); letter-spacing:-.08em; mix-blend-mode:difference; transform:translateX(-35%); transition:transform .65s cubic-bezier(.22,1,.36,1),letter-spacing .65s ease; }
.sv-brand-frame:hover .sv-brand-word { transform:translateX(0); letter-spacing:-.03em; }
.sv-route-maintenance { background:#07111d; }
.sv-route-maintenance .sv-kicker { color:#72d7ff; }
.sv-maintenance-frame { border-color:rgba(114,215,255,.32); background:#05070b; }
.sv-maintenance-frame img { object-fit:cover; object-position:center; filter:saturate(.9) contrast(1.04); }
.sv-maintenance-frame:hover img { filter:saturate(1.04) contrast(1.08); }
.sv-route-maintenance .sv-media-tag { color:#b7f200; }

.sv-rule { padding:80px 0; border-bottom:1px solid var(--sv-line); background:#05070b; }
.sv-rule-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(50px,9vw,130px); }
.sv-rule h2 { margin:0; font-size:clamp(3.2rem,5vw,4.8rem); line-height:.94; }
.sv-rule h2 span { color:var(--p2l-lime); }
.sv-rule-list { border-top:1px solid var(--sv-line); }
.sv-rule-list p { display:grid; grid-template-columns:36px .75fr 1fr; gap:18px; align-items:start; margin:0; padding:24px 0; border-bottom:1px solid var(--sv-line); }
.sv-rule-list p > span { color:var(--p2l-lime); font:600 9px/1.4 var(--p2l-mono); }
.sv-rule-list strong { font:700 1.25rem/1.2 var(--p2l-display); }
.sv-rule-list small { color:var(--sv-soft); font-size:.87rem; line-height:1.6; }

.sv-cta { padding:72px 0; background:var(--p2l-lime); color:#05070b; }
.sv-cta-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(40px,9vw,130px); align-items:end; }
.sv-cta .sv-kicker { color:#425700; }
.sv-cta h2 { max-width:760px; margin:0; font-size:clamp(3.1rem,5.3vw,5.2rem); line-height:.9; }
.sv-cta p { max-width:480px; margin:0 0 24px; color:rgba(5,7,11,.7); line-height:1.65; }
.sv-cta .bp-button { border-color:#05070b; background:#05070b; color:var(--p2l-paper)!important; }

/* Campaign page — deliberately lighter, sequential and tactile. */
.cp-page { background:var(--p2l-paper); color:#05070b; }
.cp-page .brand-page-header,.cp-page .brand-page-footer { color:var(--p2l-paper); }
.cp-hero { position:relative; overflow:hidden; padding:76px 0 0; background:#07111d; color:var(--p2l-paper); }
.cp-orbit { position:absolute; width:650px; aspect-ratio:1; right:-170px; top:-190px; opacity:.42; pointer-events:none; }
.cp-orbit span { position:absolute; inset:0; border:1px solid rgba(183,242,0,.32); border-radius:50%; }
.cp-orbit span:nth-child(2) { inset:90px; }.cp-orbit span:nth-child(3) { inset:180px; background:rgba(183,242,0,.055); }
.cp-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1fr .9fr; gap:clamp(48px,7vw,95px); align-items:center; }
.cp-hero-copy { padding-bottom:66px; }
.cp-hero-copy h1 { max-width:720px; margin:0; font-size:clamp(4rem,7vw,7rem); line-height:.87; }
.cp-hero-copy h1 span { color:var(--p2l-lime); }
.cp-hero-copy > p:not(.sv-kicker) { max-width:590px; margin:25px 0 0; color:#c9d1da; font-size:1.07rem; line-height:1.7; }
.cp-hero-frame { position:relative; align-self:end; min-height:520px; margin:0; overflow:hidden; border:1px solid var(--sv-line); border-radius:8px 8px 0 0; background:#0b1320; }
.cp-hero-frame img { width:100%; height:520px; object-fit:cover; }
.cp-hero-frame figcaption { position:absolute; z-index:2; left:0; right:0; bottom:0; display:flex; justify-content:space-between; gap:18px; padding:20px 22px; border-top:1px solid rgba(255,255,255,.25); background:rgba(5,7,11,.9); }
.cp-hero-frame figcaption span,.cp-hero-frame figcaption strong { color:white; font:600 9px/1.35 var(--p2l-mono); text-transform:uppercase; }
.cp-hero-frame figcaption span { color:var(--p2l-lime); }
.cp-live { position:absolute; z-index:2; top:18px; right:18px; padding:9px 11px; background:var(--p2l-lime); color:#05070b; font:700 8px/1 var(--p2l-mono); text-transform:uppercase; }
.cp-proofline { min-height:65px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--sv-line); color:#8491a0; font:600 8px/1.3 var(--p2l-mono); text-transform:uppercase; }

.cp-story { padding:80px 0; background:var(--p2l-paper); }
.cp-section-head { display:grid; grid-template-columns:1fr .6fr; gap:50px; align-items:end; margin-bottom:44px; }
.cp-section-head .sv-kicker { grid-column:1/-1; margin-bottom:-28px; color:#5b7900; }
.cp-section-head h2 { margin:0; font-size:clamp(3.1rem,5.3vw,5.2rem); line-height:.92; }
.cp-section-head h2 span { color:#b1322c; }
.cp-section-head > p:not(.sv-kicker) { margin:0; color:#59616b; line-height:1.65; }
.cp-storyboard { border-top:1px solid rgba(5,7,11,.18); }
.cp-scene { position:relative; min-height:115px; display:grid; grid-template-columns:140px 1fr; align-items:center; gap:30px; padding:22px 28px 22px 0; border-bottom:1px solid rgba(5,7,11,.18); overflow:hidden; cursor:default; transition:padding .35s ease,background .35s ease,color .35s ease; }
.cp-scene > span { align-self:start; padding-top:9px; color:#668700; font:700 9px/1.3 var(--p2l-mono); text-transform:uppercase; }
.cp-scene h3 { margin:0; font-size:clamp(1.9rem,3vw,3rem); line-height:1; }
.cp-scene p { max-width:650px; margin:8px 0 0; color:#66707a; line-height:1.6; }
.cp-scene b { position:absolute; right:16px; top:50%; color:rgba(5,7,11,.035); font:800 8rem/.7 var(--p2l-display); transform:translateY(-50%); }
.cp-scene:hover,.cp-scene.is-active { padding-left:24px; background:#05070b; color:var(--p2l-paper); }
.cp-scene:hover p,.cp-scene.is-active p { color:#aab3bd; }
.cp-scene:hover b,.cp-scene.is-active b { color:rgba(183,242,0,.08); }

.cp-proof { padding:80px 0; background:#0b1320; color:var(--p2l-paper); }
.cp-proof-grid { display:grid; grid-template-columns:.63fr 1.37fr; gap:clamp(42px,7vw,95px); align-items:center; }
.cp-proof-copy h2 { margin:0; font-size:clamp(3rem,4.8vw,4.6rem); line-height:.94; }
.cp-proof-copy h2 span { color:var(--p2l-lime); }
.cp-proof-copy > p:not(.sv-kicker) { margin:22px 0 0; color:#a7b0bc; line-height:1.7; }
.cp-compare { position:relative; aspect-ratio:16/10; overflow:hidden; border:1px solid var(--sv-line); border-radius:7px; background:#05070b; }
.cp-compare-layer { position:absolute; inset:0; overflow:hidden; }
.cp-compare-layer img { width:100%; height:100%; object-fit:contain; object-position:center; background:#05070b; }
.cp-compare-layer span { position:absolute; top:14px; padding:8px 10px; color:white; background:rgba(5,7,11,.85); font:700 8px/1 var(--p2l-mono); text-transform:uppercase; }
.cp-compare-before span { left:14px; }.cp-compare-after span { right:14px; color:#05070b; background:var(--p2l-lime); }
.cp-compare-before img { filter:saturate(.45) contrast(.88); opacity:.78; }
.cp-compare-after { clip-path:inset(0 calc(100% - var(--position)) 0 0); }
.cp-divider { position:absolute; z-index:4; left:var(--position); inset-block:0; width:2px; background:var(--p2l-lime); transform:translateX(-1px); pointer-events:none; }
.cp-divider i { position:absolute; top:50%; left:50%; width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--p2l-lime); color:#05070b; font-style:normal; font-weight:800; transform:translate(-50%,-50%); }
.cp-range-label { position:absolute; z-index:5; inset:0; }
.cp-range-label input { width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; touch-action:pan-y; }
.cp-compare:focus-within { outline:3px solid var(--p2l-lime); outline-offset:4px; }

.cp-fit { padding:80px 0; background:#e9ece6; }
.cp-fit-grid { display:grid; grid-template-columns:1fr .8fr; gap:clamp(50px,9vw,130px); align-items:start; }
.cp-fit-copy .sv-kicker { color:#5b7900; }
.cp-scope .sv-kicker { color:var(--p2l-lime); }
.cp-fit-copy h2 { margin:0; font-size:clamp(3.1rem,5.2vw,5rem); line-height:.92; }
.cp-fit-copy h2 span { color:#b1322c; }
.cp-fit-copy ul,.cp-scope ul { margin:34px 0 0; padding:0; list-style:none; border-top:1px solid rgba(5,7,11,.2); }
.cp-fit-copy li { display:grid; grid-template-columns:.45fr 1fr; gap:22px; padding:19px 0; border-bottom:1px solid rgba(5,7,11,.2); }
.cp-fit-copy li strong { font:700 1.1rem/1.25 var(--p2l-display); }
.cp-fit-copy li span { color:#59616b; line-height:1.55; }
.cp-scope { padding:34px; border-radius:7px; background:#05070b; color:var(--p2l-paper); }
.cp-price { display:block; font:800 clamp(4.6rem,8vw,7rem)/.8 var(--p2l-display); color:var(--p2l-lime); }
.cp-scope > p:not(.sv-kicker) { margin:20px 0 0; color:#bec6ce; line-height:1.6; }
.cp-scope ul { border-color:var(--sv-line); }
.cp-scope li { position:relative; padding:13px 0 13px 22px; border-bottom:1px solid var(--sv-line); color:#e4e8eb; font-size:.88rem; }
.cp-scope li:before { content:"+"; position:absolute; left:0; color:var(--p2l-lime); font-family:var(--p2l-mono); }
.cp-scope small { display:block; margin-top:20px; color:#8491a0; font:500 8px/1.65 var(--p2l-mono); text-transform:uppercase; }
.cp-cta { background:var(--p2l-coral); }
.cp-cta .sv-kicker { color:#50100d; }

@media (max-width:900px) {
  .sv-hub-hero-grid,.sv-route-grid,.sv-route-grid-reverse,.sv-rule-grid,.sv-cta-grid,.cp-hero-grid,.cp-proof-grid,.cp-fit-grid { grid-template-columns:1fr; }
  .sv-hub-hero-grid { align-items:start; }
  .sv-hero-index { margin-top:10px; }
  .sv-route-grid-reverse .sv-route-media { order:2; }
  .sv-route-grid-reverse .sv-route-copy { order:1; }
  .sv-rule-grid,.sv-cta-grid { gap:38px; }
  .cp-hero-frame { min-height:400px; }
  .cp-hero-frame img { height:460px; }
  .cp-proof-grid { align-items:start; }
  .cp-section-head { grid-template-columns:1fr; gap:16px; }
  .cp-section-head .sv-kicker { grid-column:auto; margin-bottom:0; }
}

@media (max-width:640px) {
  .sv-page .bp-shell { width:calc(100% - 28px); }
  .sv-hub-hero,.cp-hero { padding-top:56px; }
  .sv-hub-hero { padding-bottom:54px; }
  .sv-hero-copy h1,.cp-hero-copy h1 { font-size:clamp(3.45rem,16vw,4.5rem); }
  .sv-actions { display:grid; align-items:start; gap:18px; }
  .sv-actions .bp-button { width:100%; }
  .sv-text-link,.sv-route-link { min-height:44px; align-items:center; }
  .sv-hero-index a { grid-template-columns:32px 1fr; min-height:92px; }
  .sv-hero-index small { grid-column:2; margin-top:-12px; }
  .sv-route,.sv-rule,.cp-story,.cp-proof,.cp-fit { padding:60px 0; }
  .sv-route-grid,.sv-route-grid-reverse { gap:30px; }
  .sv-route-copy h2,.sv-rule h2,.cp-section-head h2,.cp-proof-copy h2,.cp-fit-copy h2 { font-size:clamp(2.7rem,13vw,3.6rem); }
  .sv-route-media,
  .sv-route-media img { min-height: 0; }
  .sv-route-media img { height: 100%; }
  .sv-campaign-window { aspect-ratio: 4 / 5; }
  .sv-lead-map { aspect-ratio: 16 / 9; }
  .sv-brand-frame { aspect-ratio: 16 / 9; }
  .sv-brand-frame img { object-position: 70% center; }
  .sv-maintenance-frame { aspect-ratio: 16 / 10; }
  .sv-brand-word { font-size:4rem; }
  .sv-rule-list p { grid-template-columns:30px 1fr; }
  .sv-rule-list p small { grid-column:2; }
  .sv-cta { padding:58px 0; }
  .sv-cta h2 { font-size:clamp(2.8rem,13vw,3.8rem); }
  .cp-hero-copy { padding-bottom:48px; }
  .cp-hero-frame { min-height: 0; height: auto; aspect-ratio: 4 / 5; }
  .cp-hero-frame img { min-height: 0; height: 100%; }
  .cp-proofline { justify-content:flex-start; flex-wrap:wrap; padding:18px 0; }
  .cp-scene { grid-template-columns:1fr; gap:10px; padding:20px 14px 20px 0; }
  .cp-scene > span { padding-top:0; }
  .cp-scene:hover,.cp-scene.is-active { padding-left:16px; }
  .cp-scene b { font-size:6rem; }
  .cp-compare { aspect-ratio: 16 / 10; }
  .cp-fit-copy li { grid-template-columns:1fr; gap:6px; }
  .cp-scope { padding:26px 22px; }
}

@media (max-width: 360px) {
  .sv-hero-copy h1,
  .cp-hero-copy h1 { font-size: 3rem; }
}

@media (prefers-reduced-motion:reduce) {
  .sv-page * { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
  .sv-page.sv-motion [data-reveal] { opacity:1; transform:none; }
}

@media (hover:none) {
  .sv-campaign-window:after,.sv-scan { display:none; }
  .sv-brand-word { transform:none; letter-spacing:-.03em; }
}
