/* Convite · estrutura comum (cada tema define as cores e as fontes) */
:root{--cv-bg:#faf3e8;--cv-ink:#4a3f35;--cv-mute:#8a7762;--cv-accent:#a37545;--cv-accent2:#d2ae7c;--cv-card:#fff;--cv-linha:#ebddc7;--cv-fh:Georgia,serif;--cv-fb:system-ui,sans-serif;--cv-rad:22px;--cv-btn-ink:#fff;--sy:0}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body.cv-body{margin:0;min-height:100vh;min-height:100dvh;background:var(--cv-bg);color:var(--cv-ink);font:400 1rem/1.65 var(--cv-fb);overflow-x:clip}
.cv-body[data-preview="0"]:not(.cv-aberto){overflow:hidden;height:100vh;height:100dvh}
img,svg{max-width:100%}
.cv-fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.cv-conf{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:200}
.cv{position:relative;z-index:2}
.ico{width:28px;height:28px;flex:none}
.cv-sec{position:relative;max-width:780px;margin:0 auto;padding:56px 22px;text-align:center}
.cv-h2{font:500 clamp(1.7rem,6vw,2.4rem)/1.2 var(--cv-fh);color:var(--cv-accent);margin:0 0 18px}
/* revelar ao descer */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.vis{opacity:1;transform:none}
/* contagem */
.cv-contagem{display:flex;justify-content:center;gap:clamp(8px,3vw,18px);margin:6px auto 0}
.cv-cd{min-width:clamp(62px,19vw,92px);padding:14px 6px 10px;border-radius:calc(var(--cv-rad) - 6px);background:var(--cv-card);border:1px solid var(--cv-linha);box-shadow:0 10px 30px rgba(0,0,0,.07)}
.cv-cd b{display:block;font:600 clamp(1.6rem,7vw,2.3rem)/1 var(--cv-fh);color:var(--cv-accent);font-variant-numeric:tabular-nums}
.cv-cd small{display:block;margin-top:6px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cv-mute)}
.cv-cd-fim{font:500 1.5rem var(--cv-fh);color:var(--cv-accent)}
/* mensagem */
.cv-msg{margin:0 auto;max-width:560px;padding:0 6px;font:italic 400 clamp(1.15rem,4.4vw,1.5rem)/1.6 var(--cv-fh);color:var(--cv-ink)}
/* cartões */
.cv-cartoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;text-align:center}
.cv-cartao{padding:26px 20px;border-radius:var(--cv-rad);background:var(--cv-card);border:1px solid var(--cv-linha);box-shadow:0 14px 40px rgba(0,0,0,.07);color:var(--cv-ink)}
.cv-cartao .ico{color:var(--cv-accent);margin-bottom:6px}
.cv-cartao h3{margin:0 0 6px;font:500 .78rem var(--cv-fb);letter-spacing:.2em;text-transform:uppercase;color:var(--cv-mute)}
.cv-cartao p{margin:2px 0;font-size:1rem}.cv-cartao strong{font:600 1.12rem/1.35 var(--cv-fh)}
.cv-link{display:inline-block;margin-top:12px;padding:8px 16px;border-radius:99px;border:1px solid var(--cv-accent);color:var(--cv-accent);text-decoration:none;font-size:.82rem;font-weight:600;letter-spacing:.04em;transition:.25s}
.cv-link:hover{background:var(--cv-accent);color:var(--cv-btn-ink)}
/* RSVP */
.cv-rsvp-prazo{margin:-6px 0 18px;color:var(--cv-mute);font-size:.92rem}
.cv-form{max-width:460px;margin:0 auto;text-align:left;padding:24px;border-radius:var(--cv-rad);background:var(--cv-card);border:1px solid var(--cv-linha);box-shadow:0 14px 40px rgba(0,0,0,.08)}
.cv-escolha{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.cv-escolha label{cursor:pointer}.cv-escolha input{position:absolute;opacity:0;pointer-events:none}
.cv-escolha span{display:block;text-align:center;padding:13px 8px;border-radius:14px;border:1.5px solid var(--cv-linha);font-weight:600;font-size:.94rem;transition:.2s}
.cv-escolha input:checked+span{border-color:var(--cv-accent);background:var(--cv-accent);color:var(--cv-btn-ink);box-shadow:0 8px 20px rgba(0,0,0,.15)}
.cv-escolha input:focus-visible+span{outline:2px solid var(--cv-accent);outline-offset:2px}
.cv-campo{display:block;margin-bottom:14px}
.cv-campo>span{display:block;font-size:.78rem;font-weight:600;letter-spacing:.06em;color:var(--cv-mute);margin-bottom:5px}
.cv-campo input,.cv-campo select,.cv-campo textarea{width:100%;font:inherit;color:var(--cv-ink);background:transparent;border:1.5px solid var(--cv-linha);border-radius:12px;padding:11px 13px;outline:none;transition:border-color .2s,box-shadow .2s}
.cv-campo input:focus,.cv-campo select:focus,.cv-campo textarea:focus{border-color:var(--cv-accent);box-shadow:0 0 0 3px rgba(163,117,69,.18)}
.cv-form.nao-vou .cv-quem{display:none}
.cv-quem{margin-bottom:14px}.cv-quem-tit{margin:0 0 8px;font-size:.78rem;font-weight:600;letter-spacing:.06em;color:var(--cv-mute)}.cv-quem-tit small{font-weight:400;letter-spacing:0}
.cv-linha-p{display:grid;grid-template-columns:1fr 84px 34px;gap:8px;margin-bottom:8px}
.cv-linha-p:first-child{grid-template-columns:1fr 84px}
.cv-linha-p input{width:100%;font:inherit;color:var(--cv-ink);background:transparent;border:1.5px solid var(--cv-linha);border-radius:12px;padding:10px 12px;outline:none;min-width:0}
.cv-linha-p input:focus{border-color:var(--cv-accent);box-shadow:0 0 0 3px rgba(163,117,69,.18)}
.cv-rem{border:1.5px solid var(--cv-linha);background:transparent;color:var(--cv-mute);border-radius:12px;cursor:pointer;font-size:1.1rem;line-height:1}
.cv-rem:hover{border-color:#c0503f;color:#c0503f}
.cv-add{border:1.5px dashed var(--cv-accent);background:transparent;color:var(--cv-accent);font:600 .84rem var(--cv-fb);padding:9px 16px;border-radius:99px;cursor:pointer;transition:.2s}
.cv-add:hover:not(:disabled){background:var(--cv-accent);color:var(--cv-btn-ink)}.cv-add:disabled{opacity:.5;cursor:not-allowed}
.cv-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cv-btn{display:block;width:100%;border:0;cursor:pointer;font:600 .95rem var(--cv-fb);letter-spacing:.06em;padding:15px 20px;border-radius:99px;background:var(--cv-accent);color:var(--cv-btn-ink);transition:transform .2s,box-shadow .2s,opacity .2s;box-shadow:0 12px 28px rgba(0,0,0,.18)}
.cv-btn:hover:not(:disabled){transform:translateY(-2px)}.cv-btn:disabled{opacity:.6;cursor:not-allowed}
.cv-form-msg{min-height:1.4em;margin:12px 0 0;text-align:center;font-size:.9rem;color:var(--cv-mute)}.cv-form-msg.erro{color:#b3402f}
.cv-obrigado{text-align:center;padding:18px 6px}.cv-obrigado h3{margin:0 0 6px;font:500 1.6rem var(--cv-fh);color:var(--cv-accent)}.cv-obrigado p{margin:0;color:var(--cv-mute)}
.cv-rsvp-tel{margin:18px 0 0;color:var(--cv-mute);font-size:.9rem}.cv-rsvp-tel a{color:var(--cv-accent);font-weight:600}
.cv-rodape{position:relative;z-index:2;text-align:center;padding:34px 20px 44px;font-size:.78rem;letter-spacing:.08em;color:var(--cv-mute)}
.cv-rodape a{color:inherit;text-decoration:none}
.cv-rodape strong{color:var(--cv-accent);font-weight:600}
/* introdução (cada tema desenha a sua) */
.cv-intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;transition:opacity .9s ease .1s,visibility 0s linear 1.1s}
.cv-aberto .cv-intro,.cv-body[data-preview="1"] .cv-intro{opacity:0;visibility:hidden;pointer-events:none}
.cv-body[data-preview="1"] .cv-intro{display:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}}
