/* intro v19 — photo-free index list: soft blurred blobs, fixed icon tiles, scroll reveal */

/* Soft background blobs (fixed size + blur have no BS utility; colour stays a Tailwind/BS class) */
.intro-index__blob {
    width: 24rem;
    height: 24rem;
    filter: blur(64px);
    opacity: 0.5;
}

/* Icon tile fixed size (BS has no w-N/h-N utility) */
.intro-index__icon-tile {
    width: 3rem;
    height: 3rem;
}

/* Scroll reveal — cards hide only once JS arms the section (no-JS content stays visible) */
.intro-index.is-armed .intro-index__card {
    opacity: 0;
    transform: translateY(1.5rem);
    transition: opacity 560ms ease, transform 560ms ease;
}
.intro-index.is-armed .intro-index__card.is-in {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .intro-index.is-armed .intro-index__card {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* FAQ v4 — collapsed panel (no display:none: scrollHeight must be measurable after class toggle) */
.support-qna-content-veiled {
    max-height: 0 !important;
    overflow: hidden;
    opacity: 0;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    pointer-events: none;
}

/* Thumb sizes */
.support-qna__thumb-md { width: 2.5rem; height: 2.5rem; }
.support-qna__thumb-sm { width: 2rem; height: 2rem; }

/* Corner blob sizes */
.support-qna__corner-blob-lg { width: 8rem; height: 8rem; }
.support-qna__corner-blob-md { width: 6rem; height: 6rem; }

/* Dot positions */
.support-qna__dot-a { top: 6rem; left: 33%; width: 0.75rem; height: 0.75rem; }
.support-qna__dot-b { top: 10rem; right: 33%; width: 0.5rem; height: 0.5rem; }
.support-qna__dot-c { bottom: 8rem; left: 50%; width: 1rem; height: 1rem; }

/* Stripe positions for gradient bands */
.support-qna__stripe-top { height: 8rem; }
.support-qna__stripe-mid { top: 4rem; height: 6rem; }

/* Blob positions */
.support-qna__blob-a { top: 5rem; left: 3rem; width: 4rem; height: 4rem; }
.support-qna__blob-b { top: 8rem; right: 4rem; width: 3rem; height: 3rem; }
.support-qna__blob-c { bottom: 6rem; left: 25%; width: 5rem; height: 5rem; }

/* Animation delays */
.support-qna__ornament--delay-2 { animation-delay: 0.5s; }
.support-qna__ornament--delay-3 { animation-delay: 0.8s; }
.support-qna__ornament--delay-4 { animation-delay: 1s; }
.support-qna__ornament--delay-5 { animation-delay: 1.2s; }
.support-qna__ornament--delay-6 { animation-delay: 1.5s; }
.support-qna__ornament--delay-7 { animation-delay: 2s; }

@keyframes support-qna-ornament-beat-cycle {
    0%, 100% { opacity: 1; }
    50%       { opacity: .5; }
}
.support-qna__ornament--beat {
    animation: support-qna-ornament-beat-cycle 2s cubic-bezier(.4,0,.6,1) infinite;
}

@keyframes support-qna-ornament-spring-cycle {
    0%, 100% { transform: translateY(0); animation-timing-function: cubic-bezier(.8,0,1,1); }
    50%       { transform: translateY(-25%); animation-timing-function: cubic-bezier(0,0,.2,1); }
}
.support-qna__ornament--spring {
    animation: support-qna-ornament-spring-cycle 1s infinite;
}

@keyframes support-qna-ornament-wave-cycle {
    75%, 100% { transform: scale(2); opacity: 0; }
}
.support-qna__ornament--wave {
    animation: support-qna-ornament-wave-cycle 1s cubic-bezier(0,0,.2,1) infinite;
}

.support-qna__ornament--lift:hover { transform: scale(1.25); transition: transform .2s ease; }

.support-qna__mark--lift:hover { transform: scale(1.1); transition: transform .2s ease; }

/* contact-bento — CSS Grid bento layout (applies to both TW and BS) */
.contact-bento__grid {
    display: grid;
    gap: 1rem;
}

@media (min-width: 768px) {
    .contact-bento__grid {
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: 14rem 10rem;
    }

    .contact-bento__cell--title   { grid-column: 1 / 3; grid-row: 1; }
    .contact-bento__cell--image   { grid-column: 3 / 4; grid-row: 1; }
    .contact-bento__cell--phone   { grid-column: 1 / 2; grid-row: 2; }
    .contact-bento__cell--email   { grid-column: 2 / 3; grid-row: 2; }
    .contact-bento__cell--address { grid-column: 3 / 4; grid-row: 2; }
}

/* contact-bento — icon cell fixed size (TW w-10 h-10 has no BS util) */
.contact-bento__icon {
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* contact-bento — image fill (no BS object-fit util) */
.contact-bento__img {
    object-fit: cover;
    min-height: 12rem;
}

