/* Shared, gentle interactions. No essential content depends on animation. */
.mgs-privacy-consent{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:12px;margin:20px 0 8px;min-width:0;text-align:left}
.mgs-privacy-consent input[type="checkbox"]{width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;max-width:20px;padding:0;margin:5px 0 0;accent-color:#008f83;cursor:pointer;border-radius:4px}
.mgs-privacy-consent label{display:block;padding:8px 0;margin:0!important;font-size:15px!important;line-height:1.55;font-weight:400!important;min-height:44px;cursor:pointer;color:#082e5e;overflow-wrap:break-word}
.mgs-privacy-consent a{font-weight:600;text-decoration:underline;text-underline-offset:3px}
.mgs-privacy-consent :is(input,a):focus-visible{outline:3px solid #159fea;outline-offset:4px}
.mgs-consent-note{font-size:13px!important;line-height:1.5;color:#526881;margin:0 0 20px!important}
:is(.cta,.additional-button,.final-enquiry,.location-load-map){transition:box-shadow .22s ease,filter .22s ease,background-position .35s ease}
:is(.cta,.additional-button,.final-enquiry):hover{filter:brightness(1.04);box-shadow:0 7px 20px #008f8326}
:is(.cta,.additional-button,.final-enquiry):active{filter:brightness(.95)}
.mgs-header{transition:box-shadow .25s ease}
.mgs-header.mgs-scrolled{box-shadow:0 4px 22px #082e5e0d}
.mgs-header nav a{transition:color .2s ease}
.mgs-header nav a:hover{color:#008f83}
:is(.city-card,.intensive-card,.small-service,.featured-service,.contact-card,.area-service-card){transition:box-shadow .25s ease,border-color .25s ease}
:is(.city-card,.intensive-card,.small-service,.featured-service,.contact-card,.area-service-card):hover{box-shadow:0 9px 28px #082e5e12;border-color:#91cec4}
:is(.city-card,.intensive-card,.small-service,.featured-service,.area-service-card):focus-within{border-color:#008f83}
:is(.faq-button,.home-faq-item summary){transition:background-color .2s ease}
:is(.faq-button,.home-faq-item summary):hover{background-color:#eff9f6}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Shared sticky header; clip preserves desktop decoration without creating a scroll container. */
.site{overflow:clip}
.mgs-header{position:sticky!important;top:0;z-index:100;background:#fff}
html{scroll-padding-top:calc(var(--mgs-header-height,100px) + 16px)}
[id]{scroll-margin-top:calc(var(--mgs-header-height,100px) + 16px)!important}
@media(max-width:1024px){.mgs-header #main-menu{max-height:calc(100vh - var(--mgs-header-height,86px) - 16px);max-height:calc(100dvh - var(--mgs-header-height,86px) - 16px - env(safe-area-inset-bottom,0px))}}
