/* About Us Page Styles */

:root {
    /* Card width and gaps used to compute 2-card scroll distance on mobile */
    --card-w: 320px;
    --gap-left: 24px; /* gap-6 */
    --gap-right: 20px; /* gap-5 */
    
    /* Stacked cards variables */
    --card-height: clamp(22rem, 32vw, 30rem);
    --card-margin: 4vw;
    --card-top-offset: 1em;
    --numcards: 4;
    --outline-width: 0px;
}

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');

body {
    font-family: 'Helvetica Neue', sans-serif;
}

/* ============================================
   Scrollbar Hiding Utilities
   ============================================ */
.no-scrollbar::-webkit-scrollbar {
    display: none;
}

.no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* ============================================
   Stacked Cards Section
   ============================================ */
#cards {
    padding-bottom: calc(var(--numcards) * var(--card-top-offset));
    margin-bottom: var(--card-margin);
}

#card_1 {
    --index: 1;
}

#card_2 {
    --index: 2;
}

#card_3 {
    --index: 3;
}

#card_4 {
    --index: 4;
}

.card {
    position: sticky;
    top: 0;
    padding-top: calc(var(--index) * var(--card-top-offset));
    z-index: 1; /* keep above decorative back layers */
}

/* Scroll-driven animation support */
@supports (scroll-timeline-name: none) or (animation-timeline: auto) {
    body {
        scroll-timeline-name: cards-element-scrolls-in-body;
        scroll-timeline-axis: block;
    }

    .card {
        --index0: calc(var(--index) - 1); /* 0-based index */
        --reverse-index: calc(var(--numcards) - var(--index0)); /* reverse index */
    }

    .card__content {
        transform-origin: 50% 0%;
        will-change: transform;
        --duration: calc(var(--reverse-index0) * 1s);
        --delay: calc(var(--index0) * 1s);
        animation: var(--duration) linear scale var(--delay) forwards;
        animation-timeline: cards-element-scrolls-in-body;
    }

    @keyframes scale {
        to {
            transform: scale(calc(1.08 - (0.08 * var(--reverse-index))));
        }
    }
}

/* Stacked cards background */
#stacked-cards {
    
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
}

#cards {
    list-style: none;
    position: relative;
    outline: calc(var(--outline-width) * 10) solid transparent;
    width: min(1120px, calc(100% - 2rem));
    margin-inline: auto;
    margin-top: 3rem;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(var(--numcards), var(--card-height));
    gap: var(--card-margin);
}

/* Decorative back layers */
#cards::before {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 94%;
    height: calc(var(--card-height) - 1.25rem);
    background: #ffffff;
    border-radius: 1rem;
    box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.10), 0 1em 2em rgba(0, 0, 0, 0.10);
    z-index: 0;
    top: 0.75rem;
    opacity: 0.85;
}

#cards::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 96%;
    height: calc(var(--card-height) - 1.25rem);
    background: #ffffff;
    border-radius: 1rem;
    box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.10), 0 1em 2em rgba(0, 0, 0, 0.10);
    z-index: 0;
    top: 1.75rem;
    opacity: 0.75;
}

.card {
    outline: var(--outline-width) solid hotpink;
}

.card__content {
    box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.1), 0 1em 2em rgba(0, 0, 0, 0.1);
    background: #ffffff;
    color: #0a0507;
    border-radius: 1rem;
    overflow: hidden;
    display: grid;
    grid-template-areas: "text img";
    grid-template-columns: 1.2fr 1fr;
    grid-template-rows: auto;
    align-items: stretch;
    outline: var(--outline-width) solid transparent;
}

.card__content > div {
    grid-area: text;
    width: 80%;
    place-self: center;
    text-align: left;
    display: grid;
    gap: 1em;
    place-items: start;
}

.card__content > figure {
    grid-area: img;
    overflow: hidden;
}

.card__content > figure > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.btn {
    background: rgb(188 87 36);
    color: rgb(255 255 255);
    text-decoration: none;
    display: inline-block;
    padding: 0.5em 0.9em;
    border-radius: 0.375em;
}

/* ============================================
   Animations
   ============================================ */
@keyframes bounce-float {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px);
    }
}

.animate-bounce-float {
    animation: bounce-float 3s ease-in-out infinite;
}

/* Testimonial scrolling animations */
@keyframes scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-50% - 12px));
    }
}

.animate-scroll {
    animation: scroll 40s linear infinite;
    will-change: transform;
}

@keyframes scroll-right {
    0% {
        transform: translateX(calc(-50% - 10px));
    }
    100% {
        transform: translateX(0);
    }
}

.animates-scroll {
    animation: scroll-right 40s linear infinite;
    will-change: transform;
}

.hover\:pause-scroll:hover {
    animation-play-state: paused;
}

/* Mobile: auto-scroll only two cards then repeat */
@keyframes scroll-two-left {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-1 * ((var(--card-w) + var(--gap-left)) * 2)));
    }
}

@keyframes scroll-two-right {
    0% {
        transform: translateX(calc(-1 * ((var(--card-w) + var(--gap-right)) * 2)));
    }
    100% {
        transform: translateX(0);
    }
}

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

/* ============================================
   Responsive Styles
   ============================================ */
@media (max-width: 1024px) {
    #cards::before {
        top: 0.5rem;
        opacity: 0.9;
        width: 92%;
    }

    #stacked-cards {
        height: auto !important;
    }

    #cards {
        width: 100%;
        display: flex;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        gap: max(1rem, 3vw);
        padding-inline: 0.75rem;
        margin-inline: 0;
        grid-template-columns: unset;
        grid-template-rows: unset;
        padding-bottom: 0;
        margin-bottom: 0;
    }

    #cards::before,
    #cards::after {
        display: none;
    }

    .card {
        position: relative;
        top: auto;
        padding-top: 0;
        flex: 0 0 auto;
        width: min(85vw, 360px);
        scroll-snap-align: start;
    }

    .card__content {
        grid-template-columns: 1fr;
        grid-template-areas: "img" "text";
    }

    .card__content > div {
        width: 92%;
        padding: 1rem 0 1.5rem;
    }

    .card__content > figure > img {
        object-position: center;
        min-height: 200px;
    }
}

@media (max-width: 767px) {
    .animate-scroll {
        animation: scroll-two-left 12s linear infinite;
    }

    .animates-scroll {
        animation: scroll-two-right 12s linear infinite;
    }
}

@media (max-width: 640px) {
    :root {
        --card-height: clamp(20rem, 90vw, 26rem);
    }

    #cards {
        margin-top: 2rem;
    }

    #cards::after {
        top: 0.9rem;
        opacity: 0.82;
        width: 92%;
    }
}
