/* Native reading controls; keep browser zoom, forced colours and focus visible. */
/* WCAG 2.0 AA defaults apply before any reading preference is selected. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
html{scroll-padding-top:10rem}
#main{scroll-margin-top:10rem}
:is(a,button,input,select,textarea,summary,[tabindex]):focus{outline:3px solid #a55d00;outline-offset:4px}
@supports selector(:focus-visible){:is(a,button,input,select,textarea,summary,[tabindex]):focus:not(:focus-visible){outline:none}}
.text-link,.editorial-note p a,.consultation-inner p a,.result-panel p a,.result-panel li a,.a11y-body p a{text-decoration:underline;text-underline-offset:.2em}
.site-header .nav-cta[aria-current]{color:#fff}
.site-header .header-inner:has(#primary-nav.no-js-nav){height:auto;min-height:83px;flex-wrap:wrap;padding-block:12px}
.site-header #primary-nav.no-js-nav{display:flex;position:static;flex-wrap:wrap;max-height:none;overflow:visible;background:transparent;box-shadow:none;flex-basis:100%;width:100%;border:0;gap:12px;padding:6px 0}
.site-header #primary-nav.no-js-nav>a{white-space:normal;min-height:44px;padding:10px}
.table-scroll:focus-visible{outline-offset:3px}
fieldset.form-group{min-width:0;border:0;padding:0;margin:24px 0}
fieldset.form-group legend{font-size:1rem;font-weight:600;color:var(--ink);padding:0}
.form-hint,.field-hint{font-size:.8125rem;color:var(--muted);margin:8px 0 0}
.field-error{display:block;font-size:.8125rem;line-height:1.65;color:#943c23;margin:8px 0 0;font-weight:600}
.checkbox-label{flex-wrap:wrap}
.checkbox-label>span:not(.field-error){flex:1;min-width:0}
.checkbox-label>.field-error{flex-basis:100%;margin-left:29px}
.form-errors{border:2px solid #943c23;border-radius:6px;background:#fff0e9;color:#602517;padding:20px;margin:24px 0}
.form-errors h2,.form-errors h3{color:#602517;font-size:1.25rem;margin:0 0 12px}
.form-errors p,.form-errors li{color:#602517}
.form-errors ul{margin-bottom:0}
.form-errors a{color:#602517;text-decoration:underline;text-underline-offset:.2em}
:is(input,select,textarea)[aria-invalid="true"]{border:2px solid #943c23}
.question fieldset{border:0;padding:0;margin:0;min-width:0}
@media(forced-colors:active){:is(a,button,input,select,textarea,summary,[tabindex]):focus{outline-color:Highlight}.form-errors,:is(input,select,textarea)[aria-invalid="true"]{border-color:CanvasText}.field-error{color:CanvasText}}
.header-inner{gap:20px}
.a11y-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:9px 10px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--green);font-size:.75rem;font-weight:600;flex-shrink:0}
.a11y-trigger:hover{background:#e0e9dc}
.a11y-active-dot{position:absolute;right:2px;top:2px;width:9px;height:9px;border-radius:50%;background:var(--green);border:2px solid var(--paper)}
.tos-a11y-open{overflow:hidden;scrollbar-gutter:stable}
.a11y-panel{position:fixed;inset:0 0 0 auto;margin:0;width:min(450px,100%);max-width:100%;height:100%;height:100dvh;max-height:100dvh;padding:0;border:0;border-left:1px solid var(--line);background:var(--paper);color:var(--ink);overflow-y:auto;overscroll-behavior:contain;font-size:1rem;line-height:1.5;box-shadow:-15px 0 50px #192b2420}
.a11y-panel:not([open]){display:none}
.a11y-panel::backdrop{background:#10241e88}
.a11y-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 24px;background:var(--soft);border-bottom:1px solid var(--line);font-size:.8125rem;font-weight:650}
.a11y-close{width:44px;min-height:44px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);flex-shrink:0}
.a11y-body{padding:25px 24px 30px}
.a11y-body h2{font-size:1.875rem;line-height:1.2;letter-spacing:-.035em;margin:0 0 12px}
.a11y-body>p{font-size:.9375rem;line-height:1.65;margin:0 0 20px}
.a11y-preset{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--green);color:white;border:1px solid var(--green);border-radius:8px;padding:14px 16px;font-size:.9375rem;font-weight:600;line-height:1.45;text-align:left}
.a11y-body .a11y-hint{font-size:.8125rem;line-height:1.65;margin:10px 0 24px}
.a11y-size{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding:22px 0;font-weight:600;font-size:.9375rem}
.a11y-size select{width:auto;min-width:105px;min-height:44px;background:var(--white);color:var(--ink);border:1px solid var(--muted);border-radius:6px;padding:9px 12px;font-size:1rem}
.a11y-colours{border:0;padding:0;margin:0 0 24px;min-width:0}
.a11y-colours legend{font-size:.9375rem;font-weight:600;margin-bottom:12px}
.a11y-colours>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.a11y-colour-option{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:8px;min-height:54px;padding:10px 8px;line-height:1.4;font-size:.8125rem;cursor:pointer}
.a11y-colour-option:has(input:checked){border:2px solid var(--green);background:var(--soft);padding:9px 7px}
.a11y-panel input{accent-color:var(--green);flex-shrink:0;width:18px;height:18px;margin:0}
.a11y-switch{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:58px;padding:15px 0;border-top:1px solid var(--line);font-size:.9375rem;line-height:1.5;cursor:pointer}
.a11y-switch input{width:24px;height:24px}
.a11y-switch:has(input:checked)>span{font-weight:650}
.a11y-switch:has(input:disabled){cursor:default}
.a11y-body .a11y-privacy{font-size:.8125rem;border-top:1px solid var(--line);padding-top:22px;margin-bottom:12px}
.a11y-body .a11y-status{font-size:.8125rem;color:var(--green);margin:0 0 15px}
.a11y-status:empty{display:none}
.a11y-actions{display:flex;flex-wrap:wrap;gap:10px}
.a11y-actions button{min-height:46px;border:1px solid var(--muted);border-radius:7px;padding:10px 14px;font-size:.875rem;line-height:1.5;background:transparent;color:var(--ink);flex:1}
.a11y-actions .a11y-done{background:var(--green);border-color:var(--green);color:white}
.a11y-help{display:inline-block;text-decoration:underline;text-underline-offset:4px;margin-top:20px;font-size:.8125rem;line-height:1.65;color:var(--green)}
:focus-visible{outline:3px solid #a55d00;outline-offset:4px}
.a11y-panel :focus-visible{outline-offset:3px}
@media(max-width:1300px){.a11y-trigger>span{display:none}}
@media(max-width:1100px){.header-inner{gap:12px}.menu-toggle{margin-left:auto}.a11y-trigger{margin-left:0}}
@media(max-width:430px){.header-inner{gap:8px}.menu-toggle{min-height:44px;padding:7px 9px}.menu-toggle span{margin-left:6px}.a11y-body{padding:23px 20px}.a11y-heading{padding:12px 20px}.a11y-colours>div{grid-template-columns:1fr}.a11y-colour-option{min-height:44px}}

/* Text uses rem in site.css, so text reflows instead of magnifying a fixed canvas. */
html[data-tos-text="100"]{--tos-text-factor:1}
html[data-tos-text="125"]{font-size:125%;--tos-text-factor:1.25}
html[data-tos-text="150"]{font-size:150%;--tos-text-factor:1.5}
html[data-tos-text="175"]{font-size:175%;--tos-text-factor:1.75}
html[data-tos-text="200"]{font-size:200%;--tos-text-factor:2}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) :is(main,.site-footer,.consultation-band){overflow-wrap:anywhere}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .brand{font-size:19px}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .brand-symbol{font-size:24px}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .header-inner{height:auto;min-height:76px;padding-block:8px}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .menu-toggle{display:block;margin-left:auto;font-size:14px;min-height:44px}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .site-header nav{display:none;position:absolute;top:100%;left:0;right:0;max-height:70dvh;overflow:auto;background:var(--paper);padding:20px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .site-header nav.is-open{display:flex}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .site-header nav>a{white-space:normal;font-size:.9375rem;padding:10px;min-height:44px}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .a11y-trigger>span{display:none}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) :is(.hero-grid,.illustrated-hero,.content-columns,.tool-layout,.contact-layout,.split-editorial,.managed-panel){grid-template-columns:minmax(0,1fr)}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) :is(.hero-copy,.hero-copy>p,.page-hero-copy,.page-hero-copy>p){max-width:none;min-width:0}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .hero h1 br{display:none}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) :is(.directory-grid,.product-grid,.exit-card-grid,.resource-grid){grid-template-columns:repeat(auto-fit,minmax(min(100%,350px),1fr))}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) :is(.cta-panel,.consultation-inner){flex-wrap:wrap}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .consultation-actions{flex-shrink:1;max-width:100%}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .resource-card{padding:0 0 30px}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .resource-card .resource-art{position:relative;width:100%;height:180px;margin-bottom:20px}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .resource-card>svg{left:0}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .result-panel{position:static;max-height:none}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .a11y-colours>div{grid-template-columns:1fr}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .a11y-size{flex-wrap:wrap}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .a11y-panel{overflow-wrap:anywhere}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .whatsapp-float span{display:none}
:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .whatsapp-float{padding:12px}
@media(max-width:760px){
 :is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .brand{font-size:16px}
 :is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) :is(.footer-grid,.category-grid,.lifecycle,.form-grid,.product-facts){grid-template-columns:minmax(0,1fr)}
 :is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .category-tile{white-space:normal;flex-wrap:wrap}
 :is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .team-bar>.container{flex-wrap:wrap;padding-block:8px}
 :is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .team-bar>.container>span{max-width:none}
 :is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .a11y-actions{flex-direction:column}
}
html[data-tos-spacing] :is(p,li,a,button,label,input,select,textarea,summary,h1,h2,h3,h4,legend,td,th){letter-spacing:.12em!important;word-spacing:.16em!important}
html[data-tos-spacing] .brand,html[data-tos-spacing] .brand *{letter-spacing:normal!important;word-spacing:normal!important}
html[data-tos-lines] :is(p,li,td,th,label,summary,button,input,select,textarea){line-height:1.85!important}
html[data-tos-lines] p{margin-bottom:2em!important}
html[data-tos-lines] :is(h1,h2,h3,h4){line-height:1.5!important}
html[data-tos-links] a{text-decoration:underline!important;text-underline-offset:.2em;text-decoration-thickness:max(1px,.07em)}
html[data-tos-motion]{scroll-behavior:auto!important}
html[data-tos-motion] *,html[data-tos-motion] *::before,html[data-tos-motion] *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
html[data-tos-images] .editorial-picture{display:none!important}
html[data-tos-images] .illustrated-hero{grid-template-columns:minmax(0,1fr)}
html[data-tos-images] .illustrated-card{padding-left:24px!important}
html[data-tos-pointer],html[data-tos-pointer] *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='48' viewBox='0 0 40 48'%3E%3Cpath d='M4 3v34l9-9 8 16 7-4-8-16h13Z' fill='%23000' stroke='%23fff' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") 4 3,auto!important}
html[data-tos-pointer] :is(input,textarea,[contenteditable="true"]){cursor:text!important}

html[data-tos-contrast="light"]{--a11y-bg:#fff;--a11y-fg:#101810;--a11y-link:#004c30;--a11y-border:#415346;--paper:#fff;--white:#fff;--soft:#fff;--ink:#101810;--muted:#101810;--green:#004c30;--line:#415346;color-scheme:light}
html[data-tos-contrast="dark"]{--a11y-bg:#101916;--a11y-fg:#f5f8f5;--a11y-link:#c6f59a;--a11y-border:#a0b4a6;--paper:#101916;--white:#101916;--soft:#101916;--ink:#f5f8f5;--muted:#f5f8f5;--green:#c6f59a;--line:#a0b4a6;color-scheme:dark}
html:is([data-tos-contrast="light"],[data-tos-contrast="dark"]) body{background:var(--a11y-bg)!important;color:var(--a11y-fg)!important}
html:is([data-tos-contrast="light"],[data-tos-contrast="dark"]) body *:not(svg):not(svg *){color:var(--a11y-fg)!important;background-color:transparent!important;background-image:none!important;border-color:var(--a11y-border)!important;text-shadow:none!important;box-shadow:none!important}
html:is([data-tos-contrast="light"],[data-tos-contrast="dark"]) :is(.site-header,#primary-nav,.a11y-panel,.a11y-heading,.whatsapp-float,select,option,input,textarea){background-color:var(--a11y-bg)!important}
html:is([data-tos-contrast="light"],[data-tos-contrast="dark"]) a{color:var(--a11y-link)!important}
html:is([data-tos-contrast="light"],[data-tos-contrast="dark"]) :is(button,.button,.nav-cta){border:1px solid var(--a11y-fg)!important}
html:is([data-tos-contrast="light"],[data-tos-contrast="dark"]) .a11y-colour-option:has(input:checked){outline:2px solid var(--a11y-link)}
html:is([data-tos-contrast="light"],[data-tos-contrast="dark"]) :focus-visible{outline-color:var(--a11y-link)!important}
@media(forced-colors:active){.a11y-panel{border:1px solid CanvasText}.a11y-colour-option:has(input:checked){outline:2px solid Highlight}.a11y-active-dot{background:Highlight}html[data-tos-contrast]{--a11y-bg:Canvas;--a11y-fg:CanvasText;--a11y-link:LinkText;--a11y-border:CanvasText}}
@media print{.a11y-trigger,.a11y-panel{display:none!important}html.tos-a11y-open{overflow:visible}}

/* Navigation and language controls must remain reachable at narrow widths. */
.language-switcher{flex-wrap:wrap;max-width:100%}
.language-switcher .language-reset{white-space:normal;overflow-wrap:anywhere}
.footer-bottom>nav{min-width:0}
@media(max-width:380px){
 .site-header .brand,:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .site-header .brand{font-size:14px}
 .menu-toggle,:is(html[data-tos-text]:not([data-tos-text="100"]),html[data-tos-spacing]) .menu-toggle{font-size:0;width:44px;min-width:44px;padding:8px}
 .menu-toggle span{font-size:18px;margin:0;letter-spacing:0!important}
}
