/* Final reading, navigation and contact layer. */
.skip-link{position:fixed;top:12px;left:12px;z-index:100;background:#fff;color:#102344;padding:12px 20px;transform:translateY(-180%);border-radius:8px}.skip-link:focus{transform:none}
img{max-width:100%}main:focus{outline:none}button,a,summary{touch-action:manipulation}
:focus-visible{outline:3px solid #548ff0!important;outline-offset:5px!important}
.hero-stage :focus-visible{outline-color:#dceaff!important}
.hero h1 em{background:none}.hero-copy{min-width:0}
.request form{padding:28px;background:#f9fbff;border:1px solid #c7d6e8;border-radius:12px;min-width:0;box-shadow:0 18px 45px #17385c0a}
.request input,.request select,.request textarea{width:100%;min-width:0;font-size:16px;min-height:48px;background:#fff}
.request textarea{min-height:104px;resize:vertical}.request input[type=checkbox]{min-height:18px}
.request form>.button{width:100%;justify-content:center;margin-top:14px}
.callback-intro{line-height:1.65}.inquiry-consent{color:#465b75}
.nav-dropdown>div{max-width:calc(100vw - 44px)}.nav-dropdown summary{min-height:44px}
.detail-final{border-top:1px solid #d5dfed}.detail-final>.button{margin-top:24px}
.reference-card,.direction-card{transition:box-shadow .2s ease,transform .2s ease}
.reference-card:hover{box-shadow:0 16px 40px #1732520d}
.mobile-contact-bar{display:none}
@media(max-width:700px){
 body{padding-bottom:86px}.wrap{padding-left:22px;padding-right:22px}
 header.wrap{gap:16px;flex-wrap:wrap;padding-top:18px;padding-bottom:14px;min-height:0}
 header .brand{flex:1;min-width:0}header .main-nav{order:3;flex-basis:100%;justify-content:flex-start;gap:24px;border-top:1px solid #8da4c32e;padding-top:8px}
 header .header-cta{font-size:12px;padding:10px 12px}
 .brand-word small{letter-spacing:.1em}.nav-dropdown>div{left:0}
 .main-nav .nav-dropdown:nth-child(2)>div{left:auto;right:0}
 .request.wrap{margin-left:14px;margin-right:14px;padding:28px 18px;gap:30px}
 .request form{padding:22px 16px}.request h2{font-size:34px}
 .request .button,.hero-actions .button{white-space:normal;line-height:1.4}
 .hero-stage .hero h1{overflow-wrap:normal}.detail-hero h1{font-size:clamp(34px,9vw,46px)}
 .mobile-contact-bar{display:grid;grid-template-columns:1.2fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:30;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#f8fbfff5;border-top:1px solid #cbd8e8;backdrop-filter:blur(14px)}
 .mobile-contact-bar a{display:flex;justify-content:center;align-items:center;text-align:center;min-height:46px;border:1px solid #bdcde2;border-radius:8px;font-size:13px;font-weight:700;padding:8px;color:#17345b}
 .mobile-contact-bar a:first-child{background:#153964;border-color:#153964;color:#fff}
 .mobile-contact-bar[hidden]{display:none}.hero-footnote{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}}

/* One quiet chat button, no competing floating contact bars. */

/* Salebot animates the outer frame's size and position. Keep this boundary
   immediate so the closing button cannot pass over the mobile contact bar. */
#parent_frame{transition:none!important}

#task-panel{scroll-margin-top:24px}
#lead-form{position:relative;scroll-margin-top:24px}
.form-anchor{position:absolute;top:0;scroll-margin-top:24px}
@media(max-width:700px){.request #lead-form{order:-1}}


#parent_frame.chat-collapsed{max-width:215px!important;right:16px!important;bottom:16px!important;border-radius:12px!important}
@media(max-width:700px){
 #parent_frame.chat-collapsed{max-width:210px!important;right:14px!important;bottom:calc(82px + env(safe-area-inset-bottom))!important}
 body.chat-open .mobile-contact-bar{display:none!important}
 #parent_frame:not(.chat-collapsed){right:0!important;bottom:0!important;max-width:100vw!important}
}

/* Keep all engineering directions reachable in a short viewport. */
.nav-dropdown>div{max-height:min(72vh,calc(100dvh - 170px));overflow-y:auto;overscroll-behavior:contain}
header.wrap{position:relative;z-index:40}
.nav-dropdown summary{border-radius:6px;padding:0 8px;margin:0 -8px}
.nav-dropdown[open] summary{background:#708cb329}
.nav-dropdown a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px;line-height:1.5}
.nav-dropdown a:after{content:'›';font-size:22px;color:#6c83a2}
.nav-dropdown a:hover,.nav-dropdown a:focus-visible{background:#e8effa;color:#123e79}
.nav-dropdown a[aria-current=page]{background:#e8effa;font-weight:700}
body:has(.nav-dropdown[open]) #parent_frame.chat-collapsed{visibility:hidden!important;pointer-events:none!important}
@media(max-width:700px){.nav-dropdown>div{max-height:calc(100dvh - 265px)}}

/* Diagrams use their full frame so the flow and terminal nodes stay visible. */
.direction-card-photo:has(.system-diagram),.direction-visual figure:has(.system-diagram){background:#102344}.direction-card-photo .system-diagram,.direction-visual figure .system-diagram{object-fit:contain;object-position:center;padding:12px}.direction-visual figure .system-diagram{padding-bottom:40px}

/* Reserve a resting area for the closed chat after the last footer link. */
footer.wrap{padding-top:30px;padding-bottom:80px}

/* Comfortable targets for small disclosure and motion controls. */
.faq-list summary{min-height:44px;display:flex;align-items:center}
.motion-control{min-width:44px;min-height:44px}
@media(prefers-reduced-motion:reduce){.motion-control{display:none}}

/* Leave room for the fixed contact bar when a focused control scrolls into view. */
@media(max-width:700px){html{scroll-padding-bottom:100px}a,button,input,select,textarea,summary{scroll-margin-bottom:100px}}

.data-note{margin-top:24px;border-top:1px solid #bdcde2;padding-top:12px;max-width:420px}.data-note summary{min-height:44px;cursor:pointer;font-size:14px;font-weight:600;line-height:1.6}.request-copy .data-note p{font-size:13px;line-height:1.7;color:#465b75;margin:12px 0}.not-found{padding-top:80px;padding-bottom:100px;min-height:60vh}.not-found h1{font-size:clamp(36px,6vw,68px);letter-spacing:-.04em;line-height:1.1}.not-found>p:not(.eyebrow){max-width:580px;line-height:1.8;color:#526780}

/* Seventh direction gets a complete row in the existing three/two-column grid. */
.directions nav a.direction-card-wide{grid-column:1/-1;display:grid;grid-template-columns:minmax(230px,.85fr) 1.15fr;align-items:stretch}
.direction-card-wide .direction-card-photo{height:100%;min-height:230px}
.direction-card-wide .direction-card-copy{align-self:center;padding:30px}
.direction-card-wide .direction-card-copy strong,.direction-card-wide .direction-card-copy p{min-height:0}
.direction-card-wide .direction-card-copy strong{font-size:28px}
@media(max-width:650px){.directions nav a.direction-card-wide{grid-template-columns:1fr}.direction-card-wide .direction-card-photo{height:215px;min-height:0}.direction-card-wide .direction-card-copy{padding:22px}.direction-card-wide .direction-card-copy strong{font-size:24px}}
