@keyframes driftLeftRight {
    0% { transform: translateX(-15%); }
    50% { transform: translateX(15%); }
    100% { transform: translateX(-15%); }
}

@keyframes driftRightLeft {
    0% { transform: translateX(15%); }
    50% { transform: translateX(-15%); }
    100% { transform: translateX(15%); }
}

.intro-drift-strip-a {
    width: 33%;
    height: 6rem;
    animation: driftLeftRight 14s ease-in-out infinite;
}

.intro-drift-strip-b {
    width: 50%;
    height: 4rem;
    animation: driftRightLeft 18s ease-in-out infinite;
}

.intro-drift-strip-c {
    width: 25%;
    height: 5rem;
    animation: driftLeftRight 12s ease-in-out infinite;
    animation-delay: 3s;
}

.intro-drift-container {
    max-width: 80rem;
}

.intro-drift-textbox {
    max-width: 48rem;
}

.content-ledger__stem {
    height: 4rem;
    transform: translateX(-50%);
}

/* Bootstrap: grid + gap (row gutters often collapse) */
.tips-detailed__bs-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .tips-detailed__bs-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.tips-detailed__subtitle-max {
    max-width: 42rem;
}

.tips-detailed__thumb {
    width: 3rem;
    height: 3rem;
}

.tips-detailed__cta-thumb {
    width: 2rem;
    height: 2rem;
}

.tips-detailed__min-shrink {
    min-width: 0;
}

/* faq v30 — full-width horizontal index lines */
.faq-index__row:last-child {
  border-bottom-width: 0;
}

.faq-index__headline {
  letter-spacing: -0.03em;
}

.faq-index__line {
  display: grid;
  width: 100%;
  align-items: center;
  column-gap: 1.5rem;
  row-gap: 1rem;
  grid-template-columns: 1fr;
  grid-template-areas:
    'num'
    'question'
    'answer'
    'media';
}

.faq-index__cell--num {
  grid-area: num;
}

.faq-index__cell--question {
  grid-area: question;
  min-width: 0;
}

.faq-index__cell--answer {
  grid-area: answer;
  min-width: 0;
}

.faq-index__cell--media {
  grid-area: media;
  min-width: 0;
}

.faq-index__photo {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

@media (min-width: 768px) {
  .faq-index__line {
    column-gap: 2rem;
    row-gap: 0;
    grid-template-columns: 4.5rem minmax(0, 1fr) minmax(0, 1.25fr) minmax(12rem, 26%);
    grid-template-areas: 'num question answer media';
  }

  .faq-index__photo {
    min-height: 10rem;
  }
}

@media (min-width: 1200px) {
  .faq-index__line {
    column-gap: 3rem;
    grid-template-columns: 5rem minmax(0, 1fr) minmax(0, 1.35fr) minmax(14rem, 24%);
  }
}

/* subscribe v15 — geometry shared by both CSS frameworks (Bootstrap has no utilities for it) */
.mailing-funnel__section--py-4xl {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.mxw-xl {
    max-width: 36rem !important;
}

.mxw-sm {
    max-width: 24rem !important;
}

.mailing-funnel__steps {
    margin-bottom: 2rem;
}

.mailing-funnel__title {
    font-size: 1.5rem;
    margin-bottom: 2rem;
}

.mailing-funnel__subtitle {
    font-size: 1.125rem;
}

.mailing-funnel__row {
    flex-direction: column;
    gap: 0.75rem;
}

.mailing-funnel__input {
    min-width: 0;
    padding: 0.75rem 1rem;
}

.mailing-funnel__cta,
.mailing-funnel__cta--block {
    padding: 0.75rem 1.5rem;
}

.mailing-funnel__cta {
    width: 100%;
}

.mailing-funnel__list {
    gap: 0.75rem;
}

.mailing-funnel__topic {
    padding: 0.75rem 1rem;
}

.mailing-funnel__topic-label {
    gap: 0.75rem;
    cursor: pointer;
}

.mailing-funnel__dot {
    width: 0.5rem;
    height: 0.5rem;
    opacity: 0.35;
    transition: opacity 200ms ease;
}

.mailing-funnel__dot.is-active {
    opacity: 1;
}

@media (min-width: 640px) {
    .mailing-funnel__row {
        flex-direction: row;
    }

    .mailing-funnel__cta {
        width: auto;
    }
}

@media (min-width: 768px) {
    .mailing-funnel__title {
        font-size: 2.25rem;
    }
}

