/* Convite RSVP - estilos do convite
   Tudo escopado em .cvt para não brigar com o tema (Astra) nem com outros plugins. */

/* --- neutraliza heranças do tema dentro do convite --- */
.cvt{position:relative; z-index:1}
.cvt h1,.cvt h2,.cvt h3{font-weight:inherit; letter-spacing:normal; text-transform:none}
.cvt p{margin:0}
.cvt a{text-decoration:none}
.cvt img{max-width:100%; height:auto; display:block}
.cvt button,.cvt input,.cvt textarea{font-family:inherit; letter-spacing:normal; text-transform:none; box-shadow:none}
.cvt button{border:0; background:none}
.cvt ul{list-style:none; margin:0; padding:0}
.cvt hr{margin:0; border:0}
.cvt .cvt-armadilha{position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden}

.cvt{
  --creme:#FBF7F1; --papel:#FFFDF9;
  --rosa:#F3C6D3; --rosa-claro:#FBEAF0; --rosa-fundo:#A85C79;
  --azul:#C6DBEE; --azul-fundo:#4E7CA0;
  --folha:#7E9E76; --folha-clara:#9DBE93; --mata:#3F5A38;
  --tinta:#37402F; --tinta-suave:#5F6B59;
  --borda:rgba(126,158,118,.32);
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --script:'Pinyon Script','Cormorant Garamond',cursive;
  --sans:'Quicksand','Trebuchet MS',-apple-system,sans-serif;
}
.cvt, .cvt *{box-sizing:border-box}
.cvt{-webkit-text-size-adjust:100%}
.cvt{
  margin:0; background:var(--creme); color:var(--tinta);
  font-family:var(--sans); font-size:17px; line-height:1.6;
}
.cvt .jardim{
  position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden;
  background:var(--creme);
}
.cvt .jardim span{
  position:absolute; display:block; border-radius:50%; filter:blur(60px);
  animation:respira 34s ease-in-out infinite;
}
.cvt .jardim .b1{left:-22%; top:-26%; width:86%; height:62%; background:rgba(243,198,211,.62)}
.cvt .jardim .b2{right:-20%; top:-14%; width:72%; height:56%; background:rgba(198,219,238,.58); animation-duration:41s; animation-delay:-9s}
.cvt .jardim .b3{left:-14%; bottom:-30%; width:88%; height:64%; background:rgba(157,190,147,.5); animation-duration:47s; animation-delay:-18s}
.cvt .jardim .b4{right:-24%; bottom:-22%; width:66%; height:52%; background:rgba(243,198,211,.42); animation-duration:38s; animation-delay:-26s}
.cvt .jardim .luz{
  position:absolute; inset:0; animation:none; border-radius:0; filter:none;
  background:radial-gradient(58% 46% at 50% 40%, rgba(255,253,249,.86), rgba(255,253,249,.32) 62%, transparent 78%);
}
@keyframes respira{
  0%,100%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(3%,-2%,0) scale(1.1)}
}
.cvt .ceu{position:fixed; inset:0; z-index:1; pointer-events:none; overflow:hidden}
.cvt .borboleta{position:absolute; opacity:.5; animation:voo 22s ease-in-out infinite}
.cvt .borboleta:nth-child(2){animation-duration:28s; animation-delay:-6s}
.cvt .borboleta:nth-child(3){animation-duration:25s; animation-delay:-13s}
@keyframes voo{
  0%,100%{transform:translate(0,0) rotate(-5deg)}
  33%{transform:translate(18px,-26px) rotate(7deg)}
  66%{transform:translate(-16px,-12px) rotate(-9deg)}
}
.cvt .envelope{position:relative; z-index:2; max-width:520px; margin:0 auto; padding:0 20px calc(56px + env(safe-area-inset-bottom))}
.cvt .portal{text-align:center; padding-top:40px}
.cvt .sobrescrito{margin:0 0 4px; font-size:13px; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:var(--mata)}
.cvt .moldura{position:relative; width:100%; max-width:344px; aspect-ratio:344/400; margin:0 auto}
.cvt .janela{
  position:absolute; left:19.19%; top:18.5%; width:61.63%; height:71.5%; overflow:hidden;
  border-radius:50% 50% 0 0 / 37.06% 37.06% 0 0;
  background:linear-gradient(160deg,#FDF4F6,#F4EDF4 55%,#EAF1F7);
  box-shadow:inset 0 0 0 7px #FFFDF9, 0 10px 24px rgba(63,90,56,.22);
}
.cvt .janela img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover;
  box-shadow:0 4px 16px rgba(63,90,56,.18);
}
.cvt .arco{position:absolute; inset:0; width:100%; height:100%; pointer-events:none}
.cvt .selo{
  position:relative; z-index:2; display:inline-block; margin-top:-26px;
  background:var(--papel); color:var(--mata); font-size:14px; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  padding:11px 22px; border-radius:999px; box-shadow:0 6px 20px rgba(63,90,56,.16);
}
.cvt h1{font-family:var(--script); font-weight:400; font-size:clamp(68px,22vw,100px); line-height:1; margin:20px 0 0; color:var(--rosa-fundo); letter-spacing:.01em}
.cvt h1 em{display:block; font-family:var(--serif); font-style:italic; font-weight:300; font-size:.30em; color:#8A3F5A; margin-top:6px; letter-spacing:.03em}
.cvt .chamada{margin:16px auto 0; max-width:21em; font-size:17px; color:var(--tinta); text-wrap:pretty}
.cvt .contagem{display:flex; justify-content:center; gap:10px; margin:28px 0 0}
.cvt .contagem div{flex:1; max-width:104px; background:var(--papel); border-radius:18px; padding:14px 6px; box-shadow:0 5px 16px rgba(63,90,56,.09)}
.cvt .contagem b{display:block; font-family:var(--serif); font-weight:500; font-size:34px; line-height:1; color:var(--mata); font-variant-numeric:lining-nums; font-feature-settings:"lnum" 1}
.cvt .contagem span{font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--tinta-suave)}
.cvt .faltam{margin:14px 0 0; font-size:15px; color:var(--tinta)}
.cvt .cartao{background:var(--papel); border-radius:26px; padding:26px 22px; margin-top:26px; box-shadow:0 8px 28px rgba(63,90,56,.10)}
.cvt .cartao h2{font-family:var(--serif); font-weight:500; font-size:30px; line-height:1.15; color:var(--mata); margin:0}
.cvt .cartao h2 + .apoio{margin:6px 0 0; font-size:16px; color:var(--tinta-suave)}
.cvt .divisor{display:block; margin:16px 0 4px; height:1px; border:0; background:var(--borda)}
.cvt .linha{display:flex; gap:14px; align-items:flex-start; padding:16px 0; border-bottom:1px dashed var(--borda)}
.cvt .linha:last-of-type{border-bottom:0}
.cvt .linha svg{flex:none; margin-top:3px}
.cvt .linha p{margin:0; font-size:17px; font-weight:500}
.cvt .linha small{display:block; margin-top:2px; font-size:16px; font-weight:400; color:var(--tinta-suave)}
.cvt .acoes{display:flex; flex-direction:column; gap:10px; margin-top:18px}
.cvt .botao{
  display:block; width:100%; min-height:54px; text-align:center; text-decoration:none;
  font-family:var(--sans); font-size:17px; font-weight:600;
  padding:15px 18px; border-radius:16px; border:0; cursor:pointer;
  touch-action:manipulation; -webkit-tap-highlight-color:transparent;
  transition:transform .15s ease, box-shadow .15s ease;
}
.cvt .botao.rosa{background:var(--rosa-fundo); color:#fff; box-shadow:0 8px 22px rgba(168,92,121,.28)}
.cvt .botao.verde{background:var(--mata); color:#fff; box-shadow:0 8px 22px rgba(63,90,56,.22)}
.cvt .botao.contorno{background:transparent; color:var(--mata); border:1.5px solid var(--borda)}
.cvt .botao:hover{transform:translateY(-2px)}
.cvt .botao:focus-visible{outline:3px solid var(--azul-fundo); outline-offset:3px}
.cvt .botao[disabled]{opacity:.6; cursor:default; transform:none}
.cvt .campo{margin-top:18px}
.cvt label{display:block; font-size:16px; font-weight:600; color:var(--tinta); margin-bottom:7px}
.cvt label .opcional{font-weight:400; color:var(--tinta-suave)}
.cvt input[type=text],
.cvt input[type=tel],
.cvt textarea{
  width:100%; font-family:var(--sans); font-size:17px; color:var(--tinta);
  background:var(--creme); border:1.5px solid var(--borda); border-radius:14px; padding:14px;
}
.cvt textarea{min-height:92px; resize:vertical}
.cvt input::placeholder, .cvt textarea::placeholder{color:#8C9686}
.cvt input:focus, .cvt textarea:focus{outline:0; border-color:var(--azul-fundo); background:#fff; box-shadow:0 0 0 3px rgba(78,124,160,.18)}
.cvt .dupla{display:flex; flex-wrap:wrap; gap:0 12px}
.cvt .dupla > .campo{flex:1 1 172px}
.cvt .contador{display:flex; align-items:center; gap:8px}
.cvt .contador button{
  flex:none; width:48px; height:48px; border-radius:14px; cursor:pointer;
  border:1.5px solid var(--borda); background:var(--creme); color:var(--mata);
  font-family:var(--sans); font-size:24px; font-weight:600; line-height:1;
  touch-action:manipulation; -webkit-tap-highlight-color:transparent;
}
.cvt .contador button:focus-visible{outline:3px solid var(--azul-fundo); outline-offset:2px}
.cvt .contador input{
  flex:1 1 60px; min-width:60px; width:100%; height:48px; text-align:center;
  font-family:var(--sans); font-size:22px; font-weight:600; color:var(--mata);
  font-variant-numeric:lining-nums; font-feature-settings:"lnum" 1;
  background:#fff; border:1.5px solid var(--borda); border-radius:14px; padding:0;
  -moz-appearance:textfield;
}
.cvt .contador input::-webkit-outer-spin-button, .cvt .contador input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0}
.cvt .aviso{margin:16px 0 0; min-height:1.4em; font-size:16px; font-weight:500; color:var(--rosa-fundo)}
.cvt .bloco{margin-top:26px; padding-top:22px; border-top:1px solid var(--borda)}
.cvt .bloco > h3{
  margin:0 0 2px; font-family:var(--sans); font-size:15px; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--mata);
}
.cvt .bloco > .apoio{margin:0 0 14px; font-size:15px}
.cvt .fichas{display:flex; flex-direction:column; gap:12px; margin-top:14px}
.cvt .fichas:empty{display:none}
.cvt .ficha{
  border:1.5px solid var(--borda); border-radius:16px; padding:14px 15px 15px;
  background:rgba(255,253,249,.72);
  animation:abre .28s ease both;
}
.cvt .ficha > .titulo{
  display:flex; align-items:center; gap:8px; margin:0 0 10px;
  font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--mata);
}
.cvt .ficha > .titulo .pino{
  flex:none; width:22px; height:22px; border-radius:50%; display:grid; place-items:center;
  font-size:12px; letter-spacing:0; color:#FFFDF9; background:var(--mata);
}
.cvt .ficha.crianca > .titulo .pino{background:#8A3F5A}
.cvt .ficha .campo:last-child{margin-bottom:0}
@keyframes abre{from{opacity:0; transform:translateY(-6px)} to{opacity:1; transform:none}}
.cvt #cvt-confirmado{display:none}
.cvt #cvt-confirmado.ativo{display:block; text-align:center}
.cvt #cvt-confirmado .marca{margin:0 auto 10px; display:block}
.cvt #cvt-confirmado h2{margin-bottom:8px}
.cvt #cvt-confirmado .resumo{margin:0 0 4px; font-size:17px; color:var(--tinta-suave); text-wrap:pretty}
.cvt .lista{
  margin:20px 0 4px; padding:18px 18px 6px; text-align:left;
  border:1.5px solid var(--borda); border-radius:18px; background:rgba(255,253,249,.72);
}
.cvt .lista h3{
  margin:0 0 10px; font-family:var(--sans); font-size:13px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--mata);
}
.cvt .lista h3 + ul{margin-top:0}
.cvt .lista ul{list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:9px}
.cvt .lista li{display:flex; align-items:baseline; gap:10px; font-size:16px; color:var(--tinta)}
.cvt .lista li .quem{font-weight:600; color:var(--mata)}
.cvt .lista li .fone{margin-left:auto; font-size:14px; color:var(--tinta-suave); white-space:nowrap}
.cvt .lista li .marcador{
  flex:none; width:7px; height:7px; border-radius:50%; background:var(--folha);
  transform:translateY(-2px);
}
.cvt .lista .criancas li .marcador{background:var(--rosa-fundo)}
.cvt.enviado .formulario{display:none}
.cvt footer{margin-top:32px; text-align:center}
.cvt footer p{margin:0; font-family:var(--serif); font-style:italic; font-size:20px; color:var(--mata)}
.cvt footer .fecho{margin-top:8px; font-family:var(--sans); font-style:normal; font-size:14px; letter-spacing:.14em; text-transform:uppercase; color:var(--mata)}
@media (prefers-reduced-motion:reduce){
.cvt, .cvt *{animation:none !important; transition:none !important}
}
@media (max-width:719px){
.cvt .jardim span{animation:none}
.cvt .borboleta{animation-duration:34s}
}
@media (min-width:720px) and (max-width:919px){
.cvt .envelope{max-width:680px}
.cvt .moldura{max-width:400px}
.cvt .contagem div{max-width:140px}
}
@media (min-width:920px){
.cvt .envelope{
    max-width:1080px; padding:0 36px calc(72px + env(safe-area-inset-bottom));
    display:grid; grid-template-columns:1.02fr 1fr; column-gap:56px; align-items:start;
  }
.cvt .portal{grid-column:1; grid-row:1 / span 3; padding-top:28px}
.cvt .cartao, .cvt footer{grid-column:2; min-width:0}
.cvt .cartao:first-of-type{margin-top:28px}
.cvt .moldura{max-width:384px}
.cvt h1{font-size:clamp(72px,6.4vw,94px)}
.cvt .contagem div{max-width:132px}
.cvt .cartao{padding:30px 28px}
.cvt footer{margin-top:28px}
}
@media (min-width:1180px){
.cvt .envelope{max-width:1180px; column-gap:72px}
}

/* --- ajustes de integração com o WordPress --- */
.cvt .selo{margin-left:auto; margin-right:auto}
.cvt .botao:active{transform:translateY(0)}
.cvt input[type=number]{appearance:textfield}
@media print{
  .cvt .jardim,.cvt .ceu,.cvt .formulario,.cvt .acoes{display:none}
  .cvt .cartao{box-shadow:none; border:1px solid #ccc}
}

/* ==========================================================================
   Casca da página em tela cheia
   Vale tanto para o modelo do plugin quanto para o do tema filho, então o
   convite fica certo mesmo em um tema que não seja o Astra Child Convite.
   ========================================================================== */
body.convite-tela-cheia{
  margin:0; padding:0;
  background:#FBF7F1;
  color:#37402F;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body.convite-tela-cheia .cvt{min-height:100vh; min-height:100dvh}
body.convite-tela-cheia.admin-bar .cvt{padding-top:40px}
@media (max-width:782px){
  body.convite-tela-cheia.admin-bar .cvt{padding-top:54px}
}
body.convite-tela-cheia ::selection{background:#F3C6D3; color:#3F5A38}

/* convite dentro de uma página comum do tema (sem o modelo de tela cheia) */
.entry-content > .cvt,
.entry-content > p > .cvt{
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  width:100vw;
  max-width:100vw;
}

/* ==========================================================================
   Contagem com quatro casas (dias, horas, min, seg)
   ========================================================================== */
.cvt .contagem{gap:8px}
.cvt .contagem div{max-width:none; padding:14px 4px}
.cvt .contagem b{font-size:clamp(24px,7.4vw,34px)}
.cvt .contagem span{font-size:11px; letter-spacing:.10em}

@media (max-width:359px){
  .cvt .contagem{gap:6px}
  .cvt .contagem div{padding:12px 2px; border-radius:14px}
  .cvt .contagem span{font-size:10px; letter-spacing:.06em}
}

@media (min-width:720px){
  .cvt .contagem{gap:10px}
  .cvt .contagem div{max-width:104px}
  .cvt .contagem b{font-size:34px}
  .cvt .contagem span{font-size:12px; letter-spacing:.12em}
}

/* moldura em arco: reserva de altura para navegadores sem aspect-ratio */
@supports not (aspect-ratio: 344/400){
  .cvt .moldura{height:0; padding-bottom:116.28%}
}

/* ==========================================================================
   Contador de convidados: sinais centralizados no botão
   ========================================================================== */
.cvt .contador{align-items:center}
.cvt .contador button{
  display:flex; align-items:center; justify-content:center;
  padding:0; line-height:1; font-size:22px;
  -webkit-appearance:none; appearance:none;
}
.cvt .contador button > *{display:block; line-height:1}

/* a foto já vem com margem própria, então o arco não corta a plaquinha */
.cvt .janela img{object-position:50% 50%}

/* ==========================================================================
   Nova confirmação no mesmo aparelho
   ========================================================================== */
.cvt .outra{
  margin-top:20px; padding-top:18px; text-align:center;
  border-top:1px dashed var(--borda);
}
.cvt .outra-apoio{margin:0 0 10px; font-size:15px; color:var(--tinta-suave)}
.cvt .outra-botao{
  display:inline-block; cursor:pointer;
  padding:11px 20px; border-radius:14px;
  border:1.5px solid var(--borda); background:transparent; color:var(--mata);
  font-family:var(--sans); font-size:16px; font-weight:600;
  touch-action:manipulation; -webkit-tap-highlight-color:transparent;
}
.cvt .outra-botao:hover{background:rgba(126,158,118,.10); border-color:var(--folha-clara)}
.cvt .outra-botao:focus-visible{outline:3px solid var(--azul-fundo); outline-offset:3px}

/* assinatura discreta no rodapé */
.cvt .cvt-credito{
  margin:18px 0 0; font-family:var(--sans); font-style:normal;
  font-size:12px; letter-spacing:.04em; color:var(--tinta-suave); opacity:.75;
}
.cvt .cvt-credito strong{font-weight:600}
.cvt .cvt-credito a{color:var(--mata); text-decoration:none; border-bottom:1px solid var(--borda)}
.cvt .cvt-credito a:hover{opacity:.8}

/* ==========================================================================
   Fundo que acompanha a rolagem
   O jardim e as borboletas eram fixos e animados: o texto passava por cima
   de manchas que se mexiam, o que cansava a leitura. Agora o fundo rola
   junto com a página e as borboletas ficam paradas.
   ========================================================================== */
.cvt .jardim,
.cvt .ceu{
  position:absolute;
  top:0; left:0; right:0; bottom:0;
  height:100%;
}
.cvt .jardim span{animation:none !important}
.cvt .borboleta{animation:none !important; opacity:.38}
