/* Navigation, clear actions and focused overview pages. */
.site-header{padding:0 4%;gap:24px}
.main-nav{gap:8px;align-items:center;font-size:15px}
.main-nav>.nav-direct,.nav-group>summary{min-height:48px;padding:12px 13px;border-radius:3px;position:relative;gap:9px;transition:background .18s,color .18s}
.nav-group>summary:hover,.main-nav>.nav-direct:hover{background:#f1f3f5;color:var(--ink)}
.nav-group[open]>summary{background:#edf0f2;color:#101f34}
.nav-group.nav-current>summary:after,.main-nav>.nav-direct.active:after{content:'';position:absolute;bottom:3px;left:13px;right:13px;height:2px;background:#b07745}
.nav-chevron{flex:0 0 18px;color:#526373;transition:transform .18s}
.nav-group[open] .nav-chevron{transform:rotate(180deg)}
.mega-menu{top:97px;padding:32px 7% 38px;gap:7%;grid-template-columns:.85fr 2fr;border-top:1px solid #e0e5e8;background:#fff;box-shadow:0 24px 35px #0b192923}
.mega-intro>span{font-size:14px;letter-spacing:.11em;color:#647483}
.mega-intro>p{font-size:28px;line-height:1.35;letter-spacing:-.035em;max-width:310px;margin-top:18px}
.mega-links{gap:8px 18px;align-content:start}
.mega-links>a{padding:17px 18px;border:1px solid #e2e7eb;border-radius:3px;background:#fafbfc;min-height:92px;transition:background .18s,border-color .18s}
.mega-links>a:hover,.mega-links>a[aria-current=page]{background:#f2e9df;border-color:#d2b38e;color:#16263a}
.mega-links>a>span.nav-link-copy{font-size:16px;color:#16263a;display:flex;flex-direction:column;gap:5px;min-width:0}
.nav-link-copy>strong{font-weight:600;line-height:1.4}
.nav-link-copy>small{font-size:14px;color:#536575;font-weight:400;line-height:1.5}
.action-arrow{display:block;flex:0 0 20px;transition:transform .18s}
.mega-links .action-arrow{color:#8b603a}
.site-header .header-end{gap:20px;flex-shrink:0}
.site-header .button.small{padding:12px 17px;min-height:46px;gap:12px;font-size:15px}
.site-header .languages button{min-height:44px;min-width:28px}
/* One filled primary action, bordered secondary actions and arrows for links. */
.button.ui-action,.text-link.ui-action,.p-brand-more.ui-action,.n-source.ui-action,.bt-case-download.ui-action,.focus-card-link.ui-action{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:48px;padding:12px 18px;border-radius:3px;font-size:16px;line-height:1.5;font-weight:600;text-align:left;text-decoration:none}
.text-link.ui-action,.p-brand-more.ui-action,.n-source.ui-action,.bt-case-download.ui-action,.focus-card-link.ui-action{border:1px solid #afbbc4;background:#fff;color:#14283c;box-shadow:0 1px 2px #14283c06}
.text-link.ui-action:hover,.p-brand-more.ui-action:hover,.n-source.ui-action:hover,.bt-case-download.ui-action:hover,.focus-card-link.ui-action:hover{border-color:#8c633c;background:#f4ede5;color:#14283c}
.ui-action:hover>.action-arrow,.mega-links>a:hover>.action-arrow{transform:translateX(3px)}
.button.ui-action{border-width:1px;box-shadow:0 2px 4px #1021350d}
.button.orange.ui-action{background:#edbd91;border-color:#edbd91;color:#102135}
.button.orange.ui-action:hover{background:#f6cda7;border-color:#f6cda7}
.r-hero .text-link.ui-action,.focus-detail .text-link.ui-action,.e-hero .text-link.ui-action{background:#1426397a;color:white;border-color:#b4c2ce}
.r-hero .text-link.ui-action:hover,.focus-detail .text-link.ui-action:hover,.e-hero .text-link.ui-action:hover{background:#294056;border-color:white}
.p-brand-more.ui-action{width:100%;margin-top:20px}
.e-brand>.text-link.ui-action{margin-top:auto}
.card-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;color:#172d40;font-weight:600}
.card-cta>b,.line-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #bdc8d0;border-radius:50%;flex:0 0 36px}
.related-card,.service-card,.gmg-family-card{transition:background .18s,border-color .18s}
.related-card:hover,.service-card:hover,.gmg-family-card:hover{background:#f2e9df;border-color:#c3a583}
.related-card .card-cta,.service-card .card-cta{padding-top:14px}
/* Keep in-page navigation in document flow; the mobile main-menu rules must not overlay the hero. */
.page-guide{position:relative;inset:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 7%;border-bottom:1px solid #d9e0e6;background:#f5f6f7}
.page-guide>span{font-size:14px;font-weight:600;color:#536575;white-space:nowrap}
.page-guide>div{display:flex;flex-wrap:wrap;gap:8px 14px}
.page-guide a{display:flex;align-items:center;min-height:44px;padding:10px 14px;background:#fff;border:1px solid #cbd4dc;border-radius:3px;font-size:14px;line-height:1.5;color:#24384b}
.page-guide a:hover{border-color:#b67e4b;background:#f3ebe3;color:#14283c}
main [id]{scroll-margin-top:18px}
.u-home-portfolio{background:#f7f5f1}
.u-home-portfolio .section-head{align-items:start}
.u-home-portfolio .section-head>div{max-width:420px}
.u-home-portfolio .section-head p{font-size:18px;line-height:1.8;color:#526575;margin-bottom:22px}
.u-home-portfolio h2{font-size:clamp(32px,3.4vw,52px)}
.u-home-portfolio h2 em,.u-home-approach h2 em{color:#697e8d}
.u-brand-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.u-brand-card{min-width:0;background:#fff;border:1px solid #dce2e6;display:flex;flex-direction:column}
.u-brand-photo{aspect-ratio:4/3;overflow:hidden;background:#e8edef}
.u-brand-photo>img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.u-brand-card.theme-gmg .u-brand-photo>img{object-position:50% center}
.u-brand-card.theme-avocor .u-brand-photo>img{object-position:61% center}
.u-brand-card.theme-humly .u-brand-photo>img{object-position:65% center}
.u-brand-card.theme-athena .u-brand-photo>img{object-fit:cover;object-position:40% center;padding:0}
.u-brand-card:hover .u-brand-photo>img{transform:scale(1.035)}
.u-brand-copy{padding:26px 22px;display:flex;flex-direction:column;align-items:start;flex:1}
.u-brand-copy .focus-logo{display:flex;align-items:center;justify-content:center;align-self:center;width:100%;max-width:none;height:76px;margin-bottom:24px}
.u-brand-copy .focus-logo img{display:block;width:200px;height:64px;max-width:100%;max-height:64px;object-fit:contain;object-position:center;flex-shrink:1}
.u-brand-copy h3{font-size:22px;line-height:1.3;letter-spacing:-.035em;margin-bottom:15px}
.u-brand-copy p{font-size:16px;line-height:1.75;color:#536575;margin-bottom:25px}
.u-brand-copy .ui-action{margin-top:auto;width:100%;font-size:15px;gap:10px;padding:11px 12px}
.u-home-approach{display:grid;grid-template-columns:1fr 1.1fr;gap:9%}
.u-home-approach h2{font-size:clamp(34px,3.8vw,56px)}
.u-home-approach p{font-size:18px;line-height:1.8;color:#536575;margin-bottom:20px}
.u-home-approach p.u-lead{font-size:21px;color:#25394b;line-height:1.65}
.u-disciplines{display:flex;flex-wrap:wrap;gap:10px 20px;padding:22px 0 25px;border-top:1px solid #dce2e6;font-size:15px;font-weight:600;color:#375063}
.u-actions{display:flex;flex-wrap:wrap;gap:12px}
.u-community-note{padding:32px 7%;display:grid;grid-template-columns:160px 1fr auto;gap:40px;align-items:center;border-block:1px solid #dce2e6;background:#f4f5f3}
.u-community-note img{max-width:150px;height:auto;mix-blend-mode:multiply}
.u-community-note p{font-size:16px;line-height:1.75;max-width:640px;color:#526373}
.u-community-note .ui-action{font-size:15px}
.u-ecosystem-bridge{display:flex;align-items:center;justify-content:space-between;gap:50px;background:#eef2f4}
.u-ecosystem-bridge h2{font-size:42px;margin-bottom:20px}
.u-ecosystem-bridge p{font-size:18px;line-height:1.8;max-width:640px;color:#526373}
.u-ecosystem-bridge .button{flex-shrink:0}
.u-services .service-card{background:#f7f8fa;min-height:350px}
.u-services .service-card:hover{background:#f2e9df}
.u-services .service-card p{font-size:17px;line-height:1.75}
@media(min-width:901px) and (max-width:1190px){
 .site-header{gap:15px;padding:0 3%}.main-nav{gap:0;font-size:14px}
 .main-nav>.nav-direct,.nav-group>summary{padding:12px 9px;gap:6px}
 .site-header .brand img{width:105px}.site-header .header-end{gap:12px}
 .site-header .button.small{padding:10px 12px;font-size:14px;gap:8px}
 .site-header .button.small .action-arrow{display:none}
}
@media(max-width:1150px){
 .u-brand-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .u-brand-copy p{font-size:17px}.u-brand-copy .ui-action{font-size:16px}
 .u-community-note{grid-template-columns:145px 1fr;gap:20px 30px}.u-community-note .ui-action{grid-column:2;justify-self:start}
}
@media(max-width:900px){
 .site-header{gap:18px}.site-header .header-end{gap:18px}
 .main-nav{padding:18px 6% 28px;align-items:stretch}
 .main-nav>.nav-direct,.nav-group>summary{border-radius:0;min-height:58px;padding:17px 0;border-top:1px solid #dce2e6;font-size:17px}
 .nav-group>summary{justify-content:space-between}
 .nav-group.nav-current>summary:after,.main-nav>.nav-direct.active:after{left:0;right:auto;width:30px;bottom:7px}
 .nav-group[open]>summary{background:none}
 .mega-menu{padding:2px 0 20px;display:block;border:0;box-shadow:none;max-height:none}
 .mega-links{padding-left:0;gap:10px;grid-template-columns:1fr 1fr}
 .mega-links>a{min-height:90px;padding:15px}
 .main-nav>.mobile-contact{display:flex;align-items:center;justify-content:center;margin-top:12px;background:#14283c;color:#fff;border:0;min-height:48px;padding:12px 18px;font-size:16px}
 .page-guide{align-items:start;flex-direction:column;gap:10px;padding:18px 6%}
 .page-guide>div{gap:8px;width:100%}
 .u-home-portfolio .section-head{display:block}
 .u-home-portfolio .section-head>div{max-width:none;margin-top:24px}
 .u-home-approach{grid-template-columns:1fr;gap:35px}
 .u-ecosystem-bridge{flex-direction:column;align-items:start;gap:28px}
}
@media(max-width:560px){
 .site-header .header-end{gap:12px}.site-header .button.small{display:none}
 .mega-links{grid-template-columns:1fr}.mega-links>a{min-height:85px}
 .u-brand-grid{grid-template-columns:1fr;gap:26px}.u-brand-copy{padding:25px}
 .u-brand-photo{aspect-ratio:16/10}.u-brand-copy .focus-logo{margin-bottom:20px}
 .u-brand-copy h3{font-size:24px}
 .u-home-portfolio h2,.u-home-approach h2,.u-ecosystem-bridge h2{font-size:34px}
 .u-home-approach p.u-lead{font-size:20px}
 .u-community-note{grid-template-columns:1fr;padding:30px 6%;gap:20px}
 .u-community-note .ui-action{grid-column:1}.u-community-note img{max-width:130px}
 .u-actions{flex-direction:column;align-items:stretch}
 .page-guide a{padding:9px 12px}.page-guide>div{gap:7px}
 .u-services .service-card{min-height:0}
 .ui-action{max-width:100%}
}
@media(prefers-reduced-motion:reduce){.nav-chevron,.action-arrow,.u-brand-photo>img{transition:none}.ui-action:hover>.action-arrow,.mega-links>a:hover>.action-arrow,.u-brand-card:hover .u-brand-photo>img{transform:none}}
