/* Sticky menu for the new site shell */
html,body{overflow-x:clip}
.site{overflow:clip}
.topbar{position:sticky;top:0;z-index:70}
/* Accessibility widget */
.a11y-btn{position:fixed;bottom:24px;inset-inline-end:24px;z-index:90;width:60px;height:60px;border-radius:50%;border:2px solid #0a151d;background:#1fd7e5;color:#0a151d;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 14px rgba(10,21,29,.25);transition:transform .2s}
.a11y-btn:hover{transform:scale(1.06)}
.a11y-btn:focus-visible{outline:4px solid #ff684f;outline-offset:3px}
.a11y-btn svg{width:32px;height:32px}
.a11y-panel{position:fixed;bottom:96px;inset-inline-end:24px;z-index:91;width:min(320px,calc(100vw - 48px));background:#f7f3e8;border:2px solid #0a151d;border-radius:14px;box-shadow:0 12px 40px rgba(10,21,29,.3);padding:18px;font-family:Heebo,Arial,sans-serif;color:#0a151d;display:none;max-height:calc(100vh - 130px);overflow-y:auto}
.a11y-panel.open{display:block}
.a11y-panel h2{margin:0 0 12px;font-size:19px;font-weight:800;display:flex;justify-content:space-between;align-items:center}
.a11y-close{border:0;background:0 0;font-size:22px;cursor:pointer;line-height:1;padding:4px 8px;color:inherit}
.a11y-close:focus-visible{outline:3px solid #ff684f}
.a11y-grid{display:grid;gap:8px}
.a11y-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:11px 14px;border:2px solid #0a151d;border-radius:10px;background:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer;text-align:start;color:#0a151d}
.a11y-opt:hover{background:#ffd942}
.a11y-opt:focus-visible{outline:3px solid #ff684f;outline-offset:2px}
.a11y-opt[aria-pressed="true"]{background:#0a151d;color:#fff}
.a11y-opt .st{font-size:12px;font-weight:700;background:#1fd7e5;color:#0a151d;border-radius:20px;padding:2px 10px}
.a11y-opt[aria-pressed="true"] .st{background:#ff684f}
.a11y-reset{background:#ff684f}
.a11y-reset:hover{background:#ff8468}
.a11y-note{margin:12px 0 0;font-size:12px;line-height:1.5;color:#40505c}
html.a11y-large-text body{font-size:125% !important}
html.a11y-larger-text body{font-size:150% !important}
html.a11y-contrast body,html.a11y-contrast .site{background:#fff !important;color:#000 !important}
html.a11y-contrast *{background-image:none !important;text-shadow:none !important}
html.a11y-contrast a,html.a11y-contrast button{color:#0000ee !important}
html.a11y-gray body>:not(.a11y-btn):not(.a11y-panel){filter:grayscale(1)}
html.a11y-links a{text-decoration:underline !important;text-decoration-thickness:2px !important;outline:2px solid currentColor}
html.a11y-nomotion *,html.a11y-nomotion *::before,html.a11y-nomotion *::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
html.a11y-focus :focus-visible{outline:5px solid #ff684f !important;outline-offset:3px !important}
@media (max-width:600px){.a11y-btn{width:52px;height:52px;bottom:16px;inset-inline-end:16px}.a11y-panel{bottom:80px;inset-inline-end:16px}}
/* Honeypot: replace offscreen absolute positioning (breaks iOS layout) with in-place clipping */
.contact input[name="website"]{position:absolute !important;left:0 !important;top:0 !important;width:1px !important;height:1px !important;margin:0 !important;padding:0 !important;border:0 !important;opacity:0 !important;overflow:hidden !important;pointer-events:none !important}

/* service pages dropdown in primary nav */
.topbar nav .navDrop{position:relative;display:inline-flex}
.topbar nav .navDropMenu{display:none;position:absolute;top:100%;inset-inline-start:-12px;background:#fff;border:1px solid var(--ink);box-shadow:6px 6px 0 var(--coral);padding:8px 0;min-width:230px;z-index:40;flex-direction:column}
.topbar nav .navDrop:hover .navDropMenu,.topbar nav .navDrop:focus-within .navDropMenu{display:flex}
.topbar nav .navDropMenu a{padding:9px 18px;font-size:13px;font-weight:600;white-space:nowrap}
.topbar nav .navDropMenu a:hover{background:var(--yellow);text-decoration:none}
@media (width<=900px){
.topbar nav .navDrop{display:flex;flex-direction:column}
.topbar nav .navDropMenu{display:flex;position:static;border:0;box-shadow:none;padding:0;min-width:0;background:transparent}
.topbar nav .navDropMenu a{padding:5px 0;font-weight:400;opacity:.85;padding-inline-start:26px}
}

/* taller mobile menu: keep lang button below the open nav */
@media (width<=900px){.topbar:has(nav.open) .actions{top:522px}}
@media (width<=560px){.topbar:has(nav.open) .actions{top:508px}}
