@import url("legacy-design.css");

/* Standard Cassiopeia shell around the retained, editable site content. */
:root { --cassiopeia-font-family-body:var(--secondary-font,Roboto),Arial,sans-serif; --cassiopeia-font-family-headings:var(--primary-font,Raleway),Arial,sans-serif; --body-font-size:clamp(16px,1.5vw,18px); }
body { margin:0; color:#252525; font-size:clamp(16px,1.5vw,18px); line-height:1.5; }
a { text-decoration:none; }
.site-grid { display:block; margin:0; gap:0; }
.container-banner,.container-component>main { margin:0; padding:0; }
.home .container-top-a { display:none; }
.site-grid>.grid-child,.grid-child.container-component { width:100%; max-width:none; padding:0; margin:0; }
.container-header { padding:0; margin:0; background:none; box-shadow:none; z-index:1000; }
.container-header .container-below-top { max-width:none; padding:0; margin:0; display:block; }
.container-header #sp-header { top:0; left:0; width:100%; z-index:1000; box-shadow:0 0 4px rgb(0 0 0 / 10%); }
#sp-header .row { align-items:center; }
#sp-logo .brand-logo svg { display:block; width:240px; height:auto; }
#sp-header.dark #sp-logo .brand-logo svg { width:175px; }
#sp-header.header-sticky { background:var(--primary-color); pointer-events:auto; opacity:1; }
#sp-header.header-sticky #sp-logo { display:block; }
.container-header .container-nav:empty { display:none; }
.container-component>.card { border:0; border-radius:0; margin:0; padding:0; background:transparent; }
.container-component>.card>.card-body { padding:0; }
.container-top-a>.card,.container-bottom-a>.card { width:100%; border:0; border-radius:0; margin:0; padding:0; background:none; }
.container-top-a>.card>.card-body,.container-bottom-a>.card>.card-body { padding:0; }
.container-footer { padding:0; margin:0; background:var(--primary-color); color:#eee; }
.container-footer>.grid-child { display:block; max-width:none; width:100%; padding:0; margin:0; }
#sp-footer .mod-footer { display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:clamp(14px,2vw,16px); }
#sp-footer .mod-footer .footer1 { display:block; width:auto; margin:0; }
#sp-footer .footer2 { padding:0; }
#sp-bottom .row { align-items:start; }
#sp-bottom ul { list-style:none; padding-left:0; margin:0; }
#sp-bottom li.divider { display:none; }
#sp-bottom .sp-module-title { line-height:1.2; }
#sp-bottom4 { padding-left:15px; padding-right:15px; }
body.com_content .container-component>main { max-width:1320px; padding:50px 15px; margin:auto; }
body.com_content .com-content-article__body h2 { margin-bottom:20px; }
.back-to-top-link { display:grid; place-content:center; width:50px; height:50px; right:15px; bottom:20px; z-index:1001; border:1px solid var(--primary-color); border-radius:5px; color:var(--primary-color); background:white; opacity:1; }
.back-to-top-link:hover,.back-to-top-link:focus { color:var(--primary-color); background:white; }
#usercentrics-root { opacity:1; }
.home #sp-page-builder .sppb-sp-slider-button .sp-slider-btn-text { background:#fff; color:#111; padding:15px 75px; }
.container-component .jf_contact_block { width:100%; margin-inline:auto; padding-inline:15px; }
@media (min-width:576px) { .container-component .jf_contact_block { max-width:540px; } }
@media (min-width:768px) { .container-component .jf_contact_block { max-width:720px; } }
@media (min-width:992px) { .container-component .jf_contact_block { max-width:960px; } }
@media (min-width:1200px) { .container-component .jf_contact_block { max-width:1140px; } }
@media (min-width:1400px) { .container-component .jf_contact_block { max-width:1320px; } }

/* Joomla mod_menu: parent links remain navigable, buttons open submenus. */
.fp-nav { display:flex; justify-content:flex-end; }
.fp-menu { display:flex; flex-wrap:nowrap; align-items:center; list-style:none; padding:0; margin:0; }
.fp-menu>li { position:relative; display:block; margin:0; }
.fp-menu>li>a { display:block; white-space:nowrap; }
.fp-toggle,.fp-close { display:none; }
.fp-menu-overlay[hidden],.fp-submenu[hidden] { display:none; }
.fp-submenu { position:absolute; top:100%; left:0; min-width:255px; list-style:none; margin:0; padding:15px 20px; background:var(--primary-color); box-shadow:0 4px 10px rgb(0 0 0 / 15%); }
.fp-submenu>li { position:relative; }
.fp-submenu a { display:block; padding:10px; margin-bottom:5px; font-family:var(--secondary-font); color:#fff; text-transform:uppercase; font-size:14.5px; line-height:1.2; }
.fp-submenu a:hover,.fp-submenu a:focus,.fp-submenu .active>a { color:var(--primary-color); background:white; }
.fp-submenu-toggle { position:absolute; top:20px; right:0; padding:0; width:16px; height:30px; border:0; background:transparent; color:#fff; }
.fp-submenu-toggle span { opacity:0; }
.fp-submenu-toggle:focus-visible { outline:2px solid white; outline-offset:2px; }
.fp-submenu-toggle:focus-visible span { opacity:1; }
.fp-nav a:focus-visible,.fp-toggle:focus-visible,.fp-close:focus-visible { outline:2px solid currentColor; outline-offset:3px; }

@media (max-width:1199.98px) {
  #sp-footer .mod-footer { flex-direction:column; gap:0; }
  #sp-bottom .row>div { margin-bottom:25px; }
}
@media (max-width:991.98px) {
  #sp-logo .brand-logo svg,#sp-header.dark #sp-logo .brand-logo svg { width:175px; }
  .fp-toggle { display:flex; flex-direction:column; justify-content:center; gap:6px; width:44px; height:44px; padding:9px; border:0; background:transparent; color:#fff; }
  .fp-toggle>span:not(.visually-hidden) { display:block; width:26px; height:2px; background:currentColor; }
  .fp-nav-panel { position:fixed; top:0; right:0; width:300px; max-width:calc(100vw - 40px); height:100dvh; padding:75px 25px 30px; overflow-y:auto; background:white; color:#333; visibility:hidden; transform:translateX(100%); transition:transform .25s ease,visibility .25s; z-index:1003; }
  .fp-nav.is-open .fp-nav-panel { visibility:visible; transform:translateX(0); }
  .fp-close { display:block; position:absolute; top:15px; right:15px; width:40px; height:40px; padding:0; border:0; background:none; color:#111; font-size:40px; line-height:1; }
  .fp-menu-overlay { position:fixed; inset:0; background:rgb(0 0 0 / 65%); backdrop-filter:blur(5px); z-index:1002; }
  .fp-menu { display:block; }
  .sp-megamenu-parent.fp-menu>li>a { padding:8px 30px 8px 0; color:#777; font-size:18px; font-weight:400; letter-spacing:0; line-height:1.25; text-transform:none; white-space:normal; }
  .sp-megamenu-parent.fp-menu>li.active>a,.sp-megamenu-parent.fp-menu>li>a:hover { color:var(--secondary-color,var(--primary-color)); }
  .fp-menu>li>a::before { display:none!important; }
  .fp-submenu-toggle { top:4px; right:0; color:#aaa; width:30px; height:32px; font-size:26px; }
  .fp-submenu-toggle span { opacity:1; }
  .fp-submenu-toggle[aria-expanded=true] span { display:block; transform:rotate(90deg); }
  .fp-submenu { position:static; min-width:0; margin:0 0 5px; padding:0 0 0 15px; background:none; box-shadow:none; }
  .fp-submenu a { color:#777; text-transform:none; font-size:16px; line-height:1.5; padding:6px 0; }
  .fp-submenu .active>a,.fp-submenu a:hover { color:var(--primary-color); }
  body.fp-menu-open { overflow:hidden; }
  #sp-bottom .row>div { width:100%; flex:0 0 100%; }
  #sp-bottom4 img { margin:0!important; max-width:100%; height:auto; }
  #sp-footer .mod-footer { padding:0 15px 35px; text-align:center; gap:20px; }
  #sp-footer .mod-footer .footer1 { line-height:1.5; }
}
@media (prefers-reduced-motion:reduce) {
  #sp-header,.fp-nav-panel { animation:none!important; opacity:1; transition:none; }
}

/* The full-width slider row has no padded container to offset its gutters. */
.home #start > .sppb-container-inner > .sppb-row { margin-inline:0; }
.home #start > .sppb-container-inner > .sppb-row > .sppb-col-md-12 { padding-inline:0; }
.container-header:has(.fp-nav.is-open) { z-index:1004; }
@media (max-width:991.98px) {
  .fp-nav-panel { padding-top:81px; }
  .fp-close { font-size:0; }
  .fp-close::before,.fp-close::after { content:""; position:absolute; left:15px; top:23px; width:26px; height:2px; background:currentColor; transform-origin:left center; }
  .fp-close::before { transform:rotate(-24deg); }
  .fp-close::after { transform:rotate(24deg); }
  .home #sp-page-builder .sppb-sp-slider-button .sp-slider-btn-text { padding:15px 30px; white-space:nowrap; }
}

/* Long legal URLs must wrap inside Cassiopeia's flexible main column. */
body.com_content .container-component > main { width:100%; min-width:0; overflow-wrap:anywhere; }

/* Full-width builder sections have no container padding for negative row gutters. */
#sp-page-builder .sppb-section > :is(.sppb-container-inner, .sppb-row-container) > .sppb-row { margin-inline:0; }
#sp-page-builder .sppb-section > :is(.sppb-container-inner, .sppb-row-container) > .sppb-row > [id^="column-wrap-id-"] { padding-inline:0; }
