:root{
    --primary:#06ad00;
    --bg:#0d0f12;
    --card:rgba(255,255,255,.08);
    --stroke:rgba(255,255,255,.12);
    --text:#e9eef6;
    --focus:rgba(2, 146, 2, 0.767);
    --shadow:0 10px 30px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.05);
    --radius:18px;
}

/* =========================
   Tema CLARO
========================= */
[data-bs-theme="light"]{
    --primary:#06ad00;
    --bg:#ffffff;
    --card:#ffffff;
    --stroke:#e5e7eb;
    --text:#1f2937;
    --focus:rgba(6,173,0,.25);
    --shadow:0 10px 25px rgba(0,0,0,.08);
}

/* Ajustes visuais para light */
[data-bs-theme="light"] .contact-card{
    border:2px solid rgba(6,173,0,.15);
}

[data-bs-theme="light"] .form-input{
    background:#f9fafb;
    border:2px solid #d1d5db;
    color:#111827;
}

[data-bs-theme="light"] .form-input:focus{
    background:#fff;
}

[data-bs-theme="light"] .form-wrap .form-label{
    color:#374151;
}

[data-bs-theme="light"] .form-wrap .form-input:focus + .form-label,
[data-bs-theme="light"] .form-wrap .form-input:not(:placeholder-shown) + .form-label{
    background:#fff;
}

[data-bs-theme="light"] .radio-group label{
    background:#f9fafb;
    border:2px solid #d1d5db;
    color:#111827;
}

[data-bs-theme="light"] .radio-group label:hover{
    background:#f3f4f6;
}

[data-bs-theme="light"] .event-info{
    background:#f9fafb;
    border:1px solid #e5e7eb;
}

[data-bs-theme="light"] #form-loader{
    color:#111827;
}

.section.bg-default{
    padding: 64px 0 92px;
}

.page-head{ text-align:center; margin-bottom: 28px; }
.page-head h1{ margin:0 0 6px; font-weight:800; letter-spacing:.2px; }
.page-head p{ margin:0; }

/* Cards */
.contact-card{
    background: var(--card);
    backdrop-filter: blur(10px);
    border: 3px solid rgba(37, 187, 7, 0.22);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 24px;
}
.contact-card h3{ margin: 0 0 14px; font-weight:700; }

/* ======= Form + labels flutuantes ======= */
.rd-form{ text-align:left; }
.form-wrap{ position:relative; margin-bottom:18px; }
.form-input, textarea.form-input{
    width:100%;
    border: 3px solid rgba(13, 231, 24, 0.22);
    background: rgba(255,255,255,.06);
    border-radius: 14px;
    padding: 14px 14px;
    color: var(--text);
    outline:none;
    transition: border .2s ease, box-shadow .2s ease, background .2s ease;
    resize: vertical;
}
.form-input::placeholder, textarea.form-input::placeholder{ color: transparent; }
.form-input:focus, textarea.form-input:focus{
    box-shadow: 0 0 0 6px var(--focus);
    background: rgba(255,255,255,.08);
}

/* Label flutuante — apenas dentro de .form-wrap */
.form-wrap .form-label{
    position:absolute; left:14px; top:50%; transform:translateY(-50%);
    pointer-events:none; transition: all .18s ease; padding:0 6px;
    color: var(--text);
}
.form-wrap .form-input:focus + .form-label,
.form-wrap .form-input:not(:placeholder-shown) + .form-label,
.form-wrap textarea.form-input:focus + .form-label,
.form-wrap textarea.form-input:not(:placeholder-shown) + .form-label{
    top:-8px; transform:none; font-size:.75rem; color:var(--primary);
    background: var(--bg); border-radius:8px;
}

/* ======= SELECT fix ======= */
select.form-input{
    appearance: auto;
    -webkit-appearance: menulist;
    -moz-appearance: menulist;
    cursor: pointer;
    color: var(--text);
}
select.form-input option{
    background: #1a1d23;
    color: var(--text);
    padding: 8px;
}
select.form-input option[value=""]{
    color: rgba(255,255,255,.4);
}
/* Quando o select tem valor selecionado, sobe o label */
.form-wrap select.form-input:focus + .form-label,
.form-wrap select.form-input:not([value=""]) + .form-label{
    top:-8px; transform:none; font-size:.75rem; color:var(--primary);
    background: var(--bg); border-radius:8px;
}

/* ======= RADIO GROUP fix ======= */
.radio-group{
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}
.radio-group label{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    padding: 10px 18px;
    border: 2px solid rgba(13, 231, 24, 0.22);
    border-radius: 12px;
    background: rgba(255,255,255,.05);
    color: var(--text);
    font-weight: 500;
    transition: all .2s ease;
    user-select: none;
}
.radio-group label:hover{
    background: rgba(255,255,255,.1);
    border-color: rgba(13, 231, 24, 0.4);
}
.radio-group input[type="radio"]{
    appearance: auto;
    -webkit-appearance: radio;
    -moz-appearance: radio;
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
    cursor: pointer;
    margin: 0;
    flex-shrink: 0;
}
.radio-group input[type="radio"]:checked + span,
.radio-group label:has(input[type="radio"]:checked){
    border-color: var(--primary);
    background: rgba(6, 173, 0, 0.12);
    box-shadow: 0 0 0 3px var(--focus);
}

/* Label de título dos radio groups (Sexo, PCD) — NÃO flutuante */
p.form-label{
    position: static !important;
    transform: none !important;
    pointer-events: auto;
    color: var(--text);
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0;
}

/* Checkbox termo */
input[type="checkbox"]{
    appearance: auto;
    -webkit-appearance: checkbox;
    -moz-appearance: checkbox;
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
    cursor: pointer;
    flex-shrink: 0;
    margin-top: 2px;
}

/* Botão */
.button.button-primary{
    --btnh:48px;
    display:inline-flex; align-items:center; justify-content:center;
    height:var(--btnh); width:100%;
    border-radius:14px; border:1px solid rgba(0,0,0,.12);
    background: linear-gradient(180deg, var(--primary), #05a30d);
    color:#fff; font-weight:700; letter-spacing:.2px;
    box-shadow: 0 8px 18px rgba(3, 163, 16, 0.35);
    transition: transform .08s ease, box-shadow .18s ease, filter .18s ease;
}
.button.button-primary:hover{ filter:brightness(1.03); box-shadow:0 10px 24px rgba(69, 255, 45, 0.42); }
.button.button-primary:active{ transform:translateY(1px); }

/* Mensagens Django */
.messages{ list-style:none; padding:0; margin:0 0 16px; }
.messages li{
    padding:12px 16px; border-radius:12px; margin-bottom:10px; font-weight:600;
    background: rgba(255,255,255,.06); border:1px solid var(--stroke); color:var(--text);
}
.messages li.success{ background:#dcfce7; border-color:#bbf7d0; color:#14532d; }
.messages li.error{ background:#fee2e2; border-color:#fecaca; color:#7f1d1d; }

/* Loader */
#form-loader{ display:none; margin-top:12px; color:var(--text); font-weight:700; }

/* Event info */
.event-info{
    padding: 16px;
    border: 2px solid rgba(13, 231, 24, 0.15);
    border-radius: 14px;
    background: rgba(255,255,255,.04);
}
.event-info h4{ margin: 0 0 10px; font-weight: 700; color: var(--primary); }
.event-info p{ margin: 4px 0; }
.event-info a{ color: var(--primary); text-decoration: none; font-weight: 600; }
.event-info a:hover{ text-decoration: underline; }

/* Botão título */
.botao-final {
    color: var(--primary);
    outline: none; border: none;
    font-size: 27px;
    padding: 0.6em 1em;
    position: relative;
    background: none;
    cursor: pointer;
}
.botao-final:active { transform: scale(.98); box-shadow: .1px .1px 2px var(--primary); }
.botao-final span { position: absolute; background: var(--primary); transition: .5s; box-shadow: 1px 1px 20px var(--primary); }
.botao-final span:nth-child(1) { top:0; left:0; width:3px; height:30%; }
.botao-final:hover span:nth-child(1) { height:100%; }
.botao-final span:nth-child(2) { top:0; left:0; width:15%; height:3px; }
.botao-final:hover span:nth-child(2) { width:100%; }
.botao-final span:nth-child(3) { bottom:0; right:0; width:3px; height:30%; }
.botao-final:hover span:nth-child(3) { height:100%; }
.botao-final span:nth-child(4) { bottom:0; right:0; width:15%; height:3px; }
.botao-final:hover span:nth-child(4) { width:100%; }

/* Mobile */
@media (max-width: 575.98px){
    .contact-card{ padding:20px; }
    .radio-group{ flex-direction: column; gap: 10px; }
}
@media (max-width: 991.98px){
    .col-lg-8{ order: 1; }
    .col-lg-4{ order: 2; }
}

.banner-section{
    padding-top:30px;
    padding-bottom:10px;
}

.banner-img{
    max-width:900px;
    width:100%;
    height:auto;
    border-radius:8px;
}