/* InnoCMS optional top contact bar, scoped to avoid global header changes. */
:root { --cms-topbar-height: 0px; }
body:has(.cms-top-contact) { --cms-topbar-height: 37px; }
.cms-top-contact { position: absolute; z-index: 34; inset: 0 0 auto 0; height: 37px; color: var(--cms-top-text,#fff); background: var(--cms-top-bg,#172532); font-family: inherit; font-size: 12px; font-weight: 600; line-height: 1.3; }
.cms-top-contact-inner { margin: 0 auto; padding: 0 clamp(20px,5vw,76px); max-width: 1920px; width: 100%; height:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.cms-top-contact-left,.cms-top-contact-right { display:flex; align-items:center; gap:18px; min-width:0; }
.cms-top-company { font-weight:800; white-space:nowrap; }
.cms-top-address { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; opacity:.82; max-width: min(40vw,600px); }
.cms-top-contact-right a { display:inline-flex; align-items:center; gap:6px; color:inherit!important; text-decoration:none; white-space:nowrap; opacity:.94; }
.cms-top-contact-right a:hover { opacity:1; text-decoration:underline; text-underline-offset:3px; }
.cms-top-contact-right svg { width:13px; height:13px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
body:has(.cms-top-contact) .site-header { top:var(--cms-topbar-height)!important; }
body:has(.cms-top-contact) .hero-content { padding-top: var(--cms-topbar-height); }
body:has(.cms-top-contact) .subpage-hero { padding-top:calc(104px + var(--cms-topbar-height)); }
@media (max-width: 900px) { .cms-top-contact-inner { gap:12px; } .cms-top-contact-left { min-width:0; } .cms-top-address { max-width:32vw; } .cms-top-contact-right { gap:12px; } }
@media (max-width: 650px) {
  body:has(.cms-top-contact) { --cms-topbar-height:30px; }
  .cms-top-contact { height:30px; font-size:11px; }
  .cms-top-contact-inner { padding:0 15px; gap:8px; }
  .cms-top-address { display:none; }
  .cms-top-contact-right { gap:12px; }
  .cms-top-contact-right svg { width:15px; height:15px; }
  .cms-top-contact-right a { min-width:22px; justify-content:center; }
  .cms-top-contact-right a span { display:none; }
}

/* v1.1 — use the same horizontal gutters as the website navigation */
.cms-top-contact-inner { max-width: none; padding-inline: clamp(20px, 5vw, 76px); }
.cms-top-contact-left { flex: 1 1 auto; }
.cms-top-contact-right { flex: 0 0 auto; }
.cms-top-contact-left .cms-top-address {
  display: inline-flex; align-items: center; gap: 7px; min-width: 0;
  max-width: min(42vw, 640px); color: inherit; text-decoration: none;
}
.cms-top-address span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cms-top-address svg { width: 14px; height: 14px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cms-top-address:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 650px) {
  .cms-top-contact-inner { padding-inline: clamp(15px, 5vw, 24px); justify-content: flex-end; }
  .cms-top-contact-left { flex: 0 0 auto; min-width: 0; }
  .cms-top-company { display: none; }
  .cms-top-contact-left .cms-top-address { display: inline-flex; max-width: none; opacity: .94; }
  .cms-top-address span { display: none; }
  .cms-top-address svg,
  .cms-top-contact-right svg { width: 16px; height: 16px; }
  .cms-top-address,
  .cms-top-contact-right a { min-width: 30px; min-height: 30px; justify-content: center; }
  .cms-top-contact-right { gap: 8px; }
  .cms-top-contact { font-size: 11px; }
}

/* v1.2 — exact same 1180px content rails as the site logo/navigation.
   The header uses max(22px, (100% - var(--content-max)) / 2). */
.cms-top-contact-inner {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  padding-left: max(22px, calc((100% - var(--content-max, 1180px)) / 2)) !important;
  padding-right: max(22px, calc((100% - var(--content-max, 1180px)) / 2)) !important;
}
@media (max-width: 720px) {
  /* Same mobile gutter as .site-header and .brand. */
  .cms-top-contact-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* v1.3 — mobile: brand on the left, address/phone/mail icon group on the right. */
@media (max-width: 650px) {
  .cms-top-contact-inner { justify-content: space-between !important; gap: 8px; }
  .cms-top-contact-left { flex: 1 1 auto; min-width: 0; gap: 0; }
  .cms-top-company {
    display: block !important;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 11px;
    font-weight: 800;
  }
  .cms-top-contact-left .cms-top-address { margin-left: auto; flex: none; }
  .cms-top-contact-right { flex: 0 0 auto; }
}
