/* ===== assets/css/base.css ===== */
/* =============================================================
   Planner de Casamento — Design System (Romântico Moderno)
   Arquivo base: tokens, tipografia, botões, formulários, utilitários
   ============================================================= */

:root {
  /* Paleta */
  --blush-50: #FDF8F6;
  --blush-100: #F9EFEA;
  --blush-200: #F2DED6;
  --blush-300: #E8C7BA;
  --rose-400: #D3A192;
  --rose-500: #C08A7D;
  --rose-600: #A66E62;
  --rose-700: #85554C;

  --champagne-100: #F7EFE2;
  --champagne-200: #EFE1CB;
  --gold-500: #B99770;
  --gold-600: #9C7C58;

  --sage-100: #EDF1EC;
  --sage-500: #8AA08A;

  --ink-900: #241F1C;
  --ink-800: #332C28;
  --ink-700: #4A403B;
  --muted-600: #7C6F68;
  --muted-500: #9A8D86;
  --line: #EAE0DA;
  --line-strong: #DCCFC7;

  --white: #FFFFFF;
  --paper: #FFFDFC;

  --ok-500: #6E9A78;
  --ok-100: #E6F0E8;
  --warn-500: #C99A4E;
  --warn-100: #F8EEDC;
  --danger-500: #C36B62;
  --danger-100: #F8E6E4;
  --info-500: #6E8AA6;
  --info-100: #E6EDF3;

  /* Tipografia */
  --font-display: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --font-body: 'Jost', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Espaço e forma */
  --radius-sm: 8px;
  --radius: 14px;
  --radius-lg: 22px;
  --radius-pill: 999px;

  --shadow-xs: 0 1px 2px rgba(51, 44, 40, .06);
  --shadow-sm: 0 2px 10px rgba(51, 44, 40, .06);
  --shadow-md: 0 10px 30px rgba(51, 44, 40, .09);
  --shadow-lg: 0 24px 60px rgba(51, 44, 40, .14);

  --container: 1180px;
  --header-h: 74px;
  --transition: 220ms cubic-bezier(.4, 0, .2, 1);
}

/* ---------- Temas alternativos (aplicados em <html data-tema="..."> ) ---------- */
[data-tema="oliva"] {
  --blush-50:#F7F8F4; --blush-100:#EDF1E9; --blush-200:#DCE4D5; --blush-300:#C3CFB8;
  --rose-400:#98A981; --rose-500:#7D8B62; --rose-600:#657149; --rose-700:#4B5436;
  --champagne-100:#F6EDE4; --champagne-200:#EBD9C7; --gold-500:#C4714B; --gold-600:#A65A38;
  --line:#E4E8DE; --line-strong:#D2D9C9;
}
[data-tema="onix"] {
  --blush-50:#F7F5F2; --blush-100:#EFEBE4; --blush-200:#E2DBCE; --blush-300:#CFC4AF;
  --rose-400:#B9A27A; --rose-500:#8C7853; --rose-600:#6B5B3E; --rose-700:#4A3F2B;
  --champagne-100:#F6F1E7; --champagne-200:#E9DEC6; --gold-500:#C9A227; --gold-600:#A98617;
  --ink-900:#141210; --line:#E7E2D9; --line-strong:#D6CFC2;
}
[data-tema="serenity"] {
  --blush-50:#F5F8FB; --blush-100:#E8EFF6; --blush-200:#D5E2ED; --blush-300:#B4C9DC;
  --rose-400:#8FA9C4; --rose-500:#6F8FB0; --rose-600:#577491; --rose-700:#3E5670;
  --champagne-100:#EFF4F8; --champagne-200:#DCE7F0; --gold-500:#A9976B; --gold-600:#8C7C53;
  --line:#E1E8EF; --line-strong:#CDD8E3;
}
[data-tema="terracota"] {
  --blush-50:#FBF6F2; --blush-100:#F6EADF; --blush-200:#EBD9C7; --blush-300:#DDBCA0;
  --rose-400:#CE805F; --rose-500:#B45F3F; --rose-600:#954A2E; --rose-700:#6E3520;
  --champagne-100:#F8F0E4; --champagne-200:#EEDFC8; --gold-500:#B08C55; --gold-600:#8F7040;
  --line:#EFE2D6; --line-strong:#E0CBB8;
}
[data-tema="lavanda"] {
  --blush-50:#F9F7FC; --blush-100:#F0ECF7; --blush-200:#E2DBEF; --blush-300:#CBC0E1;
  --rose-400:#A395C6; --rose-500:#8E7BB0; --rose-600:#73628F; --rose-700:#544869;
  --champagne-100:#F5F1F8; --champagne-200:#E7E0F2; --gold-500:#B49A6E; --gold-600:#957D55;
  --line:#E9E3F0; --line-strong:#D8CFE4;
}

* { box-sizing: border-box; }

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

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink-800);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--ink-900);
  line-height: 1.15;
  margin: 0 0 .5em;
  letter-spacing: -.01em;
}
h1 { font-size: clamp(2.6rem, 6vw, 4.4rem); font-weight: 500; }
h2 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 500; }
h3 { font-size: clamp(1.35rem, 2.4vw, 1.8rem); }
h4 { font-size: 1.12rem; font-family: var(--font-body); font-weight: 600; letter-spacing: .01em; }
p  { margin: 0 0 1em; }

.container { width: min(100% - 40px, var(--container)); margin-inline: auto; }
.container-narrow { width: min(100% - 40px, 820px); margin-inline: auto; }

/* ---------- Elementos decorativos ---------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: .74rem; font-weight: 500; letter-spacing: .22em;
  text-transform: uppercase; color: var(--rose-600);
  margin-bottom: 18px;
}
.eyebrow::before, .eyebrow.both::after {
  content: ''; width: 28px; height: 1px; background: var(--rose-400); display: inline-block;
}
.ornament { display: block; margin: 0 auto 26px; width: 120px; opacity: .75; }
.script { font-family: var(--font-display); font-style: italic; color: var(--rose-600); }

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 13px 26px; border-radius: var(--radius-pill);
  font-size: .93rem; font-weight: 500; letter-spacing: .03em;
  border: 1px solid transparent; cursor: pointer;
  transition: var(--transition); white-space: nowrap; text-align: center;
}
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn-primary { background: var(--rose-500); color: #fff; box-shadow: 0 6px 18px rgba(192, 138, 125, .32); }
.btn-primary:hover:not(:disabled) { background: var(--rose-600); transform: translateY(-2px); box-shadow: 0 12px 26px rgba(192, 138, 125, .4); }
.btn-dark { background: var(--ink-900); color: #fff; }
.btn-dark:hover:not(:disabled) { background: var(--ink-700); transform: translateY(-2px); }
.btn-ghost { background: transparent; color: var(--ink-800); border-color: var(--line-strong); }
.btn-ghost:hover:not(:disabled) { border-color: var(--rose-400); color: var(--rose-600); background: var(--blush-50); }
.btn-soft { background: var(--blush-100); color: var(--rose-700); }
.btn-soft:hover:not(:disabled) { background: var(--blush-200); }
.btn-gold { background: var(--gold-500); color: #fff; }
.btn-gold:hover:not(:disabled) { background: var(--gold-600); }
.btn-danger { background: var(--danger-100); color: var(--danger-500); }
.btn-danger:hover:not(:disabled) { background: var(--danger-500); color: #fff; }
.btn-sm { padding: 8px 16px; font-size: .82rem; }
.btn-xs { padding: 5px 11px; font-size: .74rem; }
.btn-lg { padding: 16px 34px; font-size: 1rem; }
.btn-block { width: 100%; }
.btn-icon {
  width: 36px; height: 36px; padding: 0; border-radius: 50%;
  background: transparent; border: 1px solid var(--line);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; transition: var(--transition); color: var(--muted-600);
}
.btn-icon:hover { background: var(--blush-100); color: var(--rose-600); border-color: var(--blush-300); }

/* ---------- Formulários ---------- */
.field { margin-bottom: 16px; }
.field label, .label {
  display: block; font-size: .78rem; font-weight: 500; letter-spacing: .06em;
  text-transform: uppercase; color: var(--muted-600); margin-bottom: 7px;
}
.input, .select, .textarea,
input[type=text], input[type=email], input[type=password], input[type=number],
input[type=date], input[type=time], input[type=url], input[type=tel], select, textarea {
  width: 100%; padding: 12px 15px; font-family: inherit; font-size: .95rem;
  color: var(--ink-800); background: var(--white);
  border: 1px solid var(--line-strong); border-radius: var(--radius-sm);
  transition: var(--transition); outline: none;
}
textarea { min-height: 110px; resize: vertical; line-height: 1.6; }
select { appearance: none; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%237C6F68' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; padding-right: 38px; }
.input:focus, .select:focus, .textarea:focus,
input:focus, select:focus, textarea:focus {
  border-color: var(--rose-400); box-shadow: 0 0 0 3px rgba(211, 161, 146, .18);
}
.input-hint { font-size: .78rem; color: var(--muted-500); margin-top: 6px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-row-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 620px) { .form-row, .form-row-3 { grid-template-columns: 1fr; } }

.checkbox-line { display: flex; align-items: flex-start; gap: 10px; font-size: .88rem; color: var(--muted-600); }
.checkbox-line input { width: auto; margin-top: 3px; accent-color: var(--rose-500); }

/* ---------- Badges / pills ---------- */
.badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 11px; border-radius: var(--radius-pill);
  font-size: .72rem; font-weight: 500; letter-spacing: .04em;
  background: var(--blush-100); color: var(--rose-700);
}
.badge-ok { background: var(--ok-100); color: var(--ok-500); }
.badge-warn { background: var(--warn-100); color: var(--warn-500); }
.badge-danger { background: var(--danger-100); color: var(--danger-500); }
.badge-info { background: var(--info-100); color: var(--info-500); }
.badge-neutral { background: #F1EDEB; color: var(--muted-600); }
.badge-gold { background: var(--champagne-200); color: var(--gold-600); }

/* ---------- Cards ---------- */
.card {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-xs);
}
.card-pad { padding: 22px; }

/* ---------- Utilitários ---------- */
.stack > * + * { margin-top: 14px; }
.row { display: flex; align-items: center; gap: 12px; }
.row-between { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.wrap { flex-wrap: wrap; }
.grow { flex: 1; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.muted { color: var(--muted-600); }
.small { font-size: .85rem; }
.tiny { font-size: .76rem; }
.strong { font-weight: 600; }
.hidden { display: none !important; }
.mt-0 { margin-top: 0; } .mt-1 { margin-top: 8px; } .mt-2 { margin-top: 16px; } .mt-3 { margin-top: 24px; } .mt-4 { margin-top: 36px; }
.mb-0 { margin-bottom: 0; } .mb-1 { margin-bottom: 8px; } .mb-2 { margin-bottom: 16px; } .mb-3 { margin-bottom: 24px; }
.lead { font-size: 1.12rem; color: var(--muted-600); line-height: 1.75; }

/* ---------- Barra de progresso ---------- */
.progress { height: 8px; background: var(--blush-100); border-radius: var(--radius-pill); overflow: hidden; }
.progress > span { display: block; height: 100%; background: linear-gradient(90deg, var(--rose-400), var(--gold-500)); border-radius: inherit; transition: width .6s cubic-bezier(.4,0,.2,1); }
.progress-lg { height: 12px; }

/* ---------- Toast ---------- */
#toasts { position: fixed; bottom: 24px; right: 24px; z-index: 9999; display: flex; flex-direction: column; gap: 10px; }
.toast {
  background: var(--ink-900); color: #fff; padding: 13px 18px; border-radius: var(--radius);
  font-size: .88rem; box-shadow: var(--shadow-lg); animation: toastIn .3s ease;
  max-width: 340px; display: flex; align-items: center; gap: 10px;
}
.toast.ok { background: #3F6B4A; }
.toast.err { background: #9E4C43; }
@keyframes toastIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* ---------- Modal ---------- */
.modal-backdrop {
  position: fixed; inset: 0; background: rgba(36, 31, 28, .55); backdrop-filter: blur(3px);
  display: flex; align-items: center; justify-content: center; padding: 20px; z-index: 900;
  animation: fadeIn .2s ease;
}
.modal {
  background: var(--white); border-radius: var(--radius-lg); width: min(100%, 560px);
  max-height: 90vh; overflow-y: auto; box-shadow: var(--shadow-lg); animation: modalIn .28s cubic-bezier(.2,.8,.3,1);
}
.modal-lg { width: min(100%, 860px); }
.modal-header { padding: 22px 26px 6px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.modal-header h3 { margin: 0; }
.modal-body { padding: 12px 26px 22px; }
.modal-footer { padding: 0 26px 24px; display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
@keyframes fadeIn { from { opacity: 0 } to { opacity: 1 } }
@keyframes modalIn { from { opacity: 0; transform: translateY(20px) scale(.98) } to { opacity: 1; transform: none } }

/* ---------- Animação de entrada ---------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.3,1); }
.reveal.in { opacity: 1; transform: none; }

/* ---------- Scrollbar ---------- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--blush-50); }
::-webkit-scrollbar-thumb { background: var(--blush-300); border-radius: 10px; border: 2px solid var(--blush-50); }
::-webkit-scrollbar-thumb:hover { background: var(--rose-400); }

/* ---------- Impressão ---------- */
@media print {
  .no-print, .app-sidebar, .app-topbar, #toasts { display: none !important; }
  body { background: #fff; }
  .app-main { padding: 0 !important; }
  .card { break-inside: avoid; box-shadow: none; }
}

/* Bride Era build 2026-08-15 — logos oficiais de integrações */
.brand-platform-icon{display:block;object-fit:contain;flex:0 0 auto;background:#fff;border-radius:10px;padding:5px;box-shadow:0 2px 10px rgba(40,28,28,.08)}
.integra-card .brand-platform-icon{margin:0 auto 8px}
:root{--on-accent:#fff}
.btn-primary{color:var(--on-accent,#fff)}

/* Bride Era R11.10 — toque: a área inteira do controle responde, não só o texto */
@media (hover:none) and (pointer:coarse){
  button,.btn,a.btn,[role="button"]{touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:44px}
  button>svg,button>img,button>span,button>small,.btn>svg,.btn>img,.btn>span{pointer-events:none}
  input,select,textarea,iframe{pointer-events:auto}
}

/* ===== assets/css/landing.css ===== */
/* =============================================================
   Landing page — Planner de Casamento
   ============================================================= */

/* ---------- Header ---------- */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; height: var(--header-h); z-index: 100;
  display: flex; align-items: center;
  transition: var(--transition);
  background: transparent;
}
.site-header.scrolled {
  background: rgba(255, 253, 252, .92); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line); box-shadow: var(--shadow-xs);
}
.site-header .container { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.brand { display: flex; align-items: center; gap: 11px; font-family: var(--font-display); font-size: 1.35rem; color: var(--ink-900); }
.brand-mark {
  width: 38px; height: 38px; border-radius: 50%;
  background: linear-gradient(135deg, var(--rose-400), var(--gold-500));
  display: grid; place-items: center; color: #fff; font-size: 1rem; flex-shrink: 0;
}
.brand small { display: block; font-family: var(--font-body); font-size: .6rem; letter-spacing: .22em; text-transform: uppercase; color: var(--muted-500); line-height: 1; margin-top: 2px; }
.nav-links { display: flex; align-items: center; gap: 30px; }
.nav-links a { font-size: .89rem; color: var(--ink-700); transition: var(--transition); position: relative; }
.nav-links a::after { content: ''; position: absolute; left: 0; bottom: -5px; width: 0; height: 1px; background: var(--rose-500); transition: var(--transition); }
.nav-links a:hover { color: var(--rose-600); }
.nav-links a:hover::after { width: 100%; }
.nav-actions { display: flex; align-items: center; gap: 12px; }
.nav-toggle { display: none; background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--ink-900); }
@media (max-width: 940px) {
  .nav-links { position: fixed; inset: var(--header-h) 0 auto; background: var(--white); flex-direction: column;
    padding: 26px; gap: 20px; border-bottom: 1px solid var(--line); box-shadow: var(--shadow-md);
    transform: translateY(-120%); transition: var(--transition); }
  .nav-links.open { transform: none; }
  .nav-toggle { display: block; }
  .nav-actions .btn-ghost { display: none; }
}

/* ---------- Hero ---------- */
.hero {
  position: relative; min-height: 100svh; display: flex; align-items: center;
  padding: calc(var(--header-h) + 60px) 0 80px; overflow: hidden;
  background:
    radial-gradient(circle at 12% 18%, rgba(232, 199, 186, .5), transparent 42%),
    radial-gradient(circle at 88% 78%, rgba(239, 225, 203, .55), transparent 45%),
    var(--paper);
}
.hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 60px; align-items: center; }
@media (max-width: 940px) { .hero-grid { grid-template-columns: 1fr; gap: 44px; } }
.hero h1 { margin-bottom: 22px; }
.hero h1 em { font-style: italic; color: var(--rose-600); }
.hero-sub { font-size: 1.15rem; color: var(--muted-600); max-width: 520px; line-height: 1.8; margin-bottom: 32px; }
.hero-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 30px; }
.hero-trust { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; font-size: .84rem; color: var(--muted-500); }
.avatars { display: flex; }
.avatars span {
  width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--paper);
  margin-left: -10px; display: grid; place-items: center; font-size: .72rem; color: #fff; font-weight: 600;
}
.avatars span:first-child { margin-left: 0; }
.stars { color: var(--gold-500); letter-spacing: 2px; }

/* Mockup do painel dentro do hero */
.hero-visual { position: relative; }
.mock-window {
  background: var(--white); border-radius: var(--radius-lg); border: 1px solid var(--line);
  box-shadow: var(--shadow-lg); overflow: hidden; transform: perspective(1400px) rotateY(-6deg) rotateX(2deg);
  transition: transform .6s ease;
}
.mock-window:hover { transform: perspective(1400px) rotateY(-2deg) rotateX(0); }
.mock-bar { display: flex; align-items: center; gap: 7px; padding: 12px 16px; background: var(--blush-50); border-bottom: 1px solid var(--line); }
.mock-bar i { width: 9px; height: 9px; border-radius: 50%; background: var(--line-strong); }
.mock-bar span { margin-left: 12px; font-size: .72rem; color: var(--muted-500); }
.mock-body { padding: 20px; display: grid; gap: 14px; }
.mock-countdown { text-align: center; padding: 18px; border-radius: var(--radius); background: linear-gradient(135deg, var(--blush-100), var(--champagne-100)); }
.mock-countdown b { font-family: var(--font-display); font-size: 2.6rem; display: block; line-height: 1; color: var(--rose-700); }
.mock-countdown small { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted-600); }
.mock-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.mock-stat { background: var(--blush-50); border-radius: var(--radius-sm); padding: 12px; text-align: center; }
.mock-stat b { display: block; font-size: 1.15rem; font-family: var(--font-display); color: var(--ink-900); }
.mock-stat small { font-size: .64rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted-500); }
.mock-list { display: grid; gap: 8px; }
.mock-item { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); font-size: .8rem; color: var(--ink-700); }
.mock-item i { width: 16px; height: 16px; border-radius: 4px; border: 1.5px solid var(--line-strong); flex-shrink: 0; }
.mock-item.done i { background: var(--rose-500); border-color: var(--rose-500); }
.mock-item.done { color: var(--muted-500); text-decoration: line-through; }
.float-card {
  position: absolute; background: var(--white); border-radius: var(--radius); padding: 12px 16px;
  box-shadow: var(--shadow-md); border: 1px solid var(--line); font-size: .8rem;
  display: flex; align-items: center; gap: 10px; animation: floaty 5s ease-in-out infinite;
}
.float-card b { font-family: var(--font-display); font-size: 1.1rem; color: var(--rose-600); }
.float-1 { top: 8%; left: -30px; }
.float-2 { bottom: 10%; right: -20px; animation-delay: 1.4s; }
@keyframes floaty { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-12px) } }
@media (max-width: 940px) { .float-card { display: none; } .mock-window { transform: none; } }

/* ---------- Faixa de marcas / números ---------- */
.strip { background: var(--ink-900); color: #fff; padding: 26px 0; }
.strip-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; text-align: center; }
.strip-grid b { display: block; font-family: var(--font-display); font-size: 2rem; color: var(--champagne-200); line-height: 1.1; }
.strip-grid small { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; opacity: .7; }
@media (max-width: 720px) { .strip-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; } }

/* ---------- Seções ---------- */
.section { padding: 100px 0; }
.section-alt { background: var(--blush-50); }
.section-dark { background: var(--ink-900); color: #F3EDE9; }
.section-dark h2, .section-dark h3 { color: #fff; }
.section-dark .lead { color: rgba(243, 237, 233, .72); }
.section-head { text-align: center; max-width: 720px; margin: 0 auto 60px; }

/* ---------- Recursos ---------- */
.features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 940px) { .features-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .features-grid { grid-template-columns: 1fr; } }
.feature {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 30px 26px; transition: var(--transition); position: relative; overflow: hidden;
}
.feature::before {
  content: ''; position: absolute; inset: 0 0 auto; height: 3px;
  background: linear-gradient(90deg, var(--rose-400), var(--gold-500)); transform: scaleX(0); transform-origin: left; transition: var(--transition);
}
.feature:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: var(--blush-300); }
.feature:hover::before { transform: scaleX(1); }
.feature-icon {
  width: 48px; height: 48px; border-radius: 14px; background: var(--blush-100);
  display: grid; place-items: center; margin-bottom: 18px; font-size: 1.3rem;
}
.feature h4 { margin-bottom: 8px; font-size: 1.05rem; }
.feature p { font-size: .9rem; color: var(--muted-600); margin: 0; line-height: 1.7; }

/* ---------- Módulos (lista completa) ---------- */
.modules-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
@media (max-width: 940px) { .modules-grid { grid-template-columns: repeat(2, 1fr); } }
.module-chip {
  display: flex; align-items: center; gap: 10px; padding: 13px 16px;
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
  font-size: .87rem; transition: var(--transition);
}
.module-chip:hover { border-color: var(--rose-400); background: var(--blush-50); }
.module-chip span:first-child { font-size: 1.05rem; }

/* ---------- Showcase / galeria ---------- */
.showcase { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 860px) { .showcase { grid-template-columns: 1fr; } }
.shot { border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); background: var(--white); box-shadow: var(--shadow-sm); }
.shot-img { aspect-ratio: 4/3; background: linear-gradient(135deg, var(--blush-100), var(--champagne-100)); display: grid; place-items: center; }
.shot-caption { padding: 16px 18px; }
.shot-caption b { display: block; font-size: .95rem; margin-bottom: 3px; }
.shot-caption small { color: var(--muted-500); font-size: .8rem; }

/* ---------- Como funciona ---------- */
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; counter-reset: step; }
@media (max-width: 860px) { .steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .steps { grid-template-columns: 1fr; } }
.step { text-align: center; position: relative; }
.step-num {
  width: 60px; height: 60px; margin: 0 auto 16px; border-radius: 50%;
  background: var(--white); border: 1px solid var(--blush-300); display: grid; place-items: center;
  font-family: var(--font-display); font-size: 1.5rem; color: var(--rose-600); box-shadow: var(--shadow-sm);
}
.step h4 { margin-bottom: 6px; }
.step p { font-size: .88rem; color: var(--muted-600); margin: 0; }

/* ---------- Planos ---------- */
.billing-toggle { display: inline-flex; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-pill); padding: 5px; margin: 0 auto 44px; }
.billing-toggle button {
  border: none; background: transparent; padding: 9px 22px; border-radius: var(--radius-pill);
  font-size: .86rem; cursor: pointer; color: var(--muted-600); transition: var(--transition); font-weight: 500;
}
.billing-toggle button.active { background: var(--ink-900); color: #fff; }
.billing-toggle .save { font-size: .68rem; background: var(--ok-100); color: var(--ok-500); padding: 2px 7px; border-radius: 20px; margin-left: 6px; }

.plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; align-items: start; }
@media (max-width: 940px) { .plans { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; } }
.plan {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 32px 28px; position: relative; transition: var(--transition);
}
.plan:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); }
.plan.featured { border: 2px solid var(--rose-500); box-shadow: var(--shadow-md); }
.plan-tag {
  position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
  background: var(--rose-500); color: #fff; font-size: .7rem; letter-spacing: .14em;
  text-transform: uppercase; padding: 5px 16px; border-radius: var(--radius-pill); white-space: nowrap;
}
.plan-name { font-family: var(--font-display); font-size: 1.6rem; color: var(--ink-900); margin-bottom: 4px; }
.plan-desc { font-size: .86rem; color: var(--muted-600); margin-bottom: 22px; min-height: 42px; }
.plan-price { display: flex; align-items: baseline; gap: 4px; margin-bottom: 4px; }
.plan-price .cur { font-size: 1rem; color: var(--muted-600); }
.plan-price .val { font-family: var(--font-display); font-size: 3.1rem; line-height: 1; color: var(--ink-900); }
.plan-price .per { font-size: .85rem; color: var(--muted-500); }
.plan-note { font-size: .78rem; color: var(--muted-500); margin-bottom: 24px; }
.plan-features { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 11px; }
.plan-features li { display: flex; gap: 10px; font-size: .88rem; color: var(--ink-700); line-height: 1.5; }
.plan-features li::before { content: '✓'; color: var(--rose-500); font-weight: 700; flex-shrink: 0; }
.plan-features li.off { color: var(--muted-500); }
.plan-features li.off::before { content: '—'; color: var(--line-strong); }
.plan-divider { height: 1px; background: var(--line); margin: 24px 0 0; }

/* ---------- Comparativo ---------- */
.compare-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); }
table.compare { width: 100%; border-collapse: collapse; min-width: 620px; }
table.compare th, table.compare td { padding: 14px 18px; text-align: left; border-bottom: 1px solid var(--line); font-size: .88rem; }
table.compare thead th { background: var(--blush-50); font-weight: 600; color: var(--ink-900); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
table.compare td:not(:first-child), table.compare th:not(:first-child) { text-align: center; width: 130px; }
table.compare tbody tr:hover { background: var(--blush-50); }
.yes { color: var(--ok-500); font-weight: 700; }
.no { color: var(--line-strong); }

/* ---------- Depoimentos ---------- */
.testimonials { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 940px) { .testimonials { grid-template-columns: 1fr; } }
.testimonial { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 28px; position: relative; }
.testimonial::before { content: '"'; position: absolute; top: 6px; right: 22px; font-family: var(--font-display); font-size: 5rem; color: var(--blush-200); line-height: 1; }
.testimonial p { font-size: .95rem; line-height: 1.8; color: var(--ink-700); position: relative; }
.testimonial-author { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
.testimonial-author .av { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 600; font-size: .85rem; }
.testimonial-author b { display: block; font-size: .9rem; }
.testimonial-author small { color: var(--muted-500); font-size: .78rem; }

/* ---------- FAQ ---------- */
.faq { max-width: 780px; margin-inline: auto; }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-q {
  width: 100%; background: none; border: none; padding: 22px 0; text-align: left; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  font-size: 1.02rem; font-weight: 500; color: var(--ink-900); font-family: var(--font-body);
}
.faq-q span:last-child { flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--line-strong); display: grid; place-items: center; transition: var(--transition); font-size: 1rem; }
.faq-item.open .faq-q span:last-child { background: var(--rose-500); color: #fff; border-color: var(--rose-500); transform: rotate(45deg); }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-item.open .faq-a { max-height: 420px; }
.faq-a p { padding: 0 0 22px; color: var(--muted-600); font-size: .93rem; line-height: 1.8; margin: 0; }

/* ---------- CTA final ---------- */
.cta-final {
  background: linear-gradient(135deg, var(--blush-100), var(--champagne-100));
  border-radius: var(--radius-lg); padding: 70px 40px; text-align: center; position: relative; overflow: hidden;
}
.cta-final::after {
  content: ''; position: absolute; inset: 14px; border: 1px solid rgba(185, 151, 112, .35); border-radius: calc(var(--radius-lg) - 6px); pointer-events: none;
}

/* ---------- Rodapé ---------- */
.site-footer { background: var(--ink-900); color: rgba(243, 237, 233, .74); padding: 70px 0 30px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 40px; margin-bottom: 46px; }
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; } }
.site-footer .brand { color: #fff; }
.site-footer h5 { color: #fff; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; margin: 0 0 16px; font-weight: 600; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.site-footer a { font-size: .88rem; transition: var(--transition); }
.site-footer a:hover { color: var(--champagne-200); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: 24px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: .8rem; }

/* =============================================================
   LANDING v2 — animações e novos blocos
   ============================================================= */

/* confete */
.arroz { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.arroz i {
  position: absolute; top: -8%; width: 6px; height: 11px; border-radius: 50%;
  background: linear-gradient(180deg, #fff, var(--champagne-200));
  box-shadow: 0 0 6px rgba(185,151,112,.35); opacity: .75;
  animation: cair linear infinite;
}
@keyframes cair { to { transform: translateY(115vh) rotate(420deg); } }
.hero > .container { position: relative; z-index: 1; }

/* texto rotativo */
.rotativo { display: inline-block; font-style: italic; color: var(--rose-600); }
.rotativo span { display: inline-block; transition: opacity .26s ease, transform .26s ease; }

.scroll-dica {
  position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%);
  font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted-500);
  animation: sobe 2.2s ease-in-out infinite; z-index: 1;
}
@keyframes sobe { 0%,100% { transform: translate(-50%, 0); opacity: .55 } 50% { transform: translate(-50%, -7px); opacity: 1 } }
@media (max-width: 940px) { .scroll-dica { display: none; } }

/* marquee */
.marquee-wrap { background: var(--blush-50); border-block: 1px solid var(--line); padding: 14px 0; overflow: hidden; }
.marquee { overflow: hidden; }
.marquee + .marquee { margin-top: 10px; }
.mq-linha { display: flex; gap: 10px; width: max-content; animation: correr 44s linear infinite; }
.marquee.reverso .mq-linha { animation-direction: reverse; animation-duration: 52s; }
.marquee:hover .mq-linha { animation-play-state: paused; }
@keyframes correr { to { transform: translateX(-50%); } }
.mq-item {
  display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
  padding: 8px 16px; background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius-pill); font-size: .82rem; color: var(--ink-700);
}

/* paletas interativas */
.paletas-linha { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
@media (max-width: 900px) { .paletas-linha { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .paletas-linha { grid-template-columns: repeat(2, 1fr); } }
.paleta-btn {
  border: 1px solid var(--line); border-radius: var(--radius); background: var(--white);
  padding: 0 0 10px; cursor: pointer; transition: var(--transition); overflow: hidden; font-family: inherit;
}
.paleta-btn:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.paleta-btn.sel { border: 2px solid var(--rose-500); }
.paleta-btn .paleta-cores { display: flex; height: 54px; }
.paleta-btn .paleta-cores i { flex: 1; }
.paleta-btn b { display: block; font-size: .76rem; font-weight: 500; padding: 9px 8px 0; color: var(--ink-800); }

/* temas do site */
.temas-site { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 900px) { .temas-site { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .temas-site { grid-template-columns: 1fr; } }
.tema-card { border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: var(--white); transition: var(--transition); }
.tema-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.tema-preview { aspect-ratio: 4/3; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 18px; text-align: center; }
.tema-preview b { font-size: 1.5rem; font-weight: 500; }
.tema-btn { font-size: .6rem; padding: 6px 14px; border-radius: 20px; margin-top: 6px; }
.tema-nome { padding: 13px 16px; }
.tema-nome b { display: block; font-size: .92rem; }
.tema-nome small { color: var(--muted-500); font-size: .78rem; }

/* calculadora */
.calc-box { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(20px, 4vw, 34px); }
.calc-campos { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 18px; margin-bottom: 22px; }
@media (max-width: 780px) { .calc-campos { grid-template-columns: 1fr; } }
.calc-campos input[type=range] { width: 100%; accent-color: var(--rose-500); }
.calc-resultado { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 22px; }
@media (max-width: 640px) { .calc-resultado { grid-template-columns: 1fr; } }
.calc-resultado > div { background: var(--blush-50); border-radius: var(--radius); padding: 16px; text-align: center; }
.calc-resultado b { display: block; font-family: var(--font-display); font-size: clamp(1.5rem, 4vw, 2rem); color: var(--rose-700); margin-top: 4px; }

/* integrações */
.integra-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 12px; }
@media (max-width: 1000px) { .integra-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 560px) { .integra-grid { grid-template-columns: repeat(2, 1fr); } }
.integra-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 12px; text-align: center; transition: var(--transition); }
.integra-card:hover { border-color: var(--rose-400); transform: translateY(-3px); }
.integra-card .ic { font-size: 1.7rem; display: block; margin-bottom: 8px; }
.integra-card b { display: block; font-size: .84rem; }
.integra-card small { color: var(--muted-500); font-size: .7rem; }

/* add-ons */
.addon-card { border: 1px dashed var(--line-strong); border-radius: var(--radius); padding: 16px; background: var(--blush-50); }
.addon-card b { display: block; font-size: .9rem; margin-bottom: 4px; }

/* cena 3D ilustrativa */
.cena3d { aspect-ratio: 16/10; overflow: hidden; }
.cena3d svg { width: 100%; height: 100%; display: block; }

/* ---------- Auth (modal de cadastro/login) ---------- */
.auth-tabs { display: flex; gap: 6px; background: var(--blush-50); padding: 5px; border-radius: var(--radius-pill); margin-bottom: 22px; }
.auth-tabs button { flex: 1; border: none; background: transparent; padding: 10px; border-radius: var(--radius-pill); cursor: pointer; font-size: .88rem; color: var(--muted-600); transition: var(--transition); }
.auth-tabs button.active { background: var(--white); color: var(--ink-900); box-shadow: var(--shadow-xs); font-weight: 500; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 20px 0; color: var(--muted-500); font-size: .78rem; }
.auth-divider::before, .auth-divider::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.demo-box { background: var(--champagne-100); border: 1px dashed var(--gold-500); border-radius: var(--radius); padding: 16px; font-size: .84rem; color: var(--gold-600); }

/* ---------- barra de progresso de rolagem ---------- */
.scroll-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0%; z-index: 200;
  background: linear-gradient(90deg, var(--rose-500), var(--gold-500)); transition: width .08s linear; }

/* ---------- foto de fundo do hero (paralaxe sutil) ---------- */
.hero-photo-bg { position: absolute; inset: -6% -4%; background-size: cover; background-position: center;
  opacity: .1; filter: saturate(1.1); z-index: 0; pointer-events: none; will-change: transform; }
.hero-grid, .arroz { position: relative; z-index: 1; }

/* ---------- galeria "momentos" com fotos reais ---------- */
.momentos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 900px) { .momentos-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .momentos-grid { grid-template-columns: 1fr; } }
.momento-card { margin: 0; position: relative; border-radius: 18px; overflow: hidden; aspect-ratio: 4/3;
  box-shadow: var(--shadow-sm); transition-delay: calc(var(--d, 0) * 70ms); }
.momento-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; will-change: transform; }
.momento-card:hover img { transform: scale(1.06); }
.momento-card figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 16px;
  background: linear-gradient(0deg, rgba(20,15,12,.72), transparent); color: #fff; font-size: .84rem; letter-spacing: .04em; }

@media (prefers-reduced-motion: reduce) {
  .hero-photo-bg, .momento-card img { transition: none !important; }
}

/* =============================================================
   MOBILE — a página estava excessivamente longa no celular.
   Os paddings/margens abaixo eram fixos (tamanho de desktop) em
   toda seção; aqui eles encolhem para telas pequenas.
   ============================================================= */
@media (max-width: 640px) {
  .hero { padding: calc(var(--header-h) + 34px) 0 44px; min-height: auto; }
  .hero h1 { margin-bottom: 16px; }
  .hero-sub { margin-bottom: 22px; line-height: 1.65; }
  .hero-cta { margin-bottom: 20px; }
  .hero-grid { gap: 34px; }
  .mock-body { padding: 16px; gap: 10px; }
  .mock-countdown { padding: 14px; }
  .mock-countdown b { font-size: 2.1rem; }
  .mock-list { gap: 6px; }

  .section { padding: 56px 0; }
  .section-head { margin: 0 auto 34px; }

  .strip { padding: 20px 0; }

  .features-grid { gap: 14px; }
  .feature { padding: 22px 20px; }

  .modules-grid { gap: 8px; }
  .module-chip { padding: 10px 12px; font-size: .82rem; }

  .steps { gap: 18px; }

  .momentos-grid { gap: 10px; }

  .paletas-linha { gap: 8px; }
  .temas-site { gap: 12px; }

  .integra-grid { gap: 8px; }
  .integra-card { padding: 14px 10px; }

  .plans { gap: 14px; }
  .plan { padding: 24px 20px; }
  .plan-features { margin-top: 18px; }

  .testimonials { gap: 14px; }
  .testimonial { padding: 20px; }

  .faq-q { padding: 17px 0; font-size: .95rem; }

  .cta-final { padding: 44px 22px; }

  .site-footer { padding: 44px 0 24px; }
  .footer-grid { gap: 26px; margin-bottom: 30px; }
}

@media (max-width: 480px) {
  .section { padding: 44px 0; }
  .section-head { margin-bottom: 26px; }
  .hero { padding-bottom: 34px; }
  .momento-card { aspect-ratio: 16/11; }
  .momento-card:nth-child(n+5) { display: none; }
  .cta-final { padding: 38px 18px; }
}

/* =============================================================
   Bride Era 2026-08-15 — landing compacta, mágica e responsiva
   ============================================================= */
.plans{grid-template-columns:repeat(4,1fr)}
.product-shots{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.product-shots figure{margin:0;background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .25s ease,box-shadow .25s ease}
.product-shots figure:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
.product-shots img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top;background:var(--blush-50)}
.product-shots figcaption{padding:14px 16px;font-weight:600;color:var(--ink-900)}
.couple-search{max-width:900px;margin:auto;background:var(--white);padding:24px;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm)}
.couple-search-form{display:grid;grid-template-columns:1.2fr 1fr auto;gap:12px;align-items:end}.couple-search-form .field{margin:0}
.couple-results{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}.couple-result{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--paper);transition:.2s}.couple-result:hover{border-color:var(--rose-400);transform:translateY(-2px)}
.couple-photo{width:52px;height:52px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--blush-100);flex:0 0 auto}.couple-photo img{width:100%;height:100%;object-fit:cover}.couple-result small{display:block;color:var(--muted-500);margin-top:2px}.search-empty,.search-loading{text-align:center;padding:20px;margin:8px 0 0;color:var(--muted-600)}
.compact-hidden{display:none!important}.compact-open>.compact-hidden{display:flex!important}.modules-grid.compact-open>.compact-hidden{display:flex!important}.features-grid.compact-open>.compact-hidden{display:block!important}.compact-toggle{display:block;width:max-content;max-width:calc(100% - 24px);margin:20px auto 0!important;background:var(--white)!important;color:var(--ink-900)!important;border:1px solid var(--rose-400)!important;box-shadow:var(--shadow-sm);text-align:center}
.wedding-magic{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}.wedding-magic i{position:absolute;left:var(--x);top:-20px;width:var(--s);height:var(--s);border-radius:50%;background:radial-gradient(circle,#fff 0 25%,rgba(255,225,196,.9) 35%,transparent 70%);filter:drop-shadow(0 0 7px rgba(255,217,178,.85));animation:brideSparkle var(--d) linear infinite;animation-delay:var(--delay);opacity:.55}@keyframes brideSparkle{0%{transform:translateY(-5vh) rotate(0);opacity:0}15%{opacity:.55}80%{opacity:.35}100%{transform:translateY(110vh) rotate(250deg);opacity:0}}
.cursor-glow{position:fixed;left:0;top:0;width:180px;height:180px;border-radius:50%;pointer-events:none;z-index:3;background:radial-gradient(circle,rgba(255,234,218,.18),rgba(224,183,166,.07) 45%,transparent 70%);mix-blend-mode:multiply;will-change:transform}
.feature,.plan,.module-chip,.integra-card,.shot,.momento-card,.btn{position:relative}.feature:hover,.module-chip:hover,.integra-card:hover{box-shadow:0 14px 40px rgba(91,60,55,.12)}
.support-float{position:fixed;left:18px;bottom:18px;z-index:80}.support-main{border:1px solid color-mix(in srgb,var(--rose-600) 75%,#000);border-radius:999px;background:var(--rose-600);color:var(--on-accent,#fff);padding:12px 16px;box-shadow:0 10px 30px rgba(0,0,0,.2);cursor:pointer;font:inherit}.support-menu{position:absolute;bottom:54px;left:0;background:white;border:1px solid var(--line);border-radius:14px;padding:8px;min-width:180px;box-shadow:var(--shadow-md);display:none}.support-float.open .support-menu{display:grid;gap:4px}.support-menu a{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:9px;font-size:.84rem;color:#241F1C!important;background:#fff}.support-menu a:hover{background:var(--blush-50)}
.back-top{position:fixed;right:18px;bottom:92px;z-index:70;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.92);box-shadow:var(--shadow-sm);opacity:0;pointer-events:none;transform:translateY(8px);transition:.2s;cursor:pointer}.back-top.show{opacity:1;pointer-events:auto;transform:none}
.cookie-consent{position:fixed;z-index:120;left:18px;right:18px;bottom:18px;max-width:1040px;margin:auto;background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:18px;padding:18px 20px;box-shadow:0 20px 60px rgba(45,30,28,.22);display:flex;align-items:center;justify-content:space-between;gap:20px}.cookie-consent p{margin:5px 0 0;font-size:.82rem;color:var(--muted-600);max-width:720px}.cookie-consent a{text-decoration:underline}
@media(max-width:1100px){.plans{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}.site-header .container{padding-inline:12px}.site-header{backdrop-filter:blur(18px)}
  .nav-actions .btn{display:none}.nav-actions .nav-toggle{display:grid}.nav-links{position:fixed;top:64px;left:10px;right:10px;max-height:calc(100dvh - 80px);overflow-y:auto;overflow-x:hidden;border-radius:16px;padding:12px;background:rgba(255,255,255,.98);box-shadow:var(--shadow-md);white-space:normal}.nav-links a{display:block;width:100%;padding:12px;border-bottom:1px solid var(--line)}
  .section{padding:58px 0}.section-head{margin-bottom:28px}.hero{min-height:auto;padding:108px 0 56px}.hero-grid{gap:34px}.hero h1{font-size:clamp(2.7rem,13vw,4.4rem)}.hero-sub{font-size:.95rem}.hero-cta{display:grid;grid-template-columns:1fr;gap:9px}.hero-cta .btn{width:100%}
  .plans,.product-shots,.couple-results{grid-template-columns:1fr}.couple-search{padding:16px}.couple-search-form{grid-template-columns:1fr}.couple-search-form .btn{width:100%}
  .modules-grid{grid-template-columns:1fr}.features-grid{grid-template-columns:1fr}.feature{padding:22px 20px}.plan{padding:25px 20px}.plan-features{gap:7px}.plan-features li{font-size:.82rem}
  .compare-wrap{max-height:520px;overflow:auto}.compare-wrap::after{content:'Deslize para comparar';position:sticky;left:12px;bottom:8px;background:var(--ink-900);color:white;padding:5px 9px;border-radius:10px;font-size:.65rem}
  .cookie-consent{display:block;left:10px;right:10px;bottom:10px;padding:15px}.cookie-consent .row{margin-top:12px}.cookie-consent .btn{flex:1}.support-main span{display:none}.support-main{width:46px;height:46px;padding:0}.back-top{right:12px;bottom:80px}
}
@media(prefers-reduced-motion:reduce){.wedding-magic,.cursor-glow{display:none!important}}

/* Menu mobile rolável, porém sem a faixa branca/barra visual do navegador. */
@media (max-width: 780px){
  .nav-links{scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain}
  .nav-links::-webkit-scrollbar{width:0;height:0;display:none}
}

/* Login social — identidades visuais reconhecíveis, sem emojis genéricos */
.auth-social-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.oauth-btn{border:1px solid var(--line);border-radius:12px;min-height:44px;padding:9px 12px;display:flex;align-items:center;justify-content:center;gap:9px;font:600 .82rem Jost,sans-serif;cursor:pointer;transition:.18s ease;background:#fff;color:#252525}
.oauth-btn:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(30,25,22,.10)}
.oauth-btn:disabled{opacity:.6;cursor:wait;transform:none}
.oauth-facebook{background:#0866ff;color:#fff;border-color:#0866ff}
.oauth-facebook .brand-platform-wrap{background:#fff;border-radius:50%;padding:2px}
.oauth-x{background:#000;color:#fff;border-color:#000}
.oauth-google{background:#fff;color:#3c4043;border-color:#dadce0}
@media(max-width:560px){.auth-social-grid{grid-template-columns:1fr}.oauth-btn{justify-content:flex-start;padding-left:26px}}


/* Bride Era R12 — inclusão, frases e mobile mais enxuto */
.fun-quote{padding:28px;border-radius:24px;background:linear-gradient(135deg,var(--blush-100),#fff);border:1px solid var(--line);font-size:clamp(1rem,2.3vw,1.18rem);line-height:1.8;text-align:center;margin-bottom:16px}
.fun-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.fun-pill{padding:16px 18px;border-radius:18px;background:#fff;border:1px solid var(--line);line-height:1.65}
@media(max-width:768px){
  .hero{padding:72px 0 32px}.hero-grid{gap:20px}.hero-sub,.lead{font-size:.9rem!important;line-height:1.55!important}.hero h1{font-size:clamp(2.05rem,9vw,2.8rem)!important}
  .section{padding:44px 0!important}.section-head{margin-bottom:18px!important}.section-head h2{font-size:clamp(1.5rem,7vw,2rem)!important;line-height:1.16!important}.eyebrow{font-size:.6rem!important;letter-spacing:.24em!important}
  .features-grid,.product-shots,.temas-site,.plans,.testimonials,.modules-grid{gap:12px!important}.feature,.plan,.testimonial,.module-chip,.step,.integra-card{padding:14px!important}
  .mock-window{transform:none!important}.mock-body{padding:12px!important}.mock-list .mock-item{font-size:.78rem!important}.strip{padding:16px 0!important}
  .strip-grid{gap:10px!important}.strip-grid b{font-size:1.35rem!important}.strip-grid small{font-size:.68rem!important}
  .compare-wrap{font-size:.8rem}.cta-final{padding:28px 18px!important}.faq-item,.calc-box,.couple-search,.love-card{padding:14px!important}
}

/* Bride Era R13 — menu da landing em drawer também no desktop.
   Assim os links nunca espremem nem quebram em coluna quando a janela fica estreita. */
@media (min-width: 821px) {
  .site-header .container { gap: 14px; }
  .nav-toggle { display:grid !important; place-items:center; width:42px; height:42px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.88); box-shadow:var(--shadow-xs); flex:0 0 auto; }
  .nav-links {
    position:fixed !important; top:0 !important; right:0 !important; left:auto !important; bottom:0 !important;
    width:min(360px,88vw) !important; height:100dvh; padding:92px 28px 34px !important; gap:3px !important;
    display:flex !important; flex-direction:column !important; align-items:stretch !important;
    background:rgba(255,253,252,.98) !important; backdrop-filter:blur(24px); border-left:1px solid var(--line); border-bottom:0 !important;
    box-shadow:-18px 0 55px rgba(52,37,34,.18) !important; overflow-y:auto; z-index:130;
    transform:translateX(108%) !important; transition:transform .28s ease !important;
  }
  .nav-links.open { transform:none !important; }
  .nav-links a { display:block; width:100%; padding:14px 8px; border-bottom:1px solid var(--line); font-size:.96rem; white-space:normal; }
  .nav-links a::after { display:none; }
}

/* ===== assets/css/vibe.css ===== */
/* Bride Era R11.9 — movimento, personalidade e microinterações */
.view-enter{animation:viewEnter .34s cubic-bezier(.2,.8,.2,1)}@keyframes viewEnter{from{opacity:0;transform:translateY(9px) scale(.995)}to{opacity:1;transform:none}}
.panel,.kpi,.exp-event-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.panel:hover{box-shadow:0 10px 34px rgba(79,54,54,.075)}
.aura-chip{position:fixed;right:18px;bottom:18px;z-index:700;display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--champagne-200);border-radius:999px;background:rgba(255,253,249,.96);box-shadow:0 12px 34px rgba(61,43,43,.14);font-size:.76rem;transform:translateY(20px);opacity:0;transition:.3s;pointer-events:none}.aura-chip.show{opacity:1;transform:none}.aura-chip span{animation:auraSpin 1.8s ease-in-out infinite}@keyframes auraSpin{50%{transform:rotate(15deg) scale(1.2)}}
.toast-pop{animation:toastPop .34s cubic-bezier(.2,1.3,.2,1)}@keyframes toastPop{0%{transform:scale(.92)}100%{transform:scale(1)}}.mini-spark{margin-left:7px;display:inline-block;animation:spark .7s ease both}@keyframes spark{0%{transform:translateY(4px) scale(.3);opacity:0}50%{opacity:1}100%{transform:translateY(-5px) scale(1.1)}}
.account-type-picker{display:grid;grid-template-columns:1fr 1fr;gap:9px}.account-type{border:1px solid var(--line);background:var(--white);border-radius:16px;padding:12px;display:grid;gap:4px;text-align:left;font-family:inherit;cursor:pointer}.account-type>span{font-size:1.45rem}.account-type small{color:var(--muted-500)}.account-type.active{border-color:var(--rose-400);background:linear-gradient(135deg,var(--blush-50),var(--champagne-100));box-shadow:0 0 0 2px rgba(192,138,125,.08)}
.love-is-love-ribbon{max-width:1100px;margin:0 auto 18px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(90deg,rgba(255,219,230,.44),rgba(255,243,191,.4),rgba(220,244,233,.42),rgba(223,233,255,.42),rgba(238,224,255,.42));font-size:.82rem;text-align:center;color:var(--ink-700)}
.pro-hero{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:24px;align-items:center;background:linear-gradient(135deg,var(--blush-100),var(--champagne-100))}.pro-hero h2{font-size:clamp(1.8rem,3vw,2.7rem);margin:4px 0 8px}.pro-aura{min-height:150px;border-radius:24px;background:rgba(255,255,255,.65);display:grid;place-items:center;align-content:center;text-align:center;border:1px solid rgba(255,255,255,.8)}.pro-aura span{font-size:2rem}.pro-aura b{font-family:var(--font-display);font-size:3.2rem;line-height:1;color:var(--rose-700)}.pro-aura small{color:var(--muted-600)}.pro-client-list{display:grid;gap:7px}.pro-client-list button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px;text-align:left;font-family:inherit}.pro-client-list button>span{font-size:1.3rem}.pro-client-list small{display:block;color:var(--muted-500)}.pro-client-list i{font-style:normal}.empty-state-fun{text-align:center;padding:28px 14px}.empty-state-fun>span{font-size:2.4rem}.pro-tips p{padding:8px 0;border-bottom:1px solid var(--line);margin:0}.pro-empty-route{text-align:center;max-width:680px;margin:8vh auto}.pro-empty-route .big-emoji{font-size:3rem}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
@media(max-width:600px){.account-type-picker{grid-template-columns:1fr}.aura-chip{display:none}}

.view-vibe-strip{display:flex;align-items:center;gap:9px;padding:11px 14px;margin:0 0 15px;border:1px solid color-mix(in srgb,var(--rose-500) 18%,var(--line));border-radius:16px;background:linear-gradient(110deg,color-mix(in srgb,var(--blush-100) 76%,#fff),#fff);color:var(--ink);font-size:.82rem;box-shadow:0 5px 18px rgba(93,60,63,.045);animation:vibeStripIn .35s ease both}.view-vibe-strip>span:first-child{font-size:1.08rem}.pro-settings-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,var(--blush-100),var(--champagne-100),#fff)}.pro-settings-hero .pro-aura{min-width:130px;text-align:center;padding:14px;border-radius:18px;background:rgba(255,255,255,.7);border:1px solid var(--line)}.pro-settings-hero .pro-aura b{display:block;font:600 2rem/1 var(--font-display);color:var(--rose-700)}.pro-settings-hero .pro-aura small{font-size:.7rem;color:var(--muted-600)}
@keyframes vibeStripIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media(max-width:820px){.pro-settings-hero{align-items:flex-start;flex-direction:column}.pro-settings-hero .pro-aura{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left}.pro-settings-hero .pro-aura b{display:inline}}

.love-card{position:relative;overflow:hidden;display:grid;grid-template-columns:1.35fr .65fr;gap:30px;align-items:center;padding:38px;border-radius:30px;background:linear-gradient(135deg,#fff 0%,var(--blush-100) 42%,var(--champagne-100) 100%);border:1px solid var(--line);box-shadow:0 20px 60px rgba(81,54,57,.08)}.love-card:before{content:'';position:absolute;width:230px;height:230px;border-radius:50%;right:-85px;top:-110px;background:conic-gradient(from 30deg,rgba(255,95,109,.13),rgba(255,196,92,.13),rgba(100,210,150,.13),rgba(98,158,255,.13),rgba(188,115,255,.13),rgba(255,95,109,.13));filter:blur(2px)}.love-card>*{position:relative;z-index:1}.love-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.love-pills span{padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid var(--line);font-size:.76rem}.love-quote{min-height:210px;display:flex;flex-direction:column;justify-content:center;padding:24px;border-radius:24px;background:rgba(255,255,255,.72);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.9)}.love-quote>span{font:500 4rem/1 var(--font-display);color:var(--rose-400);height:38px}.love-quote b{font:500 1.35rem/1.25 var(--font-display)}.love-quote small{margin-top:12px;color:var(--muted-600)}
@media(max-width:820px){.love-card{grid-template-columns:1fr;padding:22px;border-radius:22px}.love-quote{min-height:150px}}
.vibe-loadbar{position:fixed;top:0;left:0;width:0;height:3px;z-index:9999;opacity:0;background:linear-gradient(90deg,var(--rose-400),var(--gold-500),var(--rose-600));box-shadow:0 0 14px color-mix(in srgb,var(--rose-500) 50%,transparent);pointer-events:none}.vibe-loadbar.run{animation:vibeLoad .62s cubic-bezier(.2,.8,.2,1)}@keyframes vibeLoad{0%{width:0;opacity:1}65%{width:76%;opacity:1}100%{width:100%;opacity:0}}

/* ===== assets/css/landing-r14.css ===== */
/* Bride Era R14 — landing SaaS / marketplace / 3D demo */
.nav-mobile-auth{display:none;gap:8px;padding-top:14px;border-top:1px solid var(--line);margin-top:6px}
.nav-mobile-auth .btn{flex:1;min-height:44px}
@media(max-width:940px){.nav-mobile-auth{display:flex}.nav-links{padding-bottom:22px!important}}

.saas-hero-proof{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:26px}
.saas-proof-card{padding:14px;border-radius:16px;background:rgba(255,255,255,.78);border:1px solid var(--line);backdrop-filter:blur(8px)}
.saas-proof-card b{display:block;font-family:var(--font-display);font-size:1.05rem;color:var(--ink-900)}
.saas-proof-card small{display:block;margin-top:4px;color:var(--muted-600);line-height:1.35}
@media(max-width:720px){.saas-hero-proof{grid-template-columns:1fr 1fr}.saas-proof-card{padding:11px}.saas-proof-card b{font-size:.92rem}.saas-proof-card small{font-size:.68rem}}

.ecosystem-band{background:linear-gradient(135deg,#241f1c,#4a3631);color:#fff;overflow:hidden;position:relative}
.ecosystem-band:before{content:"";position:absolute;inset:-20% auto auto -8%;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(192,138,125,.38),transparent 70%)}
.ecosystem-band .section-head h2{color:#fff}.ecosystem-band .lead{color:rgba(255,255,255,.76)}
.ecosystem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative}
.ecosystem-card{padding:24px;border-radius:22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px)}
.ecosystem-card .ico{font-size:1.7rem}.ecosystem-card h3{color:#fff;margin:12px 0 7px}.ecosystem-card p{color:rgba(255,255,255,.72);font-size:.9rem;line-height:1.55;margin:0}
@media(max-width:820px){.ecosystem-grid{grid-template-columns:1fr}.ecosystem-card{padding:17px}}

.marketplace-showcase{display:grid;grid-template-columns:1.05fr .95fr;gap:38px;align-items:center}
.vendor-preview{display:grid;gap:10px}.vendor-preview-card{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center;padding:14px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-xs)}
.vendor-preview-card .avatar{width:56px;height:56px;border-radius:15px;display:grid;place-items:center;background:var(--blush-100);font-size:1.4rem}.vendor-preview-card b{display:block}.vendor-preview-card small{display:block;color:var(--muted-600);margin-top:2px}.vendor-preview-card .stars{font-size:.75rem;white-space:nowrap}
@media(max-width:900px){.marketplace-showcase{grid-template-columns:1fr}}

.newsletter-box{display:grid;grid-template-columns:1fr auto;gap:10px;max-width:760px;margin:24px auto 0;padding:10px;background:#fff;border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-sm)}
.newsletter-box input{border:0!important;background:transparent!important;min-height:48px;padding:0 18px!important}.newsletter-box .btn{border-radius:999px;white-space:nowrap}.newsletter-consent{max-width:740px;margin:8px auto 0;text-align:center;font-size:.7rem;color:var(--muted-500)}
@media(max-width:640px){.newsletter-box{grid-template-columns:1fr;border-radius:20px}.newsletter-box .btn{width:100%}}

.store-soon{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px}.store-soon-card{display:flex;align-items:center;gap:10px;background:#111;color:#fff;border-radius:12px;padding:10px 15px;min-width:190px;text-align:left}.store-soon-card img{width:28px;height:28px;object-fit:contain}.store-soon-card small{display:block;opacity:.68;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em}.store-soon-card b{display:block;font-size:.9rem}

.demo3d-modal{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px}.demo3d-stage{min-height:480px;border-radius:18px;overflow:hidden;background:#e8edf2;position:relative;border:1px solid var(--line)}.demo3d-stage canvas{display:block;width:100%;height:100%}.demo3d-help{position:absolute;left:12px;bottom:12px;background:rgba(20,20,24,.78);color:#fff;border-radius:12px;padding:8px 10px;font-size:.72rem;pointer-events:none}.demo3d-tools{display:grid;align-content:start;gap:8px}.demo3d-tools .btn{width:100%}.demo3d-stat{padding:12px;border:1px solid var(--line);background:#fff;border-radius:14px}.demo3d-stat b{display:block;font-size:1.35rem;font-family:var(--font-display)}
@media(max-width:760px){.demo3d-modal{grid-template-columns:1fr}.demo3d-stage{min-height:360px}.demo3d-tools{grid-template-columns:1fr 1fr}.demo3d-stat{grid-column:1/-1}}

/* A inspiração deve ficar completamente estática: sem parallax/translate ao rolar. */
#momentos .momento-card,#momentos .momento-card img{transform:none!important;animation:none!important}

.auth-consent-box{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--blush-50);margin:12px 0}.auth-consent-box label{align-items:flex-start}.oauth-btn[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.3)}

.whatsapp-addon-card{border:1px solid #cfe7d6;background:linear-gradient(135deg,#f3fff7,#fff);border-radius:22px;padding:24px}.whatsapp-addon-price{font-family:var(--font-display);font-size:2rem;color:#1f7441}.whatsapp-addon-price small{font:400 .75rem var(--font-body);color:var(--muted-600)}

@media(max-width:768px){
  .saas-sales-copy .lead{font-size:.88rem!important}.saas-sales-copy h2{font-size:1.75rem!important}
}
/* R14 — onboarding quando a landing é aberta dentro do app nativo */
.native-onboarding-r14{position:fixed;inset:0;z-index:5000;background:linear-gradient(160deg,#fffaf8,#f5e9e5);display:grid;align-items:end;padding:24px 18px calc(24px + env(safe-area-inset-bottom));overflow:auto}.native-onboarding-card{background:#fff;border-radius:30px;padding:28px 22px;box-shadow:0 24px 70px rgba(57,38,34,.16);max-width:520px;margin:0 auto;width:100%}.native-onboarding-card .native-mark{width:64px;height:64px;object-fit:contain;margin-bottom:12px}.native-onboarding-card h1{font-size:2rem;line-height:1.05;margin:0 0 8px}.native-onboarding-card>p{color:var(--muted-600);line-height:1.55}.native-onboarding-steps{display:grid;gap:9px;margin:20px 0}.native-onboarding-steps div{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:16px;background:var(--blush-50)}.native-onboarding-steps span{font-size:1.35rem}.native-onboarding-steps b{display:block;font-size:.85rem}.native-onboarding-steps small{color:var(--muted-600)}.native-onboarding-actions{display:grid;gap:9px}

/* Bride Era R14.2 — CTA da demonstração 3D legível no bloco escuro */
[data-open-3d-demo]{background:rgba(255,255,255,.13)!important;color:#fff!important;border-color:rgba(255,255,255,.58)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 24px rgba(0,0,0,.10)!important;font-weight:600!important}
[data-open-3d-demo]:hover,[data-open-3d-demo]:focus-visible{background:#fff!important;color:#4d3938!important;border-color:#fff!important;box-shadow:0 12px 30px rgba(0,0,0,.16)!important}

/* Bride Era R14.3 — perfis do ecossistema logo no hero */
.hero-ecosystem-roles{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}.hero-ecosystem-roles span{display:inline-flex;align-items:center;gap:4px;padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.84);border:1px solid rgba(255,255,255,.64);box-shadow:0 7px 22px rgba(44,32,32,.06);backdrop-filter:blur(12px);font-size:.73rem;color:var(--ink-800)}@media(max-width:720px){.hero-ecosystem-roles{gap:6px}.hero-ecosystem-roles span{padding:6px 8px;font-size:.64rem}}

/* Bride Era R14.7 — confiança, proteção e transparência */
.security-trust-section{padding:74px 0;background:linear-gradient(180deg,#fff,#fbf7f5);border-bottom:1px solid var(--line);overflow:hidden;position:relative}.security-trust-section:before{content:"";position:absolute;width:430px;height:430px;border-radius:50%;right:-180px;top:-210px;background:radial-gradient(circle,rgba(192,138,125,.16),transparent 68%);pointer-events:none}.security-trust-head{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.security-trust-head h2{margin:8px 0 10px}.security-shield{width:190px;height:190px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#27211f;color:#fff;border:8px solid #f3e5df;box-shadow:0 20px 55px rgba(55,40,35,.16);font-size:2rem}.security-shield b{font-size:.86rem;margin-top:6px}.security-shield small{font-size:.67rem;color:rgba(255,255,255,.65);margin-top:2px}.security-badge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:28px}.security-badge{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;padding:16px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 28px rgba(45,33,29,.045);position:relative;overflow:hidden}.security-badge>span{width:46px;height:46px;border-radius:13px;background:var(--blush-50);display:grid;place-items:center;font-size:1.35rem}.security-badge b{display:block;font-size:.86rem;color:var(--ink-900)}.security-badge small{display:block;font-size:.68rem;line-height:1.42;color:var(--muted-600);margin-top:3px}.security-badge>i{font-style:normal;font-size:.54rem;letter-spacing:.12em;font-weight:800;color:var(--rose-600);writing-mode:vertical-rl;transform:rotate(180deg);opacity:.7}.security-evidence{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-top:16px;padding:14px 16px;border-radius:16px;border:1px dashed var(--line);background:rgba(255,255,255,.72)}.security-evidence>div:first-child{display:flex;gap:7px;align-items:baseline;min-width:0}.security-evidence b{font-size:.72rem;white-space:nowrap}.security-evidence span{font-size:.66rem;color:var(--muted-600);line-height:1.45}.security-links{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.security-links a{font-size:.62rem;padding:6px 8px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-700)}
@media(max-width:900px){.security-badge-grid{grid-template-columns:1fr 1fr}.security-trust-head{grid-template-columns:1fr}.security-shield{width:100%;height:auto;border-radius:18px;border-width:1px;display:grid;grid-template-columns:auto auto 1fr;justify-content:start;text-align:left;gap:8px;padding:13px 16px}.security-shield b,.security-shield small{margin:0}.security-evidence{align-items:flex-start;flex-direction:column}.security-links{justify-content:flex-start}}
@media(max-width:600px){.security-trust-section{padding:52px 0}.security-badge-grid{grid-template-columns:1fr}.security-badge{grid-template-columns:42px 1fr auto;padding:13px}.security-badge>span{width:42px;height:42px}.security-evidence>div:first-child{display:block}.security-evidence b{display:block;margin-bottom:4px}}

/* ===== assets/css/landing-r1478.css ===== */
/* Landing Bride Era R14.7.8 */
.landing-r1478-wrap{padding:26px 0 6px;background:var(--paper)}.landing-r1478-slider{position:relative;min-height:300px;border-radius:30px;overflow:hidden;box-shadow:0 24px 60px rgba(73,49,43,.13)}.landing-r1478-track{position:relative;min-height:300px}.landing-r1478-slide{position:absolute;inset:0;padding:44px 110px 44px 46px;display:grid;grid-template-columns:minmax(0,1fr) 170px;align-items:center;opacity:0;visibility:hidden;transform:translateX(22px);transition:.6s;background:linear-gradient(125deg,#fff7f3,#ecd5cd);color:#332c28}.landing-r1478-slide.active{opacity:1;visibility:visible;transform:none}.landing-r1478-slide.tone-plum{background:linear-gradient(125deg,#34272c,#704a52);color:#fff}.landing-r1478-slide.tone-champagne{background:linear-gradient(125deg,#fffaf1,#e9d5b7)}.landing-r1478-slide.tone-sage{background:linear-gradient(125deg,#f6f8f2,#d5e2d1)}.landing-r1478-slide.tone-blue{background:linear-gradient(125deg,#f5f8fb,#d7e5f1)}.landing-r1478-slide h2{font-size:clamp(2rem,4vw,3.25rem);max-width:840px;color:inherit;margin:4px 0 10px}.landing-r1478-slide p{max-width:760px;color:inherit;opacity:.78;font-size:1.02rem}.landing-r1478-tag{font-size:.68rem;letter-spacing:.18em;font-weight:800}.landing-r1478-emoji{font-size:7rem;text-align:center;filter:drop-shadow(0 18px 24px rgba(63,40,37,.15));animation:landingR1478Float 4s ease-in-out infinite}.landing-r1478-cta{background:rgba(255,255,255,.82)!important;color:#6b4846!important;border-color:rgba(90,58,54,.12)!important}.tone-plum .landing-r1478-cta{background:rgba(255,255,255,.12)!important;color:#fff!important;border-color:rgba(255,255,255,.22)!important}.landing-r1478-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);border:0;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.75);font-size:1.6rem;color:#654946;cursor:pointer;backdrop-filter:blur(8px)}.landing-r1478-arrow.prev{left:15px}.landing-r1478-arrow.next{right:15px}.landing-r1478-dots{position:absolute;z-index:4;left:46px;bottom:17px;display:flex;gap:6px}.landing-r1478-dots button{border:0;width:8px;height:8px;padding:0;border-radius:999px;background:rgba(66,43,39,.25);transition:.25s}.landing-r1478-dots button.active{width:28px;background:#9e6561}.landing-r1478-success{background:linear-gradient(180deg,var(--paper),var(--blush-50))}.landing-r1478-stories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.landing-r1478-stories article{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:var(--white);padding:28px;box-shadow:var(--shadow-sm)}.landing-r1478-stories article>span{font-size:2.4rem;display:block;margin-bottom:12px}.landing-r1478-stories h3{font-size:1.55rem}.landing-r1478-stories p{color:var(--muted-600)}.story-meta{font-size:.63rem;letter-spacing:.15em;font-weight:800;color:var(--rose-600);margin-bottom:7px}.story-proof{display:flex;align-items:baseline;gap:10px;padding-top:13px;border-top:1px solid var(--line)}.story-proof b{font:600 1.6rem var(--font-display);color:var(--rose-600)}.story-proof small{color:var(--muted-500)}@keyframes landingR1478Float{50%{transform:translateY(-10px) rotate(2deg)}}
@media(max-width:720px){.landing-r1478-slider,.landing-r1478-track{min-height:355px}.landing-r1478-slide{grid-template-columns:1fr;padding:32px 26px 54px}.landing-r1478-slide h2{font-size:2rem}.landing-r1478-slide p{font-size:.9rem;max-width:90%}.landing-r1478-emoji{position:absolute;right:-10px;bottom:-20px;font-size:7rem;opacity:.18}.landing-r1478-arrow{display:none}.landing-r1478-dots{left:26px}.landing-r1478-stories{grid-template-columns:1fr}.landing-r1478-stories article{padding:22px}}
@media(prefers-reduced-motion:reduce){.landing-r1478-slide,.landing-r1478-emoji{animation:none!important;transition:none!important}}

/* ===== assets/css/landing-r1479.css ===== */
/* Bride Era R14.7.9 — banner da landing em largura total, sem texto/CTA cortados. */
.landing-r1478-wrap{padding:0!important;background:var(--paper)!important;overflow:hidden}.landing-r1478-wrap>.container{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.landing-r1478-slider,.landing-r1478-track{min-height:430px!important;width:100%!important}.landing-r1478-slider{border-radius:0!important;box-shadow:none!important}.landing-r1478-slide{min-height:430px!important;padding:58px clamp(88px,7vw,132px) 70px!important;grid-template-columns:minmax(0,1fr) minmax(180px,300px)!important;gap:48px!important;overflow:hidden}.landing-r1478-slide>div{min-width:0;align-self:center}.landing-r1478-slide h2{font-size:clamp(2.25rem,4.4vw,4.2rem)!important;line-height:1.02!important;max-width:980px!important;margin:6px 0 15px!important;text-wrap:balance}.landing-r1478-slide p{font-size:clamp(.98rem,1.25vw,1.15rem)!important;line-height:1.58!important;max-width:840px!important;margin:0 0 22px!important}.landing-r1478-cta{display:inline-flex!important;visibility:visible!important;opacity:1!important;position:relative;z-index:7}.landing-r1478-emoji{font-size:9rem!important;position:relative;z-index:1}.landing-r1478-arrow{width:48px!important;height:48px!important;z-index:12!important;background:rgba(255,255,255,.9)!important;box-shadow:0 10px 28px rgba(54,38,34,.14)}.landing-r1478-arrow.prev{left:26px!important}.landing-r1478-arrow.next{right:26px!important}.landing-r1478-dots{left:clamp(88px,7vw,132px)!important;bottom:26px!important;z-index:12!important}
@media(max-width:820px){.landing-r1478-slider,.landing-r1478-track,.landing-r1478-slide{min-height:430px!important}.landing-r1478-slide{grid-template-columns:1fr!important;padding:42px 28px 68px!important;align-content:center!important}.landing-r1478-slide h2{font-size:clamp(2rem,10vw,3.2rem)!important;line-height:1.02!important;max-width:100%!important}.landing-r1478-slide p{font-size:.95rem!important;max-width:100%!important}.landing-r1478-emoji{position:absolute!important;right:-14px!important;bottom:-12px!important;font-size:9rem!important;opacity:.12!important;pointer-events:none}.landing-r1478-arrow{display:none!important}.landing-r1478-dots{left:28px!important;bottom:22px!important}}
@media(max-width:420px){.landing-r1478-slider,.landing-r1478-track,.landing-r1478-slide{min-height:470px!important}.landing-r1478-slide{padding:36px 22px 64px!important}}

/* ===== assets/css/landing-r14710.css ===== */
/* Bride Era R14.7.10 — landing dark mode, partículas visíveis e sliders premium. */
.landing-theme-toggle{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.82);color:var(--ink-900);cursor:pointer;box-shadow:var(--shadow-xs);transition:.25s ease;flex:0 0 auto}.landing-theme-toggle:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}
html[data-landing-theme="dark"]{color-scheme:dark;--paper:#0e0d0d;--white:#1c1918;--ink-900:#fff8f4;--ink-800:#f1e6e0;--ink-700:#dbccc5;--muted-600:#b8aaa3;--muted-500:#9c8e88;--line:#3c3431;--line-strong:#50443f;--blush-50:#171414;--blush-100:#211b1a;--blush-200:#342624;--blush-300:#513a34;--champagne-100:#28221d;--champagne-200:#3a3026;--shadow-xs:0 2px 7px rgba(0,0,0,.2);--shadow-sm:0 9px 25px rgba(0,0,0,.25);--shadow-md:0 18px 44px rgba(0,0,0,.34);--shadow-lg:0 30px 70px rgba(0,0,0,.42)}
html[data-landing-theme="dark"] body{background:#0e0d0d;color:#f1e6e0}
html[data-landing-theme="dark"] .site-header{background:rgba(17,15,15,.92)!important;border-color:#352e2b!important;backdrop-filter:blur(18px)}
html[data-landing-theme="dark"] .landing-theme-toggle{background:#292422;color:#fff6f2;border-color:#4a403c}
html[data-landing-theme="dark"] :where(.section,.section-alt,.landing-r1478-success,.security-trust-section,.landing-r1478-wrap){background:#0e0d0d!important;color:#f1e6e0!important}
html[data-landing-theme="dark"] :where(.feature,.addon-card,.momento-card,.tema-card,.plan,.testimonial,.faq-item,.calc-box,.integra-card,.shot,.couple-search,.fun-pill,.product-shots figure,.saas-proof-card,.vendor-preview-card,.newsletter-box,.demo3d-stat,.security-badge,.landing-r1478-stories article,.ecosystem-card,.whatsapp-addon-card){background:#1d1a19!important;color:#f1e6e0!important;border-color:#3d3532!important;box-shadow:0 12px 34px rgba(0,0,0,.2)!important}
html[data-landing-theme="dark"] :where(h1,h2,h3,h4,.feature h3,.plan-name,.testimonial b,.security-badge b){color:#fff8f4!important}
html[data-landing-theme="dark"] :where(.lead,.hero-sub,.feature p,.testimonial p,.plan-desc,.faq-a,.muted,.landing-r1478-stories p,.security-badge small,.security-evidence span){color:#b9aaa3!important}
html[data-landing-theme="dark"] .hero{background:#11100f!important}.hero-photo-bg{transition:filter .4s ease}html[data-landing-theme="dark"] .hero-photo-bg{filter:brightness(.44) saturate(.78)!important}
html[data-landing-theme="dark"] .mock-window{background:#1b1817!important;border-color:#4a403c!important}html[data-landing-theme="dark"] .mock-body,html[data-landing-theme="dark"] .mock-bar{background:#211e1d!important;border-color:#3d3532!important}html[data-landing-theme="dark"] .mock-item,html[data-landing-theme="dark"] .float-card{background:#282321!important;color:#eee3dd!important;border-color:#493f3a!important}
html[data-landing-theme="dark"] .billing-toggle,html[data-landing-theme="dark"] .compact-toggle{background:#211e1d!important;color:#f3e8e3!important;border-color:#4b403c!important}
html[data-landing-theme="dark"] .support-menu{background:#211e1d!important;border-color:#413936!important}html[data-landing-theme="dark"] .support-menu a{background:#211e1d!important;color:#f1e6e0!important}html[data-landing-theme="dark"] .support-menu a:hover{background:#302927!important}
html[data-landing-theme="dark"] .security-trust-section{background:linear-gradient(180deg,#11100f,#0d0c0c)!important}html[data-landing-theme="dark"] .security-evidence{background:#181616!important;border-color:#443a36!important}html[data-landing-theme="dark"] .security-links a{background:#272220!important;color:#e9dcd5!important;border-color:#443a36!important}
html[data-landing-theme="dark"] .nav-links{background:rgba(20,18,18,.98)!important;border-color:#3d3532!important}html[data-landing-theme="dark"] .nav-links a{border-color:#39322f!important;color:#eee3dd!important}

/* O efeito de bolinhas fica acima do fundo, mas nunca bloqueia cliques. */
.wedding-magic{z-index:3!important}.wedding-magic i{opacity:.68!important;filter:drop-shadow(0 0 9px rgba(255,210,171,.8))!important}html[data-landing-theme="dark"] .wedding-magic i{background:radial-gradient(circle,#fff3df 0 22%,rgba(218,170,119,.92) 33%,transparent 72%)!important;opacity:.48!important}.cursor-glow{z-index:4!important;mix-blend-mode:screen}
.site-header,.hero>.container,.hero .scroll-dica,.section>.container,.strip>.container,.marquee-wrap,.site-footer,.support-float,.cookie-consent{position:relative;z-index:5}

/* Landing slider: crossfade cinematográfico sem corte duro. */
.landing-r1478-slider{isolation:isolate;background:#2d2521}
.landing-r1478-track{overflow:hidden!important;isolation:isolate}
.landing-r1478-slide{visibility:visible!important;pointer-events:none!important;opacity:0!important;z-index:1!important;transform:translate3d(36px,0,0) scale(.985)!important;filter:blur(9px) saturate(.9)!important;transition:opacity .95s cubic-bezier(.22,.61,.36,1),transform 1.15s cubic-bezier(.22,.61,.36,1),filter .95s ease!important;will-change:opacity,transform,filter}
.landing-r1478-slide.active{pointer-events:auto!important;opacity:1!important;z-index:3!important;transform:none!important;filter:none!important}
.landing-r1478-slide::before,.landing-r1478-slide::after{content:"";position:absolute;border-radius:50%;pointer-events:none;opacity:.32;z-index:0;animation:landingR14710Blob 9s ease-in-out infinite alternate}
.landing-r1478-slide::before{width:330px;height:330px;right:6%;top:-150px;background:radial-gradient(circle,rgba(255,255,255,.6),transparent 68%)}
.landing-r1478-slide::after{width:240px;height:240px;right:28%;bottom:-150px;background:radial-gradient(circle,rgba(255,214,177,.45),transparent 70%);animation-duration:12s;animation-direction:alternate-reverse}
.landing-r1478-slide>div,.landing-r1478-emoji{position:relative;z-index:2}.landing-r1478-emoji{animation:landingR14710Float 5s ease-in-out infinite!important}
.landing-r1478-cta{position:relative!important;z-index:6!important;max-width:max-content!important}
.landing-r1478-dots{display:flex!important;align-items:center!important;gap:7px!important}.landing-r1478-dots button{flex:0 0 auto!important;width:8px!important;height:8px!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;border-radius:999px!important}.landing-r1478-dots button.active{width:28px!important;height:8px!important}
html[data-landing-theme="dark"] .landing-r1478-slide{color:#fff8f4!important}html[data-landing-theme="dark"] .landing-r1478-slide h2,html[data-landing-theme="dark"] .landing-r1478-slide p,html[data-landing-theme="dark"] .landing-r1478-tag{color:inherit!important}html[data-landing-theme="dark"] .landing-r1478-slide p{opacity:.86!important}
html[data-landing-theme="dark"] .landing-r1478-slide.tone-rose{background:linear-gradient(125deg,#3a2828,#734341 58%,#8b5751)!important}html[data-landing-theme="dark"] .landing-r1478-slide.tone-plum{background:linear-gradient(125deg,#251a20,#51313a 58%,#724651)!important}html[data-landing-theme="dark"] .landing-r1478-slide.tone-champagne{background:linear-gradient(125deg,#352a20,#59452f 60%,#80633d)!important}html[data-landing-theme="dark"] .landing-r1478-slide.tone-sage{background:linear-gradient(125deg,#20291f,#354532 60%,#506449)!important}html[data-landing-theme="dark"] .landing-r1478-slide.tone-blue{background:linear-gradient(125deg,#1e2831,#334656 60%,#4b6981)!important}
html[data-landing-theme="dark"] .landing-r1478-cta{background:rgba(18,14,13,.38)!important;color:#fff!important;border-color:rgba(255,255,255,.24)!important;backdrop-filter:blur(9px)!important}
@keyframes landingR14710Float{0%,100%{transform:translate3d(0,0,0) rotate(-2deg)}50%{transform:translate3d(0,-18px,0) rotate(3deg)}}@keyframes landingR14710Blob{from{transform:translate3d(-12px,-8px,0) scale(.94)}to{transform:translate3d(28px,26px,0) scale(1.13)}}

/* Exemplo Maria & João na landing. */
.landing-demo-site{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff8f4,#f0d9cf)}.landing-demo-site::before{content:"";position:absolute;inset:auto -120px -180px auto;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(192,138,125,.22),transparent 68%)}.landing-demo-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:34px;align-items:center}.landing-demo-copy{position:relative;z-index:2}.landing-demo-copy .demo-badges{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.landing-demo-copy .demo-badges span{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid rgba(125,79,80,.15);font-size:.72rem}.landing-demo-preview{position:relative;min-height:390px;border-radius:30px;background:linear-gradient(145deg,#2b2021,#815b59);box-shadow:0 28px 70px rgba(80,48,44,.25);padding:22px;color:#fff;overflow:hidden}.landing-demo-preview::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(255,255,255,.22),transparent 30%)}.landing-demo-browser{position:relative;z-index:2;background:rgba(255,255,255,.94);color:#392d2a;border-radius:20px;min-height:345px;overflow:hidden;display:grid;grid-template-rows:auto 1fr}.landing-demo-browser-bar{padding:10px 13px;border-bottom:1px solid #eadfd9;display:flex;gap:6px}.landing-demo-browser-bar i{width:8px;height:8px;border-radius:50%;background:#d4aaa1}.landing-demo-browser-body{padding:34px 28px;background:linear-gradient(180deg,#fffaf7,#f7ebe4);display:grid;place-items:center;text-align:center}.landing-demo-browser-body span{font-size:1.9rem}.landing-demo-browser-body h3{font:500 2.5rem/1 var(--font-display);margin:8px 0;color:#4a3733}.landing-demo-browser-body small{color:#8d756d}.landing-demo-browser-body .demo-count{margin-top:18px;padding:8px 13px;border:1px solid #e2cec6;border-radius:999px;font-size:.72rem;color:#805c55}
html[data-landing-theme="dark"] .landing-demo-site{background:linear-gradient(135deg,#171313,#2b2020)!important}html[data-landing-theme="dark"] .landing-demo-copy .demo-badges span{background:#282321;border-color:#493d39;color:#eadfd9}

@media(max-width:820px){
  .landing-r1478-slide{transform:translate3d(18px,0,0) scale(.99)!important}.landing-r1478-slide.active{transform:none!important}
  .landing-r1478-dots{left:24px!important;bottom:20px!important;background:rgba(0,0,0,.11);padding:6px 8px!important;border-radius:999px!important;width:auto!important;max-width:calc(100% - 48px)!important}.landing-r1478-dots button{background:rgba(255,255,255,.54)!important}.landing-r1478-dots button.active{background:#fff!important}
  .landing-r1478-emoji{right:-34px!important;bottom:-30px!important;opacity:.15!important}
  .landing-demo-grid{grid-template-columns:1fr}.landing-demo-preview{min-height:320px}.landing-demo-browser{min-height:278px}.landing-demo-browser-body{padding:25px 18px}.landing-demo-browser-body h3{font-size:2.1rem}
  .landing-theme-toggle{width:40px;height:40px;border-radius:12px}.nav-actions{gap:7px!important}
}
@media(prefers-reduced-motion:reduce){.landing-r1478-slide,.landing-r1478-slide::before,.landing-r1478-slide::after,.landing-r1478-emoji{animation:none!important;transition:none!important}}
/* Modais/autenticação/cookies também obedecem ao modo da landing. */
html[data-landing-theme="dark"] :where(.modal,.modal-box,.auth-modal,.auth-card,.cookie-consent){background:#1c1918!important;color:#f1e6e0!important;border-color:#413835!important;box-shadow:0 24px 70px rgba(0,0,0,.42)!important}
html[data-landing-theme="dark"] :where(.modal-head,.modal-footer,.auth-tabs){background:#171414!important;border-color:#3b3330!important}
html[data-landing-theme="dark"] .auth-tabs button{color:#bcaea7!important}html[data-landing-theme="dark"] .auth-tabs button.active{background:#2b2523!important;color:#fff7f3!important}
html[data-landing-theme="dark"] :where(input,select,textarea){background:#151313!important;color:#fff7f3!important;border-color:#4a403c!important}html[data-landing-theme="dark"] :where(input,textarea)::placeholder{color:#7f726c!important}
html[data-landing-theme="dark"] .oauth-google{background:#f7f4f2!important;color:#303030!important}html[data-landing-theme="dark"] .oauth-btn:not(.oauth-google):not(.oauth-facebook):not(.oauth-x){background:#26211f!important;color:#f5ebe6!important;border-color:#443a36!important}
html[data-landing-theme="dark"] .fun-quote{background:linear-gradient(135deg,#231c1b,#1a1716)!important;border-color:#3d3532!important;color:#eee2dc!important}

/* R14.7.11 — landing novamente exclusivamente clara. */
html{color-scheme:light!important}#landingThemeToggle,.landing-theme-toggle{display:none!important}.landing-demo-site .reveal.in,.landing-r1478-success .reveal.in{visibility:visible;opacity:1;transform:none}

/* ===== assets/css/landing-r14712.css ===== */
/* Bride Era R14.7.12 — landing clara, centralizada e 80% mais enxuta no mobile. */
html,body{max-width:100%;overflow-x:clip}html{color-scheme:light!important}html[data-landing-theme]{color-scheme:light!important}
.site-header{position:fixed!important;inset:0 0 auto 0!important;z-index:1000!important;background:rgba(255,253,252,.93)!important;backdrop-filter:blur(18px)!important;border-bottom:1px solid rgba(116,82,73,.08)}
.site-header .container{position:relative;z-index:1002}.nav-links{z-index:1010!important}.r14712-nav-backdrop{position:fixed;inset:0;background:rgba(35,26,24,.28);backdrop-filter:blur(3px);z-index:1005;opacity:0;pointer-events:none;transition:.22s ease}.r14712-nav-backdrop.open{opacity:1;pointer-events:auto}
body :where(.section-head,.security-trust-head,.landing-demo-copy,.landing-r14712-head){text-align:center!important;margin-inline:auto!important}body :where(.section-head,.security-trust-head)>*{margin-inline:auto!important}
.hero-grid>div:first-child{text-align:center}.hero-sub{margin-inline:auto}.hero-cta,.hero-trust,.hero-ecosystem-roles{justify-content:center}.saas-hero-proof{margin-inline:auto}
:where(.feature,.integra-card,.module-chip,.testimonial,.momento-card,.security-badge,.ecosystem-card,.landing-demo-copy,.landing-r14712-card){text-align:center}
.integra-grid.compact-open>.compact-hidden{display:block!important}
#integraGrid>.integra-card{min-height:116px;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.landing-r14712-ecosystem{background:linear-gradient(180deg,#fffdfb,#fbf3ee)}.landing-r14712-ecosystem .container{max-width:1120px}.landing-r14712-head{max-width:820px;margin:0 auto 30px}.landing-r14712-head h2{margin:8px 0 12px}.landing-r14712-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.landing-r14712-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow-xs)}.landing-r14712-card>span{font-size:1.65rem}.landing-r14712-card h3{margin:8px 0 6px}.landing-r14712-card p{font-size:.83rem;color:var(--muted-600);line-height:1.6;margin:0}.landing-r14712-banner{margin-top:16px;border-radius:24px;padding:24px;background:linear-gradient(135deg,#7d4f50,#a66e62 58%,#ba8a5c);color:#fff;text-align:center}.landing-r14712-banner h3{color:#fff;margin:5px 0}.landing-r14712-banner p{margin:0 auto;max-width:780px;opacity:.9}.landing-r14712-banner .eyebrow{color:#fff9f5!important;opacity:1!important;text-shadow:0 1px 10px rgba(45,20,18,.42);font-weight:700!important}.landing-r14712-banner .eyebrow::before,.landing-r14712-banner .eyebrow::after{background:rgba(255,249,245,.82)!important;opacity:1!important}
.love-card .love-r14712-pride{margin-top:10px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.64);border:1px solid rgba(161,98,106,.18);font-size:.84rem;line-height:1.6}
@media(max-width:900px){.landing-r14712-grid{grid-template-columns:1fr 1fr}}
@media(max-width:768px){
  .site-header{height:60px!important}.site-header .container{height:60px}.nav-links{top:60px!important;left:8px!important;right:8px!important;bottom:auto!important;width:auto!important;max-height:calc(100dvh - 70px)!important;background:#fffdfb!important;box-shadow:0 24px 70px rgba(44,29,25,.22)!important;border:1px solid var(--line)!important;border-radius:18px!important;z-index:1010!important;padding:12px!important;overflow:auto!important}.nav-links.open{transform:none!important;visibility:visible!important;opacity:1!important}
  .hero{min-height:auto!important;padding:86px 0 28px!important}.hero-grid{gap:14px!important}.hero-cta{gap:8px}.hero-cta .btn{width:100%}.hero-trust{font-size:.73rem}.saas-hero-proof{grid-template-columns:1fr 1fr!important;gap:8px!important}.saas-proof-card{padding:10px!important}.saas-proof-card small{font-size:.66rem!important}.hero-visual{margin-top:2px}
  .landing-r14712-grid{grid-template-columns:1fr;gap:8px}.landing-r14712-card{padding:15px}.landing-r14712-banner{padding:18px 14px}.section{padding:26px 0!important}
  /* Todas as informações continuam no DOM; cada bloco vira um resumo expansível. */
  body>section.r14712-mobile-fold{position:relative;max-height:205px!important;overflow:hidden!important;padding-bottom:48px!important;transition:max-height .35s ease}
  body>section.r14712-mobile-fold>.container{max-height:150px;overflow:hidden}
  body>section.r14712-mobile-fold::after{content:"";position:absolute;left:0;right:0;bottom:42px;height:56px;background:linear-gradient(transparent,var(--paper,#fffdfb));pointer-events:none;z-index:7}
  body>section.r14712-mobile-fold.section-alt::after{background:linear-gradient(transparent,var(--blush-50,#fbf5f2))}
  body>section.r14712-mobile-fold.section-dark::after{background:linear-gradient(transparent,#2f2825)}
  body>section.r14712-mobile-fold.r14712-open{max-height:none!important;overflow:visible!important;padding-bottom:30px!important}
  body>section.r14712-mobile-fold.r14712-open>.container{max-height:none!important;overflow:visible!important}
  body>section.r14712-mobile-fold.r14712-open::after{display:none}
  .r14712-fold-toggle{position:absolute;z-index:9;bottom:7px;left:50%;transform:translateX(-50%);border:1px solid var(--rose-400);background:#fffdfb;color:var(--ink-900);border-radius:999px;padding:8px 14px;font:600 .72rem/1 Jost,sans-serif;box-shadow:0 8px 24px rgba(71,47,41,.12);white-space:nowrap}
  .section-dark .r14712-fold-toggle{background:#3b312e;color:#fff;border-color:rgba(255,255,255,.32)}
  .landing-r14712-card p,.feature p,.lead{font-size:.78rem!important;line-height:1.45!important}.section-head h2{margin-bottom:6px!important}.section-head{margin-bottom:12px!important}
  #integraGrid{grid-template-columns:repeat(2,1fr)!important}#integraGrid>.integra-card{min-height:94px!important;padding:10px!important}
}
@media(prefers-reduced-motion:reduce){.r14712-nav-backdrop,body>section.r14712-mobile-fold{transition:none!important}}
@media(max-width:768px){
  .r14712-hero-preview{grid-column:1/-1;width:100%;margin-top:2px}
  .r14712-hero-preview>summary{list-style:none;display:block;width:max-content;max-width:100%;margin:5px auto 8px;border:1px solid var(--rose-300);background:#fffdfb;border-radius:999px;padding:8px 13px;font:600 .72rem/1 Jost,sans-serif;cursor:pointer;box-shadow:0 7px 20px rgba(71,47,41,.08)}
  .r14712-hero-preview>summary::-webkit-details-marker{display:none}.r14712-hero-preview:not([open])>.hero-visual{display:none!important}.r14712-hero-preview[open]>summary{margin-bottom:10px}
}

/* ===== assets/css/landing-r14713.css ===== */
/* Bride Era R14.7.13 — landing polida: consentimento inferior, transições suaves,
   navegação nítida, mobile compacto por trilhos e Bride Match em destaque. */
html{color-scheme:light!important}
.site-header{background:rgba(255,253,252,.98)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.nav-links,.nav-links.open{background:#fffdfb!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}
.r14712-nav-backdrop{background:rgba(35,27,25,.34)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* Consentimento: bottom sheet discreto, não bloqueia o centro da página. */
.cookie-modal-backdrop{place-items:end center!important;padding:16px!important;background:rgba(35,27,25,.26)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.cookie-modal{width:min(760px,calc(100vw - 28px))!important;border-radius:22px!important;box-shadow:0 18px 55px rgba(35,27,25,.20)!important;margin:0 auto max(2px,env(safe-area-inset-bottom))!important}
.cookie-modal-main{padding:19px 22px 13px!important}.cookie-modal-main h2{font-size:1.35rem!important;margin:9px 0 5px!important}.cookie-modal-main p{margin:5px 0!important;font-size:.79rem!important;line-height:1.52!important}.cookie-brand img{width:31px!important}.cookie-actions{padding:11px 18px!important}.cookie-prefs{padding:13px 22px!important}

/* Paletas extras mantêm o mesmo layout das quatro primeiras. */
#paletasLinha.compact-open>.compact-hidden{display:block!important}
#paletasLinha>.paleta-btn{min-height:92px!important}

/* Transições desktop sem blur pesado / repintura brusca. */
.landing-r1478-slider,.landing-r1478-track{transform:translateZ(0);backface-visibility:hidden}
.landing-r1478-slide{filter:none!important;visibility:visible!important;pointer-events:none!important;opacity:0!important;transform:translate3d(22px,0,0) scale(.992)!important;transition:opacity .72s cubic-bezier(.22,.61,.36,1),transform .72s cubic-bezier(.22,.61,.36,1)!important;backface-visibility:hidden!important;will-change:opacity,transform!important}
.landing-r1478-slide.active{pointer-events:auto!important;opacity:1!important;transform:translate3d(0,0,0) scale(1)!important}
.rotativo span,#rot{will-change:opacity,transform;backface-visibility:hidden;transition:opacity .38s cubic-bezier(.22,.61,.36,1),transform .38s cubic-bezier(.22,.61,.36,1)!important}

/* Botão da lista 3D alinhado com os demais CTAs. */
#lista3d + .compact-toggle{display:block!important;width:max-content;max-width:100%;margin:14px auto 0!important}

/* Bride Match: showcase forte na landing. */
.r14713-match-landing{overflow:hidden;background:radial-gradient(circle at 88% 15%,rgba(239,202,116,.32),transparent 24%),linear-gradient(135deg,#fffaf4,#f7e7df 58%,#f1dcc6)}
.r14713-match-landing-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.86fr);gap:34px;align-items:center}
.r14713-match-copy{text-align:center}.r14713-match-copy .lead{max-width:760px;margin-inline:auto}.r14713-match-pills{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin:17px 0}.r14713-match-pills span{padding:7px 10px;border:1px solid rgba(133,85,68,.14);border-radius:999px;background:rgba(255,255,255,.72);font-size:.72rem}.r14713-match-ctas{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}
.r14713-match-phone{position:relative;min-height:480px;display:grid;place-items:center}.r14713-match-card-demo{position:absolute;width:min(330px,86%);border-radius:28px;background:#fff;box-shadow:0 28px 70px rgba(91,55,41,.20);border:1px solid rgba(126,79,62,.12);overflow:hidden;transition:.4s ease}.r14713-match-card-demo.back{transform:translate(28px,16px) rotate(6deg) scale(.92);opacity:.62}.r14713-match-card-demo.front{transform:rotate(-3deg)}.r14713-match-card-demo .photo{height:225px;background:linear-gradient(135deg,#714f4d,#d0a17f);position:relative;display:grid;place-items:center;font-size:5rem}.r14713-match-card-demo .photo:after{content:'96% MATCH';position:absolute;left:14px;bottom:14px;background:#fff;color:#6e4b45;border-radius:999px;padding:7px 10px;font:800 .68rem Jost,sans-serif}.r14713-match-card-demo .body{padding:18px;text-align:left}.r14713-match-card-demo h3{margin:3px 0 5px}.r14713-match-card-demo p{font-size:.78rem;color:var(--muted-600);margin:0}.r14713-match-demo-actions{display:flex;justify-content:center;gap:14px;margin-top:14px}.r14713-match-demo-actions span{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid rgba(126,79,62,.13);box-shadow:0 8px 20px rgba(75,48,41,.10);font-size:1.15rem}.r14713-match-demo-actions .yes{width:58px;height:58px;background:linear-gradient(135deg,#d0a34e,#f0c96e);color:#fff;border:0}
.r14713-match-ribbon{position:absolute;right:2%;top:7%;font:800 .7rem Jost,sans-serif;letter-spacing:.12em;color:#7a594d;transform:rotate(7deg);padding:8px 11px;border:2px solid #c99c50;border-radius:10px;background:rgba(255,250,238,.9)}

/* Compare: recursos novos ficam legíveis sem destoar. */
.compare tr[data-r14713-plan-row] td:first-child{font-weight:650;color:var(--ink-800)}
.compare tr[data-r14713-plan-row]{background:color-mix(in srgb,var(--blush-50) 62%,transparent)}

/* Mobile: em vez de cortar seções no meio, transforma conjuntos extensos em trilhos
   horizontais. Todo o conteúdo continua disponível, mas a altura cai drasticamente. */
.r14713-rail-hint{display:none}
@media(max-width:768px){
  body>section.r14712-mobile-fold{max-height:none!important;overflow:visible!important;padding-bottom:0!important}body>section.r14712-mobile-fold>.container{max-height:none!important;overflow:visible!important}body>section.r14712-mobile-fold::after,.r14712-fold-toggle{display:none!important}
  .section{padding:20px 0!important}.section-head{margin-bottom:10px!important}.section-head .lead{margin-top:5px!important}.section-head h2{font-size:clamp(1.42rem,6.7vw,1.9rem)!important}
  .r14713-mobile-rail{display:flex!important;grid-template-columns:none!important;gap:10px!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x mandatory;padding:3px max(1px,calc((100vw - min(100% - 30px,1180px))/2)) 11px!important;margin-inline:0!important;scrollbar-width:none!important;overscroll-behavior-inline:contain}.r14713-mobile-rail::-webkit-scrollbar{display:none}.r14713-mobile-rail>*{flex:0 0 min(82vw,330px)!important;min-width:min(82vw,330px)!important;scroll-snap-align:center!important;margin:0!important}.r14713-mobile-rail>.compact-hidden{display:flex!important}.r14713-mobile-rail>.paleta-btn.compact-hidden,.r14713-mobile-rail>.tema-card.compact-hidden,.r14713-mobile-rail>figure.compact-hidden,.r14713-mobile-rail>article.compact-hidden{display:block!important}
  /* Em vez de cortar uma seção no meio, tópicos secundários viram accordions completos. */
  section:has(>.container>.r14713-mobile-topic){padding:5px 0!important}
  .r14713-mobile-topic{border:1px solid var(--line)!important;border-radius:18px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 7px 22px rgba(62,43,40,.055)!important}
  .r14713-mobile-topic>summary{list-style:none!important;display:flex!important;align-items:center!important;gap:10px!important;padding:14px 15px!important;cursor:pointer!important;min-height:54px!important;text-align:left!important}
  .r14713-mobile-topic>summary::-webkit-details-marker{display:none}.r14713-mobile-topic>summary span{font-size:1.1rem}.r14713-mobile-topic>summary b{flex:1;font-size:.86rem;color:var(--ink-900)}.r14713-mobile-topic>summary em{font-style:normal;font-size:1.05rem;color:var(--rose-600);transition:.22s transform}.r14713-mobile-topic[open]>summary em{transform:rotate(45deg)}
  .r14713-mobile-topic-body{padding:2px 12px 16px!important}.r14713-mobile-topic-body>.section-head:first-child{margin-top:4px!important}.r14713-mobile-topic-body .section-head h2{font-size:1.48rem!important}.r14713-mobile-topic-body .section-head{margin-bottom:12px!important}
  .r14713-rail-hint{display:block;text-align:center;font-size:.65rem;color:var(--muted-500);margin:2px auto 8px}.r14713-mobile-rail + .compact-toggle{display:none!important}
  #lista3d + .compact-toggle{display:block!important;margin:10px auto 0!important}
  #testimonialsGrid>*{flex-basis:min(84vw,340px)!important;min-width:min(84vw,340px)!important}
  #paletasLinha>*{flex-basis:145px!important;min-width:145px!important}
  #integraGrid>*{flex-basis:150px!important;min-width:150px!important}
  .landing-r1478-stories>*{flex-basis:min(84vw,340px)!important;min-width:min(84vw,340px)!important}
  .landing-r14712-grid>*{flex-basis:min(82vw,325px)!important;min-width:min(82vw,325px)!important}
  .momentos-grid>*{flex-basis:min(72vw,285px)!important;min-width:min(72vw,285px)!important}
  .product-shots>*{flex-basis:min(82vw,330px)!important;min-width:min(82vw,330px)!important}
  .vendor-preview>*{flex-basis:min(82vw,330px)!important;min-width:min(82vw,330px)!important}
  .r14713-match-landing-grid{grid-template-columns:1fr;gap:10px}.r14713-match-phone{min-height:405px}.r14713-match-card-demo{width:min(300px,84vw)}.r14713-match-card-demo .photo{height:185px}.r14713-match-ribbon{right:4%;top:2%}
  .cookie-modal-backdrop{padding:8px!important;align-items:end!important}.cookie-modal{width:100%!important;border-radius:20px 20px 14px 14px!important}.cookie-modal-main{padding:15px 16px 10px!important}.cookie-modal-main h2{font-size:1.14rem!important}.cookie-modal-main p{font-size:.74rem!important}.cookie-actions{padding:9px 12px!important;gap:6px!important}.cookie-actions .btn{font-size:.68rem!important;padding:8px 9px!important}.cookie-prefs{max-height:32vh;overflow:auto;padding:10px 16px!important}
  .nav-links{filter:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.r14712-nav-backdrop{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .landing-r1478-slide{transform:translate3d(14px,0,0) scale(.995)!important;transition-duration:.62s!important}.landing-r1478-slide.active{transform:none!important}
}
@media(max-width:430px){.r14713-match-ctas .btn{width:100%}.cookie-actions .btn{flex:1 1 calc(50% - 6px)!important}.r14713-match-phone{min-height:385px}}
@media(prefers-reduced-motion:reduce){.landing-r1478-slide,#rot,.r14713-match-card-demo{transition:none!important}}

/* ===== assets/css/landing-r14714.css ===== */
/* Bride Era R14.7.14 — menu sempre claro e 3D mobile legível. */
.site-header,.site-header.scrolled{background:#fffdfb!important;color:#2d2725!important;filter:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.nav-links,.nav-links.open{background:#fffdfb!important;color:#2d2725!important;filter:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;opacity:1!important}
.nav-links a{color:#413633!important}.nav-links a:hover{color:#9f6d64!important}.nav-toggle{color:#2d2725!important;background:#fffdfb!important}
.r14712-nav-backdrop{background:rgba(74,55,49,.12)!important;filter:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.r14712-nav-backdrop.open{opacity:1!important}
#tresd{scroll-margin-top:76px}
@media(max-width:768px){
  #tresd.section-dark{background:#f7f0ea!important;color:#322b28!important}
  #tresd .r14713-mobile-topic{background:#fffdfb!important;border-color:#eadbd4!important;color:#322b28!important;box-shadow:0 12px 30px rgba(74,52,45,.06)!important}
  #tresd .r14713-mobile-topic>summary{background:#fffdfb!important;color:#322b28!important}
  #tresd .r14713-mobile-topic-body{background:#fffdfb!important;color:#322b28!important}
  #tresd .r14713-mobile-topic-body h1,#tresd .r14713-mobile-topic-body h2,#tresd .r14713-mobile-topic-body h3,#tresd .r14713-mobile-topic-body h4,#tresd .r14713-mobile-topic-body b,#tresd .r14713-mobile-topic-body strong{color:#322b28!important}
  #tresd .r14713-mobile-topic-body p,#tresd .r14713-mobile-topic-body .lead,#tresd .r14713-mobile-topic-body li,#tresd .r14713-mobile-topic-body small{color:#675952!important;opacity:1!important}
  #tresd .r14713-mobile-topic-body .eyebrow,#tresd .r14713-mobile-topic-body .script{color:#a56e62!important;opacity:1!important}
  #tresd .r14713-mobile-topic-body .plan-features li::before,#tresd .r14713-mobile-topic-body .check-list li::before{color:#b8796d!important}
  #tresd .btn-ghost{background:#fffdfb!important;border-color:#c9958a!important;color:#4a3935!important}
  #tresd .btn-primary{color:#fff!important}
  #tresd .cena3d,#tresd .mock-window,#tresd .browser-mock{background:#fff!important;border-color:#eadbd4!important;color:#322b28!important}
  .nav-links.open{box-shadow:0 20px 70px rgba(57,39,34,.18)!important}
}
.site-header{z-index:1020!important}.nav-links{z-index:1030!important}.r14712-nav-backdrop{z-index:1010!important}

/* ===== assets/css/landing-r14716.css ===== */
/* Bride Era R14.7.16 — cabeçalho da landing usa a mesma assinatura visual das páginas legais. */
.site-header .brand.brand-legal-style{
  display:inline-flex;
  align-items:center;
  gap:11px;
  min-width:0;
  color:var(--ink-900,#241f1c);
  text-decoration:none;
}
.site-header .brand.brand-legal-style .brand-legal-mark{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:block;
  object-fit:contain;
  padding:0!important;
  background:none!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.site-header .brand.brand-legal-style .brand-legal-copy{
  display:block;
  min-width:0;
  line-height:1;
}
.site-header .brand.brand-legal-style #brandName{
  display:block;
  font-family:"Cormorant Garamond", Georgia, serif;
  font-size:1.35rem;
  font-style:normal;
  font-weight:500;
  letter-spacing:0;
  line-height:1.05;
  color:var(--ink-900,#241f1c);
  text-transform:none;
  white-space:nowrap;
}
.site-header .brand.brand-legal-style #brandTag{
  display:block;
  margin-top:4px;
  font-family:"Jost", Inter, sans-serif;
  font-size:.60rem;
  font-style:normal;
  font-weight:400;
  letter-spacing:.22em;
  line-height:1;
  color:var(--muted-500,#9a8d86);
  text-transform:uppercase;
  white-space:nowrap;
}
@media (max-width:640px){
  .site-header .brand.brand-legal-style{gap:9px}
  .site-header .brand.brand-legal-style .brand-legal-mark{width:36px;height:36px;flex-basis:36px}
  .site-header .brand.brand-legal-style #brandName{font-size:1.28rem}
  .site-header .brand.brand-legal-style #brandTag{font-size:.54rem;letter-spacing:.20em;margin-top:4px}
}

/* ===== assets/css/brand-official-r14717.css ===== */
/* Bride Era R14.7.17 — marca oficial: usa exatamente assets/img/logo.svg, a mesma arte dos documentos/contratos. */
.site-header .brand.brand-official-r14717{
  display:flex!important;
  align-items:center!important;
  width:auto!important;
  min-width:0!important;
  padding:0!important;
  margin:0!important;
  gap:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  text-decoration:none!important;
}
.site-header .brand-official-logo-r14717{
  display:block!important;
  width:174px!important;
  height:auto!important;
  max-height:46px!important;
  object-fit:contain!important;
  object-position:left center!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:0!important;
  filter:none!important;
}

/* Painéis: a assinatura completa substitui o símbolo/texto montados separadamente. */
.sb-brand.sb-brand-official-r14717{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  min-height:69px!important;
  padding:14px 18px!important;
  gap:0!important;
}
.sb-brand-official-logo-r14717{
  display:block!important;
  width:190px!important;
  max-width:100%!important;
  height:auto!important;
  max-height:44px!important;
  object-fit:contain!important;
  object-position:left center!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  filter:none!important;
}
.sb-brand-runtime-r14717{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  opacity:0!important;
  pointer-events:none!important;
}

@media (max-width: 760px){
  .site-header .brand-official-logo-r14717{
    width:154px!important;
    max-height:40px!important;
  }
  .sb-brand.sb-brand-official-r14717{
    min-height:66px!important;
    padding:13px 17px!important;
  }
  .sb-brand-official-logo-r14717{
    width:178px!important;
    max-height:42px!important;
  }
}


/* R14.7.42 — contraste da marca no modo escuro.
   O SVG oficial usa "bride" em tinta escura; preservamos a arte original e criamos
   uma base clara discreta somente no painel escuro, sem alterar o logo no modo claro. */
html[data-panel-theme="dark"] body.app .sb-brand.sb-brand-official-r14717{
  margin:10px 12px 8px!important;
  min-height:58px!important;
  padding:9px 12px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:15px!important;
  background:linear-gradient(105deg,rgba(255,250,247,.97),rgba(248,239,233,.92))!important;
  box-shadow:0 8px 24px rgba(0,0,0,.18)!important;
}
html[data-panel-theme="dark"] body.app .sb-brand-official-logo-r14717{
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.55))!important;
}
@media(max-width:760px){
  html[data-panel-theme="dark"] body.app .sb-brand.sb-brand-official-r14717{margin:8px 10px 7px!important;padding:8px 10px!important}
}

/* ===== assets/css/landing-r14738.css ===== */
/* Bride Era R14.7.38 — hardening de modais da landing em navegadores Chromium. */
body:not(.app) #modalRoot{position:relative;z-index:20000!important}
body:not(.app) #activeModal.modal-backdrop{z-index:20000!important;isolation:isolate!important;background:rgba(36,31,28,.58)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body:not(.app) #activeModal>.modal{position:relative!important;z-index:2!important;display:block!important;opacity:1!important;visibility:visible!important;filter:none!important;-webkit-filter:none!important}
body:not(.app) #activeModal>.modal[role="dialog"]{pointer-events:auto!important}

/* ===== Bride Era Performance + Acessibilidade 2026-08-24 ===== */
/* Contraste WCAG AA para textos pequenos e CTAs na landing. */
body{
  --muted-500:#746861;
  --rose-600:#965F56;
}
.btn-primary{
  background:#995F55;
  box-shadow:0 6px 18px rgba(153,95,85,.28);
}
.btn-primary:hover:not(:disabled){
  background:#85554C;
  box-shadow:0 12px 26px rgba(133,85,76,.34);
}
.eyebrow,.script{color:#85554C;}
.input-hint,.story-proof small,.r14713-rail-hint{color:#746861;}

/* A barra usa transform (compositor) em vez de alterar width a cada scroll. */
.scroll-progress{
  width:100%!important;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .08s linear!important;
  will-change:transform;
}

/* Evita layout/style de seções fora da viewport no carregamento inicial. */
body > section:not(.hero):not(.marquee-wrap){
  content-visibility:auto;
  contain-intrinsic-size:auto 720px;
}

/* Alvos de toque confortáveis sem inflar links de texto corrido. */
.nav-toggle,.btn,.faq-q,.landing-r1478-arrow,.support-main,.support-menu a,
.auth-tabs button,.compact-toggle{
  min-height:44px;
}
.nav-toggle,.landing-r1478-arrow{min-width:44px;}

/* Dots continuam pequenos visualmente, mas ganham área de toque de 44px. */
.landing-r1478-dots{gap:0!important;align-items:center;}
.landing-r1478-dots button{
  position:relative!important;
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  padding:0!important;
  background:transparent!important;
}
.landing-r1478-dots button::before{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:8px;height:8px;
  transform:translate(-50%,-50%);
  border-radius:999px;
  background:rgba(66,43,39,.35);
  transition:.25s;
}
.landing-r1478-dots button.active::before{
  width:28px;
  background:#85554C;
}

/* Mantém a aparência dos títulos de coluna do rodapé após corrigir a hierarquia. */
.site-footer .footer-title{
  color:#fff;
  font-family:var(--font-body);
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin:0 0 16px;
  font-weight:600;
}

/* Menos trabalho de animação em aparelhos móveis/mais lentos. */
@media (max-width:760px){
  .wedding-magic,.cursor-glow{display:none!important;}
  .landing-r1478-emoji{animation:none!important;}
  [data-parallax]{transform:none!important;will-change:auto!important;}
  button,.nav-links a{min-height:44px;}
}

@media (prefers-reduced-motion:reduce){
  .scroll-progress{transition:none!important;}
}


/* ===== Bride Era Performance Final 2026-08-24 ===== */
/* O hero vira imagem responsiva, mantendo o mesmo enquadramento visual. */
.hero-photo-bg{
  width:108%!important;
  height:112%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
}

/* H3 é o nível semântico correto para cards dentro de seções H2. */
.feature h3{
  margin-bottom:8px;
  font-size:1.05rem;
  font-family:var(--font-body);
  font-weight:600;
  letter-spacing:.01em;
  color:var(--ink-900);
  line-height:1.15;
}

/* Contraste AA dos elementos pequenos que ainda eram apontados pelo Lighthouse. */
.stars{color:#8F7040!important;}
.security-badge>i{color:#85554C!important;opacity:1!important;}
.security-shield small{color:#E8DED9!important;}
.landing-r1478-slide p{opacity:1!important;}
.site-footer{color:#D8CEC9!important;}
.site-footer .small{color:#D8CEC9!important;opacity:1!important;}
.site-footer .footer-bottom{color:#D8CEC9!important;}

/* Evita transições tardias de fonte criarem deslocamento perceptível no topo. */
.hero h1,.hero-sub,.site-header{font-synthesis:none;}


/* =============================================================
   R14.7.69 — Lighthouse final: mobile + desktop
   - elimina CLS do parallax da imagem hero
   - fecha contrastes restantes
   - mantém o bundle/critical CSS do hotfix de performance anterior
   ============================================================= */
.hero-photo-bg{
  transform:none!important;
  will-change:auto!important;
}
.rotativo{display:block!important;width:100%;min-height:1.15em;}
.rotativo #rot{display:block!important;width:100%;min-height:1.15em;}

/* Contraste WCAG AA nos pontos explicitamente reportados pelo Lighthouse. */
.badge-gold{background:#F3E2C8!important;color:#5C432A!important;}
.billing-toggle .save{background:#E6F0E8!important;color:#315D3F!important;font-weight:700!important;}
.plan-tag{background:#C08A7D!important;color:#141210!important;font-weight:700!important;}
.testimonial-author .av{font-weight:700!important;}
.site-footer,.site-footer .small,.site-footer .footer-bottom,.site-footer small,.site-footer .brand small{color:#EAE1DD!important;opacity:1!important;}
#tresd .lead,#tresd .plan-features li{color:#F7F2EF!important;}
#tresd [data-open-3d-demo]{background:#FFFDFC!important;color:#3B2926!important;border-color:#FFFDFC!important;box-shadow:0 8px 22px rgba(0,0,0,.16)!important;}
#tresd [data-open-3d-demo]:hover,#tresd [data-open-3d-demo]:focus-visible{background:#F3E9E4!important;color:#2E211E!important;border-color:#F3E9E4!important;}

/* Inputs de consentimento permanecem compactos, mas com foco visível. */
.cookie-pref input:focus-visible{outline:3px solid rgba(150,95,86,.35);outline-offset:3px;}


/* =============================================================
   R14.7.70 — estabilidade Lighthouse / Core Web Vitals
   - remove a imagem decorativa do caminho crítico no mobile
   - fixa a geometria do hero no desktop para evitar CLS
   - reserva altura invariável para o texto rotativo
   - reforça contrastes de componentes dinâmicos
   ============================================================= */
.hero-photo-bg{
  transform:none!important;
  will-change:auto!important;
  inset:auto!important;
  top:-6svh!important;
  left:-4vw!important;
  width:108vw!important;
  height:112svh!important;
}
.rotativo{
  display:block!important;
  width:100%;
  height:1.2em!important;
  min-height:1.2em!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  font-size:clamp(.72em,5vw,.82em)!important;
  line-height:1.2!important;
}
.rotativo #rot{display:block!important;width:100%;height:1.2em!important;min-height:1.2em!important;white-space:nowrap!important;}
@media(max-width:760px){
  .hero-photo-bg{display:none!important;}
}
/* Contrastes finais, sem depender de opacidade herdada. */
.badge-gold{background:#F3E2C8!important;color:#49321F!important;}
.billing-toggle .save{background:#315D3F!important;color:#FFFFFF!important;opacity:1!important;}
.plan-tag{background:#8A554D!important;color:#FFFFFF!important;opacity:1!important;}
.site-footer,.site-footer *{--footer-text:#F4ECE8;}
.site-footer small,.site-footer .small,.site-footer .footer-bottom{color:var(--footer-text)!important;opacity:1!important;}


/* Bride Era R14.7.71 — telas do produto sem corte/zoom.
   As capturas são telas completas; por isso ficam em coluna larga e sempre em contain. */
#produto-real .product-shots{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:22px!important;
  max-width:1120px;
  margin:0 auto;
  overflow:visible!important;
  padding:0!important;
  scroll-snap-type:none!important;
}
#produto-real .product-shots figure{
  width:100%;
  min-width:0!important;
  margin:0!important;
  padding:10px 10px 0;
  background:var(--white);
}
#produto-real .product-shots img{
  display:block;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center top!important;
  border-radius:12px;
  background:var(--blush-50);
  transform:none!important;
  zoom:1!important;
}
#produto-real .product-shots figcaption{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:13px 6px 14px;
}
#produto-real .product-shots figcaption::after{
  content:'imagem completa';
  font-size:.68rem;
  font-weight:500;
  color:var(--muted-500);
}
@media(max-width:768px){
  #produto-real .product-shots,
  #produto-real .product-shots.r14713-mobile-rail{display:grid!important;overflow:visible!important;gap:14px!important;}
  #produto-real .product-shots>*{flex:initial!important;flex-basis:auto!important;min-width:0!important;width:100%!important;scroll-snap-align:none!important;}
  #produto-real .product-shots figure{padding:7px 7px 0!important;border-radius:16px!important;}
  #produto-real .product-shots figcaption{font-size:.84rem;padding:11px 4px 12px;}
}


/* R14.7.171 — premium auth modal + vitrines de exemplos */
.be171-role-demo{padding-top:22px}
.be171-role-head{max-width:880px;margin:0 auto 20px;text-align:center}
.be171-role-track,.be171-showcase-track{display:flex;gap:18px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.be171-role-track::-webkit-scrollbar,.be171-showcase-track::-webkit-scrollbar{display:none}
.be171-role-card,.be171-showcase-card{scroll-snap-align:start;flex:0 0 min(100%,980px)}
.be171-role-card{background:linear-gradient(180deg,#fff 0%,#fcf8f6 100%);border:1px solid rgba(166,110,98,.18);border-radius:28px;padding:26px;box-shadow:0 16px 40px rgba(70,42,37,.07)}
.be171-role-kicker{display:inline-flex;align-items:center;gap:8px;font:600 .74rem Jost,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-700);margin-bottom:10px}
.be171-role-card h3{font-size:2rem;margin:0 0 8px;font-family:'Cormorant Garamond',serif;color:#2e2321}
.be171-role-card p{margin:0;color:var(--muted-600);line-height:1.65;max-width:58ch}
.be171-role-badges,.demo-badges{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 0}
.be171-role-badges span,.demo-badges span{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;background:#fff;border:1px solid rgba(166,110,98,.18);font:500 .75rem Jost,sans-serif;color:#6d5b56}
.be171-role-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.be171-role-footnote{text-align:center;color:var(--muted-500);font-size:.86rem;margin:10px 0 0}
.be171-showcase-head{text-align:center;max-width:860px;margin:0 auto 20px}
.be171-showcase-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:26px;align-items:center;background:linear-gradient(135deg,#fbf2ee 0%,#f7ece7 100%);border:1px solid rgba(166,110,98,.14);border-radius:30px;padding:28px;box-shadow:0 24px 64px rgba(80,50,43,.08)}
.be171-showcase-copy h2{font-size:3rem;line-height:1.02;margin:14px 0 14px;color:#2b1f1d}
.be171-showcase-copy .lead{color:#6b5d58;line-height:1.72}
.be171-showcase-actions{margin-top:18px}
.be171-showcase-preview{display:grid;place-items:center}
.landing-demo-browser{width:min(100%,520px);background:#4b3433;border-radius:28px;padding:20px;box-shadow:0 22px 56px rgba(63,40,35,.16)}
.landing-demo-browser.role-cerimonial{background:#5f4a47}
.landing-demo-browser.role-fornecedor{background:#4f413c}
.landing-demo-browser-bar{display:flex;gap:8px;padding:0 2px 12px}
.landing-demo-browser-bar i{width:10px;height:10px;border-radius:50%;background:#d9b6ac;display:block}
.landing-demo-browser-body{background:#fcf7f3;border-radius:18px;min-height:320px;display:grid;place-items:center;text-align:center;padding:28px}
.landing-demo-browser-body span{font-size:2rem;display:block;margin-bottom:10px}
.landing-demo-browser-body h3{font-family:'Cormorant Garamond',serif;font-size:2.35rem;margin:10px 0;color:#533e3a}
.demo-count{display:inline-flex;align-items:center;justify-content:center;margin-top:16px;padding:10px 18px;border-radius:999px;background:#fff;border:1px solid rgba(166,110,98,.2);font:500 .82rem Jost,sans-serif;color:#8c6b61}
.auth-intro-banner{background:linear-gradient(180deg,var(--blush-50),#fff);padding:10px 12px;border-radius:14px;border:1px solid rgba(166,110,98,.14);margin:0 0 10px}
#activeModal .modal{width:min(1120px,calc(100vw - 16px));max-height:calc(100dvh - 10px);display:flex;flex-direction:column;border-radius:24px;overflow:hidden}
#activeModal .modal-header{padding:12px 16px;background:linear-gradient(180deg,#fff,#fcf8f6)}
#activeModal .modal-header h3{font-size:1.02rem;margin:0}
#activeModal .modal-body{padding:10px 14px 12px;overflow:auto}
.auth-tabs-premium{margin-bottom:10px!important;padding:4px!important}
.auth-tabs-premium button{padding:8px 10px!important;font-size:.84rem!important}
.auth-form-signup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;align-items:start}
.auth-form-signup .auth-field-full,.auth-form-signup>p,.auth-form-signup>.field,.auth-form-signup>.form-row,.auth-form-signup>#coupleSignupFields,.auth-form-signup>#proSignupPlan,.auth-form-signup>#vendorSignupPlan,.auth-form-signup>#professionalContactFields{grid-column:1/-1}
.auth-form .form-row{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
.auth-form .form-row.single{grid-template-columns:1fr}
.auth-form .field{margin-bottom:0!important}
.auth-form .field label{font-size:.69rem!important;letter-spacing:.12em;text-transform:uppercase;color:#8a7067;margin-bottom:4px!important}
.auth-form :is(input,select,textarea){min-height:40px!important;padding:9px 11px!important;border-radius:12px!important;font-size:.94rem!important}
.auth-form textarea{min-height:74px!important}
.auth-form .tiny{font-size:.66rem!important;line-height:1.3!important}
.auth-form-signup .demo-box.compact-box{padding:10px 12px!important;border-radius:14px!important}
.account-type-picker-premium{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.account-type-picker-premium .account-type{padding:10px 10px 8px!important;border-radius:16px!important;min-height:92px;display:grid;align-content:start;gap:2px}
.account-type-picker-premium .account-type>span{font-size:1.05rem!important}
.account-type-picker-premium .account-type b{font-size:.88rem!important;line-height:1.1}
.account-type-picker-premium .account-type small{font-size:.63rem!important;line-height:1.24!important}
.auth-sample-links{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-radius:16px;background:linear-gradient(180deg,#fff,#fbf6f4);border:1px solid rgba(166,110,98,.16)}
.auth-sample-links b{display:block;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#8b6c63;margin-bottom:3px}
.auth-sample-links small{display:block;color:#776761;line-height:1.35}
.auth-sample-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.auth-sample-actions .btn{min-height:36px!important;padding:8px 12px!important;font-size:.76rem!important;white-space:nowrap}
.auth-row-professional{grid-template-columns:repeat(2,minmax(0,1fr))}
.auth-consent{display:flex;align-items:flex-start;gap:8px;font-size:.67rem!important;line-height:1.34!important;margin-bottom:0!important}
.auth-consent input{margin-top:3px;min-height:auto!important}
.auth-submit-actions{display:grid;grid-template-columns:1.3fr 1fr;gap:8px;align-items:stretch}
.auth-submit-actions .btn{margin:0!important;min-height:42px!important;padding:9px 12px!important;font-size:.82rem!important}
.auth-login-actions{grid-template-columns:1.2fr .9fr;margin-top:6px}
.auth-social{margin-top:10px!important}
.auth-divider{margin:10px 0 8px!important;font-size:.68rem!important}
.auth-social-grid-premium{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.auth-social-grid-premium .oauth-btn{min-height:40px!important;padding:7px 10px!important;gap:7px;font-size:.78rem!important;justify-content:center!important}
.auth-social .tiny{font-size:.62rem!important;line-height:1.26!important}
@media(max-width:980px){.be171-showcase-card{grid-template-columns:1fr;}.be171-showcase-copy h2{font-size:2.35rem}}
@media(max-width:760px){
  .be171-role-demo{padding-top:8px}
  .be171-role-card{padding:18px;border-radius:22px}
  .be171-role-card h3{font-size:1.68rem}
  .be171-role-actions{flex-direction:column}
  .be171-showcase-card{padding:18px;border-radius:24px;gap:18px}
  .be171-showcase-copy h2{font-size:2.05rem}
  .landing-demo-browser{padding:14px;border-radius:22px}
  .landing-demo-browser-body{min-height:245px;padding:20px}
  #activeModal .modal{width:calc(100vw - 6px);max-height:calc(100dvh - 4px);border-radius:20px}
  #activeModal .modal-header{padding:10px 12px}
  #activeModal .modal-body{padding:8px 10px 10px}
  .auth-form-signup{gap:7px 8px}
  .auth-form .form-row{gap:7px 8px}
  .account-type-picker-premium .account-type{min-height:80px;padding:8px 8px 7px!important}
  .account-type-picker-premium .account-type b{font-size:.78rem!important}
  .account-type-picker-premium .account-type small{font-size:.56rem!important}
  .auth-form .field label{font-size:.64rem!important}
  .auth-form :is(input,select,textarea){min-height:36px!important;padding:7px 10px!important;font-size:.89rem!important}
  .auth-form .tiny{font-size:.6rem!important}
  .auth-sample-links{grid-template-columns:1fr;gap:8px;padding:8px 10px}
  .auth-sample-actions{justify-content:flex-start}
  .auth-submit-actions{grid-template-columns:1fr 1fr}
  .auth-submit-actions .btn{min-height:38px!important;padding:8px 9px!important;font-size:.76rem!important}
  .auth-social-grid-premium .oauth-btn{padding:6px 8px!important;font-size:.72rem!important}
}
@media(max-width:430px){
  .account-type-picker-premium .account-type{min-height:72px}
  .account-type-picker-premium .account-type>span{font-size:.98rem!important}
  .account-type-picker-premium .account-type b{font-size:.72rem!important}
  .account-type-picker-premium .account-type small{font-size:.51rem!important}
  .auth-form .field label{font-size:.61rem!important}
  .auth-form :is(input,select,textarea){font-size:.85rem!important}
  .auth-social-grid-premium .oauth-btn span{font-size:.68rem}
}
