/* Shared site chrome: every page uses these rules; only the home header varies. */
.brand { display: inline-flex; align-items: center; gap: 0.5625rem; color: #fff; font-size: 1.125rem; font-weight: 700; line-height: 1; text-decoration: none; white-space: nowrap; }
.brand:hover { color: #fff; }
.brand__logo { display: block; width: 265px; max-width: 100%; height: auto; object-fit: contain; }
.brand__mark { display: grid; width: 34px; height: 34px; place-items: center; background: var(--color-brand); border-radius: 50%; }
.brand__accent { color: #c9d2db; font-size: 0.75rem; }
.site-icon { display: block; flex: 0 0 auto; width: 20px; height: 20px; }
.site-header { position: sticky; top: 0; z-index: 30; color: #fff; background: #000; }
.site-header__inner { display: flex; align-items: center; width: 100%; min-height: 100px; margin: auto; padding-inline: 8.3551% 6.7885%; gap: 2.25rem; }
.site-header--home { position: fixed; inset: 0 0 auto; background: transparent; transition: background-color .25s ease; }
.site-header--home.is-scrolled, .site-header--home:has(.site-nav.is-open), .site-header--home:has(.header-search-panel:not([hidden])) { background: #000; }
.site-header .brand { flex: 0 0 auto; }
.site-nav { margin-left: auto; }
.site-nav__list, .site-nav__submenu { list-style: none; padding: 0; margin: 0; }
.site-nav__list { display: flex; align-items: center; gap: 3.125rem; }
.site-nav__item { position: relative; }
.site-nav__link { display: block; padding: 0 0.5rem; color: #fff; font-size: 1rem; font-weight: 400; line-height: 6.25rem; text-decoration: none; white-space: nowrap; }
.site-nav__link:hover, .site-nav__link:focus-visible, .site-nav__link[aria-current] { color: #d02c2e; }
.submenu-toggle { display: none; }
.site-nav__submenu { position: absolute; top: 100%; left: 0; display: none; min-width: 220px; padding: 0.5rem 0; color: #333; background: #fff; box-shadow: 0 5px 20px rgb(0 0 0 / 12%); }
.site-nav__submenu a { display: block; padding: 0.75rem 1.125rem; font-size: 0.875rem; font-weight: 400; text-decoration: none; }
.site-nav__submenu a:hover, .site-nav__submenu a:focus-visible { color: #d02c2e; background: #f7f7f7; }
.site-nav__item:hover .site-nav__submenu, .site-nav__item:focus-within .site-nav__submenu { display: block; }
.header-search { display: grid; place-items: center; flex: 0 0 50px; height: 44px; color: #fff; text-decoration: none; }
.header-search:hover { color: #d02c2e; }
.header-search-container { position: relative; flex: 0 0 50px; }
.header-search { width: 100%; }
.header-search-panel { position: absolute; z-index: 40; top: calc(100% + .75rem); right: 0; width: 20rem; padding: 0.875rem; color: #333; background: #fff; border-radius: 0.3125rem; box-shadow: 0 5px 20px rgb(0 0 0 / 10%); }
.header-search-panel::before { position: absolute; right: 1rem; top: -.4375rem; width: .875rem; height: .875rem; background: #fff; transform: rotate(45deg); content: ""; }
.site-search-form { position: relative; display: flex; min-height: 3rem; background: #fff; border: 2px solid #d02c2e; border-radius: 0.1875rem; }
.site-search-form input { flex: 1; min-width: 0; width: 100%; padding: 0.625rem 0.875rem; font: inherit; color: #333; background: #fff; border: 0; border-radius: 0; }
.site-search-form input:focus { outline: 2px solid #333; outline-offset: -3px; }
.site-search-form button { display: grid; flex: 0 0 auto; width: 4rem; padding: 0; place-items: center; color: #fff; background: #d02c2e; border: 0; cursor: pointer; }
.site-search-form button:hover { background: #b51e25; }
.site-search-form .site-icon { width: 1.5rem; height: 1.5rem; }
.language-status { display: grid; place-items: center; flex: 0 0 152px; height: 30px; border-left: 1px solid rgb(255 255 255 / 15%); }
.language-status__flag { font-size: 1.4375rem; line-height: 1; }
.language-status__globe, .menu-toggle { display: none; }

.site-footer { color: rgb(255 255 255 / 65%); background: #090a0a url("../images/home-footer-background.08871adade8a.jpg") center / cover no-repeat; border-top: 4px solid #d02c2e; }
.site-footer__main { display: grid; grid-template-columns: 31% 23% 22% 9%; gap: 5%; width: min(1360px, calc(100% - 40px)); margin: auto; padding: 4.375rem 0 5rem; }
.site-footer .brand__logo { width: 240px; }
.site-footer__about p { max-width: 340px; margin: 2rem 0 1.375rem; font-size: 1rem; line-height: 1.625rem; }
.site-footer__contact { display: grid; gap: 1rem; max-width: 355px; }
.site-footer__contact a, .site-footer__contact address { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 1rem; font-style: normal; line-height: 1.4375rem; }
.site-footer__contact .site-icon { width: 18px; height: 18px; margin-top: 0.1875rem; color: #d02c2e; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { color: #fff; }
.site-footer__group h2 { margin: 0 0 1.375rem; color: #fff; font-size: 1.125rem; line-height: 1.6875rem; }
.site-footer__group h2::after { display: block; width: 40px; height: 2px; margin-top: 1rem; background: #d02c2e; content: ""; }
.site-footer__group ul { padding: 0; margin: 0; list-style: none; }
.site-footer__group li { font-size: 1rem; line-height: 2.5rem; }
.site-footer__group a { white-space: nowrap; }
.site-footer__bottom { border-top: 1px solid rgb(255 255 255 / 8%); padding: 1.5rem 0; font-size: 0.875rem; line-height: 1.5rem; }
.site-footer__bottom > .container { display: flex; align-items: center; justify-content: space-between; gap: 1.5625rem; width: min(1360px, calc(100% - 40px)); }
.site-footer__social { display: flex; align-items: center; gap: 0.8125rem; }
.site-footer__social a, .site-footer__social span { display: grid; place-items: center; width: 32px; height: 32px; color: #fff; border: 1px solid rgb(255 255 255 / 50%); border-radius: 0.25rem; font-size: 1.0625rem; font-weight: 700; line-height: 1; }
.site-footer__social a:hover { background: #d02c2e; border-color: #d02c2e; }

.back-to-top { position: fixed; z-index: 19; right: 1.875rem; bottom: 3.1875rem; display: grid; place-items: center; width: 3rem; height: 3rem; padding: 0; color: #fff; background: #d02c2e; border: 0; border-radius: 50%; box-shadow: 0 0 10px rgb(0 0 0 / 15%); cursor: pointer; visibility: hidden; opacity: 0; pointer-events: none; transition: opacity .2s; }
.back-to-top.is-visible { visibility: visible; opacity: 1; pointer-events: auto; }
.back-to-top .site-icon { width: 1.875rem; height: 1.875rem; }
.back-to-top:focus-visible { outline: 2px solid #333; outline-offset: 3px; }

@media (max-width: 1366px) and (min-width: 701px) {
  .site-header__inner { width: calc(100% - 32px); padding-inline: 0; gap: 1.625rem; }
  .language-status { flex-basis: 76px; }
  .site-header .brand__logo { width: 210px; }
}
@media (max-width: 1100px) and (min-width: 701px) {
  .site-header__inner { gap: 0.875rem; }
  .site-header .brand__logo { width: 170px; }
  .site-nav__list { gap: 1.375rem; }
  .site-nav__link { padding: 0 0.25rem; }
  .header-search-container { flex-basis: 28px; }
  .language-status { flex-basis: 44px; }
  .site-footer__main { grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 1.875rem; }
}
@media (max-width: 850px) and (min-width: 701px) {
  .site-header .brand__logo { width: 145px; }
  .site-header__inner { gap: 0.625rem; }
  .site-nav__list { gap: 0.75rem; }
}
@media (max-width: 700px) {
  .site-header, .site-header--home, .site-header--home.is-scrolled, .site-header--home:has(.site-nav.is-open) { position: sticky; top: 0; color: #333; background: #dedede; }
  .site-header__inner { display: grid; grid-template-columns: 45px minmax(0, 1fr) 45px; gap: 0; width: 100%; min-height: 50px; padding: 0 0.625rem; }
  .site-header .brand { grid-column: 2; grid-row: 1; justify-self: center; }
  .site-header .brand__logo { width: 195px; max-width: 52vw; }
  .js-ready .menu-toggle { display: grid; grid-column: 1; grid-row: 1; place-items: center; width: 38px; height: 42px; padding: 0; color: #d02c2e; background: transparent; border: 0; cursor: pointer; }
  .menu-toggle__bars, .menu-toggle__bars::before, .menu-toggle__bars::after { display: block; width: 20px; height: 1px; background: currentColor; content: ""; }
  .menu-toggle__bars { position: relative; }
  .menu-toggle__bars::before { position: absolute; top: -6px; }
  .menu-toggle__bars::after { position: absolute; top: 6px; }
  .header-search-container { grid-column: 1 / -1; grid-row: 3; display: none; width: 100%; padding: 0 0.3125rem 0.625rem; }
  .site-header__inner:has(.site-nav.is-open) .header-search-container { display: block; }
  .header-search { display: none; }
  .header-search-panel { position: static; width: 100%; padding: 0; background: transparent; box-shadow: none; }
  .header-search-panel::before { display: none; }
  .header-search-panel[hidden] { display: block; }
  .site-search-form input { font-size: 1rem; }
  .language-status { grid-column: 3; grid-row: 1; justify-self: end; width: 39px; height: 39px; border: 0; }
  .language-status__flag { display: none; }
  .language-status__globe { display: block; color: #d02c2e; }
  .language-status__globe .site-icon { width: 27px; height: 27px; }
  .site-nav { grid-column: 1 / -1; grid-row: 2; width: calc(100% + 20px); margin: 0 -0.625rem; padding: 0 0.9375rem 0.5rem; max-height: calc(100dvh - 50px); overflow-y: auto; }
  .js-ready .site-nav { display: none; }
  .js-ready .site-nav.is-open { display: block; }
  .site-nav__list { display: block; }
  .site-nav__item { display: grid; grid-template-columns: 1fr 44px; border-top: 1px solid rgb(0 0 0 / 12%); }
  .site-nav__link { color: #333; padding: 0.8125rem 0.5rem; font-size: 1rem; line-height: 1.625rem; }
  .submenu-toggle { display: block; width: 44px; height: 50px; padding: 0; color: #333; background: transparent; border: 0; font-size: 1.25rem; cursor: pointer; }
  .site-nav__submenu { position: static; grid-column: 1 / -1; min-width: 0; padding: 0 0 0.5rem 0.875rem; background: transparent; box-shadow: none; }
  .site-nav__item:hover .site-nav__submenu, .site-nav__item:focus-within .site-nav__submenu { display: none; }
  .submenu-toggle[aria-expanded="true"] + .site-nav__submenu { display: block; }
  .site-nav__submenu a { padding: 0.5625rem 0.75rem; }
  .site-footer { border-top: 0; }
  .site-footer__main { display: block; width: 100%; padding: 1.75rem 0.625rem 1.5625rem; }
  .site-footer .brand__logo { width: 175px; }
  .site-footer__about p { max-width: none; margin: 1.25rem 0; font-size: 0.875rem; line-height: 1.625rem; }
  .site-footer__contact { max-width: none; gap: 0.875rem; }
  .site-footer__contact a, .site-footer__contact address { font-size: 1rem; line-height: 1.5rem; }
  .site-footer__group { display: none; }
  .site-footer__bottom { padding: 1.125rem 0 1.5625rem; font-size: 0.875rem; }
  .site-footer__bottom > .container { display: block; width: calc(100% - 20px); }
  .site-footer__social { margin-top: 1rem; gap: 0.8125rem; }
}
