/* ECC v13: isolated branding; loaded after existing styles. */
.site-header .header-container { flex-wrap:nowrap; gap:16px; min-height:100px; }
.site-header .site-logo { position:relative; flex:0 0 220px; width:220px; height:100px; display:block; }
.site-header .site-logo img { width:100px; max-width:none; height:auto; display:block; }
.site-header .ecc-practice-name { position:absolute; left:110px; top:50%; transform:translateY(-50%); display:flex; flex-direction:column; color:#275D60; font:600 16px/1.2 Arial,Helvetica,sans-serif; white-space:nowrap; }
@media(min-width:768px) {
 .site-header .site-logo { flex-basis:435px; width:435px; }
 .site-header .ecc-practice-name { flex-direction:row; gap:.28em; font-size:18px; }
}
/* Maintain the mobile navigation model until both branding and links fit. */
@media(max-width:899px) {
 .site-header .menu-toggle { display:flex; }
 .site-header .primary-navigation { position:absolute; top:100%; left:0; width:100%; background:#fff; border-bottom:1px solid #D8E0E0; max-height:calc(100dvh - 100px); overflow-y:auto; }
 .js .site-header .primary-navigation { display:none; }
 .js .site-header .primary-navigation.is-open { display:block; }
 .site-header .nav-list { flex-direction:column; align-items:stretch; gap:4px; padding:16px; }
 .site-header .nav-list a { padding:12px 16px; white-space:normal; }
 .site-header .nav-list .nav-cta { margin-left:0; }
 .site-header .nav-submenu { position:static; min-width:0; max-width:none; max-height:none; padding:0 0 8px 16px; border:0; box-shadow:none; }
 .site-header .nav-submenu-toggle { width:42px; height:42px; margin-left:0; }
}
/* Explicit toggle state also allows Escape and a second click to close. */
.site-header .nav-services > .nav-submenu { display:none; }
.site-header .nav-services.is-open > .nav-submenu { display:block; }
/* Desktop navigation is always a single horizontal row from 900px. */
@media(min-width:900px) {
 .site-header .header-container { width:calc(100% - 32px); max-width:1500px; }
 .site-header .menu-toggle { display:none; }
 .site-header .primary-navigation,
 .js .site-header .primary-navigation,
 .js .site-header .primary-navigation.is-open {
  display:block; position:static; width:auto; max-height:none;
  overflow:visible; border:0; flex:0 0 auto; margin-left:auto;
 }
 .site-header .nav-list { display:flex; flex-direction:row; flex-wrap:nowrap; align-items:center; gap:2px; padding:0; }
 .site-header .nav-list a { font-size:14px; padding:10px 8px; white-space:nowrap; }
 .site-header .nav-list .nav-cta { padding:10px 16px; margin-left:4px; }
 .site-header .nav-submenu { position:absolute; top:100%; left:0; min-width:290px; max-width:300px; padding:8px; background:#fff; border:1px solid #D8E0E0; box-shadow:0 12px 28px rgba(25,71,74,.12); }
 .site-header .nav-submenu a { white-space:normal; }
}
/* Intermediate desktop widths: name below the links, logo at original size.
   The absolute name never determines the navigation's baseline or height. */
@media(min-width:900px) and (max-width:1279px) {
 .site-header .site-logo { flex-basis:100px; width:100px; }
 .site-header .primary-navigation { align-self:center; margin-top:0; margin-bottom:0; }
}
@media(min-width:1280px) {
 .site-header .site-logo { flex-basis:435px; width:435px; }
 .site-header .primary-navigation { align-self:center; margin-bottom:0; }
}
@media(min-width:1500px) {
 .site-header .nav-list a { font-size:16px; padding:10px 12px; }
}

/* Bottom-align the name independently of the logo and navigation. */
.site-header .header-container .site-logo .ecc-practice-name {
    top: auto !important;
    bottom: 8px !important;
    transform: none !important;
    margin: 0 !important;
}
