:root{
    --verde-900:#011f17;
    --verde-800:#012f22;
    --verde-700:#014733;
    --verde-600:#0d5a42;
    --verde-400:#3f8a6e;
    --ouro:#f6d06d;
    --ouro-escuro:#e2b54a;
    --creme:#fbf7ec;
    --texto:#eef4f1;
    --texto-suave:rgba(238,244,241,.72);
    --linha:rgba(255,255,255,.10);
    --vidro:rgba(255,255,255,.05);
    --erro:#ff9b8a;
    --raio:22px;
}

*{margin:0;padding:0;box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
    font-family:'Poppins',sans-serif;
    background:var(--verde-800);
    color:var(--texto);
    min-height:100vh;
    display:flex;
    flex-direction:column;
    overflow-x:hidden;
    line-height:1.6;
}

/* ---------- Fundo ---------- */
.bg{
    position:fixed;inset:0;z-index:0;overflow:hidden;
    background:
        radial-gradient(1200px 700px at 85% -10%, rgba(246,208,109,.10), transparent 60%),
        linear-gradient(140deg,var(--verde-900) 0%,var(--verde-700) 55%,var(--verde-600) 100%);
}
.orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55}
.orb-1{width:520px;height:520px;background:#0f6b4e;top:-180px;left:-160px;animation:flutua 18s ease-in-out infinite}
.orb-2{width:420px;height:420px;background:rgba(246,208,109,.22);bottom:-160px;right:-120px;animation:flutua 22s ease-in-out infinite reverse}
.orb-3{width:300px;height:300px;background:#1b7a5b;top:45%;left:40%;opacity:.25;animation:flutua 26s ease-in-out infinite}
@keyframes flutua{
    0%,100%{transform:translate(0,0)}
    50%{transform:translate(30px,-25px)}
}

/* ---------- Topo ---------- */
.topo{
    position:relative;z-index:2;
    width:min(1180px,92%);
    margin:0 auto;
    padding:36px 0 10px;
}
.logo{
    display:block;
    height:64px;width:auto;
    border-radius:12px;
}

/* ---------- Layout ---------- */
.wrap{
    position:relative;z-index:2;
    flex:1;
    width:min(1180px,92%);
    margin:0 auto;
    padding:40px 0 60px;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:64px;
    align-items:center;
}

/* ---------- Hero ---------- */
.selo{
    display:inline-flex;align-items:center;gap:10px;
    padding:7px 16px;
    border:1px solid rgba(246,208,109,.35);
    background:rgba(246,208,109,.08);
    color:var(--ouro);
    border-radius:999px;
    font-size:.78rem;font-weight:500;
    letter-spacing:.14em;text-transform:uppercase;
}
.pulso{
    width:8px;height:8px;border-radius:50%;background:var(--ouro);
    box-shadow:0 0 0 0 rgba(246,208,109,.6);
    animation:pulso 2s infinite;
}
@keyframes pulso{
    70%{box-shadow:0 0 0 10px rgba(246,208,109,0)}
    100%{box-shadow:0 0 0 0 rgba(246,208,109,0)}
}

h1{
    font-family:'Fraunces',serif;
    font-weight:500;
    font-size:clamp(2.2rem,4.4vw,3.6rem);
    line-height:1.12;
    letter-spacing:-.01em;
    margin:26px 0 22px;
}
h1 span,h1 em{display:block}
h1 .destaque{color:var(--ouro)}
h1 em{
    font-style:italic;
    font-size:.62em;
    color:var(--texto-suave);
    margin-top:10px;
}

.lead{
    font-size:1.08rem;
    font-weight:300;
    color:var(--texto-suave);
    max-width:560px;
}
.lead strong{color:var(--texto);font-weight:500}

.pilares{
    list-style:none;
    display:flex;flex-wrap:wrap;gap:10px;
    margin:30px 0;
}
.pilares li{
    display:flex;align-items:center;gap:8px;
    padding:9px 16px;
    background:var(--vidro);
    border:1px solid var(--linha);
    border-radius:999px;
    font-size:.88rem;
}
.pilares .ico{color:var(--ouro);font-size:.95rem;line-height:1}

.citacao{
    max-width:560px;
    padding:4px 0 4px 20px;
    border-left:3px solid var(--ouro);
    font-size:.98rem;
    font-weight:300;
    font-style:italic;
    color:var(--texto-suave);
}

/* ---------- Card do formulário ---------- */
.card{
    background:rgba(1,31,23,.55);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border:1px solid var(--linha);
    border-radius:var(--raio);
    padding:40px 36px;
    box-shadow:0 30px 80px rgba(0,0,0,.35);
}
.card h2{
    font-family:'Fraunces',serif;
    font-weight:500;
    font-size:1.7rem;
    line-height:1.2;
}
.card-sub{
    color:var(--texto-suave);
    font-size:.93rem;
    margin:8px 0 26px;
}

/* Seletor de perfil */
.perfil{border:0;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}
.perfil legend{
    grid-column:1/-1;
    font-size:.82rem;font-weight:500;
    color:var(--texto-suave);
    margin-bottom:10px;
}
.opcao{position:relative;cursor:pointer}
.opcao input{position:absolute;opacity:0;pointer-events:none}
.opcao span{
    display:block;height:100%;
    padding:14px 16px;
    border:1px solid var(--linha);
    border-radius:14px;
    background:var(--vidro);
    transition:border-color .2s,background .2s,transform .2s;
}
.opcao strong{display:block;font-size:.92rem;font-weight:600}
.opcao small{display:block;font-size:.76rem;color:var(--texto-suave);line-height:1.4;margin-top:3px}
.opcao:hover span{border-color:rgba(246,208,109,.4)}
.opcao input:checked + span{
    border-color:var(--ouro);
    background:rgba(246,208,109,.10);
}
.opcao input:checked + span strong{color:var(--ouro)}
.opcao input:focus-visible + span{outline:2px solid var(--ouro);outline-offset:2px}

/* Campos */
.campo{margin-bottom:16px}
.campo label{
    display:block;
    font-size:.82rem;font-weight:500;
    color:var(--texto-suave);
    margin-bottom:7px;
}
.campo input{
    width:100%;
    font:inherit;font-size:.97rem;
    color:var(--texto);
    background:rgba(255,255,255,.06);
    border:1px solid var(--linha);
    border-radius:12px;
    padding:13px 16px;
    transition:border-color .2s,background .2s,box-shadow .2s;
}
.campo input::placeholder{color:rgba(238,244,241,.35)}
.campo input:focus{
    outline:none;
    border-color:var(--ouro);
    background:rgba(255,255,255,.09);
    box-shadow:0 0 0 4px rgba(246,208,109,.12);
}
.campo input.invalido,
.perfil.invalido .opcao span{border-color:var(--erro)}

.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Botão */
.btn{
    width:100%;
    margin-top:8px;
    display:flex;align-items:center;justify-content:center;gap:10px;
    font:inherit;font-size:1rem;font-weight:600;
    color:var(--verde-900);
    background:linear-gradient(135deg,var(--ouro),var(--ouro-escuro));
    border:0;border-radius:12px;
    padding:15px 20px;
    cursor:pointer;
    transition:transform .2s,box-shadow .2s,opacity .2s;
    box-shadow:0 10px 30px rgba(246,208,109,.25);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(246,208,109,.35)}
.btn:focus-visible{outline:2px solid var(--creme);outline-offset:3px}
.btn[disabled]{opacity:.7;cursor:wait;transform:none}
.spinner{
    display:none;
    width:18px;height:18px;
    border:2px solid rgba(1,31,23,.3);
    border-top-color:var(--verde-900);
    border-radius:50%;
    animation:gira .7s linear infinite;
}
.btn.carregando .spinner{display:inline-block}
@keyframes gira{to{transform:rotate(360deg)}}

.status{min-height:1.2em;margin-top:12px;font-size:.86rem;color:var(--erro);text-align:center}
.lgpd{font-size:.74rem;color:rgba(238,244,241,.5);text-align:center;margin-top:4px}

/* Sucesso */
.sucesso{text-align:center;padding:30px 6px}
.sucesso .check{
    width:72px;height:72px;margin:0 auto 22px;
    display:grid;place-items:center;
    border-radius:50%;
    background:rgba(246,208,109,.14);
    border:1px solid var(--ouro);
    color:var(--ouro);
    font-size:2rem;
    animation:surge .5s ease;
}
.sucesso p{color:var(--texto-suave);margin-top:10px}
@keyframes surge{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}

/* Rodapé */
.rodape{
    position:relative;z-index:2;
    text-align:center;
    padding:24px 16px 32px;
    font-size:.82rem;
    color:rgba(238,244,241,.5);
    border-top:1px solid rgba(255,255,255,.06);
}

/* Entrada suave */
.hero > *,.card{animation:sobe .8s ease both}
.hero > *:nth-child(2){animation-delay:.08s}
.hero > *:nth-child(3){animation-delay:.16s}
.hero > *:nth-child(4){animation-delay:.24s}
.hero > *:nth-child(5){animation-delay:.32s}
.card{animation-delay:.2s}
@keyframes sobe{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ---------- Responsivo ---------- */
@media (max-width:960px){
    .wrap{grid-template-columns:1fr;gap:44px;padding-top:24px}
    .hero{text-align:center}
    .lead,.citacao{margin-left:auto;margin-right:auto}
    .pilares{justify-content:center}
    .citacao{text-align:left}
    .topo{display:flex;justify-content:center}
}

@media (max-width:480px){
    .topo{padding-top:26px}
    .logo{height:52px}
    .card{padding:30px 20px}
    .perfil{grid-template-columns:1fr}
    .pilares li{font-size:.8rem;padding:8px 13px}
}
