@font-face{font-family:Outfit;font-style:normal;font-weight:500 800;font-display:swap;src:url('../public/assets/reference/outfit-latin.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('../public/assets/reference/jakarta-latin.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:italic;font-weight:400 800;font-display:swap;src:url('../public/assets/reference/jakarta-italic-latin.woff2') format('woff2')}
html{scroll-behavior:smooth}
.icon{display:block;flex-shrink:0}
.carousel-track{will-change:transform}
button:focus-visible,a:focus-visible{outline:3px solid var(--color-primary);outline-offset:4px}
.faq-plus{transition:transform .15s}
#pricing{scroll-margin-top:16px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.banner-cta{padding-block:14px}

.bonus-image{width:260px;height:208px;max-width:100%;object-fit:contain}
.hero-cta{border-width:2px;gap:12px}

/* Identidade visual: cores centralizadas, sem alterar medidas ou componentes. */
:root {
  --color-bg: #FDF8FC;
  --color-bg-soft: #F7E4F4;
  --color-surface: #F9E0F0;
  --color-primary: #58197B;
  --color-primary-light: #8D5FA9;
  --color-accent: #F05EC4;
  --color-accent-soft: #F5A6E0;
  --color-border: #EFCBE7;
  --color-text: #58197B;
  --color-text-muted: #6F4A79;
  --color-white: #FFFFFF;
  --bg-primary: var(--color-bg);
  --text-primary: var(--color-text);
  --accent-purple: var(--color-primary);
  --cta-green: var(--color-primary);
  --cta-green-hover: var(--color-primary-light);
  --color-gray-50: var(--color-bg);
  --color-gray-100: var(--color-bg-soft);
  --color-gray-200: var(--color-border);
  --color-gray-500: var(--color-text-muted);
  --color-red-500: var(--color-text-muted);
  --color-purple-100: var(--color-bg-soft);
  --color-purple-200: var(--color-accent-soft);
  --color-pink-100: var(--color-bg-soft);
  --color-amber-200: var(--color-accent-soft);
  --color-amber-300: var(--color-accent-soft);
  --color-amber-400: var(--color-accent);
}
/* Mapeia as classes existentes para os tokens da nova paleta. */
[class~="bg-[#ffe8f6]"] { background-color: var(--color-bg); }
[class~="bg-[#efbbc7]"] { background-color: var(--color-bg-soft); }
[class~="bg-[#fcf0f0]"] { background-color: var(--color-surface); }
[class~="bg-[#ffe5ac]"] { background-color: var(--color-surface); }
[class~="bg-[#9461b3]"] { background-color: var(--color-primary); }
[class~="bg-[#2a1a36]"] { background-color: var(--color-primary); }
[class~="bg-[#25d366]"] { background-color: var(--color-primary); }
[class~="bg-[#9461b3]/10"] { background-color: var(--color-bg-soft); }
[class~="text-[#333333]"] { color: var(--color-text); }
[class~="text-[#333333]/80"] { color: var(--color-text-muted); }
[class~="text-[#333333]/90"] { color: var(--color-text-muted); }
[class~="text-[#882b69]"] { color: var(--color-text); }
[class~="text-[#9461b3]"] { color: var(--color-primary-light); }
[class~="text-[#25d366]"] { color: var(--color-primary); }
[class~="text-pink-200/80"] { color: var(--color-bg-soft); }
[class~="text-purple-300/70"] { color: var(--color-border); }
[class~="border-[#333333]"] { border-color: var(--color-primary); }
[class~="border-[#9461b3]"] { border-color: var(--color-primary); }
[class~="border-[#9461b3]/20"] { border-color: var(--color-border); }
[class~="border-[#9461b3]/30"] { border-color: var(--color-border); }
[class~="border-[#9461b3]/40"] { border-color: var(--color-border); }
[class~="border-[#882b69]/20"] { border-color: var(--color-border); }
[class~="border-purple-800/50"] { border-color: var(--color-primary-light); }
[class~="fill-[#9461b3]/15"] { fill: var(--color-bg-soft); }
[class~="fill-[#9461b3]/20"] { fill: var(--color-bg-soft); }
[class~="fill-[#25d366]/20"] { fill: var(--color-bg-soft); }
.bg-striped-purple { background-color: var(--color-primary); }
@media (hover: hover) {
  [class~="hover:bg-[#1eb855]"]:hover { background-color: var(--color-primary-light); }
  [class~="hover:bg-[#9461b3]/10"]:hover { background-color: var(--color-bg-soft); }
  [class~="hover:border-[#9461b3]"]:hover { border-color: var(--color-primary); }
}

/* Upgrade dialog only: local fonts and scoped presentation. */
@font-face{font-family:'Upgrade Bodoni';font-style:normal;font-weight:400 900;font-display:swap;src:url('../public/assets/fonts/bodoni-moda-latin.woff2') format('woff2')}
@font-face{font-family:'Upgrade Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('../public/assets/fonts/montserrat-latin.woff2') format('woff2')}
html.upgrade-open,html.upgrade-open body{overflow:hidden}
.upgrade-modal{box-sizing:border-box;width:94vw;max-width:620px;max-height:92dvh;margin:auto;padding:36px 28px 24px;overflow-y:auto;overscroll-behavior:contain;background:#FDF8FC;border:1px solid #EFCBE7;border-radius:24px;box-shadow:0 20px 70px #14081e40;color:#58197B;font-family:'Upgrade Montserrat',sans-serif;text-align:center}
.upgrade-modal::backdrop{background:rgba(20,8,30,.70)}
.upgrade-close{position:absolute;right:10px;top:8px;width:36px;height:36px;display:grid;place-items:center;border:0;background:transparent;color:#58197B;cursor:pointer}
.upgrade-badge{display:inline-block;background:#F5A6E0;color:#58197B;border-radius:999px;padding:7px 13px;font-size:11px;font-weight:800;max-width:100%}
.upgrade-modal h2{font-family:Outfit,'Plus Jakarta Sans',sans-serif;font-size:29px;font-weight:800;line-height:1.12;margin:15px 0 12px;color:#58197B}
.upgrade-modal h2:focus{outline:none}
.upgrade-modal p{font-size:13px;line-height:1.6;margin:0;color:#6F4A79}
.upgrade-contents{display:grid;grid-template-columns:190px 1fr;gap:20px;align-items:center;margin:18px 0}
.upgrade-image{width:100%;height:auto;object-fit:contain}
.upgrade-contents ul{list-style:none;padding:0;margin:0;text-align:left;display:grid;gap:13px}
.upgrade-contents li{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.5;font-weight:600}
.upgrade-check{width:20px;height:20px;color:#F05EC4;flex-shrink:0}
.upgrade-package{font-size:12px;font-weight:800;letter-spacing:.06em}
.upgrade-price{font-size:44px;line-height:1.2;font-weight:800;margin:3px 0}
.upgrade-payment{font-size:10px;letter-spacing:.08em;color:#6F4A79;font-weight:600;margin-bottom:18px}
.upgrade-primary{display:block;background:#58197B;color:#FFFFFF;border-radius:999px;padding:16px 18px;font-size:13px;font-weight:700;line-height:1.4;text-decoration:none}
.upgrade-primary:hover{background:#8D5FA9}
.upgrade-secondary{display:inline-block;margin-top:16px;color:#6F4A79;text-decoration:underline;text-underline-offset:3px;font-size:11px;line-height:1.5;font-weight:600}
@media(max-width:600px){.upgrade-modal{padding:38px 20px 22px}.upgrade-modal h2{font-size:25px}.upgrade-contents{grid-template-columns:1fr;gap:14px;margin:14px 0}.upgrade-image{width:140px;margin:auto}.upgrade-contents ul{gap:10px}.upgrade-primary{font-size:12px}.upgrade-price{font-size:38px}}

/* Keep both purchase choices visible while only the details can scroll. */
.upgrade-modal[open]{display:flex;flex-direction:column;overflow:hidden}
.upgrade-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.upgrade-actions{flex-shrink:0;padding-top:12px;background:#FDF8FC}
.upgrade-actions .upgrade-secondary{margin-top:10px;padding:6px 0}
@media(max-width:600px){.upgrade-modal{padding:36px 18px 12px;max-height:96dvh}.upgrade-modal h2{margin:10px 0}.upgrade-contents{gap:10px;margin:10px 0}.upgrade-image{width:100px}.upgrade-contents ul{gap:8px}.upgrade-payment{margin-bottom:0}}

.complete-plan-arrows{display:flex;justify-content:center;gap:12px;margin-top:8px;color:var(--color-primary)}
.complete-plan-arrows .icon{transform:rotate(90deg)}
@media(min-width:768px){.complete-plan-arrows .icon{transform:none}}

@keyframes complete-badge-pulse{0%,100%{scale:1;box-shadow:0 0 0 0 #58197b30}50%{scale:1.04;box-shadow:0 0 0 8px #58197b00}}
@media(prefers-reduced-motion:no-preference){.complete-badge-pulse{animation:complete-badge-pulse 2s ease-in-out infinite}}
