/* Small semantic/accessibility adaptations on top of the original design. */
[hidden] { display: none !important; }
img { height: auto; }
/* Preserve the hero's intentional crop without a hidden scroll container that
   shifts the whole main area when a slider control receives keyboard focus. */
main { overflow: clip; display: flow-root; }
.visually-hidden, .skip-link:not(:focus) {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 100; padding: 12px 20px; background: white; color: black; }
a:focus-visible, button:focus-visible { outline: 3px solid #c4334b; outline-offset: 5px; }
.m-header__mobile a:focus-visible, .m-header__mobile button:focus-visible { outline-color: white; }
.m-header__button { z-index: 11; }
.m-header__mobile + main { display: block; }
.menu-open { overflow: hidden; }
.m-accordeon__item__body, .m-accordeon__item__show .m-accordeon__item__body { max-height: none; }
.m-slider__slides { width: 100%; }
/* Overlapping grid cells reserve the tallest slide at the current width.
   Inactive slides still size the grid, including after font loads and resize. */
.js .m-slider__slides { display: grid; }
.js .m-slider__slide { grid-area: 1 / 1; }
.js .m-slider__slide[hidden] { display: flex !important; visibility: hidden; pointer-events: none; }
.m-slider__slide > div:last-child { min-width: 0; overflow-wrap: anywhere; }
.brand-visual { flex-shrink: 0; aspect-ratio: 1; }
.brand-bubble { width: 100%; aspect-ratio: 1; }
.brand-visual .brand-bubble img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }
.brand-bubble--tilia { background: #c8d419; }
.brand-bubble--obolus { background: #222; }
.brand-bubble--tilia img, .brand-visual .brand-bubble--tilia img { width: 67%; height: auto; border-radius: 0; }
.brand-bubble--obolus img, .brand-visual .brand-bubble--obolus img { width: 80%; height: auto; border-radius: 0; }
.m-slider__buttons button { position: absolute; top: 50%; transform: translateY(-50%); line-height: 1; }
.m-slider__buttons button:first-child { left: -.5rem; }
.m-slider__buttons button:last-child { right: -.5rem; }
.m-slider__buttons button i { position: static; }
.m-slider__bullets .m-bullet-button { width: 36px; height: 44px; display: inline-flex; justify-content: center; align-items: center; }
.no-js .m-slider__slide + .m-slider__slide { margin-top: 3rem; }
.no-js .m-header__button { display: none; }
@media (min-width: 1200px) {
  .m-slider__buttons button:first-child { left: -2rem; }
  .m-slider__buttons button:last-child { right: -2rem; }
}
@media (min-width: 1800px) {
  .m-slider__buttons button:first-child { left: -5rem; }
  .m-slider__buttons button:last-child { right: -5rem; }
}
@media (max-width: 1085px) {
  .no-js .m-header > .container { flex-wrap: wrap; }
  .no-js .m-header__nav { display: block; width: 100%; margin-top: 1rem; }
  .no-js .m-header__nav ul { flex-wrap: wrap; gap: 1rem; }
  .no-js .m-header__nav > ul > li { margin: 0; }
}
/* The original footer's three fixed columns overflow narrow screens. */
@media (max-width: 639px) {
  .m-header__logo svg { width: min(220px, calc(100vw - 104px)); }
  .m-footer > .container > div:last-child { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; }
  .m-footer > .container > div:last-child > div { width: auto; }
  .m-footer > .container > div:last-child > div:last-child { grid-column: 1 / -1; }
  .m-footer > .container > div:last-child p { margin-right: 0; overflow-wrap: anywhere; }
  .m-footer > .container > div:last-child > div:last-child p { display: flex; gap: 1.5rem; }
  .m-footer > .container > div:last-child > div:last-child br { display: none; }
  .m-footer__logo1, .m-footer__logo2 { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; }
}
