:root {
    --efas-bg-1: #fbfaf7;
    --efas-bg-2: #f5eede;
    --efas-bg-3: #e6d6b8;
    --efas-primary: #b0a277;
    --efas-primary-strong: #908059;
    --efas-ink: #68634d;
    --efas-ink-soft: #81765b;
    --efas-font-body: 'Segoe UI', 'Trebuchet MS', Arial, sans-serif;
    --efas-font-title: 'Trebuchet MS', 'Segoe UI', Verdana, sans-serif;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: var(--efas-font-body), sans-serif;
    background: linear-gradient(165deg, var(--efas-bg-1) 0%, var(--efas-bg-2) 55%, #ffffff 100%);
    line-height: 1.5;
    color: #3a372d;
}

.hidden {
    display: none !important;
}

.opacity-50 {
    opacity: 0.5;
}

.cursor-not-allowed {
    cursor: not-allowed;
}

.bg-tema {
    background-color: var(--efas-bg-3);
    background-image: linear-gradient(170deg, rgba(176, 162, 119, 0.96) 0%, rgba(230, 214, 184, 0.93) 52%, rgba(251, 250, 247, 0.98) 100%);
}

.hero {
    text-align: center;
    padding: 3.6rem 1rem 3.2rem;
}

.hero-kicker {
    font-family: var(--efas-font-title), sans-serif;
    letter-spacing: 0.18em;
    font-size: 1rem;
    text-transform: uppercase;
    margin: 0 0 0.5rem;
    font-weight: 400;
}

.hero-title {
    font-family: var(--efas-font-title), sans-serif;
    font-size: clamp(2.2rem, 7.5vw, 4.5rem);
    line-height: 1.06;
    letter-spacing: 0.02em;
    margin: 0 0 1rem;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.08);
}

.hero-subtitle {
    font-size: clamp(1.25rem, 3.8vw, 1.95rem);
    line-height: 1.25;
    margin: 0 0 0.35rem;
    font-weight: 600;
}

.hero-date {
    font-size: clamp(1rem, 3vw, 1.45rem);
    line-height: 1.3;
    margin: 0;
}

.text-brand {
    color: var(--efas-ink);
}

.text-brand-soft {
    color: var(--efas-ink-soft);
}

.border-brand {
    border-top-color: var(--efas-primary);
}

.container {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 1.25rem;
}

.section {
    padding: 2.5rem 0;
}

.info-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

.card-tema {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(3px);
}

.card {
    padding: 1.5rem;
    border-top-width: 4px;
    border-top-style: solid;
    border-radius: 0.9rem;
    box-shadow: 0 10px 26px rgba(64, 56, 38, 0.12);
}

.card-title {
    margin: 0 0 1rem;
    font-size: 1.55rem;
    line-height: 1.25;
}

.card-subtitle {
    margin: 1.4rem 0 0.35rem;
    font-size: 1.15rem;
}

.card-text {
    margin: 0;
    font-size: 1.06rem;
}

.card-text-compact {
    margin-bottom: 0.5rem;
}

.card-text-spacing {
    margin-bottom: 1rem;
}

.parallel-activity {
    margin: 0;
    color: #2e7a42;
    font-size: 1.05rem;
    font-weight: 600;
}

.section-title {
    font-family: var(--efas-font-title), sans-serif;
    font-size: clamp(1.65rem, 4.8vw, 2rem);
    line-height: 1.25;
    letter-spacing: 0.01em;
    margin: 0 0 0.5rem;
}

.section-center {
    text-align: center;
}

.section-descricao-efas {
    max-width: 920px;
    padding-top: 1.1rem;
    padding-bottom: 0.75rem;
}

.descricao-efas-card {
    border-top-width: 4px;
    border-top-style: solid;
}

.descricao-efas-texto {
    margin: 0;
    color: #5f5947;
    font-size: 0.98rem;
    line-height: 1.65;
}


.section-programacao {
    max-width: 920px;
}

.programacao-status {
    margin: 0 0 1rem;
    text-align: center;
    font-size: 0.92rem;
    color: #7b7668;
}

.table-card {
    border-top-width: 4px;
    border-top-style: solid;
    border-radius: 0.9rem;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(64, 56, 38, 0.1);
}

.table-wrapper {
    overflow-x: auto;
}

.programacao-table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
}

.programacao-head {
    background: #f7f1e2;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.programacao-col-periodo {
    width: 34%;
}

.programacao-head th,
.programacao-body td {
    padding: 0.75rem 1rem;
}

.programacao-body tr {
    border-top: 1px solid #efe5cf;
}

.programacao-body {
    color: #3e3a2f;
}

.section-formulario {
    max-width: 760px;
}

.form-intro {
    margin: 0 0 2rem;
    text-align: center;
    color: #6f6a5f;
}

.label-tema {
    display: block;
    color: #5e5743;
    font-size: 0.98rem;
    line-height: 1.35;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.form-card {
    border-top-width: 4px;
    border-top-style: solid;
    border-radius: 0.9rem;
    padding: 1.6rem;
    box-shadow: 0 10px 28px rgba(64, 56, 38, 0.14);
}

.form-group {
    margin-bottom: 1rem;
}

.input-control {
    width: 100%;
    padding: 0.62rem 0.8rem;
    border: 1px solid #c8c0ab;
    border-radius: 0.55rem;
    font-size: 1rem;
    color: #353126;
    background: #ffffff;
}

.textarea-control {
    min-height: 92px;
    resize: vertical;
}

.select-control {
    appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, #84744f 50%), linear-gradient(135deg, #84744f 50%, transparent 50%);
    background-position: calc(100% - 20px) calc(50% - 1px), calc(100% - 14px) calc(50% - 1px);
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
    padding-right: 2.4rem;
}

.focus-brand:focus {
    outline: none;
    border-color: var(--efas-primary);
    box-shadow: 0 0 0 3px rgba(176, 162, 119, 0.24);
}

.btn-brand {
    width: 100%;
    background-color: var(--efas-primary-strong);
    color: #ffffff;
    font-family: var(--efas-font-title), sans-serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    border: 0;
    border-radius: 0.6rem;
    padding: 0.8rem 1rem;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.btn-brand:hover {
    background-color: #7a6c4d;
    transform: translateY(-1px);
}

.btn-brand:disabled {
    cursor: not-allowed;
}

.btn-submit {
    margin-top: 0.3rem;
}

.fieldset-dias {
    border: 0;
    margin: 0 0 1.4rem;
    padding: 0;
}

.dias-options {
    display: grid;
    gap: 0.55rem;
}

.dia-option {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    color: #4e4a3f;
}

.dia-checkbox {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--efas-primary-strong);
}

.feedback {
    margin-top: 1rem;
    padding: 0.8rem 0.9rem;
    border-radius: 0.55rem;
    text-align: center;
    font-weight: 600;
}

.feedback-success {
    background: #e8f8ec;
    color: #24683b;
}

.feedback-error {
    background: #fdeaea;
    color: #a12020;
}

.footer-tema {
    background: rgba(176, 162, 119, 0.2);
    border-top: 1px solid rgba(144, 128, 89, 0.35);
    margin-top: 2.6rem;
    padding: 1.7rem 1rem;
    text-align: center;
}

.contact-link {
    color: var(--efas-ink);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.contact-link:hover {
    color: #7a6c4d;
}

.contact-link:focus-visible {
    outline: 2px solid var(--efas-primary-strong);
    outline-offset: 2px;
    border-radius: 4px;
}

.realizacao {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.realizacao-note {
    margin-top: 1.25rem;
    font-size: 0.9rem;
    color: #7a7668;
}

.realizacao-logo {
    width: 28px;
    height: 28px;
    object-fit: contain;
    flex-shrink: 0;
}

.footer-copy {
    margin: 0 0 0.4rem;
}

.footer-link {
    color: var(--efas-ink);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.footer-link:hover {
    color: #7a6c4d;
}

.footer-link:focus-visible {
    outline: 2px solid var(--efas-primary-strong);
    outline-offset: 2px;
    border-radius: 4px;
}

/* === Formulário com 2 etapas === */

.form-info-box {
    background: #fffbf0;
    border-left-width: 4px;
    border-left-style: solid;
    border-radius: 0.6rem;
    padding: 1rem 1.2rem;
    margin-bottom: 2rem;
    box-shadow: 0 3px 12px rgba(64, 56, 38, 0.08);
}

.form-info-text {
    margin: 0;
    color: #5e5743;
    font-size: 0.95rem;
    line-height: 1.6;
}

.form-info-text strong {
    color: var(--efas-ink);
}

.etapa-wrapper {
    transition: opacity 0.3s ease;
}

.etapa-titulo {
    font-family: var(--efas-font-title), sans-serif;
    font-size: 1.35rem;
    font-weight: 700;
    margin: 0 0 1.5rem;
    padding-bottom: 0.8rem;
    border-bottom: 2px solid var(--efas-primary);
}

/* Seleção de temas */
.fieldset-temas {
    border: 0;
    margin: 0 0 1.8rem;
    padding: 0;
}

.temas-options {
    display: grid;
    gap: 0.8rem;
    margin-top: 0.7rem;
}

.tema-option {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.7rem;
    border-radius: 0.5rem;
    background: #fafaf8;
    cursor: pointer;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.tema-option:hover {
    background-color: #f3efeb;
}

.tema-option input {
    margin-top: 0.25rem;
    accent-color: var(--efas-primary-strong);
    flex-shrink: 0;
}

.tema-option label {
    flex-grow: 1;
    cursor: pointer;
    margin: 0;
    font-size: 0.95rem;
    color: #4e4a3f;
}


.tema-option-desc {
    display: block;
    font-size: 0.87rem;
    color: #81765b;
}

.campo-erro {
    margin: 0.4rem 0 0;
    font-size: 0.88rem;
    color: #b62626;
    display: none;
}

.campo-erro.visible {
    display: block;
}

.botoes-etapa-2 {
    display: flex;
    gap: 1rem;
    margin-top: 1.5rem;
}

.botoes-etapa-2 .btn-brand {
    flex: 1;
    width: auto;
}

.btn-secondary {
    background-color: #b8b0a0;
}

.btn-secondary:hover {
    background-color: #a39a8a;
}


@media (min-width: 769px) {
    .hero {
        padding-top: 4.2rem;
        padding-bottom: 3.6rem;
    }

    .container {
        padding: 0 1.5rem;
    }

    .section {
        padding: 3rem 0;
    }

    .info-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.8rem;
    }

    .card {
        padding: 1.9rem;
    }

    .form-card {
        padding: 2rem;
    }
}
