/* Static interaction and loading rules, applied after the pruned layout CSS. */
html { scrollbar-gutter: stable; }
img { height: auto; }
iframe { max-width: 100%; }
/* Native page transitions are an enhancement; ordinary links work everywhere. */
@view-transition { navigation: auto; }
body > .page-wrapper > header { view-transition-name: site-header; }
::view-transition-group(root), ::view-transition-old(root), ::view-transition-new(root) { animation-duration: 120ms; }
::view-transition-group(site-header), ::view-transition-old(site-header), ::view-transition-new(site-header) { animation: none; }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
}
[hidden] { display: none !important; }
.static-content { padding-block: 4rem; }
.static-page-heading { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.2; margin-block: 2rem; }
.static-restored-article, .static-restored-archive { padding-block: 2rem; }
.static-restored-article img { max-width: 100%; height: auto; }
.static-restored-archive article { margin-block: 2rem; }
.static-contact { margin-block: 2rem; padding: 2rem; border: 1px solid currentColor; }
.static-contact .btn { background: #c25200; color: #fff; border-color: #c25200; }
.static-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(22rem, 30%); grid-template-areas: "content sidebar"; gap: 4rem; }
.static-columns > .main-content { grid-area: content; min-width: 0; }
.static-sidebar { grid-area: sidebar; min-width: 0; }
.static-sidebar h2 { font-size: 2rem; line-height: 1.3; }
.static-sidebar ul { list-style: none; padding: 0; }
.static-sidebar li { margin-block: 1.5rem; }
@media (max-width: 991px) { .static-columns { grid-template-columns: minmax(0, 1fr); grid-template-areas: "content" "sidebar"; gap: 3rem; } }
.static-footer { padding-block: 4rem 2rem; background: #24293d; color: #f2f3f5; }
.static-footer-grid { display: grid; grid-template-columns: 2fr 1.5fr 1fr 1fr; gap: 3rem; }
.static-footer h2 { margin: 0 0 1.5rem; color: inherit; font-size: 1.8rem; line-height: 1.4; }
.static-footer p, .static-footer address { margin: 0 0 1.5rem; font-style: normal; line-height: 1.7; }
.static-footer a { color: inherit; text-decoration: underline; text-underline-offset: .25em; }
.static-footer a:hover { color: #ffb45c; }
.static-footer nav a { display: block; margin-block: .75rem; }
.static-footer .static-footer-copyright { padding-top: 2rem; margin-top: 2rem; margin-bottom: 0; border-top: 1px solid #53586a; font-size: 1.4rem; }
.static-footer [data-static-build] { color: #24293d; }
.static-footer [data-static-build]::selection, .static-footer [data-static-build] time::selection { background: #ffbf75; color: #24293d; }
@media (max-width: 991px) { .static-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .static-footer-grid { grid-template-columns: 1fr; gap: 2rem; } }
.static-page-list { padding-left: 1.5rem; }
.static-page-list li { margin-block: 1rem; }
.static-page-list time { display: block; font-size: 0.875em; }
html:has(.static-menu[open]) { overflow: hidden; }
.static-menu { position: fixed; inset: 0 auto 0 0; width: min(34rem, calc(100vw - 3rem)); height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 2rem; border: 0; background: #24293d; color: #efefef; overflow-y: auto; }
.static-menu::backdrop { background: rgb(0 0 0 / 65%); }
.static-menu-close { min-height: 44px; padding: .75rem 1rem; margin-bottom: 1rem; border: 1px solid #5b6278; border-radius: .3rem; background: #3a405a; color: inherit; font: inherit; cursor: pointer; }
.static-menu-links, .static-menu-links ul { list-style: none; padding: 0; margin: 0; }
.static-menu-links ul { padding-left: 1.5rem; }
.static-menu-links a { display: block; min-height: 44px; padding: 1rem .75rem; color: inherit; font-size: 1.5rem; line-height: 1.5; }
.static-menu a:hover, .static-menu a[aria-current="page"], .static-menu-close:hover { background: #4a516b; color: #ffbf75; }
.static-menu :focus-visible { outline: 2px solid #ffbf75; outline-offset: -2px; }
.menu li:focus-within > ul { opacity: 1; visibility: visible; display: block; }
/* Keep dropdowns above page content, including the header's transition layer.
   Scope these rules to desktop navigation; the mobile menu remains independent. */
header.header { position: relative; z-index: 100; }
header.header nav.menu .menu-item-has-children > a::after { content: ""; display: inline-block; width: .45em; height: .45em; margin-left: .6em; border: solid currentColor; border-width: 0 .12em .12em 0; transform: rotate(45deg); vertical-align: .2em; }
@media (min-width: 992px) {
  header.header nav.menu > ul.horizontal-menu.menu > li { position: relative; }
  header.header nav.menu > ul.horizontal-menu.menu > li > ul {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    width: 34rem;
    min-width: 28rem;
    max-width: calc(100vw - 3.2rem);
    max-height: 70vh;
    overflow-y: auto;
    overscroll-behavior: contain;
    margin: 0;
    padding: .8rem;
    border: 1px solid #5b6278;
    border-radius: 0 .6rem .6rem .6rem;
    background: #3a405a;
    color: #efefef;
    box-shadow: 0 1.2rem 3rem rgb(0 0 0 / 22%);
    z-index: 1002;
    transform: none;
    pointer-events: auto;
    visibility: hidden;
    opacity: 0;
    /* A brief grace period lets the pointer cross the panel edge and return. */
    transition: opacity 100ms ease 200ms, visibility 0s linear 300ms;
  }
  header.header nav.menu > ul.horizontal-menu.menu > li:nth-last-child(-n + 3) > ul { left: auto; right: 0; }
  header.header nav.menu > ul.horizontal-menu.menu > li:hover > ul,
  header.header nav.menu > ul.horizontal-menu.menu > li:focus-within > ul {
    visibility: visible;
    opacity: 1;
    transition: none;
  }
  header.header nav.menu > ul.horizontal-menu.menu > li > ul > li { margin: 0; padding: 0; width: 100%; }
  header.header nav.menu > ul.horizontal-menu.menu > li > ul > li > a {
    display: block;
    width: 100%;
    min-height: 44px;
    padding: 1.1rem 1.4rem;
    border-radius: .3rem;
    background: transparent;
    color: #efefef;
    font-size: 1.5rem;
    line-height: 1.45;
    white-space: normal;
    overflow-wrap: break-word;
  }
  header.header nav.menu > ul.horizontal-menu.menu > li > ul > li > a:hover,
  header.header nav.menu > ul.horizontal-menu.menu > li > ul > li > a:focus-visible,
  header.header nav.menu > ul.horizontal-menu.menu > li > ul > li.current-menu-item > a {
    background: #4a516b;
    color: #ffbf75;
  }
  header.header nav.menu > ul.horizontal-menu.menu > li:hover > a,
  header.header nav.menu > ul.horizontal-menu.menu > li:focus-within > a,
  header.header nav.menu > ul.horizontal-menu.menu > li.current-menu-item > a,
  header.header nav.menu > ul.horizontal-menu.menu > li.current-menu-ancestor > a { background: #4a516b; color: #ffbf75; }
  header.header nav.menu > ul.horizontal-menu.menu a:focus-visible { outline: 2px solid #ffbf75; outline-offset: -2px; }
  @media (prefers-reduced-motion: reduce) {
    header.header nav.menu > ul.horizontal-menu.menu > li > ul { transition: visibility 0s linear 300ms, opacity 0s linear 300ms; }
    header.header nav.menu > ul.horizontal-menu.menu > li:hover > ul,
    header.header nav.menu > ul.horizontal-menu.menu > li:focus-within > ul { transition: none; }
  }
}
/* Keep carousel content accessible when the original slider has no static equivalent. */
.static-gallery { display: flex !important; flex-wrap: wrap; overflow: visible; transform: none !important; }
.static-gallery > * { max-width: 100%; opacity: 1 !important; pointer-events: auto; }
@media (max-width: 600px) {
  .static-contact { padding: 1.25rem; }
}
