/* Preserve the old visual heading sizes while correcting document structure. */
main { display: block; }
.seo-heading-3 { font-size: 24px; line-height: 1.2; }
.seo-heading-4 { font-size: 20px; line-height: 1.35; }
@media (min-width: 768px) { .seo-heading-3 { font-size: 30px; } .seo-heading-4 { font-size: 24px; } }
.cookie-panel, .cookie-settings { font-family: Arial, sans-serif; font-size: 15px; line-height: 1.5; }
.cookie-panel, .cookie-panel *, .cookie-settings { box-sizing: border-box; }
.cookie-panel { position: fixed; z-index: 2147483000; bottom: 16px; left: 16px; width: calc(100% - 32px); max-width: 460px; max-height: calc(100vh - 32px); overflow: auto; padding: 14px; color: #222; background: #fff; border: 1px solid #767676; border-radius: 8px; box-shadow: 0 4px 24px #0003; text-align: left; }
.cookie-panel[hidden] { display: none !important; }
.cookie-panel h2 { font-size: 17px; margin: 0 0 6px; color: #222; }
.cookie-panel p { margin: 0 0 12px; }
.cookie-panel label { display: block; margin: 10px 0; font-weight: normal; }
.cookie-panel input { margin-right: 8px; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cookie-panel button { cursor: pointer; border: 1px solid #315420; background: #fff; color: #223c17; padding: 9px 12px; border-radius: 4px; }
.cookie-panel button:focus-visible, .cookie-settings:focus-visible { outline: 3px solid #1565c0; outline-offset: 3px; }
.cookie-settings-line { display: none; text-align: center; padding: 8px 12px; }
.cookie-settings { font-size: 12px; text-decoration: underline; cursor: pointer; }
#cookie-details { margin-top: 12px; border-top: 1px solid #ddd; padding-top: 4px; }
#cookie-details[hidden] { display: none !important; }
.cookie-panel button:hover, .cookie-settings:hover { background: #edf4e8; }
.map-consent-note { padding: 20px; border: 1px solid #ddd; }
.map-consent-note button { padding: 10px; cursor: pointer; }
.map-consent-note[hidden] { display: none !important; }

/* Keyboard visibility and semantic buttons; retain the legacy menu dimensions. */
a:focus-visible, button:focus-visible, [role="button"]:focus-visible,
input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid #1565c0 !important;
  outline-offset: 3px;
}
button.rd-navbar-collapse-toggle { padding: 0; border: 0; background: transparent; }
button.rd-navbar-submenu-toggle { padding: 0; border: 0; background: transparent; }
.rd-navbar-fixed button.rd-navbar-submenu-toggle {
  position: absolute; top: 0; right: 0; width: 65px; height: 48px;
}
/* Preserve the old paragraph spacing when its rich-text wrapper becomes a div. */
* + .cms-rich-text { margin-top: 10px; }
h2 + .cms-rich-text { margin-top: 30px; }
.cms-rich-text > :first-child { margin-top: 0; }
.block-services-title.heading-4 + p { margin-top: 20px; }
.heading-4 + .range { margin-top: 40px; }
