/* Interim stopgap fix - quantedge.org static Weebly export on Cloudflare.
   Weebly's own theme JS (custom.js/mobile.js) cannot init outside its live
   runtime, so header/nav/footer layout is forced here. Remove with the site. */

/* header: logo centered, nav centered beneath it */
#header {
  position: relative !important;
  height: auto !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 22px 35px 0 35px;
}
#sitename { position: static !important; margin: 0 auto; }
.nav-trigger.hamburger { display: none !important; }

#navigation {
  position: static !important;
  width: 100% !important;
  height: auto !important;
  box-sizing: border-box;
  padding: 10px 35px 16px 35px;
  border-bottom: 1px solid #e6e6e6;
  text-align: center;
}
#navigation ul.wsite-menu-default {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 8px 26px;
}
#navigation ul.wsite-menu-default > li.wsite-menu-item-wrap { position: relative; float: none !important; margin: 0 !important; }
#wrapper, #wrapper .bg-wrapper { padding-top: 0 !important; }

/* duplicate mobile nav panel - only ever toggled by the missing mobile.js */
#navmobile, .navmobile-wrapper { display: none !important; }

/* footer: keep the 4-column link table within the content width, centered */
.wsite-footer .wsite-multicol, .wsite-footer table.wsite-multicol-table {
  max-width: 1100px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* theme caps the logo container height; let the logo size itself so the nav sits below it */
#sitename, #sitename .wsite-logo, #sitename .wsite-logo a { height: auto !important; max-height: none !important; line-height: 0; display: block; position: static !important; }
#sitename img { height: auto !important; max-height: 110px; width: auto; display: block; margin: 0 auto; position: static !important; }
#sitename { margin-bottom: 6px; }

/* theme positions #header with top:25px; with position:relative that shifts it
   over the nav without reserving space - neutralise the offset */
#header { top: 0 !important; left: 0 !important; right: 0 !important; margin: 0 !important; }

/* theme fixes #footer height (content spills below the dark band) - size to content */
#footer { height: auto !important; min-height: 0 !important; padding: 30px 35px 24px 35px !important; overflow: visible; }
#footer-content, .wsite-footer { height: auto !important; }

/* images: keep aspect ratio when a column is wider than the image's fixed height attr;
   circle-styled portraits stay square */
#wsite-content .wsite-image img, #wsite-content .galleryInnerImageHolder img, #wsite-content img.image1 { height: auto !important; }
#wsite-content img[style*="border-radius: 50%"], #wsite-content img[style*="border-radius:50%"] { aspect-ratio: 1 / 1; object-fit: cover; }

/* phones: theme sets #header min-width:902px (desktop-only value the missing mobile.js
   used to override) which forces a 902px layout viewport on a 390px phone */
#header, #navigation, #wrapper, .body-wrap { min-width: 0 !important; max-width: 100% !important; box-sizing: border-box; }
#sitename img { max-width: 70vw; }
.body-wrap { overflow-x: hidden; }
.wsite-button { max-width: 100%; }

/* phones: slideshow thumbnail strips wider than the screen scroll within their own box */
.wslide-links, .wslide-links-inner { max-width: 100% !important; overflow-x: auto; }

/* phones/tablets: Weebly's JS collapses overflowing nav items into a dead "more..." item
   (its handler lived in the missing mobile.js) and sub-menus are hover-only. Show every
   top-level item and every sub-menu inline instead. */
@media (max-width: 900px) {
  #navigation li.wsite-menu-item-wrap { display: list-item !important; }
  #navigation li.wsite-nav-more { display: none !important; }
  #navigation ul.wsite-menu-default { flex-direction: column; align-items: center; gap: 6px; }
  #navigation .wsite-menu-wrap { display: block !important; position: static !important; width: auto !important; margin: 0; padding: 0; background: transparent !important; box-shadow: none !important; }
  #navigation .wsite-menu-wrap ul.wsite-menu { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 14px; list-style: none; margin: 2px 0 6px; padding: 0; }
  #navigation .wsite-menu-wrap li.wsite-menu-subitem-wrap { display: list-item !important; }
  #navigation .wsite-menu-subitem { font-size: 10px !important; opacity: .85; }
}

/* ---- Weebly JS removed (2026-09-14): nav behaviour is pure CSS from here ---- */
#navigation li.wsite-nav-more { display: none !important; }
#navigation .wsite-menu-wrap { display: none; }
@media (min-width: 901px) {
  #navigation li.wsite-menu-item-wrap { position: relative; }
  #navigation li.wsite-menu-item-wrap:hover > .wsite-menu-wrap,
  #navigation li.wsite-menu-item-wrap:focus-within > .wsite-menu-wrap { display: block !important; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); z-index: 1000; min-width: 230px; background: #fff; border: 1px solid #e3e3e3; box-shadow: 0 6px 18px rgba(0,0,0,.08); padding: 8px 0; text-align: left; }
  #navigation .wsite-menu-wrap ul.wsite-menu { list-style: none; margin: 0; padding: 0; }
  #navigation .wsite-menu-wrap li.wsite-menu-subitem-wrap { display: block; }
  #navigation .wsite-menu-subitem { display: block; padding: 7px 16px; white-space: nowrap; font-size: 11px !important; }
  #navigation .wsite-menu-subitem:hover { background: #f4f7f9; }
  #navigation .wsite-menu-wrap .wsite-menu-wrap { display: none !important; } /* no 3rd level flyouts */
}

/* ---- small screens: hamburger menu (interim-nav.js) ---- */
@media (max-width: 900px) {
  #header { position: relative !important; padding-right: 70px; }
  .nav-trigger.hamburger { display: block !important; position: absolute; top: 50%; right: 18px; transform: translateY(-50%); width: 44px; height: 44px; cursor: pointer; }
  .nav-trigger .open-btn { position: absolute; left: 10px; right: 10px; top: 50%; height: 0; }
  .nav-trigger .open-btn span.mobile { display: block; position: absolute; left: 0; right: 0; height: 3px; background: #2b3e50; border-radius: 2px; }
  .nav-trigger .open-btn span.mobile:nth-child(1) { top: -9px; }
  .nav-trigger .open-btn span.mobile:nth-child(2) { top: -1px; }
  .nav-trigger .open-btn span.mobile:nth-child(3) { top: 7px; }
  #navigation { display: none !important; }
  body.interim-nav-open #navigation { display: block !important; padding: 6px 0 14px; }
  #navigation ul.wsite-menu-default { flex-direction: column; align-items: stretch; gap: 0; }
  #navigation li.wsite-menu-item-wrap { display: block !important; text-align: center; border-top: 1px solid #eee; }
  #navigation li.wsite-menu-item-wrap > a.wsite-menu-item { display: block; padding: 12px 16px; font-size: 13px !important; }
  #navigation li.wsite-menu-item-wrap > a[aria-haspopup]::after { content: " \25BE"; font-size: 11px; }
  #navigation li.interim-open > a[aria-haspopup]::after { content: " \25B4"; }
  #navigation .wsite-menu-wrap { display: none; position: static !important; background: #f7f9fa !important; box-shadow: none !important; }
  #navigation li.interim-open > .wsite-menu-wrap { display: block !important; }
  #navigation .wsite-menu-wrap ul.wsite-menu { list-style: none; margin: 0; padding: 4px 0; }
  #navigation .wsite-menu-wrap li.wsite-menu-subitem-wrap { display: block !important; }
  #navigation .wsite-menu-subitem { display: block; padding: 9px 16px; font-size: 12px !important; }
  #navigation .wsite-menu-wrap .wsite-menu-wrap { display: none !important; }
}

/* precedence fix: sub-menus closed until the heading is tapped (later rule wins) */
@media (max-width: 900px) {
  #navigation .wsite-menu-wrap { display: none !important; }
  #navigation li.interim-open > .wsite-menu-wrap { display: block !important; }
  #navigation .wsite-menu-wrap .wsite-menu-wrap { display: none !important; }
}

/* ---- interim slideshow (replaces Weebly's JS-built slideshows) ---- */
.interim-slideshow { max-width: 100%; margin: 0 auto; }
.interim-slideshow__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 0; }
.interim-slideshow__track::-webkit-scrollbar { display: none; }
.interim-slideshow__slide { flex: 0 0 100%; scroll-snap-align: start; margin: 0; text-align: center; }
.interim-slideshow__slide img { display: block; width: 100%; height: auto !important; max-height: 70vh; object-fit: contain; background: #f4f4f4; }
.interim-slideshow__caption { font-size: 12px; line-height: 1.5; color: #555; padding: 8px 10px 0; }
.interim-slideshow__nav { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 8px 0 0; }
.interim-slideshow__btn { border: 1px solid #cfd8dc; background: #fff; color: #2b3e50; width: 34px; height: 34px; border-radius: 50%; font-size: 20px; line-height: 1; cursor: pointer; }
.interim-slideshow__btn:hover { background: #f4f7f9; }
.interim-slideshow__count { font-size: 12px; color: #666; min-width: 48px; text-align: center; }

/* phones: symmetric header padding so the logo centres on the screen (hamburger is absolute);
   hero background fills its box instead of letterboxing */
@media (max-width: 900px) {
  #header { padding-left: 70px !important; padding-right: 70px !important; }
  .wsite-background { background-size: cover !important; }
}

/* phones: former background-video sections use a letterboxed poster (black bands baked into
   the image) - zoom the background so the bands fall outside the box */
@media (max-width: 900px) {
  .wsite-header-section.wsite-section-bg-video { background-size: auto 140% !important; background-position: 50% 50% !important; background-repeat: no-repeat !important; }
}

/* background video restored by interim-nav.js: fills the section behind its content */
.wsite-section-bg-video { position: relative; overflow: hidden; }
.interim-bg-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; pointer-events: none; }
.wsite-section-bg-video > *:not(.interim-bg-video) { position: relative; z-index: 1; }
@media (max-width: 900px) { .interim-bg-video { transform: scale(1.4); } }

/* phones: Weebly's multi-column layouts (content and footer) stack into one column;
   the original did this through its runtime CSS/JS, which is gone */
@media (max-width: 767px) {
  .wsite-multicol-table-wrap { margin: 0 !important; }
  .wsite-multicol-table, .wsite-multicol-tbody, .wsite-multicol-tr { display: block !important; width: 100% !important; }
  .wsite-multicol-col { display: block !important; width: 100% !important; box-sizing: border-box; padding: 0 !important; margin-bottom: 22px; }
  .wsite-multicol-col:last-child { margin-bottom: 0; }
  .wsite-multicol-col .paragraph, .wsite-multicol-col h2.wsite-content-title, .wsite-multicol-col .wsite-headline, .wsite-multicol-col .wsite-headline-paragraph { text-align: center !important; }
  .wsite-multicol-col .wsite-button, .wsite-multicol-col .wsite-image { display: block; margin-left: auto !important; margin-right: auto !important; float: none !important; }
  .wsite-multicol-col .wsite-image img { max-width: 100% !important; height: auto !important; margin: 0 auto; }
  #wsite-content .wsite-elements > div, .wsite-section-content { padding-left: 16px; padding-right: 16px; box-sizing: border-box; }
  .wsite-footer .wsite-multicol-col { margin-bottom: 8px; }
  .wsite-footer h2.wsite-content-title { font-size: 15px !important; }
}
/* correction: keep Weebly buttons inline-block (their background is a two-part sprite); centre via the parent */
@media (max-width: 767px) {
  .wsite-multicol-col .wsite-button { display: inline-block !important; margin: 0 !important; float: none !important; }
  .wsite-multicol-col .wsite-button-inner { display: block; }
}
@media (max-width: 767px) {
  .wsite-multicol-col div[style*="text-align"] { text-align: center !important; }
}

/* tabbed box (interim-nav.js drives the active class) */
.tabbed-box .tabbed-box-content { display: none !important; }
.tabbed-box .tabbed-box-content.active { display: block !important; }
.tabbed-box .tabbed-box-tab { cursor: pointer; }
.tabbed-box .tabbed-box-tab.active .paragraph { font-weight: 700; border-bottom: 2px solid #3a96b8; }
.tabbed-box .scrollArrow { display: none !important; }

/* phones: Heaps flex grids (values grid on who-we-are, card grids) stack to one column */
@media (max-width: 767px) {
  .blocks-flex-parent { flex-wrap: wrap !important; }
  .blocks-flex-parent > .block-child { flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; }
}

/* Weebly section "reveal/parallax" effects: the reveal step lived in main.js, so effect sections
   stayed hidden. Show content statically. */
.wsite-section-effect-reveal .wsite-section-content > *,
[class*="wsite-section-effect-"] .wsite-section-content > * { visibility: visible !important; opacity: 1 !important; transform: none !important; animation: none !important; }

/* footer social icons: Weebly's runtime set these (measured on the original): inline-block,
   8px side margins, ~19px glyphs */
.wsite-social .wsite-social-item { display: inline-block !important; margin: 0 8px !important; font-size: 18.9px !important; line-height: 1.2; }
