.hero-v26-desc {
    max-width: 28rem;
}

@keyframes heroTitlePulse {
    0%, 100% { letter-spacing: -0.04em; }
    50% { letter-spacing: 0.01em; }
}

.hero-display-title {
    animation: heroTitlePulse 6s ease-in-out infinite;
}

/* -- Button hover states -- */
.hero-btn-primary {
    transition: filter 0.2s ease, transform 0.15s ease;
}
.hero-btn-primary:hover,
.hero-btn-primary:focus {
    filter: brightness(1.12);
    transform: translateY(-1px);
}

.hero-btn-outline-secondary {
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.hero-btn-outline-secondary:hover,
.hero-btn-outline-secondary:focus {
    background-color: var(--bs-secondary) !important;
    color: #fff !important;
    border-color: var(--bs-secondary) !important;
    transform: translateY(-1px);
}

.hero-btn-outline-primary-light {
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.hero-btn-outline-primary-light:hover,
.hero-btn-outline-primary-light:focus {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
    border-color: var(--bs-primary) !important;
    transform: translateY(-1px);
}
.dispatch-stack-media__frame {
    height: 12rem;
}

.dispatch-stack-media__col {
    min-width: 0;
}

/* BS-only gradient (TW uses @sem layer) */
.dispatch-stack-media__canvas-bg {
    background: linear-gradient(
        to bottom right,
        color-mix(in srgb, var(--bs-primary) 50%, black),
        color-mix(in srgb, var(--bs-primary) 38%, black),
        var(--bs-primary)
    );
}

.dark .dispatch-stack-media__canvas-bg,
[data-bs-theme="dark"] .dispatch-stack-media__canvas-bg {
    background: linear-gradient(
        to bottom right,
        color-mix(in srgb, var(--bs-primary) 10%, black),
        color-mix(in srgb, var(--bs-primary) 24%, black),
        color-mix(in srgb, var(--bs-primary) 40%, black)
    );
}

.dispatch-stack-media__svg {
    display: block;
}

.dispatch-stack-media__orb {
    transform-origin: center;
    transform-box: fill-box;
}

.dispatch-stack-media__orb--a {
    animation: dispatch-stack-media-drift-a 8s ease-in-out infinite;
}

.dispatch-stack-media__orb--b {
    animation: dispatch-stack-media-drift-b 10s ease-in-out infinite;
    animation-delay: 1s;
}

.dispatch-stack-media__wave {
    stroke-linecap: round;
    stroke-linejoin: round;
    transform-origin: center;
}

.dispatch-stack-media__wave--a {
    animation: dispatch-stack-media-wave-slide 12s linear infinite;
}

.dispatch-stack-media__wave--b {
    animation: dispatch-stack-media-wave-slide 16s linear infinite reverse;
    animation-delay: 1.5s;
}

.dispatch-stack-media__stage--1 .dispatch-stack-media__orb--a {
    animation-delay: 0.6s;
}

.dispatch-stack-media__stage--1 .dispatch-stack-media__wave--a {
    animation-duration: 14s;
}

@keyframes dispatch-stack-media-drift-a {
    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(10px, -8px) scale(1.07);
    }
}

@keyframes dispatch-stack-media-drift-b {
    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(-12px, 6px) scale(1.05);
    }
}

@keyframes dispatch-stack-media-wave-slide {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-36px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .dispatch-stack-media__orb--a,
    .dispatch-stack-media__orb--b,
    .dispatch-stack-media__wave--a,
    .dispatch-stack-media__wave--b {
        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 zig — reserved for layout-only hooks; motion lives in Tailwind on @sem('row'). */

/* FAQ v6 — JS hooks */
.guides-solver-content-tucked {
    display: none;
}

.guides-solver-symbol-reveal {
    transform: rotate(180deg);
}

/* Cluster positions */
.guides-solver__cluster-a { top: 4rem; left: 4rem; }
.guides-solver__cluster-b { bottom: 5rem; right: 5rem; }

/* Standalone dot positions and sizes */
.guides-solver__dot-a { top: 33%; left: 3rem; width: 0.5rem; height: 0.5rem; }
.guides-solver__dot-b { top: 66%; right: 4rem; width: 0.75rem; height: 0.75rem; }
.guides-solver__dot-c { top: 25%; right: 33%; width: 0.5rem; height: 0.5rem; }

/* Inner cluster child positions */
.guides-solver__accent--inner-a { top: 1rem; left: 1.5rem; width: 0.75rem; height: 0.75rem; }
.guides-solver__accent--inner-b { top: 2rem; left: 3rem; width: 0.5rem; height: 0.5rem; }
.guides-solver__accent--inner-c { top: -0.5rem; left: 2rem; width: 1rem; height: 1rem; }

/* Decorative lines */
.guides-solver__line-a { top: 0.25rem; left: 0.25rem; width: 1.5rem; height: 0.125rem; transform: rotate(45deg); }
.guides-solver__line-b { top: 1.25rem; left: 1.75rem; width: 2rem; height: 0.125rem; transform: rotate(12deg); }
.guides-solver__line-c { top: -0.75rem; left: -0.5rem; width: 2.5rem; height: 0.125rem; transform: rotate(-12deg); }
.guides-solver__line-d-pos { top: -0.25rem; left: 1rem; width: 1.5rem; height: 0.125rem; transform: rotate(45deg); }

/* Animation delays */
.guides-solver__accent--delay-1 { animation-delay: 0.3s; }
.guides-solver__accent--delay-2 { animation-delay: 0.5s; }
.guides-solver__accent--delay-4 { animation-delay: 1s; }
.guides-solver__accent--delay-5 { animation-delay: 1.3s; }
.guides-solver__accent--delay-6 { animation-delay: 1.6s; }
.guides-solver__accent--delay-7 { animation-delay: 1.8s; }

@keyframes guides-solver-accent-blink-seq {
    0%, 100% { opacity: 1; }
    50%       { opacity: .5; }
}
.guides-solver__accent--blink {
    animation: guides-solver-accent-blink-seq 2s cubic-bezier(.4,0,.6,1) infinite;
}

@keyframes guides-solver-accent-ripple-seq {
    75%, 100% { transform: scale(2); opacity: 0; }
}
.guides-solver__accent--ripple {
    animation: guides-solver-accent-ripple-seq 1s cubic-bezier(0,0,.2,1) infinite;
}

.guides-solver__accent--offset { top: -1.5rem; left: -1rem; }

.guides-solver__handle--glow:hover { transform: scale(1.05); transition: transform .2s ease; }

.guides-solver__symbol--glow:hover { transform: scale(1.1); transition: transform .2s ease; }

