:root {
    --navy: #001741;
    --ltblue: #8FB3F6;
    --medblue: #2D70EE;
    --ltgray: #F2F2F2;
    --dkgray: #454545;
    --white: #FFFFFF;
}

/* ========== Headings ========== */
h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: .5rem;
  color: var(--navy);
}

h1 {
  font-size: calc(1.325rem + 1.5vw);
  font-weight: 700;
}

h2 {
  font-size: calc(1.3rem + .9vw);
  font-weight: 700;
}

h3 {
  font-size: calc(1.275rem + .6vw);
  font-weight: 400;
}

h4 {
  font-size: calc(1.25rem + .3vw);
  font-weight: 400;
}

h5 {
  font-size: 1.1rem;
  font-weight: 600;
}

h6 {
  font-size: 1rem;
  font-weight: 300;
}

h1#tagline {
  font-style: italic;
  text-transform: uppercase;
  font-size: 1rem;
  color: #FFF;
}

/* ========== Responsive iFrame ========== */
.responsive-iframe-container {
  position: relative;
  width: 100%;
  padding-top: 60%;
  overflow: hidden;
}

.responsive-iframe-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* ========== Section Styling ========== */
.responsive-image-section {
  aspect-ratio: 716 / 373;
}

/* ========== Offcanvas Menu ========== */
.burger-icon {
  width: 30px;
}

.burger-icon > span {
  height: 3px;
}

/* Logo */
.offcanvas-menu div.logo {
  margin-top: 0;
  padding: 1rem;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.offcanvas-menu div.logo a {
  display: inline-block;
  text-align: center;
}

.offcanvas-menu div.logo a img {
  margin: 0 auto;
  display: block;
}

.offcanvas-menu .offcanvas-inner {
  padding-top: 0;
}

.offcanvas-menu .offcanvas-inner ul.menu ul li {
  padding: 8px 0;
  border-bottom: 1px dotted var(--navy);
}

.offcanvas-menu .offcanvas-inner ul.menu ul li:last-child {
  border-bottom: 0;
}
.offcanvas-menu li.sp-contact-time{color: var(--navy);}

body.ltr .offcanvas-menu .offcanvas-inner ul.menu > li.menu-parent > a > .menu-toggler,
body.ltr .offcanvas-menu .offcanvas-inner ul.menu > li.menu-parent > .menu-separator > .menu-toggler,
.offcanvas-menu .offcanvas-inner ul.menu > li.menu-parent li.menu-parent .menu-toggler {
  right: auto;
  width: 99%;
}

.offcanvas-menu .offcanvas-inner ul.menu > li.menu-parent li.menu-parent .menu-toggler::after,
.offcanvas-menu .offcanvas-inner ul.menu > li.menu-parent > a > .menu-toggler::after,
.offcanvas-menu .offcanvas-inner ul.menu > li.menu-parent > .menu-separator > .menu-toggler::after {
  float: right;
}

.white {
  color: var(--white);
}

.ltblue {
  color: var(--ltblue);
}

/* ── Page Title Bar ───────────────────────────────────── */
.sp-page-title {
  background: var(--navy) !important;
}

.sp-page-title .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sp-page-title-heading {
  margin: 0;
}

.mod-breadcrumbs__wrapper {
  margin: 0;
}

.mod-breadcrumbs.breadcrumb {
  margin: 0;
  background: transparent;
  justify-content: flex-end;
}

/* Center the main menu */
#sp-menu > .sp-column,
#sp-menu .sp-megamenu-wrapper {
  justify-content: center !important;
}

/* ══════════════════════════════════════════════════════
   MAIN NAV — underline at TOP (uses ::before so caret stays intact)
══════════════════════════════════════════════════════ */

ul.sp-megamenu-parent > li.sp-menu-item > a {
  position: relative;
  color: var(--navy);
  font-weight: 600;
  text-decoration: none;
}

ul.sp-megamenu-parent > li.sp-menu-item > a::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: var(--ltblue);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s ease;
  pointer-events: none;
}

ul.sp-megamenu-parent > li.sp-menu-item:hover > a::before,
ul.sp-megamenu-parent > li.sp-menu-item.active > a::before,
ul.sp-megamenu-parent > li.sp-menu-item.current > a::before {
  transform: scaleX(1);
  transform-origin: left;
}

ul.sp-megamenu-parent > li.sp-menu-item.current > a,
ul.sp-megamenu-parent > li.sp-menu-item:hover > a {
  color: var(--medblue);
}

/* ══════════════════════════════════════════════════════
   DROPDOWN PANEL
══════════════════════════════════════════════════════ */

.sp-megamenu-wrapper .sp-dropdown.sp-dropdown-main {
  margin-top: -12px !important;
  border: none !important;
  border-top: 3px solid var(--ltblue) !important;
  border-radius: 8px !important;
  box-shadow: 0 10px 28px rgba(0, 23, 65, 0.12) !important;
  background: #ffffff !important;
  padding: 0 !important;
  overflow: hidden;
}

.sp-megamenu-wrapper .sp-dropdown .sp-dropdown-inner {
  background: #ffffff !important;
  color: var(--navy) !important;
  padding: 12px 12px !important;
}

/* ── Standard (non-mega) dropdown links + dividers ──── */
.sp-megamenu-wrapper .sp-dropdown-items .sp-menu-item {
  border-bottom: 1px solid var(--ltgray);
}

.sp-megamenu-wrapper .sp-dropdown-items .sp-menu-item:last-child {
  border-bottom: none !important;
}

.sp-megamenu-wrapper .sp-dropdown-items .sp-menu-item > a {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 12px 16px 12px 14px !important;
  color: var(--navy) !important;
  font-weight: 500;
  font-size: 0.9rem;
  line-height: 1.4;
  text-decoration: none;
  border-left: 3px solid transparent !important;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.sp-megamenu-wrapper .sp-dropdown-items .sp-menu-item > a:hover {
  color: var(--medblue) !important;
  border-left-color: var(--ltblue) !important;
  background-color: rgba(143, 179, 246, 0.12);
}

.sp-megamenu-wrapper .sp-dropdown-items .sp-menu-item > a::before {
  display: none !important;
}

/* ── Mega menu group titles ─────────────────────────── */
.sp-megamenu-wrapper .sp-group-title,
.sp-megamenu-wrapper a.sp-group-title {
  display: block;
  padding: 10px 12px 8px 12px;
  color: var(--navy) !important;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  border-bottom: 1px solid var(--ltblue);
  margin: 0 0 6px;
  text-decoration: none;
}

/* ── Mega menu child links + dividers ───────────────── */
.sp-megamenu-wrapper .sp-mega-group-child .sp-menu-item {
  border-bottom: 1px solid var(--ltgray);
}

.sp-megamenu-wrapper .sp-mega-group-child .sp-menu-item:last-child {
  border-bottom: none !important;
}

.sp-megamenu-wrapper .sp-mega-group-child .sp-menu-item > a {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 12px 16px 12px 14px !important;
  color: var(--navy) !important;
  font-weight: 500;
  font-size: 0.9rem;
  line-height: 1.4;
  text-decoration: none;
  border-left: 3px solid transparent !important;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.sp-megamenu-wrapper .sp-mega-group-child .sp-menu-item > a:hover {
  color: var(--medblue) !important;
  border-left-color: var(--ltblue) !important;
  background-color: rgba(143, 179, 246, 0.12);
}

.sp-megamenu-wrapper .sp-mega-group-child .sp-menu-item > a::before {
  display: none !important;
}

/* Photos column – keep a little inner breathing room */
.sp-megamenu-wrapper .sp-dropdown .sp-module {
  padding: 4px;
}

/* ══════════════════════════════════════════════════════
   SERVICE SIDEBAR NAV
══════════════════════════════════════════════════════ */

.service-sidebar-nav .mod-menu.mod-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 23, 65, 0.12);
}

.service-sidebar-nav .mod-menu.mod-list li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.service-sidebar-nav .mod-menu.mod-list li:last-child {
  border-bottom: none;
}

.service-sidebar-nav .mod-menu.mod-list li a {
  display: block;
  padding: 12px 16px;
  background-color: var(--navy);
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
  font-size: 0.95rem;
  text-decoration: none;
  border-left: 4px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.service-sidebar-nav .mod-menu.mod-list li a:hover {
  color: #ffffff;
  border-left-color: var(--ltblue);
  background-color: rgba(45, 112, 238, 0.35);
}

.service-sidebar-nav .mod-menu.mod-list li.current > a,
.service-sidebar-nav .mod-menu.mod-list li.active > a {
  color: #ffffff;
  border-left-color: var(--ltblue);
  background-color: rgba(45, 112, 238, 0.45);
  font-weight: 700;
}
/* ══════════════════════════════════════════════════════
  Center footer content on mobile
══════════════════════════════════════════════════════ */
@media (max-width: 991.98px) {
  /* Center the footer menu (Privacy Policy, etc.) */
  #sp-footer1 .mod-menu.mod-list.menu {
    display: flex;
    justify-content: center;
    text-align: center;
    margin-bottom: 1.5rem; /* gap before the copyright block */
  }

  /* Center the copyright block and the "Website by" line beneath it */
  #sp-footer2,
  #sp-footer2 .sp-copyright {
    text-align: center;
  }

  #sp-footer2 .sp-column {
    display: flex;
    justify-content: center;
  }
}