/* ==========================================
   RESET & VARIÁVEIS (Cores Alex Paxeco)
   ========================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --background: #050505;
    --foreground: #fafafa;
    --card: #0d0d0d;
    --gold-paxeco: #c49a3f;
    --green-paxeco: #22c55e;
    --primary: #c49a3f;
    --primary-dark: #2d2009;
    --accent: #22c55e;
    --muted: #999999;
    --border: #262626;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================
   ESTILOS BASE
   ========================================== */
body {
    font-family: 'Inter', sans-serif;
    background-color: var(--background);
    color: var(--foreground);
    line-height: 1.6;
    overflow-x: hidden;
    max-width: 100%;
    position: relative;
}

html {
    scroll-behavior: smooth;
    overflow-x: clip;
}

/* ==========================================
   NAVBAR (Transparente -> Dark)
   ========================================== */
/* No style.css, altera para isto: */
.navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2000; /* Aumentado para ser a camada mais alta */
    transition: all 0.3s ease;
    padding: 1.5rem 2rem;
}

.navbar.scrolled {
    background: rgba(5, 5, 5, 0.95);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--border);
    padding: 1rem 2rem;
}

.nav-container {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.nav-links {
    display: flex;
    gap: 2.5rem;
    list-style: none;
    align-items: center;
}

.nav-links a {
    color: var(--foreground);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 500;
    transition: 0.3s;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.nav-links a:hover {
    color: var(--gold-paxeco);
}

/* Botão Verde na Navbar (Saber Mais) */
.btn-green-nav {
    background-color: var(--green-paxeco);
    color: white !important;
    padding: 0.7rem 1.4rem;
    border-radius: 8px;
    font-weight: 700;
    transition: 0.3s;
    text-decoration: none; 
}

.btn-green-nav:hover {
    background-color: #16a34a;
    transform: scale(1.05);
}

.menu-toggle {
    display: none;
    background: none;
    border: none;
    color: white;
    font-size: 1.5rem;
    cursor: pointer;
}

/* ==========================================
   HERO SECTION (ESTILO PALCO)
   ========================================== */
.hero {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    background-image: linear-gradient(rgba(0,0,0,0.65), rgba(0,0,0,0.85)), url('Imagens/Alex_Palco.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    padding: 0 1rem;
}

.hero-content {
    max-width: 900px;
    z-index: 2;
}

.hero-subtitle {
    font-family: 'Oswald', sans-serif;
    letter-spacing: 6px;
    color: var(--gold-paxeco);
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
}

.hero-title {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(3.5rem, 12vw, 8rem);
    font-weight: 700;
    color: #fff;
    line-height: 0.9;
    margin-bottom: 2rem;
}

.hero-description {
    max-width: 600px;
    margin: 0 auto 2.5rem;
    color: var(--muted);
    font-size: 1.1rem;
}

.scroll-indicator {
    font-size: 0.8rem;
    letter-spacing: 4px;
    color: rgba(255, 255, 255, 0.4);
    margin-bottom: 2rem;
    text-transform: uppercase;
}

.hero-buttons {
    display: flex;
    gap: 20px;
    justify-content: center;
    flex-wrap: wrap;
}

.btn-gold-main {
    background-color: var(--gold-paxeco);
    color: #000;
    padding: 1.2rem 3.5rem;
    border-radius: 10px;
    font-weight: 800;
    font-size: 1rem;
    text-decoration: none;
    transition: 0.3s;
}

.btn-outline-main {
    border: 2px solid var(--gold-paxeco);
    color: var(--gold-paxeco);
    padding: 1.2rem 3.5rem;
    border-radius: 10px;
    font-weight: 800;
    font-size: 1rem;
    text-decoration: none;
    transition: 0.3s;
}

.btn-gold-main:hover, .btn-outline-main:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(196, 154, 63, 0.2);
}

/* ==========================================
   RESTO DO SITE (AGENDA, CARDS, ETC)
   ========================================== */
section {
    padding: 6rem 2rem;
}

.section-header {
    text-align: center;
    margin-bottom: 4rem;
}

.section-title {
    font-size: 2.5rem;
    font-family: 'Manrope', sans-serif;
    margin-top: 0.5rem;
}

.section-subtitle {
    color: var(--foreground);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-size: 0.85rem;
    margin-bottom: 0.5rem;
}

.primary-text { 
    color: var(--gold-paxeco);
    font-size: 2em;
    display: inline-block;
}

.impacto-destaque {
    color: var(--gold-paxeco);
    font-size: 1.7em;
    display: inline-block;
    line-height: 1.2;
    font-weight: 800;
}

.cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.card {
    background: var(--card);
    padding: 3rem 2rem;
    border-radius: 1rem;
    border: 1px solid var(--border);
    transition: var(--transition);
}

.card:hover {
    border-color: var(--gold-paxeco);
    transform: translateY(-10px);
}

.card h3 {
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
}

.card p {
    color: var(--muted);
    font-size: 0.95rem;
}

.card-icon {
    width: 3rem;
    height: 3rem;
    color: var(--gold-paxeco);
    margin-bottom: 1.5rem;
}

/* ==========================================
   CARROSSEL DE TREINOS
   ========================================== */

.carousel-wrapper {
    overflow: hidden;
    width: 100%;
    padding: 20px 5px;
    position: relative;
    scroll-behavior: smooth;
}

.cards-carousel {
    display: flex;
    gap: 20px;
    transition: all 0.5s ease;
}

.cards-carousel .card {
    flex: 0 0 calc((100% - 40px) / 3);
    min-width: calc((100% - 40px) / 3);
    box-sizing: border-box;
}

/* SETAS DO CARROSSEL */
.nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    background-color: rgba(13, 13, 13, 0.8);
    border: 1px solid var(--border);
    border-radius: 50%;
    color: var(--gold-paxeco);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 100;
    transition: var(--transition);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.nav-btn:hover {
    background-color: var(--gold-paxeco);
    color: #000;
    border-color: var(--gold-paxeco);
    box-shadow: 0 0 20px rgba(196, 154, 63, 0.4);
}

.nav-btn.prev { left: -25px; }
.nav-btn.next { right: -25px; }
.nav-btn svg { width: 24px; height: 24px; }

/* ==========================================
   AGENDA & BOTÃO VERDE
   ========================================== */
.agenda-item {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding: 2rem;
    border-bottom: 1px solid var(--border);
    transition: var(--transition);
}

.agenda-item:hover {
    background: rgba(196, 154, 63, 0.05);
}

.agenda-date {
    text-align: center;
    min-width: 80px;
}

.agenda-day {
    font-size: 2rem;
    font-weight: 800;
    color: var(--gold-paxeco);
    line-height: 1;
}

.agenda-month {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--muted);
}

.agenda-details h3 {
    font-size: 1.1rem;
    margin-bottom: 0.25rem;
}

.agenda-details p {
    color: var(--muted);
    font-size: 0.9rem;
}

.agenda-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.status-badge {
    padding: 0.4rem 1rem;
    border-radius: 2rem;
    font-size: 0.75rem;
    font-weight: 700;
}

.status-ultimas { 
    background: rgba(239, 68, 68, 0.1); 
    color: #ef4444; 
}

.status-aberto { 
    background: rgba(34, 197, 94, 0.1); 
    color: #22c55e; 
}

.btn-agenda-verde {
    background-color: var(--green-paxeco);
    color: white !important;
    padding: 0.6rem 1.2rem;
    border-radius: 8px;
    font-weight: 700;
    font-size: 0.85rem;
    text-decoration: none;
    transition: var(--transition);
    display: inline-block;
    border: none;
}

.btn-agenda-verde:hover {
    background-color: #16a34a;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3);
}

/* ==========================================
   TESTIMONIALS
   ========================================== */
.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.testimonial {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 1rem;
    padding: 2rem;
    transition: var(--transition);
    position: relative;
}

.testimonial:hover {
    border-color: rgba(196, 154, 63, 0.3);
}

.stars {
    color: var(--gold-paxeco);
    margin-bottom: 1.5rem;
    display: block;
    font-size: 1.2rem;
}

.testimonial-author {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.author-avatar {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: rgba(196, 154, 63, 0.2);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
}

.author-info p:first-child {
    font-weight: 600;
    font-size: 0.95rem;
}

.author-info p:last-child {
    color: var(--muted);
    font-size: 0.8rem;
}

.testimonial-text {
    border-top: 1px solid var(--border);
    padding-top: 1.5rem;
    font-style: italic;
    color: #ccc;
    line-height: 1.6;
}

.quote-icon-bottom {
    font-family: 'Oswald', sans-serif;
    font-size: 4rem;
    color: var(--gold-paxeco);
    opacity: 0.1;
    position: absolute;
    bottom: 10px;
    right: 20px;
}

/* ==========================================
   FAQ ACCORDION
   ========================================== */
.faq-grid {
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.faq-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 20px;
    cursor: pointer;
    transition: var(--transition);
}

.faq-card:hover, 
.faq-card.active { 
    border-color: var(--gold-paxeco); 
}

.faq-question { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
}

.faq-question h3 { 
    font-size: 1.1rem; 
    color: white; 
    margin: 0; 
}

.faq-arrow { 
    color: var(--gold-paxeco); 
    transition: transform 0.3s ease; 
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: all 0.4s cubic-bezier(0, 1, 0, 1);
}

.faq-answer p { 
    padding-top: 15px; 
    color: var(--muted); 
    line-height: 1.6; 
}

.faq-card.active .faq-answer { 
    max-height: 500px; 
    opacity: 1; 
}

.faq-card.active .faq-arrow { 
    transform: rotate(180deg); 
}

/* ==========================================
   CONTACT COMPACT (ESTILO LINHA)
   ========================================== */
.contact-compact { 
    padding: 80px 20px; 
    display: flex; 
    justify-content: center; 
}

.container-mini { 
    max-width: 900px; 
    width: 100%; 
}

.contact-grid-small { 
    display: grid; 
    grid-template-columns: 1fr 1.2fr; 
    gap: 60px; 
    align-items: center; 
}

.contact-form-card { 
    background: var(--card); 
    padding: 30px; 
    border-radius: 15px; 
    border: 1px solid var(--border); 
}

.form-row-mini {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 25px;
}

.field { 
    margin-bottom: 25px; 
}

.field label { 
    display: block; 
    font-size: 0.65rem; 
    color: var(--primary); 
    letter-spacing: 1.5px; 
    margin-bottom: 5px; 
}

.field input, 
.field textarea {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid #333;
    color: #fff;
    padding: 8px 0;
    font-size: 0.9rem;
    outline: none;
    transition: border-color 0.3s;
}

.field input:focus, 
.field textarea:focus { 
    border-color: var(--primary); 
}

.btn-gold-wide {
    width: 100%;
    background: var(--primary);
    color: #000;
    padding: 15px;
    border-radius: 8px;
    font-weight: 800;
    letter-spacing: 1px;
    cursor: pointer;
    transition: var(--transition);
    border: none;
}

.btn-gold-wide:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

.social-circle-mini {
    width: 35px; 
    height: 35px; 
    border-radius: 50%;
    border: 1px solid #222; 
    display: flex; 
    align-items: center; 
    justify-content: center;
    color: #fff; 
    transition: 0.3s;
    text-decoration: none;
}

.social-circle-mini:hover { 
    border-color: var(--primary); 
    color: var(--primary); 
}

.social-circle-mini svg { 
    width: 18px; 
    height: 18px; 
}

/* ==========================================
   FOOTER & WHATSAPP
   ========================================== */
footer { 
    padding: 4rem 2rem; 
    text-align: center; 
    background: black; 
    border-top: 1px solid var(--border); 
}

.footer-content {
    max-width: 1200px;
    margin: 0 auto;
}

footer p {
    color: var(--muted);
    font-size: 0.9rem;
}

.whatsapp-btn {
    position: fixed; 
    bottom: 2rem; 
    right: 2rem;
    background: #25d366; 
    color: white; 
    width: 4rem; 
    height: 4rem;
    border-radius: 50%; 
    display: flex; 
    align-items: center; 
    justify-content: center;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3); 
    z-index: 1000; 
    transition: 0.3s;
    text-decoration: none;
}

.whatsapp-btn:hover { 
    transform: scale(1.1); 
}

/* ==========================================
   MEDIA QUERIES (RESPONSIVIDADE)
   ========================================== */
@media (max-width: 992px) {
    .cards-carousel .card {
        flex: 0 0 calc((100% - 20px) / 2);
        min-width: calc((100% - 20px) / 2);
    }
    .nav-btn { 
        display: none; 
    }
}

@media (max-width: 768px) {
    .nav-links { 
        display: none; 
    }
    
    .nav-links.mobile-active {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: rgba(5, 5, 5, 0.95);
        padding: 2rem;
        border-bottom: 1px solid var(--border);
        gap: 1.5rem;
    }
    
    .menu-toggle {
        display: block;
    }
    
    .contact-grid-small { 
        grid-template-columns: 1fr; 
        gap: 40px; 
    }
    
    .form-row-mini {
        grid-template-columns: 1fr;
    }
    
    .agenda-item { 
        flex-direction: column; 
        text-align: center; 
    }
    
    .agenda-actions { 
        margin: 0; 
        width: 100%; 
        justify-content: center; 
        flex-direction: column;
    }
}

@media (max-width: 600px) {
    .cards-carousel .card { 
        flex: 0 0 100%; 
        min-width: 100%; 
    }
    
    section {
        padding: 4rem 1rem;
    }
    
    .hero-title {
        font-size: 3rem;
    }
}
.video-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.video-container {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1; /* Formato Quadrado Perfeito */
    background: #111;
    border-radius: 20px; /* Bordas arredondadas como na imagem */
    overflow: hidden;
    border: 1px solid var(--border);
}

.video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.video-caption {
    margin-top: 1.5rem;
    color: var(--gold-paxeco);
    font-weight: 800;
    letter-spacing: 1px;
    text-align: center;
}

/* Estilo para o quadrado vazio (placeholder) */
.video-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #333;
}

.video-placeholder svg {
    width: 50px;
    height: 50px;
    margin-bottom: 10px;
}

@media (max-width: 768px) {
    .video-grid { grid-template-columns: 1fr; }
}

.video-container strong {
    color: var(--gold-paxeco);
}
.video-local {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Faz o vídeo preencher o quadrado de 20px de borda */
    background: #000;
}

/* Ajuste para o texto não ficar muito grande em baixo do vídeo */
.video-caption {
    max-width: 280px;
    margin: 1.2rem auto 0;
    line-height: 1.4;
}
/* Layout Especial: 2 Quadrados + 1 Retângulo */
.video-grid-custom {
    display: grid;
    grid-template-columns: 1fr 1fr; /* Duas colunas iguais */
    gap: 2rem;
    max-width: 1000px; /* Ajuste a largura conforme necessário */
    margin: 0 auto;
}

/* O Retângulo ocupa as duas colunas (grid-column: 1 / 3) */
.cta-rect-link {
    grid-column: 1 / 3;
    text-decoration: none;
    transition: var(--transition);
}

.cta-rectangle {
    background: var(--card);
    border: 2px dashed var(--gold-paxeco);
    border-radius: 20px;
    padding: 3rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 250px;
}

.cta-rectangle:hover {
    background: rgba(196, 154, 63, 0.05);
    transform: translateY(-5px);
}

.cta-content {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin-bottom: 2rem;
    text-align: left;
}

.cta-content i {
    width: 60px;
    height: 60px;
    color: var(--gold-paxeco);
}

.cta-text h3 {
    color: #fff;
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
}

.cta-text p {
    color: var(--muted);
}

.cta-text span {
    color: var(--gold-paxeco);
    font-weight: bold;
}

.video-caption-bold {
    color: var(--gold-paxeco);
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

/* Responsividade: No telemóvel tudo fica em 1 coluna */
@media (max-width: 768px) {
    .video-grid-custom {
        grid-template-columns: 1fr;
    }
    .cta-rect-link {
        grid-column: 1;
    }
    .cta-content {
        flex-direction: column;
        text-align: center;
    }
}
/* Wrapper para garantir a centralização total na grelha */
.cta-wrapper {
    grid-column: 1 / 3; /* Mantém a ocupação da linha toda para poder centralizar dentro dela */
    display: flex;
    justify-content: center;
    margin-top: 1rem;
}

.cta-rect-link-compact {
    text-decoration: none;
    width: 100%;
    max-width: 750px; /* Metade do comprimento aproximado */
    transition: var(--transition);
}

.cta-rectangle-center {
    background: var(--card);
    border: 2px dashed var(--gold-paxeco);
    border-radius: 20px;
    padding: 1.5rem; /* Altura diminuída */
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 140px; /* Altura reduzida conforme pedido */
}

.cta-rectangle-center:hover {
    background: rgba(196, 154, 63, 0.08);
    transform: scale(1.02);
    border-style: solid;
}

.cta-text-center h3 {
    color: #fff;
    font-size: 1.1rem; /* Texto ligeiramente menor para caber na altura */
    margin-bottom: 0.5rem;
    letter-spacing: 1px;
}

.cta-text-center p {
    color: var(--muted);
    font-size: 0.85rem;
    margin-bottom: 0.8rem;
}

.cta-text-center span {
    color: var(--gold-paxeco);
    font-weight: bold;
}

.video-caption-bold {
    color: var(--gold-paxeco);
    font-weight: 800;
    font-size: 0.75rem;
    letter-spacing: 2px;
    margin: 0;
}

/* Ajuste Responsivo */
@media (max-width: 768px) {
    .cta-wrapper {
        grid-column: 1;
    }
    .cta-rect-link-compact {
        max-width: 100%;
    }
}
/* ==========================================
   SECÇÃO SOBRE (O MENTOR)
   ========================================== */
.mentor-section {
    background-color: #000000;
    padding: 100px 20px;
    position: relative;
}

.mentor-container {
    max-width: 1300px; /* Aumentei a largura máxima do site nesta secção */
    margin: 0 auto;
    display: flex;
    align-items: stretch; 
    gap: 5rem; /* Mais espaço entre imagem e texto para respirar */
    padding: 4rem 2rem;
}

.mentor-image {
    position: relative;
}

.mentor-image img {
    width: 100%;
    border-radius: 10px;
    filter: grayscale(30%);
    transition: var(--transition);
}

.mentor-image:hover img {
    filter: grayscale(0%);
}

.mentor-name {
    font-size: 4rem;
    font-weight: 900;
    line-height: 1;
    margin: 1rem 0 2rem;
    letter-spacing: -2px;
}

.gold-text {
    color: var(--gold-paxeco);
}

.mentor-bio .highlight {
    color: #fff;
    font-weight: 700;
    font-size: 1.3rem;
    text-align: left; /* O destaque fica melhor à esquerda */
}

/* ==========================================
   ESTATÍSTICAS DA BIO (CENTRALIZADAS E DOURADAS)
   ========================================== */
.mentor-stats {
    display: flex;
    justify-content: center; /* Centraliza o grupo na secção */
    gap: 60px;
    margin: 3rem 0;
    padding-top: 2rem;
    border-top: 1px solid var(--border);
}

.stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;    /* Ícone e texto perfeitamente ao meio */
    text-align: center;
    flex: 1;
}

.stat-icon {
    width: 35px;
    height: 35px;
    color: var(--gold-paxeco);
    margin-bottom: 15px;
    filter: drop-shadow(0 0 8px rgba(196, 154, 63, 0.3));
    transition: var(--transition);
}

.stat-item:hover .stat-icon {
    transform: translateY(-5px) scale(1.1);
    filter: drop-shadow(0 0 12px rgba(196, 154, 63, 0.6));
}

.stat-number {
    display: block;
    font-size: 2.5rem;
    font-weight: 900;
    color: #ffffff; /* Branco para destacar o número */
    line-height: 1;
}

.stat-label {
    font-size: 0.75rem;
    letter-spacing: 2px;
    color: var(--gold-paxeco); /* Legenda dourada */
    font-weight: 700;
    margin-top: 10px;
    text-transform: uppercase;
}

/* BOTÃO DE HERÓI NA BIO */
.btn-mentor {
    display: inline-block;
    padding: 1.2rem 2.5rem;
    background: transparent;
    border: 1px solid var(--gold-paxeco);
    color: var(--gold-paxeco);
    text-decoration: none;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: var(--transition);
    border-radius: 5px;
}

.btn-mentor:hover {
    background: var(--gold-paxeco);
    color: #000;
    transform: translateY(-5px);
}

/* RESPONSIVIDADE */
@media (max-width: 992px) {
    .mentor-container {
        grid-template-columns: 1fr;
        gap: 40px;
        text-align: center;
    }
    
    .mentor-bio p {
        text-align: center;
    }
    
    .mentor-stats {
        margin-top: auto; /* Empurra as estatísticas para o fim da coluna */
        padding-top: 30px;
        border-top: 1px solid var(--border);
    }
    
    .mentor-name {
    /* Aumenta o título se necessário */
    font-size: 4.5rem; 
    margin-bottom: 30px;
    }
}

.mentor-image-wrapper {
    flex: 1.2; 
    display: flex;
    /* ESTA LINHA É A CHAVE: empurra a moldura para a base do texto */
    align-self: flex-end; 
}

.mentor-img-level {
    width: 100%;
    height: auto; /* Deixa a altura ser natural */
    max-height: 800px; /* Define o limite de grandeza que queres */
    object-fit: contain; /* Garante que a imagem não corta o Alex */
    border-radius: 0; /* Imagens com fundo preto absoluto ficam melhor sem cantos arredondados */
    
    /* Se ainda assim quiseres baixar mais uns píxeis manualmente: */
    position: relative;
    bottom: -20px; 
}

.mentor-content {
    flex: 1;
    padding-bottom: 20px; /* Garante que o texto tem uma base para a imagem alinhar */
}
/* Garante que o texto está justificado conforme pediste */
.mentor-bio p {
    text-align: justify;
    /* Aumenta um pouco o tamanho da letra para preencher mais espaço */
    font-size: 1.2rem; 
    line-height: 1.8;
    margin-bottom: 1.5rem;
    color: var(--muted);
}

/* Container do Slider */
.slider-wrapper {
    overflow-x: auto; /* Permite arrastar no telemóvel */
    scrollbar-width: none; /* Esconde a scrollbar no Firefox */
    padding: 20px 0;
}

.slider-wrapper::-webkit-scrollbar {
    display: none; /* Esconde a scrollbar no Chrome/Safari */
}

.training-card:hover {
    transform: translateY(-10px);
    border-color: var(--gold-paxeco);
}

/* Texto sobre a Foto (Overlay) */
.card-overlay {
    padding: 30px;
    background: linear-gradient(to top, rgba(0,0,0,0.9), transparent);
    width: 100%;
    border-radius: 0 0 15px 15px;
}

.card-icon {
    color: var(--gold-paxeco);
    margin-bottom: 15px;
}

.card-overlay p {
    font-size: 0.9rem;
    color: var(--muted);
    text-align: justify;
    margin-bottom: 20px;
}

/* Botões de Navegação */
.slider-nav {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 30px;
}

.nav-btn:hover {
    background: var(--gold-paxeco);
    color: #000;
}

.training-track {
    display: flex;
    gap: 20px;
    transition: transform 0.5s ease;
}

/* O Card como Imagem Pura */
.training-card {
    flex: 0 0 450px; /* Largura no desktop */
    aspect-ratio: 1536 / 1024; /* A proporção que pediste */
    
    background-size: cover;
    background-position: center;
    border-radius: 12px;
    position: relative;
    border: 1px solid rgba(255, 255, 255, 0.1); /* Borda quase invisível */
    cursor: pointer;
    transition: transform 0.3s ease;
}

.training-card:hover {
    transform: scale(1.02);
}

.card-overlay h3 {
    font-size: 1.2rem;
    font-weight: 800;
    margin-bottom: 5px;
    text-transform: uppercase;
    color: #fff;
}

.card-overlay p {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.8);
    margin: 0;
}

/* Ajuste para mobile */
@media (max-width: 768px) {
    .training-card {
        flex: 0 0 85%;
    }
}
.slider-section {
    background-color: #000;
    padding: 60px 0;
    overflow: hidden;
}

.banner-card {
    flex: 0 0 450px; /* Largura de cada banner no desktop */
    aspect-ratio: 1536 / 1024; /* Proporção exata da tua imagem */
    border-radius: 20px;
    overflow: hidden;
    transition: transform 0.3s ease;
}

.banner-card img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Garante que a imagem preenche o card sem distorcer */
    display: block;
}

.banner-card:hover {
    transform: scale(1.03); /* Efeito leve de zoom ao passar o rato */
}

/* Estilo das Setas */
.nav-prev, .nav-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.1);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
    width: 45px;
    height: 45px;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
    font-size: 20px;
    transition: 0.3s;
}

.nav-prev { left: 0; }
.nav-next { right: 0; }

.nav-prev:hover, .nav-next:hover {
    background: var(--gold-paxeco);
    border-color: var(--gold-paxeco);
}

/* Mobile */
@media (max-width: 768px) {
    .banner-card {
        flex: 0 0 85%; /* No telemóvel mostra quase a imagem toda */
    }
    .slider-container {
        padding: 0 20px;
    }
}
.slider-container {
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.slider-track {
    display: flex;
    gap: 20px;
    overflow-x: scroll; /* Permite scroll manual no mobile */
    scroll-behavior: smooth; /* Faz o deslize ser suave */
    scrollbar-width: none; /* Esconde barra no Firefox */
}

.slider-track::-webkit-scrollbar {
    display: none; /* Esconde barra no Chrome/Safari */
}

.nav-btn:hover {
    background: var(--gold-paxeco);
    color: #000;
}

.prev-btn { left: 1px; }
.next-btn { right: 1px; }

.video-grid-custom {
    display: grid;
    /* Alteramos de 'repeat(2, 1fr)' para 'repeat(3, 1fr)' */
    grid-template-columns: repeat(3, 1fr); 
    gap: 1.5rem; /* Reduzi um pouco o espaço para caberem melhor os três */
    max-width: 1200px; /* Podes aumentar um pouco para dar mais fôlego à linha */
    margin: 0 auto;
    padding: 20px;
}

/* Ajuste de Responsividade: No telemóvel e tablet convém mudar */
@media (max-width: 1024px) {
    .video-grid-custom {
        grid-template-columns: repeat(2, 1fr); /* 2 por linha em tablets */
    }
}

@media (max-width: 600px) {
    .video-grid-custom {
        grid-template-columns: 1fr; /* 1 por linha em telemóveis */
    }
}

.carousel-wrapper {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 60px;
    overflow: hidden;
}

.video-grid-custom {
    display: flex;
    gap: 20px;
    overflow-x: hidden;
    padding: 50px 0;
    scroll-behavior: auto; /* Importante ser auto para saltos instantâneos */
}

/* Estado Ativo (Centro) */
.video-card.is-active {
    opacity: 1;
    transform: scale(1.05);
    filter: grayscale(0%) blur(0);
    z-index: 5;
}

.video-container {
    width: 100%;
    aspect-ratio: 4 / 5;
    border-radius: 15px;
    overflow: hidden;
    background: #111;
    box-shadow: 0 10px 30px rgba(0,0,0,0.8);
}

.video-local {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.video-caption {
    font-weight: bold;
    margin-top: 15px;
    font-size: 1.1rem;
}

.video-role {
    font-size: 0.85rem;
    color: #d4af37; /* Dourado */
}

/* Esconde info de quem não está focado */
.video-card:not(.is-active) .video-caption,
.video-card:not(.is-active) .video-role {
    opacity: 0;
}

.nav-btn:hover {
    background: #d4af37;
    color: #000;
}

.prev { left: 5px; }
.next { right: 5px; }

/* Container que esconde overflow */
.testimonials-carousel-container {
    overflow: hidden;
    width: 100%;
}

/* Track que se move horizontalmente */
.testimonials-track {
    display: flex;
    gap: 20px;
    width: max-content;
}


/* Texto da função/role */
.video-role {
    text-align: center;
    color: var(--muted);
    font-size: 0.9rem;
    margin-top: 0.5rem;
}

/* Botões de navegação dos testemunhos */
.testimony-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    background-color: rgba(13, 13, 13, 0.9);
    border: 2px solid var(--gold-paxeco);
    border-radius: 50%;
    color: var(--gold-paxeco);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 100;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
}

.testimony-nav-btn:hover {
    background-color: var(--gold-paxeco);
    color: #000;
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 0 25px rgba(196, 154, 63, 0.6);
}

.testimony-nav-btn.prev {
    left: 10px;
}

.testimony-nav-btn.next {
    right: 10px;
}

.testimony-nav-btn svg {
    width: 24px;
    height: 24px;
}

/* Responsivo */
@media (max-width: 768px) {
    
    .testimony-nav-btn {
        width: 45px;
        height: 45px;
    }
    
    .testimony-nav-btn svg {
        width: 22px;
        height: 22px;
    }
    
    .testimony-nav-btn.prev {
        left: 10px;
    }
    
    .testimony-nav-btn.next {
        right: 10px;
    }
}

@media (max-width: 480px) {
    .testimonials-carousel-wrapper {
        padding: 0 50px;
    }
    
    .video-card {
        flex: 0 0 250px;
        width: 250px;
    }
    
    .testimony-nav-btn {
        width: 40px;
        height: 40px;
    }
    
    .testimony-nav-btn svg {
        width: 20px;
        height: 20px;
    }
}

/* Todos os vídeos começam escurecidos */
.video-card {
    transition: all 0.5s ease;
    opacity: 0.4;
    filter: brightness(0.5) grayscale(0.3);
    transform: scale(0.9);
}

/* O vídeo central fica em destaque */
.video-card.active {
    opacity: 1;
    filter: brightness(1) grayscale(0);
    transform: scale(1.05);
    z-index: 10;
    position: relative;
}

/* Efeito suave ao passar o rato */
.video-card:hover {
    opacity: 0.7;
    filter: brightness(0.7) grayscale(0.2);
}

.video-card.active:hover {
    opacity: 1;
    filter: brightness(1.05) grayscale(0);
}

/* O container do vídeo central tem borda dourada */
.video-card.active .video-container {
    border: 2px solid var(--gold-paxeco);
    box-shadow: 0 0 30px rgba(196, 154, 63, 0.4);
}

/* Texto do vídeo central mais destacado */
.video-card.active .video-caption {
    color: var(--gold-paxeco);
    font-size: 1.1rem;
    text-shadow: 0 0 10px rgba(196, 154, 63, 0.5);
}

.video-card.active .video-role {
    color: var(--foreground);
    font-weight: 600;
}

/* Responsivo - ajustar escala em mobile */
@media (max-width: 768px) {
    .video-card {
        transform: scale(0.95);
    }
    
    .video-card.active {
        transform: scale(1);
    }
}
.stat-number {
    display: block;
    font-size: 2.5rem;
    font-weight: 900;
    color: #ffffff;
    line-height: 1;
    font-family: 'Manrope', sans-serif; /* Mantém a coerência com o resto do site */
}
/* Container de Treinos - Ocupa a largura total */
.carousel-section {
    width: 100%;
    overflow: hidden; /* Crucial para os cards "desaparecerem" sem criar scroll no site */
    padding: 60px 0;
}

.carousel-container {
    position: relative;
    width: 100vw; /* Força a largura total da janela */
    max-width: none; /* Remove o limite de 1200px */
    margin: 0;
    padding: 0;
}

/* Secção de Testemunhos - Sangria total */
.video-testimonials {
    padding: 6rem 0; /* Remove padding lateral da secção */
    background: var(--background);
    overflow: hidden;
    width: 100%;
}

.testimonials-carousel-container {
    overflow: hidden;
    width: 100%;
}

.testimonials-track {
    display: flex;
    gap: 20px;
    width: max-content;
    padding: 40px 0; /* Espaço para o scale do card active não cortar */
}

/* Setas posicionadas nas extremidades da tela */
.testimony-nav-btn.prev {
    left: 20px;
}

.testimony-nav-btn.next {
    right: 20px;
}

/* Garante que o rasto de cards não bata em margens invisíveis */
.video-card {
    flex: 0 0 330px;
    width: 330px;
    scroll-snap-align: none;
}
/* Forçar a secção a ignorar qualquer margem do site */
.carousel-section {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    overflow: hidden;
    padding: 60px 0;
}

/* O wrapper interno também deve ser livre */
.carousel-section .carousel-container {
    width: 100%;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* O trilho onde os cards deslizam */
.slider-track {
    display: flex;
    gap: 20px;
    /* Ajusta este padding se quiseres que o primeiro card alinhe com o logo */
    padding: 20px 50px; 
    overflow-x: hidden; 
    width: 100%;
}

.banner-card {
    flex: 0 0 450px;
    min-width: 450px;
    aspect-ratio: 1536 / 1024;
    border-radius: 20px;
    overflow: hidden;
    transition: transform 0.3s ease;
}

/* Reposicionar as setas para as bordas absolutas da tela */
.prev-btn {
    left: 10px !important;
}

.next-btn {
    right: 10px !important;
}

/* Garante que o track permite scroll via JS */
#sliderTrack {
    display: flex !important;
    overflow-x: auto !important; /* Tem de ser auto ou scroll para o JS funcionar */
    scroll-behavior: smooth;
    -ms-overflow-style: none;  /* Esconde scrollbar no IE */
    scrollbar-width: none;     /* Esconde scrollbar no Firefox */
}

#sliderTrack::-webkit-scrollbar {
    display: none; /* Esconde scrollbar no Chrome/Safari */
}
/* Forçar Largura Total (Sangria) */
.full-bleed {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    overflow: hidden;
}

.testimonials-carousel-wrapper {
    position: relative;
    width: 100%;
    max-width: none !important;
}

.testimonials-track {
    display: flex !important;
    gap: 20px;
    padding: 40px 50px; /* Alinhamento inicial */
    width: max-content;
    overflow-x: auto !important; /* Essencial para as setas funcionarem */
    scrollbar-width: none;
    scroll-behavior: smooth;
}

.testimonials-track::-webkit-scrollbar { display: none; }

/* Cards de Treino */
.banner-card {
    flex: 0 0 450px;
    min-width: 450px;
    aspect-ratio: 1536 / 1024;
    border-radius: 20px;
    overflow: hidden;
    transition: transform 0.3s ease;
}

.banner-card img { width: 100%; height: 100%; object-fit: cover; }

/* Setas Universais - BASEADO NO PADRÃO DOS BANNERS QUE FUNCIONA */
.testimony-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 60px;
    height: 60px;
    background-color: rgba(13, 13, 13, 0.95);
    border: 2px solid var(--gold-paxeco);
    border-radius: 50%;
    color: var(--gold-paxeco);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 1000;
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);
    pointer-events: auto !important;
}

.testimony-nav-btn:hover {
    background-color: var(--gold-paxeco);
    color: #000;
    transform: translateY(-50%) scale(1.15);
    box-shadow: 0 0 30px rgba(196, 154, 63, 0.7);
}

.testimony-nav-btn.prev { left: 20px; }
.testimony-nav-btn.next { right: 20px; }

.testimony-nav-btn svg {
    width: 24px;
    height: 24px;
}

#sliderTrack {
    scroll-snap-type: none !important; /* Desativa travas de scroll */
    -webkit-overflow-scrolling: touch;
}

/* Garante que as setas estão clicáveis */
#nextBtn, #prevBtn {
    pointer-events: all !important;
    cursor: pointer !important;
    z-index: 1000 !important;
}

.banner-carousel-section .section-header {
    padding: 0 2rem;
    margin-bottom: 4rem;
}

/* Wrapper - 100% da viewport */
.banner-carousel-wrapper {
    position: relative;
    width: 100vw;
    max-width: none; /* Sem limite de largura */
    margin: 0;
    padding: 0 80px;
}

/* Container que permite scroll */
.banner-carousel-container {
    overflow-x: scroll;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
    width: 100%;
}

.banner-carousel-container::-webkit-scrollbar {
    display: none;
}

/* Track dos banners */
.banner-track {
    display: flex !important;
    gap: 20px !important;
    width: max-content !important;
    padding: 0 2rem !important; /* Padding mínimo - apenas para respirar */
}

/* Cards dos banners */
.banner-card {
    flex: 0 0 450px;
    width: 450px;
    display: block;
    transition: transform 0.3s ease;
}

.banner-card img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 15px;
    border: 1px solid var(--border);
}

.banner-card:hover {
    transform: scale(1.02);
}

/* Botões de navegação */
.banner-nav-btn {
    position: absolute; /* Mudei de absolute para fixed */
    top: 50%;
    transform: translateY(-50%);
    width: 60px;
    height: 60px;
    background-color: rgba(13, 13, 13, 0.95);
    border: 2px solid var(--gold-paxeco);
    border-radius: 50%;
    color: var(--gold-paxeco);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 1000;
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);
    font-size: 28px;
    font-weight: bold;
}

.banner-nav-btn:hover {
    background-color: var(--gold-paxeco);
    color: #000;
    transform: translateY(-50%) scale(1.15);
    box-shadow: 0 0 30px rgba(196, 154, 63, 0.7);
}

.banner-nav-btn.prev {
    left: 20px;
}

.banner-nav-btn.next {
    right: 20px;
}

/* Responsivo */
@media (max-width: 1200px) {
    .banner-card {
        flex: 0 0 400px;
        width: 400px;
    }
    

}

@media (max-width: 768px) {
    .banner-carousel-wrapper {
        padding: 0 60px;
    }
    

    
    .banner-card {
        flex: 0 0 320px;
        width: 320px;
    }
    
    .banner-nav-btn {
        width: 45px;
        height: 45px;
        font-size: 22px;
    }
    
    .banner-nav-btn.prev {
        left: 10px;
    }
    
    .banner-nav-btn.next {
        right: 10px;
    }
}

@media (max-width: 480px) {
    .banner-carousel-wrapper {
        padding: 0 50px;
    }
    
    .banner-card {
        flex: 0 0 280px;
        width: 280px;
    }
    
    .banner-nav-btn {
        width: 40px;
        height: 40px;
        font-size: 20px;
    }
}
.full-bleed {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

#trainingContainer {
    overflow: hidden;
    width: 100%;
}

#trainingTrack {
    display: flex;
    gap: 20px;
    width: max-content; /* Importante para o cálculo do JS */
    will-change: transform;
}
#containerLoop {
    overflow: hidden;
    width: 100%;
}

#trackLoop {
    display: flex;
    gap: 20px;
    width: max-content;
    will-change: transform; /* Otimização de performance */
}

.banner-card {
    flex: 0 0 450px;
    width: 450px;
}
banner-nav-btn {
    position: absolute !important; /* ABSOLUTE = fica dentro do wrapper, não flutua */
    top: 50%;
    transform: translateY(-50%);
    width: 60px;
    height: 60px;
    background-color: rgba(13, 13, 13, 0.95);
    border: 2px solid var(--gold-paxeco);
    border-radius: 50%;
    color: var(--gold-paxeco);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 100; /* Reduzido para 100 */
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);
    font-size: 28px;
    font-weight: bold;
}

.banner-nav-btn:hover {
    background-color: var(--gold-paxeco);
    color: #000;
    transform: translateY(-50%) scale(1.15);
    box-shadow: 0 0 30px rgba(196, 154, 63, 0.7);
}

.banner-nav-btn.prev {
    left: 20px;
}

.banner-nav-btn.next {
    right: 20px;
}
/* ==========================================
   CARROSSEL DE TREINOS - FULL SCREEN (LOOP)
   ========================================== */

/* 1. Secção Principal (Remove bordas pretas laterais) */
.banner-carousel-section {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    overflow: hidden;
    background-color: #000;
    padding: 60px 0;
}

/* 2. Wrapper do Carrossel */
.banner-carousel-wrapper {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
}

/* 5. O CARD - ADAPTADO COM OVERLAY */
.banner-card {
    flex: 0 0 450px;
    aspect-ratio: 1536 / 1024;
    border-radius: 12px;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.3s ease;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.banner-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.banner-card:hover {
    transform: scale(1.02);
}

/* 6. TEXTO POR CIMA DA IMAGEM (OVERLAY) */
.card-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20px;
    /* Blur leve apenas atrás do texto */
    background: rgba(0, 0, 0, 0.2); 
    backdrop-filter: blur(8px); 
    -webkit-backdrop-filter: blur(8px);
    color: white;
    z-index: 2;
    transition: background 0.3s ease;
}

.banner-card:hover .card-overlay {
    background: rgba(0, 0, 0, 0.4);
}

.card-overlay h3 {
    font-size: 1.2rem;
    font-weight: 800;
    margin-bottom: 5px;
    text-transform: uppercase;
    color: #fff;
    font-family: 'Manrope', sans-serif;
}

.card-overlay p {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
    line-height: 1.4;
}
/* ==========================================
   AGENDA - LARGURA TOTAL (FULL-BLEED)
   ========================================== */

/* Remove as margens laterais pretas da secção agenda */
#agenda {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    background: var(--card); /* Mantém o fundo escuro da agenda */
    padding: 6rem 0; /* Remove padding lateral */
}

/* Ajusta o contentor interno para esticar até às bordas */
#agenda > div:last-child {
    max-width: 100% !important; /* Remove o limite de 900px */
    padding: 0 7vw; /* Dá um pequeno respiro de 5% para não colar no ecrã */
}

/* Redefine os itens da agenda para o novo espaço amplo */
.agenda-item {
    display: flex;
    align-items: center;
    justify-content: space-between; /* Empurra o conteúdo para as pontas */
    gap: 2rem;
    padding: 2.5rem 5%;
    border-bottom: 1px solid var(--border);
    transition: var(--transition);
    width: 100%;
}

.agenda-item:hover {
    background: rgba(196, 154, 63, 0.05);
}

.agenda-date {
    text-align: center;
    min-width: 120px; /* Aumentado para melhor visibilidade */
}

.agenda-day {
    font-size: 2.5rem; /* Aumentado para destaque */
    font-weight: 800;
    color: var(--gold-paxeco);
}

.agenda-month {
    font-size: 1rem;
    font-weight: 700;
    color: var(--muted);
    text-transform: uppercase;
}

.agenda-details h3 {
    font-size: 1.5rem; /* Texto maior para preencher o ecrã */
    margin-bottom: 0.5rem;
}

.agenda-actions {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.status-badge {
    padding: 0.6rem 1.2rem;
    border-radius: 2rem;
    font-size: 0.85rem;
    font-weight: 700;
}
/* Estado padrão: Todos escuros e P&B */
.banner-card {
    flex: 0 0 450px;
    aspect-ratio: 1536 / 1024;
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    filter: brightness(0.6) grayscale(1) !important;
    transform: scale(0.9);
    opacity: 0.95;
}

/* Estado Ativo: O do meio fica colorido */
.banner-card.is-focused {
    filter: brightness(1) grayscale(0) !important;
    transform: scale(1.05);
    opacity: 1;
    z-index: 10;
}
#containerLoop {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    display: block;
    white-space: nowrap;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none; /* Esconde barra Firefox */
}

#containerLoop::-webkit-scrollbar {
    display: none; /* Esconde barra Chrome/Safari */
}

/* O Track deve ser flex e não quebrar linha */
#trackLoop {
    display: flex !important;
    flex-wrap: nowrap;
    width: max-content;
}
/* Container do Item */
.agenda-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2.5rem 5%;
    border-bottom: 1px solid var(--border);
    position: relative; /* Base para a imagem central */
    overflow: hidden;
    width: 100%;
    background: var(--card);
}

/* A IMAGEM DE FUNDO SÓ NO CENTRO */
.agenda-item::before {
    content: "";
    position: absolute;
    /* Define o tamanho da "mancha" de imagem no centro */
    width: 300px; 
    height: 100%;
    left: 50%;
    top: 0;
    transform: translateX(-50%); /* Centraliza perfeitamente */
    
    /* Puxa a imagem via variável definida no HTML */
    background-image: var(--bg-agenda);
    background-size: cover;
    background-position: center;
    
    /* Ajusta a visibilidade */
    opacity: 0.2; /* Deixa suave para ler o texto */
    z-index: 0;
    pointer-events: none; /* Não interfere nos cliques */
    transition: opacity 0.3s ease;
    
    /* Opcional: Efeito de desfoque nas bordas da imagem */
    mask-image: linear-gradient(to right, transparent, black 20%, black 80%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 20%, black 80%, transparent);
}

.agenda-item:hover::before {
    opacity: 1; /* Brilha um pouco mais no hover */
}

/* Garante que o texto fica visível */
.agenda-date, .agenda-details, .agenda-actions {
    position: relative;
    z-index: 1;
}
/* Ajuste da estrutura da data para empilhamento vertical */
.agenda-date {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column; /* Empilha os elementos verticalmente */
    align-items: center;    /* Centraliza os textos entre si */
    justify-content: center;
    min-width: 100px;       /* Garante espaço suficiente */
    text-align: center;
}

.agenda-day {
    font-size: 2rem;
    font-weight: 800;
    color: var(--gold-paxeco);
    line-height: 1;         /* Remove espaços extras entre as linhas */
    margin-bottom: 5px;     /* Pequeno espaço antes do mês */
}

.agenda-month {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Mantém o efeito da imagem central que já estava perfeito */
.agenda-item::before {
    content: "";
    position: absolute;
    width: 400px; 
    height: 100%;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    background-image: var(--bg-agenda);
    background-size: cover;
    background-position: center;
    opacity: 0.2;
    z-index: 0;
    pointer-events: none;
    mask-image: linear-gradient(to right, transparent, black 20%, black 80%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 20%, black 80%, transparent);
}
.agenda-item {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2.5rem 5%;
    border-bottom: 1px solid var(--border);
    background: var(--card);
}

.agenda-item::before {
    content: "";
    position: absolute;
    /* Usa o tamanho definido no HTML ou 250px por padrão */
    width: var(--logo-size, 250px);
    height: 100%;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    
    background-image: var(--bg-agenda);
    background-size: contain; /* Garante que o logo nunca seja cortado */
    background-position: center;
    background-repeat: no-repeat;
    
    /* Usa a opacidade definida no HTML ou 0.15 por padrão */
    opacity: var(--logo-opacity, 0.15);
    z-index: 0;
    pointer-events: none;
    
    /* Suaviza as bordas do logo para não parecer um quadrado colado */
    mask-image: radial-gradient(circle, black 40%, transparent 95%);
    -webkit-mask-image: radial-gradient(circle, black 40%, transparent 95%);
}

.agenda-date, .agenda-details, .agenda-actions {
    position: relative;
    z-index: 1; /* Garante que o texto fica sempre por cima do logo */
}

.agenda-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    min-width: 100px;
}
.contact-compact {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    background-color: var(--background); /* Garante que o fundo encosta nas pontas */
    padding: 100px 0;
    overflow: hidden;
}

/* O contentor interno volta a ter um limite para o texto não ficar colado */
.contact-compact .container-mini {
    max-width: 1200px; /* Alinhado com a largura do resto do site */
    margin: 0 auto;
    padding: 0 5%;    /* Espaço de segurança para mobile */
}

/* Ajuste da Grelha de Contacto */
.contact-grid-small {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 80px;
    align-items: start;
}

/* Estilo do Card do Formulário */
.contact-form-card {
    background: var(--card);
    padding: 40px;
    border-radius: 20px;
    border: 1px solid var(--border);
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

/* Responsividade: No telemóvel volta a ser 1 coluna */
@media (max-width: 992px) {
    .contact-grid-small {
        grid-template-columns: 1fr;
        gap: 50px;
    }
    
    .contact-info-left {
        text-align: center;
    }
    
    .contact-info-left h2 {
        font-size: 2.5rem;
    }

    .contact-info-left div[style*="display: flex"] {
        justify-content: center;
    }
}
/* Container do Logo no Hero */
.hero-logo-container {
    margin-bottom: 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Ajuste da Imagem do Logo */
.hero-logo-img {
    width: 100%;
    max-width: 500px; /* Define o tamanho máximo que queres para o logo */
    height: auto;
    display: block;
    /* Filtro opcional caso precises que o logo brilhe um pouco mais no fundo escuro */
    transition: transform 0.3s ease;
}

/* Ajuste para Telemóvel */
@media (max-width: 768px) {
    .hero-logo-img {
        max-width: 320px; /* Logo mais pequeno em ecrãs pequenos */
    }
}
.agenda-item::before {
    content: "";
    position: absolute;
    /* Tamanho definido no HTML ou 250px por padrão */
    width: var(--logo-size, 250px);
    height: 100%;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    
    background-image: var(--bg-agenda);
    background-size: contain; 
    background-position: center;
    background-repeat: no-repeat;
    
    /* FORÇAR CORES ORIGINAIS */
    filter: none !important; 
    -webkit-filter: none !important;
    
    /* OPACIDADE TOTAL (Muda para 1 para cor 100% viva) */
    opacity: var(--logo-opacity, 0.9); 
    
    z-index: 0;
    pointer-events: none;
    
    /* REMOVIDO: mask-image (que estava a "apagar" as bordas do logo) */
    mask-image: none !important;
    -webkit-mask-image: none !important;
}
/* Estado padrão: Visível mas ligeiramente mais sóbrio */
.banner-card {
    flex: 0 0 450px;
    aspect-ratio: 1536 / 1024;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    /* Removemos o filtro agressivo de 0.2 */
    filter: brightness(0.8) grayscale(0.2); 
    transform: scale(0.95);
    opacity: 0.9;
}

/* Estado de Destaque (Hover ou Ativo) */
.banner-card:hover,
.banner-card.is-focused {
    filter: brightness(1) grayscale(0) !important;
    transform: scale(1.02);
    opacity: 1;
    z-index: 10;
}

/* Garante que a imagem ocupa o card todo sem filtros extra */
.banner-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Estado padrão: Todos meio escuros e desbotados */
.banner-card {
    flex: 0 0 450px;
    aspect-ratio: 1536 / 1024;
    transition: all 0.5s ease;
    filter: brightness(0.4) grayscale(1) !important; /* Estilo da imagem da esquerda */
    transform: scale(0.9);
    opacity: 0.8;
}

/* Estado Ativo: Colorido e com brilho (como a imagem da direita) */
.banner-card.is-focused {
    filter: brightness(1) grayscale(0) !important;
    transform: scale(1.05);
    opacity: 1;
    z-index: 10;
    box-shadow: 0 0 30px rgba(196, 154, 63, 0.3); /* Brilho dourado sutil */
}
#containerLoop {
    overflow: hidden !important; /* Desativamos o scroll manual */
    width: 100%;
}

#trackLoop {
    display: flex !important;
    gap: 20px !important;
    width: max-content !important;
    transition: transform 0.5s ease-in-out;
    will-change: transform;
    padding: 20px 0;
}
/* ==========================================
   PODCAST SECTION
   ========================================== */
.podcast-section {
    padding: 6rem 2rem;
    background: var(--bg);
}

.podcast-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
}

.podcast-card {
    background: var(--card);
    border-radius: 1rem;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    border: 1px solid rgba(255,255,255,0.05);
}

.podcast-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.4);
}

.podcast-thumb-wrapper {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16/9;
}

.podcast-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.podcast-card:hover .podcast-thumb {
    transform: scale(1.05);
}

.podcast-play-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.25s;
}

.podcast-card:hover .podcast-play-overlay {
    opacity: 1;
}

.podcast-play-btn {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--primary, #22c55e);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 20px rgba(34,197,94,0.5);
    transition: transform 0.2s;
}

.podcast-card:hover .podcast-play-btn {
    transform: scale(1.1);
}

.podcast-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: var(--primary, #22c55e);
    color: #000;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 1.5px;
    padding: 3px 8px;
    border-radius: 4px;
}

.podcast-badge-spotify {
    background: #1DB954;
    color: #000;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.btn-spotify {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 13px 30px;
    background: #1DB954;
    color: #000;
    font-weight: 700;
    font-size: .88rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    border-radius: 50px;
    text-decoration: none;
    transition: transform .2s, opacity .2s;
}
.btn-spotify:hover {
    opacity: .88;
    transform: translateY(-2px);
}

.podcast-info {
    padding: 1rem 1.2rem 1.3rem;
}

.podcast-tags {
    font-size: 0.65rem;
    color: var(--primary, #22c55e);
    letter-spacing: 1.5px;
    font-weight: 600;
    margin: 0 0 0.4rem;
    text-transform: uppercase;
}

.podcast-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text, #fff);
    margin: 0 0 0.3rem;
    line-height: 1.35;
}

.podcast-date {
    font-size: 0.75rem;
    color: var(--muted, #888);
    margin: 0;
}

/* ==========================================
   PODCAST PLAYER BAR (fixed bottom)
   ========================================== */
.podcast-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 900;
    background: #141414;
    border-top: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 -8px 32px rgba(0,0,0,0.6);
    padding: 0 1.5rem;
    height: 76px;
}

.player-bar-inner {
    max-width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1.5rem;
}

.player-bar-info {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
}

.player-thumb {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    object-fit: cover;
    flex-shrink: 0;
}

.player-meta {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.player-title-text {
    font-size: 0.88rem;
    font-weight: 600;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.player-tags-text {
    font-size: 0.7rem;
    color: #888;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.player-bar-controls {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
    justify-content: center;
}

.player-ctrl-btn {
    background: none;
    border: none;
    color: #ccc;
    cursor: pointer;
    padding: 6px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s, background 0.2s;
}

.player-ctrl-btn:hover {
    color: #fff;
    background: rgba(255,255,255,0.08);
}

.player-play-pause {
    width: 40px;
    height: 40px;
    background: var(--gold, #c49a3f) !important;
    color: #000 !important;
    border-radius: 50% !important;
}

.player-play-pause:hover {
    opacity: 0.85;
    color: #000 !important;
}

/* PROGRESS BAR — topo da barra, largura total */
.player-progress-track {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: rgba(255,255,255,0.10);
    cursor: pointer;
    transition: height 0.15s;
}

.player-progress-track:hover {
    height: 5px;
}

.player-progress-fill {
    position: absolute;
    left: 0; top: 0;
    height: 100%;
    background: var(--gold, #c49a3f);
    border-radius: 99px;
    width: 0%;
    pointer-events: none;
}

.player-progress-dot {
    position: absolute;
    top: 50%;
    left: 0%;
    transform: translate(-50%, -50%);
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #fff;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s;
}

.player-progress-track:hover .player-progress-dot {
    opacity: 1;
}

/* DIREITA: tempo + yt + fechar */
.player-bar-extra {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    justify-content: flex-end;
}

.player-time {
    font-size: 0.72rem;
    color: #888;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.player-time-sep {
    font-size: 0.72rem;
    color: #555;
    margin: 0 2px;
}

.player-yt-btn {
    color: #ff4444 !important;
}

.player-yt-btn:hover {
    color: #ff2222 !important;
    background: rgba(255,68,68,0.1) !important;
}

@media (max-width: 768px) {
    .podcast-grid { grid-template-columns: 1fr 1fr; }
    .player-bar-inner { grid-template-columns: 1fr auto auto; }
    .player-bar-extra { gap: 0.1rem; }
    .player-time, .player-time-sep { display: none; }
    .podcast-player-bar { padding: 0 1rem; }
}

@media (max-width: 480px) {
    .podcast-grid { grid-template-columns: 1fr; }
}

/* ==========================================
   VIDEO OVERLAY
   ========================================== */
#videoOverlay {
    animation: fadeInOverlay 0.2s ease;
}

@keyframes fadeInOverlay {
    from { opacity: 0; }
    to   { opacity: 1; }
}

#overlayIframe {
    background: #000;
    box-shadow: 0 24px 80px rgba(0,0,0,0.8);
    animation: scaleInOverlay 0.25s ease;
}

@keyframes scaleInOverlay {
    from { transform: scale(0.95); opacity: 0; }
    to   { transform: scale(1);    opacity: 1; }
}

#overlayClose {
    transition: transform 0.2s, color 0.2s;
}
#overlayClose:hover {
    transform: scale(1.2);
    color: var(--primary, #22c55e);
}

/* Player bar hint text */
.player-bar-hint {
    color: #555;
    font-size: 0.72rem;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.podcast-player-bar {
    display: flex; /* Alinhado com o JS */
    align-items: center;
    justify-content: center;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 80px;
    background: #141414;
    border-top: 2px solid var(--gold-paxeco);
    z-index: 900;
}

#ytPlayerWrapper {
    /* Mantém o vídeo escondido mas funcional */
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}
/* ==========================================
   FOOTER BOTTOM & LEGAL LINKS
   ========================================== */
.footer-bottom {
    background-color: #000; /* Fundo preto absoluto */
    padding: 2rem 1rem;
    text-align: center;
    border-top: 1px solid var(--border); /* Linha subtil superior */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.footer-bottom p {
    color: var(--muted);
    font-size: 0.85rem;
    margin: 0;
}

.footer-legal {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.footer-legal a {
    color: var(--muted);
    text-decoration: none;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: var(--transition);
}

.footer-legal a:hover {
    color: var(--gold-paxeco); /* Muda para dourado ao passar o rato */
}

/* Ajuste para Desktop: Coloca o Copyright à esquerda e Links à direita */
@media (min-width: 768px) {
    .footer-bottom {
        flex-direction: row;
        justify-content: space-between;
        padding: 1.5rem 5%; /* Alinhado com as margens do site */
        max-width: 1200px;
        margin: 0 auto;
    }
}
/* Tags de Status */
.status-tag {
    font-size: 0.65rem;
    font-weight: 900;
    padding: 6px 12px;
    border-radius: 50px;
    background: rgba(255,255,255,0.1);
    color: #fff;
    letter-spacing: 1px;
}

.status-tag.ultimas {
    background: rgba(183, 28, 55, 0.2);
    color: #ff4d4d;
    border: 1px solid rgba(183, 28, 55, 0.4);
}

/* DINÂMICA: "SABER MAIS" que desliza */
.agenda-hover-action {
    position: absolute;
    right: -150px;
    height: 100%;
    background: #16a34a;
    color: #fff;
    display: flex;
    align-items: center;
    padding: 0 30px;
    font-weight: 900;
    font-size: 0.8rem;
}

.agenda-card:hover .agenda-hover-action {
    right: 0;
}

/* Esconde o status quando o botão aparece */
.agenda-card:hover .agenda-status {
    opacity: 0;
    transform: translateX(20px);
    transition: 0.3s;
}

/* Responsividade */
@media (max-width: 768px) {
    .agenda-card {
        flex-direction: column;
        text-align: center;
        padding: 2rem;
    }
    .agenda-date {
        border-right: 0;
        border-bottom: 1px solid rgba(200, 169, 91, 0.3);
        padding: 0 0 1rem 0;
        margin: 0 0 1.5rem 0;
    }
    .agenda-hover-action {
        display: none; /* Em mobile removemos o hover lateral por espaço */
    }
}
.agenda-mentor {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--gold); /* Ou use #c49a3f */
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-top: 4px;
    opacity: 0.9;
}

/* Ajuste na margem da localização para não ficar colado ao nome */
.agenda-loc {
    margin: 6px 0 0; 
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.85rem;
}
    .legal-page {
      min-height: 100vh;
      background: #000;
      padding-top: 120px;
      padding-bottom: 80px;
      position: relative;
      z-index: 1;
    }

    .legal-container {
      max-width: 860px;
      margin: 0 auto;
      padding: 0 2rem;
    }

    .legal-hero {
      text-align: center;
      margin-bottom: 64px;
      padding-bottom: 48px;
      border-bottom: 1px solid rgba(200,169,91,.2);
    }

    .legal-kicker {
      font-family: 'Oswald', sans-serif;
      font-size: 0.8rem;
      letter-spacing: 0.2em;
      color: var(--gold, #c49a3f);
      text-transform: uppercase;
      margin-bottom: 16px;
    }

    .legal-title {
      font-family: 'Oswald', sans-serif;
      font-size: clamp(2rem, 4vw, 3rem);
      font-weight: 700;
      color: #fff;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      margin-bottom: 16px;
    }

    .legal-title span {
      color: var(--gold, #c49a3f);
    }

    .legal-date {
      font-size: 0.85rem;
      color: rgba(255,255,255,.4);
    }

    /* Tabs */
    .legal-tabs {
      display: flex;
      gap: 8px;
      margin-bottom: 48px;
      border-bottom: 1px solid rgba(200,169,91,.15);
      padding-bottom: 0;
      flex-wrap: wrap;
    }

    .legal-tab {
      font-family: 'Oswald', sans-serif;
      font-size: 0.85rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgba(255,255,255,.4);
      background: none;
      border: none;
      padding: 12px 20px;
      cursor: pointer;
      border-bottom: 2px solid transparent;
      margin-bottom: -1px;
      transition: all 0.3s ease;
    }

    .legal-tab:hover { color: rgba(255,255,255,.7); }

    .legal-tab.active {
      color: var(--gold, #c49a3f);
      border-bottom-color: var(--gold, #c49a3f);
    }

    /* Sections */
    .legal-section { display: none; }
    .legal-section.active { display: block; }

    .legal-block {
      margin-bottom: 40px;
      padding: 32px;
      background: rgba(255,255,255,.03);
      border: 1px solid rgba(200,169,91,.1);
      border-radius: 16px;
      transition: border-color 0.3s ease;
    }

    .legal-block:hover {
      border-color: rgba(200,169,91,.25);
    }

    .legal-block-title {
      font-family: 'Oswald', sans-serif;
      font-size: 1rem;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--gold, #c49a3f);
      margin-bottom: 16px;
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .legal-block-title::before {
      content: '';
      display: inline-block;
      width: 3px;
      height: 16px;
      background: var(--gold, #c49a3f);
      border-radius: 2px;
      flex-shrink: 0;
    }

    .legal-block p {
      color: rgba(255,255,255,.7);
      font-size: 0.95rem;
      line-height: 1.75;
      margin-bottom: 12px;
    }

    .legal-block p:last-child { margin-bottom: 0; }

    .legal-block ul {
      list-style: none;
      padding: 0;
      margin: 12px 0 0;
    }

    .legal-block ul li {
      color: rgba(255,255,255,.7);
      font-size: 0.95rem;
      line-height: 1.75;
      padding: 6px 0 6px 20px;
      position: relative;
      border-bottom: 1px solid rgba(255,255,255,.05);
    }

    .legal-block ul li:last-child { border-bottom: none; }

    .legal-block ul li::before {
      content: '›';
      position: absolute;
      left: 0;
      color: var(--gold, #c49a3f);
      font-weight: 700;
    }

    .legal-block a {
      color: var(--gold, #c49a3f);
      text-decoration: none;
    }

    .legal-block a:hover { text-decoration: underline; }

    .legal-contact-box {
      background: rgba(200,169,91,.06);
      border: 1px solid rgba(200,169,91,.25);
      border-radius: 12px;
      padding: 20px 24px;
      margin-top: 16px;
    }

    .legal-contact-box p {
      color: rgba(255,255,255,.8) !important;
      margin-bottom: 6px !important;
    }

    .legal-contact-box p:last-child { margin-bottom: 0 !important; }

    /* Cookie types */
    .cookie-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 16px;
      margin-top: 16px;
    }

    .cookie-type {
      background: rgba(0,0,0,.3);
      border: 1px solid rgba(200,169,91,.15);
      border-radius: 10px;
      padding: 16px 20px;
    }

    .cookie-type strong {
      display: block;
      font-family: 'Oswald', sans-serif;
      font-size: 0.8rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--gold, #c49a3f);
      margin-bottom: 8px;
    }

    .cookie-type p {
      font-size: 0.85rem !important;
      margin-bottom: 0 !important;
    }

    /* Reclamações */
    .reclamacoes-cta {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: var(--gold, #c49a3f);
      color: #000 !important;
      font-family: 'Oswald', sans-serif;
      font-size: 0.85rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      text-decoration: none;
      padding: 14px 28px;
      border-radius: 8px;
      margin-top: 20px;
      transition: background 0.3s ease;
    }


    /* Back link */
    .legal-back {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: rgba(255,255,255,.4);
      font-size: 0.85rem;
      text-decoration: none;
      margin-bottom: 48px;
      transition: color 0.3s ease;
    }

    .legal-back:hover { color: var(--gold, #c49a3f); }

/* ── DGERT STRIP BUTTON ── */
.dgert-strip {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  background: #0a0a0a !important;
  border: 1.5px solid rgba(196,154,63,.28);
  border-radius: 16px;
  padding: 18px 28px;
  text-decoration: none;
  transition: background .25s, border-color .25s, transform .25s;
  max-width: 600px;
  width: 100%;
}
.dgert-strip:hover {
  background: #111 !important;
  border-color: rgba(196,154,63,.55);
  transform: translateY(-2px);
}
.dgert-strip-badge {
  font-size: 28px;
  flex-shrink: 0;
}
.dgert-strip-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
}
.dgert-strip-text strong {
  color: #fff;
  font-size: .95rem;
  font-weight: 700;
}
.dgert-strip-text em {
  color: rgba(255,255,255,.50);
  font-style: normal;
  font-size: .78rem;
  letter-spacing: .03em;
}
.dgert-strip-arrow {
  color: var(--gold);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .04em;
  white-space: nowrap;
  flex-shrink: 0;
}
@media (max-width: 540px) {
  .dgert-strip { flex-direction: column; text-align: center; gap: 10px; }
  .dgert-strip-arrow { width: 100%; text-align: center; }
}
/* ==========================================
   CARROSSEL DE TREINOS - VERSÃO BRANCO
   ========================================== */
.banner-carousel-section {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    overflow: hidden;
    background-color: #ffffff; /* Fundo Branco */
    padding: 80px 0;
}

/* Ajuste dos títulos para fundo claro */
.banner-carousel-section .section-subtitle {
    color: #888888 !important; /* Cinzento para o subtítulo */
}

.banner-carousel-section h2 .primary-text {
    color: var(--gold-paxeco); /* Mantém o dourado no título */
}

/* 2. Wrapper e Track */
.banner-carousel-wrapper {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
}

#trackLoop {
    display: flex !important;
    gap: 25px !important;
    padding: 40px 0;
}

/* 3. Ajuste das Setas de Navegação (Contraste) */
.banner-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 60px;
    height: 60px;
    background-color: #ffffff; /* Fundo branco para a seta */
    border: 2px solid var(--gold-paxeco);
    border-radius: 50%;
    color: var(--gold-paxeco);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 100;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); /* Sombra mais leve */
    font-size: 28px;
}

.banner-nav-btn:hover {
    background-color: var(--gold-paxeco);
    color: #ffffff;
    box-shadow: 0 0 20px rgba(196, 154, 63, 0.4);
}

/* 4. Estado dos Cards no Fundo Branco */
.banner-card {
    flex: 0 0 450px;
    aspect-ratio: 1536 / 1024;
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    filter: brightness(0.9) grayscale(0.5); /* Menos escuro que na versão preta */
    transform: scale(0.95);
    opacity: 0.8;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); /* Sombra suave para separar do fundo branco */
}

.banner-card.is-focused {
    filter: brightness(1) grayscale(0) !important;
    transform: scale(1.02);
    opacity: 1;
    z-index: 10;
    box-shadow: 0 15px 45px rgba(0, 0, 0, 0.15);
}
/* ==========================================
   AGENDA - FUNDO ESCURO (ORIGINAL)
   ========================================== */
#agenda {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    background-color: var(--card); /* Mantém o fundo escuro original */
    padding: 6rem 0;
    color: var(--foreground);
}

/* Ajuste do contentor interno para largura total */
#agenda > div:last-child {
    max-width: 100% !important;
    padding: 0 7vw;
}

/* Item da Agenda Individual */
.agenda-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 2.5rem 5%;
    border-bottom: 1px solid var(--border); /* Linha divisória original */
    transition: var(--transition);
    width: 100%;
    background: transparent; /* Garante que o fundo da secção prevalece */
    position: relative;
    overflow: hidden;
}

.agenda-item:hover {
    background: rgba(196, 154, 63, 0.05);
}

/* Logo Central com Cores Originais e Opacidade Ajustada */
.agenda-item::before {
    content: "";
    position: absolute;
    width: var(--logo-size, 250px);
    height: 80%; /* Altura reduzida para os logos não tocarem nas bordas */
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%); /* Centralização perfeita */
    background-image: var(--bg-agenda);
    background-size: contain; 
    background-position: center;
    background-repeat: no-repeat;
    
    /* Força cores vivas e opacidade personalizada via HTML */
    filter: none !important;
    opacity: var(--logo-opacity, 0.6); 
    
    z-index: 0;
    pointer-events: none;
}

/* Textos da Agenda em Branco/Dourado */
.agenda-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    min-width: 100px;
    z-index: 1;
}

.agenda-day {
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--gold-paxeco);
    line-height: 1;
}

.agenda-month {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.agenda-details {
    z-index: 1;
    text-align: center;
}

.agenda-details h3 {
    font-size: 1.5rem;
    color: #ffffff;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    font-weight: 800;
}

.agenda-details p {
    color: var(--muted);
    font-size: 0.9rem;
}

.agenda-actions {
    z-index: 1;
}
/* ==========================================
   AGENDA - CARDS PRETOS ESTÁTICOS (SEM TROCA DE COR)
   ========================================== */
#agenda {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    background-color: #ffffff !important; /* Fundo da secção continua branco */
    padding: 80px 0;
}

#agenda > div:last-child {
    max-width: 1100px !important;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    flex-direction: column;
    gap: 25px; /* Espaço entre os cartões */
}

/* Cartão sempre preto */
.agenda-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 35px 45px;
    background-color: #0d0d0d !important; /* Força o preto sempre */
    border: 1px solid #262626;
    border-radius: 20px;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease; /* Mantemos apenas o movimento leve */
}

/* Removemos a troca de cor no Hover */
.agenda-item:hover {
    background-color: #0d0d0d !important; /* Mantém preto no hover */
    transform: translateY(-5px); /* Apenas sobe um pouco, sem mudar cor */
    border-color: var(--gold-paxeco); /* Apenas a borda brilha levemente */
}

/* Garantir que os textos não mudam de cor no hover */
.agenda-item:hover h3, 
.agenda-item:hover .agenda-day {
    color: var(--gold-paxeco);
}

.agenda-item:hover p,
.agenda-item:hover .agenda-month {
    color: #999999;
}

/* Logo Central */
.agenda-item::before {
    content: "";
    position: absolute;
    width: var(--logo-size, 200px);
    height: 85%;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background-image: var(--bg-agenda);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    opacity: var(--logo-opacity, 0.4);
    z-index: 0;
    pointer-events: none;
}

/* Conteúdo */
.agenda-date, .agenda-details, .agenda-actions {
    position: relative;
    z-index: 1;
}

.agenda-day { font-size: 2.2rem; font-weight: 800; color: var(--gold-paxeco); }
.agenda-details h3 { color: #ffffff; font-size: 1.5rem; text-transform: uppercase; }
.agenda-details p { color: #999999; }
/* ==========================================
   NAVBAR FIX (LOGO ESQUERDA | BOTÃO DIREITA)
   ========================================== */

/* Garante que o contentor da nav ocupa a largura toda e separa os itens */
.nav-inner {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

/* Estilo do Botão Contactos */
.nav-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 28px;
    background-color: var(--gold-paxeco, #c49a3f); /* Cor dourada paxeco */
    color: #000000 !important;
    font-size: 0.8rem;
    font-weight: 800;
    text-transform: uppercase;
    text-decoration: none;
    letter-spacing: 1.5px;
    border-radius: 6px;
    transition: all 0.3s ease;
    border: 2px solid var(--gold-paxeco, #c49a3f);
    margin-left: auto; /* Garante que é empurrado para a direita */
}

.nav-cta:hover {
    background-color: transparent;
    color: var(--gold-paxeco, #c49a3f) !important;
    transform: translateY(-2px);
}

/* Ajuste do Logótipo para não ficar colado */
.nav-brand img {
    height: 60px; /* Ajusta conforme o tamanho pretendido */
    width: auto;
    display: block;
}

/* Responsividade: No telemóvel centraliza ou mantém alinhado */
@media (max-width: 768px) {
    .nav-inner {
        padding: 0 20px;
    }
    .nav-cta {
        padding: 10px 20px;
        font-size: 0.75rem;
    }
}
/* Estilização do Bloco da Checkbox */
.checkbox-group {
    margin: 25px 0;
    padding: 0 5px;
}

.checkbox-container {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
}

/* Esconde a caixa original do navegador */
.checkbox-container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* O Quadrado Personalizado */
.checkmark {
    height: 22px;
    width: 22px;
    background-color: transparent;
    border: 2px solid var(--gold-paxeco);
    border-radius: 4px;
    flex-shrink: 0;
    position: relative;
    transition: all 0.3s ease;
}

/* Quando clicado: fundo fica dourado */
.checkbox-container input:checked ~ .checkmark {
    background-color: var(--gold-paxeco);
}

/* Criar o símbolo de "Certo" (V) */
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
    left: 7px;
    top: 3px;
    width: 5px;
    height: 10px;
    border: solid #000; /* Certo em preto para contrastar com o fundo dourado */
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* Mostra o certo ao selecionar */
.checkbox-container input:checked ~ .checkmark:after {
    display: block;
}

/* Estilo do Texto ao lado */
.checkbox-text {
    font-size: 0.85rem;
    color: #ffffff;
    line-height: 1.5;
    text-align: left;
}

.checkbox-text strong {
    color: var(--gold-paxeco);
    text-transform: uppercase;
}
/* Container que separa a checkbox do botão */
.checkbox-group {
    margin: 25px 0; /* Aumenta a distância para o botão */
    padding: 0 5px;
    display: block;
}

.checkbox-container {
    display: flex;
    align-items: flex-start; /* Alinha o quadrado ao topo da primeira linha */
    gap: 12px;
    cursor: pointer;
}

/* O Quadrado Dourado */
.checkmark {
    width: 18px;
    height: 18px;
    border: 2px solid var(--gold-paxeco);
    border-radius: 3px;
    flex-shrink: 0;
    margin-top: 2px; /* Ajuste para alinhar com o texto */
    position: relative;
}

/* Texto Subtil e Organizado */
.checkbox-text {
    display: flex;
    flex-direction: column; /* Coloca uma frase por baixo da outra */
    gap: 4px;
    font-size: 0.75rem;
    color: #888;
    line-height: 1.3;
    text-align: left;
}

/* Destaque para a Prenda */
.prenda-msg {
    color: #bbb;
}

.prenda-msg strong {
    color: var(--gold-paxeco);
    text-transform: uppercase;
}

/* Estilo do Link */
.termos-msg a {
    color: var(--gold-paxeco);
    text-decoration: underline;
}

/* Garante que o botão está bem por baixo */
.btn-submit {
    width: 100%;
    margin-top: 10px;
}

/* Ajusta o cabeçalho da Agenda para colar mais ao topo */
#agenda .section-header {
    margin-top: 10px !important;
    margin-bottom: 2rem !important;
}

/* Se a secção Agenda tiver a classe full-bleed, removemos o deslocamento */
#agenda.full-bleed {
    padding-top: 0px !important;
}
/* 1. Retirar o espaço extra no fim dos Testemunhos */
.video-testimonials {
    padding-bottom: 20px !important; /* Estava com 6rem, reduzimos para quase nada */
}

/* 2. Ajustar o rasto dos vídeos para não empurrar a margem */
.testimonials-track {
    padding-bottom: 0 !important;
}

/* 3. Retirar o espaço no topo da secção de Podcast */
.podcast-section {
    padding-top: 20px !important; /* Estava com 6rem, agora está encostado */
    margin-top: 0 !important;
}
/* 1. Reduzir o final da secção onde está a Playlist */
.podcast-section {
    padding-bottom: 20px !important; /* Estava com 6rem, reduzimos drasticamente */
}

/* 2. Reduzir o topo da secção de Quiz/Jogos */
#quiz {
    padding-top: 20px !important; /* Remove o "buraco" de 6rem que existia no topo */
}

/* 3. Ajustar o cabeçalho do Quiz para subir */
#quiz .section-header {
    margin-bottom: 2rem !important; /* Aproxima o título dos cartões do quiz */
}
/* Forçar o tamanho e a cor dos ícones dentro dos círculos sociais */
.social-circle-mini svg {
    width: 20px !important;
    height: 20px !important;
    color: #ffffff !important; /* Cor branca para contrastar com o fundo */
    display: block;
}

.social-circle-mini {
    display: flex !important;
    align-items: center;
    justify-content: center;
}

/* ==========================================
   MOBILE FIXES GERAIS
   ========================================== */

/* Impede overflow horizontal global */
html, body {
    overflow-x: hidden !important;
    max-width: 100% !important;
}

/* Em mobile, remove o padrão 100vw / -50vw que causa overflow */
@media (max-width: 768px) {
    .banner-carousel-section,
    .full-bleed,
    #agenda,
    .contact-compact,
    .video-testimonials {
        width: 100% !important;
        left: auto !important;
        right: auto !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        position: relative !important;
    }
}

/* iOS fix: background-attachment: fixed causa branco */
@media (max-width: 1024px) {
    .hero {
        background-attachment: scroll !important;
    }
}

@media (max-width: 768px) {

    /* SECÇÃO SOBRE */
    .mentor-section {
        overflow: hidden !important;
        padding: 60px 0 !important;
    }
    .mentor-container {
        flex-direction: column !important;
        gap: 1.5rem !important;
        padding: 0 1.2rem !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    /* ATENÇÃO: a classe correta no HTML é .mentor-image, não .mentor-image-wrapper */
    .mentor-image {
        width: 100% !important;
        max-width: 100% !important;
        align-self: auto !important;
    }
    .mentor-img-level {
        max-height: 320px !important;
        width: 100% !important;
        object-fit: cover !important;
        position: static !important;
        bottom: auto !important;
    }
    .mentor-content {
        text-align: left !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .mentor-name {
        font-size: clamp(2rem, 9vw, 2.8rem) !important;
        letter-spacing: -1px !important;
        word-break: break-word !important;
    }
    /* text-align: justify corta texto em mobile */
.mentor-bio p {
        text-align: left !important;
        font-size: 0.95rem !important;
        overflow-wrap: break-word !important;
        word-break: break-word !important;
        max-width: 100% !important;
    }
    .mentor-bio .highlight {
        overflow-wrap: break-word !important;
        word-break: break-word !important;
        max-width: 100% !important;
    }
    .mentor-stats {
        gap: 12px !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        padding-top: 1.5rem !important;
    }
    .stat-item {
        flex: 0 0 calc(33% - 8px) !important;
        min-width: 80px !important;
    }
    .stat-number {
        font-size: 1.6rem !important;
    }
    .btn-mentor {
        display: block !important;
        text-align: center !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* AGENDA */
    .agenda-item {
        flex-direction: column !important;
        align-items: flex-start !important;
        padding: 18px 16px !important;
        gap: 12px !important;
        border-radius: 16px !important;
    }
    .agenda-date {
        flex-direction: row !important;
        gap: 8px !important;
        align-items: baseline !important;
        min-width: auto !important;
    }
    .agenda-day {
        font-size: 1.5rem !important;
    }
    .agenda-details {
        text-align: left !important;
    }
    .agenda-details h3 {
        font-size: 1rem !important;
    }
    .agenda-actions {
        flex-direction: row !important;
        width: 100% !important;
        justify-content: space-between !important;
        align-items: center !important;
        margin: 0 !important;
    }

    /* QUIZ GRID */
    .quiz-grid {
        grid-template-columns: 1fr !important;
    }

    /* NAVBAR */
    .nav-cta {
        padding: 10px 16px !important;
        font-size: 0.72rem !important;
    }

    /* CONTACTO */
    .contact-compact {
        padding: 60px 0 !important;
    }
    .contact-info-left h2 {
        font-size: 2rem !important;
    }
    .contact-form-card {
        padding: 24px 16px !important;
    }
    .form-row-mini {
        grid-template-columns: 1fr !important;
    }

    /* CARROSSEL TREINOS */
    #containerLoop {
        overflow-x: auto !important;
    }
    .banner-carousel-wrapper {
        padding: 0 40px !important;
    }

    /* TESTEMUNHOS */
    .testimonials-carousel-wrapper {
        padding: 0 40px !important;
    }
}

@media (max-width: 480px) {

    /* HERO */
    .hero-description {
        font-size: 0.9rem !important;
    }
    .hero-buttons .btn-green-nav {
        width: 100% !important;
        text-align: center !important;
    }

    /* BANNER CARDS */
    .banner-card {
        flex: 0 0 78vw !important;
        width: 78vw !important;
    }
    .banner-carousel-wrapper {
        padding: 0 30px !important;
    }
    .banner-nav-btn {
        width: 36px !important;
        height: 36px !important;
        font-size: 18px !important;
    }
    .banner-nav-btn.prev { left: 4px !important; }
    .banner-nav-btn.next { right: 4px !important; }

    /* VIDEO CARDS TESTEMUNHOS */
    .video-card {
        flex: 0 0 240px !important;
        width: 240px !important;
    }
    .testimonials-carousel-wrapper {
        padding: 0 36px !important;
    }

    /* AGENDA */
    .agenda-actions {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
    }
    .btn-agenda-verde {
        text-align: center !important;
        display: block !important;
    }

    /* SOBRE */
    .mentor-img-level {
        max-height: 260px !important;
    }
    .stat-item {
        flex: 0 0 calc(50% - 6px) !important;
    }

    /* CONTACTO */
    .contact-compact .container-mini {
        padding: 0 1rem !important;
    }

    /* PODCAST */
    .podcast-grid {
        grid-template-columns: 1fr !important;
    }
}

/* MOBILE */
/* 1. IMPEDIR O "ABANAR" LATERAL */
html, body {
    overflow-x: hidden !important;
    max-width: 100% !important;
    width: 100% !important;
    position: relative;
    margin: 0;
    padding: 0;
}

/* 2. LIMPEZA DE MARGENS NEGATIVAS (O vilão do teu layout) */
@media (max-width: 768px) {
    .banner-carousel-section,
    .full-bleed,
    #agenda,
    .contact-compact,
    .video-testimonials {
        width: 100% !important;
        left: 0 !important;
        right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        position: relative !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* Ajuste da Secção Sobre (Mentor) */
    .mentor-container {
        flex-direction: column !important;
        padding: 40px 20px !important;
        gap: 20px !important;
    }

    .mentor-image {
        width: 100% !important;
        order: 1; /* Imagem primeiro no mobile */
    }

    .mentor-content {
        order: 2;
        text-align: left !important;
    }

    .mentor-name {
        font-size: 2.5rem !important; /* Estava demasiado grande na imagem 1 */
        line-height: 1.1 !important;
    }
}
@media (max-width: 480px) {
    /* Cards de Treino (Imagem 2) */
    .banner-card {
        flex: 0 0 280px !important; /* Largura fixa menor para caber no visor */
        width: 280px !important;
    }

    /* Agenda (Imagem 3) */
    .agenda-item {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 15px !important;
        padding: 25px 20px !important;
    }

    .agenda-actions {
        width: 100% !important;
        flex-direction: column !important;
        gap: 10px !important;
    }

    .btn-agenda-verde {
        width: 100% !important;
        text-align: center !important;
    }
}
@media (max-width: 768px) {
    .contact-form-card {
        padding: 25px 20px !important;
        margin: 0 !important;
    }

    .form-row-mini {
        grid-template-columns: 1fr !important; /* Nome e Email um por cima do outro */
        gap: 10px !important;
    }
}
@media (max-width: 768px) {
    /* Força o site a não ter largura maior que o ecrã */
    html, body {
        overflow-x: hidden !important;
        position: relative;
    }

    /* Resolve o problema da Foto do Alex e do Texto (Foto 1 e 4) */
    .mentor-container {
        display: flex !important;
        flex-direction: column !important; /* Empilha foto e texto */
        padding: 20px !important;
        gap: 0 !important;
    }

    .mentor-image {
        width: 100% !important;
        margin-bottom: 20px;
    }

    .mentor-img-level {
        max-height: 300px !important; /* Impede que a foto ocupe o ecrã todo */
        object-fit: cover !important;
    }

    /* Corrige o texto encostado às bordas */
    .mentor-content, .mentor-bio p {
        text-align: left !important;
        padding: 0 10px !important;
        font-size: 1rem !important;
        line-height: 1.5 !important;
    }

    /* Resolve o problema da Agenda (Foto 2) */
    .agenda-item {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        padding: 30px 15px !important;
        background-color: #0d0d0d !important;
    }

    .agenda-actions {
        width: 100% !important;
        margin-top: 15px;
    }

    .btn-agenda-verde {
        display: block !important;
        width: 100% !important;
    }

    /* Resolve o problema do Formulário (Foto 3) */
    .contact-grid-small {
        grid-template-columns: 1fr !important;
        gap: 30px !important;
    }

    .form-row-mini {
        grid-template-columns: 1fr !important; /* Nome e Email em lista */
    }
}
/* ==========================================
   MOBILE: CORRECÇÕES FINAIS (BLOCO ÚNICO)
   ========================================== */
@media (max-width: 768px) {

    /* --- OVERFLOW GLOBAL --- */
    html, body {
        overflow-x: hidden !important;
        max-width: 100% !important;
    }

    /* --- FULL-BLEED: desliga o truque 100vw/-50vw que causa overflow --- */
    .full-bleed,
    .banner-carousel-section,
    .carousel-section {
        width: 100% !important;
        position: relative !important;
        left: auto !important;
        right: auto !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* --- PADDING DAS SECÇÕES --- */
    section {
        padding-left: 1.2rem !important;
        padding-right: 1.2rem !important;
        box-sizing: border-box !important;
        max-width: 100% !important;
    }

    /* --- SECÇÃO SOBRE --- */
    .mentor-container {
        padding: 2rem 1.2rem !important;
        gap: 2rem !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .mentor-img-level {
        position: static !important;
        bottom: auto !important;
        max-height: none !important;
        width: 100% !important;
        object-fit: cover !important;
    }

    /* --- AGENDA: esconde texto do local --- */
    .agenda-details p {
        display: none !important;
    }

    /* --- CARROSSEL DE TREINOS: 1 card visível --- */
    .banner-carousel-wrapper {
        width: 85vw !important;
        margin: 0 auto !important;
        padding: 0 !important;
        overflow: visible !important;
        position: relative !important;
    }

    .banner-carousel-container {
        overflow: hidden !important;
        width: 100% !important;
    }

    .banner-card {
        flex: 0 0 75vw !important;
        width: 75vw !important;
        min-width: unset !important;
    }

    .banner-nav-btn.prev {
        left: -28px !important;
    }

    .banner-nav-btn.next {
        right: -28px !important;
    }

    /* --- CONTAINERS GENÉRICOS --- */
    .cards-grid,
    .container-mini,
    .testimonials-grid,
    .faq-grid {
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    img {
        max-width: 100%;
        height: auto;
    }
}
@media (max-width: 768px) {
    .banner-card {
        opacity: 1 !important;
        filter: none !important;
    }
}
@media (max-width: 768px) {
    #agenda {
        border-radius: 0 !important;
    }
}
@media (max-width: 768px) {
    section {
        padding-top: 2.5rem !important;
        padding-bottom: 2.5rem !important;
    }

    .section-header {
        margin-bottom: 1.5rem !important;
    }
}
@media (max-width: 768px) {
    .agenda-details h3 {
        display: none !important;
    }
}
@media (max-width: 768px) {
    .agenda-item::before {
        width: 80px !important;
        height: 80px !important;
        opacity: 0.15 !important;
    }
}
@media (max-width: 768px) {
    .agenda-item {
        min-height: 170px !important;
        padding: 24px 16px !important;
    }

    .agenda-item::before {
        width: 100px !important;
        height: 100px !important;
        opacity: 0.2 !important;
    }
}
@media (max-width: 768px) {
    .agenda-item::before {
        top: 35% !important;
        opacity: 0.12 !important;
    }
}
@media (max-width: 768px) {
    .agenda-item {
        min-height: 220px !important;
        padding: 40px 16px !important;
    }
}
@media (max-width: 768px) {
    .agenda-item {
        min-height: 320px !important;
        padding: 50px 20px !important;
        justify-content: center !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 20px !important;
    }

    .agenda-actions {
        width: 100% !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 12px !important;
    }

    .btn-agenda-verde {
        width: 100% !important;
        text-align: center !important;
        padding: 14px !important;
        font-size: 1rem !important;
    }
}
@media (max-width: 768px) {
    .agenda-item {
        min-height: 420px !important;
        padding: 60px 20px !important;
    }

    #agenda .agenda-item::before,
    .agenda-item::before {
        width: 200px !important;
        height: 200px !important;
        opacity: 0.6 !important;
    }
}
@media (max-width: 768px) {
    .agenda-item {
        min-height: 420px !important;
        padding: 24px 20px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: space-between !important;
        text-align: center !important;
        gap: 0 !important;
    }

    .agenda-date {
        order: 1 !important;
        margin-bottom: 0 !important;
    }

    .agenda-day {
        font-size: 1.8rem !important;
    }

    #agenda .agenda-item::before,
    .agenda-item::before {
        width: 160px !important;
        height: 160px !important;
        opacity: 0.55 !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
    }

    .agenda-actions {
        order: 3 !important;
        width: 100% !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 10px !important;
        margin-top: 0 !important;
    }

    .btn-agenda-verde {
        width: 100% !important;
        text-align: center !important;
        padding: 14px !important;
        font-size: 1rem !important;
    }

    .status-badge {
        display: block !important;
    }
}
@media (max-width: 768px) {
    .agenda-date {
        margin-top: -160px !important;
    }
}
@media (max-width: 768px) {
    /* MAP, MSX, Practitioner — logos maiores */
    .agenda-item:nth-child(1)::before,
    .agenda-item:nth-child(3)::before,
    .agenda-item:nth-child(4)::before {
        width: 220px !important;
        height: 220px !important;
    }

    /* MAP II — logo mais pequeno */
    .agenda-item:nth-child(2)::before {
        width: 100px !important;
        height: 100px !important;
    }
}
@media (max-width: 768px) {
    /* MAP — maior */
    #agenda .agenda-item:nth-child(1)::before {
        width: 240px !important;
        height: 240px !important;
    }

    /* MAP II — mais pequeno */
    #agenda .agenda-item:nth-child(2)::before {
        width: 110px !important;
        height: 110px !important;
    }

    /* MSX — maior */
    #agenda .agenda-item:nth-child(3)::before {
        width: 240px !important;
        height: 240px !important;
    }

    /* Practitioner — maior */
    #agenda .agenda-item:nth-child(4)::before {
        width: 240px !important;
        height: 240px !important;
    }
}
@media (max-width: 768px) {
    .agenda-date {
        display: flex !important;
        flex-direction: row !important;
        align-items: baseline !important;
        gap: 6px !important;
        flex-wrap: nowrap !important;
    }
}
@media (max-width: 768px) {
    .agenda-month br {
        display: none !important;
    }

    .agenda-month {
        white-space: nowrap !important;
    }
}
@media (max-width: 768px) {
    .agenda-month br {
        content: " " !important;
        display: inline !important;
    }
}
@media (max-width: 768px) {
    .video-testimonials {
        overflow: hidden !important;
        width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .testimonials-carousel-wrapper {
        width: 100vw !important;
        padding: 0 !important;
        overflow: hidden !important;
        position: relative !important;
    }

    .testimonials-carousel-container {
        overflow: hidden !important;
        width: 100vw !important;
    }

    .testimonials-track {
        padding: 20px 0 !important;
    }

    .video-card {
        flex: 0 0 75vw !important;
        width: 75vw !important;
    }
}