/* Site migration overrides: preserve classic desktop theme, fix functional mobile layout and footer. */
html { scroll-behavior: smooth; }
body { min-width: 0; overflow-x: clip; }
#main-wrapper { width: calc(100% - 24px); max-width: 1040px; margin: 32px auto; }
header::after { content: ""; display: block; clear: both; }
#logo img { max-width: 100%; height: auto; }
#mainmenu-wrapper { float: none; display: flow-root; }
#content-wrapper, #special-content-wrapper { width: 100%; max-width: 100%; }
#content-wrapper { box-sizing: border-box; }
#mainmenu { max-width: 100%; }
#mainmenu ul li { padding-left: 12px; padding-right: 12px; }
#top-info ul li { max-width: 100%; }
#content-wrapper img, #special-content-wrapper img { max-width: 100%; height: auto; }
.google-map-container iframe { width: 100%; min-height: 280px; max-width: 100%; border: 0; }
/* Footer: remove forced 138/143px heights and equal-height script behavior. */
footer {
  width: 100%; max-width: 1040px; display: grid;
  grid-template-columns: minmax(0, 34%) minmax(0, 1fr);
  align-items: stretch; overflow: hidden; box-sizing: border-box;
  margin-top: 28px; background-position: left top;
}
footer .footer-logo, footer .footer-column {
  width: auto; height: auto; min-height: 0; float: none;
  box-sizing: border-box; border-radius: 0; margin: 0;
}
footer .footer-logo { display: flex; align-items: center; padding: 14px 20px; }
footer .footer-logo img { display: block; width: min(100%, 275px); height: auto; }
footer .footer-column { display: flex; align-items: center; padding: 14px 24px; }
footer .footer-column p { margin: 0; line-height: 1.65; overflow-wrap: anywhere; }
footer > .clear { display: none; }
/* Home carousel: native two-slide playback, visual elements from the existing theme remain. */
#layerslider-container { float: none; width: 100%; height: auto; overflow: hidden; background: #477fa9; }
#layerslider { position: relative; width: 100%; height: clamp(270px, 43.27vw, 450px); margin: 0 auto; overflow: hidden; isolation: isolate; }
#layerslider .ls-layer {
  position: absolute; inset: 0; display: block; visibility: hidden;
  opacity: 0; transition: opacity .55s ease; overflow: hidden;
}
#layerslider .ls-layer:first-child { opacity: 1; visibility: visible; }
#layerslider.slider-ready .ls-layer:first-child { opacity: 0; visibility: hidden; }
#layerslider.slider-ready .ls-layer.is-active { opacity: 1; visibility: visible; z-index: 1; }
#layerslider .ls-bg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
#layerslider .ls-layer > h3, #layerslider .ls-layer > h5, #layerslider .ls-layer > p { position: absolute; z-index: 1; max-width: min(80%, 820px); height: auto; }
#layerslider .ls-heading-box-red { font-size: clamp(17px,2.25vw,26px); font-weight: 700; line-height: 1.4; }
#layerslider .ls-heading-box { font-size: clamp(13px,1.7vw,18px); line-height: 1.5; }
#layerslider .ls-text2 { color: #fff; max-width: 64%; font-size: clamp(12px,1.4vw,15px); line-height: 1.6; text-shadow: 0 1px 3px #343434; }
#layerslider .slider-controls { position: absolute; z-index: 4; top: 50%; left: 0; right: 0; transform: translateY(-50%); display: flex; justify-content: space-between; pointer-events: none; padding: 0 8px; }
#layerslider .slider-arrow { width: 40px; height: 48px; border: 0; border-radius: 4px; background: rgba(22,22,22,.45); color: #fff; font: 40px/1 Arial,sans-serif; cursor: pointer; pointer-events: auto; }
#layerslider .slider-arrow:hover, #layerslider .slider-arrow:focus-visible { background: rgba(22,22,22,.8); outline: 2px solid #fff; outline-offset: 2px; }
/* Mobile grid/captions and contact form overflow. */
.contact-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
#contact-status { clear: both; margin: 12px 0; font-size: 13px; }
#contact-status[data-state="error"] { color: #a32828; }
#contact-status[data-state="success"] { color: #1b6636; }
@media (max-width: 959px) {
  #main-wrapper { margin: 12px auto; }
  #mainmenu { width: 100%; margin: 0; }
  #mainmenu .tinynav { width: calc(100% - 32px); max-width: 560px; min-height: 44px; margin: 12px auto; display: block !important; }
  #mainmenu #menu { display: flex; width: 100%; float: none; flex-wrap: wrap; justify-content: center; }
  #mainmenu #menu li { padding: 6px 9px; margin: 0; }
  #mainmenu #menu.l_tinynav1 { display: none; }
  #mainmenu-wrapper { min-height: 68px; }
  #layerslider .ls-layer > h3 { top: 14% !important; left: 8% !important; }
  #layerslider .ls-layer > h5 { top: 33% !important; left: 8% !important; max-width: 80%; }
  #layerslider .ls-layer > p { top: 64% !important; left: 8% !important; }
}
@media (max-width: 767px) {
  #main-wrapper { width: calc(100% - 16px); }
  #logo { margin: 10px auto 20px; width: 100%; float: none; text-align: center; }
  #logo img { width: min(280px,100%); }
  #top-info { display: none; }
  #content-wrapper { padding: 26px 0 22px; }
  #special-content-wrapper { padding-top: 18px; }
  #mainmenu-wrapper { float: none; }
  .row { min-width: 0; }
  #layerslider { height: 300px; }
  #layerslider .ls-bg { object-position: 55% center; }
  #layerslider .ls-layer > h3 { top: 12% !important; left: 7% !important; max-width: 84%; }
  #layerslider .ls-layer > h5 { top: 33% !important; left: 7% !important; max-width: 84%; }
  #layerslider .ls-layer > p { top: 71% !important; left: 7% !important; max-width: 84%; display: block !important; }
  #layerslider .ls-heading-box-red { font-size: clamp(16px,4vw,22px); padding: 4px 8px; }
  #layerslider .ls-heading-box { font-size: clamp(12px,3.25vw,16px) !important; line-height: 1.4; padding: 4px 8px; }
  #layerslider .ls-text2 { font-size: 12px; line-height: 1.4; }
  #layerslider .slider-arrow { width: 30px; height: 42px; font-size: 32px; }
  footer { grid-template-columns: 1fr; margin-top: 20px; background: #fff; }
  footer .footer-logo { justify-content: center; border: 0; padding: 15px 20px; }
  footer .footer-column { width: 100%; padding: 14px 18px; border-left: 0; border-top: 1px solid #dfdfdf; text-align: center; }
  footer .footer-column p { width: 100%; }
  form#contactform input, form#contactform textarea { box-sizing: border-box; max-width: 100%; }
  form#contactform textarea { width: 100% !important; }
}
@media (max-width: 479px) {
  #layerslider { height: 270px; }
  #layerslider .ls-layer > h3 { top: 9% !important; }
  #layerslider .ls-layer > h5 { top: 31% !important; }
  #layerslider .ls-layer > p { top: 74% !important; }
  #layerslider .ls-heading-box { font-size: 12px !important; }
  #layerslider .ls-text2 { font-size: 11px; }
  #special-content-wrapper h3 { font-size: 22px; }
  #content-wrapper .title-line span[style*="float: right"] { float: none !important; display: block; margin-top: 8px; }
  form#contactform input,form#contactform textarea { width: 100% !important; }
  form#contactform label { display: none; }
  form#contactform .buttoncontact { width: auto !important; min-width: 120px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  #layerslider .ls-layer { transition: none; }
}

/* Heading semantics were corrected without changing the former h2/h3 typography. */
#special-content-wrapper .pagetitle .page-primary-title { font-size: 30px; text-transform: uppercase; }
#special-content-wrapper .mobile-slogan .home-primary-title { font-size: 28px; }
@media (max-width: 767px) {
  #special-content-wrapper .pagetitle .page-primary-title { font-size: 28px; text-align: center; }
  #special-content-wrapper .mobile-slogan .home-primary-title { font-size: 22px; margin-bottom: 5px; }
}

/* R3: contact security region in the existing classic theme. */
#contactform .contact-verify { margin: 12px 0 17px; clear: both; max-width: 100%; }
#contactform .contact-verify-label { font-size: 14px; color: #333; margin-bottom: 8px; font-weight: 700; }
#contactform .contact-verify-label span { color: #b8151e; }
#contactform #contact-turnstile-widget { max-width: 100%; overflow: hidden; min-height: 12px; }
#contactform .contact-verify-info { color: #606873; font-size: 12px; margin: 7px 0 0; }
#contactform #buttonsend:disabled { opacity: .58; cursor: not-allowed; }
#contactform #contact-status { min-height: 1.35em; }
#contactform #contact-status[data-state="info"] { color: #245b85; }

/* R3: branded 404, isolated from existing page layouts. */
.not-found-page .error-content { padding: clamp(26px, 5vw, 55px) clamp(14px, 3vw, 30px); }
.not-found-page .error-panel { display: grid; grid-template-columns: minmax(195px, .65fr) minmax(0, 1.35fr); min-height: 375px; overflow: hidden; border-radius: 8px; box-shadow: 0 14px 36px rgba(0, 40, 77, .12); background: #fff; border: 1px solid #d9e2ed; }
.not-found-page .error-art { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 24px; color: #fff; background: linear-gradient(147deg, #3179b4 0%, #14517f 55%, #153752 100%); position: relative; isolation: isolate; }
.not-found-page .error-art::before { content: ""; width: 210px; height: 210px; border: 1px solid rgba(255,255,255,.22); transform: rotate(28deg); position: absolute; z-index: -1; }
.not-found-page .error-code { font-family: 'Montserrat', Arial, sans-serif; color: #fff; font-weight: 700; font-size: clamp(82px, 12vw, 136px); letter-spacing: -.075em; line-height: 1; margin: 0; text-shadow: 0 6px 19px rgba(0,0,0,.13); }
.not-found-page .error-art-caption { font-size: 12px; letter-spacing: .15em; text-transform: uppercase; font-weight: 700; color: #e9f6ff; margin-top: 12px; }
.not-found-page .error-details { align-self: center; padding: clamp(28px, 6vw, 65px); }
.not-found-page .error-eyebrow { color: #bd151d; text-transform: uppercase; letter-spacing: .13em; font-size: 12px; font-weight: 700; margin: 0 0 14px; }
.not-found-page .error-details h1 { font: 700 clamp(24px, 3.4vw, 34px)/1.23 'Montserrat', Arial, sans-serif; color: #203c56; margin: 0 0 20px; }
.not-found-page .error-description { color: #56687b; max-width: 510px; font-size: 15px; line-height: 1.75; margin-bottom: 23px; }
.not-found-page .error-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.not-found-page .error-action { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; min-height: 43px; padding: 11px 20px; background: #bd161e; border: 1px solid #bd161e; color: #fff !important; text-decoration: none; font-weight: 700; font-size: 13px; transition: background-color .2s, color .2s; }
.not-found-page .error-action:hover, .not-found-page .error-action:focus-visible { background: #98141a; border-color: #98141a; }
.not-found-page .error-action-secondary { background: transparent; color: #22527b !important; border-color: #b4c5d6; }
.not-found-page .error-action-secondary:hover, .not-found-page .error-action-secondary:focus-visible { background: #eaf2fa; border-color: #94b5d0; }
.not-found-page .error-action:focus-visible { outline: 3px solid #60a5fa; outline-offset: 3px; }
.not-found-page .error-links { color: #5e6f80; font-size: 13px; margin: 0; }
.not-found-page .error-links a { color: #286b9d; text-decoration: underline; }
@media (max-width: 680px) {
 .not-found-page .error-panel { grid-template-columns: 1fr; }
 .not-found-page .error-art { padding: 24px 12px; min-height: 145px; }
 .not-found-page .error-art::before { height: 125px; width: 125px; }
 .not-found-page .error-code { font-size: 83px; }
 .not-found-page .error-art-caption { margin-top: 4px; }
 .not-found-page .error-details { padding: 28px 20px 32px; }
}
