/* Visual edition: layered light, animated orbit and tactile service tiles. */
body{background:#f3f7f8}
.site-header{position:relative;z-index:2}
.hero{position:relative;isolation:isolate;background:radial-gradient(ellipse at 82% 32%,#16465d 0%,#10283e 29%,#091527 75%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.12;background-image:linear-gradient(#88edd530 1px,transparent 1px),linear-gradient(90deg,#88edd530 1px,transparent 1px);background-size:45px 45px;mask-image:linear-gradient(90deg,transparent 20%,#000)}
.hero-glow{position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at var(--light-x,74%) var(--light-y,48%),#3bdab827,transparent 35%);pointer-events:none}
.hero-grid{min-height:640px;grid-template-columns:1.15fr .85fr;gap:64px}
.hero-copy{animation:rise-in .8s ease-out both}
.hero h1{font-size:clamp(3.3rem,5.3vw,5.5rem)}
.hero h1 em{background:linear-gradient(100deg,#5de1bb,#9cecea);background-clip:text;-webkit-background-clip:text;color:transparent}
.hero-footnote{display:flex;align-items:center;gap:11px;margin-top:37px;color:#bed3db;font-size:.89rem}
.pulse-dot{width:9px;height:9px;border-radius:50%;background:#5de1bb;box-shadow:0 0 0 6px #5de1bb1c;animation:pulse 2.3s ease-out infinite}
.hero-panel{transform:none;padding:27px;min-height:455px;position:relative;overflow:hidden;background:linear-gradient(145deg,#173d52e8,#102239ef);border:1px solid #56838b;box-shadow:22px 22px 0 #58dbb711,0 28px 90px #0004;animation:rise-in 1s .12s ease-out both}
.hero-panel::before,.detail-visual::before{content:"";position:absolute;inset:0;background:linear-gradient(125deg,transparent 45%,#a6e9e619 50%,transparent 55%);background-size:200% 100%;animation:scan 8s linear infinite;pointer-events:none}
.hero-panel .panel-top{position:relative;z-index:1}
.visual-orbit{height:298px;display:grid;place-items:center;position:relative;isolation:isolate}
.orbit{position:absolute;border:1px solid #68dcc650;border-radius:50%;aspect-ratio:1;animation:spin 24s linear infinite}
.orbit-one{width:210px;border-style:dashed}
.orbit-two{width:270px;border-color:#67dfc327;animation-duration:37s;animation-direction:reverse}
.orbit-one::before,.orbit-two::before{content:"";position:absolute;left:50%;top:-5px;width:9px;height:9px;border-radius:50%;background:#5de1bb;box-shadow:0 0 18px #5de1bb}
.orbit-center{display:grid;place-items:center;width:125px;height:125px;border-radius:25px;border:1px solid #84e5d0;background:linear-gradient(140deg,#266879,#103148);box-shadow:0 0 55px #5de1bb47;color:#f4fffd;font:700 5rem/1 'Space Grotesk',sans-serif;letter-spacing:-.1em;padding-right:10px;z-index:1}
.orbit-center span{color:#5de1bb}
.orbit-point{position:absolute;width:8px;height:8px;background:#a0f0de;border-radius:50%;box-shadow:0 0 15px #a0f0de}
.point-one{top:20%;left:17%}.point-two{right:11%;top:45%}.point-three{bottom:18%;left:23%}
.panel-tags{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:relative;z-index:1}
.panel-tags span{border:1px solid #75b4ad55;color:#c1e7df;padding:8px 10px;text-align:center;font-size:.73rem;font-weight:700;letter-spacing:.1em}
.services-section{background:linear-gradient(180deg,#eaf3f4,#f6f9f9)}
.services-grid{grid-template-columns:repeat(4,1fr);gap:14px}
.service-card{position:relative;isolation:isolate;overflow:hidden;min-height:320px;padding:23px;border:1px solid #d4e2e2;border-radius:9px;background:radial-gradient(340px circle at var(--x,50%) var(--y,50%),#bdfae940,transparent 52%),#fff;box-shadow:0 3px 13px #14304408;transition:transform .25s,border-color .25s,box-shadow .25s}
.service-card:hover,.service-card:focus-visible{transform:translateY(-7px);border-color:#47bca1;box-shadow:0 18px 38px #173e4730}
.card-top{display:flex;justify-content:space-between;align-items:flex-start}
.icon-box{width:60px;height:60px;display:grid;place-items:center;background:#e5f7f1;color:#126c60;border-radius:14px;transition:background .25s,color .25s,transform .25s}
.service-card:hover .icon-box{background:#143d48;color:#86f3d1;transform:rotate(-5deg)}
.service-icon{width:34px;height:34px}
.card-number{color:#6a8589;padding-top:4px}
.service-card h3{font-size:1.42rem;margin:35px 0 12px;line-height:1.2}
.service-card p{font-size:.98rem;line-height:1.55}
.link-arrow{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#ecf7f4;transition:transform .25s}
.service-card:hover .link-arrow{transform:translate(2px,-2px)}
.about-section{position:relative;overflow:hidden;background:#dcebe8}
.about-monogram{display:block;margin-top:30px;font:700 clamp(5rem,10vw,9rem)/.9 'Space Grotesk',sans-serif;letter-spacing:-.12em;color:#b2d9ce;user-select:none}
.about-monogram span{color:#48b598}
.footer-inner{grid-template-columns:1.25fr 1.1fr 1fr}
.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:15px;align-content:start}
.footer-links>span{grid-column:1/-1}
.footer-links a{line-height:1.35;margin-bottom:5px}
.detail-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 85% 36%,#174962,#091527 70%)}
.detail-hero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:45px;align-items:center}
.detail-hero h1{font-size:clamp(3.1rem,5vw,5rem)}
.detail-visual{position:relative;width:100%;aspect-ratio:1;max-width:340px;justify-self:end;display:grid;place-items:center;overflow:hidden;border:1px solid #67bcab65;border-radius:23px;background:linear-gradient(145deg,#1c5666,#11253e);box-shadow:18px 18px 0 #5de1bb14}
.detail-visual::after{content:"";position:absolute;inset:25px;border:1px dashed #9de7d458;border-radius:50%;animation:spin 32s linear infinite}
.detail-icon{display:grid;place-items:center;width:130px;height:130px;border:1px solid #a4f8db77;border-radius:22px;background:#80e8c91c;color:#bdf6e9;z-index:1}
.detail-icon .service-icon{width:75px;height:75px}
.detail-serial{position:absolute;bottom:18px;left:22px;font:.78rem 'Space Grotesk',sans-serif;letter-spacing:.16em;color:#abe5d6}
@keyframes rise-in{from{opacity:0;transform:translateY(17px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{50%{box-shadow:0 0 0 13px #5de1bb00}}
@keyframes scan{to{background-position:-200% 0}}
@media(max-width:1050px){.services-grid{grid-template-columns:repeat(2,1fr)}.hero-grid{gap:32px}.hero h1{font-size:clamp(3rem,5.5vw,4.5rem)}}
@media(max-width:650px){.hero-grid{display:block;min-height:0}.hero h1{font-size:clamp(2.8rem,11vw,4.4rem)}.hero-panel{margin-top:50px;min-height:0}.visual-orbit{height:260px}.services-grid{grid-template-columns:1fr}.service-card{min-height:265px}.service-card h3{margin-top:25px}.about-monogram{margin-top:5px}.footer-inner{grid-template-columns:1fr}.detail-hero-grid{grid-template-columns:1fr}.detail-visual{justify-self:start;max-width:260px;margin-top:18px}.detail-icon{width:100px;height:100px}.detail-icon .service-icon{width:60px;height:60px}}
@media(prefers-reduced-motion:reduce){.hero-copy,.hero-panel,.orbit,.pulse-dot,.hero-panel::before,.detail-visual::before,.detail-visual::after{animation:none!important}.service-card:hover,.service-card:focus-visible{transform:none}}

/* Blue identity and service photography. */
:root{--navy:#071629;--deep:#061426;--blue:#123a67;--mint:#68c8ff;--cream:#f0f6fc;--ink:#102e52;--muted:#52708b;--line:#cddfec}
body{background:#f2f7fc}
.site-header,.footer{background:#06182d;border-color:#274566}
.brand strong,.nav-contact,.main-nav .nav-contact{color:#78ceff}
.brand-mark{border-color:#65c7ff;color:#65c7ff}
.hero{min-height:640px;background:#061426}
.hero-photo{position:absolute;inset:0;background:linear-gradient(90deg,#051426 0%,#051426f4 24%,#05142698 52%,#0514261a 100%),url('images/hero.webp') center center / cover no-repeat;z-index:-2}
.hero-glow{background:radial-gradient(circle at var(--light-x,83%) var(--light-y,44%),#2786ca21,transparent 38%)}
.hero::after{opacity:.07}
.hero-grid{position:relative;grid-template-columns:1fr 260px;gap:20px}
.hero h1{max-width:730px;text-shadow:0 4px 28px #001b38a0}
.hero h1 em{background:linear-gradient(100deg,#65caff,#b2e6ff);background-clip:text;-webkit-background-clip:text;color:transparent}
.hero-intro{max-width:590px;color:#e1f1ff}
.hero .eyebrow,.detail-hero .eyebrow{color:#8ed8ff}
.hero-panel{align-self:end;max-width:260px;min-height:0;margin-bottom:10px;padding:19px;background:#081b32d9;border-color:#7acfff8c;backdrop-filter:blur(10px);box-shadow:0 16px 55px #00162db3;animation:rise-in 1s .12s ease-out both}
.hero-panel .panel-top{font-size:.64rem;color:#8ed8ff;gap:8px}
.hero-panel .visual-orbit{display:none}
.panel-tags{margin-top:14px}
.panel-tags span{padding:7px 3px;font-size:.56rem;border-color:#72b9e55c;color:#e0f4ff}
.pulse-dot{background:#69c9ff;box-shadow:0 0 0 6px #69c9ff24}
.button.primary{background:#65caff;color:#052642}
.button.primary:hover{background:#a1ddff}
.services-section{background:linear-gradient(180deg,#e7f2fb,#f5f9fd)}
.section-head .eyebrow,.about-section .eyebrow,.detail-main .eyebrow,.next-services .eyebrow,.outcome-grid .eyebrow{color:#175a9d}
.service-card{border-color:#d0e3f3;background:radial-gradient(340px circle at var(--x,50%) var(--y,50%),#b9e6ff82,transparent 52%),#fff}
.service-card:hover,.service-card:focus-visible{border-color:#57b8ef;box-shadow:0 18px 38px #174a7c24}
.icon-box{background:#e0f1ff;color:#1465a5}
.service-card:hover .icon-box{background:#123f73;color:#b7e6ff}
.card-number{color:#557a9b}
.card-link,.text-link.dark{color:#125f9e}
.link-arrow{background:#e1f2ff}
.about-section{background:#ddecfa}
.about-monogram{color:#bbdafa}.about-monogram span{color:#2d8acc}
.contact-band{background:linear-gradient(120deg,#0c447f,#176aa9)}
.contact-band .eyebrow{color:#bce6ff}.contact-grid p:last-child{color:#e2f2ff}
.button.light{color:#104e85}.button.light:hover{background:#d9efff}
.footer-links>span,.footer-contact>span{color:#87d3ff}
.detail-hero{background:radial-gradient(circle at 86% 36%,#174d88,#061426 70%)}
.detail-visual{border-color:#7acaff77;background:linear-gradient(145deg,#1b6198,#112c51);box-shadow:18px 18px 0 #68c8ff16}
.detail-visual::after{border-color:#aadcf580}
.detail-icon{border-color:#c0e9ff8a;background:#a2dcff16;color:#d0eeff}
.detail-serial{color:#d0ecff;z-index:3;text-shadow:0 2px 8px #001c38}
.detail-photo{width:100%;height:100%;object-fit:cover}
.detail-visual:has(.detail-photo)::before,.detail-visual:has(.detail-photo)::after{display:none}
.task-list li:before,.other-links a:hover{color:#1a76bc}
.detail-outcome{background:#d9ebfa}
.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.feature-photos{background:#f5f9fd;padding:0 0 88px}
.photo-feature{position:relative;display:block;min-height:385px;overflow:hidden;border-radius:12px;background:#06213b;color:#fff;box-shadow:0 10px 35px #122b4a1a}
.photo-feature img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform .55s ease}
.photo-feature::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#061629f5 0%,#071d3670 44%,transparent 80%)}
.photo-feature:hover img,.photo-feature:focus-visible img{transform:scale(1.05)}
.photo-feature>span{position:absolute;bottom:27px;left:29px;right:29px;z-index:1;display:flex;flex-direction:column;align-items:flex-start}
.photo-feature small{font-size:.75rem;font-weight:700;letter-spacing:.14em;color:#a6dfff}
.photo-feature strong{font:600 clamp(1.45rem,2.5vw,2.3rem)/1.13 'Space Grotesk',sans-serif;max-width:440px;margin:9px 0 16px}
.photo-feature b{font-size:.94rem;color:#c6eaff}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:850px){.hero-grid{grid-template-columns:1fr}.hero-panel{justify-self:end;margin-top:25px}.hero-photo{background-position:65% center}}
@media(max-width:650px){.hero{min-height:0}.hero-grid{padding-top:70px}.hero-photo{background:linear-gradient(90deg,#051426ec,#051426a0),url('images/hero.webp') 67% center / cover no-repeat}.hero-panel{display:none}.photo-grid{grid-template-columns:1fr}.photo-feature{min-height:300px}.feature-photos{padding-bottom:65px}.photo-feature>span{left:21px;bottom:21px;right:21px}}
@media(prefers-reduced-motion:reduce){.photo-feature:hover img,.photo-feature:focus-visible img{transform:none}}
