/* assets/css/convite.css */
/*
 * OlaConvite - pagina do convite (visao do convidado).
 * Um unico arquivo para todos os temas. O tema vem de <body data-theme="classic|romantic|modern|floral">.
 * Todas as classes usam o prefixo cv- (nao colide com as classes oc- do site).
 *
 * Indice
 *  1. Fontes
 *  2. Tokens (padrao = classic) e tokens por tema
 *  3. Base e utilitarios
 *  4. Botoes, icones, ornamentos
 *  5. Capa
 *  6. Secoes (estrutura comum)
 *  7. Contagem regressiva
 *  8. Detalhes
 *  9. Mensagem
 * 10. Galeria
 * 11. Confirmar presenca (RSVP) e formulario
 * 12. Lista de presentes
 * 13. Encerramento
 * 14. Botao de musica
 * 15. Movimento
 * 16. Ajustes por tema: classic
 * 17. Ajustes por tema: romantic
 * 18. Ajustes por tema: modern
 * 19. Ajustes por tema: floral
 */

/* ------------------------------------------------------------------ */
/* 1. Fontes (woff2 locais, subconjunto latin; cobre todo o portugues) */
/* ------------------------------------------------------------------ */
@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("../fonts/cormorant-garamond-latin-wght-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond";
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: url("../fonts/cormorant-garamond-latin-wght-italic.woff2") format("woff2");
}
@font-face {
  font-family: "Great Vibes";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/great-vibes-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Bricolage Grotesque";
  font-style: normal;
  font-weight: 200 800;
  font-stretch: 75% 100%;
  font-display: swap;
  src: url("../fonts/bricolage-grotesque-latin-wdth-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/fraunces-latin-wght-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Fraunces";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/fraunces-latin-wght-italic.woff2") format("woff2");
}
@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url("../fonts/figtree-latin-wght-normal.woff2") format("woff2");
}

/* ------------------------------------------------------------------ */
/* 2. Tokens                                                           */
/* ------------------------------------------------------------------ */
body {
  /* cores (classic) */
  --cv-bg: #f6f1e6;
  --cv-bg-alt: #ede5d2;
  --cv-surface: #fcfaf4;
  --cv-ink: #1c2231;
  --cv-ink-soft: #4a4f5e;
  --cv-accent: #76581f;
  --cv-deco: #b0904e;
  --cv-line: rgba(28, 34, 49, .2);
  --cv-btn-bg: #1c2231;
  --cv-btn-ink: #f6f1e6;
  --cv-btn-hover: #2f3850;
  --cv-field-bg: #fcfaf4;
  --cv-field-line: #857f6e;
  --cv-sel-bg: #f1e8d2;
  --cv-focus: #76581f;
  --cv-shadow: none;

  /* cores da faixa invertida (encerramento, capa com foto) */
  --cv-inv-bg: #1c2231;
  --cv-inv-surface: #262d40;
  --cv-inv-ink: #f3ecdd;
  --cv-inv-soft: #cdc8bb;
  --cv-inv-accent: #dcc48f;
  --cv-inv-deco: #b0904e;
  --cv-inv-line: rgba(243, 236, 221, .28);
  --cv-inv-btn-bg: #f3ecdd;
  --cv-inv-btn-ink: #1c2231;
  --cv-inv-btn-hover: #ffffff;
  --cv-inv-field-bg: rgba(255, 255, 255, .06);
  --cv-inv-field-line: rgba(243, 236, 221, .62);
  --cv-inv-sel-bg: rgba(243, 236, 221, .12);
  --cv-inv-focus: #dcc48f;
  --cv-scrim: linear-gradient(rgba(20, 24, 36, .58), rgba(20, 24, 36, .74));

  /* tipografia */
  --cv-font-title: "Cormorant Garamond", "Times New Roman", serif;
  --cv-font-head: "Cormorant Garamond", "Times New Roman", serif;
  --cv-font-num: "Cormorant Garamond", "Times New Roman", serif;
  --cv-font-body: "Cormorant Garamond", "Times New Roman", serif;
  --cv-fw-title: 500;
  --cv-fw-head: 500;
  --cv-fw-num: 500;
  --cv-fw-body: 500;
  --cv-fw-strong: 700;
  --cv-fs-body: 1.25rem;
  --cv-fs-small: 1.0625rem;
  --cv-lh-body: 1.5;
  --cv-title-size: clamp(3.25rem, min(17.5vw, 12.5vh), 7rem);
  --cv-title-lh: .98;
  --cv-title-ls: 0;
  --cv-h2-size: clamp(2.125rem, 7vw, 3rem);
  --cv-h2-lh: 1.1;
  --cv-h2-ls: 0;
  --cv-h3-size: 1.5rem;
  --cv-quote-size: clamp(1.5rem, 5.4vw, 2rem);
  --cv-quote-style: italic;
  --cv-quote-weight: 500;

  /* rotulos pequenos (tipo do evento, legendas, unidades da contagem) */
  --cv-label-font: var(--cv-font-body);
  --cv-label-size: .875rem;
  --cv-label-weight: 600;
  --cv-label-ls: .22em;
  --cv-label-case: uppercase;
  --cv-label-style: normal;

  /* botoes */
  --cv-btn-font: var(--cv-font-body);
  --cv-btn-size: .875rem;
  --cv-btn-weight: 600;
  --cv-btn-ls: .14em;
  --cv-btn-case: uppercase;

  /* forma */
  --cv-bw: 1px;
  --cv-radius: 0px;
  --cv-radius-btn: 0px;
  --cv-radius-field: 0px;
  --cv-radius-img: 0px;

  /* layout */
  --cv-pad-x: 24px;
  --cv-sec-y: clamp(64px, 11vw, 112px);
  --cv-measure: 34rem;
  --cv-wide: 60rem;
  --cv-align: center;
  --cv-band: 0;
}

body[data-theme="romantic"] {
  --cv-bg: #fbf2ef;
  --cv-bg-alt: #f6e2de;
  --cv-surface: #fffbf9;
  --cv-ink: #43282f;
  --cv-ink-soft: #6a4a52;
  --cv-accent: #964458;
  --cv-deco: #cf96a0;
  --cv-line: rgba(150, 68, 88, .26);
  --cv-btn-bg: #8c4257;
  --cv-btn-ink: #fffaf8;
  --cv-btn-hover: #773449;
  --cv-field-bg: #ffffff;
  --cv-field-line: #a36f7b;
  --cv-sel-bg: #f9e7e3;
  --cv-focus: #8c4257;
  --cv-shadow: 0 18px 50px -24px rgba(122, 52, 73, .45);

  --cv-inv-bg: #6a2e42;
  --cv-inv-surface: #7a3a4f;
  --cv-inv-ink: #fdf0ec;
  --cv-inv-soft: #efcfd0;
  --cv-inv-accent: #f8dcd6;
  --cv-inv-deco: #d9a3ab;
  --cv-inv-line: rgba(253, 240, 236, .34);
  --cv-inv-btn-bg: #fdf0ec;
  --cv-inv-btn-ink: #6a2e42;
  --cv-inv-btn-hover: #ffffff;
  --cv-inv-field-line: rgba(253, 240, 236, .66);
  --cv-inv-sel-bg: rgba(253, 240, 236, .14);
  --cv-inv-focus: #f8dcd6;
  --cv-scrim: linear-gradient(rgba(74, 30, 46, .5), rgba(62, 24, 38, .72));

  --cv-font-title: "Great Vibes", "Cormorant Garamond", cursive;
  --cv-font-head: "Great Vibes", "Cormorant Garamond", cursive;
  --cv-fw-title: 400;
  --cv-fw-head: 400;
  --cv-title-size: clamp(3.5rem, 18.5vw, 7.5rem);
  --cv-title-lh: 1.02;
  --cv-h2-size: clamp(2.75rem, 10.5vw, 3.75rem);
  --cv-h2-lh: 1.1;

  --cv-label-size: 1.1875rem;
  --cv-label-weight: 500;
  --cv-label-ls: .01em;
  --cv-label-case: none;
  --cv-label-style: italic;

  --cv-btn-size: 1.1875rem;
  --cv-btn-weight: 600;
  --cv-btn-ls: .02em;
  --cv-btn-case: none;

  --cv-radius: 28px;
  --cv-radius-btn: 999px;
  --cv-radius-field: 16px;
  --cv-radius-img: 20px;
}

body[data-theme="modern"] {
  --cv-pop: #ffd60a;
  --cv-pop-ink: #0d0d0f;

  --cv-bg: #ffffff;
  --cv-bg-alt: #f1f1ed;
  --cv-surface: #ffffff;
  --cv-ink: #0d0d0f;
  --cv-ink-soft: #4b4b52;
  --cv-accent: #0d0d0f;
  --cv-deco: #0d0d0f;
  --cv-line: #0d0d0f;
  --cv-btn-bg: #0d0d0f;
  --cv-btn-ink: #ffffff;
  --cv-btn-hover: #33333a;
  --cv-field-bg: #ffffff;
  --cv-field-line: #0d0d0f;
  --cv-sel-bg: #ffd60a;
  --cv-focus: #0d0d0f;

  --cv-inv-bg: #0d0d0f;
  --cv-inv-surface: #0d0d0f;
  --cv-inv-ink: #ffffff;
  --cv-inv-soft: #bcbcc4;
  --cv-inv-accent: #ffd60a;
  --cv-inv-deco: #ffd60a;
  --cv-inv-line: rgba(255, 255, 255, .34);
  --cv-inv-btn-bg: #ffd60a;
  --cv-inv-btn-ink: #0d0d0f;
  --cv-inv-btn-hover: #ffe45c;
  --cv-inv-field-bg: #0d0d0f;
  --cv-inv-field-line: rgba(255, 255, 255, .62);
  --cv-inv-sel-bg: #ffd60a;
  --cv-inv-focus: #ffd60a;
  --cv-scrim: linear-gradient(rgba(13, 13, 15, .42), rgba(13, 13, 15, .86) 62%);

  --cv-font-title: "Bricolage Grotesque", "Arial Narrow", Arial, sans-serif;
  --cv-font-head: "Bricolage Grotesque", "Arial Narrow", Arial, sans-serif;
  --cv-font-num: "Bricolage Grotesque", Arial, sans-serif;
  --cv-font-body: "Bricolage Grotesque", Arial, sans-serif;
  --cv-fw-title: 800;
  --cv-fw-head: 800;
  --cv-fw-num: 700;
  --cv-fw-body: 400;
  --cv-fs-body: 1.0625rem;
  --cv-fs-small: .9375rem;
  --cv-lh-body: 1.5;
  --cv-title-size: clamp(3.75rem, min(20.5vw, 27vh), 12.5rem);
  --cv-title-lh: .86;
  --cv-title-ls: -.015em;
  --cv-h2-size: clamp(2.75rem, 11vw, 4.5rem);
  --cv-h2-lh: .92;
  --cv-h2-ls: -.01em;
  --cv-h3-size: 1.375rem;
  --cv-quote-size: clamp(1.75rem, 6.6vw, 2.75rem);
  --cv-quote-style: normal;
  --cv-quote-weight: 800;

  --cv-label-size: .9375rem;
  --cv-label-weight: 700;
  --cv-label-ls: 0;
  --cv-label-case: none;

  --cv-btn-size: 1.0625rem;
  --cv-btn-weight: 700;
  --cv-btn-ls: 0;
  --cv-btn-case: none;

  --cv-bw: 2px;
  --cv-pad-x: 20px;
  --cv-measure: 40rem;
  --cv-wide: 72rem;
  --cv-align: left;
}

body[data-theme="floral"] {
  --cv-leaf-1: #a3b48f;
  --cv-leaf-2: #74895e;
  --cv-leaf-3: #4f6443;
  --cv-berry: #c9a368;

  --cv-bg: #f4f1e4;
  --cv-bg-alt: #e3e8d4;
  --cv-surface: #fbfaf2;
  --cv-ink: #2c3828;
  --cv-ink-soft: #535e4b;
  --cv-accent: #48603e;
  --cv-deco: #8fa37a;
  --cv-line: rgba(72, 96, 62, .3);
  --cv-btn-bg: #3b5133;
  --cv-btn-ink: #f8f5ea;
  --cv-btn-hover: #2e4128;
  --cv-field-bg: #fdfcf6;
  --cv-field-line: #74846a;
  --cv-sel-bg: #e3e8d4;
  --cv-focus: #3b5133;
  --cv-shadow: 0 18px 44px -26px rgba(44, 56, 40, .5);

  --cv-inv-bg: #2f3f2b;
  --cv-inv-surface: #3a4c35;
  --cv-inv-ink: #f4f1e4;
  --cv-inv-soft: #d2d9c4;
  --cv-inv-accent: #dfe7cc;
  --cv-inv-deco: #9fb28a;
  --cv-inv-line: rgba(244, 241, 228, .3);
  --cv-inv-btn-bg: #f4f1e4;
  --cv-inv-btn-ink: #2f3f2b;
  --cv-inv-btn-hover: #ffffff;
  --cv-inv-field-line: rgba(244, 241, 228, .64);
  --cv-inv-sel-bg: rgba(244, 241, 228, .14);
  --cv-inv-focus: #dfe7cc;
  --cv-scrim: linear-gradient(rgba(30, 42, 27, .5), rgba(30, 42, 27, .76));

  --cv-font-title: "Fraunces", Georgia, serif;
  --cv-font-head: "Fraunces", Georgia, serif;
  --cv-font-num: "Fraunces", Georgia, serif;
  --cv-font-body: "Figtree", "Segoe UI", Arial, sans-serif;
  --cv-fw-title: 400;
  --cv-fw-head: 400;
  --cv-fw-num: 400;
  --cv-fw-body: 400;
  --cv-fs-body: 1.0625rem;
  --cv-fs-small: .9375rem;
  --cv-lh-body: 1.6;
  --cv-title-size: clamp(2.75rem, 12.6vw, 5.75rem);
  --cv-title-lh: 1.04;
  --cv-title-ls: -.015em;
  --cv-h2-size: clamp(2rem, 7.4vw, 2.875rem);
  --cv-h2-lh: 1.12;
  --cv-h2-ls: -.01em;
  --cv-h3-size: 1.3125rem;
  --cv-quote-size: clamp(1.4375rem, 5.4vw, 1.875rem);
  --cv-quote-style: italic;
  --cv-quote-weight: 300;

  --cv-label-font: "Fraunces", Georgia, serif;
  --cv-label-size: 1.0625rem;
  --cv-label-weight: 400;
  --cv-label-ls: 0;
  --cv-label-case: none;
  --cv-label-style: italic;

  --cv-btn-size: 1rem;
  --cv-btn-weight: 600;
  --cv-btn-ls: .01em;
  --cv-btn-case: none;

  --cv-radius: 22px;
  --cv-radius-btn: 14px;
  --cv-radius-field: 12px;
  --cv-radius-img: 6px;
}

/* Faixa invertida: remapeia os tokens de cor para a versao clara-sobre-escuro. */
.cv-closing,
.cv-cover.has-photo,
body[data-theme="modern"] .cv-cover,
body[data-theme="modern"] .cv-rsvp {
  --cv-bg: var(--cv-inv-bg);
  --cv-surface: var(--cv-inv-surface);
  --cv-ink: var(--cv-inv-ink);
  --cv-ink-soft: var(--cv-inv-soft);
  --cv-accent: var(--cv-inv-accent);
  --cv-deco: var(--cv-inv-deco);
  --cv-line: var(--cv-inv-line);
  --cv-btn-bg: var(--cv-inv-btn-bg);
  --cv-btn-ink: var(--cv-inv-btn-ink);
  --cv-btn-hover: var(--cv-inv-btn-hover);
  --cv-field-bg: var(--cv-inv-field-bg);
  --cv-field-line: var(--cv-inv-field-line);
  --cv-sel-bg: var(--cv-inv-sel-bg);
  --cv-focus: var(--cv-inv-focus);
  --cv-shadow: none;
}

/* ------------------------------------------------------------------ */
/* 3. Base e utilitarios                                               */
/* ------------------------------------------------------------------ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

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

body {
  margin: 0;
  background: var(--cv-bg);
  color: var(--cv-ink);
  font-family: var(--cv-font-body);
  font-size: var(--cv-fs-body);
  font-weight: var(--cv-fw-body);
  line-height: var(--cv-lh-body);
  font-variant-numeric: lining-nums;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

.cv {
  display: block;
  overflow-wrap: break-word;
}

/* resets com especificidade zero (:where), para nunca vencerem as classes cv-* */
:where(.cv) img,
:where(.cv) svg {
  max-width: 100%;
}

:where(.cv) p,
:where(.cv) h1,
:where(.cv) h2,
:where(.cv) h3,
:where(.cv) dl,
:where(.cv) dd,
:where(.cv) figure,
:where(.cv) blockquote {
  margin: 0;
}

:where(.cv) a {
  color: inherit;
}

:where(.cv) strong {
  font-weight: var(--cv-fw-strong);
}

.cv [hidden],
.cv-music[hidden] {
  display: none !important;
}

:where(.cv) :focus-visible,
.cv-music:focus-visible {
  outline: 2px solid var(--cv-focus);
  outline-offset: 3px;
}

.cv-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.cv-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

/* rotulo pequeno, com a voz de cada tema */
.cv-label,
.cv-cover__type,
.cv-countdown__lbl,
.cv-detail__label,
.cv-closing__lead {
  font-family: var(--cv-label-font);
  font-size: var(--cv-label-size);
  font-weight: var(--cv-label-weight);
  font-style: var(--cv-label-style);
  letter-spacing: var(--cv-label-ls);
  text-transform: var(--cv-label-case);
  line-height: 1.3;
}

/* ------------------------------------------------------------------ */
/* 4. Botoes, icones, ornamentos                                       */
/* ------------------------------------------------------------------ */
.cv-icon {
  display: block;
  flex: none;
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 54px;
  padding: 12px 26px;
  border: var(--cv-bw) solid var(--cv-btn-bg);
  border-radius: var(--cv-radius-btn);
  background: var(--cv-btn-bg);
  color: var(--cv-btn-ink);
  font-family: var(--cv-btn-font, var(--cv-font-body));
  font-size: var(--cv-btn-size);
  font-weight: var(--cv-btn-weight);
  letter-spacing: var(--cv-btn-ls);
  text-transform: var(--cv-btn-case);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.cv-btn:hover {
  background: var(--cv-btn-hover);
  border-color: var(--cv-btn-hover);
}

.cv-btn:active {
  transform: translateY(1px);
}

.cv-btn .cv-icon {
  width: 20px;
  height: 20px;
}

.cv-btn--ghost {
  background: transparent;
  color: var(--cv-ink);
  border-color: var(--cv-ink);
}

.cv-btn--ghost:hover {
  background: var(--cv-btn-bg);
  border-color: var(--cv-btn-bg);
  color: var(--cv-btn-ink);
}

.cv-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  color: var(--cv-accent);
  font-weight: var(--cv-fw-strong);
  font-size: var(--cv-fs-small);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.cv-link .cv-icon {
  width: 16px;
  height: 16px;
}

.cv-orn {
  display: block;
  margin: 0 auto;
  color: var(--cv-deco);
  fill: none;
  stroke: currentColor;
  stroke-width: 1;
  stroke-linecap: round;
  stroke-linejoin: round;
  overflow: visible;
}

.cv-orn__dot {
  fill: currentColor;
  stroke: none;
}

.cv-lf1 { fill: var(--cv-leaf-1); stroke: none; }
.cv-lf2 { fill: var(--cv-leaf-2); stroke: none; }
.cv-lf3 { fill: var(--cv-leaf-3); stroke: none; }
.cv-berry { fill: var(--cv-berry); stroke: none; }
.cv-stem { fill: none; stroke: var(--cv-leaf-2); stroke-width: 1.2; stroke-linecap: round; }

/* ------------------------------------------------------------------ */
/* 5. Capa                                                             */
/* ------------------------------------------------------------------ */
.cv-cover {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  min-height: 100svh;
  padding: 64px 32px 88px;
  background: var(--cv-bg);
  color: var(--cv-ink);
  text-align: center;
}

.cv-cover__photo {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -4;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.cv-cover__scrim {
  display: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -3;
  background: var(--cv-scrim);
}

.cv-cover.has-photo .cv-cover__scrim {
  display: block;
}

.cv-cover__frame,
.cv-cover__art {
  display: none;
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.cv-cover__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 36rem;
}

.cv-cover__monogram {
  display: none;
}

.cv-cover__type {
  color: var(--cv-accent);
}

.cv-cover__title {
  margin-top: 20px;
  max-width: 100%;
  font-family: var(--cv-font-title);
  font-size: var(--cv-title-size);
  font-weight: var(--cv-fw-title);
  line-height: var(--cv-title-lh);
  letter-spacing: var(--cv-title-ls);
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.cv-cover__title--pair .cv-name,
.cv-cover__title--pair .cv-amp {
  display: block;
}

/* nomes muito longos: o PHP pode acrescentar esta classe */
.cv-cover__title--long {
  font-size: calc(var(--cv-title-size) * .76);
}

.cv-cover__lead {
  margin-top: 24px;
  max-width: 24rem;
  color: var(--cv-ink-soft);
  text-wrap: balance;
}

.cv-cover__orn {
  margin-top: 24px;
}

.cv-cover__meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
}

.cv-when {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.cv-when__date {
  font-family: var(--cv-font-num);
  font-size: 1.5rem;
  font-weight: var(--cv-fw-num);
  line-height: 1.2;
}

.cv-when__rest,
.cv-cover__city {
  color: var(--cv-ink-soft);
}

.cv-cover__cue {
  position: absolute;
  left: 50%;
  bottom: 22px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-left: -22px;
  border-radius: 50%;
  color: var(--cv-ink-soft);
  text-decoration: none;
}

.cv-cover__cue .cv-icon {
  width: 22px;
  height: 22px;
}

/* ------------------------------------------------------------------ */
/* 6. Secoes (estrutura comum)                                         */
/* ------------------------------------------------------------------ */
/*
 * Ritmo vertical: toda secao tem respiro em cima. Secoes "faixa" (--cv-band: 1,
 * com fundo proprio) ganham tambem respiro embaixo e uma margem antes, assim
 * duas secoes seguidas sobre o mesmo fundo nao somam dois respiros.
 */
.cv-section {
  position: relative;
  margin-top: calc(var(--cv-sec-y) * var(--cv-band));
  padding: var(--cv-sec-y) var(--cv-pad-x) calc(var(--cv-sec-y) * var(--cv-band));
  background: var(--cv-bg);
  color: var(--cv-ink);
}

.cv-section__inner {
  width: 100%;
  max-width: var(--cv-measure);
  margin: 0 auto;
  text-align: var(--cv-align);
}

.cv-section--wide .cv-section__inner {
  max-width: var(--cv-wide);
}

.cv-section__head {
  margin-bottom: 36px;
}

.cv-section__orn {
  margin-bottom: 20px;
}

.cv-section__title {
  font-family: var(--cv-font-head);
  font-size: var(--cv-h2-size);
  font-weight: var(--cv-fw-head);
  line-height: var(--cv-h2-lh);
  letter-spacing: var(--cv-h2-ls);
  color: var(--cv-h2-color, var(--cv-ink));
  text-wrap: balance;
}

.cv-section__lead {
  max-width: 30rem;
  margin: 14px auto 0;
  color: var(--cv-ink-soft);
  text-wrap: pretty;
}

/* ------------------------------------------------------------------ */
/* 7. Contagem regressiva                                              */
/* ------------------------------------------------------------------ */
.cv-countdown__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  max-width: 30rem;
  margin: 0 auto;
}

.cv-countdown__cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
}

.cv-countdown__num {
  font-family: var(--cv-font-num);
  font-size: clamp(2.25rem, 10vw, 3.5rem);
  font-weight: var(--cv-fw-num);
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1;
}

.cv-countdown__lbl {
  color: var(--cv-ink-soft);
}

.cv-countdown__done {
  font-family: var(--cv-font-head);
  font-size: var(--cv-h3-size);
}

/* ------------------------------------------------------------------ */
/* 8. Detalhes                                                         */
/* ------------------------------------------------------------------ */
.cv-details__list {
  display: grid;
  gap: 36px;
}

.cv-detail {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
}

.cv-detail__label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  color: var(--cv-accent);
}

.cv-detail__label .cv-icon {
  width: 28px;
  height: 28px;
}

.cv-detail__value {
  margin-top: 8px;
  font-family: var(--cv-font-num);
  font-size: 1.625rem;
  font-weight: var(--cv-fw-num);
  line-height: 1.2;
  text-wrap: balance;
}

.cv-detail__sub {
  margin-top: 4px;
  color: var(--cv-ink-soft);
  font-size: var(--cv-fs-small);
}

.cv-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 44px;
}

.cv-actions .cv-btn {
  flex: 1 1 240px;
  max-width: 340px;
}

@media (min-width: 800px) {
  .cv-details__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 32px;
  }

  .cv-actions .cv-btn {
    flex: 0 1 auto;
    min-width: 260px;
  }
}

/* ------------------------------------------------------------------ */
/* 9. Mensagem                                                         */
/* ------------------------------------------------------------------ */
.cv-message__mark {
  display: block;
  height: .5em;
  font-family: var(--cv-font-num);
  font-size: 5rem;
  line-height: 1;
  color: var(--cv-deco);
}

.cv-message__text {
  margin-top: 16px;
  font-family: var(--cv-font-num);
  font-size: var(--cv-quote-size);
  font-style: var(--cv-quote-style);
  font-weight: var(--cv-quote-weight);
  line-height: 1.32;
  text-wrap: balance;
}

.cv-message__sign {
  margin-top: 24px;
  color: var(--cv-accent);
}

.cv-message__more {
  max-width: 32rem;
  margin: 32px auto 0;
  color: var(--cv-ink-soft);
  text-wrap: pretty;
}

/* ------------------------------------------------------------------ */
/* 10. Galeria                                                         */
/* ------------------------------------------------------------------ */
/*
 * Mosaico sem depender do numero de fotos (1 a 6+): no celular a primeira foto
 * ocupa a largura toda e, quando o total e par, a ultima tambem.
 */
.cv-gallery__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cv-gallery__item {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border-radius: var(--cv-radius-img);
  background: var(--cv-bg-alt);
}

.cv-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cv-gallery__item:first-child,
.cv-gallery__item:last-child:nth-child(even) {
  grid-column: 1 / -1;
  aspect-ratio: 3 / 2;
}

@media (min-width: 800px) {
  .cv-gallery__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: clamp(11rem, 21vw, 17.5rem);
    gap: 14px;
  }

  .cv-gallery__item,
  .cv-gallery__item:last-child:nth-child(even) {
    grid-column: auto;
    aspect-ratio: auto;
  }

  .cv-gallery__item:first-child {
    grid-column: span 2;
    grid-row: span 2;
    aspect-ratio: auto;
  }

  /* 5 fotos: a quarta fecha a ultima linha */
  .cv-gallery__item:nth-child(4):nth-last-child(2) {
    grid-column: span 2;
  }

  /* 4 fotos: a quarta vira faixa inteira */
  .cv-gallery__item:nth-child(4):last-child {
    grid-column: 1 / -1;
  }

  /* 2 fotos: uma linha so */
  .cv-gallery__item:first-child:nth-last-child(2) {
    grid-row: auto;
  }

  /* 1 foto */
  .cv-gallery__item:only-child {
    grid-column: 1 / -1;
  }
}

/* ------------------------------------------------------------------ */
/* 11. Confirmar presenca (RSVP) e formulario                          */
/* ------------------------------------------------------------------ */
.cv-rsvp__deadline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  color: var(--cv-accent);
  font-weight: var(--cv-fw-strong);
}

.cv-rsvp__deadline .cv-icon {
  width: 20px;
  height: 20px;
}

.cv-rsvp__card {
  padding: 28px 20px 32px;
  border: var(--cv-bw) solid var(--cv-line);
  border-radius: var(--cv-radius);
  background: var(--cv-surface);
  box-shadow: var(--cv-shadow);
  text-align: left;
}

.cv-choice {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.cv-choice__legend,
.cv-field__label {
  display: block;
  width: 100%;
  margin-bottom: 8px;
  padding: 0;
  font-size: var(--cv-fs-small);
  font-weight: var(--cv-fw-strong);
  line-height: 1.3;
}

.cv-choice__legend {
  margin-bottom: 12px;
}

.cv-field__opt {
  font-weight: var(--cv-fw-body);
  color: var(--cv-ink-soft);
}

.cv-choice__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.cv-choice__opt {
  position: relative;
  display: block;
}

.cv-choice__input {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.cv-choice__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  height: 100%;
  min-height: 148px;
  padding: 20px 10px 18px;
  border: var(--cv-bw) solid var(--cv-field-line);
  border-radius: var(--cv-radius-field);
  background: var(--cv-field-bg);
  text-align: center;
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.cv-choice__icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 8px;
  border: var(--cv-bw) solid var(--cv-field-line);
  border-radius: 50%;
  color: var(--cv-ink-soft);
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.cv-choice__icon .cv-icon {
  width: 22px;
  height: 22px;
}

.cv-choice__title {
  font-family: var(--cv-font-num);
  font-size: var(--cv-h3-size);
  font-weight: var(--cv-fw-num);
  line-height: 1.15;
}

.cv-choice__sub {
  color: var(--cv-ink-soft);
  font-size: var(--cv-fs-small);
  line-height: 1.25;
}

.cv-choice__opt:hover .cv-choice__card {
  border-color: var(--cv-btn-bg);
}

.cv-choice__input:checked + .cv-choice__card {
  border-color: var(--cv-btn-bg);
  background: var(--cv-sel-bg);
  box-shadow: inset 0 0 0 1px var(--cv-btn-bg);
}

.cv-choice__input:checked + .cv-choice__card .cv-choice__icon {
  border-color: var(--cv-btn-bg);
  background: var(--cv-btn-bg);
  color: var(--cv-btn-ink);
}

.cv-choice__input:focus-visible + .cv-choice__card {
  outline: 2px solid var(--cv-focus);
  outline-offset: 3px;
}

.cv-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: end;
  gap: 20px 16px;
  margin-top: 28px;
}

.cv-field {
  display: block;
  min-width: 0;
}

.cv-input {
  display: block;
  width: 100%;
  min-height: 54px;
  margin: 0;
  padding: 12px 16px;
  border: var(--cv-bw) solid var(--cv-field-line);
  border-radius: var(--cv-radius-field);
  background: var(--cv-field-bg);
  color: var(--cv-ink);
  font-family: var(--cv-font-body);
  font-size: max(1.0625rem, var(--cv-fs-body));
  font-weight: var(--cv-fw-body);
  font-variant-numeric: lining-nums;
  line-height: 1.3;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

textarea.cv-input {
  min-height: 116px;
  resize: vertical;
}

.cv-input::placeholder {
  color: var(--cv-ink-soft);
  opacity: .8;
}

.cv-input:focus {
  outline: 2px solid var(--cv-focus);
  outline-offset: 2px;
  border-color: var(--cv-focus);
}

.cv-select {
  position: relative;
  display: block;
}

.cv-select .cv-input {
  padding-right: 48px;
  cursor: pointer;
}

.cv-select__arrow {
  position: absolute;
  top: 50%;
  right: 16px;
  width: 18px;
  height: 18px;
  margin-top: -9px;
  color: var(--cv-ink);
  pointer-events: none;
}

.cv-select option {
  color: #1c1c1c;
  background: #ffffff;
}

.cv-rsvp__submit {
  width: 100%;
  margin-top: 28px;
}

.cv-rsvp__note {
  margin-top: 14px;
  color: var(--cv-ink-soft);
  font-size: var(--cv-fs-small);
  text-align: center;
}

.cv-rsvp__done {
  padding: 12px 0 4px;
  text-align: center;
}

.cv-rsvp__done-icon {
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: var(--cv-btn-bg);
  color: var(--cv-btn-ink);
}

.cv-rsvp__done-icon .cv-icon {
  width: 30px;
  height: 30px;
}

.cv-rsvp__done-title {
  font-family: var(--cv-font-num);
  font-size: clamp(1.75rem, 6vw, 2.125rem);
  font-weight: var(--cv-fw-num);
  line-height: 1.15;
}

.cv-rsvp__done-text {
  max-width: 24rem;
  margin: 12px auto 0;
  color: var(--cv-ink-soft);
}

.cv-rsvp__done .cv-link {
  margin-top: 16px;
}

@media (min-width: 560px) {
  .cv-rsvp__card {
    padding: 44px 44px 48px;
  }

  .cv-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cv-field--full {
    grid-column: 1 / -1;
  }
}

/* ------------------------------------------------------------------ */
/* 12. Lista de presentes                                              */
/* ------------------------------------------------------------------ */
.cv-gifts__list {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cv-gift {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 16px;
  align-items: start;
  padding: 20px 18px 12px;
  border: var(--cv-bw) solid var(--cv-line);
  border-radius: var(--cv-radius);
  background: var(--cv-surface);
  text-align: left;
}

.cv-gift__icon {
  grid-row: 1 / span 3;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--cv-bg-alt);
  color: var(--cv-accent);
}

.cv-gift__name {
  font-family: var(--cv-font-num);
  font-size: var(--cv-h3-size);
  font-weight: var(--cv-fw-num);
  line-height: 1.2;
}

.cv-gift__desc {
  margin-top: 2px;
  color: var(--cv-ink-soft);
  font-size: var(--cv-fs-small);
}

.cv-gift .cv-link {
  justify-self: start;
}

.cv-pix {
  margin-top: 28px;
  padding: 28px 20px;
  border: var(--cv-bw) dashed var(--cv-deco);
  border-radius: var(--cv-radius);
  text-align: center;
}

.cv-pix__title {
  font-family: var(--cv-font-num);
  font-size: var(--cv-h3-size);
  font-weight: var(--cv-fw-num);
  line-height: 1.2;
}

.cv-pix__text {
  max-width: 26rem;
  margin: 8px auto 0;
  color: var(--cv-ink-soft);
}

.cv-pix__key {
  display: block;
  margin-top: 18px;
  font-family: var(--cv-font-num);
  font-size: 1.625rem;
  font-weight: var(--cv-fw-num);
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1.2;
  overflow-wrap: anywhere;
  -webkit-user-select: all;
  user-select: all;
}

.cv-pix__meta {
  margin-top: 4px;
  color: var(--cv-ink-soft);
  font-size: var(--cv-fs-small);
}

@media (min-width: 800px) {
  .cv-gifts__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
  }

  .cv-gift {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    padding: 32px 20px 20px;
    text-align: center;
  }

  .cv-gift__icon {
    grid-row: auto;
    margin-bottom: 16px;
  }

  .cv-gift .cv-link {
    justify-self: center;
  }

  .cv-pix {
    max-width: 34rem;
    margin: 36px auto 0;
  }
}

/* ------------------------------------------------------------------ */
/* 13. Encerramento                                                    */
/* ------------------------------------------------------------------ */
.cv-closing {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  margin-top: var(--cv-sec-y);
  padding: clamp(72px, 13vw, 120px) var(--cv-pad-x) 28px;
  background: var(--cv-bg);
  color: var(--cv-ink);
  text-align: center;
}

.cv-closing__art {
  display: none;
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.cv-closing__orn {
  margin-bottom: 24px;
}

.cv-closing__lead {
  color: var(--cv-accent);
}

.cv-closing__names {
  margin-top: 14px;
  font-family: var(--cv-font-title);
  font-size: calc(var(--cv-title-size) * .62);
  font-weight: var(--cv-fw-title);
  line-height: 1.1;
  letter-spacing: var(--cv-title-ls);
  text-wrap: balance;
}

.cv-closing__date {
  margin-top: 16px;
  color: var(--cv-ink-soft);
  font-variant-numeric: lining-nums tabular-nums;
}

.cv-credit {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: clamp(48px, 9vw, 80px);
  padding: 0 8px;
  color: var(--cv-ink-soft);
  font-family: var(--cv-font-body);
  font-size: var(--cv-fs-small);
  text-decoration: none;
}

.cv-credit strong {
  margin-left: .3em;
  color: var(--cv-ink);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

/* ------------------------------------------------------------------ */
/* 14. Botao de musica (so aparece com JS)                             */
/* ------------------------------------------------------------------ */
.cv-music {
  display: none;
  position: fixed;
  right: 16px;
  right: max(16px, env(safe-area-inset-right));
  bottom: 16px;
  bottom: max(16px, env(safe-area-inset-bottom));
  z-index: 20;
  place-items: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: var(--cv-bw) solid var(--cv-btn-bg);
  border-radius: 50%;
  background: var(--cv-surface);
  color: var(--cv-btn-bg);
  box-shadow: 0 8px 22px -8px rgba(0, 0, 0, .35);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: background-color .2s ease, color .2s ease;
}

.cv-js .cv-music {
  display: grid;
}

.cv-music .cv-icon {
  width: 22px;
  height: 22px;
}

.cv-music__pause {
  display: none;
}

.cv-music[aria-pressed="true"] {
  background: var(--cv-btn-bg);
  color: var(--cv-btn-ink);
}

.cv-music[aria-pressed="true"] .cv-music__play {
  display: none;
}

.cv-music[aria-pressed="true"] .cv-music__pause {
  display: block;
}

.cv-music::after {
  content: "";
  position: absolute;
  top: -1px;
  right: -1px;
  bottom: -1px;
  left: -1px;
  border: 1px solid var(--cv-btn-bg);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
}

/* aviso ao lado do botao para quem chega pelo botao "Ouvir a musica" do PDF (convite.js poe .cv-music--ask) */
.cv-music--ask::before {
  content: attr(data-cv-ask);
  position: absolute;
  top: 50%;
  right: calc(100% + 12px);
  transform: translateY(-50%);
  padding: 9px 14px;
  border-radius: 999px;
  background: var(--cv-btn-bg);
  color: var(--cv-btn-ink);
  font: 600 14px/1.2 var(--cv-font-body);
  white-space: nowrap;
  box-shadow: 0 8px 22px -8px rgba(0, 0, 0, .35);
  pointer-events: none;
}

.cv-music--ask::after {
  opacity: .7;
}

/* ------------------------------------------------------------------ */
/* 15. Movimento (discreto; desligado com prefers-reduced-motion)      */
/* ------------------------------------------------------------------ */
@keyframes cv-rise {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}

@keyframes cv-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}

@keyframes cv-ring {
  from { opacity: .7; transform: scale(1); }
  to { opacity: 0; transform: scale(1.5); }
}

@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }

  /* entrada da capa: uma unica sequencia, em CSS puro */
  .cv-cover__inner > * {
    animation: cv-rise .9s cubic-bezier(.2, .7, .2, 1) both;
  }

  .cv-cover__inner > :nth-child(2) { animation-delay: .08s; }
  .cv-cover__inner > :nth-child(3) { animation-delay: .16s; }
  .cv-cover__inner > :nth-child(4) { animation-delay: .3s; }
  .cv-cover__inner > :nth-child(5) { animation-delay: .4s; }
  .cv-cover__inner > :nth-child(6) { animation-delay: .5s; }

  .cv-cover__cue .cv-icon {
    animation: cv-bob 2.4s ease-in-out 1.4s infinite;
  }

  /* revelacao ao rolar: so quando o JS marcou <html class="cv-js"> */
  .cv-js .cv-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1);
  }

  .cv-js .cv-reveal.is-in {
    opacity: 1;
    transform: none;
  }

  .cv-music[aria-pressed="true"]::after,
  .cv-music--ask::after {
    animation: cv-ring 1.8s ease-out infinite;
  }
}

/* ------------------------------------------------------------------ */
/* 16. Tema classic: papel marfim, moldura dupla, data em tres colunas */
/* ------------------------------------------------------------------ */
body[data-theme="classic"] .cv-cover {
  padding: 72px 36px 96px;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 60%),
    var(--cv-bg);
}

body[data-theme="classic"] .cv-cover.has-photo {
  background: var(--cv-bg);
}

body[data-theme="classic"] .cv-cover__frame {
  display: block;
  top: 12px;
  right: 12px;
  bottom: 12px;
  left: 12px;
  border: 1px solid var(--cv-deco);
}

body[data-theme="classic"] .cv-cover__frame::after {
  content: "";
  position: absolute;
  top: 5px;
  right: 5px;
  bottom: 5px;
  left: 5px;
  border: 1px solid var(--cv-deco);
  opacity: .5;
}

body[data-theme="classic"] .cv-cover__monogram {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 78px;
  height: 78px;
  margin-bottom: 26px;
  border: 1px solid var(--cv-deco);
  border-radius: 50%;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: .02em;
  line-height: 1;
}

body[data-theme="classic"] .cv-cover__monogram::after {
  content: "";
  position: absolute;
  top: 4px;
  right: 4px;
  bottom: 4px;
  left: 4px;
  border: 1px solid var(--cv-deco);
  border-radius: 50%;
  opacity: .5;
}

body[data-theme="classic"] .cv-cover__monogram-amp {
  margin: 0 .08em;
  color: var(--cv-accent);
  font-size: .82em;
  font-style: italic;
}

body[data-theme="classic"] .cv-cover__title {
  margin-top: 22px;
}

body[data-theme="classic"] .cv-amp {
  margin: .04em 0 .1em;
  color: var(--cv-accent);
  font-size: .5em;
  font-style: italic;
  line-height: 1;
}

body[data-theme="classic"] .cv-cover__lead {
  font-size: 1.3125rem;
  font-style: italic;
  line-height: 1.35;
}

body[data-theme="classic"] .cv-cover__orn,
body[data-theme="classic"] .cv-section__orn,
body[data-theme="classic"] .cv-closing__orn {
  width: 132px;
  height: 14px;
}

body[data-theme="classic"] .cv-cover__meta {
  align-self: stretch;
  gap: 14px;
  margin-top: 24px;
}

/* data no formato de convite impresso:
     SABADO
   DEZEMBRO  12  2026
     AS 17:00                                                          */
body[data-theme="classic"] .cv-when {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  row-gap: 12px;
  width: 100%;
  max-width: 23rem;
  margin: 0 auto;
}

body[data-theme="classic"] .cv-when__date,
body[data-theme="classic"] .cv-when__my,
body[data-theme="classic"] .cv-when__rest {
  display: contents;
}

body[data-theme="classic"] .cv-when__of,
body[data-theme="classic"] .cv-when__sep {
  display: none;
}

body[data-theme="classic"] .cv-when__d {
  grid-column: 2;
  grid-row: 2;
  padding: 0 18px;
  font-family: var(--cv-font-num);
  font-size: 3.5rem;
  font-weight: 500;
  line-height: .9;
  color: var(--cv-ink);
}

body[data-theme="classic"] .cv-when__m,
body[data-theme="classic"] .cv-when__y,
body[data-theme="classic"] .cv-when__wd,
body[data-theme="classic"] .cv-when__t,
body[data-theme="classic"] .cv-cover__city {
  font-family: var(--cv-font-body);
  font-size: var(--cv-label-size);
  font-weight: var(--cv-label-weight);
  letter-spacing: var(--cv-label-ls);
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--cv-ink);
}

body[data-theme="classic"] .cv-when__wd,
body[data-theme="classic"] .cv-when__t {
  grid-column: 1 / -1;
}

body[data-theme="classic"] .cv-when__wd { grid-row: 1; }
body[data-theme="classic"] .cv-when__t { grid-row: 3; }

body[data-theme="classic"] .cv-when__m,
body[data-theme="classic"] .cv-when__y {
  grid-row: 2;
  padding: 11px 0;
  border-top: 1px solid var(--cv-deco);
  border-bottom: 1px solid var(--cv-deco);
}

body[data-theme="classic"] .cv-when__m { grid-column: 1; }
body[data-theme="classic"] .cv-when__y { grid-column: 3; }

body[data-theme="classic"] .cv-cover__city {
  color: var(--cv-accent);
}

@media (max-width: 359px) {
  body[data-theme="classic"] .cv-cover {
    padding-left: 30px;
    padding-right: 30px;
  }

  body[data-theme="classic"] .cv-when__m,
  body[data-theme="classic"] .cv-when__y {
    font-size: .8125rem;
    letter-spacing: .14em;
  }

  body[data-theme="classic"] .cv-when__d {
    padding: 0 12px;
  }
}

body[data-theme="classic"] .cv-cover__cue {
  bottom: 30px;
}

body[data-theme="classic"] .cv-message {
  --cv-band: 1;
  background: var(--cv-bg-alt);
}

body[data-theme="classic"] .cv-countdown__grid {
  gap: 0;
}

body[data-theme="classic"] .cv-countdown__cell {
  padding: 6px 4px;
}

body[data-theme="classic"] .cv-countdown__cell + .cv-countdown__cell {
  border-left: 1px solid var(--cv-line);
}

body[data-theme="classic"] .cv-countdown__lbl {
  font-size: .75rem;
  letter-spacing: .2em;
}

body[data-theme="classic"] .cv-detail__label .cv-icon {
  color: var(--cv-deco);
}

body[data-theme="classic"] .cv-details__list {
  gap: 28px;
}

body[data-theme="classic"] .cv-detail + .cv-detail {
  padding-top: 28px;
  border-top: 1px solid var(--cv-line);
}

body[data-theme="classic"] .cv-btn {
  padding-left: 18px;
  padding-right: 18px;
}

body[data-theme="classic"] .cv-message__sign {
  font-size: var(--cv-label-size);
  font-weight: var(--cv-label-weight);
  letter-spacing: var(--cv-label-ls);
  text-transform: uppercase;
}

body[data-theme="classic"] .cv-gallery__item {
  padding: 6px;
  border: 1px solid var(--cv-line);
  background: var(--cv-surface);
}

body[data-theme="classic"] .cv-rsvp__card {
  position: relative;
  border-color: var(--cv-deco);
  outline: 1px solid var(--cv-line);
  outline-offset: 5px;
}

body[data-theme="classic"] .cv-choice__legend,
body[data-theme="classic"] .cv-field__label {
  font-size: 1.125rem;
}

body[data-theme="classic"] .cv-gift {
  padding: 20px 0 10px;
  border-width: 1px 0 0;
  background: transparent;
}

body[data-theme="classic"] .cv-gift:last-child {
  border-bottom-width: 1px;
}

body[data-theme="classic"] .cv-gift__icon {
  border: 1px solid var(--cv-deco);
  background: transparent;
}

body[data-theme="classic"] .cv-pix {
  border-style: solid;
  border-color: var(--cv-deco);
}

body[data-theme="classic"] .cv-closing__date {
  font-size: var(--cv-label-size);
  font-weight: var(--cv-label-weight);
  letter-spacing: var(--cv-label-ls);
}

@media (min-width: 800px) {
  body[data-theme="classic"] .cv-cover__frame {
    top: 24px;
    right: 24px;
    bottom: 24px;
    left: 24px;
  }

  body[data-theme="classic"] .cv-cover__cue {
    bottom: 44px;
  }

  body[data-theme="classic"] .cv-detail + .cv-detail {
    padding-top: 0;
    border-top: 0;
    border-left: 1px solid var(--cv-line);
  }

  body[data-theme="classic"] .cv-gift {
    padding: 32px 16px 20px;
    border-width: 1px 0;
  }
}

/* ------------------------------------------------------------------ */
/* 17. Tema romantic: aquarela rosada, arco, nomes em caligrafia       */
/* ------------------------------------------------------------------ */
body[data-theme="romantic"] .cv-cover {
  padding: 84px 40px 96px;
  background:
    linear-gradient(to top, var(--cv-bg), rgba(251, 242, 239, 0) 16%),
    radial-gradient(60% 38% at 12% 8%, rgba(232, 172, 170, .5), rgba(232, 172, 170, 0) 70%),
    radial-gradient(55% 34% at 92% 22%, rgba(246, 206, 180, .5), rgba(246, 206, 180, 0) 70%),
    radial-gradient(70% 40% at 80% 96%, rgba(226, 160, 172, .46), rgba(226, 160, 172, 0) 70%),
    radial-gradient(50% 30% at 4% 78%, rgba(244, 214, 200, .6), rgba(244, 214, 200, 0) 70%),
    var(--cv-bg);
}

body[data-theme="romantic"] .cv-cover.has-photo {
  background: var(--cv-bg);
}

body[data-theme="romantic"] .cv-cover__frame {
  display: block;
  top: 22px;
  right: 18px;
  bottom: 22px;
  left: 18px;
  border: 1px solid var(--cv-deco);
  border-radius: 999px 999px 0 0;
  background: rgba(255, 255, 255, .46);
}

body[data-theme="romantic"] .cv-cover.has-photo .cv-cover__frame {
  background: rgba(255, 255, 255, .07);
}

body[data-theme="romantic"] .cv-cover__frame::after {
  content: "";
  position: absolute;
  top: 6px;
  right: 6px;
  bottom: 6px;
  left: 6px;
  border: 1px solid var(--cv-deco);
  border-radius: 999px 999px 0 0;
  opacity: .45;
}

body[data-theme="romantic"] .cv-cover__title {
  margin-top: 14px;
  padding: .12em .08em 0;
  color: var(--cv-accent);
}

body[data-theme="romantic"] .cv-amp {
  margin: -.04em 0 -.02em;
  font-size: .62em;
  line-height: 1;
  color: #b4687a;
}

body[data-theme="romantic"] .cv-cover.has-photo .cv-amp {
  color: var(--cv-accent);
}

body[data-theme="romantic"] .cv-cover__title:not(.cv-cover__title--pair) {
  font-size: calc(var(--cv-title-size) * .82);
}

body[data-theme="romantic"] .cv-cover__lead {
  margin-top: 18px;
  max-width: 17rem;
  font-style: italic;
  line-height: 1.35;
}

body[data-theme="romantic"] .cv-cover__orn,
body[data-theme="romantic"] .cv-section__orn,
body[data-theme="romantic"] .cv-closing__orn {
  width: 148px;
  height: 22px;
}

body[data-theme="romantic"] .cv-cover__orn {
  margin-top: 20px;
}

body[data-theme="romantic"] .cv-cover__meta {
  margin-top: 18px;
  gap: 4px;
}

body[data-theme="romantic"] .cv-when__date {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--cv-ink);
}

body[data-theme="romantic"] .cv-section__title,
body[data-theme="romantic"] .cv-closing__names {
  --cv-h2-color: var(--cv-accent);
  color: var(--cv-accent);
}

body[data-theme="romantic"] .cv-section__orn {
  margin-bottom: 10px;
}

body[data-theme="romantic"] .cv-section__lead {
  margin-top: 6px;
}

body[data-theme="romantic"] .cv-rsvp {
  --cv-band: 1;
  background:
    radial-gradient(60% 30% at 8% 4%, rgba(255, 255, 255, .6), rgba(255, 255, 255, 0) 70%),
    radial-gradient(50% 30% at 96% 96%, rgba(226, 160, 172, .3), rgba(226, 160, 172, 0) 70%),
    var(--cv-bg-alt);
}

body[data-theme="romantic"] .cv-rsvp__card {
  border-color: transparent;
}

body[data-theme="romantic"] .cv-countdown__grid {
  max-width: 25rem;
}

body[data-theme="romantic"] .cv-countdown__cell {
  aspect-ratio: 3 / 4;
  padding-top: 10px;
  border: 1px solid var(--cv-deco);
  border-radius: 999px 999px 10px 10px;
  background: var(--cv-surface);
}

body[data-theme="romantic"] .cv-countdown__num {
  font-size: clamp(1.875rem, 8.4vw, 2.5rem);
  font-weight: 600;
  color: var(--cv-accent);
}

body[data-theme="romantic"] .cv-countdown__lbl {
  font-size: 1.0625rem;
}

body[data-theme="romantic"] .cv-detail__label .cv-icon {
  box-sizing: content-box;
  width: 24px;
  height: 24px;
  padding: 15px;
  border: 1px solid var(--cv-deco);
  border-radius: 50%;
  background: var(--cv-surface);
}

body[data-theme="romantic"] .cv-detail__value {
  font-weight: 600;
}

body[data-theme="romantic"] .cv-message__mark {
  font-family: "Cormorant Garamond", serif;
}

body[data-theme="romantic"] .cv-message__sign {
  font-family: var(--cv-font-title);
  font-size: 2.25rem;
  line-height: 1.1;
}

body[data-theme="romantic"] .cv-gallery__item:first-child {
  border-radius: 999px 999px var(--cv-radius-img) var(--cv-radius-img);
  aspect-ratio: 5 / 6;
}

body[data-theme="romantic"] .cv-choice__title,
body[data-theme="romantic"] .cv-gift__name,
body[data-theme="romantic"] .cv-pix__title,
body[data-theme="romantic"] .cv-rsvp__done-title {
  font-weight: 600;
}

body[data-theme="romantic"] .cv-gift {
  border-color: transparent;
  border-radius: 22px;
  box-shadow: 0 14px 36px -26px rgba(122, 52, 73, .5);
}

body[data-theme="romantic"] .cv-closing__names {
  font-size: calc(var(--cv-title-size) * .7);
  word-spacing: .14em;
}

@media (min-width: 800px) {
  body[data-theme="romantic"] .cv-cover__frame {
    top: 28px;
    bottom: 28px;
    left: 50%;
    right: auto;
    width: 560px;
    margin-left: -280px;
  }

  body[data-theme="romantic"] .cv-cover__title {
    font-size: min(6.75rem, 14.5vh);
  }

  body[data-theme="romantic"] .cv-gallery__item:first-child {
    border-radius: var(--cv-radius-img);
    aspect-ratio: auto;
  }
}

/* ------------------------------------------------------------------ */
/* 18. Tema modern: cartaz preto, tipo condensado gigante, um amarelo  */
/* ------------------------------------------------------------------ */
body[data-theme="modern"] .cv-cover {
  align-items: stretch;
  justify-content: flex-start;
  padding: 0;
  text-align: left;
}

body[data-theme="modern"] .cv-cover__inner {
  flex: 1 1 auto;
  align-items: stretch;
  max-width: none;
  padding: 26px var(--cv-pad-x) 0;
}

/*
 * A inicial (ou "G&G") vira elemento grafico: letra gigante so em contorno.
 * Ela ocupa o espaco que sobra entre o rotulo e o titulo e se ajusta a ele
 * (unidades de container), entao nunca passa por cima do texto.
 */
body[data-theme="modern"] .cv-cover__monogram {
  display: flex;
  flex: 1 1 0;
  align-items: flex-start;
  justify-content: flex-end;
  min-height: 0;
  margin-top: 22px;
  overflow: hidden;
  container-type: size;
  animation: none;
}

body[data-theme="modern"] .cv-cover__monogram-in {
  padding: 0 2px;
  color: transparent;
  font-family: var(--cv-font-title);
  font-size: min(56vw, 30vh);
  font-size: min(122cqh, 124cqw);
  font-stretch: 75%;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: .82;
  white-space: nowrap;
  -webkit-text-stroke: 2px var(--cv-pop);
}

body[data-theme="modern"] .cv-cover__monogram--pair .cv-cover__monogram-in {
  font-size: min(34vw, 24vh);
  font-size: min(122cqh, 50cqw);
}

body[data-theme="modern"] .cv-cover.has-photo .cv-cover__monogram {
  display: none;
}

body[data-theme="modern"] .cv-cover__type {
  order: -1;
  max-width: calc(100% - 60px);
  color: var(--cv-ink);
  font-size: 1.0625rem;
}

body[data-theme="modern"] .cv-cover__title {
  margin-top: auto;
  padding-top: 22px;
  font-stretch: 75%;
  text-transform: uppercase;
}

body[data-theme="modern"] .cv-cover__title--pair .cv-amp {
  color: var(--cv-pop);
}

body[data-theme="modern"] .cv-cover__lead {
  max-width: 22rem;
  margin-top: 20px;
  color: var(--cv-ink);
  font-size: 1.1875rem;
  line-height: 1.35;
}

body[data-theme="modern"] .cv-cover__meta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 18px;
  row-gap: 0;
  margin: 28px calc(var(--cv-pad-x) * -1) 0;
  padding: 18px calc(var(--cv-pad-x) + 64px) 20px var(--cv-pad-x);
  background: var(--cv-pop);
  color: var(--cv-pop-ink);
}

body[data-theme="modern"] .cv-when,
body[data-theme="modern"] .cv-when__date {
  display: contents;
}

body[data-theme="modern"] .cv-when__d {
  grid-column: 1;
  grid-row: 1 / span 3;
  font-family: var(--cv-font-title);
  font-size: clamp(3.5rem, 20vw, 5.5rem);
  font-stretch: 75%;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: .82;
}

body[data-theme="modern"] .cv-when__my {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  font-size: clamp(1.0625rem, 4.8vw, 1.25rem);
  font-weight: 800;
  line-height: 1.15;
}

body[data-theme="modern"] .cv-when__rest {
  grid-column: 2;
  grid-row: 2;
  color: var(--cv-pop-ink);
  font-weight: 500;
  line-height: 1.3;
}

body[data-theme="modern"] .cv-cover__city {
  grid-column: 2;
  grid-row: 3;
  align-self: start;
  color: var(--cv-pop-ink);
  font-weight: 500;
  line-height: 1.3;
}

@media (max-width: 379px) {
  body[data-theme="modern"] .cv-cover__meta {
    column-gap: 14px;
  }

  body[data-theme="modern"] .cv-when__rest,
  body[data-theme="modern"] .cv-cover__city {
    font-size: .9375rem;
  }
}

@media (max-width: 339px) {
  body[data-theme="modern"] .cv-cover__meta {
    column-gap: 12px;
  }

  body[data-theme="modern"] .cv-when__d {
    font-size: 3rem;
  }

  body[data-theme="modern"] .cv-when__my {
    font-size: 1rem;
  }
}

body[data-theme="modern"] .cv-cover__cue {
  top: 16px;
  right: var(--cv-pad-x);
  bottom: auto;
  left: auto;
  margin: 0;
  border: 2px solid var(--cv-ink);
  color: var(--cv-ink);
}

body[data-theme="modern"] .cv-orn,
body[data-theme="modern"] .cv-message__mark {
  display: none;
}

body[data-theme="modern"] .cv-section__head {
  margin-bottom: 28px;
}

body[data-theme="modern"] .cv-section__title,
body[data-theme="modern"] .cv-closing__names {
  font-stretch: 75%;
  text-transform: uppercase;
}

body[data-theme="modern"] .cv-section__lead {
  margin-left: 0;
  font-size: 1.125rem;
}

body[data-theme="modern"] .cv-countdown__grid {
  gap: 0;
  max-width: none;
  border: 2px solid var(--cv-ink);
}

body[data-theme="modern"] .cv-countdown__cell {
  align-items: flex-start;
  gap: 2px;
  padding: 14px 10px 12px;
}

body[data-theme="modern"] .cv-countdown__cell + .cv-countdown__cell {
  border-left: 2px solid var(--cv-ink);
}

body[data-theme="modern"] .cv-countdown__num {
  font-size: clamp(2.5rem, 12.5vw, 6.5rem);
  font-stretch: 75%;
  font-weight: 800;
  letter-spacing: -.01em;
  line-height: .9;
}

body[data-theme="modern"] .cv-countdown__lbl {
  color: var(--cv-ink);
}

body[data-theme="modern"] .cv-details__list {
  gap: 0;
  border-bottom: 2px solid var(--cv-ink);
}

body[data-theme="modern"] .cv-detail {
  align-items: flex-start;
  padding: 18px 0 20px;
  border-top: 2px solid var(--cv-ink);
}

body[data-theme="modern"] .cv-detail__label {
  flex-direction: row;
  gap: 8px;
  color: var(--cv-ink);
}

body[data-theme="modern"] .cv-detail__label .cv-icon {
  width: 20px;
  height: 20px;
  stroke-width: 2;
}

body[data-theme="modern"] .cv-detail__value {
  margin-top: 10px;
  font-size: 1.75rem;
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -.01em;
}

body[data-theme="modern"] .cv-detail__sub {
  margin-top: 6px;
}

body[data-theme="modern"] .cv-actions {
  justify-content: flex-start;
  margin-top: 28px;
}

body[data-theme="modern"] .cv-actions .cv-btn {
  max-width: none;
}

body[data-theme="modern"] .cv-message {
  --cv-band: 1;
  --cv-ink-soft: #2a2a2e;
  --cv-accent: #0d0d0f;
  background: var(--cv-pop);
}

/* sem galeria, a mensagem encosta no RSVP: nao deixa uma tira branca no meio */
body[data-theme="modern"] .cv-message + .cv-rsvp {
  margin-top: 0;
}

body[data-theme="modern"] .cv-message__text {
  margin-top: 0;
  line-height: 1.08;
  letter-spacing: -.01em;
}

body[data-theme="modern"] .cv-message__sign {
  margin-top: 20px;
  font-weight: 700;
}

body[data-theme="modern"] .cv-message__more {
  margin: 28px 0 0;
  font-size: 1.125rem;
}

body[data-theme="modern"] .cv-gallery__grid {
  gap: 6px;
}

body[data-theme="modern"] .cv-rsvp {
  --cv-band: 1;
}

body[data-theme="modern"] .cv-rsvp__deadline {
  padding: 6px 12px;
  background: var(--cv-pop);
  color: var(--cv-pop-ink);
}

body[data-theme="modern"] .cv-rsvp__card {
  padding: 0;
  border: 0;
  background: transparent;
}

body[data-theme="modern"] .cv-choice__card {
  align-items: flex-start;
  min-height: 150px;
  padding: 16px 14px;
  text-align: left;
}

body[data-theme="modern"] .cv-choice__icon {
  margin-bottom: auto;
  border-color: var(--cv-ink);
  color: var(--cv-ink);
}

body[data-theme="modern"] .cv-choice__icon .cv-icon {
  stroke-width: 2;
}

body[data-theme="modern"] .cv-choice__title {
  margin-top: 14px;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.05;
}

body[data-theme="modern"] .cv-choice__input:checked + .cv-choice__card {
  border-color: var(--cv-pop);
  background: var(--cv-pop);
  box-shadow: none;
  color: var(--cv-pop-ink);
}

body[data-theme="modern"] .cv-choice__input:checked + .cv-choice__card .cv-choice__sub {
  color: var(--cv-pop-ink);
}

body[data-theme="modern"] .cv-choice__input:checked + .cv-choice__card .cv-choice__icon {
  border-color: var(--cv-pop-ink);
  background: var(--cv-pop-ink);
  color: var(--cv-pop);
}

body[data-theme="modern"] .cv-input:focus {
  box-shadow: 0 0 0 2px var(--cv-bg);
}

body[data-theme="modern"] .cv-rsvp__note {
  text-align: left;
}

body[data-theme="modern"] .cv-rsvp__done {
  padding: 28px 20px 32px;
  border: 2px solid var(--cv-pop);
  text-align: left;
}

body[data-theme="modern"] .cv-rsvp__done-icon {
  margin-left: 0;
  border-radius: 0;
}

body[data-theme="modern"] .cv-rsvp__done-title {
  font-size: clamp(2.25rem, 9vw, 3rem);
  font-stretch: 75%;
  font-weight: 800;
  line-height: .95;
  text-transform: uppercase;
}

body[data-theme="modern"] .cv-rsvp__done-text {
  margin-left: 0;
}

body[data-theme="modern"] .cv-gifts__list {
  gap: 0;
  border-bottom: 2px solid var(--cv-ink);
}

body[data-theme="modern"] .cv-gift {
  padding: 18px 0 8px;
  border-width: 2px 0 0;
}

body[data-theme="modern"] .cv-gift__icon {
  border-radius: 0;
  background: var(--cv-pop);
  color: var(--cv-pop-ink);
}

body[data-theme="modern"] .cv-gift__name,
body[data-theme="modern"] .cv-pix__title {
  font-weight: 800;
}

body[data-theme="modern"] .cv-pix {
  border-style: solid;
  text-align: left;
}

body[data-theme="modern"] .cv-pix__text {
  margin-left: 0;
}

body[data-theme="modern"] .cv-pix__key {
  font-size: 1.75rem;
  font-weight: 800;
}

body[data-theme="modern"] .cv-closing {
  padding-top: clamp(56px, 10vw, 96px);
  text-align: left;
}

body[data-theme="modern"] .cv-closing__lead {
  color: var(--cv-pop);
  font-size: 1.125rem;
}

body[data-theme="modern"] .cv-closing__names {
  margin-top: 10px;
  font-size: calc(var(--cv-title-size) * .82);
  line-height: .88;
}

body[data-theme="modern"] .cv-closing__date {
  color: var(--cv-ink);
  font-size: 1.375rem;
  font-weight: 800;
}

body[data-theme="modern"] .cv-credit {
  padding: 0;
}

body[data-theme="modern"] .cv-music {
  border-color: var(--cv-pop-ink);
  border-radius: 0;
  background: var(--cv-pop);
  color: var(--cv-pop-ink);
  box-shadow: none;
}

body[data-theme="modern"] .cv-music::after {
  border-radius: 0;
  border-color: var(--cv-pop);
}

body[data-theme="modern"] .cv-music[aria-pressed="true"] {
  background: var(--cv-pop-ink);
  color: var(--cv-pop);
  border-color: var(--cv-pop);
}

@media (min-width: 560px) {
  body[data-theme="modern"] .cv-rsvp__card {
    padding: 0;
  }
}

@media (min-width: 900px) {
  body[data-theme="modern"] {
    --cv-pad-x: 48px;
    --cv-title-size: clamp(6rem, min(14.5vw, 27vh), 12rem);
  }

  /* capa em duas colunas: texto a esquerda, inicial a direita */
  body[data-theme="modern"] .cv-cover__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 26%);
    grid-template-rows: auto minmax(0, 1fr) auto auto;
    column-gap: 40px;
    padding-top: 40px;
  }

  body[data-theme="modern"] .cv-cover__type {
    grid-column: 1;
    grid-row: 1;
  }

  body[data-theme="modern"] .cv-cover__monogram {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-items: flex-end;
    margin: 64px 0 6px;
  }

  body[data-theme="modern"] .cv-cover__title {
    grid-column: 1;
    grid-row: 2;
    align-self: end;
  }

  body[data-theme="modern"] .cv-cover__lead {
    grid-column: 1;
    grid-row: 3;
  }

  body[data-theme="modern"] .cv-cover__meta {
    grid-column: 1 / -1;
    grid-row: 4;
  }

  body[data-theme="modern"] .cv-cover__cue {
    top: 30px;
  }

  body[data-theme="modern"] .cv-cover__lead {
    max-width: 30rem;
    font-size: 1.5rem;
  }

  body[data-theme="modern"] .cv-cover__meta {
    column-gap: 28px;
    padding-top: 24px;
    padding-bottom: 26px;
  }

  body[data-theme="modern"] .cv-when__d {
    font-size: 8.5rem;
  }

  body[data-theme="modern"] .cv-when__my {
    font-size: 2rem;
  }

  body[data-theme="modern"] .cv-when__rest,
  body[data-theme="modern"] .cv-cover__city {
    font-size: 1.25rem;
  }

  /* layout dividido: titulo da secao a esquerda, conteudo a direita */
  body[data-theme="modern"] .cv-section__inner {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    column-gap: 48px;
    align-items: start;
    max-width: var(--cv-wide);
  }

  body[data-theme="modern"] .cv-section__head {
    margin-bottom: 0;
  }

  /* secao sem cabecalho (mensagem): ocupa a largura toda */
  body[data-theme="modern"] .cv-section__inner > :only-child {
    grid-column: 1 / -1;
  }

  body[data-theme="modern"] .cv-message__text {
    max-width: 21em;
    font-size: 3.25rem;
  }

  body[data-theme="modern"] .cv-message__more {
    max-width: 36rem;
  }

  body[data-theme="modern"] .cv-details__list {
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-theme="modern"] .cv-detail {
    display: grid;
    grid-template-columns: 10rem minmax(0, 1fr);
    column-gap: 24px;
    align-items: baseline;
  }

  body[data-theme="modern"] .cv-detail__value {
    grid-column: 2;
    margin-top: 0;
    font-size: 2.25rem;
  }

  body[data-theme="modern"] .cv-detail__sub {
    grid-column: 2;
  }

  body[data-theme="modern"] .cv-countdown__cell {
    padding: 22px 20px 18px;
  }

  body[data-theme="modern"] .cv-gifts__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  body[data-theme="modern"] .cv-gift {
    grid-template-columns: auto minmax(0, 1fr);
    justify-items: start;
    padding: 20px 0 10px;
    text-align: left;
  }

  body[data-theme="modern"] .cv-gift__icon {
    grid-row: 1 / span 3;
    margin-bottom: 0;
  }

  body[data-theme="modern"] .cv-gift .cv-link {
    justify-self: start;
  }

  body[data-theme="modern"] .cv-pix {
    max-width: none;
    margin: 28px 0 0;
    padding: 28px;
  }

  body[data-theme="modern"] .cv-closing__inner {
    max-width: var(--cv-wide);
    margin: 0 auto;
  }
}

/* ------------------------------------------------------------------ */
/* 19. Tema floral: linho, verdes de salvia, ramos desenhados          */
/* ------------------------------------------------------------------ */
body[data-theme="floral"] .cv-cover {
  padding: min(50vw, 13.5rem) 30px 148px;
  background:
    radial-gradient(90% 60% at 50% 46%, rgba(255, 255, 255, .6), rgba(255, 255, 255, 0) 70%),
    var(--cv-bg);
}

body[data-theme="floral"] .cv-cover.has-photo {
  --cv-leaf-1: #c9d6b6;
  --cv-leaf-2: #a8ba93;
  --cv-leaf-3: #dfe7cc;
  background: var(--cv-bg);
}

body[data-theme="floral"] .cv-cover__art {
  display: block;
  width: min(76vw, 30rem);
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: visible;
}

body[data-theme="floral"] .cv-cover__art--a {
  top: 0;
  right: 0;
}

body[data-theme="floral"] .cv-cover__art--b {
  bottom: -2vw;
  left: -13vw;
  width: min(68vw, 24rem);
  transform: rotate(180deg);
}

body[data-theme="floral"] .cv-cover__type {
  font-size: 1.25rem;
}

body[data-theme="floral"] .cv-cover__title {
  margin-top: 16px;
  color: var(--cv-accent);
}

body[data-theme="floral"] .cv-cover.has-photo .cv-cover__title {
  color: var(--cv-ink);
}

body[data-theme="floral"] .cv-amp {
  font-style: italic;
  font-weight: 300;
  font-size: .7em;
  line-height: 1.1;
}

body[data-theme="floral"] .cv-cover__lead {
  max-width: 20rem;
  margin-top: 20px;
  font-family: var(--cv-font-title);
  font-size: 1.1875rem;
  font-style: italic;
  font-weight: 300;
  line-height: 1.4;
}

body[data-theme="floral"] .cv-cover__orn,
body[data-theme="floral"] .cv-section__orn,
body[data-theme="floral"] .cv-closing__orn {
  width: 128px;
  height: 32px;
}

body[data-theme="floral"] .cv-cover__orn {
  margin-top: 18px;
}

body[data-theme="floral"] .cv-cover__meta {
  margin-top: 16px;
  gap: 2px;
}

body[data-theme="floral"] .cv-when {
  gap: 2px;
}

body[data-theme="floral"] .cv-when__date {
  font-size: clamp(1.25rem, 5.8vw, 1.4375rem);
  color: var(--cv-ink);
}

body[data-theme="floral"] .cv-section__orn {
  margin-bottom: 12px;
}

body[data-theme="floral"] .cv-section__title {
  --cv-h2-color: var(--cv-accent);
}

body[data-theme="floral"] .cv-rsvp {
  --cv-band: 1;
  background: var(--cv-bg-alt);
}

body[data-theme="floral"] .cv-rsvp__card {
  border-color: transparent;
}

body[data-theme="floral"] .cv-countdown__grid {
  gap: 12px;
  max-width: 26rem;
}

/* celulas em forma de folha: dois cantos opostos arredondados, alternando o lado */
body[data-theme="floral"] .cv-countdown__cell {
  aspect-ratio: 1 / 1.12;
  gap: 2px;
  border-radius: 52% 8px 52% 8px;
  background: var(--cv-bg-alt);
}

body[data-theme="floral"] .cv-countdown__cell:nth-child(even) {
  border-radius: 8px 52% 8px 52%;
}

body[data-theme="floral"] .cv-countdown__num {
  font-size: clamp(1.75rem, 8vw, 2.5rem);
  color: var(--cv-accent);
}

body[data-theme="floral"] .cv-countdown__lbl {
  font-size: .9375rem;
}

body[data-theme="floral"] .cv-detail__label .cv-icon {
  color: var(--cv-deco);
}

body[data-theme="floral"] .cv-message__sign {
  font-family: var(--cv-font-body);
  font-style: normal;
  font-weight: 600;
  font-size: 1rem;
}

body[data-theme="floral"] .cv-gallery__item:nth-child(odd) {
  border-radius: 44px var(--cv-radius-img) 44px var(--cv-radius-img);
}

body[data-theme="floral"] .cv-gallery__item:nth-child(even) {
  border-radius: var(--cv-radius-img) 44px var(--cv-radius-img) 44px;
}

body[data-theme="floral"] .cv-gift {
  border-color: transparent;
  border-radius: 18px;
  background: var(--cv-surface);
  box-shadow: 0 0 0 1px var(--cv-line);
}

body[data-theme="floral"] .cv-closing {
  --cv-leaf-1: #5d7450;
  --cv-leaf-2: #4a6040;
  --cv-leaf-3: #3f5338;
  --cv-berry: #8b7a50;
}

body[data-theme="floral"] .cv-closing__art {
  display: block;
  top: 0;
  right: 0;
  width: min(38vw, 22rem);
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: visible;
}

body[data-theme="floral"] .cv-closing__names {
  font-size: calc(var(--cv-title-size) * .68);
}

@media (min-width: 800px) {
  body[data-theme="floral"] .cv-cover {
    padding-top: 132px;
  }

  body[data-theme="floral"] .cv-cover__art--a {
    width: 34rem;
  }

  body[data-theme="floral"] .cv-cover__art--b {
    bottom: 0;
    left: 0;
    width: 28rem;
  }

  body[data-theme="floral"] .cv-cover__title {
    max-width: 11em;
  }
}

/* ------------------------------------------------------------------ */
/* Preferencia do sistema: menos movimento                             */
/* ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .cv *,
  .cv *::before,
  .cv *::after,
  .cv-music,
  .cv-music::after {
    animation: none !important;
    transition: none !important;
  }
}

/* ================================================================== */
/* Temas novos (minimal, gala, rustico, festa) e paletas (data-palette) */
/* Tudo daqui para baixo e acrescimo: nenhuma regra acima foi alterada. */
/*                                                                      */
/* 20. Fontes dos temas novos                                           */
/* 21. Tokens: minimal, gala, rustico, festa                            */
/* 22. Ajustes por tema: minimal                                        */
/* 23. Ajustes por tema: gala                                           */
/* 24. Ajustes por tema: rustico                                        */
/* 25. Ajustes por tema: festa                                          */
/* 26. Paletas: <body data-theme="..." data-palette="...">              */
/* ================================================================== */

/* ------------------------------------------------------------------ */
/* 20. Fontes dos temas novos (woff2 locais, subconjunto latin)        */
/* ------------------------------------------------------------------ */
@font-face {
  font-family: "Cinzel";
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url("../fonts/cinzel-latin-wght-normal.woff2") format("woff2");
}
@font-face {
  font-family: "DM Serif Display";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/dm-serif-display-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Fredoka";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("../fonts/fredoka-latin-wght-normal.woff2") format("woff2");
}

/* ------------------------------------------------------------------ */
/* 21. Tokens dos temas novos                                          */
/* ------------------------------------------------------------------ */
body[data-theme="minimal"] {
  --cv-bg: #fbfbf9;
  --cv-bg-alt: #f1f1ed;
  --cv-surface: #ffffff;
  --cv-ink: #17181a;
  --cv-ink-soft: #5a5c61;
  --cv-accent: #b23a17;
  --cv-deco: #d4502a;
  --cv-line: rgba(23, 24, 26, .16);
  --cv-btn-bg: #17181a;
  --cv-btn-ink: #fbfbf9;
  --cv-btn-hover: #3a3c40;
  --cv-field-bg: #ffffff;
  --cv-field-line: #85878c;
  --cv-sel-bg: #f1f1ed;
  --cv-focus: #17181a;
  --cv-shadow: none;

  --cv-inv-bg: #17181a;
  --cv-inv-surface: #232427;
  --cv-inv-ink: #f6f6f3;
  --cv-inv-soft: #b9bbc0;
  --cv-inv-accent: #ff9a7a;
  --cv-inv-deco: #e8643c;
  --cv-inv-line: rgba(246, 246, 243, .26);
  --cv-inv-btn-bg: #f6f6f3;
  --cv-inv-btn-ink: #17181a;
  --cv-inv-btn-hover: #ffffff;
  --cv-inv-field-line: rgba(246, 246, 243, .6);
  --cv-inv-sel-bg: rgba(246, 246, 243, .12);
  --cv-inv-focus: #f6f6f3;
  --cv-scrim: linear-gradient(rgba(16, 17, 19, .5), rgba(16, 17, 19, .74));

  --cv-font-title: "Figtree", "Helvetica Neue", Arial, sans-serif;
  --cv-font-head: "Figtree", "Helvetica Neue", Arial, sans-serif;
  --cv-font-num: "Figtree", "Helvetica Neue", Arial, sans-serif;
  --cv-font-body: "Figtree", "Helvetica Neue", Arial, sans-serif;
  --cv-fw-title: 300;
  --cv-fw-head: 300;
  --cv-fw-num: 500;
  --cv-fw-body: 400;
  --cv-fw-strong: 600;
  --cv-fs-body: 1.0625rem;
  --cv-fs-small: .9375rem;
  --cv-lh-body: 1.6;
  --cv-title-size: clamp(2.625rem, min(12vw, 10vh), 5.5rem);
  --cv-title-lh: 1.05;
  --cv-title-ls: -.035em;
  --cv-h2-size: clamp(1.875rem, 6.8vw, 2.625rem);
  --cv-h2-lh: 1.14;
  --cv-h2-ls: -.025em;
  --cv-h3-size: 1.1875rem;
  --cv-quote-size: clamp(1.625rem, 6vw, 2.25rem);
  --cv-quote-style: italic;
  --cv-quote-weight: 500;

  --cv-label-size: .75rem;
  --cv-label-weight: 600;
  --cv-label-ls: .2em;
  --cv-label-case: uppercase;

  --cv-btn-size: .8125rem;
  --cv-btn-weight: 600;
  --cv-btn-ls: .14em;
  --cv-btn-case: uppercase;

  --cv-radius: 2px;
  --cv-radius-btn: 2px;
  --cv-radius-field: 2px;
  --cv-sec-y: clamp(72px, 12vw, 128px);
  --cv-measure: 32rem;
}

body[data-theme="gala"] {
  --cv-glow: rgba(220, 189, 122, .12);

  --cv-bg: #0b1322;
  --cv-bg-alt: #101b30;
  --cv-surface: #121e35;
  --cv-ink: #f3e9d2;
  --cv-ink-soft: #c9bea6;
  --cv-accent: #dcbd7a;
  --cv-deco: #b8975a;
  --cv-line: rgba(220, 189, 122, .3);
  --cv-btn-bg: #dcbd7a;
  --cv-btn-ink: #0b1322;
  --cv-btn-hover: #ecd49b;
  --cv-field-bg: rgba(255, 255, 255, .04);
  --cv-field-line: rgba(243, 233, 210, .58);
  --cv-sel-bg: rgba(220, 189, 122, .16);
  --cv-focus: #ecd49b;
  --cv-shadow: none;

  --cv-inv-bg: #060b15;
  --cv-inv-surface: #0b1322;
  --cv-inv-ink: #f3e9d2;
  --cv-inv-soft: #c9bea6;
  --cv-inv-accent: #dcbd7a;
  --cv-inv-deco: #b8975a;
  --cv-inv-line: rgba(220, 189, 122, .3);
  --cv-inv-btn-bg: #dcbd7a;
  --cv-inv-btn-ink: #060b15;
  --cv-inv-btn-hover: #ecd49b;
  --cv-inv-field-bg: rgba(255, 255, 255, .04);
  --cv-inv-field-line: rgba(243, 233, 210, .58);
  --cv-inv-sel-bg: rgba(220, 189, 122, .16);
  --cv-inv-focus: #ecd49b;
  --cv-scrim: linear-gradient(rgba(6, 11, 21, .62), rgba(6, 11, 21, .84));

  --cv-font-title: "Cinzel", "Cormorant Garamond", "Times New Roman", serif;
  --cv-font-head: "Cinzel", "Cormorant Garamond", "Times New Roman", serif;
  --cv-fw-title: 400;
  --cv-fw-head: 400;
  --cv-title-size: clamp(2.25rem, min(10.6vw, 8.4vh), 5rem);
  --cv-title-lh: 1.12;
  --cv-title-ls: .06em;
  --cv-h2-size: clamp(1.5rem, 5.6vw, 2.125rem);
  --cv-h2-lh: 1.28;
  --cv-h2-ls: .12em;

  --cv-label-font: "Cinzel", "Cormorant Garamond", serif;
  --cv-label-size: .8125rem;
  --cv-label-weight: 500;
  --cv-label-ls: .28em;

  --cv-btn-font: "Cinzel", "Cormorant Garamond", serif;
  --cv-btn-size: .8125rem;
  --cv-btn-weight: 600;
  --cv-btn-ls: .14em;
}

body[data-theme="rustico"] {
  --cv-leaf-1: #c2a86a;
  --cv-leaf-2: #8b8f5c;
  --cv-leaf-3: #b0623f;
  --cv-berry: #d08c4a;
  --cv-fibre: rgba(120, 84, 52, .05);

  --cv-bg: #f3e9d8;
  --cv-bg-alt: #e9dcc4;
  --cv-surface: #faf4e8;
  --cv-ink: #3a2a1f;
  --cv-ink-soft: #66503f;
  --cv-accent: #8f4226;
  --cv-deco: #b9794f;
  --cv-line: rgba(143, 66, 38, .3);
  --cv-btn-bg: #8c4126;
  --cv-btn-ink: #fbf4e6;
  --cv-btn-hover: #73331c;
  --cv-field-bg: #fdf9f0;
  --cv-field-line: #8b7461;
  --cv-sel-bg: #ecdcc0;
  --cv-focus: #8c4126;
  --cv-shadow: 0 16px 40px -26px rgba(58, 42, 31, .5);

  --cv-inv-bg: #7d3a22;
  --cv-inv-surface: #8c4630;
  --cv-inv-ink: #f8eedc;
  --cv-inv-soft: #ecd8c0;
  --cv-inv-accent: #f6dcb8;
  --cv-inv-deco: #e0b48c;
  --cv-inv-line: rgba(248, 238, 220, .32);
  --cv-inv-btn-bg: #f8eedc;
  --cv-inv-btn-ink: #7d3a22;
  --cv-inv-btn-hover: #ffffff;
  --cv-inv-field-line: rgba(248, 238, 220, .66);
  --cv-inv-sel-bg: rgba(248, 238, 220, .14);
  --cv-inv-focus: #f6dcb8;
  --cv-inv-leaf-1: #e6c9a0;
  --cv-inv-leaf-2: #d9b58a;
  --cv-inv-leaf-3: #f3dfc4;
  --cv-inv-berry: #f8eedc;
  --cv-scrim: linear-gradient(rgba(48, 28, 18, .5), rgba(48, 28, 18, .78));

  --cv-font-title: "DM Serif Display", "Fraunces", Georgia, serif;
  --cv-font-head: "DM Serif Display", "Fraunces", Georgia, serif;
  --cv-font-num: "DM Serif Display", "Fraunces", Georgia, serif;
  --cv-font-body: "Figtree", "Segoe UI", Arial, sans-serif;
  --cv-fw-title: 400;
  --cv-fw-head: 400;
  --cv-fw-num: 400;
  --cv-fw-body: 400;
  --cv-fw-strong: 600;
  --cv-fs-body: 1.0625rem;
  --cv-fs-small: .9375rem;
  --cv-lh-body: 1.6;
  --cv-title-size: clamp(2.875rem, min(13.4vw, 9.6vh), 5.75rem);
  --cv-title-lh: 1.02;
  --cv-title-ls: 0;
  --cv-h2-size: clamp(1.9375rem, 7.2vw, 2.75rem);
  --cv-h2-lh: 1.14;
  --cv-h3-size: 1.3125rem;
  --cv-quote-size: clamp(1.375rem, 5.2vw, 1.8125rem);
  --cv-quote-style: normal;
  --cv-quote-weight: 400;

  --cv-label-size: .8125rem;
  --cv-label-weight: 600;
  --cv-label-ls: .22em;

  --cv-btn-size: .875rem;
  --cv-btn-weight: 600;
  --cv-btn-ls: .12em;

  --cv-radius: 8px;
  --cv-radius-btn: 6px;
  --cv-radius-field: 6px;
  --cv-radius-img: 3px;
}

body[data-theme="festa"] {
  /* quatro cores de confete (as classes cv-lf1..3 e cv-berry do sprite usam estas) */
  --cv-leaf-1: #ff6b5c;
  --cv-leaf-2: #ffc53d;
  --cv-leaf-3: #19b3a1;
  --cv-berry: #6c7bff;
  --cv-tint-1: #ffdcd6;
  --cv-tint-2: #ffecb0;
  --cv-tint-3: #c9f0ea;
  --cv-tint-4: #dde1ff;
  --cv-fun-ink: #25235e;
  --cv-btn-shade: #121140;

  --cv-bg: #fff8ec;
  --cv-bg-alt: #ffeed2;
  --cv-surface: #ffffff;
  --cv-ink: #25235e;
  --cv-ink-soft: #55537f;
  --cv-accent: #c2334a;
  --cv-deco: #ff6b5c;
  --cv-line: rgba(37, 35, 94, .18);
  --cv-btn-bg: #25235e;
  --cv-btn-ink: #ffffff;
  --cv-btn-hover: #38358a;
  --cv-field-bg: #ffffff;
  --cv-field-line: #7a78a3;
  --cv-sel-bg: #ffecb0;
  --cv-focus: #25235e;
  --cv-shadow: none;

  --cv-inv-bg: #25235e;
  --cv-inv-surface: #322f78;
  --cv-inv-ink: #ffffff;
  --cv-inv-soft: #d3d1f2;
  --cv-inv-accent: #ffd668;
  --cv-inv-deco: #ff8a7d;
  --cv-inv-line: rgba(255, 255, 255, .3);
  --cv-inv-btn-bg: #ffc53d;
  --cv-inv-btn-ink: #25235e;
  --cv-inv-btn-hover: #ffd668;
  --cv-inv-field-line: rgba(255, 255, 255, .66);
  --cv-inv-sel-bg: rgba(255, 255, 255, .14);
  --cv-inv-focus: #ffd668;
  --cv-scrim: linear-gradient(rgba(37, 35, 94, .46), rgba(37, 35, 94, .8));

  --cv-font-title: "Fredoka", "Figtree", "Trebuchet MS", sans-serif;
  --cv-font-head: "Fredoka", "Figtree", "Trebuchet MS", sans-serif;
  --cv-font-num: "Fredoka", "Figtree", "Trebuchet MS", sans-serif;
  --cv-font-body: "Figtree", "Segoe UI", Arial, sans-serif;
  --cv-fw-title: 600;
  --cv-fw-head: 600;
  --cv-fw-num: 500;
  --cv-fw-body: 400;
  --cv-fw-strong: 700;
  --cv-fs-body: 1.0625rem;
  --cv-fs-small: .9375rem;
  --cv-lh-body: 1.55;
  --cv-title-size: clamp(3.25rem, min(16vw, 12vh), 7rem);
  --cv-title-lh: .98;
  --cv-title-ls: -.01em;
  --cv-h2-size: clamp(2rem, 8vw, 3rem);
  --cv-h2-lh: 1.08;
  --cv-h2-ls: -.005em;
  --cv-h3-size: 1.3125rem;
  --cv-quote-size: clamp(1.4375rem, 5.4vw, 1.9375rem);
  --cv-quote-style: normal;
  --cv-quote-weight: 500;

  --cv-label-font: "Fredoka", "Figtree", sans-serif;
  --cv-label-size: 1rem;
  --cv-label-weight: 600;
  --cv-label-ls: .02em;
  --cv-label-case: none;

  --cv-btn-font: "Fredoka", "Figtree", sans-serif;
  --cv-btn-size: 1.0625rem;
  --cv-btn-weight: 600;
  --cv-btn-ls: .01em;
  --cv-btn-case: none;

  --cv-bw: 2px;
  --cv-radius: 26px;
  --cv-radius-btn: 999px;
  --cv-radius-field: 16px;
  --cv-radius-img: 18px;
}

/* ------------------------------------------------------------------ */
/* 22. Tema minimal: branco, tipo fino, um unico fio de cor            */
/* ------------------------------------------------------------------ */
body[data-theme="minimal"] .cv-cover {
  padding: 112px 32px 112px;
}

/* o unico enfeite da capa: um fio de prumo que desce do topo */
body[data-theme="minimal"] .cv-cover__frame {
  display: block;
  top: 0;
  left: 50%;
  width: 1px;
  height: min(19vh, 168px);
  background: var(--cv-deco);
}

body[data-theme="minimal"] .cv-cover__type {
  color: var(--cv-ink-soft);
}

body[data-theme="minimal"] .cv-cover__title {
  margin-top: 28px;
}

body[data-theme="minimal"] .cv-amp {
  margin: .1em 0;
  color: var(--cv-ink-soft);
  font-size: .5em;
  line-height: 1.2;
}

body[data-theme="minimal"] .cv-cover__lead {
  max-width: 18.5rem;
  margin-top: 28px;
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  font-size: 1.4375rem;
  font-style: italic;
  font-weight: 500;
  line-height: 1.32;
}

body[data-theme="minimal"] .cv-cover__orn,
body[data-theme="minimal"] .cv-section__orn,
body[data-theme="minimal"] .cv-closing__orn {
  width: 56px;
  height: 2px;
}

body[data-theme="minimal"] .cv-cover__orn {
  margin-top: 40px;
}

body[data-theme="minimal"] .cv-cover__meta {
  gap: 10px;
  margin-top: 40px;
}

body[data-theme="minimal"] .cv-when {
  gap: 12px;
}

body[data-theme="minimal"] .cv-when__date {
  font-size: 1.375rem;
  letter-spacing: -.015em;
}

body[data-theme="minimal"] .cv-when__rest,
body[data-theme="minimal"] .cv-cover__city {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .2em;
  line-height: 1.5;
  text-transform: uppercase;
}

body[data-theme="minimal"] .cv-section__orn {
  margin-bottom: 28px;
}

body[data-theme="minimal"] .cv-section__head {
  margin-bottom: 44px;
}

body[data-theme="minimal"] .cv-countdown__grid {
  gap: 0;
  max-width: 26rem;
}

body[data-theme="minimal"] .cv-countdown__cell {
  gap: 12px;
  padding: 4px 2px;
}

body[data-theme="minimal"] .cv-countdown__cell + .cv-countdown__cell {
  border-left: 1px solid var(--cv-line);
}

body[data-theme="minimal"] .cv-countdown__num {
  font-size: clamp(2.25rem, 10.5vw, 3.5rem);
  font-weight: 300;
  letter-spacing: -.03em;
}

body[data-theme="minimal"] .cv-countdown__lbl {
  font-size: .6875rem;
  letter-spacing: .18em;
}

body[data-theme="minimal"] .cv-details__list {
  gap: 0;
  border-bottom: 1px solid var(--cv-line);
}

body[data-theme="minimal"] .cv-detail {
  padding: 28px 0;
  border-top: 1px solid var(--cv-line);
}

body[data-theme="minimal"] .cv-detail__label {
  gap: 14px;
  color: var(--cv-ink-soft);
}

body[data-theme="minimal"] .cv-detail__label .cv-icon {
  width: 22px;
  height: 22px;
  color: var(--cv-ink);
  stroke-width: 1.25;
}

body[data-theme="minimal"] .cv-detail__value {
  margin-top: 12px;
  font-size: 1.375rem;
  font-weight: 400;
  letter-spacing: -.015em;
  line-height: 1.3;
}

body[data-theme="minimal"] .cv-message__mark {
  width: 56px;
  height: 1px;
  margin: 0 auto;
  background: var(--cv-deco);
  font-size: 0;
}

body[data-theme="minimal"] .cv-message__text {
  margin-top: 36px;
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  line-height: 1.28;
}

body[data-theme="minimal"] .cv-message__sign {
  margin-top: 28px;
  color: var(--cv-ink-soft);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
}

body[data-theme="minimal"] .cv-gallery__grid {
  gap: 6px;
}

body[data-theme="minimal"] .cv-rsvp {
  --cv-band: 1;
  background: var(--cv-bg-alt);
}

body[data-theme="minimal"] .cv-rsvp__deadline {
  color: var(--cv-ink);
  font-size: var(--cv-fs-small);
}

body[data-theme="minimal"] .cv-rsvp__card {
  border-color: transparent;
}

body[data-theme="minimal"] .cv-choice__icon .cv-icon,
body[data-theme="minimal"] .cv-gift__icon .cv-icon {
  stroke-width: 1.25;
}

body[data-theme="minimal"] .cv-gift {
  padding: 22px 0 12px;
  border-width: 1px 0 0;
  background: transparent;
}

body[data-theme="minimal"] .cv-gift:last-child {
  border-bottom-width: 1px;
}

body[data-theme="minimal"] .cv-gift__icon {
  border: 1px solid var(--cv-line);
  background: transparent;
  color: var(--cv-ink);
}

body[data-theme="minimal"] .cv-pix {
  border-style: solid;
  border-color: var(--cv-line);
}

body[data-theme="minimal"] .cv-pix__key {
  font-size: 1.75rem;
  font-weight: 300;
  letter-spacing: -.02em;
}

body[data-theme="minimal"] .cv-closing__lead {
  color: var(--cv-ink-soft);
}

body[data-theme="minimal"] .cv-closing__names {
  font-size: calc(var(--cv-title-size) * .72);
}

body[data-theme="minimal"] .cv-closing__date {
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .2em;
}

@media (min-width: 800px) {
  body[data-theme="minimal"] .cv-details__list {
    border-bottom: 0;
  }

  body[data-theme="minimal"] .cv-detail {
    padding: 32px 12px 0;
  }

  body[data-theme="minimal"] .cv-gift {
    padding: 32px 16px 20px;
    border-width: 1px 0;
  }
}

/* ------------------------------------------------------------------ */
/* 23. Tema gala: noite azul, dourado, leque art-deco                  */
/* ------------------------------------------------------------------ */
body[data-theme="gala"] .cv-cover {
  padding: 140px 34px 132px;
  background:
    radial-gradient(90% 50% at 50% 0%, var(--cv-glow), transparent 72%),
    var(--cv-bg);
}

body[data-theme="gala"] .cv-cover.has-photo {
  background: var(--cv-bg);
}

body[data-theme="gala"] .cv-cover__frame {
  display: block;
  top: 12px;
  right: 12px;
  bottom: 12px;
  left: 12px;
  border: 1px solid var(--cv-deco);
  opacity: .6;
}

/* leque de raios (simbolo cv-orn-cover) nascendo da moldura, em cima e embaixo */
body[data-theme="gala"] .cv-cover__art,
body[data-theme="gala"] .cv-closing__art {
  display: block;
  left: 50%;
  width: 288px;
  height: 216px;
  margin-left: -144px;
  color: var(--cv-deco);
  fill: none;
  stroke: currentColor;
  stroke-width: 1;
  stroke-linecap: round;
  overflow: visible;
}

body[data-theme="gala"] .cv-cover__art--a {
  top: 12px;
}

body[data-theme="gala"] .cv-cover__art--b {
  bottom: 12px;
  transform: rotate(180deg);
}

body[data-theme="gala"] .cv-cover__monogram {
  position: relative;
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  margin-bottom: 34px;
  color: var(--cv-accent);
  font-family: var(--cv-font-title);
  font-size: 1.375rem;
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1;
}

body[data-theme="gala"] .cv-cover__monogram--pair {
  font-size: 1rem;
}

body[data-theme="gala"] .cv-cover__monogram::before,
body[data-theme="gala"] .cv-cover__monogram::after {
  content: "";
  position: absolute;
  top: 5px;
  right: 5px;
  bottom: 5px;
  left: 5px;
  border: 1px solid var(--cv-deco);
  transform: rotate(45deg);
}

body[data-theme="gala"] .cv-cover__monogram::after {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: .45;
}

body[data-theme="gala"] .cv-cover__monogram-amp {
  margin: 0 .1em;
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  font-style: italic;
}

body[data-theme="gala"] .cv-cover__title {
  margin-top: 22px;
  text-transform: uppercase;
}

body[data-theme="gala"] .cv-amp {
  margin: .1em 0 .06em;
  color: var(--cv-accent);
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  font-size: .66em;
  font-style: italic;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
}

body[data-theme="gala"] .cv-cover__lead {
  max-width: 19rem;
  font-size: 1.3125rem;
  font-style: italic;
  line-height: 1.35;
}

body[data-theme="gala"] .cv-cover__orn,
body[data-theme="gala"] .cv-section__orn,
body[data-theme="gala"] .cv-closing__orn {
  width: 160px;
  height: 16px;
}

body[data-theme="gala"] .cv-cover__meta {
  gap: 6px;
}

body[data-theme="gala"] .cv-when {
  gap: 8px;
}

body[data-theme="gala"] .cv-when__date {
  color: var(--cv-accent);
  font-family: var(--cv-font-title);
  font-size: 1.0625rem;
  font-weight: 500;
  letter-spacing: .2em;
  line-height: 1.4;
  text-transform: uppercase;
}

body[data-theme="gala"] .cv-when__rest,
body[data-theme="gala"] .cv-cover__city {
  font-size: 1.25rem;
  font-style: italic;
  line-height: 1.3;
}

body[data-theme="gala"] .cv-section__orn {
  margin-bottom: 22px;
}

body[data-theme="gala"] .cv-section__title {
  --cv-h2-color: var(--cv-accent);
  text-transform: uppercase;
}

body[data-theme="gala"] .cv-countdown__grid {
  gap: 10px;
  max-width: 27rem;
}

body[data-theme="gala"] .cv-countdown__cell {
  gap: 10px;
  padding: 18px 2px 14px;
  border: 1px solid var(--cv-line);
  background: var(--cv-surface);
}

body[data-theme="gala"] .cv-countdown__num {
  color: var(--cv-accent);
  font-size: clamp(2.125rem, 9.4vw, 3.25rem);
}

body[data-theme="gala"] .cv-countdown__lbl {
  font-size: .6875rem;
  letter-spacing: .2em;
}

body[data-theme="gala"] .cv-countdown__done {
  color: var(--cv-accent);
  letter-spacing: .1em;
  text-transform: uppercase;
}

body[data-theme="gala"] .cv-details__list {
  gap: 30px;
}

body[data-theme="gala"] .cv-detail + .cv-detail {
  padding-top: 30px;
  border-top: 1px solid var(--cv-line);
}

body[data-theme="gala"] .cv-detail__label .cv-icon {
  color: var(--cv-deco);
  stroke-width: 1.25;
}

body[data-theme="gala"] .cv-btn {
  padding-left: 18px;
  padding-right: 18px;
}

body[data-theme="gala"] .cv-message {
  --cv-band: 1;
  border-top: 1px solid var(--cv-line);
  border-bottom: 1px solid var(--cv-line);
  background: var(--cv-bg-alt);
}

body[data-theme="gala"] .cv-message__sign {
  font-family: var(--cv-label-font);
  font-size: var(--cv-label-size);
  font-weight: var(--cv-label-weight);
  letter-spacing: var(--cv-label-ls);
  text-transform: uppercase;
}

body[data-theme="gala"] .cv-gallery__item {
  padding: 5px;
  border: 1px solid var(--cv-line);
  background: transparent;
}

body[data-theme="gala"] .cv-rsvp__card {
  border-color: var(--cv-deco);
  outline: 1px solid var(--cv-line);
  outline-offset: 5px;
}

body[data-theme="gala"] .cv-choice__legend,
body[data-theme="gala"] .cv-field__label {
  font-size: 1.125rem;
}

body[data-theme="gala"] .cv-gift {
  padding: 20px 0 10px;
  border-width: 1px 0 0;
  background: transparent;
}

body[data-theme="gala"] .cv-gift:last-child {
  border-bottom-width: 1px;
}

body[data-theme="gala"] .cv-gift__icon {
  border: 1px solid var(--cv-deco);
  background: transparent;
}

body[data-theme="gala"] .cv-pix {
  border-style: solid;
  border-color: var(--cv-deco);
}

body[data-theme="gala"] .cv-pix__key {
  color: var(--cv-accent);
}

body[data-theme="gala"] .cv-closing {
  padding-top: 164px;
}

body[data-theme="gala"] .cv-closing__art {
  top: 0;
  opacity: .8;
}

body[data-theme="gala"] .cv-closing__names {
  font-size: calc(var(--cv-title-size) * .64);
  line-height: 1.25;
  text-transform: uppercase;
}

body[data-theme="gala"] .cv-closing__date {
  font-family: var(--cv-label-font);
  font-size: var(--cv-label-size);
  letter-spacing: var(--cv-label-ls);
}

@media (max-width: 359px) {
  body[data-theme="gala"] .cv-cover {
    padding: 120px 28px 116px;
  }

  body[data-theme="gala"] .cv-cover__art {
    width: 240px;
    height: 180px;
    margin-left: -120px;
  }

  body[data-theme="gala"] .cv-when__date {
    font-size: .9375rem;
    letter-spacing: .14em;
  }
}

@media (min-width: 800px) {
  body[data-theme="gala"] .cv-cover__frame {
    top: 24px;
    right: 24px;
    bottom: 24px;
    left: 24px;
  }

  body[data-theme="gala"] .cv-cover__art--a {
    top: 24px;
  }

  body[data-theme="gala"] .cv-cover__art--b {
    bottom: 24px;
  }

  body[data-theme="gala"] .cv-cover__cue {
    bottom: 34px;
  }

  body[data-theme="gala"] .cv-detail + .cv-detail {
    padding-top: 0;
    border-top: 0;
    border-left: 1px solid var(--cv-line);
  }

  body[data-theme="gala"] .cv-gift {
    padding: 32px 16px 20px;
    border-width: 1px 0;
  }
}

/* ------------------------------------------------------------------ */
/* 24. Tema rustico: papel kraft, terracota, coroa de ramos, pesponto  */
/* ------------------------------------------------------------------ */
body[data-theme="rustico"] .cv-cover {
  --cv-rus-top: clamp(40px, calc(50vh - 334px), 150px);
  justify-content: flex-start;
  padding: var(--cv-rus-top) 30px 104px;
  background:
    radial-gradient(100% 60% at 50% 26%, rgba(255, 255, 255, .5), rgba(255, 255, 255, 0) 70%),
    repeating-linear-gradient(113deg, var(--cv-fibre) 0 1px, transparent 1px 6px),
    repeating-linear-gradient(23deg, var(--cv-fibre) 0 1px, transparent 1px 9px),
    var(--cv-bg);
}

body[data-theme="rustico"] .cv-cover.has-photo {
  background: var(--cv-bg);
}

body[data-theme="rustico"] .cv-cover.has-photo,
body[data-theme="rustico"] .cv-closing {
  --cv-leaf-1: var(--cv-inv-leaf-1);
  --cv-leaf-2: var(--cv-inv-leaf-2);
  --cv-leaf-3: var(--cv-inv-leaf-3);
  --cv-berry: var(--cv-inv-berry);
}

/* pesponto: borda tracejada como costura no papel */
body[data-theme="rustico"] .cv-cover__frame {
  display: block;
  top: 10px;
  right: 10px;
  bottom: 10px;
  left: 10px;
  border: 1px dashed var(--cv-deco);
  border-radius: 6px;
  opacity: .8;
}

/* a coroa de ramos (simbolo cv-orn-cover) fica atras do monograma */
body[data-theme="rustico"] .cv-cover__art--a {
  display: block;
  top: var(--cv-rus-top);
  left: 50%;
  width: 232px;
  height: 174px;
  margin-left: -116px;
  overflow: visible;
}

body[data-theme="rustico"] .cv-cover__monogram {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 232px;
  max-width: 100%;
  height: 174px;
  margin-bottom: 20px;
  font-family: var(--cv-font-title);
  font-size: 1.875rem;
  line-height: 1;
}

body[data-theme="rustico"] .cv-cover__monogram-amp {
  margin: 0 .14em;
  color: var(--cv-accent);
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  font-size: .9em;
  font-style: italic;
}

body[data-theme="rustico"] .cv-cover__title {
  margin-top: 14px;
}

body[data-theme="rustico"] .cv-amp {
  margin: .02em 0 .04em;
  color: var(--cv-accent);
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  font-size: .6em;
  font-style: italic;
  font-weight: 500;
  line-height: 1;
}

body[data-theme="rustico"] .cv-cover__lead {
  max-width: 18rem;
  margin-top: 18px;
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  font-size: 1.375rem;
  font-style: italic;
  font-weight: 500;
  line-height: 1.3;
}

body[data-theme="rustico"] .cv-cover__orn,
body[data-theme="rustico"] .cv-section__orn,
body[data-theme="rustico"] .cv-closing__orn {
  width: 128px;
  height: 30px;
}

body[data-theme="rustico"] .cv-cover__orn {
  margin-top: 16px;
}

body[data-theme="rustico"] .cv-cover__meta {
  gap: 2px;
  margin-top: 14px;
}

body[data-theme="rustico"] .cv-when {
  gap: 4px;
}

body[data-theme="rustico"] .cv-when__date {
  font-size: clamp(1.3125rem, 6vw, 1.5rem);
}

body[data-theme="rustico"] .cv-section__orn {
  margin-bottom: 12px;
}

body[data-theme="rustico"] .cv-section__title {
  --cv-h2-color: var(--cv-accent);
}

body[data-theme="rustico"] .cv-countdown__grid {
  gap: 10px;
  max-width: 26rem;
}

/* etiquetas de papel com pesponto */
body[data-theme="rustico"] .cv-countdown__cell {
  gap: 6px;
  padding: 18px 2px 14px;
  border-radius: 6px;
  background: var(--cv-bg-alt);
  outline: 1px dashed var(--cv-deco);
  outline-offset: -5px;
}

body[data-theme="rustico"] .cv-countdown__num {
  color: var(--cv-accent);
  font-size: clamp(2rem, 9vw, 3rem);
}

body[data-theme="rustico"] .cv-countdown__lbl {
  font-size: .6875rem;
  letter-spacing: .14em;
}

body[data-theme="rustico"] .cv-countdown__done {
  color: var(--cv-accent);
  font-size: 1.75rem;
}

body[data-theme="rustico"] .cv-detail__label .cv-icon {
  color: var(--cv-deco);
}

body[data-theme="rustico"] .cv-message__sign {
  font-size: var(--cv-label-size);
  font-weight: var(--cv-label-weight);
  letter-spacing: var(--cv-label-ls);
  text-transform: uppercase;
}

/* fotos como copias em papel */
body[data-theme="rustico"] .cv-gallery__item {
  padding: 6px;
  background: var(--cv-surface);
  box-shadow: 0 8px 20px -14px rgba(58, 42, 31, .7), 0 0 0 1px var(--cv-line);
}

body[data-theme="rustico"] .cv-rsvp {
  --cv-band: 1;
  background:
    repeating-linear-gradient(113deg, var(--cv-fibre) 0 1px, transparent 1px 6px),
    var(--cv-bg-alt);
}

body[data-theme="rustico"] .cv-rsvp__card {
  border-color: transparent;
  outline: 1px dashed var(--cv-deco);
  outline-offset: -8px;
}

body[data-theme="rustico"] .cv-gift {
  border-color: transparent;
  box-shadow: 0 0 0 1px var(--cv-line);
}

body[data-theme="rustico"] .cv-closing__names {
  font-size: calc(var(--cv-title-size) * .66);
}

@media (min-width: 800px) {
  body[data-theme="rustico"] .cv-cover__frame {
    top: 18px;
    right: 18px;
    bottom: 18px;
    left: 18px;
  }
}

/* ------------------------------------------------------------------ */
/* 25. Tema festa: creme, quatro cores de confete, balao com a idade   */
/* ------------------------------------------------------------------ */
body[data-theme="festa"] .cv-icon {
  stroke-width: 2;
}

/* rabiscos e aneis do confete (classe cv-stem dentro do sprite) */
body[data-theme="festa"] .cv-stem {
  stroke: var(--cv-leaf-3);
  stroke-width: 3;
}

body[data-theme="festa"] .cv-orn {
  stroke-width: 3;
}

body[data-theme="festa"] .cv-cover {
  padding: 92px 28px 128px;
}

body[data-theme="festa"] .cv-cover__art,
body[data-theme="festa"] .cv-closing__art {
  display: block;
  left: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  overflow: visible;
}

body[data-theme="festa"] .cv-cover__art--a {
  top: 0;
}

body[data-theme="festa"] .cv-cover__art--b {
  bottom: 0;
  transform: rotate(180deg);
}

/* o monograma (a idade ou a inicial) vira um balao */
body[data-theme="festa"] .cv-cover__monogram {
  position: relative;
  display: grid;
  place-items: center;
  width: 104px;
  height: 124px;
  margin-bottom: 50px;
  border-radius: 50% 50% 50% 50% / 46% 46% 54% 54%;
  background:
    radial-gradient(circle at 30% 24%, rgba(255, 255, 255, .6) 0, rgba(255, 255, 255, .6) 7%, rgba(255, 255, 255, 0) 8%),
    var(--cv-leaf-1);
  box-shadow: inset -9px -11px 0 rgba(0, 0, 0, .07);
  color: var(--cv-fun-ink);
  font-family: var(--cv-font-title);
  font-size: 3.75rem;
  font-weight: 700;
  line-height: 1;
}

/* o texto do balao com 2 ou 3 caracteres (opcao balao): letra menor */
body[data-theme="festa"] .cv-cover__monogram--l2 {
  font-size: 2.75rem;
  letter-spacing: -.02em;
}

body[data-theme="festa"] .cv-cover__monogram--l3 {
  font-size: 2rem;
  letter-spacing: -.02em;
}

body[data-theme="festa"] .cv-cover__monogram--pair {
  font-size: 1.75rem;
}

body[data-theme="festa"] .cv-cover__monogram::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin: -3px 0 0 -8px;
  border: 8px solid transparent;
  border-top: 0;
  border-bottom: 10px solid var(--cv-leaf-1);
}

body[data-theme="festa"] .cv-cover__monogram::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  width: 2px;
  height: 34px;
  margin: 7px 0 0 -1px;
  border-radius: 1px;
  background: var(--cv-ink-soft);
  opacity: .55;
}

body[data-theme="festa"] .cv-cover__type {
  padding: 6px 18px;
  border-radius: 999px;
  background: var(--cv-tint-2);
  color: var(--cv-fun-ink);
}

body[data-theme="festa"] .cv-cover__title {
  margin-top: 18px;
}

body[data-theme="festa"] .cv-amp {
  color: var(--cv-accent);
  font-size: .7em;
  line-height: 1;
}

body[data-theme="festa"] .cv-cover__lead {
  max-width: 19rem;
  margin-top: 18px;
  font-size: 1.125rem;
  line-height: 1.45;
}

body[data-theme="festa"] .cv-cover__orn,
body[data-theme="festa"] .cv-section__orn,
body[data-theme="festa"] .cv-closing__orn {
  width: 120px;
  height: 16px;
}

body[data-theme="festa"] .cv-cover__orn {
  margin-top: 22px;
}

body[data-theme="festa"] .cv-cover__meta {
  gap: 2px;
  margin-top: 22px;
}

body[data-theme="festa"] .cv-when {
  gap: 12px;
}

/* a data em uma pilula */
body[data-theme="festa"] .cv-when__date {
  padding: 10px 22px;
  border-radius: 999px;
  background: var(--cv-ink);
  color: var(--cv-bg);
  font-size: clamp(1.125rem, 5.2vw, 1.3125rem);
  font-weight: 600;
}

body[data-theme="festa"] .cv-when__rest,
body[data-theme="festa"] .cv-cover__city {
  color: var(--cv-ink);
  font-weight: 600;
}

body[data-theme="festa"] .cv-section__orn {
  margin-bottom: 16px;
}

body[data-theme="festa"] .cv-countdown__grid {
  gap: 10px;
  max-width: 27rem;
}

body[data-theme="festa"] .cv-countdown__cell {
  aspect-ratio: 1 / 1.08;
  gap: 2px;
  border-radius: 22px;
  background: var(--cv-tint-1);
  color: var(--cv-fun-ink);
  transform: rotate(-3deg);
}

body[data-theme="festa"] .cv-countdown__cell:nth-child(2) {
  background: var(--cv-tint-2);
  transform: rotate(2deg);
}

body[data-theme="festa"] .cv-countdown__cell:nth-child(3) {
  background: var(--cv-tint-3);
  transform: rotate(-1.5deg);
}

body[data-theme="festa"] .cv-countdown__cell:nth-child(4) {
  background: var(--cv-tint-4);
  transform: rotate(3deg);
}

body[data-theme="festa"] .cv-countdown__num {
  font-size: clamp(1.875rem, 8.6vw, 2.75rem);
  font-weight: 600;
}

body[data-theme="festa"] .cv-countdown__lbl {
  color: var(--cv-fun-ink);
  font-size: .875rem;
}

body[data-theme="festa"] .cv-countdown__done {
  font-size: 1.75rem;
  font-weight: 600;
}

body[data-theme="festa"] .cv-detail__label {
  color: var(--cv-ink-soft);
}

body[data-theme="festa"] .cv-detail__label .cv-icon {
  box-sizing: content-box;
  width: 26px;
  height: 26px;
  padding: 15px;
  border-radius: 50%;
  background: var(--cv-tint-1);
  color: var(--cv-fun-ink);
}

body[data-theme="festa"] .cv-detail:nth-child(2) .cv-detail__label .cv-icon {
  background: var(--cv-tint-3);
}

body[data-theme="festa"] .cv-detail:nth-child(3) .cv-detail__label .cv-icon {
  background: var(--cv-tint-4);
}

body[data-theme="festa"] .cv-detail__value {
  font-weight: 600;
}

body[data-theme="festa"] .cv-btn {
  box-shadow: 0 4px 0 var(--cv-btn-shade);
}

body[data-theme="festa"] .cv-btn:active {
  box-shadow: 0 1px 0 var(--cv-btn-shade);
  transform: translateY(3px);
}

body[data-theme="festa"] .cv-btn--ghost {
  background: var(--cv-surface);
  box-shadow: 0 4px 0 var(--cv-line);
}

body[data-theme="festa"] .cv-btn--ghost:hover {
  background: var(--cv-btn-bg);
}

body[data-theme="festa"] .cv-message {
  --cv-band: 1;
  background: var(--cv-bg-alt);
}

body[data-theme="festa"] .cv-message__sign {
  font-family: var(--cv-font-head);
  font-size: 1.125rem;
  font-weight: 600;
}

body[data-theme="festa"] .cv-rsvp__card {
  border-color: var(--cv-ink);
  box-shadow: 8px 8px 0 var(--cv-leaf-2);
}

body[data-theme="festa"] .cv-choice__title,
body[data-theme="festa"] .cv-gift__name,
body[data-theme="festa"] .cv-pix__title,
body[data-theme="festa"] .cv-rsvp__done-title {
  font-weight: 600;
}

body[data-theme="festa"] .cv-rsvp__done-icon {
  background: var(--cv-leaf-3);
  color: var(--cv-fun-ink);
}

body[data-theme="festa"] .cv-gift {
  border-color: transparent;
  box-shadow: 0 0 0 2px var(--cv-line);
}

body[data-theme="festa"] .cv-gift__icon {
  background: var(--cv-tint-1);
  color: var(--cv-fun-ink);
}

body[data-theme="festa"] .cv-gift:nth-child(3n + 2) .cv-gift__icon {
  background: var(--cv-tint-3);
}

body[data-theme="festa"] .cv-gift:nth-child(3n) .cv-gift__icon {
  background: var(--cv-tint-4);
}

body[data-theme="festa"] .cv-pix {
  background: var(--cv-surface);
}

body[data-theme="festa"] .cv-pix__key {
  font-weight: 600;
}

body[data-theme="festa"] .cv-closing {
  padding-top: clamp(150px, 40vw, 190px);
}

body[data-theme="festa"] .cv-closing__art {
  top: 0;
  left: 50%;
  max-width: 520px;
  transform: translateX(-50%);
}

body[data-theme="festa"] .cv-closing__names {
  font-size: calc(var(--cv-title-size) * .7);
  line-height: 1.05;
}

body[data-theme="festa"] .cv-closing__date {
  font-family: var(--cv-font-head);
  font-size: 1.1875rem;
  font-weight: 500;
}

body[data-theme="festa"] .cv-music {
  border-color: var(--cv-fun-ink);
  background: var(--cv-leaf-2);
  color: var(--cv-fun-ink);
  box-shadow: 0 4px 0 var(--cv-fun-ink);
}

body[data-theme="festa"] .cv-music[aria-pressed="true"] {
  background: var(--cv-fun-ink);
  color: var(--cv-leaf-2);
}

@media (min-width: 800px) {
  body[data-theme="festa"] .cv-cover__art {
    width: min(34vw, 460px);
  }

  body[data-theme="festa"] .cv-cover__art--b {
    left: auto;
    right: 0;
  }
}

/* ------------------------------------------------------------------ */
/* 26. Paletas: <body data-theme="..." data-palette="...">             */
/*     Sem data-palette vale a paleta padrao do tema (blocos acima).   */
/*     Cada paleta so redefine variaveis de cor.                       */
/* ------------------------------------------------------------------ */

/* --- classic: azul (porcelana) e vinho ----------------------------- */
body[data-theme="classic"][data-palette="azul"] {
  --cv-bg: #f1f4f7;
  --cv-bg-alt: #e2e8ee;
  --cv-surface: #f9fbfc;
  --cv-ink: #1b2a41;
  --cv-ink-soft: #48566b;
  --cv-accent: #2f5475;
  --cv-deco: #7f9bb5;
  --cv-line: rgba(27, 42, 65, .2);
  --cv-btn-bg: #1b2a41;
  --cv-btn-ink: #f1f4f7;
  --cv-btn-hover: #2c4162;
  --cv-field-bg: #f9fbfc;
  --cv-field-line: #7b8696;
  --cv-sel-bg: #dfe7ef;
  --cv-focus: #2f5475;

  --cv-inv-bg: #1b2a41;
  --cv-inv-surface: #25364f;
  --cv-inv-ink: #eef2f6;
  --cv-inv-soft: #c3ccd8;
  --cv-inv-accent: #b9cfe3;
  --cv-inv-deco: #7f9bb5;
  --cv-inv-line: rgba(238, 242, 246, .28);
  --cv-inv-btn-bg: #eef2f6;
  --cv-inv-btn-ink: #1b2a41;
  --cv-inv-btn-hover: #ffffff;
  --cv-inv-field-line: rgba(238, 242, 246, .62);
  --cv-inv-sel-bg: rgba(238, 242, 246, .12);
  --cv-inv-focus: #b9cfe3;
  --cv-scrim: linear-gradient(rgba(18, 28, 44, .58), rgba(18, 28, 44, .74));
}

body[data-theme="classic"][data-palette="vinho"] {
  --cv-bg: #f7f0e9;
  --cv-bg-alt: #eee0d6;
  --cv-surface: #fcf8f3;
  --cv-ink: #3b1420;
  --cv-ink-soft: #5e434a;
  --cv-accent: #7a2337;
  --cv-deco: #b98a6a;
  --cv-line: rgba(59, 20, 32, .2);
  --cv-btn-bg: #5c1a2b;
  --cv-btn-ink: #f7f0e9;
  --cv-btn-hover: #74263a;
  --cv-field-bg: #fcf8f3;
  --cv-field-line: #8a7770;
  --cv-sel-bg: #f0dfd6;
  --cv-focus: #7a2337;

  --cv-inv-bg: #4a1524;
  --cv-inv-surface: #5a2031;
  --cv-inv-ink: #f7ebe2;
  --cv-inv-soft: #dcc5c0;
  --cv-inv-accent: #e6c3a6;
  --cv-inv-deco: #b98a6a;
  --cv-inv-line: rgba(247, 235, 226, .28);
  --cv-inv-btn-bg: #f7ebe2;
  --cv-inv-btn-ink: #4a1524;
  --cv-inv-btn-hover: #ffffff;
  --cv-inv-field-line: rgba(247, 235, 226, .62);
  --cv-inv-sel-bg: rgba(247, 235, 226, .12);
  --cv-inv-focus: #e6c3a6;
  --cv-scrim: linear-gradient(rgba(44, 12, 22, .58), rgba(44, 12, 22, .76));
}

/* --- romantic: lilas e azul ---------------------------------------- */
/*
 * As regras originais do tema romantic trazem os tons de rosa escritos direto
 * (aquarela da capa, "&", fundo do RSVP, sombra dos presentes). Para a paleta
 * poder troca-los sem mexer nessas regras, as quatro regras abaixo so valem
 * quando existe data-palette e leem as variaveis --cv-wash-* e --cv-amp.
 */
body[data-theme="romantic"][data-palette] .cv-cover {
  background:
    linear-gradient(to top, var(--cv-bg), var(--cv-wash-0) 16%),
    radial-gradient(60% 38% at 12% 8%, var(--cv-wash-1), var(--cv-wash-0) 70%),
    radial-gradient(55% 34% at 92% 22%, var(--cv-wash-2), var(--cv-wash-0) 70%),
    radial-gradient(70% 40% at 80% 96%, var(--cv-wash-3), var(--cv-wash-0) 70%),
    radial-gradient(50% 30% at 4% 78%, var(--cv-wash-4), var(--cv-wash-0) 70%),
    var(--cv-bg);
}

body[data-theme="romantic"][data-palette] .cv-cover.has-photo {
  background: var(--cv-bg);
}

body[data-theme="romantic"][data-palette] .cv-cover:not(.has-photo) .cv-amp {
  color: var(--cv-amp);
}

body[data-theme="romantic"][data-palette] .cv-rsvp {
  background:
    radial-gradient(60% 30% at 8% 4%, rgba(255, 255, 255, .6), rgba(255, 255, 255, 0) 70%),
    radial-gradient(50% 30% at 96% 96%, var(--cv-wash-5), var(--cv-wash-0) 70%),
    var(--cv-bg-alt);
}

body[data-theme="romantic"][data-palette] .cv-gift {
  box-shadow: var(--cv-gift-shadow);
}

body[data-theme="romantic"][data-palette="lilas"] {
  --cv-wash-0: rgba(246, 242, 250, 0);
  --cv-wash-1: rgba(190, 168, 226, .5);
  --cv-wash-2: rgba(202, 208, 244, .55);
  --cv-wash-3: rgba(186, 160, 216, .46);
  --cv-wash-4: rgba(226, 212, 240, .6);
  --cv-wash-5: rgba(186, 160, 216, .3);
  --cv-amp: #8a66ab;
  --cv-gift-shadow: 0 14px 36px -26px rgba(84, 54, 112, .5);

  --cv-bg: #f6f2fa;
  --cv-bg-alt: #e9e0f2;
  --cv-surface: #fdfbff;
  --cv-ink: #33283f;
  --cv-ink-soft: #5a4d68;
  --cv-accent: #6b4a8c;
  --cv-deco: #b39ccb;
  --cv-line: rgba(107, 74, 140, .26);
  --cv-btn-bg: #654585;
  --cv-btn-ink: #fdfaff;
  --cv-btn-hover: #543670;
  --cv-field-line: #8f7ba4;
  --cv-sel-bg: #efe6f7;
  --cv-focus: #654585;
  --cv-shadow: 0 18px 50px -24px rgba(84, 54, 112, .45);

  --cv-inv-bg: #4a3163;
  --cv-inv-surface: #5a3f75;
  --cv-inv-ink: #f7f0fc;
  --cv-inv-soft: #dccdea;
  --cv-inv-accent: #ead9f7;
  --cv-inv-deco: #b9a2d1;
  --cv-inv-line: rgba(247, 240, 252, .34);
  --cv-inv-btn-bg: #f7f0fc;
  --cv-inv-btn-ink: #4a3163;
  --cv-inv-field-line: rgba(247, 240, 252, .66);
  --cv-inv-sel-bg: rgba(247, 240, 252, .14);
  --cv-inv-focus: #ead9f7;
  --cv-scrim: linear-gradient(rgba(52, 32, 72, .5), rgba(44, 26, 62, .72));
}

body[data-theme="romantic"][data-palette="azul"] {
  --cv-wash-0: rgba(241, 245, 249, 0);
  --cv-wash-1: rgba(160, 190, 222, .5);
  --cv-wash-2: rgba(196, 218, 232, .55);
  --cv-wash-3: rgba(150, 180, 214, .44);
  --cv-wash-4: rgba(208, 222, 238, .6);
  --cv-wash-5: rgba(150, 180, 214, .3);
  --cv-amp: #5f83a8;
  --cv-gift-shadow: 0 14px 36px -26px rgba(46, 75, 105, .5);

  --cv-bg: #f1f5f9;
  --cv-bg-alt: #dfe8f0;
  --cv-surface: #fbfdff;
  --cv-ink: #26323f;
  --cv-ink-soft: #4a5968;
  --cv-accent: #3f6285;
  --cv-deco: #9bb4cc;
  --cv-line: rgba(63, 98, 133, .26);
  --cv-btn-bg: #3b5c7e;
  --cv-btn-ink: #f9fcff;
  --cv-btn-hover: #2e4b69;
  --cv-field-line: #7b8ea2;
  --cv-sel-bg: #e3ecf4;
  --cv-focus: #3b5c7e;
  --cv-shadow: 0 18px 50px -24px rgba(46, 75, 105, .45);

  --cv-inv-bg: #2c4762;
  --cv-inv-surface: #3a5773;
  --cv-inv-ink: #f0f6fb;
  --cv-inv-soft: #cbd9e6;
  --cv-inv-accent: #dbe8f4;
  --cv-inv-deco: #a3bcd3;
  --cv-inv-line: rgba(240, 246, 251, .34);
  --cv-inv-btn-bg: #f0f6fb;
  --cv-inv-btn-ink: #2c4762;
  --cv-inv-field-line: rgba(240, 246, 251, .66);
  --cv-inv-sel-bg: rgba(240, 246, 251, .14);
  --cv-inv-focus: #dbe8f4;
  --cv-scrim: linear-gradient(rgba(28, 46, 66, .5), rgba(24, 40, 58, .72));
}

/* --- modern: lima e rosa (troca a cor de destaque) ------------------ */
body[data-theme="modern"][data-palette="lima"] {
  --cv-pop: #c8f31d;
  --cv-sel-bg: #c8f31d;
  --cv-inv-accent: #c8f31d;
  --cv-inv-deco: #c8f31d;
  --cv-inv-btn-bg: #c8f31d;
  --cv-inv-btn-hover: #dcf870;
  --cv-inv-sel-bg: #c8f31d;
  --cv-inv-focus: #c8f31d;
}

body[data-theme="modern"][data-palette="rosa"] {
  --cv-pop: #ff6fae;
  --cv-sel-bg: #ff6fae;
  --cv-inv-accent: #ff6fae;
  --cv-inv-deco: #ff6fae;
  --cv-inv-btn-bg: #ff6fae;
  --cv-inv-btn-hover: #ff97c5;
  --cv-inv-sel-bg: #ff6fae;
  --cv-inv-focus: #ff6fae;
}

/* --- floral: rosa (rosa antigo) e azul (eucalipto) ------------------ */
body[data-theme="floral"][data-palette="rosa"] {
  --cv-leaf-1: #e3b7b0;
  --cv-leaf-2: #c58a86;
  --cv-leaf-3: #9c5f62;
  --cv-berry: #c9a368;

  --cv-bg: #f8f1ec;
  --cv-bg-alt: #f0dfd8;
  --cv-surface: #fdf9f5;
  --cv-ink: #3d2a2c;
  --cv-ink-soft: #614a4c;
  --cv-accent: #7f4449;
  --cv-deco: #c99a95;
  --cv-line: rgba(127, 68, 73, .3);
  --cv-btn-bg: #733c42;
  --cv-btn-ink: #fbf5f0;
  --cv-btn-hover: #5e2f35;
  --cv-field-bg: #fefcf8;
  --cv-field-line: #927a78;
  --cv-sel-bg: #f0dfd8;
  --cv-focus: #733c42;
  --cv-shadow: 0 18px 44px -26px rgba(61, 42, 44, .5);

  --cv-inv-bg: #4f2a30;
  --cv-inv-surface: #5e363c;
  --cv-inv-ink: #f8f1ec;
  --cv-inv-soft: #e0cdc8;
  --cv-inv-accent: #f1dcd6;
  --cv-inv-deco: #c99a95;
  --cv-inv-line: rgba(248, 241, 236, .3);
  --cv-inv-btn-bg: #f8f1ec;
  --cv-inv-btn-ink: #4f2a30;
  --cv-inv-field-line: rgba(248, 241, 236, .64);
  --cv-inv-sel-bg: rgba(248, 241, 236, .14);
  --cv-inv-focus: #f1dcd6;
  --cv-scrim: linear-gradient(rgba(54, 26, 32, .5), rgba(54, 26, 32, .76));
}

body[data-theme="floral"][data-palette="rosa"] .cv-cover.has-photo {
  --cv-leaf-1: #f0d0ca;
  --cv-leaf-2: #dba9a4;
  --cv-leaf-3: #f6e3de;
}

body[data-theme="floral"][data-palette="rosa"] .cv-closing {
  --cv-leaf-1: #7b4a50;
  --cv-leaf-2: #693c42;
  --cv-leaf-3: #5e353b;
  --cv-berry: #8b7a50;
}

body[data-theme="floral"][data-palette="azul"] {
  --cv-leaf-1: #a9bcc4;
  --cv-leaf-2: #6f8b98;
  --cv-leaf-3: #47616f;
  --cv-berry: #c9a368;

  --cv-bg: #f1f3f0;
  --cv-bg-alt: #dfe6e6;
  --cv-surface: #fafbf8;
  --cv-ink: #26343b;
  --cv-ink-soft: #4c5b62;
  --cv-accent: #3e5a68;
  --cv-deco: #8ba3ad;
  --cv-line: rgba(62, 90, 104, .3);
  --cv-btn-bg: #355260;
  --cv-btn-ink: #f5f7f4;
  --cv-btn-hover: #28414d;
  --cv-field-bg: #fcfdfb;
  --cv-field-line: #74868d;
  --cv-sel-bg: #dfe6e6;
  --cv-focus: #355260;
  --cv-shadow: 0 18px 44px -26px rgba(38, 52, 59, .5);

  --cv-inv-bg: #2a3f4a;
  --cv-inv-surface: #354c58;
  --cv-inv-ink: #f1f3f0;
  --cv-inv-soft: #cdd8db;
  --cv-inv-accent: #dbe6ea;
  --cv-inv-deco: #93abb5;
  --cv-inv-line: rgba(241, 243, 240, .3);
  --cv-inv-btn-bg: #f1f3f0;
  --cv-inv-btn-ink: #2a3f4a;
  --cv-inv-field-line: rgba(241, 243, 240, .64);
  --cv-inv-sel-bg: rgba(241, 243, 240, .14);
  --cv-inv-focus: #dbe6ea;
  --cv-scrim: linear-gradient(rgba(26, 40, 48, .5), rgba(26, 40, 48, .76));
}

body[data-theme="floral"][data-palette="azul"] .cv-cover.has-photo {
  --cv-leaf-1: #c6d5db;
  --cv-leaf-2: #a3b9c2;
  --cv-leaf-3: #dbe6ea;
}

body[data-theme="floral"][data-palette="azul"] .cv-closing {
  --cv-leaf-1: #4f6875;
  --cv-leaf-2: #425a66;
  --cv-leaf-3: #384f5a;
  --cv-berry: #8b7a50;
}

/* --- minimal: areia e azul ------------------------------------------ */
body[data-theme="minimal"][data-palette="areia"] {
  --cv-bg: #f6f2ea;
  --cv-bg-alt: #ebe5d9;
  --cv-surface: #fcfaf5;
  --cv-ink: #26221d;
  --cv-ink-soft: #5f574c;
  --cv-accent: #7a5a2e;
  --cv-deco: #a8824e;
  --cv-line: rgba(38, 34, 29, .16);
  --cv-btn-bg: #26221d;
  --cv-btn-ink: #f6f2ea;
  --cv-btn-hover: #453e35;
  --cv-field-bg: #fcfaf5;
  --cv-field-line: #8c8375;
  --cv-sel-bg: #ebe5d9;
  --cv-focus: #26221d;

  --cv-inv-bg: #26221d;
  --cv-inv-surface: #322d27;
  --cv-inv-ink: #f6f2ea;
  --cv-inv-soft: #c4bcae;
  --cv-inv-accent: #d9b98a;
  --cv-inv-deco: #c79e66;
  --cv-inv-line: rgba(246, 242, 234, .26);
  --cv-inv-btn-bg: #f6f2ea;
  --cv-inv-btn-ink: #26221d;
  --cv-inv-field-line: rgba(246, 242, 234, .6);
  --cv-inv-sel-bg: rgba(246, 242, 234, .12);
  --cv-inv-focus: #f6f2ea;
  --cv-scrim: linear-gradient(rgba(30, 26, 21, .5), rgba(30, 26, 21, .74));
}

body[data-theme="minimal"][data-palette="azul"] {
  --cv-bg: #f7f9fb;
  --cv-bg-alt: #e9eef3;
  --cv-surface: #ffffff;
  --cv-ink: #101a2b;
  --cv-ink-soft: #50596a;
  --cv-accent: #1f4fbf;
  --cv-deco: #2f62e0;
  --cv-line: rgba(16, 26, 43, .16);
  --cv-btn-bg: #101a2b;
  --cv-btn-ink: #f7f9fb;
  --cv-btn-hover: #26344d;
  --cv-field-line: #848c9a;
  --cv-sel-bg: #e9eef3;
  --cv-focus: #1f4fbf;

  --cv-inv-bg: #101a2b;
  --cv-inv-surface: #1b2740;
  --cv-inv-ink: #f4f7fb;
  --cv-inv-soft: #b7c0cf;
  --cv-inv-accent: #9db8ff;
  --cv-inv-deco: #5f8cff;
  --cv-inv-line: rgba(244, 247, 251, .26);
  --cv-inv-btn-bg: #f4f7fb;
  --cv-inv-btn-ink: #101a2b;
  --cv-inv-field-line: rgba(244, 247, 251, .6);
  --cv-inv-sel-bg: rgba(244, 247, 251, .12);
  --cv-inv-focus: #9db8ff;
  --cv-scrim: linear-gradient(rgba(12, 20, 34, .5), rgba(12, 20, 34, .74));
}

/* --- gala: preto (prata) e vinho ------------------------------------ */
body[data-theme="gala"][data-palette="preto"] {
  --cv-glow: rgba(230, 226, 216, .1);

  --cv-bg: #0d0d0e;
  --cv-bg-alt: #151516;
  --cv-surface: #19191b;
  --cv-ink: #f2efe9;
  --cv-ink-soft: #c2beb6;
  --cv-accent: #ddd7c9;
  --cv-deco: #a09a8e;
  --cv-line: rgba(221, 215, 201, .3);
  --cv-btn-bg: #e6e0d2;
  --cv-btn-ink: #0d0d0e;
  --cv-btn-hover: #ffffff;
  --cv-field-line: rgba(242, 239, 233, .58);
  --cv-sel-bg: rgba(221, 215, 201, .16);
  --cv-focus: #ffffff;

  --cv-inv-bg: #050505;
  --cv-inv-surface: #0d0d0e;
  --cv-inv-ink: #f2efe9;
  --cv-inv-soft: #c2beb6;
  --cv-inv-accent: #ddd7c9;
  --cv-inv-deco: #a09a8e;
  --cv-inv-line: rgba(221, 215, 201, .3);
  --cv-inv-btn-bg: #e6e0d2;
  --cv-inv-btn-ink: #050505;
  --cv-inv-btn-hover: #ffffff;
  --cv-inv-field-line: rgba(242, 239, 233, .58);
  --cv-inv-sel-bg: rgba(221, 215, 201, .16);
  --cv-inv-focus: #ffffff;
  --cv-scrim: linear-gradient(rgba(5, 5, 5, .62), rgba(5, 5, 5, .84));
}

body[data-theme="gala"][data-palette="vinho"] {
  --cv-glow: rgba(226, 191, 126, .14);

  --cv-bg: #2a0c16;
  --cv-bg-alt: #33111c;
  --cv-surface: #3a1521;
  --cv-ink: #f6e7d3;
  --cv-ink-soft: #d9c3b1;
  --cv-accent: #e2bf7e;
  --cv-deco: #c09a5c;
  --cv-line: rgba(226, 191, 126, .32);
  --cv-btn-bg: #e2bf7e;
  --cv-btn-ink: #2a0c16;
  --cv-btn-hover: #f0d6a0;
  --cv-field-line: rgba(246, 231, 211, .6);
  --cv-sel-bg: rgba(226, 191, 126, .16);
  --cv-focus: #f0d6a0;

  --cv-inv-bg: #1b060d;
  --cv-inv-surface: #2a0c16;
  --cv-inv-ink: #f6e7d3;
  --cv-inv-soft: #d9c3b1;
  --cv-inv-accent: #e2bf7e;
  --cv-inv-deco: #c09a5c;
  --cv-inv-line: rgba(226, 191, 126, .32);
  --cv-inv-btn-bg: #e2bf7e;
  --cv-inv-btn-ink: #1b060d;
  --cv-inv-btn-hover: #f0d6a0;
  --cv-inv-field-line: rgba(246, 231, 211, .6);
  --cv-inv-sel-bg: rgba(226, 191, 126, .16);
  --cv-inv-focus: #f0d6a0;
  --cv-scrim: linear-gradient(rgba(27, 6, 13, .6), rgba(27, 6, 13, .84));
}

/* --- rustico: oliva e azul ------------------------------------------ */
body[data-theme="rustico"][data-palette="oliva"] {
  --cv-leaf-1: #c9b97e;
  --cv-leaf-2: #7f8a55;
  --cv-leaf-3: #59653a;
  --cv-berry: #c98f4e;
  --cv-fibre: rgba(84, 88, 48, .05);

  --cv-bg: #f2eddc;
  --cv-bg-alt: #e4dfc6;
  --cv-surface: #f9f6ea;
  --cv-ink: #2f2f1f;
  --cv-ink-soft: #58573f;
  --cv-accent: #56612f;
  --cv-deco: #8f9763;
  --cv-line: rgba(86, 97, 47, .3);
  --cv-btn-bg: #4d5829;
  --cv-btn-ink: #f8f5e6;
  --cv-btn-hover: #3d4720;
  --cv-field-bg: #fcfaf0;
  --cv-field-line: #84836a;
  --cv-sel-bg: #e4dfc6;
  --cv-focus: #4d5829;
  --cv-shadow: 0 16px 40px -26px rgba(47, 47, 31, .5);

  --cv-inv-bg: #3f4a22;
  --cv-inv-surface: #4d592d;
  --cv-inv-ink: #f5f1df;
  --cv-inv-soft: #dedbc0;
  --cv-inv-accent: #e9e5bf;
  --cv-inv-deco: #b3ba84;
  --cv-inv-line: rgba(245, 241, 223, .32);
  --cv-inv-btn-bg: #f5f1df;
  --cv-inv-btn-ink: #3f4a22;
  --cv-inv-field-line: rgba(245, 241, 223, .66);
  --cv-inv-sel-bg: rgba(245, 241, 223, .14);
  --cv-inv-focus: #e9e5bf;
  --cv-inv-leaf-1: #d6cf9c;
  --cv-inv-leaf-2: #b3ba84;
  --cv-inv-leaf-3: #e9e5bf;
  --cv-inv-berry: #f5f1df;
  --cv-scrim: linear-gradient(rgba(36, 42, 20, .5), rgba(36, 42, 20, .78));
}

body[data-theme="rustico"][data-palette="azul"] {
  --cv-leaf-1: #c6b98e;
  --cv-leaf-2: #7d94a3;
  --cv-leaf-3: #4b6577;
  --cv-berry: #c58f5a;
  --cv-fibre: rgba(70, 84, 92, .05);

  --cv-bg: #f2ece0;
  --cv-bg-alt: #e3ddd0;
  --cv-surface: #faf6ed;
  --cv-ink: #25313a;
  --cv-ink-soft: #4d5a63;
  --cv-accent: #375468;
  --cv-deco: #7d94a3;
  --cv-line: rgba(55, 84, 104, .3);
  --cv-btn-bg: #33505f;
  --cv-btn-ink: #f8f4ea;
  --cv-btn-hover: #263e4b;
  --cv-field-bg: #fdfaf2;
  --cv-field-line: #7c8388;
  --cv-sel-bg: #e3ddd0;
  --cv-focus: #33505f;
  --cv-shadow: 0 16px 40px -26px rgba(37, 49, 58, .5);

  --cv-inv-bg: #2c4656;
  --cv-inv-surface: #395567;
  --cv-inv-ink: #f4efe3;
  --cv-inv-soft: #d3d8d6;
  --cv-inv-accent: #e6dfc6;
  --cv-inv-deco: #9bb0bd;
  --cv-inv-line: rgba(244, 239, 227, .32);
  --cv-inv-btn-bg: #f4efe3;
  --cv-inv-btn-ink: #2c4656;
  --cv-inv-field-line: rgba(244, 239, 227, .66);
  --cv-inv-sel-bg: rgba(244, 239, 227, .14);
  --cv-inv-focus: #e6dfc6;
  --cv-inv-leaf-1: #d9cfa8;
  --cv-inv-leaf-2: #9bb0bd;
  --cv-inv-leaf-3: #c9d6de;
  --cv-inv-berry: #f4efe3;
  --cv-scrim: linear-gradient(rgba(24, 38, 48, .5), rgba(24, 38, 48, .78));
}

/* --- festa: rosa e verde -------------------------------------------- */
body[data-theme="festa"][data-palette="rosa"] {
  --cv-leaf-1: #ff7aa8;
  --cv-leaf-2: #ffc94d;
  --cv-leaf-3: #a98bff;
  --cv-berry: #3fc7b4;
  --cv-tint-1: #ffd9e6;
  --cv-tint-2: #ffedb8;
  --cv-tint-3: #e6dcff;
  --cv-tint-4: #cdf3ec;
  --cv-fun-ink: #4a1d52;
  --cv-btn-shade: #2c0e32;

  --cv-bg: #fff5f8;
  --cv-bg-alt: #ffe3ec;
  --cv-ink: #4a1d52;
  --cv-ink-soft: #6f4a76;
  --cv-accent: #b8245f;
  --cv-deco: #ff7aa8;
  --cv-line: rgba(74, 29, 82, .18);
  --cv-btn-bg: #4a1d52;
  --cv-btn-hover: #66306f;
  --cv-field-line: #94789a;
  --cv-sel-bg: #ffedb8;
  --cv-focus: #4a1d52;

  --cv-inv-bg: #4a1d52;
  --cv-inv-surface: #5c2a65;
  --cv-inv-soft: #ead6ed;
  --cv-inv-accent: #ffd668;
  --cv-inv-deco: #ff9cbf;
  --cv-inv-btn-bg: #ffc94d;
  --cv-inv-btn-ink: #4a1d52;
  --cv-inv-btn-hover: #ffd97a;
  --cv-scrim: linear-gradient(rgba(74, 29, 82, .46), rgba(74, 29, 82, .8));
}

body[data-theme="festa"][data-palette="verde"] {
  --cv-leaf-1: #ff8a3d;
  --cv-leaf-2: #ffd24a;
  --cv-leaf-3: #3fae6b;
  --cv-berry: #2a9db5;
  --cv-tint-1: #ffe0c9;
  --cv-tint-2: #fff0b8;
  --cv-tint-3: #cdeeda;
  --cv-tint-4: #cdeaf1;
  --cv-fun-ink: #173d2c;
  --cv-btn-shade: #0a2218;

  --cv-bg: #f6faee;
  --cv-bg-alt: #e6f1d6;
  --cv-ink: #173d2c;
  --cv-ink-soft: #46614f;
  --cv-accent: #1c7442;
  --cv-deco: #3fae6b;
  --cv-line: rgba(23, 61, 44, .18);
  --cv-btn-bg: #173d2c;
  --cv-btn-hover: #24583f;
  --cv-field-line: #6f8a78;
  --cv-sel-bg: #fff0b8;
  --cv-focus: #173d2c;

  --cv-inv-bg: #173d2c;
  --cv-inv-surface: #22503b;
  --cv-inv-soft: #cfe3d5;
  --cv-inv-accent: #ffd24a;
  --cv-inv-deco: #6fcf94;
  --cv-inv-btn-bg: #ffd24a;
  --cv-inv-btn-ink: #173d2c;
  --cv-inv-btn-hover: #ffe07a;
  --cv-scrim: linear-gradient(rgba(23, 61, 44, .46), rgba(23, 61, 44, .8));
}
