.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
:focus-visible { outline:3px solid #435c2b; outline-offset:4px; }
.a11y-trigger { position:fixed; z-index:40; inset-inline-end:20px; bottom:24px; width:52px; height:52px; display:grid; place-items:center; border:2px solid #fff; border-radius:50%; background:#13231d; color:#fff; box-shadow:0 3px 15px #0004; }
.a11y-dialog { width:min(440px,calc(100vw - 24px)); max-width:none; max-height:calc(100dvh - 32px); overflow:auto; padding:24px; border:1px solid #435c2b; border-radius:18px; background:#fff; color:#162019; font-size:1rem; line-height:1.6; }
.a11y-dialog::backdrop { background:#0008; }
.a11y-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; flex-wrap:wrap; }
.a11y-heading h2 { font-size:1.5rem; letter-spacing:normal; }
.a11y-dialog button { min-height:44px; padding:8px 14px; border:1px solid #435c2b; border-radius:8px; background:#f3f5f3; color:#162019; line-height:1.4; }
.a11y-dialog fieldset { margin:0 0 16px; padding:12px; border:1px solid #626d65; border-radius:8px; min-width:0; }
.a11y-dialog legend { padding-inline:6px; }
.a11y-size { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.a11y-dialog button:disabled { opacity:.5; cursor:default; }
.a11y-option { display:flex; align-items:center; gap:12px; min-height:52px; padding-block:8px; cursor:pointer; }
.a11y-option input { width:24px; height:24px; flex-shrink:0; accent-color:#435c2b; }
.a11y-help { margin-block:16px; font-size:.875rem; }
.a11y-reset { width:100%; }
html.a11y-enlarged .header-inner { flex-wrap:wrap; }
html.a11y-enlarged .brand { flex-shrink:1; min-width:0; }
html.a11y-enlarged .brand-words { overflow-wrap:anywhere; }
html.a11y-enlarged .desktop-nav { display:none; }
html.a11y-enlarged .menu-button { display:block; }
html.a11y-enlarged .hero, html.a11y-enlarged .about, html.a11y-enlarged .contact-section, html.a11y-enlarged .precision-layout { grid-template-columns:1fr; }
html.a11y-enlarged .section-top { flex-wrap:wrap; }
html.a11y-enlarged .section-intro { max-width:100%; flex-shrink:1; }
html.a11y-enlarged .supplier-brand { flex-wrap:wrap; }
html.a11y-enlarged .hero-signature { flex-wrap:wrap; }
html.a11y-enlarged .contact-row strong { overflow-wrap:anywhere; max-width:100%; }
html.a11y-enlarged .mobile-contact-bar { border-radius:16px; }
html.a11y-enlarged .mobile-contact-bar a { padding-inline:8px; overflow-wrap:anywhere; }
html.a11y-contrast { --ink:#fff; --muted:#fff; --forest:#000; --green:#ffed72; --accent:#ffed72; --line:#fff; --soft:#000; background:#000; color:#fff; }
html.a11y-contrast body, html.a11y-contrast body *:not(svg):not(svg *) { background-color:#000 !important; color:#fff !important; border-color:#fff !important; box-shadow:none !important; }
html.a11y-contrast a, html.a11y-contrast button { color:#ffed72 !important; }
html.a11y-contrast a { text-decoration:underline; }
html.a11y-contrast :focus-visible { outline-color:#ffed72; }
html.a11y-contrast .site-header { backdrop-filter:none; }
html.a11y-contrast .hero-visual::after, html.a11y-contrast .precision-image::after { background:none; }
html.a11y-motion { scroll-behavior:auto !important; }
html.a11y-motion *, html.a11y-motion *::before, html.a11y-motion *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
html.a11y-motion .project:hover img, html.a11y-motion .button:hover, html.a11y-motion .contact-row:hover .contact-arrow { transform:none !important; }
@media(prefers-reduced-motion:reduce) { .project:hover img, .button:hover, .contact-row:hover .contact-arrow { transform:none !important; } }
@media(max-width:760px) { .a11y-trigger { bottom:calc(90px + env(safe-area-inset-bottom)); inset-inline-end:16px; } html.a11y-enlarged .services-grid,html.a11y-enlarged .supplier-grid,html.a11y-enlarged .trust-strip { grid-template-columns:1fr; } html.a11y-enlarged .trust-strip>div { border-inline-start:0; padding-inline-start:0; } html.a11y-enlarged .header-inner { position:relative; } html.a11y-enlarged .site-header { position:relative; } html.a11y-enlarged .hero h1 { overflow-wrap:anywhere; } }
