/* Owner-requested language links occupy the existing header whitespace. */
.header > .container { position: relative; }
.abc-languages { position: absolute; top: 0; right: 15px; display: flex; gap: 9px; font-size: 12px; line-height: 18px; z-index: 3; }
.abc-languages a { color: #333; text-decoration: none; }
.abc-languages a[aria-current] { font-weight: bold; }
.abc-languages a:focus-visible { outline: 2px solid #cc3358; outline-offset: 3px; }
.abc-languages--mobile, .abc-language-flag { display: none; }
@media (max-width: 830px) {
    .abc-languages--desktop { display: none; }
    .header .menu { padding-top: 15px; overflow-y: auto; }
    .header .menu > div.visible-xs { display: block !important; }
    .header .menu .nminfo a { white-space: nowrap; }
    .header { overflow: visible; }
    .header .phone { padding-right: 110px; }
    .abc-languages--mobile { position: absolute; display: block; top: 50%; right: 65px; transform: translateY(-50%); padding: 0; font-size: 15px; line-height: 16px; z-index: 100; }
    .abc-languages--mobile summary { display: flex; align-items: center; justify-content: center; gap: 7px; min-width: 44px; min-height: 44px; font-weight: 600; color: #151515; cursor: pointer; list-style: none; }
    .abc-languages--mobile summary::-webkit-details-marker { display: none; }
    .abc-languages--mobile summary::after { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); }
    .abc-languages--mobile[open] summary::after { transform: translateY(2px) rotate(225deg); }
    .abc-languages--mobile nav { position: absolute; top: 100%; right: 0; min-width: 90px; padding: 4px; background: #fff; border: 1px solid #e5e5e5; border-radius: 8px; box-shadow: 0 4px 16px #0002; }
    .abc-languages--mobile a { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 12px; color: #151515; font-weight: 600; border-radius: 4px; }
    .abc-languages--mobile a[aria-current] { background: #f7edf0; color: #cc3358; }
    .abc-languages--mobile a:hover { background: #f7edf0; }
    .abc-languages--mobile summary:focus-visible { outline: 2px solid #cc3358; outline-offset: 1px; }

}

@media (min-width: 831px) and (max-width: 1199px) {
    .header .logo, .header .phone { flex-shrink: 0; }
    .header .phone { font-size: 17px; white-space: nowrap; }
    .header .menu p { margin-right: 12px; font-size: 12px; }
}

/* Desktop reference: language choice sits between navigation and contact numbers. */
@media (min-width: 831px) {
    .abc-languages--desktop { font-size: 15px; line-height: 20px; align-items: center; gap: 8px; white-space: nowrap; }
    .abc-languages--desktop a, .abc-languages--desktop a[aria-current] { font-weight: 400; }
    .abc-languages--desktop a { color: #808080; }
    .abc-languages--desktop a[aria-current] { color: #151515; }
    .abc-languages--desktop > span { color: #acacac; }
    .header .menu p { font-size: 15px; white-space: nowrap; }
    .header .menu > p:last-child { margin-right: 0; }
}
@media (min-width: 831px) and (max-width: 991px) {
    .header .menu { display: grid; grid-template-columns: repeat(3, max-content); gap: 8px 12px; justify-content: center; align-content: center; }
    .header .menu p { margin-right: 0; }
}
@media (min-width: 1200px) {
    .header > .container { align-items: center; gap: 24px; }
    .header .logo { order: 0; flex: 0 0 87px; }
    .header .menu { order: 1; flex: 1; justify-content: center; gap: clamp(12px, 1.3vw, 24px); }
    .header .menu p { margin-right: 0; }
    .abc-languages--desktop { order: 2; position: static; flex: none; }
    .header .phone { order: 3; flex-shrink: 0; }
}
@media (max-width: 360px) {
    .header .phone img { display: none; }
    .header .phonehome a { font-size: 14px; white-space: nowrap; }
}

/* Compact desktop panels: retain the desktop reference without stacked language links. */
@media (min-width: 831px) and (max-width: 1199px) {
    .header > .container { display: grid; grid-template-columns: 70px minmax(0, 1fr) max-content max-content; align-items: center; gap: 14px; }
    .header .logo { grid-column: 1; grid-row: 1; width: 70px; height: 70px; }
    .header .logo img { width: 70px; height: 70px; }
    .header .menu { grid-column: 2; grid-row: 1; display: grid; grid-template-columns: repeat(3, max-content); gap: 8px 12px; justify-content: center; align-content: center; }
    .header .menu p { margin: 0; }
    .abc-languages--desktop { grid-column: 3; grid-row: 1; position: static; }
    .header .phone { grid-column: 4; grid-row: 1; font-size: 17px; }
}
@media (min-width: 831px) and (max-width: 991px) {
    .header > .container { width: auto; max-width: 100%; gap: 12px; }
}
@media (max-width: 830px) {
    .header:has(.menu.mobmenu) .abc-languages--mobile summary { color: #fff; }
}
