.intro-bouncing-mosaic__area {
    max-width: 48rem;
}

.intro-bouncing-mosaic__decor--p1 {
    top: 0;
    left: 0;
    width: 2rem;
    height: 3rem;
    animation-duration: 2s;
}

.intro-bouncing-mosaic__decor--p2 {
    top: 0;
    left: 25%;
    width: 1.5rem;
    height: 2.5rem;
    animation-duration: 2.5s;
}

.intro-bouncing-mosaic__decor--p3 {
    top: 0;
    left: 50%;
    width: 2.5rem;
    height: 2rem;
    animation-duration: 1.8s;
}

.intro-bouncing-mosaic__decor--p4 {
    top: 0;
    left: 75%;
    width: 1.75rem;
    height: 2.75rem;
    animation-duration: 2.2s;
}

.intro-bouncing-mosaic__decor--p5 {
    top: 0;
    right: 0;
    width: 2.25rem;
    height: 2.25rem;
    animation-duration: 2.8s;
}

.intro-bouncing-mosaic__decor--p6 {
    top: 25%;
    left: 0;
    width: 1.5rem;
    height: 2rem;
    animation-duration: 3s;
}

.intro-bouncing-mosaic__decor--p7 {
    top: 25%;
    left: 25%;
    width: 2rem;
    height: 1.5rem;
    animation-duration: 1.5s;
}

.intro-bouncing-mosaic__decor--p8 {
    top: 25%;
    left: 50%;
    width: 1.25rem;
    height: 2.25rem;
    animation-duration: 2.3s;
}

.intro-bouncing-mosaic__decor--p9 {
    top: 25%;
    left: 75%;
    width: 1.75rem;
    height: 1.75rem;
    animation-duration: 2.7s;
}

.intro-bouncing-mosaic__decor--p10 {
    top: 25%;
    right: 0;
    width: 1.5rem;
    height: 2.5rem;
    animation-duration: 1.9s;
}

.intro-bouncing-mosaic__decor--p11 {
    top: 50%;
    left: 0;
    width: 2.25rem;
    height: 1.5rem;
    animation-duration: 2.1s;
}

.intro-bouncing-mosaic__decor--p12 {
    top: 50%;
    left: 25%;
    width: 1.75rem;
    height: 2rem;
    animation-duration: 2.6s;
}

.intro-bouncing-mosaic__decor--p13 {
    top: 50%;
    left: 50%;
    width: 1.5rem;
    height: 1.75rem;
    animation-duration: 1.7s;
}

.intro-bouncing-mosaic__decor--p14 {
    top: 50%;
    left: 75%;
    width: 2rem;
    height: 1.25rem;
    animation-duration: 2.4s;
}

.intro-bouncing-mosaic__decor--p15 {
    top: 50%;
    right: 0;
    width: 1.25rem;
    height: 2rem;
    animation-duration: 2.9s;
}

.intro-bouncing-mosaic__decor--p16 {
    top: 75%;
    left: 0;
    width: 2rem;
    height: 1.75rem;
    animation-duration: 2.2s;
}

.intro-bouncing-mosaic__decor--p17 {
    top: 75%;
    left: 25%;
    width: 1.5rem;
    height: 2.25rem;
    animation-duration: 1.8s;
}

.intro-bouncing-mosaic__decor--p18 {
    top: 75%;
    left: 50%;
    width: 1.75rem;
    height: 1.5rem;
    animation-duration: 2.5s;
}

.intro-bouncing-mosaic__decor--p19 {
    top: 75%;
    left: 75%;
    width: 1.25rem;
    height: 2rem;
    animation-duration: 2.1s;
}

.intro-bouncing-mosaic__decor--p20 {
    top: 75%;
    right: 0;
    width: 2.25rem;
    height: 1.5rem;
    animation-duration: 2.7s;
}

.intro-bouncing-mosaic__decor--p21 {
    bottom: 0;
    left: 0;
    width: 1.5rem;
    height: 2rem;
    animation-duration: 2.3s;
}

.intro-bouncing-mosaic__decor--p22 {
    bottom: 0;
    left: 25%;
    width: 2rem;
    height: 1.25rem;
    animation-duration: 1.6s;
}

.intro-bouncing-mosaic__decor--p23 {
    bottom: 0;
    left: 50%;
    width: 1.75rem;
    height: 1.75rem;
    animation-duration: 2.8s;
}

.intro-bouncing-mosaic__decor--p24 {
    bottom: 0;
    left: 75%;
    width: 1.25rem;
    height: 2.25rem;
    animation-duration: 2s;
}

.intro-bouncing-mosaic__decor--p25 {
    bottom: 0;
    right: 0;
    width: 2rem;
    height: 1.5rem;
    animation-duration: 2.4s;
}

[class*="intro-bouncing-mosaic__decor--p"] {
    animation-name: intro-bouncing-mosaic__bounce;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

@keyframes intro-bouncing-mosaic__bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-25%); }
}

/* Layout only — colors stay in Blade utilities */

.borderline-editorial__kicker {
  max-width: 36rem;
}

.borderline-editorial__rule {
  width: 2.5rem;
  height: 2px;
}

.borderline-editorial__body {
  min-width: 0;
}

.borderline-editorial__stamp {
  width: 7rem;
  align-self: stretch;
  min-height: 6rem;
}

@media (min-width: 768px) {
  .borderline-editorial__stamp {
    width: 11rem;
    min-height: 8rem;
  }
}

.borderline-editorial__stamp-pattern {
  background-image: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 5px,
    rgba(var(--bs-primary-rgb), 0.1) 5px,
    rgba(var(--bs-primary-rgb), 0.1) 6px
  );
}

.borderline-editorial__stamp-ring {
  width: 4.5rem;
  height: 4.5rem;
  top: 50%;
  left: 50%;
  margin-top: -2.25rem;
  margin-left: -2.25rem;
  background: conic-gradient(
    from 0deg,
    rgba(var(--bs-primary-rgb), 0.55),
    rgba(var(--bs-primary-rgb), 0.05) 120deg,
    rgba(var(--bs-primary-rgb), 0.45) 240deg,
    rgba(var(--bs-primary-rgb), 0.05)
  );
  animation: borderline-editorial-ring-spin 10s linear infinite;
  mask: radial-gradient(circle, transparent 58%, black 60%);
  -webkit-mask: radial-gradient(circle, transparent 58%, black 60%);
}

.borderline-editorial__stamp--1 .borderline-editorial__stamp-ring {
  animation-duration: 12s;
  animation-direction: reverse;
}

.borderline-editorial__stamp--2 .borderline-editorial__stamp-ring {
  animation-duration: 8s;
}

.borderline-editorial__stamp-date {
  writing-mode: horizontal-tb;
}

.borderline-editorial__excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@keyframes borderline-editorial-ring-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .borderline-editorial__stamp-ring {
    animation: none;
  }
}

/* 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;
}

/* glossary film — strip scrollport: min-width 0 + width 100% so overflow-x shows next card; mobile widths */
.glossary-film__mask {
    max-width: 100%;
    min-width: 0;
}

.glossary-film__strip {
    display: flex;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    scroll-snap-type: x mandatory;
}

.glossary-film__cell {
    scroll-snap-align: center;
}

@media (max-width: 767.98px) {
    .glossary-film__strip {
        padding-inline-start: 0.5rem;
        padding-inline-end: max(0.75rem, 5vw);
        scroll-padding-inline-end: max(0.75rem, 5vw);
    }

    .glossary-film__cell {
        scroll-snap-align: start;
        flex: 0 0 min(20rem, 82vw);
        width: min(20rem, 82vw);
        max-width: min(20rem, 82vw);
    }
}

@media (min-width: 768px) {
    .glossary-film__cell {
        flex: 0 0 20rem;
        width: 20rem;
        max-width: none;
    }
}

/* FAQ v15 — CSS flip card mechanics for Bootstrap branch */
.faq-flip__card-outer {
    perspective: 1000px;
    min-height: 12rem;
}

.faq-flip__card-inner {
    transform-style: preserve-3d;
    transition: transform 0.7s ease;
}

.faq-flip__card-outer:hover .faq-flip__card-inner {
    transform: rotateY(180deg);
}

.faq-flip__face {
    backface-visibility: hidden;
}

.faq-flip__face--back {
    transform: rotateY(180deg);
}

/* subscribe v25 — overlapping avatar stack: geometry shared by both CSS frameworks, no colors */
.mailing-avatar-stack__section--py-4xl {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

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

.mxw-md {
    max-width: 28rem !important;
}

.mailing-avatar-stack__item {
    width: 4rem;
    height: 4rem;
    margin-left: -1rem;
    flex-shrink: 0;
}

.mailing-avatar-stack__item:first-child {
    margin-left: 0;
}

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

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

.mailing-avatar-stack__input,
.mailing-avatar-stack__cta {
    padding: 0.75rem 1rem;
}

.mailing-avatar-stack__cta {
    padding-inline: 1.5rem;
}

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

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

