/* ========================================= */
/* CSS para a página de Programas Educacionais */
/* ========================================= */

/* HERO PADRONIZADO (ESTILO REESCRITO MANTENDO BORDAS) */
.hero--improved {
    min-height: 90vh;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    overflow: hidden;
    color: var(--color-white);
    z-index: 10;
    /* BORDAS ARREDONDADAS MANTIDAS */
    border-bottom-left-radius: 70px;
    border-bottom-right-radius: 70px;
    /* Reset de propriedades antigas */
    height: auto;
    padding-top: 0;
}

.hero--improved .hero__image-bg {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background-image: url('../images/hero-programas.webp');
    background-size: cover;
    background-position: center;
    background-attachment: fixed; /* Efeito Parallax */
    opacity: 1;
}

.hero--improved .hero__overlay {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: linear-gradient(to top, rgba(0,0,0,0.6), rgba(0,0,0,0.2));
    z-index: 2;
}

.hero--improved .hero__content {
    position: relative;
    z-index: 3;
    text-align: left;
    margin-left: 15%;
    margin-right: auto;
    max-width: 700px;
    padding-top: 0;
}

.hero--improved .hero__title {
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 800;
    margin-bottom: 15px;
    text-shadow: none;
}

.hero--improved .hero__content > .hero__subtitle:first-of-type {
    font-size: clamp(1.1rem, 2.5vw, 1.5rem);
    font-weight: 600;
    line-height: 1.2;
    text-shadow: none;
    max-width: none;
    margin: 0;
}

.hero--improved .hero__content > .hero__subtitle:last-of-type {
    font-size: 1.1rem;
    font-weight: 400;
    line-height: 1.7;
    text-shadow: none;
    max-width: none;
    margin: 0;
}


/* --- Intro Section (Ajustada para o efeito de sobreposição) --- */
.intro {
    padding: 120px 0 80px 0; /* Padding superior aumentado */
    margin-top: -70px; /* Sobreposição */
    text-align: center;
    background-color: var(--color-white); /* Fundo branco para cobrir */
    position: relative;
    z-index: 5;
    overflow: hidden;
}

.intro__container {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 0 auto;
}

.intro__title {
    font-size: clamp(2.2rem, 2.8vw, 2.8rem);
    font-weight: 700;
    color: var(--color-text-dark);
    margin: 0 auto 20px;
    line-height: 1.3;
}

.intro__text {
    font-size: 1.1rem;
    max-width: 75ch;
    margin: 0 auto;
    color: var(--color-text);
}

/* --- General Program Section Layouts --- */
.program-feature-section {
    padding: 80px 0;
    background-color: transparent;
}

.program-layout {
    display: flex;
    align-items: center;
    gap: 80px;
    margin-bottom: 60px;
    padding-bottom: 60px;
    border-bottom: 1px solid var(--color-border);
}

.program-layout:last-child {
    margin-bottom: 0;
    border-bottom: none;
    padding-bottom: 0;
}

.program-layout.layout-text-left .program-media-content { order: 2; }
.program-layout.layout-text-left .program-text-content { order: 1; }

.program-layout.layout-image-left .program-media-content { order: 1; }
.program-layout.layout-image-left .program-text-content { order: 2; }


.program-text-content {
    flex: 1;
    min-width: 45%;
    text-align: left;
}

.program-media-content {
    flex: 1;
    min-width: 45%;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-md);
}
/* Estilo específico para a imagem do Observatório de Astronomia */
.special-media-content {
    background: none;
    box-shadow: none;
    border: none;
    display: flex;
    justify-content: center;
    align-items: center;
}
.special-media-content img {
    width: 90%;
    max-width: 450px;
    height: auto;
    border-radius: var(--radius);
    display: block;
    box-shadow: none;
}


.program-media-content img,
.program-media-content video {
    width: 100%;
    height: 100%;
    max-height: 500px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius);
}

.program-title {
    font-size: clamp(2.2rem, 4vw, 3rem);
    font-weight: 700;
    color: var(--color-primary-dark);
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    text-align: left;
    justify-content: flex-start;
}

/* Specific override for Project Professions header title to center */
.project-professions-section .program-title.text-center {
    justify-content: center;
    text-align: center;
}
.project-professions-section .program-text-content.text-center {
    text-align: center;
}


.program-title .program-icon {
    font-size: 2.5rem;
    color: var(--color-primary);
}

.program-text-content p {
    font-size: 1.15rem;
    line-height: 1.8;
    color: var(--color-text);
    margin-bottom: 20px;
}

.program-text-content p:last-of-type {
    margin-bottom: 0;
}

.program-subtitle {
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--color-secondary);
    margin-top: 40px;
    margin-bottom: 20px;
}

.benefits-list {
    list-style: none;
    padding: 0;
    margin-bottom: 0;
}

.benefits-list li {
    font-size: 1.05rem;
    color: var(--color-text);
    margin-bottom: 12px;
    position: relative;
    padding-left: 35px;
    line-height: 1.6;
}

.benefits-list li::before {
    content: "\f00c"; /* Font Awesome checkmark icon */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: var(--color-accent);
    position: absolute;
    left: 0;
    top: 3px;
}

/* --- Program Highlight Section (Convivência: Eduque Emoções) --- */
.program-highlight-section {
    padding: 70px 0; /* Padding reduzido */
    background-size: cover;
    background-position: center;
    color: var(--color-white);
    text-align: center;
    position: relative;
    margin: 80px 20px;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}

/* ÍCONES DE FUNDO ESPALHADOS */
.program-highlight-section::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 2;
    pointer-events: none;
    background-image: 
        url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="white" d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>'),
        url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="white" d="M304 256c0 20.5-5.1 39.8-14.2 56.6C285 321.6 272 320 256 320s-29 .5-38.4-3.4C210.8 298 208 278 208 256c0-22 2.8-42 8.6-59.4C225.5 186.1 239.9 176 256 176s30.5 10.1 39.4 20.6C301.2 214 304 234 304 256zM256 64a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm160 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0zM57.4 235.8c-6.5 10.4-8.8 23-8.8 36.2 0 16.1 4 31.1 11.1 44.4-2.4-11.4-3.7-23.2-3.7-35.3 0-20.5 5.1-39.8 14.2-56.6C65.5 215.9 57.4 225.1 57.4 235.8zM241.8 400.1c-28.7-21.3-51.7-50.5-66.6-84.2C160.9 288.3 144 263.2 144 235.8c0-10.7-2.1-20.9-6.2-30.2c-6.5-15.2-16.3-28.8-28.8-40.3C91.2 152.1 71.9 144 48 144c-13.6 0-26.7 3.3-38.6 9.4C3.3 158.3 0 166.8 0 176c0 8.3 2.6 16.3 7.4 23.4c13.7 20.2 33.4 35.3 56.5 45.4c5.2 2.3 10.7 4.2 16.3 5.8c11.9 3.4 24.3 5.4 37.1 5.4c29.1 0 56.3-8.8 79.6-24.1c2.1 2 4.3 3.9 6.5 5.8c21.4 17.9 46.5 31.9 74.4 41.1zM568.6 153.4c-11.9-6.1-25-9.4-38.6-9.4c-23.9 0-43.2 8.1-55.1 21.3c-12.5 11.5-22.3 25.1-28.8 40.3c-4.1 9.4-6.2 19.5-6.2 30.2c0 27.4-16.9 52.5-31.2 79.9c-14.9 33.7-37.9 62.9-66.6 84.2c27.9-9.2 53-23.2 74.4-41.1c2.2-1.9 4.4-3.8 6.5-5.8c23.3 15.3 50.5 24.1 79.6 24.1c12.8 0 25.2-2 37.1-5.4c5.7-1.6 11.1-3.5 16.3-5.8c23.1-10.1 42.8-25.2 56.5-45.4c4.8-7.1 7.4-15.1 7.4-23.4c0-9.2-3.3-17.7-9.4-22.6z"/></svg>'),
        url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="white" d="M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"/></svg>'),
        url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="white" d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>'),
        url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="white" d="M304 256c0 20.5-5.1 39.8-14.2 56.6C285 321.6 272 320 256 320s-29 .5-38.4-3.4C210.8 298 208 278 208 256c0-22 2.8-42 8.6-59.4C225.5 186.1 239.9 176 256 176s30.5 10.1 39.4 20.6C301.2 214 304 234 304 256zM256 64a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm160 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0zM57.4 235.8c-6.5 10.4-8.8 23-8.8 36.2 0 16.1 4 31.1 11.1 44.4-2.4-11.4-3.7-23.2-3.7-35.3 0-20.5 5.1-39.8 14.2-56.6C65.5 215.9 57.4 225.1 57.4 235.8zM241.8 400.1c-28.7-21.3-51.7-50.5-66.6-84.2C160.9 288.3 144 263.2 144 235.8c0-10.7-2.1-20.9-6.2-30.2c-6.5-15.2-16.3-28.8-28.8-40.3C91.2 152.1 71.9 144 48 144c-13.6 0-26.7 3.3-38.6 9.4C3.3 158.3 0 166.8 0 176c0 8.3 2.6 16.3 7.4 23.4c13.7 20.2 33.4 35.3 56.5 45.4c5.2 2.3 10.7 4.2 16.3 5.8c11.9 3.4 24.3 5.4 37.1 5.4c29.1 0 56.3-8.8 79.6-24.1c2.1 2 4.3 3.9 6.5 5.8c21.4 17.9 46.5 31.9 74.4 41.1zM568.6 153.4c-11.9-6.1-25-9.4-38.6-9.4c-23.9 0-43.2 8.1-55.1 21.3c-12.5 11.5-22.3 25.1-28.8 40.3c-4.1 9.4-6.2 19.5-6.2 30.2c0 27.4-16.9 52.5-31.2 79.9c-14.9 33.7-37.9 62.9-66.6 84.2c27.9-9.2 53-23.2 74.4-41.1c2.2-1.9 4.4-3.8 6.5-5.8c23.3 15.3 50.5 24.1 79.6 24.1c12.8 0 25.2-2 37.1-5.4c5.7-1.6 11.1-3.5 16.3-5.8c23.1-10.1 42.8-25.2 56.5-45.4c4.8-7.1 7.4-15.1 7.4-23.4c0-9.2-3.3-17.7-9.4-22.6z"/></svg>'),
        url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="white" d="M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"/></svg>'),
        url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="white" d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg>'),
        url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="white" d="M304 256c0 20.5-5.1 39.8-14.2 56.6C285 321.6 272 320 256 320s-29 .5-38.4-3.4C210.8 298 208 278 208 256c0-22 2.8-42 8.6-59.4C225.5 186.1 239.9 176 256 176s30.5 10.1 39.4 20.6C301.2 214 304 234 304 256zM256 64a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm160 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0zM57.4 235.8c-6.5 10.4-8.8 23-8.8 36.2 0 16.1 4 31.1 11.1 44.4-2.4-11.4-3.7-23.2-3.7-35.3 0-20.5 5.1-39.8 14.2-56.6C65.5 215.9 57.4 225.1 57.4 235.8zM241.8 400.1c-28.7-21.3-51.7-50.5-66.6-84.2C160.9 288.3 144 263.2 144 235.8c0-10.7-2.1-20.9-6.2-30.2c-6.5-15.2-16.3-28.8-28.8-40.3C91.2 152.1 71.9 144 48 144c-13.6 0-26.7 3.3-38.6 9.4C3.3 158.3 0 166.8 0 176c0 8.3 2.6 16.3 7.4 23.4c13.7 20.2 33.4 35.3 56.5 45.4c5.2 2.3 10.7 4.2 16.3 5.8c11.9 3.4 24.3 5.4 37.1 5.4c29.1 0 56.3-8.8 79.6-24.1c2.1 2 4.3 3.9 6.5 5.8c21.4 17.9 46.5 31.9 74.4 41.1zM568.6 153.4c-11.9-6.1-25-9.4-38.6-9.4c-23.9 0-43.2 8.1-55.1 21.3c-12.5 11.5-22.3 25.1-28.8 40.3c-4.1 9.4-6.2 19.5-6.2 30.2c0 27.4-16.9 52.5-31.2 79.9c-14.9 33.7-37.9 62.9-66.6 84.2c27.9-9.2 53-23.2 74.4-41.1c2.2-1.9 4.4-3.8 6.5-5.8c23.3 15.3 50.5 24.1 79.6 24.1c12.8 0 25.2-2 37.1-5.4c5.7-1.6 11.1-3.5 16.3-5.8c23.1-10.1 42.8-25.2 56.5-45.4c4.8-7.1 7.4-15.1 7.4-23.4c0-9.2-3.3-17.7-9.4-22.6z"/></svg>');
    background-repeat: no-repeat;
    background-size: 100px, 80px, 120px, 60px, 70px;
    background-position: 10% 20%, 85% 15%, 90% 80%, 15% 95%, 50% 55%;
    opacity: 0.05;
}


.highlight-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* Roxo mais suave */
    background: radial-gradient(ellipse at center, rgba(120, 50, 160, 0.75) 0%, rgba(60, 20, 90, 0.88) 100%);
    z-index: 1;
}

.highlight-content {
    position: relative;
    z-index: 3; /* Conteúdo fica acima dos ícones de fundo */
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 30px;
}

.program-highlight-section .program-title {
    color: var(--color-white);
    justify-content: center;
    font-size: clamp(2.2rem, 5vw, 3.2rem); /* Fonte levemente reduzida */
    margin-bottom: 25px;
}

.program-highlight-section .program-icon {
    color: #F16137; /* Laranja */
}

.highlight-main-text {
    background-color: rgba(0, 0, 0, 0.2); 
    padding: 25px 30px; /* Padding reduzido */
    border-radius: var(--radius);
    margin-bottom: 30px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.program-highlight-section .highlight-main-text p {
    color: rgba(255, 255, 255, 0.95);
    font-size: 1.15rem; /* Fonte levemente reduzida */
    margin-bottom: 20px;
    line-height: 1.7;
}

.program-highlight-section .program-subtitle {
    color: #F16137; /* Laranja */
    font-weight: 700;
    margin-top: 25px;
    font-size: 1.6rem; /* Fonte levemente reduzida */
    margin-bottom: 15px;
}

.highlight-list {
    list-style: none;
    padding: 0;
    margin-bottom: 0;
    text-align: left;
    display: inline-block;
    max-width: 600px;
}

.highlight-list li {
    font-size: 1.05rem; /* Fonte levemente reduzida */
    color: rgba(255, 255, 255, 0.95);
    margin-bottom: 12px;
    position: relative;
    padding-left: 35px;
    line-height: 1.6;
}

.highlight-list li::before {
    content: "\f00c"; /* Font Awesome checkmark icon */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #F16137; /* Laranja */
    position: absolute;
    left: 0;
    top: 3px;
}

/* Botão da Seção Highlight */
.program-highlight-section .btn--white {
    background-color: #F16137; /* Laranja */
    color: var(--color-white);
    border: 2px solid transparent;
    transition: var(--transition-smooth);
}

.program-highlight-section .btn--white:hover {
    background-color: transparent;
    color: #F16137;
    border-color: #F16137;
}


/* --- Program Cards Grid Section (Other programs) --- */
.program-cards-section {
    padding: 60px 0;
    background-color: transparent;
}

.program-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 40px;
}

.program-card {
    background-color: var(--color-white);
    padding: 50px;
    border-radius: var(--radius);
    text-align: center;
    border: 1px solid var(--color-border);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    box-shadow: var(--shadow-md);
    display: flex;
    flex-direction: column;
}

.program-card:hover {
    transform: translateY(-12px);
    box-shadow: var(--shadow-xl);
    border-color: var(--color-secondary);
}

.program-card-icon {
    width: 80px; height: 80px;
    margin: 0 auto 30px auto;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background-color: var(--color-white);
    color: var(--color-secondary);
    font-size: 2.8rem;
    box-shadow: inset 0 0 0 4px rgba(134, 96, 147, 0.3);
    transition: var(--transition-smooth), box-shadow 0.3s ease;
}

.program-card:hover .program-card-icon {
    background-color: var(--color-secondary);
    color: var(--color-white);
    transform: rotate(15deg) scale(1.1);
    box-shadow: inset 0 0 0 4px rgba(255, 255, 255, 0.6);
}

.program-card-title {
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 20px;
    color: var(--color-text-dark);
}

.program-card p {
    font-size: 1.05rem;
    color: var(--color-text);
    flex-grow: 1;
    margin-bottom: 0;
    line-height: 1.7;
}

/* --- Projeto Profissões Section (Nova seção com carrossel) --- */
.project-professions-section {
    padding: 100px 0;
    background-color: transparent;
}

.project-professions-header {
    max-width: 900px;
    margin: 0 auto 60px auto;
    text-align: center;
}

.project-professions-header p {
    font-size: 1.15rem;
    color: var(--color-text);
    max-width: 75ch;
    margin: 0 auto;
    line-height: 1.8;
}

.professions-carousel {
    padding-bottom: 70px;
    position: relative;
    padding-left: 50px;
    padding-right: 50px;
}

.professions-card {
    background-color: var(--color-white);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.professions-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-lg);
}

.professions-card img {
    width: 100%;
    height: 260px; /* Define uma altura fixa que funciona como altura máxima */
    object-fit: cover; /* Preenche o espaço sem distorcer a imagem */
    object-position: center top; /* Opcional: mantém o alinhamento no topo, como em uma versão anterior */
    transition: transform 0.3s ease;
}
.professions-card:hover img {
    transform: scale(1.05);
}

.professions-card-content {
    padding: 25px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.professions-card-content h3 {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--color-primary-dark);
    margin-bottom: 15px;
}

.professions-card-content p {
    font-size: 1rem;
    color: var(--color-text);
    line-height: 1.6;
    flex-grow: 1;
}

/* Swiper navigation and pagination styles */
.professions-pagination {
    bottom: 10px !important;
}

.professions-pagination .swiper-pagination-bullet {
    background-color: var(--color-secondary);
    opacity: 0.5;
    transition: var(--transition-fast);
    width: 12px; height: 12px;
}

.professions-pagination .swiper-pagination-bullet-active {
    opacity: 1;
    transform: scale(1.3);
    background-color: var(--color-secondary-hover);
}

.professions-nav-button {
    color: var(--color-secondary);
    transition: var(--transition-fast);
    background-color: var(--color-white);
    width: 50px;
    height: 50px;
    border-radius: 50%;
    box-shadow: var(--shadow-md);
    z-index: 10;
}

.professions-nav-button:hover {
    background-color: var(--color-secondary);
    color: var(--color-white);
    transform: scale(1.05);
}

.professions-nav-button::after {
    font-size: 1.1rem;
}


/* --- Nova Seção de Contato (no lugar do formulário) --- */
.contact-cta-section {
    background-color: var(--color-bg-alt);
    padding: 80px 0;
    text-align: center;
    margin-top: 100px;
}

.contact-cta-section .container {
    max-width: 800px;
}

.contact-cta-section h2 {
    font-size: clamp(2.2rem, 5vw, 3rem);
    color: var(--color-primary-dark);
    margin-bottom: 20px;
}

.contact-cta-section p {
    font-size: 1.1rem;
    line-height: 1.8;
    margin-bottom: 40px;
    color: var(--color-text);
}


/* Animações de surgimento (do script.js) */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1), transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.animate-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Delay staggered for sequential elements */
.program-layout.animate-on-scroll:nth-child(even) {
    transition-delay: 0.1s;
}

/* Specific delays for project professions carousel */
.professions-carousel .swiper-slide.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1), transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.professions-carousel .swiper-slide.animate-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

.professions-carousel .swiper-slide.animate-on-scroll:nth-child(2) { transition-delay: 0.1s; }
.professions-carousel .swiper-slide.animate-on-scroll:nth-child(3) { transition-delay: 0.2s; }
.professions-carousel .swiper-slide.animate-on-scroll:nth-child(4) { transition-delay: 0.3s; }
/* Add more as needed for more slides */


/* --- Responsividade Específica da Página de Programas --- */
@media (max-width: 992px) {
    .hero--improved .hero__content {
        margin-left: 10%;
    }

    .program-layout {
        flex-direction: column;
        gap: 50px;
        padding-bottom: 40px;
        margin-bottom: 40px;
    }

    .program-layout.layout-text-left .program-text-content,
    .program-layout.layout-image-left .program-text-content { order: 1; }
    .program-layout.layout-text-left .program-media-content,
    .program-layout.layout-image-left .program-media-content { order: 2; }

    .program-text-content {
        text-align: left;
    }
    .program-title {
        justify-content: flex-start; 
    }
    .benefits-list {
        text-align: left;
        margin-left: 0;
        margin-right: 0;
        max-width: 100%;
    }

    .program-media-content img,
    .program-media-content video {
        max-height: 380px;
    }
    /* Responsividade específica para o Observatório de Astronomia */
    .special-media-content img {
        width: 100%; /* Ocupa a largura total em telas menores */
    }

    .program-highlight-section {
        margin: 60px 15px;
        padding: 60px 0;
    }
    .highlight-content {
        padding: 0 20px;
    }
    .highlight-list {
        text-align: left;
    }

    .project-professions-section {
        padding: 80px 0;
    }
    .professions-carousel {
        padding-left: 20px;
        padding-right: 20px;
    }
    .professions-nav-button {
        display: none;
    }
    .professions-card img {
        height: 180px;
    }

}

@media (max-width: 768px) {
    .hero--improved {
        min-height: 80vh;
        border-bottom-left-radius: 40px;
        border-bottom-right-radius: 40px;
    }
    .hero--improved .hero__content {
        max-width: 90%;
        text-align: center;
        margin-left: auto;
        margin-right: auto;
    }
    .hero--improved .hero__title {
        font-size: clamp(2.2rem, 8vw, 3rem);
    }
    .hero--improved .hero__subtitle {
        font-size: 0.9rem;
    }

    .intro {
        margin-top: -40px; /* Sobreposição ajustada para mobile */
        padding-top: 80px;
    }
    .intro__title {
        font-size: clamp(1.8rem, 6vw, 2.5rem);
    }
    .intro__text {
        font-size: 1rem;
    }

    .program-feature-section {
        padding: 60px 0;
    }

    .program-layout {
        gap: 40px;
        margin-bottom: 40px;
        padding-bottom: 40px;
    }

    .program-media-content img,
    .program-media-content video {
        max-height: 280px;
    }
    /* Responsividade específica para o Observatório de Astronomia */
    .special-media-content img {
        width: 90%; 
    }

    .program-title {
        font-size: 1.8rem;
        gap: 10px;
        margin-bottom: 15px;
    }
    .program-title .program-icon {
        font-size: 1.8rem;
    }

    .program-text-content p {
        font-size: 1rem;
        margin-bottom: 15px;
    }
    .program-text-content p:last-of-type {
        margin-bottom: 0;
    }

    .program-subtitle {
        font-size: 1.4rem;
        margin-top: 30px;
        margin-bottom: 15px;
    }

    .benefits-list li {
        font-size: 0.95rem;
        padding-left: 30px;
    }

    .program-cards-section {
        padding: 40px 0;
    }

    .project-professions-section {
        padding: 60px 0;
    }
    .professions-carousel {
        padding-left: 0;
        padding-right: 0;
    }
    .professions-card img {
        height: 160px;
    }
    .professions-card-content h3 {
        font-size: 1.2rem;
    }
    .professions-card-content p {
        font-size: 0.9rem;
    }

    .program-highlight-section {
        padding: 50px 0;
        margin: 40px 10px;
    }
    .program-highlight-section .program-title {
        font-size: clamp(2rem, 6vw, 2.8rem);
        margin-bottom: 20px;
    }
    .highlight-main-text {
        padding: 20px 25px;
    }
    .program-highlight-section p {
        font-size: 1rem;
        margin-bottom: 20px;
    }
    .program-highlight-section .program-subtitle {
        font-size: 1.5rem;
        margin-top: 30px;
        margin-bottom: 15px;
    }
    .highlight-list {
        margin-bottom: 30px;
    }
    .highlight-list li {
        font-size: 1rem;
    }

    .contact-cta-section {
        padding: 60px 0;
        margin-top: 60px;
    }
    .contact-cta-section h2 {
        font-size: 2rem;
    }
    .contact-cta-section p {
        font-size: 1rem;
    }
    .contact-cta-section .btn {
        font-size: 1rem;
        padding: 12px 25px;
    }
}