/* ============================================================
   IDENTIDADE VISUAL — ajuste aqui para casar 100% com os
   demais sistemas Studio Lary (catálogo, adicionais, agenda).
   ============================================================ */
:root{
  /* Paleta oficial — extraída da agenda Studio Lary Convites */
  --cor-fundo:#FAF6F5;
  --cor-fundo-2:#F1D1D3;
  --cor-marca:#ecc2c5;
  --cor-card:#ffffff;
  --cor-primaria:#C58B9E;
  --cor-primaria-escura:#9C5F74;
  --cor-dourado:#C5A477;
  --cor-texto:#303030;
  --cor-texto-suave:#6B6264;
  --cor-borda:rgba(197,139,158,.4);
  --cor-erro:#A8475F;
  --cor-ok:#5f8a6a;
  --raio:18px;
  --raio-campo:12px;
  --sombra:0 1px 2px rgba(48,48,48,.04),0 8px 24px rgba(197,139,158,.1);
  --fonte-titulo:"Cormorant Garamond", Georgia, serif;
  --fonte-script:"Allura", cursive;
  --fonte-texto:"DM Sans", system-ui, sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--fonte-texto);font-weight:400;color:var(--cor-texto);
  background:var(--cor-fundo);
  line-height:1.6;
}
.topo{max-width:760px;margin:0 auto;padding:16px 16px 4px}
.brand{text-align:center;padding:8px 0 4px;margin-bottom:16px}
.logo{width:230px;max-width:70%;height:auto;display:block;margin:0 auto}
.marca-script{font-family:var(--fonte-script);font-size:56px;line-height:1;margin:0;color:var(--cor-primaria-escura)}
.marca-sub{letter-spacing:.5em;font-size:12px;margin:6px 0 0;color:var(--cor-texto-suave);padding-left:.5em}
.ornamento{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--cor-dourado);margin:16px auto;font-size:12px}
.ornamento span{display:block;width:70px;height:1px;background:linear-gradient(90deg,transparent,var(--cor-dourado),transparent)}

.container{max-width:760px;margin:0 auto;padding:0 16px 40px}
.card{background:var(--cor-card);border:1px solid var(--cor-borda);border-radius:var(--raio);box-shadow:var(--sombra);padding:28px 24px;margin:0 0 20px}
.intro{text-align:center}
.intro h1{font-family:var(--fonte-titulo);font-weight:500;font-size:30px;line-height:1.2;margin:0 0 16px}
.intro h1 em{font-family:var(--fonte-script);font-style:normal;font-weight:400;font-size:44px;color:var(--cor-primaria);display:inline-block;margin-top:4px}
.intro p{color:var(--cor-texto-suave);font-size:15px;margin:0 0 10px}
.legenda{font-size:13px!important}
.req{color:var(--cor-primaria-escura)}

fieldset{border:1px solid var(--cor-borda);min-width:0}
legend{
  font-family:var(--fonte-titulo);font-size:24px;font-weight:600;color:var(--cor-primaria-escura);
  padding:0 10px;display:flex;align-items:center;gap:10px;
}
.num{
  font-family:var(--fonte-texto);font-size:13px;font-weight:600;width:28px;height:28px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;color:#fff;
  background:linear-gradient(135deg,var(--cor-primaria),var(--cor-dourado));
}
.campo{margin:0 0 22px}
.campo:last-child{margin-bottom:0}
label,.rotulo{display:block;font-size:14px;font-weight:500;margin:0 0 8px}
.rotulo small{font-weight:400;color:var(--cor-texto-suave)}
input[type=text],input[type=url],textarea{
  width:100%;font:inherit;font-size:16px; /* 16px evita zoom no iPhone */
  color:var(--cor-texto);background:#fff;border:1px solid var(--cor-borda);border-radius:var(--raio-campo);
  padding:13px 14px;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none;
}
textarea{resize:vertical;min-height:52px}
input::placeholder,textarea::placeholder{color:#bfaaa4}
input:focus,textarea:focus{outline:none;border-color:var(--cor-primaria);box-shadow:0 0 0 3px rgba(185,139,130,.18)}
.campo.invalido input,.campo.invalido textarea,.condicional.invalido input,.condicional.invalido textarea{border-color:var(--cor-erro)}
.erro{display:none;color:var(--cor-erro);font-size:13px;margin:6px 0 0}
.invalido > .erro,.invalido .erro{display:block}
.grade-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}

.opcoes{display:flex;flex-wrap:wrap;gap:10px}
.opcao{margin:0;cursor:pointer;position:relative}
.opcao input{position:absolute;opacity:0;width:1px;height:1px}
.opcao span{
  display:inline-block;padding:10px 16px;border:1px solid var(--cor-borda);border-radius:999px;
  font-size:14px;font-weight:400;background:#fff;transition:all .2s;user-select:none;
}
.opcao:hover span{border-color:var(--cor-primaria)}
.opcao input:checked + span{background:var(--cor-primaria);border-color:var(--cor-primaria);color:#fff}
.opcao input:focus-visible + span{box-shadow:0 0 0 3px rgba(185,139,130,.3)}
.f-cursiva{font-family:var(--fonte-script);font-size:20px!important;padding:6px 16px!important}
.f-fina{font-weight:300!important;letter-spacing:.06em}
.f-serifa{font-family:var(--fonte-titulo);font-size:16px!important}
.condicional{margin-top:12px}

.check{display:flex;gap:12px;align-items:flex-start;font-weight:400;padding:12px 14px;border:1px solid var(--cor-borda);border-radius:var(--raio-campo);margin:0 0 10px;cursor:pointer;background:#fff}
.check input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--cor-primaria)}
.campo.invalido .check input:not(:checked){outline:2px solid var(--cor-erro);outline-offset:1px}

.acoes{text-align:center;padding:8px 0}
.botao{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:420px;
  font:inherit;font-size:16px;font-weight:600;letter-spacing:.03em;color:#fff;cursor:pointer;
  padding:16px 24px;border:0;border-radius:999px;
  background:linear-gradient(135deg,var(--cor-primaria),var(--cor-primaria-escura));
  box-shadow:0 8px 20px rgba(143,98,90,.25);transition:transform .15s,box-shadow .2s;
}
.botao svg{width:22px;height:22px}
.botao:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(143,98,90,.3)}
.nota{font-size:13px;color:var(--cor-texto-suave);margin:14px auto 0;max-width:460px}
.resumo-erro{color:var(--cor-erro);font-size:14px;background:#fbefed;border:1px solid #f0d3cf;border-radius:var(--raio-campo);padding:10px 14px;margin:0 0 16px}
.status{font-size:14px;color:var(--cor-ok);margin-top:12px}
.rodape{text-align:center;padding:10px 16px 40px;color:var(--cor-texto-suave);font-size:13px}

@media (max-width:600px){
  .card{padding:22px 16px}
  .grade-2{grid-template-columns:1fr}
  .intro h1{font-size:26px}
  .intro h1 em{font-size:38px}
  legend{font-size:21px}
  .marca-script{font-size:46px}
}
