/* Stable client-branding shell.
   Platform themes may style the surrounding header, but logo sizing and
   alignment remain client branding controls and must not be overridden. */

.site-header .header-inner {
  position: relative;
}

.site-header .brand {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}

.site-header .brand-logo {
  display: block;
  height: auto !important;
  object-fit: contain;
}

.site-header.logo-size-small .brand-logo {
  width: 120px !important;
  max-width: min(120px, 46vw) !important;
  max-height: 48px !important;
}

.site-header.logo-size-medium .brand-logo {
  width: 164px !important;
  max-width: min(164px, 52vw) !important;
  max-height: 64px !important;
}

.site-header.logo-size-large .brand-logo {
  width: 230px !important;
  max-width: min(230px, 64vw) !important;
  max-height: 78px !important;
}

.site-header.logo-position-left .brand {
  margin-right: auto;
}

.site-header.logo-position-middle .brand {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.site-header.logo-position-right .nav {
  order: 1;
  margin-right: auto;
}

.site-header.logo-position-right .brand {
  order: 2;
  margin-left: auto;
}

@media (max-width: 700px) {
  .site-header.logo-size-small .brand-logo {
    width: 110px !important;
    max-width: min(110px, 50vw) !important;
    max-height: 42px !important;
  }

  .site-header.logo-size-medium .brand-logo {
    width: 178px !important;
    max-width: min(178px, 62vw) !important;
    max-height: 62px !important;
  }

  .site-header.logo-size-large .brand-logo {
    width: 230px !important;
    max-width: min(230px, 78vw) !important;
    max-height: 76px !important;
  }

  .site-header.logo-position-middle .brand {
    position: static;
    transform: none;
    margin: 0 auto;
  }

  .site-header.logo-position-right .brand {
    margin-left: auto;
  }
}
