/* Larger, clear navigation and persistent current-page states. */
.mainnav nav{font-family:Ubuntu,Arial,sans-serif;font-size:var(--text-navigation-action);font-weight:500;gap:8px}
.mainnav nav>a,.nav-group>a{display:flex;align-items:center;min-height:52px;padding:14px 17px;border-radius:3px;line-height:1.2;transition:background-color .18s,color .18s}
.nav-group{display:flex;align-items:stretch;border-radius:3px}
.nav-group>a{border-radius:3px 0 0 3px;padding-right:9px}
.mainnav .nav-group>button{display:grid;place-items:center;min-width:38px;padding:0 9px;border-radius:0 3px 3px 0;font:inherit;border:0;transition:background-color .18s,color .18s}
.mainnav .nav-group>button span{margin:0;color:inherit}
.mainnav nav>a:hover,.mainnav nav>a:focus-visible,.nav-group:hover,.nav-group:focus-within,.mainnav nav [aria-current="page"],.nav-group:has([aria-current="page"]),.nav-group:has([aria-expanded="true"]){background:transparent;color:var(--blue)}
.mainnav nav .navcta{background:transparent;color:inherit;font-size:inherit}
.mainnav nav>.nav-menu{font:inherit;padding:14px 17px;min-height:52px;display:flex;align-items:center;gap:8px;border-radius:3px;transition:background-color .18s,color .18s}
.mainnav nav>.nav-menu span{color:inherit;margin:0}
.mainnav nav>.nav-menu:hover,.mainnav nav>.nav-menu:focus-visible,.mainnav nav>.nav-menu[aria-expanded="true"],.mainnav nav>.nav-menu.current-section{background:transparent;color:var(--blue)}
.mega .overview-link{display:inline-block;font-size:17px;font-weight:700;color:#087da7;border-bottom:1px solid #c9dce5;margin-bottom:18px;padding:10px 0}
.megagrid .eyebrow{font-family:Ubuntu,Arial,sans-serif;font-size:19px;font-weight:700;line-height:1.4;letter-spacing:.3px;color:#293239;margin-bottom:17px}
.megagrid>div>a{font-size:16px;font-weight:600;line-height:1.6;color:#35434c}
.megagrid>div>a:hover{color:#087da7}
.megagrid aside>span{font-family:Ubuntu,Arial,sans-serif;font-size:18px;line-height:1.5;color:#e3edf2}
.megagrid aside h3{font-size:31px;line-height:1.25}
.megagrid aside a{font-size:17px;font-weight:600;line-height:1.5}
.megagrid aside a[href^="tel"]{font-family:Ubuntu,Arial,sans-serif;font-size:22px;font-weight:500;white-space:nowrap;color:#65cff3}
@media(min-width:1101px){.megagrid{grid-template-columns:1fr 1fr 1fr 1.1fr;gap:26px}}
.page-intro{background:#293239;color:white;padding:64px 0}
.page-intro h1{max-width:1000px;font-size:clamp(36px,4vw,58px)}
.page-intro p{max-width:760px;color:#d4dfe6}
.breadcrumbs{display:flex;gap:12px;font-size:14px;color:#c2d1da;margin-bottom:30px}
.breadcrumbs a:hover{text-decoration:underline}
.page-intro .eyebrow{color:#9cc7da}
.overview-page .career{margin-top:60px;margin-bottom:60px}
@media(max-width:1200px){.mainnav nav{font-size:var(--text-navigation-action);gap:4px}.mainnav nav>a,.nav-group>a{padding-left:12px;padding-right:12px}}
@media(min-width:761px) and (max-width:1100px){
 .mainnav .mobile{display:block;background:none;border:0;font-size:18px;padding:14px 0}
 .mainnav nav{display:none;position:absolute;top:100%;left:0;right:0;background:white;padding:20px 30px;box-shadow:0 20px 20px #0001}
 .mainnav nav.open{display:flex;flex-direction:column;align-items:stretch;gap:6px}
 .mega{position:static;max-height:65vh;overflow:auto}
 .nav-group>a{flex:1}.mainnav .nav-group>button{min-width:52px}
}
@media(max-width:760px){
 .mainnav nav{font-size:var(--text-navigation-action);gap:6px}
 .nav-group>a{flex:1}.mainnav .nav-group>button{min-width:52px}
 .mainnav nav>a,.nav-group>a{padding:15px 17px}
 .page-intro{padding:42px 0}.page-intro h1{font-size:36px}
}

/* Matching contact sizes: one step above the previous email size. */
.contactbar a[href^="tel"],.contactbar a[href^="mailto"]{font-family:Ubuntu,Arial,sans-serif;font-size:17.25px;font-weight:400;line-height:1.4;color:var(--blue)}
@media(max-width:760px){.contactbar a[href^="tel"],.contactbar a[href^="mailto"]{font-size:13.5px}}
@media(max-width:440px){.contactbar a[href^="tel"],.contactbar a[href^="mailto"]{font-size:12.75px}}

/* Every main-menu entry stays clear; hover/current state changes text only. */
.mainnav nav>a:hover,.mainnav nav>a:focus-visible,.mainnav nav>a[aria-current="page"],.mainnav nav>.nav-menu:hover,.mainnav nav>.nav-menu:focus-visible,.mainnav nav>.nav-menu[aria-expanded="true"],.mainnav nav>.nav-menu.current-section{background:transparent;color:var(--blue)}
.megagrid aside a[href^="tel"]{font-weight:700}

/* Contact icons follow the reduced type size and use brand anthracite. */
.contactbar .phone-symbol,.contactbar .email-symbol{font-size:1em;color:var(--dark);margin-right:5px}

/* Keep contact symbols light and optically equal in size. */
.contactbar .phone-symbol,.contactbar .email-symbol{font-weight:400;display:inline-block;vertical-align:middle;line-height:1}
.contactbar .email-symbol{font-size:1.2em}

/* Compact company submenu, sharing the existing menu behavior. */
.company-menu{left:auto;right:max(42px,calc((100vw - 1176px)/2));width:min(390px,calc(100vw - 32px));padding:12px;border:1px solid #e1e9ed;border-radius:4px}
.company-menu nav{display:grid;gap:0;font:500 17px/1.4 Ubuntu,Arial,sans-serif}
.company-menu nav>a{display:block;padding:13px 16px;border-radius:3px}
.company-menu nav>a:hover,.company-menu nav>a:focus-visible{background:#f1f6f8;color:var(--blue)}
.related-grid>article{background:#f1f6f8;padding:25px;border:1px solid #e1e9ed;border-radius:4px}
@media(max-width:1100px){.company-menu{position:static;width:100%;margin:0;border-radius:0}.company-menu nav{display:grid}}

/* Matching outline contact icons, sized and aligned as one consistent pair. */
.phone-symbol,.email-symbol{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;vertical-align:-.18em;font-size:1em;line-height:1;flex:none}
.phone-symbol svg,.email-symbol svg{display:block;width:100%;height:100%}
.contactbar .phone-symbol,.contactbar .email-symbol{display:inline-flex;width:1.15em;height:1.15em;font-size:1em;vertical-align:-.18em;color:var(--dark);margin-right:5px}

/* Separate offer action; its right edge matches the contact line above. */
@media(min-width:1101px){
 .mainnav{justify-content:flex-start;gap:0}
 .mainnav .brand{flex:none}
 .mainnav nav{flex:1;min-width:0;margin-left:clamp(40px,calc((100vw - 1100px)*.5 + 40px),5cm);gap:2px}
 .mainnav nav>a,.mainnav nav>.nav-menu{white-space:nowrap;padding-left:12px;padding-right:12px}
 .mainnav nav>a.navcta{margin-left:auto}
}
/* Architecture: square corners, blue edge and a restrained press interaction. */
.mainnav nav>a.navcta{background:var(--dark);color:#fff;display:inline-flex;align-items:center;justify-content:space-between;gap:20px;border:0;border-left:5px solid var(--blue);border-radius:0;min-height:48px;padding:0 21px;font-size:inherit;font-weight:600;box-shadow:4px 4px 0 var(--blue);transition:transform .25s,box-shadow .25s,background .25s}
.mainnav nav>a.navcta:hover,.mainnav nav>a.navcta:focus-visible{background:#354751;color:#fff;transform:translate(3px,3px);box-shadow:1px 1px 0 var(--blue)}
.mainnav .navcta-arrow{display:grid;place-items:center;width:20px;height:20px;border-radius:0;background:transparent;color:#fff;line-height:1;flex:none;transition:transform .25s}
.mainnav .navcta-arrow svg{width:20px;height:20px;display:block}
.mainnav .navcta:is(:hover,:focus-visible) .navcta-arrow{transform:translate(2px,-2px)}
@media(prefers-reduced-motion:reduce){.mainnav nav>a.navcta,.mainnav .navcta-arrow{transition:none}.mainnav nav>a.navcta:is(:hover,:focus-visible),.mainnav .navcta:is(:hover,:focus-visible) .navcta-arrow{transform:none}}
@media(min-width:1101px) and (max-width:1200px){.mainnav nav>a,.mainnav nav>.nav-menu{padding-left:9px;padding-right:9px}.mainnav nav>a.navcta{font-size:inherit;gap:10px;padding-left:15px}}
@media(max-width:1100px){.mainnav nav>a.navcta{margin-top:10px;align-self:flex-start}}

/* Company menu uses the same full header width as the other mega menus. */
.company-menu{left:0;right:0;width:100%;max-width:none;margin:0;padding:30px 0;border:0;border-top:1px solid #edf1f3;border-radius:0}
.company-menu .eyebrow{margin:0 0 17px;font-size:15px;color:var(--dark)}
.company-menu nav.company-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 30px}
.company-menu .company-links>a{display:flex;align-items:flex-start;gap:15px;padding:16px 12px;min-width:0}
.company-links svg{width:29px;height:29px;flex:none;color:var(--blue);margin-top:2px}
.company-links strong{display:block;font:500 18px/1.4 Ubuntu,Arial,sans-serif;color:var(--dark)}
.company-links small{display:block;margin-top:5px;font:400 15px/1.5 Quicksand,Arial,sans-serif;color:var(--color-copy)}
.company-menu .company-links>a:hover strong,.company-menu .company-links>a:focus-visible strong{color:var(--blue)}
@media(max-width:1100px){.company-menu{position:static}.company-menu nav.company-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}}
@media(max-width:600px){.company-menu nav.company-links{grid-template-columns:1fr}.company-menu{padding:22px 0}.company-menu .company-links>a{padding:12px 0}}

/* Softer menu typography: preserve sizes and blue interaction states. */
.mainnav nav{color:#555f65}
header .megagrid .eyebrow{color:#555f65;font-weight:500}
header .megagrid>div>a{color:#505b63;font-weight:500}
header .megagrid>div>a:hover,header .megagrid>div>a:focus-visible{color:#087da7}

/* Shared readable link tone across object and company dropdown menus. */
header .object-menu .object-card>span,
header .company-menu .company-links strong,
header .company-menu .company-links small{color:#505b63;font-weight:500}
header .object-menu .object-card:hover>span,
header .object-menu .object-card:focus-visible>span,
header .company-menu .company-links>a:hover strong,
header .company-menu .company-links>a:focus-visible strong{color:#087da7}

/* Identical line boxes for plain links and dropdown buttons. */
.mainnav nav>a:not(.navcta),.mainnav nav>button.nav-menu{
 font-family:inherit;font-size:inherit;font-weight:inherit;line-height:1.2;
 display:flex;align-items:center;min-height:52px;padding-top:14px;padding-bottom:14px;
 border:0;margin-top:0;margin-bottom:0;
}

/* Compact complete service menu, scoped to the header service dropdown. */
#services .megagrid>div>a{display:flex;align-items:flex-start;gap:9px;padding:5.5px 0;margin:0;line-height:1.45;min-height:0;}
#services .megagrid>div>a>span{display:block;min-width:0;color:inherit;}
#services .service-menu-icon{display:block;flex:0 0 15px;width:15px;height:15px;margin-top:4px;color:#009BDF;}
#services .megagrid>div>.eyebrow{margin-bottom:12px;}
@media(max-width:1100px){#services .megagrid>div>a{padding:7px 0;min-height:38px;}}

/* Calm, matching telephone text and handset inside service contact card. */
#services .megagrid aside a[href^="tel"]{color:#DCE4E8;font-weight:500;}
#services .megagrid aside a[href^="tel"] .phone-symbol{color:inherit;}
#services .megagrid aside a[href^="tel"] svg{color:inherit;stroke:currentColor;}
#services .megagrid aside a[href^="tel"]:hover,#services .megagrid aside a[href^="tel"]:focus-visible{color:#fff;}

#services .megagrid aside h3{color:#fff;}
#services .megagrid aside h3 .contact-card-accent{color:#50C3ED;}
#services .megagrid aside a[href^="tel"]{display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid #009BDF;border-radius:3px;padding:12px 8px;margin-top:12px;min-height:48px;font-size:clamp(16px,1.35vw,20px);line-height:1.3;color:#DCE4E8;}
#services .megagrid aside a[href^="tel"] .phone-symbol{display:inline-flex;flex:0 0 19px;margin:0;}
#services .megagrid aside a[href^="tel"] svg{width:19px;height:19px;}
#services .megagrid aside a[href^="tel"]:hover{background:#34444e;}
#services .megagrid aside a[href^="tel"]:focus-visible{outline:2px solid #50C3ED;outline-offset:3px;}

/* Phone frame fits content with symmetric horizontal padding. */
#services .megagrid aside a[href^="tel"]{display:inline-flex;width:max-content;max-width:100%;box-sizing:border-box;padding:12px 14px;}

/* Desktop dropdown panels follow the marked content width without shrinking their contents. */
@media(min-width:1101px){
 header .mega{left:50%;right:auto;width:calc(100% - 48px);max-width:calc(var(--content,1680px) - 48px);transform:translateX(-50%)}
 header .mega>.wrap{max-width:none;padding-left:20px;padding-right:20px}
}

/* Service dropdown: aligned top edges and centered overview below the three lists. */
#services .megagrid > div > .eyebrow{margin-top:0;}
#services .services-menu-overview{grid-column:1/-1;text-align:center;}
#services .services-menu-overview > a.overview-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;margin:0;padding:0 0 5px;font-size:17px;font-weight:700;color:#087da7;}
@media(min-width:1101px){
 #services{padding-top:38px;padding-bottom:38px;}
 #services .megagrid{align-items:start;row-gap:22px;}
 #services .megagrid > aside{grid-column:4;grid-row:1/3;align-self:stretch;}
 #services .services-menu-overview{grid-column:1/4;grid-row:2;align-self:end;}
}

/* Consistent content-edge alignment; original menu colors, images and text retained. */
@media(min-width:1101px){
 header .mega{width:calc(100% - 84px);max-width:calc(var(--content,1680px) - 84px);}
 header .mega>.wrap{padding-left:22px;padding-right:22px;}
 #services .megagrid{grid-template-columns:1.18fr 1fr 1fr 1.07fr;column-gap:32px;}
 #industries .object-grid{gap:18px;}
 #company>.wrap{max-width:1400px;margin-inline:auto;}
 #company .company-links>a{padding-left:0;padding-right:0;}
 .mainnav nav{margin-left:clamp(24px,4vw,75px);}
}
/* Contact dropdown follows the existing navigation and form design. */
header .contact-menu{padding:38px 0;max-height:calc(100dvh - 155px);overflow-y:auto;}
.contact-menu .contact-menu-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start;}
.contact-menu-info section+section{margin-top:28px;}
.contact-menu-info h3{font-family:Ubuntu,Arial,sans-serif;font-size:21px;line-height:1.35;color:var(--dark);margin:0 0 14px;}
.contact-menu-info address{font-style:normal;line-height:1.7;}
.contact-menu-info p{line-height:1.6;margin:12px 0;}
.contact-menu-info .footer-contact-link{display:flex;align-items:center;gap:10px;color:var(--blue);padding:6px 0;}
.contact-menu-info .footer-contact-icon{display:inline-flex;width:20px;height:20px;}
.contact-menu-info .footer-contact-icon svg{width:20px;height:20px;}
.contact-menu-info .footer-links{display:flex;flex-wrap:wrap;gap:4px 22px;}
.contact-menu-info .footer-membership img{display:block;width:220px;max-width:100%;height:auto;}
.contact-menu-info .footer-membership{padding:0;}
.contact-menu form{margin:0;padding:26px;background:var(--pale);}
.contact-menu form h2{font-size:30px;line-height:1.2;margin:0 0 18px;}
.contact-menu form .eyebrow{font-size:13px;margin:0 0 10px;}
.contact-menu form label{display:block;min-width:0;margin:10px 0;}
.contact-menu form input,.contact-menu form textarea{display:block;width:100%;min-width:0;}
.contact-menu form .contact-fields-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.contact-menu form .formnote{font-size:13px;line-height:1.5;}
.contact-menu form a{display:inline;padding:0;font-size:inherit;color:var(--blue);}
.contact-menu form [role=status]:empty{display:none;}
@media(max-width:1100px){.contact-menu .contact-menu-grid{gap:30px;}header .contact-menu{max-height:65dvh;}}
@media(max-width:760px){.contact-menu .contact-menu-grid{grid-template-columns:1fr;}.contact-menu form{padding:20px;}.contact-menu form .contact-fields-row{grid-template-columns:1fr;gap:0;}}

/* Center the complete menu group in the free space between logo and offer. */
@media(min-width:1101px){
 .mainnav nav#navigation{margin-left:0;gap:0;}
 .mainnav nav#navigation::before,.mainnav nav#navigation::after{content:"";display:block;flex:1 1 0;min-width:0;}
 .mainnav nav#navigation::after{order:1;}
 .mainnav nav#navigation>a,.mainnav nav#navigation>button{flex:0 0 auto;}
 .mainnav nav#navigation>a.navcta{order:2;margin-left:0;}
}
