/* Interface depth; the approved globe and page background are deliberately untouched. */
.site-header{border-bottom:0;box-shadow:0 12px 32px -18px #000b}
.site-header:after{content:'';position:absolute;left:0;right:0;bottom:-17px;height:18px;background:linear-gradient(#010b1540,transparent);pointer-events:none}
.site-header:before{content:'';position:absolute;inset:auto 5% 0;height:1px;background:linear-gradient(90deg,transparent,#9acbff22 45%,#9acbff15 65%,transparent);pointer-events:none}
.site-header .brand>span{display:block;min-width:112px;text-align:center;filter:drop-shadow(0 3px 4px #0009)}
.site-header .brand-name{display:block;font-size:20px;font-weight:800;font-style:italic;letter-spacing:-.045em;line-height:1.15;background:linear-gradient(170deg,#fff 13%,#e9f2fc 42%,#9cabbf 55%,#fff 71%,#c9d9e9);background-clip:text;-webkit-background-clip:text;color:transparent;text-shadow:0 1px 0 #fff1;filter:drop-shadow(0 1px 0 #577089) drop-shadow(0 2px 0 #122739)}
.site-header .brand small{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:5px;font-size:8px;line-height:1;letter-spacing:.32em;font-weight:800;font-style:italic;color:#62b7ff;text-shadow:0 1px 0 #13283e,0 0 10px #3c9fff55}
.site-header .brand small:before,.site-header .brand small:after{content:'';height:2px;width:26px;background:linear-gradient(90deg,transparent,#3889d8,#9cdcff);transform:skewX(-25deg);box-shadow:0 1px 6px #309df93d}
.site-header .brand small:after{background:linear-gradient(90deg,#9cdcff,#3889d8,transparent)}
.primary-nav>a{padding:11px 17px;border:0;border-radius:0;font-size:14px;color:#cfdfed;background:none;box-shadow:none;text-shadow:0 0 12px #70b9ff3d;transition:color .25s,text-shadow .25s}
.primary-nav>a:before{content:'';position:absolute;inset:0 -7px;background:radial-gradient(ellipse,#62adfa12,transparent 70%);opacity:.6;pointer-events:none;transition:opacity .3s}
.primary-nav>a:after{left:25%;bottom:4px;width:50%;height:1px;background:linear-gradient(90deg,transparent,#8ccaff,transparent);opacity:0;transform:scaleX(.5);transition:opacity .25s,transform .25s}
.primary-nav>a[aria-current=page]{color:#fff;background:none;border-color:transparent;box-shadow:none;text-shadow:0 0 8px #8ecbff70,0 0 21px #429fff45}
.primary-nav>a[aria-current=page]:before{opacity:1}
.primary-nav>a[aria-current=page]:after,.primary-nav>a:hover:after{width:50%;opacity:1;transform:scaleX(1)}
.primary-nav>a:active{color:#9ed2ff;text-shadow:0 0 15px #82c6ff99}
.primary-nav>a:focus-visible{outline-offset:3px}
@media(min-width:861px){.primary-nav{gap:10px}}
@media(hover:hover) and (pointer:fine){.primary-nav>a:hover{color:#fff;text-shadow:0 0 8px #b2ddffa6,0 0 20px #62b2ff70;background:none;box-shadow:none}.primary-nav>a:hover:before{opacity:1}}

/* Layered edges and soft black shadows, shared across actions. */
.button{position:relative;isolation:isolate;overflow:hidden;border-radius:9px;box-shadow:0 8px 17px #0006,0 18px 35px -19px #000c,inset 0 1px 0 #fff3,inset 0 -2px 0 #0004;transition:background .25s,transform .25s,box-shadow .25s,border-color .25s}
.button:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 20%,#fff2 50%,transparent 80%);transform:translateX(-125%);transition:transform .55s ease;pointer-events:none}
.button-primary,.header-actions .button{background:linear-gradient(145deg,#397ec4 0%,#255b9b 48%,#14385e 100%);border-color:#95c9ff66;color:#f7fbff}
.button-outline{background:linear-gradient(145deg,#1b3c55,#0a1e30);border-color:#6d94b04d}
.button>span{transition:transform .25s}
.button:active{transform:translateY(1px);box-shadow:inset 0 3px 8px #0007,0 3px 10px #0004}
.text-link{transition:color .2s,border-color .2s,text-shadow .2s}
.text-link>span{transition:transform .25s}
.service-tabs>a{border-radius:8px;background:linear-gradient(145deg,#21405b88,#081b2b88);box-shadow:0 5px 15px #0004,inset 0 1px 0 #d6ebff12;transition:transform .25s,border-color .25s,box-shadow .25s}
@media(hover:hover) and (pointer:fine){.button:hover{background:linear-gradient(145deg,#4d93d7,#2b65a8 50%,#1a4876);border-color:#b2dcffb3;transform:translateY(-3px);box-shadow:0 12px 24px #0008,0 0 23px #419ffb20,inset 0 1px 0 #fff6,inset 0 -2px 0 #0003}.button:hover:before{transform:translateX(125%)}.button:hover>span,.text-link:hover>span{transform:translate(2px,-2px)}.text-link:hover{text-shadow:0 0 14px #6abaff40}.service-tabs>a:hover{transform:translateY(-2px);box-shadow:0 9px 20px #0007,inset 0 1px 0 #fff2}}

/* Photographs float above the navy surface with gradual dark falloff. */
.card-image,.teaser-image,.service-detail-image,.story-image>img{border-radius:10px;box-shadow:0 5px 12px #0006,0 18px 35px -8px #0009,0 35px 65px -20px #000b;outline:1px solid #b7d9f214;outline-offset:-1px}
.card-image,.teaser-image,.service-detail-image{transition:box-shadow .35s,transform .35s}
.card-image img{transition:transform .6s ease}
.card-image:after{background:linear-gradient(180deg,#0001,transparent 35%,#0004);box-shadow:inset 0 0 22px #0004;pointer-events:none}
.card-arrow{box-shadow:0 5px 15px #0007,inset 0 1px 0 #fff2;transition:background .25s,transform .25s}
@media(hover:hover) and (pointer:fine){.service-card:hover .card-image{transform:translateY(-3px);box-shadow:0 8px 17px #0006,0 23px 45px -8px #000b}.service-card:hover .card-image img{transform:scale(1.035)}.service-card:hover .card-arrow{transform:translate(2px,-2px)}}

/* Two-tone contact cards, with a restrained polished rim. */
.person-card{position:relative;border-radius:14px;border:1px solid #7da4c835;background:radial-gradient(ellipse at 0 0,#3b729131,transparent 65%),linear-gradient(135deg,#193b53 0%,#102b40 48%,#071a2b 100%);box-shadow:0 7px 16px #0005,0 23px 42px -13px #000a,inset 0 1px 0 #d2eaff20,inset 0 -1px 0 #0005;transition:transform .3s,box-shadow .3s,border-color .3s}
.person-card:before{content:'';position:absolute;top:-1px;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,#a7d4ff65,transparent);pointer-events:none}
.person-card .eyebrow{color:#a4c4df}
.person-initials{background:linear-gradient(145deg,#355e7d,#112a41);color:#d6ecff;border:1px solid #8fb7db3b;box-shadow:0 4px 10px #0004,inset 0 1px 0 #fff2;text-shadow:0 1px 2px #0008}
.person-phone{color:#e0edfb;transition:color .2s,text-shadow .2s}
.person-phone:hover{text-shadow:0 0 14px #4a99ee50}
@media(hover:hover) and (pointer:fine){.person-card:hover{transform:translateY(-4px);border-color:#9dccf366;box-shadow:0 10px 20px #0007,0 28px 48px -12px #000b,inset 0 1px 0 #e0f2ff3b}.person-card:focus-within{border-color:#8ec9ff90}}

/* A raised form panel and inset, tactile fields. */
.inquiry-form{padding:30px;border:1px solid #749dc23b;border-radius:17px;background:radial-gradient(ellipse at 0 0,#396d9130,transparent 70%),linear-gradient(135deg,#17354dcc,#0a1e30e8 70%);box-shadow:0 12px 24px #0005,0 30px 60px -20px #000b,inset 0 1px 0 #d6ecff24,inset 0 -1px 0 #0005}
.inquiry-form label{color:#d0e1ef;transition:color .2s}
.inquiry-form label:focus-within{color:#91cbff}
.inquiry-form input,.inquiry-form textarea,.inquiry-form select{background:linear-gradient(145deg,#0a1d2f,#123048);border-radius:8px;border:1px solid #6b91b34d;border-top-color:#03101dd9;border-bottom-color:#97bfe138;box-shadow:inset 0 3px 6px #0006,0 1px 0 #e0f4ff0d,0 5px 10px #0002;transition:border-color .25s,box-shadow .25s,background .25s;color:#eef7ff;min-height:48px}
.inquiry-form input::placeholder,.inquiry-form textarea::placeholder{color:#95adc0}
.inquiry-form input:hover,.inquiry-form textarea:hover,.inquiry-form select:hover{border-color:#7bb0dd80}
.inquiry-form input:focus,.inquiry-form textarea:focus,.inquiry-form select:focus{outline:2px solid #70b9ff55;outline-offset:2px;border-color:#84c2ff;background:linear-gradient(145deg,#0c2338,#163c56);box-shadow:inset 0 2px 5px #0005,0 0 0 4px #53a5f40d,0 6px 16px #0004}
.inquiry-form select option{background:#112b40}
.inquiry-form .form-status:empty{display:none}
.contact-banner{border-radius:14px;box-shadow:0 12px 35px #0004,inset 0 1px 0 #badfff12}
.mail-dialog{border-radius:16px;background:linear-gradient(145deg,#16354c,#081b2b)}
@media(max-width:1000px){.site-header .brand-name{font-size:19px}.inquiry-form{padding:23px}.primary-nav>a{padding-inline:13px}}
@media(max-width:860px){.primary-nav{padding:15px 20px 23px;border-radius:0 0 14px 14px;background:linear-gradient(145deg,#112c43f7,#061523fa);gap:8px;border-bottom:1px solid #7093ad26;box-shadow:0 20px 36px #0008}.primary-nav>a{padding:14px 18px;font-size:16px}.primary-nav>a:after{left:18px;width:28px;bottom:7px}.primary-nav>a[aria-current]:after,.primary-nav>a:hover:after{width:28px}.inquiry-form{padding:21px}}
@media(max-width:620px){.site-header .brand>span{min-width:100px}.site-header .brand-name{font-size:18px}.site-header .brand small{font-size:7px;gap:6px}.site-header .brand small:before,.site-header .brand small:after{width:23px}.header-actions>.button{border-radius:7px}.inquiry-form{padding:22px 17px}.person-card{border-radius:12px}.card-image,.teaser-image,.service-detail-image,.story-image>img{border-radius:9px}.button{border-radius:8px}}
@media(max-width:360px){.site-header .brand>span{min-width:88px}.site-header .brand-name{font-size:16px}.site-header .brand small:before,.site-header .brand small:after{width:19px}.inquiry-form{padding:18px 13px}.field-row{gap:10px}}
/* Keep the header geometry and fade identical across all four documents. */
html{scrollbar-gutter:stable}
.site-header{view-transition-name:site-header;background:linear-gradient(248deg,#010c18f5,#031526f5 40%,#062941f5)}
.site-header{box-shadow:none;backdrop-filter:none}
.site-header:before{display:none}
.site-header:after{height:38px;bottom:-38px;background:linear-gradient(248deg,#010c18f5,#031526f5 40%,#062941f5);mask-image:linear-gradient(#000,transparent);-webkit-mask-image:linear-gradient(#000,transparent)}
.service-detail-image{box-shadow:0 7px 18px #0009,0 20px 40px -6px #000b,0 36px 65px -15px #000b}
@view-transition{navigation:auto}
::view-transition{pointer-events:none}
::view-transition-group(site-header){animation:none}
::view-transition-old(site-header),::view-transition-new(site-header){animation-duration:.24s;mix-blend-mode:normal}
::view-transition-old(root){animation:page-out .18s ease both}
::view-transition-new(root){animation:page-in .42s ease-out both}
@keyframes page-in{from{opacity:0}to{opacity:1}}
@keyframes page-out{from{opacity:1}to{opacity:0}}
/* Never restart a main animation when the view-transition pseudo-class disappears. */
@supports not (view-transition-name:root){@media(prefers-reduced-motion:no-preference){main{animation:page-in .45s ease-out both}}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.button:before{display:none}}

/* One type family across all pages, including highlighted headings. */
body,button,input,select,textarea,em{font-family:var(--font)}
em{font-weight:600}
.person-card{box-shadow:0 5px 15px #0009,0 18px 34px -4px #000c,0 32px 55px -10px #000a,inset 0 1px 0 #d2eaff24}
@media(hover:hover) and (pointer:fine){.person-card:hover{box-shadow:0 8px 20px #000a,0 24px 44px -4px #000d,0 40px 65px -10px #000b,inset 0 1px 0 #e0f2ff3b}}

/* Shared soft black separation below the header. */
.site-header{box-shadow:0 10px 22px -8px #0009}
.site-header:after{height:30px;bottom:-30px;background:linear-gradient(180deg,#0006 0%,#0002 40%,transparent 100%);mask-image:none;-webkit-mask-image:none}
