/* StringLite base: shared structure only. Branding remains in themes/theme.css. */
html { scroll-padding-top:1rem; }
/* Keep the original desktop container width instead of Bootstrap's 1320px XXL size. */
@media (min-width:1200px) {
    .site-page .container { max-width:1140px; }
}
.site-page { margin:0; line-height:1.6; }
.site-page img { max-width:100%; height:auto; }
.site-page a,
.site-page a:hover,
.site-page a:focus { text-decoration:none !important; }
.site-page :focus-visible { outline:3px solid currentColor; outline-offset:3px; }
.site-page .layout-standard, .site-page .layout-boxed { display:flex; flex-direction:column; min-height:100vh; position:relative; }
.site-page .layout-boxed { z-index:2; max-width:1200px; margin:auto; overflow:hidden; border:1px solid #ececec; border-radius:16px; background:white; box-shadow:0 14px 30px rgba(23,49,71,.14); }
.site-page .layout-boxed::before,
.site-page .layout-boxed::after { content:''; position:absolute; z-index:30; right:16px; left:16px; height:1px; pointer-events:none; background:linear-gradient(90deg,transparent 0%,rgba(97,220,255,.45) 22%,#61dcff 50%,rgba(97,220,255,.45) 78%,transparent 100%); box-shadow:0 0 7px rgba(97,220,255,.8); }
.site-page .layout-boxed::before { top:1px; }
.site-page .layout-boxed::after { bottom:0; }
.site-page.body-boxed { isolation:isolate; padding:1.25rem; background-position:center; background-size:cover; background-repeat:no-repeat; background-attachment:fixed; }
.site-page .site-boxed-background { position:fixed; z-index:1; inset:-2%; pointer-events:none; background-image:var(--boxed-background-image,none); background-position:center; background-size:cover; background-repeat:no-repeat; will-change:transform; animation:boxed-background-breathe 16s ease-in-out infinite alternate; }
@keyframes boxed-background-breathe { from { transform:scale(1); } to { transform:scale(1.055); } }
@media (prefers-reduced-motion:reduce) { .site-page .site-boxed-background { animation:none; } }
.site-page .main { flex:1; background:white; min-width:0; }
.site-page .contentMain { padding:0; }
.site-page .contentMain > .container + .container { margin-top:2.5rem; }
.site-page h1, .site-page .h1 { font-size:2.2rem; }
.site-page h2, .site-page .h2 { font-size:1.8rem; }
.site-page h3, .site-page .h3 { font-size:1.6rem; }
.site-page h4, .site-page .h4 { font-size:1.3rem; }
.site-page h5, .site-page .h5 { font-size:1.1rem; }
.site-page h1, .site-page h2, .site-page h3, .site-page h4, .site-page h5 { line-height:1.25; margin-bottom:1rem; }
.site-page p { margin-bottom:1rem; }
.site-page .btn,
.site-page .btn:hover,
.site-page .btn:focus,
.site-page .btn:active { white-space:normal; text-decoration:none !important; }
.site-page .btn { transition:filter .2s ease, transform .2s ease, box-shadow .2s ease; }
.site-page .btn:hover,
.site-page .btn:focus-visible { filter:brightness(1.12); transform:translateY(-1px); }
/* Buttons joined to form fields must stay aligned with their input. */
.site-page .input-group .btn,
.site-page .input-group .btn:hover,
.site-page .input-group .btn:focus-visible { filter:none; transform:none; }
.site-page .btn-block { display:block; width:100%; }
.site-skip-link { position:fixed; top:0; left:1rem; transform:translateY(-110%); z-index:2000; padding:.75rem 1rem; background:white; color:black; }
.site-skip-link:focus { transform:translateY(0); }

/* Existing CMS content uses these small spacing/image helpers. */
.site-page .mb-none { margin-bottom:0; }
.site-page .mb-md { margin-bottom:1rem; }
.site-page .mb-lg { margin-bottom:1.5rem; }
.site-page .mb-xlg { margin-bottom:2.5rem; }
.site-page .mt-sm { margin-top:.5rem; }
.site-page .mt-md { margin-top:1rem; }
.site-page .mt-lg { margin-top:1.5rem; }
.site-page .ml-sm { margin-left:.5rem; }
.site-page .text-left { text-align:left; }
.site-page .text-right { text-align:right; }
.site-page .imageLeft { float:left; margin:0 1.5rem 1rem 0; max-width:48%; }
.site-page .imageRight { float:right; margin:0 0 1rem 1.5rem; max-width:48%; }
.site-page .imageWidthHalf { width:50%; }
.site-page .imageWidthQuarter { width:25%; }
.site-page .contentMain .row { clear:both; }
.site-page .revealOnScroll { opacity:1; visibility:visible; }
.site-page .h1s, .site-page .h2s, .site-page .h3s, .site-page .h4s { font-weight:700; }

/* Shared navigation structure. Variant decoration stays in theme-headers. */
.site-page #headMain { position:relative; z-index:20; }
.site-page #headMain.headerOverlay { position:absolute; width:100%; }
.site-page #headMain.headerOverlayFallback { position:relative; }
.site-page [data-site-slider], .site-page .bgTitleWrapper { scroll-margin-top:var(--site-header-height, 0px); }
.site-page .bgTitleWrapper .bgTitle { padding-top:var(--site-header-height, 0px); }
.site-page #headMain .headLogo { flex-shrink:1; max-width:var(--site-logo-width); }
.site-page #headMain .headLogo img { display:block; width:var(--site-logo-width); max-width:100%; margin:0; }
.site-page #headMain .headNav:after { content:none; }
.site-page #navigation .nav { gap:.25rem; }
.site-page #headMain #navigation > .nav > li > a { display:block; text-decoration:none; }
.site-page #navigation .dropdown-menu a { display:block; padding:.6rem 1rem; text-decoration:none; }
.site-page #navigation .dropdown.open > .dropdown-menu { display:block; }
.site-page .demoButton { padding:.6rem 1rem; border:1px solid currentColor; }
.site-page .list-inline { display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; padding:0; margin:0; list-style:none; }
.site-page .headerContactBar { padding:.5rem 0; background:rgba(0,0,0,.035); font-size:.875rem; }
.site-page .headerContactBar a { color:inherit; }
.site-page .headerContactBar i { margin-right:.4rem; }

/* Optional existing cart header (not an Envato runtime dependency). */
.site-page .header-shop { padding:.4rem 0; background:#f4f5f6; font-size:.8rem; }
.site-page .header-right { display:flex; justify-content:flex-end; align-items:center; gap:1.25rem; }
.site-page .cart-dropdown { position:relative; }
.site-page .cart-dropdown-toggle { display:block; padding:.25rem .65rem; border:1px solid currentColor; border-radius:2rem; }
.site-page .cart-dropdown-toggle:before { content:'Cart '; }
.site-page .cart-dropdown-menu { display:none; position:absolute; right:0; width:min(320px, 90vw); padding:1rem; background:white; color:#232c34; box-shadow:0 6px 20px #0003; z-index:30; }
.site-page .cart-dropdown.open .cart-dropdown-menu { display:block; }
.site-page .dropdown-cart-header, .site-page .dropdown-cart-total { display:flex; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.site-page .dropdown-cart-products { max-height:260px; overflow:auto; }

/* Shared footer structure; colours continue to come from the theme generator. */
.site-page #footer { position:relative; margin:0; }
.site-page #footer > .container { padding-top:2.5rem; padding-bottom:2rem; }
.site-page #footer .footerCol { margin-bottom:1.5rem; }
.site-page #footer .fa-ul > li { margin-bottom:.5rem; }
.site-page #footer .footerNav { margin-top:1rem; }
.site-page #footer .footerSocial a { font-size:1.5rem; }
.site-page #footer .footerBottom { padding:1.25rem 0; font-size:.85rem; }
.site-page #footer .footerBottom p:last-child { margin-bottom:0; }
.site-page #footer .input-group-btn { display:flex; }
.site-page .thehole { display:none !important; }
.site-page #footer .triangleBreakTopLeft { display:none; }
.site-page #footer.footer-option-3 .list-inline { justify-content:center; }
.site-page #footer.footer-option-3 .footerSocialRound a { display:grid; place-items:center; width:3rem; height:3rem; border:1px solid currentColor; border-radius:50%; }
.site-page #toTopBtn:not(.allowshow) { pointer-events:none; }

/* Common media primitives used by the selected content options. */
.site-page .hover-box-container { overflow:hidden; aspect-ratio:16 / 9; margin-bottom:1rem; }
.site-page .hover-box { width:100%; height:100%; background-size:cover; background-position:center; background-repeat:no-repeat; }
.site-page .hover-box-container > a { display:block; height:100%; }
.site-page .hover-box.placeholder { background-size:contain; opacity:1; cursor:inherit; animation:none; }
.site-page .bgTitleWrapper { position:relative; background-position:center; background-size:cover; }
.site-page .bgTitleWrapper:before { content:''; position:absolute; inset:0; pointer-events:none; }
.site-page .bgTitle { position:relative; display:flex; align-items:center; }
.site-page .bgTitleInner { width:100%; }
.site-page .bannerContBoxed { width:calc(100% - 1.5rem); max-width:1140px; margin:auto; }
@media (max-width:575px) {
    .site-page.body-boxed { padding:0; }
    .site-page .layout-boxed { border-radius:0; }
    .site-page .contentMain { padding:0; }
    .site-page .imageLeft, .site-page .imageRight, .site-page .imageWidthHalf, .site-page .imageWidthQuarter { float:none; width:100%; max-width:100%; margin:0 0 1rem; }
    .site-page #headMain .headLogo { max-width:min(var(--site-logo-width), 58vw); }
    .site-page #footer .input-group { flex-wrap:nowrap; }
}
.site-page .label-mobile { display:none; }
@media (max-width:575px) {
    .site-page .label-desktop { display:none; }
    .site-page .label-mobile { display:inline; }
}
.content-accordion {
  margin: 1.25rem 0 1rem;
  border-top: 1px solid #d9e3ea;
  transition: margin-bottom .35s ease;
}

.content-accordion.is-open {
  margin-bottom: 1.25rem;
  border-bottom: 1px solid #d9e3ea;
}

.content-accordion.is-open > button.content-accordion-title {
  border-bottom-color: transparent;
}

.content-accordion > .content-accordion-title {
  margin: 0;
  padding: 1rem 0;
  color: var(--theme-primary, #005295);
  font-weight: 700;
}

.content-accordion > button.content-accordion-title {
  width: 100%;
  display: flex;
  gap: .45rem;
  align-items: center;
  border: 0;
  border-bottom: 1px solid #d9e3ea;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.content-accordion-title .content-accordion-control {
  display: inline-flex;
  gap: .25rem;
  align-items: center;
  color: var(--theme-secondary, #3e93d7);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  will-change: transform;
}

.content-accordion-title .content-accordion-indicator {
  min-width: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.content-accordion-title .content-accordion-brace {
  position: relative;
  top: -.05em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.content-accordion.is-open .content-accordion-control {
  margin-left: auto;
}

.content-accordion > .content-accordion-body {
  max-height: none;
}

.content-accordion.is-enhanced > .content-accordion-body {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-.4rem);
  transition: max-height .35s ease, opacity .25s ease, transform .35s ease, padding .35s ease;
}

.content-accordion.is-enhanced.is-open > .content-accordion-body {
  padding: .5rem 0 1rem;
  opacity: 1;
  transform: translateY(0);
}

.content-accordion > .content-accordion-body > :last-child {
  margin-bottom: 0;
}

.content-accordion + hr {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .content-accordion.is-enhanced > .content-accordion-body { transition: none; }
}
