/* =============================================================
   O Legado — Site Styles
   ============================================================= */

:root {
    --color-ink: #000000;
    --color-brand: #ff9800;
    --color-box: #f7f7f3;
    --color-light: #ffffff;
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }

/* Reveal animations — elements start invisible, become animated on intersection */
.reveal {
    opacity: 0;
    will-change: transform, opacity;
}
.reveal.is-visible {
    opacity: 1;
    animation-duration: 0.9s;
    animation-fill-mode: both;
}

/* Map data-anim values to animate.css classes via class injection (handled in JS) */

/* Bootstrap accordion overrides — flush styling
   Use !important to win over Tailwind CDN dynamic injection */
.accordion-button {
    color: var(--color-ink) !important;
    background-color: transparent !important;
    box-shadow: none !important;
}
.accordion-button:focus {
    box-shadow: none !important;
    border-color: transparent !important;
}
.accordion-button.collapsed {
    color: var(--color-ink) !important;
    background-color: transparent !important;
}
.accordion-button::after {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3E%3Cpath d='M3.204 5L8 10.481 12.796 5z'/%3E%3C/svg%3E") !important;
}
.accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ff9800'%3E%3Cpath d='M3.204 5L8 10.481 12.796 5z'/%3E%3C/svg%3E") !important;
    transform: rotate(-180deg) !important;
}
.accordion-body {
    color: var(--color-ink) !important;
}

/* ---------------------------------------------------------------
   CRITICAL: Tailwind CDN v3 has a `collapse` utility that sets
   visibility:collapse — same token Bootstrap uses on accordion.
   This overrides Bootstrap's height-based collapse and makes
   accordion content permanently invisible. Force visible here.
--------------------------------------------------------------- */
.accordion-collapse {
    visibility: visible !important;
}

/* FAQ accordion: pill style — round chevron button */
#faqAccordion .accordion-button::after {
    width: 28px !important;
    height: 28px !important;
    background-color: var(--color-brand) !important;
    border-radius: 9999px !important;
    background-position: center !important;
    background-size: 14px !important;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M3.204 5L8 10.481 12.796 5z'/%3E%3C/svg%3E") !important;
}
#faqAccordion .accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M3.204 11L8 5.519 12.796 11z'/%3E%3C/svg%3E") !important;
    transform: none !important;
}

/* Smooth image loading */
img:not([class*="logo"]):not(nav img):not(header img):not(footer img) { background-color: var(--color-box); }

/* Testimonials — CSS marquee (GPU-accelerated, 100% reliable) */
@keyframes testimonials-scroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.testimonials-outer {
    overflow: hidden;
    /* fade edges */
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}

.testimonials-track {
    display: flex;
    gap: 16px;
    width: max-content;
    animation: testimonials-scroll 35s linear infinite;
}

/* Pausa ao passar o mouse */
.testimonials-track:hover { animation-play-state: paused; }

.testimonials-card {
    width: 300px;
    flex-shrink: 0;
}
@media (min-width: 640px)  { .testimonials-card { width: 340px; } }
@media (min-width: 1024px) { .testimonials-card { width: 360px; } }

/* Alumni — CSS marquee (portrait cards, fundo escuro) */
@keyframes alumni-scroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.alumni-outer {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 6%, black 94%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 6%, black 94%, transparent 100%);
}

.alumni-track {
    display: flex;
    width: max-content;
    animation: alumni-scroll 50s linear infinite;
}

.alumni-set {
    display: flex;
    gap: 20px;
    padding-right: 20px; /* trailing gap = gap entre cards: garante loop sem salto */
}

.alumni-track:hover { animation-play-state: paused; }

.alumni-card {
    width: 220px;
    flex-shrink: 0;
}
@media (min-width: 640px)  { .alumni-card { width: 250px; } }
@media (min-width: 1024px) { .alumni-card { width: 280px; } }

/* Mobile: reduz padding px-5 de 1.25rem para 1rem */
@media (max-width: 639px) {
    .px-5 { padding-left: 1rem !important; padding-right: 1rem !important; }
}

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1 !important; animation: none !important; }
    .animate__animated { animation: none !important; }
    .alumni-track { animation: none !important; }
    html { scroll-behavior: auto; }
}

.py-5 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
}

.mt-5 {
    margin-top: 1.5rem !important;
}

.gap-8 {
    gap: 4rem !important;
}

.h-10 {
    height: 3.5rem !important;
}

.text-speak {
    font-family: 'Playfair Display', serif !important;
    font-style: italic !important;
    font-size: 0.875rem !important;
}