/* ==========================================================================
   LAUNCHLAYER GLOBAL HEADER & FOOTER STYLES
   ========================================================================== */

/* SAFETY IMAGE CONSTRAINT */
.ll-header-logo img, .brand-master-logo {
  height: 38px !important;
  max-height: 38px !important;
  width: auto !important;
  object-fit: contain !important;
}

/* ----------------------------------------------------
   GLOBAL HEADER & DROPDOWN NAV
   ---------------------------------------------------- */
.ll-site-header {
  background-color: #ECECEC !important;
  border-bottom: 1px solid #E0E0E0 !important;
  padding: 16px 24px !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 999 !important;
}

.ll-header-wrap {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.ll-header-logo img {
  height: 38px !important;
  max-height: 38px !important;
  width: auto !important;
  display: block !important;
}

.ll-header-nav {
  display: flex !important;
  align-items: center !important;
  gap: 32px !important;
  list-style: none !important;
}

.ll-header-nav a,
.ll-dropdown-trigger {
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: #0B1120 !important;
  text-decoration: none !important;
  padding-bottom: 4px !important;
  position: relative !important;
  cursor: pointer !important;
  background: none !important;
  border: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.ll-header-nav a.active {
  font-weight: 700 !important;
  border-bottom: 2px solid #0B1120 !important;
}

/* DROPDOWN MENU MODULE */
.ll-dropdown-container {
  position: relative !important;
  display: inline-block !important;
}

.ll-dropdown-chevron {
  width: 10px !important;
  height: 6px !important;
  transition: transform 0.2s ease !important;
}

.ll-dropdown-menu {
  position: absolute !important;
  top: 100% !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  background: #FFFFFF !important;
  border: 1px solid #E2E8F0 !important;
  border-top: 3px solid #1D4ED8 !important;
  border-radius: 12px !important;
  box-shadow: 0 10px 25px -3px rgba(15, 23, 42, 0.15) !important;
  padding: 12px 0 !important;
  min-width: 220px !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 0.2s ease, visibility 0.2s ease !important;
  z-index: 1000 !important;
  list-style: none !important;
  overflow: hidden !important;
}

.ll-dropdown-container:hover .ll-dropdown-menu,
.ll-dropdown-container:focus-within .ll-dropdown-menu {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(-50%) !important;
}

.ll-dropdown-container:hover .ll-dropdown-chevron {
  transform: rotate(180deg) !important;
}

.ll-dropdown-menu li {
  margin: 0 !important;
}

.ll-dropdown-menu a {
  display: block !important;
  padding: 10px 20px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #1E293B !important;
  text-decoration: none !important;
  transition: background-color 0.15s ease, color 0.15s ease !important;
  white-space: nowrap !important;
  border-bottom: none !important;
}

.ll-dropdown-menu a:hover {
  background-color: #F8FAFC !important;
  color: #1D4ED8 !important;
}

/* ----------------------------------------------------
   MATCHING MASTER FOOTER
   ---------------------------------------------------- */
.launchlayer-master-footer {
  background-color: #F8F9FA !important;
  border-top: 1px solid #EAEAEA !important;
  padding: 48px 24px 32px 24px !important;
  font-family: 'Inter', sans-serif !important;
  margin-top: 60px !important;
}

.footer-top-segment {
  max-width: 1120px !important;
  margin: 0 auto 36px auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
}

@media (min-width: 850px) {
  .footer-top-segment {
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
  }
}

.footer-brand-block { max-width: 440px !important; }
.brand-tagline-text { font-size: 13.5px !important; color: #5A6578 !important; line-height: 1.5 !important; }

.inline-nav-links {
  list-style: none !important;
  display: flex !important;
  gap: 24px !important;
  flex-wrap: wrap !important;
}

.inline-nav-links a {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #334155 !important;
  text-decoration: none !important;
}

.footer-matrix-section {
  max-width: 1120px !important;
  margin: 0 auto 36px auto !important;
  border-top: 1px solid #EAEAEA !important;
  padding-top: 28px !important;
}

.footer-matrix-title {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  color: #94A3B8 !important;
  text-transform: uppercase !important;
  margin-bottom: 18px !important;
}

.footer-matrix-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 14px 24px !important;
}

.matrix-node a {
  font-size: 13.5px !important;
  color: #475569 !important;
  text-decoration: none !important;
  font-weight: 500 !important;
}

.data-recovery-special-node a {
  color: #1D4ED8 !important;
  font-weight: 700 !important;
}

.footer-compliance-bar {
  max-width: 1120px !important;
  margin: 0 auto !important;
  border-top: 1px solid #EAEAEA !important;
  padding-top: 24px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
  align-items: center !important;
}

@media (min-width: 768px) {
  .footer-compliance-bar {
    flex-direction: row !important;
    justify-content: space-between !important;
  }
}

.copyright-text-notice { font-size: 12.5px !important; color: #94A3B8 !important; }

.footer-right-assets {
  display: flex !important;
  align-items: center !important;
  gap: 24px !important;
}

.bark-widget-box {
  border: 1px solid #1E293B !important;
  background: #1E293B !important;
  color: #FFFFFF !important;
  padding: 6px 12px !important;
  border-radius: 4px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-align: center !important;
}

.footer-social-strip {
  display: flex !important;
  gap: 16px !important;
  align-items: center !important;
}

.social-icon-vector { color: #64748B !important; text-decoration: none !important; }
.social-icon-vector svg { width: 16px !important; height: 16px !important; fill: currentColor !important; }

/* ==========================================================================
   RESPONSIVE MOBILE HEADER & HAMBURGER MENU
   ========================================================================== */
.ll-burger-input,
.ll-burger-btn {
  display: none !important;
}

.ll-header-logo img {
  height: 38px !important;
  max-height: 38px !important;
  width: auto !important;
  display: block !important;
}

@media (max-width: 768px) {
  .ll-site-header {
    padding: 12px 16px !important;
  }

  .ll-header-wrap {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    position: relative !important;
  }

  .ll-burger-btn {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-around !important;
    width: 28px !important;
    height: 22px !important;
    cursor: pointer !important;
    z-index: 1002 !important;
  }

  .ll-burger-btn span {
    display: block !important;
    height: 2.5px !important;
    width: 100% !important;
    background-color: #0B1120 !important;
    border-radius: 2px !important;
    transition: all 0.3s ease-in-out !important;
  }

  .ll-header-nav {
    position: fixed !important;
    top: 0 !important;
    right: -100% !important;
    width: 80% !important;
    max-width: 300px !important;
    height: 100vh !important;
    background: #FFFFFF !important;
    box-shadow: -5px 0 25px rgba(0,0,0,0.15) !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 80px 24px 32px 24px !important;
    gap: 20px !important;
    transition: right 0.3s ease-in-out !important;
    z-index: 1001 !important;
  }

  .ll-header-nav a,
  .ll-dropdown-trigger {
    font-size: 18px !important;
    font-weight: 600 !important;
    width: 100% !important;
  }

  .ll-dropdown-menu {
    position: static !important;
    transform: none !important;
    box-shadow: none !important;
    border: none !important;
    padding: 8px 0 0 16px !important;
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
  }

  .ll-dropdown-menu a {
    font-size: 15px !important;
    padding: 6px 0 !important;
    color: #4B5768 !important;
  }

  .ll-burger-input:checked ~ .ll-header-nav {
    right: 0 !important;
  }

  .ll-burger-input:checked ~ .ll-burger-btn span:nth-child(1) {
    transform: translateY(7px) rotate(45deg) !important;
  }
  .ll-burger-input:checked ~ .ll-burger-btn span:nth-child(2) {
    opacity: 0 !important;
  }
  .ll-burger-input:checked ~ .ll-burger-btn span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg) !important;
  }
}

/* ==========================================================================
   STICKY SIDEBAR OVERRIDES (Fix for CTA Card clipping issues on service pages)
   ========================================================================== */
@media (min-width: 768px) {
  /* Ensure parent grid/section containers have overflow visible so sticky sidebar doesn't get clipped */
  section,
  [data-test="page-section"],
  .page-section,
  .fluid-engine,
  div[data-fluid-engine="true"],
  .sqs-layout, 
  .sqs-row, 
  .sqs-block,
  .sqs-block-html, 
  .sqs-block-content,
  .fe-block,
  .content-wrapper,
  .content,
  .llbrand-page,
  .llbrand-sidebar {
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
  }

  /* Ensure parent grid containers use align-items: start; so sticky container can float */
  .llbrand-layout {
    align-items: start !important;
  }

  /* Sticky Card Positioning override across all service pages (highly specific to beat inline styles) */
  .llbrand-sidebar-sticky,
  body .llbrand-page .llbrand-sidebar-sticky,
  body .llbrand-page .llbrand-layout .llbrand-sidebar .llbrand-sidebar-sticky {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 120px !important; /* Clears the site header with a generous, fully-visible offset */
    z-index: 99 !important; /* Higher z-index to stay above other page content, but below site header (999) */
    height: auto !important; /* Prevent stretching */
  }
}

/* REDUCE EXCESS TOP PADDING ABOVE HERO CONTENT ON SERVICE PAGES */
main#page {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

#sections .page-section:first-of-type,
.page-section:first-of-type,
#sections [data-test="page-section"]:first-of-type,
[data-test="page-section"]:first-of-type {
  padding-top: 24px !important;
}

#sections .page-section:first-of-type .content-wrapper,
.page-section:first-of-type .content-wrapper,
#sections [data-test="page-section"]:first-of-type .content-wrapper,
[data-test="page-section"]:first-of-type .content-wrapper {
  padding-top: 24px !important;
}

/* ==========================================================================
   MOBILE FOOTER SEO ACCORDION (LaunchLayer Theme)
   ========================================================================== */
@media (max-width: 639px) {
  /* Wrap the SEO title and links in a card container */
  .footer-matrix-section,
  footer .sqs-block-content:has(.footer-matrix-title) {
    background: #F7F8FB !important;
    border: 1px solid #E4E9F1 !important;
    border-radius: 12px !important;
    padding: 14px 16px !important;
    margin-bottom: 24px !important;
  }

  /* Ensure title bar is tappable flex row with chevron */
  .footer-matrix-title {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    font-size: 11px !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: #475569 !important;
    margin-bottom: 0 !important;
    cursor: pointer !important;
  }

  .service-coverage-accordion-header,
  [class*="service-coverage"] {
    cursor: pointer !important;
    touch-action: manipulation;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    pointer-events: auto !important;
    position: relative;
    z-index: 10;
  }

  /* Dropdown/accordion indicator arrow on mobile */
  .footer-matrix-title::after {
    content: "▼" !important;
    font-size: 9px !important;
    color: #1D4ED8 !important;
    transition: transform 0.25s ease !important;
    margin-left: 8px !important;
    display: inline-block !important;
  }

  .footer-matrix-section.active .footer-matrix-title::after,
  .service-coverage-accordion-header.active::after,
  .footer-matrix-title.active::after {
    transform: rotate(180deg) !important;
  }

  .footer-matrix-grid,
  .footer-matrix-section .grid-section {
    padding-top: 12px !important;
    margin-top: 12px !important;
    border-top: 1px solid #E4E9F1 !important;
  }

  footer .sqs-block-content ul,
  footer .footer-nav-links {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px 24px !important;
    text-align: left !important;
    padding: 0 16px !important;
  }

  footer .sqs-block-content ul li a,
  footer .footer-nav-links a {
    font-size: 14px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
  }

  /* Target ANY list or paragraph container holding main nav links inside footer */
  footer p:has(a),
  footer ul:has(a),
  footer .sqs-layout .sqs-block-content p,
  footer .sqs-layout .sqs-block-content ul {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 12px 8px !important;
    text-align: center !important;
    justify-items: center !important;
    margin: 0 auto 24px auto !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 340px !important;
  }

  /* Force links to be clean block flex items */
  footer p:has(a) a,
  footer ul:has(a) a,
  footer .sqs-layout .sqs-block-content a {
    display: inline-block !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    padding: 4px !important;
  }
}

/* Lightweight vanilla JS click listener for mobile footer accordion toggling */
/*
<script>
document.addEventListener('DOMContentLoaded', function() {
  document.body.addEventListener('click', function(e) {
    if (e.target && e.target.classList.contains('footer-matrix-title')) {
      const section = e.target.closest('.footer-matrix-section');
      if (section) {
        section.classList.toggle('active');
      }
    }
  });
});
</script>
*/

/* ==========================================================================
   MOBILE NAVIGATION SUBMENU & SEARCH BAR MOBILES UX CORRECTIONS
   ========================================================================== */

/* Goal 1: Mobile Submenu Alignment */
@media (max-width: 991px) {
  .dropdown-menu, .sub-menu, .nav-dropdown, .ll-dropdown-menu {
    position: static !important;
    transform: none !important;
  }

  .dropdown-menu a, .sub-menu a, .nav-dropdown a, .ll-dropdown-menu a {
    padding-left: 16px !important;
    text-align: left !important;
    margin-left: 0 !important;
    width: 100% !important;
  }

  /* Prevent any hover/focus active states from forcing absolute or translate on mobile/tablet */
  .ll-dropdown-container:hover .ll-dropdown-menu,
  .ll-dropdown-container:focus-within .ll-dropdown-menu,
  body .ll-dropdown-container:hover .ll-dropdown-menu,
  body .ll-dropdown-container:focus-within .ll-dropdown-menu {
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
    box-shadow: none !important;
    border: none !important;
    padding: 8px 0 0 16px !important;
  }
}

/* Goal 2: Search Bar Mobile UX & Placeholder Fix */
@media (max-width: 991px) {
  .search-container, .search-wrapper, .search-form, .llprc-finder {
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
  }

  body .llprc-finder-inputwrap,
  body .llprc-finder .llprc-finder-inputwrap {
    position: relative !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-bottom: 14px !important;
  }

  .search-container input,
  .search-wrapper input,
  .search-form input,
  .llprc-finder-input {
    background: #FFFFFF !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 999px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05) !important;
    width: 100% !important;
    padding: 12px 16px 12px 42px !important;
    font-size: 14px !important;
  }
}

@media (max-width: 640px) {
  .search-container input::placeholder,
  .search-wrapper input::placeholder,
  .search-form input::placeholder,
  .llprc-finder-input::placeholder,
  input::placeholder {
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    overflow: hidden !important;
  }
}

/* Constrain FAQ Chevron SVGs */
.sqs-block-accordion svg,
.accordion-item-icon svg,
.faq-chevron,
[class*="accordion"] svg {
  width: 18px !important;
  height: 18px !important;
  max-width: 18px !important;
  max-height: 18px !important;
  display: inline-block;
}

/* Force Interactive CSS Props for Service Coverage Accordion */
.service-coverage-accordion-header,
[class*="service-coverage"] {
  cursor: pointer !important;
  touch-action: manipulation !important;
  user-select: none !important;
  -webkit-tap-highlight-color: transparent;
  pointer-events: auto !important;
  position: relative;
  z-index: 999;
}

/* Hide panel by default on mobile screens */
@media (max-width: 767px) {
  .service-coverage-panel,
  .footer-matrix-list,
  .service-coverage-grid,
  .footer-matrix-grid {
    display: none !important;
  }

  /* Show when 'open' class is toggled by JS */
  .service-coverage-panel.open,
  .footer-matrix-list.open,
  .service-coverage-grid.open,
  .footer-matrix-grid.open {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
    margin-top: 15px !important;
  }
}

/* Always visible on desktop */
@media (min-width: 768px) {
  .service-coverage-panel,
  .footer-matrix-list,
  .service-coverage-grid,
  .footer-matrix-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
