/* Local display preferences in the Mammut Filter design system. */
:root { --a11y-blue:#002e5d; --a11y-deep:#001f40; --a11y-accent:#8fc6e8; --a11y-paper:#f4f8fb; }
.a11y-launch { position:fixed; right:24px; bottom:24px; z-index:900; display:grid; place-items:center; width:60px; height:60px; padding:7px; border:2px solid #fff; border-radius:50%; color:#fff; background:var(--a11y-deep); box-shadow:0 0 0 4px var(--a11y-accent),0 6px 24px #001f4040; cursor:pointer; }
.a11y-launch svg { width:100%; height:100%; }
.a11y-panel { position:fixed; inset:0 0 0 auto; width:min(500px,100%); max-width:100%; height:100dvh; max-height:100dvh; margin:0; padding:0; border:0; color:var(--a11y-deep); background:var(--a11y-paper); font:calc(16px * var(--a11y-menu-scale,1))/1.5 "Roboto",Arial,sans-serif; overflow:auto; box-shadow:-16px 0 60px #001f4033; }
.a11y-panel::backdrop { background:#001f4066; }
.a11y-panel *, .a11y-launch { box-sizing:border-box; }
.a11y-panel button,.a11y-panel a,.a11y-panel summary { font:inherit; cursor:pointer; }
.a11y-panel button { color:inherit; }
.a11y-panel :focus-visible,.a11y-launch:focus-visible { outline:3px solid #176da4; outline-offset:4px; }
.a11y-top { position:sticky; top:0; z-index:2; padding:26px 24px 22px; color:#fff; background:linear-gradient(135deg,var(--a11y-deep),var(--a11y-blue)); border-bottom:4px solid var(--a11y-accent); }
html:has(.a11y-panel[open]) { overflow:hidden; }
.a11y-brand { display:block; margin-bottom:12px; color:#b8d9ed; font-size:calc(12px * var(--a11y-menu-scale,1)); font-weight:800; letter-spacing:.16em; }
.a11y-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.a11y-heading h2 { margin:0; color:#fff; font-size:calc(25px * var(--a11y-menu-scale,1)); line-height:1.2; }
.a11y-close { flex:none; width:44px; height:44px; border:1px solid #abc9dc; border-radius:50%; background:transparent; color:#fff!important; font-size:calc(28px * var(--a11y-menu-scale,1))!important; }
.a11y-top p { margin:12px 0 0; color:#dcecf5; font-size:calc(14px * var(--a11y-menu-scale,1)); }
.a11y-body { padding:20px 24px; }
.a11y-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding-bottom:16px; border-bottom:1px solid #b7c9d7; }
.a11y-toolbar button { min-height:44px; padding:8px 12px; border:1px solid #8eaabd; border-radius:6px; background:#fff; }
.a11y-panel h3 { margin:24px 0 12px; color:#405a70; font-size:calc(13px * var(--a11y-menu-scale,1)); letter-spacing:.1em; text-transform:uppercase; }
.a11y-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.a11y-tile { min-width:0; min-height:125px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; padding:15px 8px 10px; border:1px solid #b8cbd9; border-radius:10px; background:#fff; text-align:center; }
.a11y-tile:hover { border-color:#176da4; background:#eef7fc; }
.a11y-tile[aria-pressed="true"] { padding:14px 7px 9px; border:2px solid #176da4; background:#dfeff9; }
.a11y-icon { width:29px; height:29px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.a11y-tile strong { font-size:calc(14px * var(--a11y-menu-scale,1)); line-height:1.25; font-weight:700; overflow-wrap:anywhere; }
.a11y-state { color:#405a70; font-size:calc(12px * var(--a11y-menu-scale,1)); }
.a11y-bottom { padding:18px 24px 24px; border-top:1px solid #b7c9d7; }
.a11y-reset { width:100%; min-height:46px; border:1px solid var(--a11y-blue); border-radius:6px; background:var(--a11y-blue); color:#fff!important; font-weight:700!important; }
.a11y-bottom p { margin:12px 0 0; color:#405a70; font-size:calc(12px * var(--a11y-menu-scale,1)); }
.a11y-panel[data-large="true"] { width:min(650px,100%); --a11y-menu-scale:1.25; }
.a11y-structure { margin-top:18px; }
.a11y-structure summary { padding:12px 0; font-weight:700; }
.a11y-structure a { display:block; padding:9px 0; color:var(--a11y-deep); text-decoration:underline; overflow-wrap:anywhere; }

html[data-a11y-links="1"] body > :not(.a11y-panel) a { text-decoration:underline!important; text-decoration-thickness:2px!important; text-underline-offset:.2em; }
html[data-a11y-spacing="1"] :is(main,header,footer) :is(p,a,button,li,h1,h2,h3,span) { letter-spacing:.12em!important; word-spacing:.16em!important; }
html[data-a11y-line="1"] :is(main,header,footer) :is(p,a,button,li,h1,h2,h3,span) { line-height:1.8!important; }
html[data-a11y-line="1"] main p { margin-bottom:2em!important; }
html[data-a11y-font="1"] :is(main,header,footer) * { font-family:Arial,sans-serif!important; }
html[data-a11y-align="1"] main :is(p,h1,h2,h3,li) { text-align:left!important; }
html[data-a11y-motion="1"] { scroll-behavior:auto!important; }
html[data-a11y-motion="1"] *,html[data-a11y-motion="1"] *::before,html[data-a11y-motion="1"] *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
html[data-a11y-motion="1"] .hero-video { visibility:hidden!important; }
html[data-a11y-motion="1"] .video-control { display:none!important; }
html[data-a11y-motion="1"] .hero { background:url("../media/mammuts-poster.webp") center/cover no-repeat; }
html[data-a11y-motion="1"] .contact-symbol { opacity:var(--contact-symbol-opacity,1)!important; }
html[data-a11y-motion="1"] :is(.hero-copy,.process-step,.application-copy,.city-heading-product img,.paintshield-aap,.story-hero-copy,.connector-network,.about-hero-copy) { opacity:1!important; transform:none!important; }
html[data-a11y-decor="1"] main img[alt=""] { visibility:hidden!important; }
html[data-a11y-saturation="1"] :is(main,header,footer) { filter:grayscale(1); }
html[data-a11y-cursor="1"] body { cursor:crosshair; }
html[data-a11y-cursor="1"] a,html[data-a11y-cursor="1"] button { cursor:pointer; outline-offset:4px; }
html[data-a11y-cursor="1"] :is(a,button):hover { outline:3px solid var(--a11y-accent); }
html[data-a11y-contrast="1"] :is(main,header,footer),html[data-a11y-contrast="1"] :is(main,header,footer) * { background-color:#00152b!important; color:#fff!important; border-color:#c4d5e6!important; text-shadow:none!important; }
html[data-a11y-contrast="1"] :is(main,header,footer) a { color:#bfe4fa!important; }
html[data-a11y-contrast="1"] :is(.brand img,.footer-mammut img,.company-logo img) { filter:brightness(0) invert(1)!important; opacity:1!important; background:transparent!important; }
html[data-a11y-contrast="1"] .ai-generated-label { forced-color-adjust:none; filter:none!important; opacity:1!important; background:transparent!important; }

html[data-a11y-reading="1"] :is(main,header,footer) { overflow-wrap:anywhere; }
html[data-a11y-reading="1"] .site-header { height:92px; }
html[data-a11y-reading="1"] .desktop-nav { display:none; }
html[data-a11y-reading="1"] .mobile-nav { display:block; }
html[data-a11y-reading="1"] .mobile-nav nav { max-height:calc(100dvh - 82px); overflow-y:auto; overscroll-behavior:contain; }
html[data-a11y-reading="1"] :is(main,footer) * { min-width:0; overflow-wrap:anywhere; }
html[data-a11y-reading="1"] :is(.company-grid,.approach-grid,.practice-grid,.development-feature,.strength-grid,.principle-grid,.portfolio-grid,.prefilter-hero-grid,.mainfilter-hero-grid,.postfilter-hero-grid,.connectors-hero-grid,.intro-grid,.paintshield-stage,.download-layout,.city-world-heading,.datasheet-preview-inner,.story-hero-grid,.story-intro-grid,.year-row,.milestone-list,.continuation-inner,.contact-hero-grid,.contact-card-grid,.information-grid) { grid-template-columns:minmax(0,1fr)!important; }
html[data-a11y-reading="1"] :is(.hero-copy,.story-hero-copy,.connectors-hero-copy,.prefilter-hero-copy,.mainfilter-hero-copy,.postfilter-hero-copy) { width:auto!important; max-width:100%!important; white-space:normal!important; }
html[data-a11y-reading="1"] :is(.hero-copy,.story-hero-copy,.connectors-hero-copy,.prefilter-hero-copy,.mainfilter-hero-copy,.postfilter-hero-copy) span,
html[data-a11y-reading="1"] :is(.story-hero-copy h1,.product-hero h1 span) { white-space:normal!important; }
html[data-a11y-reading="1"] .footer-inner { width:calc(100% - 48px); margin:0 auto; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); }
html[data-a11y-reading="1"] .class-group { grid-template-columns:minmax(0,1fr)!important; }
html[data-a11y-reading="1"] :is(.city-grid,.city-grid-six) { grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))!important; }
html[data-a11y-reading="1"] .download-intro { position:static; }
html[data-a11y-reading="1"] .download-row { grid-template-columns:minmax(0,1fr)!important; }
html[data-a11y-reading="1"] .download-actions { grid-column:auto; }
html[data-a11y-reading="1"] .download-actions a { width:100%; min-width:0; }

.a11y-section-target { scroll-margin-top:var(--a11y-header-offset,110px); }
@media(max-width:980px) { .mobile-nav nav { max-height:calc(100dvh - 82px); overflow-y:auto; overscroll-behavior:contain; } }
@media(max-width:420px) {
  .a11y-launch { right:18px; bottom:18px; width:52px; height:52px; }
  .a11y-body,.a11y-top,.a11y-bottom { padding-left:16px; padding-right:16px; }
  .a11y-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .a11y-heading h2 { font-size:calc(23px * var(--a11y-menu-scale,1)); }
}
@media(max-height:480px) { .a11y-top { position:static; } }
@media(max-width:280px) { .a11y-grid { grid-template-columns:minmax(0,1fr); } }
@media(forced-colors:active) {
  .a11y-tile[aria-pressed="true"] { outline:3px solid Highlight; }
  .a11y-launch { border:3px solid ButtonText; }
  .brand img,.footer-mammut img,.company-logo img,.city-card img { forced-color-adjust:none; filter:brightness(0) drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff)!important; background:transparent!important; opacity:1!important; }
  .ai-generated-label { forced-color-adjust:none; filter:none!important; opacity:1!important; background:transparent!important; }
}
