:root {
    --bpb-max-width: 1280px;
    --bpb-gutter: clamp(1rem, 3vw, 2rem);
    --bpb-border: #d8dde2;
    --bpb-text: #20252a;
    --bpb-muted: #626b74;
    --bpb-red: #e30613;
    --bpb-red-dark: #b9040f;
    --bpb-blue: #154f7f;
    --bpb-background: #f5f6f7;
    --bpb-focus: #005fcc;
    --bpb-shadow: 0 8px 28px rgba(25, 43, 58, .1);
}

*, *::before, *::after { box-sizing: border-box; }
html { max-width: 100%; overflow-x: clip; scroll-behavior: smooth; }
body { margin: 0; min-width: 0; max-width: 100%; overflow-x: clip; color: var(--bpb-text); background: var(--bpb-background); font-family: Arial, Helvetica, sans-serif; line-height: 1.5; }
body.site-menu-open { overflow: hidden; }
body * { min-width: 0; }
a { color: inherit; overflow-wrap: anywhere; }
img, svg, video, iframe { max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
:focus-visible { outline: 3px solid var(--bpb-focus); outline-offset: 3px; }
.site-shell { width: min(calc(100% - (2 * var(--bpb-gutter))), var(--bpb-max-width)); margin-inline: auto; }
.skip-link { position: fixed; left: 1rem; top: -10rem; z-index: 100000; padding: .75rem 1rem; background: #fff; border: 2px solid currentColor; }
.skip-link:focus { top: 1rem; }

.site-header { position: relative; z-index: 1000; background: #fff; border-bottom: 1px solid var(--bpb-border); }
.site-header__bar { min-height: 76px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 1rem 1.5rem; }
.site-brand-group { display: flex; align-items: center; gap: 1rem; white-space: nowrap; }
.site-brand { flex: 0 0 auto; }
.site-brand a { display: inline-flex; align-items: center; }
.site-brand img { display: block; width: clamp(104px, 9vw, 126px); }
.site-brand-group__descriptor { padding-left: 1rem; border-left: 1px solid var(--bpb-border); color: var(--bpb-muted); font-size: .88rem; font-weight: 700; letter-spacing: .01em; }

.site-navigation { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.site-navigation ul { margin: 0; padding: 0; list-style: none; }
.site-navigation__primary { display: flex; align-items: stretch; gap: .2rem; }
.site-navigation__primary a,
.site-navigation__utilities > a,
.site-account-menu > summary { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem .72rem; text-decoration: none; color: #39434c; font-size: .9rem; font-weight: 700; }
.site-navigation__primary a { position: relative; }
.site-navigation__primary a::after { content: ''; position: absolute; left: .72rem; right: .72rem; bottom: 0; height: 2px; background: transparent; }
.site-navigation__primary a:hover,
.site-navigation__primary a:focus-visible,
.site-navigation__primary a.is-current { color: var(--bpb-red); }
.site-navigation__primary a.is-current::after { background: var(--bpb-red); }
.site-navigation__utilities { display: flex; align-items: center; justify-content: flex-end; gap: .15rem; }
.site-navigation__utilities > a:hover,
.site-navigation__utilities > a:focus-visible { color: var(--bpb-red); }
.site-navigation__external span { margin-left: .25rem; font-size: .78em; }

.site-account-menu { position: relative; }
.site-account-menu > summary { gap: .45rem; list-style: none; cursor: pointer; }
.site-account-menu > summary::-webkit-details-marker { display: none; }
.site-account-menu__chevron { width: .48rem; height: .48rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .16s ease; }
.site-account-menu[open] > summary { color: var(--bpb-red); }
.site-account-menu[open] .site-account-menu__chevron { transform: translateY(2px) rotate(225deg); }
.site-account-menu__panel { position: absolute; right: 0; top: calc(100% + .45rem); z-index: 30; width: max-content; min-width: 210px; padding: .45rem; background: #fff; border: 1px solid var(--bpb-border); box-shadow: var(--bpb-shadow); }
.site-account-menu__panel a,
.site-account-menu__user { display: block; padding: .65rem .75rem; }
.site-account-menu__user { color: var(--bpb-muted); font-size: .78rem; border-bottom: 1px solid #edf0f2; }
.site-account-menu__panel a { text-decoration: none; font-weight: 700; font-size: .88rem; }
.site-account-menu__panel a:hover,
.site-account-menu__panel a:focus-visible { color: var(--bpb-red); background: #f7f8f9; }

.site-header__languages { justify-self: end; }
.language-switcher ul { display: flex; align-items: center; gap: .1rem; margin: 0; padding: 0; list-style: none; }
.language-switcher a { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 34px; min-height: 40px; padding: .2rem .35rem; color: var(--bpb-muted); font-size: .76rem; font-weight: 800; line-height: 1; text-decoration: none; }
.language-switcher a::after { content: ''; position: absolute; left: .35rem; right: .35rem; bottom: 5px; height: 2px; background: transparent; }
.language-switcher a:hover,
.language-switcher a:focus-visible,
.language-switcher a.is-current { color: var(--bpb-red); }
.language-switcher a.is-current::after { background: var(--bpb-red); }

.site-menu-toggle { display: none; align-items: center; justify-content: center; gap: .55rem; min-width: 44px; min-height: 44px; padding: .45rem .55rem; border: 0; background: transparent; color: var(--bpb-blue); font-weight: 700; cursor: pointer; }
.site-menu-toggle__icon { display: grid; gap: 4px; width: 22px; }
.site-menu-toggle__icon span { display: block; height: 2px; background: currentColor; transition: transform .18s ease, opacity .18s ease; }
.site-menu-toggle[aria-expanded="true"] .site-menu-toggle__icon span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.site-menu-toggle[aria-expanded="true"] .site-menu-toggle__icon span:nth-child(2) { opacity: 0; }
.site-menu-toggle[aria-expanded="true"] .site-menu-toggle__icon span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.site-main { min-height: 55vh; padding-block: clamp(1.25rem, 3vw, 2.5rem) clamp(2.5rem, 5vw, 4rem); }
.site-main > *, .entry-content > * { max-width: 100%; }
.portal-home { width: min(calc(100% - (2 * var(--bpb-gutter))), var(--bpb-max-width)); }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .35rem .5rem; align-items: center; margin-bottom: 1rem; color: var(--bpb-muted); font-size: .82rem; }
.breadcrumb a { text-decoration: none; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .6rem .9rem; border: 1px solid var(--bpb-red); color: var(--bpb-red); background: #fff; text-decoration: none; font-weight: 700; font-size: .85rem; text-align: center; }
.button--primary { color: #fff; background: var(--bpb-red); }
.system-message { padding: 1.5rem; border: 1px solid var(--bpb-border); background: #fff; }

.site-footer { margin-top: 0; background: #fff; color: #4d555d; border-top: 1px solid var(--bpb-border); }
.site-footer__grid { display: grid; grid-template-columns: 1fr 1.25fr .8fr; gap: clamp(1.5rem, 4vw, 3.5rem); padding-block: clamp(1.7rem, 4vw, 2.8rem); }
.site-footer h2 { margin: 0 0 .65rem; color: #29323a; font-size: .92rem; }
.site-footer p { margin: .35rem 0; font-size: .86rem; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li { margin: .18rem 0; }
.site-footer a { display: inline-flex; min-height: 32px; align-items: center; text-decoration: none; font-size: .86rem; }
.site-footer a:hover, .site-footer a:focus-visible { color: var(--bpb-red); }
.site-footer__legal { padding: .72rem var(--bpb-gutter); color: #fff; background: var(--bpb-red); text-align: center; font-size: .76rem; }

@media (max-width: 1120px) {
    .site-brand-group__descriptor { display: none; }
    .site-header__bar { gap: .75rem 1rem; }
    .site-navigation { gap: .75rem; }
    .site-navigation__primary a,
    .site-navigation__utilities > a,
    .site-account-menu > summary { padding-inline: .5rem; }
}

@media (max-width: 920px) {
    .site-header__bar { min-height: 64px; grid-template-columns: minmax(0, 1fr) auto auto; gap: .4rem; }
    .site-brand img { width: 100px; }
    .site-header__languages { grid-column: 2; }
    .site-menu-toggle { display: inline-flex; grid-column: 3; }
    .site-menu-toggle__label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
    .has-js .site-navigation { display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 20; max-height: calc(100svh - 64px); overflow-y: auto; padding: .65rem var(--bpb-gutter) 1rem; background: #fff; border-top: 1px solid var(--bpb-border); box-shadow: 0 18px 32px rgba(25, 43, 58, .14); }
    .has-js.site-menu-open .site-navigation { display: grid; }
    .site-navigation { grid-column: 1 / -1; align-items: stretch; gap: 0; }
    .site-navigation__primary,
    .site-navigation__utilities { display: grid; grid-template-columns: 1fr; align-items: stretch; gap: 0; }
    .site-navigation__utilities { border-top: 1px solid var(--bpb-border); margin-top: .4rem; padding-top: .4rem; }
    .site-navigation__primary a,
    .site-navigation__utilities > a,
    .site-account-menu > summary { width: 100%; min-height: 48px; padding: .7rem .25rem; justify-content: space-between; }
    .site-navigation__primary a::after { left: 0; right: auto; bottom: 8px; width: 28px; }
    .site-account-menu { width: 100%; }
    .site-account-menu__panel { position: static; width: 100%; min-width: 0; padding: 0 0 .35rem .8rem; border: 0; box-shadow: none; }
    .site-account-menu__panel a,
    .site-account-menu__user { padding: .55rem .45rem; }
    .language-switcher a { min-width: 30px; min-height: 38px; }
}

@media (max-width: 700px) {
    :root { --bpb-gutter: 1rem; }
    .site-footer__grid { grid-template-columns: 1fr; gap: 1.2rem; }
    .site-footer__grid section { padding-bottom: .4rem; border-bottom: 1px solid #edf0f2; }
    .site-footer__grid section:last-child { border-bottom: 0; }
}

@media (max-width: 360px) {
    .site-brand img { width: 88px; }
    .language-switcher a { min-width: 28px; padding-inline: .2rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.site-footer__preference-button { min-height: 32px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; font-size: .86rem; text-align: left; text-decoration: underline; cursor: pointer; }
.site-footer__preference-button:hover, .site-footer__preference-button:focus-visible { color: var(--bpb-red); }
.entry-content > h1 { color: #0b3b63; }
.entry-content h2 { margin-top: 1.7em; color: #123e5e; }
.entry-content table { width: 100%; border-collapse: collapse; margin-block: 1rem; }
.entry-content th, .entry-content td { padding: .7rem; border: 1px solid #cbd5dc; text-align: left; vertical-align: top; }
.entry-content th { background: #eef4f7; color: #123e5e; }
@media (max-width: 720px) {
    .entry-content table { display: block; overflow-x: auto; }
}
