@font-face {
    font-family: "Source Sans 3";
    src: url("../Fonts/Source/SourceSans3.ttf") format("truetype");
    font-weight: 200 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Source Serif 4";
    src: url("../Fonts/Source/SourceSerif4.ttf") format("truetype");
    font-weight: 200 900;
    font-style: normal;
    font-display: swap;
}

/* Shared design tokens; styling is confined to the new components. */
.fef-site-header, .fef-home, .fef-block, .fef-hero-region {
    --fef-blue: #123f5e;
    --fef-red: #a30f1e;
    --fef-ink: #1f2529;
    --fef-line: #dde4eb;
    --fef-light: #f5f7f8;
    --fef-sans: "Source Sans 3", "Segoe UI", sans-serif;
    --fef-serif: "Source Serif 4", Georgia, serif;
}
.fef-shell { box-sizing: border-box; width: 100%; max-width: 1180px; margin-inline: auto; padding-inline: 24px; }
.fef-site-header, .fef-site-header * { box-sizing: border-box; }
.fef-site-header {
    container: fef-header / inline-size;
    position: relative;
    z-index: 100;
    width: 100%;
    background: #fff;
    border-bottom: 1px solid var(--fef-line);
    font-family: var(--fef-sans);
    font-size: 1rem;
    line-height: 1.35;
    color: var(--fef-blue);
    text-align: left;
}
.fef-site-header ul { list-style: none; margin: 0; padding: 0; }
.fef-site-header a { color: var(--fef-blue); text-decoration: none; overflow-wrap: anywhere; }
.fef-site-header a:hover { color: var(--fef-red); }
.fef-site-header button { font: inherit; }
.fef-site-header :is(a, button):focus-visible { outline: 2px solid var(--fef-blue); outline-offset: 3px; }
.fef-servicebar { background: var(--fef-blue); color: #fff; font-size: 0.875rem; }
.fef-servicebar-inner { display: flex; justify-content: space-between; align-items: center; gap: 8px 24px; padding-block: 8px; flex-wrap: wrap; }
.fef-servicebar ul { display: flex; gap: 8px 20px; flex-wrap: wrap; }
.fef-servicebar a, .fef-servicebar a:hover { color: #fff; }
.fef-servicebar a:hover { text-decoration: underline; }
.fef-servicebar a:focus-visible { outline-color: #fff; }
.fef-languages { margin-left: auto; font-weight: 600; }
.fef-header-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 20px; min-height: 96px; padding-block: 12px; }
.fef-brand { display: block; width: calc(60px * 626 / 271); max-width: 100%; }
.fef-brand img { display: block; width: 100%; height: auto; }
.fef-site-header .fef-header-menu { display: block; min-width: 0; }
.fef-menu-list { display: flex; flex-wrap: nowrap; justify-content: center; align-items: center; gap: 8px 16px; }
.fef-menu-item { position: relative; display: flex; flex: 0 0 auto; align-items: center; max-width: 100%; }
.fef-menu-link { white-space: nowrap; overflow-wrap: normal; display: block; padding-block: 8px 5px; border-bottom: 3px solid transparent; font-weight: 600; }
.fef-menu-link.is-active { border-bottom-color: var(--fef-red); }
.fef-submenu-toggle { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 28px; min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--fef-blue); }
.fef-site-header .fef-submenu { width: min(320px, calc(100vw - 48px)); max-height: 65vh; overflow-y: auto; padding: 8px; margin-top: 3px; border: 1px solid var(--fef-line); border-radius: 4px; background: #fff; box-shadow: 0 6px 16px #123f5e1a; }
.fef-menu-item:last-child .fef-submenu { right: 0; left: auto; }
.fef-submenu-list .fef-submenu-list { padding-left: 14px; }
.fef-site-header .dropdown-item { padding: 10px 12px; white-space: normal; font-size: 1rem; line-height: 1.35; }
.fef-site-header .dropdown-item:is(:hover, :focus), .fef-site-header .dropdown-item.active { background: var(--fef-light); color: var(--fef-red); }
.fef-contact { display: flex; align-items: center; gap: 14px; min-width: 0; }
.fef-contact > div { line-height: 1.15; }
.fef-contact span { font-size: 0.875rem; color: var(--fef-ink); }
.fef-contact-phone { display: block; font-size: 1.125rem; font-weight: 700; white-space: nowrap; }
.fef-site-header .fef-header-request { display: inline-flex; align-items: center; min-height: 44px; padding: 12px 16px; border-radius: 6px; background: var(--fef-red); color: #fff; font-weight: 600; text-align: center; }
.fef-site-header .fef-header-request:hover { background: #850c18; color: #fff; }
.fef-header-mobile-actions { display: none; }
.fef-site-header :is(.fef-menu-toggle, .fef-submenu-toggle)[hidden] { display: none; }
/* Only a mouse-only desktop hides toggles; touch/hybrid and keyboard keep them. */
@container fef-header (width >= 75em) {
    .fef-mouse-navigation .fef-submenu-toggle { display: none; }
}

@container fef-header (width < 75em) {
    .fef-service-menu { font-size: 0.8125rem; }
    .fef-servicebar ul { gap: 8px 14px; }
    .fef-header-row { grid-template-columns: minmax(0, 1fr) auto; min-height: 64px; gap: 0 8px; padding-block: 8px; }
    .fef-header-mobile-actions { display: flex; align-items: center; gap: 4px; }
    .fef-site-header .fef-call, .fef-menu-toggle { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; padding: 0; background: none; border: 0; color: var(--fef-blue); }
    .fef-menu-toggle { flex-direction: column; gap: 5px; }
    .fef-menu-toggle span { display: block; width: 24px; height: 2.5px; background: currentColor; border-radius: 2px; }
    .fef-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
    .fef-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .fef-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
    .fef-site-header .fef-header-menu { grid-column: 1 / -1; width: 100%; }
    .fef-site-header .fef-header-menu.collapse:not(.show) { display: none; }
    .fef-menu-list { display: block; padding-top: 8px; }
    .fef-menu-item { flex-wrap: wrap; border-bottom: 1px solid var(--fef-line); }
    .fef-menu-link { white-space: normal; overflow-wrap: anywhere; flex: 1 1 0; min-width: 0; font-size: 1.125rem; padding-block: 14px; border: 0; }
    .fef-menu-link.is-active { color: var(--fef-red); }
    .fef-submenu-toggle { flex-basis: 44px; }
    .fef-site-header .fef-submenu { position: static; width: 100%; max-height: none; margin: 0 0 8px; box-shadow: none; border: 0; padding: 0 0 0 12px; }
    .fef-contact { display: none; }
}
@media (max-width: 575.98px) {
    .fef-shell { padding-inline: 16px; }
    .fef-servicebar-inner { gap: 8px; }
    .fef-service-menu { width: 100%; }
}
/* Logo size follows the header artwork; navigation keeps its existing breakpoints. */
@media (max-width: 860px) {
    .fef-brand { width: calc(44px * 626 / 271); }
}
/* Pointer focus is suppressed only on our two menu controls. */
.fef-site-header :is(.fef-menu-toggle, .fef-submenu-toggle):focus:not(:focus-visible) { outline: none; box-shadow: none; }
@media (prefers-reduced-motion: reduce) {
    .fef-site-header .collapsing { transition: none; }
}
