/* Common controls; the site's normal content retains its existing styles. */
#accessibility-toggle[hidden], #accessibility-panel[hidden] { display: none; }
.accessibility-toggle, .accessibility-panel button {
    font: inherit; color: var(--primary); background: white; border: 2px solid currentColor;
    border-radius: 8px; padding: .5em .7em; cursor: pointer; line-height: 1.4;
    overflow-wrap: anywhere;
}
.accessibility-toggle { max-width: 13em; font-size: .85rem; flex-shrink: 0; }
.header-content { gap: 12px; }
.accessibility-panel { padding: 1rem 0; border-top: 2px solid currentColor; background: white; color: var(--dark); }
.accessibility-panel h2 { color: inherit; font-size: 1.3rem; margin-bottom: .8em; }
.accessibility-panel fieldset { border: 0; min-width: 0; }
.accessibility-panel legend { font-weight: 700; }
.accessibility-sizes, .accessibility-actions { display: flex; flex-wrap: wrap; gap: .5em 1em; margin: .5em 0; }
.accessibility-sizes { gap: 12px 16px; }
.accessibility-sizes label {
    display: inline-flex; align-items: center; gap: .6em;
    min-height: 48px; min-width: 96px; max-width: 100%; padding: 10px 12px;
    border: 1px solid var(--gray-light); border-radius: 8px;
    white-space: nowrap; cursor: pointer;
}
.accessibility-sizes input { flex-shrink: 0; }
.accessibility-sizes label:focus-within { outline: 3px solid currentColor; outline-offset: 3px; }
.accessibility-option { padding: .4em 0; cursor: pointer; }
.accessibility-option { display: block; }
.accessibility-panel input { width: 1em; height: 1em; accent-color: currentColor; }
.accessibility-toggle:focus-visible, .accessibility-panel :focus-visible,
html[data-accessibility] :focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
@media (min-width: 769px) and (max-width: 1200px) {
    .header-content { flex-wrap: wrap; height: auto; }
    .accessibility-toggle { max-width: 11em; }
}
@media (max-width: 768px) {
    .accessibility-toggle { max-width: 100%; }
    .accessibility-actions { flex-direction: column; align-items: stretch; }
}
html[data-text-size="125"] { font-size: 125%; }
html[data-text-size="150"] { font-size: 150%; }
html[data-text-size="200"] { font-size: 200%; }
html[data-accessibility] { scroll-behavior: auto; scroll-padding-top: 1rem; }
html[data-accessibility] body { overflow-wrap: anywhere; }
html[data-accessibility] #header { position: static; backdrop-filter: none; }
html[data-accessibility] .header-content { height: auto; flex-wrap: wrap; }
html[data-accessibility] .header-content > *, html[data-accessibility] .logo-text { min-width: 0; max-width: 100%; }
html[data-accessibility] nav ul { flex-wrap: wrap; justify-content: center; }
html[data-accessibility] nav a { display: inline-block; }
html[data-accessibility] .site-search, html[data-accessibility] .site-map,
html[data-accessibility] .price-section, html[data-accessibility] .document-container { padding-top: 2rem; }
html[data-accessibility] [id] { scroll-margin-top: 1rem; }
html[data-accessibility] .hero-slider { height: auto; min-height: 0; margin-top: 0; overflow: visible; }
html[data-accessibility] .slide { position: relative; height: auto; opacity: 1; transition: none; z-index: auto; background-color: var(--primary-dark); }
html[data-accessibility] .slide-content { height: auto; padding: 2rem 1rem; }
html[data-accessibility] .slider-nav { display: none; }
html[data-accessibility] .price-table { min-width: 0; table-layout: fixed; }
html[data-accessibility] .price-table th, html[data-accessibility] .price-table td { padding: .65em .4em; overflow-wrap: anywhere; }
html[data-accessibility] .price-table th:first-child { width: 68%; }
html[data-accessibility] .price-table .price { white-space: normal; }
html[data-accessibility] .price-table-container:focus-visible { outline-offset: -3px; }
html[data-accessibility] .equipment-content, html[data-accessibility] .contact-info,
html[data-accessibility] .footer-column, html[data-accessibility] .document-item { min-width: 0; }
html[data-accessibility] .file-link { overflow-wrap: anywhere; }
html[data-accessibility] .btn { white-space: normal; max-width: 100%; }
html[data-accessibility] .category-card { overflow: visible; }
html[data-hide-decorative="true"] [data-decorative] { display: none; }
html[data-hide-decorative="true"] .slide { background-image: none; background-color: var(--primary-dark); }
html[data-contrast="high"] { --primary: #000; --primary-dark: #000; --primary-light: #000; --primary-soft: #eee; --dark: #000; --dark-80: #000; --gray: #000; --gray-light: #000; --secondary: #fff; --white: #fff; --black: #000; }
html[data-contrast="high"] body, html[data-contrast="high"] body * {
    color: #000 !important; background-color: #fff !important; background-image: none !important;
    transition: none !important; text-shadow: none !important; box-shadow: none !important; border-color: #000 !important;
}
html[data-contrast="high"] a { text-decoration: underline; }
html[data-contrast="high"] input { accent-color: #000; }
html[data-contrast="high"] .btn { border: 2px solid #000; }
@media (max-width: 992px) {
    html[data-accessibility] .header-content { flex-direction: column; }
    html[data-accessibility] .categories-grid, html[data-accessibility] .contact-grid,
    html[data-accessibility] .footer-flex, html[data-accessibility] .map-grid { grid-template-columns: minmax(0, 1fr); }
    html[data-accessibility] .equipment .container { flex-direction: column; }
}

/* Account for the new control without guessing the height of the normal header. */
html.accessibility-ready:not([data-accessibility]) .hero-slider { margin-top: var(--accessibility-header-height); }
html.accessibility-ready:not([data-accessibility]) .site-search,
html.accessibility-ready:not([data-accessibility]) .site-map,
html.accessibility-ready:not([data-accessibility]) .price-section,
html.accessibility-ready:not([data-accessibility]) .document-container { padding-top: calc(var(--accessibility-header-height) + 2rem); }
html.accessibility-ready:not([data-accessibility]) [id] { scroll-margin-top: calc(var(--accessibility-header-height) + 1rem); }
html[data-accessibility] .equipment-image { min-width: 0; max-width: 100%; }
html[data-contrast="high"] img { background-color: transparent !important; }
html[data-contrast="high"] .logo, html[data-contrast="high"] .footer-logo img { filter: brightness(0); }
.accessibility-panel input { font: inherit; }
@media (max-width: 480px) {
    html[data-accessibility] .price-table th:first-child { width: 60%; }
    html[data-accessibility] .price-table th, html[data-accessibility] .price-table td { padding-left: .2em; padding-right: .2em; }
}
