/* Base comum dos 10 modelos (cada modelo traz o seu style.css por cima) */
*, *::before, *::after { box-sizing: border-box }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100% }
body { margin: 0; font-family: var(--font); background: var(--bg); color: var(--tx); line-height: 1.6; -webkit-font-smoothing: antialiased }
img { max-width: 100%; display: block }
a { color: inherit }
details > summary { cursor: pointer; list-style: none }
details > summary::-webkit-details-marker { display: none }
.wa-float { position: fixed; right: 18px; bottom: 18px; z-index: 60; width: 58px; height: 58px; border-radius: 50%; background: #25d366; display: grid; place-items: center; box-shadow: 0 10px 30px rgba(0,0,0,.35); transition: transform .2s }
.wa-float:hover { transform: scale(1.08) }
.ck { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 70; max-width: 560px; margin: auto; background: rgba(17,17,17,.92); backdrop-filter: blur(10px); color: #fff; border: 1px solid rgba(255,255,255,.15); border-radius: 14px; padding: 12px 14px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: 14px }
.ck[hidden] { display: none }
.ck span { flex: 1 1 220px }
.ck button { border: 0; border-radius: 10px; padding: 8px 14px; font: inherit; font-weight: 600; cursor: pointer; background: #fff; color: #111 }
.ck .ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.3) }
.plain { min-height: 100vh; display: grid; place-items: center; padding: 24px }
.plain-box { max-width: 680px; width: 100%; background: color-mix(in srgb, var(--tx) 6%, transparent); border: 1px solid color-mix(in srgb, var(--tx) 14%, transparent); border-radius: 22px; padding: 32px }
.plain-brand { margin: 0 0 18px }
.plain h1 { margin: 0 0 12px; font-size: 30px }
.plain-btn { display: inline-block; background: var(--p); color: #fff; text-decoration: none; font-weight: 700; padding: 13px 22px; border-radius: 12px }
.plain-back { opacity: .75; font-size: 14px }
.legal { opacity: .9; font-size: 15px }
.logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 800; letter-spacing: -.01em }
.logo img { height: 36px; width: auto }
.logo-mark { width: 30px; height: 30px; border-radius: 9px; background: linear-gradient(135deg, var(--p), var(--a)); display: inline-block; position: relative }
.logo-mark::after { content: ""; position: absolute; inset: 9px 8px 9px 11px; background: #fff; clip-path: polygon(0 0, 100% 50%, 0 100%) }
.flash { max-width: 520px; margin: 12px auto; padding: 12px 16px; border-radius: 12px; font-weight: 600; font-size: 14px }
.flash.err { background: #ffe4e4; color: #8a1111 }
.flash.ok { background: #dcfce7; color: #14532d }
[data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease }
[data-reveal].in { opacity: 1; transform: none }
.container { width: min(1160px, 100% - 40px); margin-inline: auto }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important } [data-reveal] { opacity: 1; transform: none } }
