/* Maintained accessibility and performance overrides; loaded after main.css. */
@font-face {
  font-family: Montserrat;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/montserrat/normal.woff2') format('woff2');
}
@font-face {
  font-family: Montserrat;
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/montserrat/italic.woff2') format('woff2');
}
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: .5rem; left: .5rem; transform: translateY(-200%); z-index: 10000003; background: white; color: #131313; padding: .75rem; }
.skip-link:focus { transform: none; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, [role='button']:focus-visible { outline: 3px solid #176098; outline-offset: 3px; }
#header { height: 6rem; line-height: normal; }
#header .site-header { display: flex; align-items: center; justify-content: space-between; height: 100%; gap: 1rem; }
.site-logo { display: block; width: min(28vw, 320px); flex-shrink: 0; line-height: 0; }
.img_logo { display: block; width: 100%; height: auto; }
.image img { height: auto; }
.adGifs { height: auto; }
#banner .image img { max-width: 300px; }
#page-wrapper { padding-top: 6rem; }
#header #nav { display: block; position: static; height: auto; line-height: 1.5; }
#header #nav > ul { display: flex; align-items: center; gap: .75rem; margin: 0; padding: 0; }
#header #nav > ul > li { display: block; padding: 0; }
#header #nav > ul > li > a { display: block; padding: .65rem .35rem; font-size: .85rem; }
#header #nav a[aria-current='page'] { font-weight: 700; text-decoration: underline; text-underline-offset: .25rem; }
.menu-toggle { display: none; padding: .65rem; color: white; background: #176098; border: 0; cursor: pointer; min-width: 44px; min-height: 44px; }
#navButton, #navPanel { display: none !important; }
.footer-heading { font-size: 1.2em; }
.newsletter-dialog { --newsletter-max-height: calc(100dvh - 64px - env(safe-area-inset-bottom)); position: fixed; inset: auto max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) auto; z-index: 10001; width: min(600px, calc(100vw - 48px)); max-width: none; max-height: var(--newsletter-max-height); margin: 0; padding: 0; border: 0; border-radius: 0; background: white; overflow: visible; box-shadow: 0 12px 48px rgb(0 0 0 / .25); }
.newsletter-dialog[open] { animation: newsletter-slide-in .4s ease-out; }
.newsletter-dialog::backdrop { background: rgb(0 0 0 / .65); }
html.newsletter-open { overflow: hidden; }
@keyframes newsletter-slide-in { from { transform: translateX(calc(100% + 48px)); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
.newsletter-dialog .newsletter-close { position: absolute; top: -16px; right: -16px; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; min-width: 44px; padding: 8px; border: 0; border-radius: 50%; background: black; color: white; cursor: pointer; box-shadow: 0 2px 4px rgb(0 0 0 / .25); }
.newsletter-close svg { display: block; width: 100%; height: 100%; }
.newsletter-dialog iframe { display: block; width: 100%; height: min(420px, var(--newsletter-max-height)); max-height: var(--newsletter-max-height); aspect-ratio: auto; border: 0; background: white; }
/* Keep a measurable frame while the provider loads, without opening a modal,
   starting its animation, taking focus or covering the page. */
.newsletter-dialog.is-preparing { display: block; visibility: hidden; pointer-events: none; }
@media (max-width: 960px) {
  /* Leave room for the chat greeting below the newsletter on narrow screens. */
  .newsletter-dialog { --newsletter-max-height: calc(100dvh - 148px - env(safe-area-inset-bottom)); bottom: calc(108px + env(safe-area-inset-bottom)); }
}
.chat-launcher { position: fixed; left: 20px; bottom: max(20px, env(safe-area-inset-bottom)); z-index: 10000; max-width: calc(100vw - 40px); }
.chat-launcher-button { display: flex; align-items: center; gap: 22px; padding: 0; border: 0; background: transparent; color: #333; font: 400 18px/1.4 Arial, sans-serif; text-align: left; cursor: pointer; }
.chat-launcher-icon { display: grid; place-items: center; flex: 0 0 72px; width: 72px; height: 72px; padding: 17px; border-radius: 50%; background: #008ff5; color: white; }
.chat-launcher-icon svg { width: 100%; height: 100%; }
.chat-launcher-greeting { position: relative; display: flex; flex-direction: column; gap: 2px; padding: 14px 20px; border-radius: 9px; background: white; box-shadow: 0 5px 18px rgb(0 0 0 / .2); }
.chat-launcher-greeting::before { content: ''; position: absolute; left: -8px; top: calc(50% - 8px); width: 16px; height: 16px; transform: rotate(45deg); border-radius: 3px; background: white; }
.chat-launcher-greeting strong { font-weight: 400; }
.chat-launcher-greeting > span { color: #666; }
.chat-launcher-button:disabled { cursor: wait; }
.chat-status:empty { display: none; }
.chat-status { max-width: 330px; margin: 12px 0 0; padding: 12px; border-radius: 6px; background: white; color: #333; box-shadow: 0 5px 18px rgb(0 0 0 / .2); font: 14px/1.5 Arial, sans-serif; }
@media (max-width: 480px) {
  .chat-launcher { left: 12px; bottom: max(12px, env(safe-area-inset-bottom)); max-width: calc(100vw - 24px); }
  .chat-launcher-button { gap: 16px; font-size: 16px; }
  .chat-launcher-icon { flex-basis: 56px; width: 56px; height: 56px; padding: 12px; }
  .chat-launcher-greeting { padding: 12px 16px; }
}
.leadership-toggle:hover, .leadership-toggle.active { color: white; background: var(--savit-purple); }
/* SAVIT palette buttons keep dark text: white text fails contrast on every palette colour. */
.button, .wrapper.style4 .button { background-color: var(--savit-green); color: var(--savit-ink) !important; }
.button:hover { background-color: var(--savit-yellow) !important; }
.button.special { background-color: var(--savit-orange); color: var(--savit-ink) !important; }
.button.special:hover, .button.special:active { background-color: var(--savit-yellow) !important; }
.leadership-toggle.active::after { color: white; }
.leadership-content { display: block; }
.contact-intro { color: #131313; text-align: left; font-size: 1rem; }
[data-contact] { background: #176098; color: white; border: 0; border-radius: .2rem; padding: .9rem 1.2rem; font: inherit; cursor: pointer; }
#contact-form { text-align: left; }
#contact-form #SIGNUP_PAGE { padding: 1rem !important; }
#contact-form #SIGNUP_HEADING { color: white !important; background: #156f89 !important; font-size: 1.25rem !important; }
#contact-form #signupMainDiv, #contact-form #imgBlock { width: 100% !important; min-width: 0 !important; max-width: 600px !important; }
#contact-form label { color: #333 !important; }
#contact-form #zcWebOptin { background: #426719 !important; border-color: #426719 !important; }
#contact-form input[type='text'], #contact-form input[type='email'], #contact-form textarea { font-size: 16px !important; }
#contact-form #iframeImg { width: 100px; height: auto; }
#contact-form #privacyNotes { height: auto !important; color: #333; }
#contact-form #relCaptcha { border: 1px solid #666; padding: 2px; }
#contact-form #zcOptinSuccessPopup { width: min(600px, 90vw) !important; height: auto !important; top: 10vh !important; left: 5vw !important; }
.iubenda-cs-brand img { width: 75px; height: 32px; object-fit: contain; }
input[type='checkbox'] + label::before { font-family: sans-serif; }
input[type='checkbox']:checked + label::before { content: '✓'; }
input[type='radio']:checked + label::before { content: '●'; font-family: sans-serif; }
@media (max-width: 1080px) {
  #header { height: 4.5rem; }
  #header .site-header { padding: 0 1rem; }
  .site-logo { width: min(65vw, 240px); }
  #page-wrapper { padding-top: 4.5rem; }
  .js .menu-toggle { display: inline-flex; justify-content: center; align-items: center; }
  #header #nav { position: absolute; top: 4.5rem; left: 0; right: 0; background: white; box-shadow: 0 4px 5px rgb(0 0 0 / .15); max-height: calc(100vh - 4.5rem); overflow-y: auto; }
  .js #header #nav:not(.is-open) { display: none; }
  #header #nav > ul { display: block; padding: .5rem 1rem; }
  #header #nav > ul > li > a { padding: .8rem; }
  html:not(.js) #header { position: relative; height: auto; }
  html:not(.js) #header .site-header { display: block; padding: 1rem; }
  html:not(.js) #header #nav { position: static; box-shadow: none; }
  html:not(.js) #page-wrapper { padding-top: 0; }
}
@media (max-width: 650px) {
  .adverts { display: none; }
  #contact-form [name='SIGNUP_FORM_LABEL'], #contact-form .zcinputbox, #contact-form #captchaParent { float: none !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
  #contact-form .recaptcha { transform: none !important; margin: 0 !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
.responsive-row { display: flex; flex-wrap: wrap; }
@media (max-width: 736px) {
  .responsive-copy { order: 0; }
  .responsive-image { order: 1; }
}
