/* Base styles shared by the service pages (same rules as the inline CSS in index.html) */
:root{--ink:#0f1c33;--teal:#1c59bb;--mint:#e8eefb;--paper:#fbfcff;--sun:#c20e14;--onsun:#fff;--line:#d3ddf0;--muted:#4b5c7a}
@media (prefers-color-scheme:dark){:root{--ink:#e8eefb;--paper:#0b1426;--mint:#13213f;--line:#25365a;--muted:#a4b4d3;--teal:#8db4f2;--sun:#d8232a}}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font:400 1.0625rem/1.65 "Source Sans 3",system-ui,sans-serif;color:var(--ink);background:var(--paper)}
h1,h2,h3{font-family:"Bricolage Grotesque",system-ui,sans-serif;line-height:1.1;letter-spacing:-.02em}
a{color:inherit}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
.wrap{max-width:68rem;margin:0 auto;padding:0 1.25rem}
header{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.6rem}
.brand{display:flex;align-items:center;text-decoration:none}.brand img{display:block;height:2.5rem;width:auto}@media(min-width:48rem){.brand img{height:2.9rem}}
nav{display:flex;align-items:center;gap:1.1rem;font-weight:600;font-size:.95rem}
nav a{text-decoration:none}
.btn{display:inline-block;background:var(--sun);color:var(--onsun);font-weight:600;padding:.8rem 1.4rem;border-radius:.4rem;text-decoration:none}
.btn.alt{background:transparent;color:inherit;border:2px solid currentColor}
.hero{position:relative;color:#fff;overflow:hidden;background:radial-gradient(60rem 30rem at 85% -10%,#3b7be0 0%,transparent 60%),radial-gradient(40rem 24rem at 0% 110%,#c20e1440 0%,transparent 60%),linear-gradient(160deg,#081a3a,#12408f 70%,#081a3a)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(4,12,32,.5));pointer-events:none}
.hero .wrap{z-index:1}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.hero h1,.hero p,.hero .row{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}.hero p{animation-delay:.12s}.hero .row{animation-delay:.24s}
.trust{position:relative;z-index:2;margin-top:-2.2rem}
.trust ul{list-style:none;margin:0;padding:0;display:grid;gap:0;grid-template-columns:1fr 1fr;background:var(--paper);border:1px solid var(--line);border-radius:.8rem;box-shadow:0 10px 30px rgba(10,30,70,.18);overflow:hidden}
@media(min-width:48rem){.trust ul{grid-template-columns:repeat(4,1fr)}}
.trust li{padding:1rem 1.1rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.95rem;line-height:1.35}
.trust b{display:block;font:700 1.05rem "Bricolage Grotesque",sans-serif;color:var(--teal)}
.steps{display:grid;gap:1rem;margin-top:1.6rem;padding:0;list-style:none;counter-reset:s}
@media(min-width:48rem){.steps{grid-template-columns:repeat(3,1fr)}}
.steps li{counter-increment:s;border-left:4px solid var(--sun);padding:.2rem 0 .2rem 1rem}
.steps li::before{content:counter(s);font:800 1.6rem "Bricolage Grotesque",sans-serif;color:var(--teal);display:block}
.ticks{list-style:none;padding:0;margin:1.2rem 0 0;max-width:34rem}
.ticks li{position:relative;padding:.35rem 0 .35rem 1.7rem}
.ticks li::before{content:"";position:absolute;left:0;top:.75rem;width:.9rem;height:.5rem;border-left:3px solid var(--teal);border-bottom:3px solid var(--teal);transform:rotate(-45deg) scale(.9)}
.ph{border:2px dashed rgba(255,255,255,.35);font-weight:600}
.media-img{display:block;width:100%;height:auto;border-radius:.6rem;background:var(--mint)}
.portrait{max-width:26rem}
.equip{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin-top:2rem}
@media(min-width:48rem){.equip{grid-template-columns:repeat(3,1fr)}}
@media(min-width:64rem){.equip{grid-template-columns:repeat(5,1fr)}}
.equip figure{margin:0}
.equip img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:.6rem;display:block;background:var(--mint)}
.equip figcaption{padding:.55rem .1rem 0;font-weight:600;line-height:1.3}
.equip figcaption small{display:block;font-weight:400;color:var(--muted)}
.bar{display:none}
@media(max-width:47.99rem){.wa{display:none}body{padding-bottom:4.2rem}
.bar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--paper);border-top:1px solid var(--line);padding:.5rem env(safe-area-inset-right) calc(.5rem + env(safe-area-inset-bottom)) env(safe-area-inset-left);gap:.4rem;padding-inline:.6rem}
.bar a{text-align:center;padding:.65rem .3rem;border-radius:.5rem;font-weight:600;text-decoration:none;background:var(--mint);font-size:.95rem}.bar a:first-child{background:var(--sun);color:var(--onsun)}}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media video{width:100%;height:100%;object-fit:cover;opacity:.42;display:block}
.hero-wide{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(min-width:60rem){.hero-wide{display:block;transform:scale(1.28);transform-origin:0 60%}.hero-media{display:none}
.hero .wrap{padding-top:7rem;padding-bottom:8rem}.hero-copy{max-width:40rem}
.hero::after{background:linear-gradient(90deg,rgba(4,14,36,.9),rgba(4,14,36,.5) 55%,rgba(4,14,36,.05)),linear-gradient(180deg,transparent 60%,rgba(4,12,32,.5))}}
.hero{padding:0}
.hero .wrap{position:relative;padding-top:5rem;padding-bottom:6.5rem}
.hero-copy{position:relative;z-index:1}
.hero h1{font-size:clamp(2.2rem,6vw,4rem);max-width:15ch;font-weight:800}
.hero p{max-width:34rem;margin:1.1rem 0 1.8rem;font-size:1.2rem}
.hero .row{display:flex;flex-wrap:wrap;gap:.8rem}
.hero .btn.alt{color:#fff}
section{padding:4rem 0}
section h2{font-size:clamp(1.7rem,4vw,2.5rem);margin-bottom:1rem;max-width:20ch}
.lede{max-width:40rem;color:var(--muted)}
.services{display:grid;gap:0;margin-top:2rem;border-top:1px solid var(--line)}
.svc{display:grid;gap:.4rem 2rem;padding:1.4rem 0;border-bottom:1px solid var(--line)}
@media(min-width:48rem){.svc{grid-template-columns:16rem 1fr}}
.svc h3{font-size:1.35rem}
.lab{background:var(--mint)}
.lab .grid{display:grid;gap:2rem;align-items:center}
@media(min-width:48rem){.lab .grid{grid-template-columns:1fr 1fr}}
.ph{aspect-ratio:4/3;border-radius:.5rem;background:linear-gradient(135deg,var(--teal),#081a3a);display:grid;place-items:center;color:#fff;text-align:center;padding:1rem;overflow:hidden}
.ph img,.ph video{width:100%;height:100%;object-fit:cover}
@media(min-width:48rem){.lab-grid{grid-template-columns:1fr 1fr}}
.qa details{border-bottom:1px solid var(--line);padding:1rem 0}
.qa summary{font:700 1.15rem "Bricolage Grotesque",sans-serif;cursor:pointer}
.qa p{margin-top:.6rem;max-width:42rem;color:var(--muted)}
.contact dl{display:grid;gap:.3rem 1.5rem;grid-template-columns:auto 1fr;margin-top:1.5rem}
.contact dt{font-weight:600}
footer{padding:2rem 0;border-top:1px solid var(--line);font-size:.9rem;color:var(--muted)}
.wa{position:fixed;right:1rem;bottom:1rem;z-index:20;background:#25d366;color:#08331a;font-weight:700;padding:.85rem 1.2rem;border-radius:2rem;text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.25)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
