/* B5: two brand colours ensure a visible focus ring on both light and dark surfaces. */
:where(a,button,input,textarea,select,[tabindex]):focus-visible{
  outline:3px solid #173f38!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 3px #fff!important;
}
.dark :where(a,button,input,textarea,select,[tabindex]):focus-visible,
.home-hero :where(a,button):focus-visible{
  outline-color:#fff!important;box-shadow:0 0 0 3px #173f38!important;
}
.skip-link{position:fixed;top:12px;left:12px;z-index:50;background:#173f38;color:white;padding:12px 20px;border-radius:8px;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
html{scroll-padding-bottom:calc(var(--cookie-reserve,0px) + 20px)}
body::after{content:'';display:block;height:var(--cookie-reserve,0px)}
.cookie-banner{max-height:min(45dvh,calc(var(--visible-height,100dvh) * .45));overscroll-behavior:contain}
.cookie-banner :focus-visible{scroll-margin-block:12px}
.chat-dialog{max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain}
.chat-dialog .quick-contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:24px}
.chat-dialog .quick-contact-links a{margin:0}
.contact-form .field-error{font-size:13px;line-height:1.45;font-weight:400;color:#173f38}
.contact-form .field-error:empty{display:none}
.contact-form [aria-invalid=true]{border-width:2px}
.contact-form button:disabled{cursor:wait;opacity:.75}
.contact-form .form-status{scroll-margin-block:24px}
.contact-form .form-status[data-state=error]{border-left:3px solid #173f38;padding-left:14px}
.contact-form .form-status[data-state=success]{background:#eff5f3;padding:18px;border-radius:10px}
.contact-form .form-status:empty{display:none}
.contact-form .contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.contact-form .button [data-submit-label]{font:inherit;line-height:inherit;transform:none}
/* The other fixed control must move too: page scrolling cannot reveal a fixed button. */
.chat-trigger{bottom:calc(var(--cookie-reserve,0px) + 24px)}
@media(max-width:767px){.chat-trigger{bottom:calc(var(--cookie-reserve,0px) + 15px)}}

/* Prevent long cookie storage identifiers from widening the legal grid. */
.legal-layout>*{min-width:0}.legal-body{overflow-wrap:anywhere}
