/* ==========================================================================
   FAQ Sticky Nav block
   Left column = sticky navigation (CTA per section)
   Right column = scrollable sections, click CTA -> scroll to section
   ========================================================================== */

.faq-sticky {
  --fsn-blue: #09334a;
  --fsn-cream: #edeae3;
  --fsn-gold: #8c752c;
  --fsn-border: rgba(9, 51, 74, 0.3);
  --fsn-offset: 180px; /* keep in sync with scrollOffset in the JS */
  --fsn-nav-width: 40.5%;

  /* The theme sets `section { overflow-x: hidden !important }`, which turns
	   every section into a scroll container and kills position: sticky on the
	   left column. Force visible overflow so sticky anchors to the viewport. */
  overflow: visible !important;
}

.faq-sticky__inner {
  display: flex;
  align-items: stretch; /* both columns share the tallest height -> cream reaches the bottom */
}

/* --------------------------------------------------------------------------
   LEFT — sticky navigation
   -------------------------------------------------------------------------- */
.faq-sticky__nav {
  position: relative;
  flex: 0 0 var(--fsn-nav-width);
  max-width: var(--fsn-nav-width);
  background: var(--fsn-cream);
}

/* Extend the cream all the way to the left screen edge, escaping the
   container, without touching the markup or wrappers. */
.faq-sticky__nav::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 100%;
  width: 100vw;
  background: var(--fsn-cream);
}

.faq-sticky__nav-inner {
  position: sticky;
  top: var(--fsn-offset);
  padding: 80px 48px;
  transition: top 0.3s ease;
}

/* When the site header hides on scroll (gets .active and slides up), pull the
   sticky nav toward the top so it doesn't leave a big gap where the header was. */
.site-header.active ~ * .faq-sticky__nav-inner {
  top: 24px;
}

.faq-sticky__label {
  display: block;
  font-size: 16px;
  font-weight: 500;
  color: var(--fsn-blue);
  margin-bottom: 16px;
}

.faq-sticky__title {
  font-family: "FreightBig Pro" !important;
  font-weight: 400 !important;
  font-size: 49px !important;
  line-height: 54px;
  color: var(--fsn-blue);
  margin: 0 0 24px;
}

.faq-sticky__desc {
  font-size: 18px;
  line-height: 1.5;
  color: var(--fsn-blue);
  margin-bottom: 8px;
}

.faq-sticky__desc p {
  margin: 0;
}

.faq-sticky__ask {
  display: inline-block;
  font-size: 18px;
  color: var(--fsn-blue);
  text-decoration: underline;
  margin-bottom: 32px;
}

/* CTA buttons — stacked one under another */
.faq-sticky__cta-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  margin-top: 32px;
}

.faq-sticky__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 15px;
  font-size: 17px;
  line-height: 1.3;
  color: #fff;
  background: var(--fsn-blue);
  border-radius: 3px;
  text-align: left;
  text-decoration: underline;
  transition: background-color 0.2s ease;
  cursor: pointer;
  text-decoration: none;
}

.faq-sticky__cta:hover,
.faq-sticky__cta.is-active {
  background: var(--fsn-gold);
  color: #fff;
}

/* --------------------------------------------------------------------------
   RIGHT — scrollable content
   -------------------------------------------------------------------------- */
.faq-sticky__content {
  flex: 1 1 auto;
  min-width: 0;
  background: #fff;
  padding: 80px 0 80px 56px;
}

.faq-sticky__section {
  scroll-margin-top: 0;
}

.faq-sticky__section + .faq-sticky__section {
  margin-top: 43px;
}
/* .site-header.active ~ * .faq-sticky__section {
  scroll-margin-top: 0;
} */

.faq-sticky__section-title {
  font-family: "FreightBig Pro" !important;
  font-weight: 400 !important;
  font-size: 49px !important;
  line-height: 54px;
  color: var(--fsn-blue);
  margin: 0 0 20px;
}

/* Cream note box at the bottom of the content column */
.faq-sticky__note {
  margin-top: 43px;
  padding: 40px 50px;
  background: var(--fsn-cream);
  border-radius: 3px;
  font-size: 18px;
  line-height: 1.6;
  color: var(--fsn-blue);
}

.faq-sticky__note p {
  margin: 0;
}

/* --------------------------------------------------------------------------
   Accordion
   -------------------------------------------------------------------------- */
.faq-sticky__list {
  border-top: 1px solid var(--fsn-border);
}

.faq-sticky .faq-item {
  border-bottom: 1px solid var(--fsn-border);
  padding: 0;
}

.faq-sticky .faq-header {
  position: relative;
  overflow: hidden;
  width: 100%;
  background: none;
  border: 0;
  padding: 20px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  text-align: left;
}

/* Hover fill — cream sweeps in from the left (width 0 -> 100%) and back out */
.faq-sticky .faq-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 0;
  background: var(--fsn-cream);
  transition: width 0.4s ease;
  z-index: 0;
}

.faq-sticky .faq-header:hover::before {
  width: 100%;
}

/* Hover — text and icon turn gold (cream fill handled by ::before) */
.faq-sticky .faq-header:hover .faq-title,
.faq-sticky .faq-header:hover .faq-icon {
  color: var(--fsn-gold);
}

.faq-sticky .faq-title {
  position: relative;
  z-index: 1;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--fsn-blue);
  transition: color 0.2s ease;
}

/* Chevron icon (rotates when the item is open) */
.faq-sticky .faq-icon {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--fsn-blue);
  transition:
    transform 0.25s ease,
    color 0.2s ease;
}

.faq-sticky .faq-item.active .faq-icon {
  transform: rotate(180deg);
}

.faq-sticky .faq-content {
  padding: 20px 16px 24px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--fsn-blue);
}

.faq-sticky .faq-content li {
  padding-bottom: 10px;
}
.faq-sticky .faq-content p {
  margin: 0 0 12px;
}

.faq-sticky .faq-content p:last-child {
  margin-bottom: 0;
}

.faq-sticky .faq-item.active .faq-title {
  font-weight: 700;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 991px) {
  .faq-sticky__inner {
    flex-direction: column;
  }

  .faq-sticky__nav,
  .faq-sticky__content {
    flex: 1 1 100%;
    max-width: 100%;
  }

  .faq-sticky__nav-inner {
    position: static;
    top: auto;
    padding: 48px 24px;
  }

  .faq-sticky__content {
    padding: 48px 24px;
  }
}
@media (max-width: 767px) {
  .faq-sticky__title,
  .faq-sticky__section-title {
    font-size: 36px !important;
    line-height: 42px;
  }
  .faq-sticky__content {
    padding: 24px 0;
  }
  .faq-sticky .faq-header {
    padding: 20px 0;
  }
  .faq-sticky .faq-content {
    padding: 15px 0;
  }
  .faq-sticky__cta {
    width: 100%;
    justify-content: flex-start;
  }
}
