@import url('/fonts/fonts.css');
*{box-sizing:border-box;margin:0;padding:0}
:root{--serif:'Cormorant Garamond',Georgia,serif;--sans:'Outfit',-apple-system,sans-serif}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:300;line-height:1.7;-webkit-font-smoothing:antialiased;
  background:var(--bg);color:var(--ink);overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
.inv{max-width:680px;margin:0 auto;padding:0 26px}

/* HERO */
.ihero{min-height:92vh;min-height:92dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  position:relative;padding:80px 26px;overflow:hidden}
.ihero-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.ihero-bg::after{content:'';position:absolute;inset:0;background:var(--heroveil)}
.ihero-in{position:relative;z-index:1}
.ieyebrow{font-family:var(--serif);font-style:italic;color:var(--accent);font-size:clamp(15px,2.4vw,20px);margin-bottom:18px}
.inames{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(42px,9.4vw,92px);line-height:1.06;letter-spacing:.01em;text-wrap:balance}
.inames .amp{color:var(--accent);font-style:italic;display:inline;font-size:.55em;margin:0 .16em;vertical-align:.06em}
.idate{margin-top:24px;font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:var(--ink-dim)}
.iscroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:1;font-size:9px;letter-spacing:.4em;
  text-transform:uppercase;color:var(--ink-dim);writing-mode:vertical-rl}

/* SECTIONS */
.isec{padding:80px 0;text-align:center;border-top:1px solid var(--line)}
.ilabel{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--label,var(--accent));margin-bottom:18px}
.ititle{font-family:var(--serif);font-weight:400;font-size:clamp(28px,5vw,44px);line-height:1.15}
.itext{color:var(--ink-dim);font-size:16px;max-width:52ch;margin:16px auto 0;line-height:1.9}

/* COUNTDOWN */
.count{display:flex;justify-content:center;gap:clamp(18px,6vw,52px);margin-top:10px}
.count .u{display:flex;flex-direction:column;gap:8px}
.count .n{font-family:var(--serif);font-size:clamp(38px,9vw,72px);line-height:1;color:var(--accent);font-variant-numeric:tabular-nums;min-width:1.6ch}
.count .l{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim)}

/* DETAILS / AGENDA */
.details{display:flex;justify-content:center;gap:48px;flex-wrap:wrap;margin-top:8px}
.detail .k{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px}
.detail .v{font-family:var(--serif);font-size:22px}
.agenda{max-width:560px;margin:30px auto 0}
.ag{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center}
.ag+.ag{margin-top:30px}
.ag+.ag::before{content:'';display:block;width:26px;height:1px;background:var(--accent);opacity:.55;margin:0 auto 30px}
.ag .t{font-family:var(--sans);font-size:11px;letter-spacing:.32em;color:var(--label,var(--accent))}
.ag .b h4{font-family:var(--serif);font-weight:500;font-size:clamp(20px,3vw,24px);line-height:1.3}
.ag .b p{font-size:13.5px;color:var(--ink-dim);margin-top:2px}

/* BUTTONS */
.ibtn{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;border:1px solid var(--accent);color:var(--ink);padding:14px 28px;border-radius:2px;
  cursor:pointer;text-decoration:none;background:transparent;
  transition:background-color .2s ease,color .2s ease,transform .16s cubic-bezier(.23,1,.32,1)}
@media(hover:hover) and (pointer:fine){.ibtn:hover{background:var(--accent);color:var(--bg)}}
.ibtn:active{transform:scale(.97)}
.ibtn-fill{background:var(--accent);color:var(--bg)}

/* RSVP */
.rsvp{max-width:460px;margin:26px auto 0;text-align:left}
.rf{margin-bottom:16px}
.rf label{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:7px}
.rf input,.rf select,.rf textarea{width:100%;background:var(--field);border:1px solid var(--line);color:var(--ink);
  font-family:var(--sans);font-size:15px;padding:12px 14px;border-radius:3px}
.rf input:focus,.rf select:focus,.rf textarea:focus{outline:none;border-color:var(--accent)}
.imsg{border:1px solid var(--line);padding:14px 18px;border-radius:3px;margin-bottom:20px;text-align:center;
  font-size:14px;color:var(--ink-dim);background:color-mix(in srgb,var(--accent) 6%,transparent)}
.ifoot{padding:60px 26px;text-align:center;font-family:var(--serif);font-style:italic;color:var(--ink-dim);border-top:1px solid var(--line)}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

/* ============ TEMAS ============ */
/* Minimalista — forest/gold Fairytale (default) */
body.t-minimalista{--bg:#0E2218;--ink:#F5EFE6;--ink-dim:#CFC7B7;--accent:#C8A878;--line:rgba(200,168,120,.22);--field:#081410;--heroveil:linear-gradient(rgba(8,20,16,.55),rgba(8,20,16,.85))}
/* Eternidade — preto e branco cinemático */
body.t-eternidade{--bg:#0b0b0b;--ink:#f2f2f0;--ink-dim:#a9a9a6;--accent:#e8e2d6;--line:rgba(255,255,255,.16);--field:#141414;--heroveil:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.82))}
body.t-eternidade .inames .amp{color:#cfc7b7}
body.t-eternidade .ieyebrow{color:#c9c3b6}
/* Conte de Fées — editorial claro, luz natural */
body.t-conte_de_fees{--bg:#F4EEE3;--ink:#2c2620;--ink-dim:#6b6154;--accent:#a5824f;--label:#6b5326;--line:rgba(44,38,32,.14);--field:#fffdf8;--heroveil:linear-gradient(rgba(244,238,227,.35),rgba(244,238,227,.78))}
/* Tradicional — tons quentes, capulana/MZ */
body.t-tradicional{--bg:#3a1410;--ink:#f6e6cf;--ink-dim:#d7b48f;--accent:#e0a24a;--line:rgba(224,162,74,.28);--field:#2a0f0c;--heroveil:linear-gradient(rgba(58,20,16,.5),rgba(58,20,16,.85))}

/* ============ DIREÇÃO "MATÉRIA E LUZ" (herói) ============ */
.ihero-light{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(75% 60% at 50% 0%, var(--glow) 0%, transparent 55%)}
.ihero-grain{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:var(--grain,.45);mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E")}
.ihero-frame{position:absolute;inset:clamp(12px,2.4vw,26px);z-index:2;border:1px solid var(--frame);pointer-events:none}
.ihero-bot{position:absolute;z-index:2;stroke:var(--accent);fill:none;stroke-width:1.1;opacity:.55;width:clamp(64px,11vw,150px);height:auto;pointer-events:none}
.ihero-bot.tl{top:clamp(22px,3.8vw,46px);left:clamp(22px,3.8vw,46px)}
.ihero-bot.br{bottom:clamp(22px,3.8vw,46px);right:clamp(22px,3.8vw,46px);transform:rotate(180deg)}
/* personalidade por template */
body.t-minimalista{--glow:rgba(200,168,120,.13);--frame:rgba(245,239,230,.16);--grain:.3}
body.t-minimalista .ihero-bot{display:none} /* espaço negativo é a identidade */
body.t-eternidade{--glow:rgba(212,196,160,.16);--frame:rgba(242,242,240,.18);--grain:.5}
body.t-conte_de_fees{--glow:rgba(165,130,79,.14);--frame:rgba(44,38,32,.2);--grain:.22}
body.t-tradicional{--glow:rgba(224,162,74,.17);--frame:rgba(246,230,207,.2);--grain:.4}

/* Foco de teclado visível (auditoria A16) — igual ao tema WP. */
:focus-visible{outline:2px solid var(--gold,#C8A878);outline-offset:2px;border-radius:2px}
.btn:focus-visible,a:focus-visible{outline-offset:3px}

/* Tema The Sundays (mínimo) — a página "em breve" usava defaults brancos (auditoria A8). */
body.t-the_sundays{--bg:#0b0b0c;--ink:#f4efe4;--ink-dim:#c7cbcf;--accent:#cfc7b7}
/* Micro-texto com contraste confortável (auditoria M9). */
.iscroll{opacity:.92;font-size:11px}
.ieyebrow{opacity:.95}
/* Modo thumbnail (capturas da loja): sem chrome de UI (auditoria A2). */
.is-thumb .iscroll{display:none!important}

/* ============ DIREÇÕES DE ARTE v2 (aprovadas 31 Jul) ============ */

/* 1 · ETERNIDADE — tipografia monumental */
body.t-eternidade .ieyebrow{font-family:var(--sans);font-style:normal;font-size:10px;letter-spacing:.5em;text-transform:uppercase;color:#8b8b88}
body.t-eternidade .inames{font-style:normal;text-transform:uppercase;font-weight:300;
  font-size:clamp(54px,13.5vw,148px);line-height:.98;letter-spacing:.015em}
body.t-eternidade .inames [data-fy-n1],body.t-eternidade .inames [data-fy-n2]{display:block}
body.t-eternidade .inames .amp{display:block;font-size:.3em;text-transform:none;font-style:italic;margin:.14em 0;color:#9a948a}
body.t-eternidade .idate{margin-top:34px;letter-spacing:.42em;color:#cfcfcb}
body.t-eternidade .idate::before{content:'';display:block;width:38px;height:1px;background:rgba(255,255,255,.25);margin:0 auto 22px}
body.t-eternidade .ihero-bot{display:none}

/* 2 · CONTE DE FÉES — editorial sans, assimétrico */
body.t-conte_de_fees .ihero{align-items:flex-start;text-align:left}
body.t-conte_de_fees .ihero-in{width:100%;max-width:880px;margin:0 auto}
body.t-conte_de_fees .ieyebrow{font-family:var(--sans);font-style:normal;font-size:10px;letter-spacing:.34em;text-transform:uppercase}
body.t-conte_de_fees .inames{font-family:var(--sans);font-style:normal;font-weight:200;
  font-size:clamp(46px,10vw,108px);line-height:1.04;letter-spacing:-.01em}
body.t-conte_de_fees .inames [data-fy-n1]{display:block}
body.t-conte_de_fees .inames .amp{font-family:var(--serif);font-style:italic;font-size:.42em;color:var(--accent);margin:0 .18em 0 0;vertical-align:.14em}
body.t-conte_de_fees .inames [data-fy-n2]{font-weight:400}
body.t-conte_de_fees .idate{text-align:left;border-top:1px solid var(--line);padding-top:16px;margin-top:44px;letter-spacing:.24em}
body.t-conte_de_fees .ihero-bot{display:none}
body.t-conte_de_fees .ihero-frame{display:none}
body.t-conte_de_fees .iscroll{left:auto;right:28px;transform:none}

/* 3 · TRADICIONAL — capulana verdadeira */
body.t-tradicional{--bg:#2E1410;--accent:#E0A83E;--line:rgba(224,168,62,.28);--heroveil:linear-gradient(rgba(46,20,16,.5),rgba(46,20,16,.85))}
body.t-tradicional .ihero::before,body.t-tradicional .ihero::after{content:'';position:absolute;left:0;right:0;z-index:2;
  height:clamp(32px,6.5vh,58px);pointer-events:none;
  background:repeating-linear-gradient(45deg,#E0A83E 0 8px,#2E1410 8px 16px,#B4532A 16px 24px,#2E1410 24px 32px)}
body.t-tradicional .ihero::before{top:0;border-bottom:2px solid #E0A83E}
body.t-tradicional .ihero::after{bottom:0;border-top:2px solid #E0A83E}
body.t-tradicional .inames{font-style:normal;font-weight:500}
body.t-tradicional .inames .amp{color:#E0A83E}
body.t-tradicional .idate::after{content:'';display:block;width:15px;height:15px;margin:28px auto 0;
  background:#B4532A;border:1px solid #E0A83E;transform:rotate(45deg)}
body.t-tradicional .ihero-bot{display:none}
body.t-tradicional .ihero-frame{display:none}
body.t-tradicional .iscroll{bottom:calc(clamp(32px,6.5vh,58px) + 14px)}

/* 4 · MINIMALISTA — espaço negativo em claro */
body.t-minimalista{--bg:#F2EDE3;--ink:#20301F;--ink-dim:#6f6c5f;--accent:#A8834B;--label:#6a5220;--line:rgba(32,48,31,.16);
  --field:#fffdf8;--heroveil:linear-gradient(rgba(242,237,227,.4),rgba(242,237,227,.82));
  --glow:rgba(168,131,75,.12);--frame:rgba(32,48,31,.14);--grain:.14}
body.t-minimalista .ieyebrow{font-family:var(--sans);font-style:normal;font-size:9.5px;letter-spacing:.42em;text-transform:uppercase;color:#8a8677}
body.t-minimalista .inames{font-style:normal;font-weight:400;text-transform:uppercase;
  font-size:clamp(24px,4.8vw,46px);letter-spacing:.14em;line-height:1.7}
body.t-minimalista .inames [data-fy-n1],body.t-minimalista .inames [data-fy-n2]{display:block}
body.t-minimalista .inames .amp{display:block;text-transform:none;font-style:italic;font-size:.72em;color:var(--accent);margin:.1em 0}
body.t-minimalista .idate{letter-spacing:.5em;color:#7d7a6d}
body.t-minimalista .idate::before{content:'';display:block;width:1px;height:56px;background:var(--accent);margin:0 auto 26px}

/* RSVP como convite de verdade: sem formulário, só a confirmação. */
.rsvp-card{text-align:center}
.rsvp-addressee{font-family:var(--serif);font-style:italic;font-size:clamp(22px,3.6vw,30px);margin-bottom:6px}
.rsvp-choice{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.rsvp-thanks{font-family:var(--serif);font-style:italic;font-size:clamp(19px,3vw,25px);margin-bottom:18px;color:var(--accent)}
.rsvp-msgform{max-width:420px;margin:0 auto;text-align:left}
.rsvp-msglabel{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px}
.rsvp-msglabel span{text-transform:none;letter-spacing:0}
.rsvp-msgform textarea{width:100%;background:var(--field);border:1px solid var(--line);color:var(--ink);
  font-family:var(--sans);font-size:15px;padding:12px 14px;border-radius:3px;margin-bottom:12px}
.rsvp-msgform textarea:focus{outline:none;border-color:var(--accent)}

/* Temas CLAROS com FOTO: véu escuro subtil + texto claro (a foto mostra-se
   nas cores verdadeiras em vez de lavada pelo véu creme). */
body.t-conte_de_fees .ihero:has(.ihero-bg){--heroveil:linear-gradient(rgba(24,18,12,.18),rgba(24,18,12,.6))}
body.t-conte_de_fees .ihero:has(.ihero-bg) .inames,
body.t-conte_de_fees .ihero:has(.ihero-bg) .ieyebrow{color:#F8F3E9}
body.t-conte_de_fees .ihero:has(.ihero-bg) .inames .amp{color:#E4C89A}
body.t-conte_de_fees .ihero:has(.ihero-bg) .idate{color:#EFE7D8;border-top-color:rgba(248,243,233,.35)}
body.t-conte_de_fees .ihero:has(.ihero-bg) .iscroll{color:#EFE7D8}
body.t-minimalista .ihero:has(.ihero-bg){--heroveil:linear-gradient(rgba(20,26,18,.22),rgba(20,26,18,.62))}
body.t-minimalista .ihero:has(.ihero-bg) .inames,
body.t-minimalista .ihero:has(.ihero-bg) .ieyebrow{color:#F5EFE6}
body.t-minimalista .ihero:has(.ihero-bg) .idate{color:#E8E1D2}

/* Pais dos noivos em destaque clássico + local do venue no herói. */
.iparents{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-dim);
  max-width:56ch;margin:0 auto 22px;line-height:2}
.iparents::after{content:'';display:block;width:34px;height:1px;background:var(--accent);opacity:.6;margin:16px auto 0}
.ivenue{margin-top:12px;font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-dim)}
body.t-conte_de_fees .iparents{margin-left:0;text-align:left}
body.t-conte_de_fees .iparents::after{margin-left:0}
body.t-conte_de_fees .ivenue{text-align:left}
body.t-conte_de_fees .ihero:has(.ihero-bg) .iparents,
body.t-conte_de_fees .ihero:has(.ihero-bg) .ivenue{color:#EFE7D8}
body.t-minimalista .ihero:has(.ihero-bg) .iparents,
body.t-minimalista .ihero:has(.ihero-bg) .ivenue{color:#E8E1D2}

/* Convite formal: liturgia clássica (distinta do teaser Save the Date). */
.iformal .iverse{font-family:var(--serif);font-style:italic;font-size:clamp(15px,2.2vw,19px);
  color:var(--ink-dim);max-width:52ch;margin:0 auto 26px;line-height:1.9;white-space:pre-line}
.iformal .igrace{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);
  line-height:2.1;margin-bottom:14px}
.iformal .iparents-formal{font-family:var(--serif);font-size:clamp(17px,2.6vw,23px);line-height:1.7;
  color:var(--ink);margin-bottom:30px}
.iformal .iparents-formal::after{content:'';display:block;width:34px;height:1px;background:var(--accent);opacity:.6;margin:22px auto 0}
.iformal .inames{font-size:clamp(34px,7vw,64px)}
.iformal .ihonor{margin-top:22px;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-dim)}
.iformal .iguest{font-family:var(--serif);font-style:italic;font-size:clamp(22px,3.6vw,30px);
  color:var(--accent);margin:12px auto;min-height:1.4em}
.iformal .iguest.is-blank{border-bottom:1px solid var(--line);max-width:260px}
.iformal .idate{margin-top:26px}
body.t-conte_de_fees .ihero-in.iformal{text-align:center;max-width:none}

/* Liturgia do convite em SECÇÃO DE PAPEL (fora da foto): leitura perfeita. */
.iformal-sec{text-align:center}
.iformal .iparents-formal .fam{display:block}
.iformal .iparents-formal .fam+.fam{margin-top:7px}
.iformal-sec .iverse{margin:0 auto 38px}
.iformal-sec .iguest{margin-top:14px}
body.t-conte_de_fees .iformal-sec{max-width:none}

/* Entrada subtil do convite: os nomes e a data assentam uma única vez. */
@media(prefers-reduced-motion:no-preference){
  .ihero-in .inames{animation:fy-settle .9s cubic-bezier(.16,1,.3,1) both}
  .ihero-in .idate{animation:fy-settle .9s cubic-bezier(.16,1,.3,1) .18s both}
  @keyframes fy-settle{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
}
