545 lines
12 KiB
SCSS
545 lines
12 KiB
SCSS
:host {
|
|
--brand: #E33DCF;
|
|
--brand-soft: rgba(227, 61, 207, 0.14);
|
|
--brand-soft-2: rgba(227, 61, 207, 0.08);
|
|
|
|
--text: #111214;
|
|
--muted: rgba(17, 18, 20, 0.70);
|
|
|
|
--radius-xl: 22px;
|
|
--radius-lg: 16px;
|
|
|
|
display: block;
|
|
}
|
|
|
|
/* ✅ FUNDO GLOBAL (vale para a Home TODA até o footer) */
|
|
.home-page {
|
|
position: relative;
|
|
min-height: 100vh;
|
|
overflow: hidden;
|
|
|
|
background:
|
|
radial-gradient(900px 420px at 20% 10%, var(--brand-soft), transparent 60%),
|
|
radial-gradient(820px 380px at 80% 30%, var(--brand-soft-2), transparent 60%),
|
|
linear-gradient(180deg, #ffffff 0%, #f5f5f7 70%);
|
|
|
|
/* névoa suave pra dar sensação de blur */
|
|
&::after {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
background: rgba(255, 255, 255, 0.25);
|
|
}
|
|
}
|
|
|
|
/* ✅ BLOBS FIXOS (continuam no scroll) */
|
|
.page-blob {
|
|
position: fixed;
|
|
pointer-events: none;
|
|
border-radius: 999px;
|
|
filter: blur(34px);
|
|
opacity: 0.55;
|
|
z-index: 0;
|
|
|
|
background: radial-gradient(circle at 30% 30%, rgba(227,61,207,0.55), rgba(227,61,207,0.06));
|
|
animation: floaty 10s ease-in-out infinite;
|
|
|
|
&.blob-1 { width: 420px; height: 420px; top: -140px; left: -140px; }
|
|
&.blob-2 { width: 520px; height: 520px; top: -220px; right: -240px; animation-duration: 12s; }
|
|
&.blob-3 { width: 360px; height: 360px; bottom: -180px; left: 25%; animation-duration: 14s; }
|
|
&.blob-4 { width: 520px; height: 520px; bottom: -260px; right: -260px; animation-duration: 16s; opacity: .45; }
|
|
|
|
@media (max-width: 992px) {
|
|
opacity: 0.35;
|
|
}
|
|
}
|
|
|
|
/* ✅ garante que o conteúdo fique acima do fundo */
|
|
.hero,
|
|
.features-section,
|
|
.container {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* =============================== */
|
|
/* HERO */
|
|
/* =============================== */
|
|
.hero {
|
|
padding: 56px 0 18px 0;
|
|
}
|
|
|
|
.hero-inner {
|
|
display: grid;
|
|
grid-template-columns: 1.1fr 0.9fr;
|
|
gap: 36px;
|
|
align-items: center;
|
|
|
|
@media (max-width: 992px) {
|
|
grid-template-columns: 1fr;
|
|
gap: 26px;
|
|
}
|
|
}
|
|
|
|
/* texto centralizado */
|
|
.hero-copy {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
text-align: center;
|
|
}
|
|
|
|
/* badge */
|
|
.hero-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
|
|
width: fit-content;
|
|
padding: 10px 14px;
|
|
border-radius: 999px;
|
|
|
|
background: rgba(255, 255, 255, 0.78);
|
|
border: 1px solid rgba(227, 61, 207, 0.22);
|
|
backdrop-filter: blur(10px);
|
|
|
|
color: var(--text);
|
|
font-family: 'Inter', sans-serif;
|
|
font-size: 14px;
|
|
font-weight: 700;
|
|
|
|
i { color: var(--brand); font-size: 16px; }
|
|
}
|
|
|
|
.hero-text-section {
|
|
width: 100%;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
/* título */
|
|
.main-title {
|
|
font-family: 'Inter', sans-serif;
|
|
font-size: 52px;
|
|
line-height: 1.05;
|
|
margin: 18px 0 18px 0;
|
|
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
|
|
@media (max-width: 1400px) { font-size: 44px; }
|
|
@media (max-width: 1024px) { font-size: 38px; }
|
|
@media (max-width: 768px) { font-size: 32px; }
|
|
@media (max-width: 480px) { font-size: 28px; }
|
|
}
|
|
|
|
.main-title .first-line,
|
|
.main-title .second-line {
|
|
font-weight: 650;
|
|
display: block;
|
|
color: var(--text);
|
|
text-align: center;
|
|
}
|
|
|
|
.main-title strong {
|
|
color: var(--brand);
|
|
position: relative;
|
|
}
|
|
|
|
.main-title strong::after {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0;
|
|
bottom: 6px;
|
|
width: 100%;
|
|
height: 10px;
|
|
border-radius: 999px;
|
|
background: rgba(227, 61, 207, 0.18);
|
|
z-index: -1;
|
|
}
|
|
|
|
/* parágrafo */
|
|
.main-paragraph {
|
|
width: min(980px, 100%);
|
|
margin: 0 auto 16px auto;
|
|
|
|
font-family: 'Poppins', sans-serif;
|
|
font-size: 20px;
|
|
color: var(--muted);
|
|
line-height: 1.45;
|
|
|
|
@media (max-width: 1400px) { font-size: 19px; }
|
|
@media (max-width: 1024px) { font-size: 18px; }
|
|
@media (max-width: 768px) { font-size: 16px; }
|
|
}
|
|
|
|
.main-paragraph .brand-name { color: var(--text); }
|
|
.main-paragraph .highlight { color: var(--text); font-weight: 800; }
|
|
.main-paragraph strong { font-weight: 800; }
|
|
|
|
/* botões */
|
|
.hero-actions {
|
|
display: flex;
|
|
gap: 14px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin-top: 16px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.cta-secondary {
|
|
height: 44px;
|
|
padding: 0 14px;
|
|
border-radius: 12px;
|
|
background: rgba(255, 255, 255, 0.72);
|
|
border: 1px solid rgba(17, 18, 20, 0.10);
|
|
color: var(--text);
|
|
font-weight: 800;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
|
|
|
|
i { color: var(--brand); }
|
|
|
|
&:hover {
|
|
transform: translateY(-2px);
|
|
border-color: rgba(227, 61, 207, 0.28);
|
|
box-shadow: 0 12px 24px rgba(17, 18, 20, 0.10);
|
|
}
|
|
}
|
|
|
|
/* =============================== */
|
|
/* MOCK (direita) */
|
|
/* =============================== */
|
|
.hero-mock {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
|
|
@media (max-width: 992px) {
|
|
justify-content: center;
|
|
}
|
|
}
|
|
|
|
.mock-card {
|
|
width: min(460px, 100%);
|
|
border-radius: var(--radius-xl);
|
|
background: rgba(255, 255, 255, 0.78);
|
|
border: 1px solid rgba(227, 61, 207, 0.14);
|
|
backdrop-filter: blur(12px);
|
|
box-shadow: 0 22px 46px rgba(17, 18, 20, 0.10);
|
|
overflow: hidden;
|
|
|
|
transform: perspective(900px) rotateY(-6deg) rotateX(2deg);
|
|
transition: transform 200ms ease;
|
|
|
|
&:hover {
|
|
transform: perspective(900px) rotateY(-2deg) rotateX(1deg) translateY(-2px);
|
|
}
|
|
}
|
|
|
|
.mock-top {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 14px 16px;
|
|
background: linear-gradient(180deg, rgba(227, 61, 207, 0.10), rgba(255, 255, 255, 0.20));
|
|
|
|
.dot {
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 999px;
|
|
background: rgba(17, 18, 20, 0.12);
|
|
}
|
|
|
|
.mock-title {
|
|
margin-left: 6px;
|
|
font-weight: 950;
|
|
font-family: 'Inter', sans-serif;
|
|
color: var(--text);
|
|
}
|
|
}
|
|
|
|
.mock-grid {
|
|
padding: 16px;
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 12px;
|
|
|
|
@media (max-width: 380px) { grid-template-columns: 1fr; }
|
|
}
|
|
|
|
.mock-kpi {
|
|
border-radius: var(--radius-lg);
|
|
background: #fff;
|
|
border: 1px solid rgba(17, 18, 20, 0.08);
|
|
padding: 12px;
|
|
|
|
.kpi-label {
|
|
display: block;
|
|
font-size: 12px;
|
|
color: rgba(17, 18, 20, 0.65);
|
|
font-family: 'Inter', sans-serif;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.kpi-value {
|
|
display: block;
|
|
font-size: 26px;
|
|
font-family: 'Inter', sans-serif;
|
|
font-weight: 950;
|
|
color: var(--text);
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.kpi-tag {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
margin-top: 8px;
|
|
padding: 6px 10px;
|
|
border-radius: 999px;
|
|
border: 1px solid rgba(227, 61, 207, 0.20);
|
|
background: rgba(227, 61, 207, 0.07);
|
|
color: var(--text);
|
|
font-size: 12px;
|
|
font-weight: 900;
|
|
|
|
i { color: var(--brand); }
|
|
}
|
|
}
|
|
|
|
.mock-line {
|
|
grid-column: 1 / -1;
|
|
border-radius: var(--radius-lg);
|
|
background: #fff;
|
|
border: 1px solid rgba(17, 18, 20, 0.08);
|
|
padding: 12px;
|
|
|
|
display: grid;
|
|
grid-template-columns: auto 1fr auto;
|
|
gap: 12px;
|
|
align-items: center;
|
|
|
|
.line-icon {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: 12px;
|
|
background: rgba(227, 61, 207, 0.10);
|
|
display: grid;
|
|
place-items: center;
|
|
|
|
i { color: var(--brand); font-size: 18px; }
|
|
}
|
|
|
|
.line-title {
|
|
font-weight: 950;
|
|
font-family: 'Inter', sans-serif;
|
|
color: var(--text);
|
|
font-size: 14px;
|
|
}
|
|
|
|
.line-sub {
|
|
color: rgba(17, 18, 20, 0.65);
|
|
font-size: 12px;
|
|
margin-top: 2px;
|
|
font-family: 'Inter', sans-serif;
|
|
}
|
|
|
|
.line-pill {
|
|
padding: 8px 10px;
|
|
border-radius: 999px;
|
|
font-weight: 950;
|
|
font-size: 12px;
|
|
background: rgba(227, 61, 207, 0.10);
|
|
border: 1px solid rgba(227, 61, 207, 0.22);
|
|
color: var(--text);
|
|
}
|
|
}
|
|
|
|
/* =============================== */
|
|
/* MÉTRICAS CENTRALIZADAS (MEIO) */
|
|
/* =============================== */
|
|
.hero-metrics-wide {
|
|
margin-top: 18px;
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
|
|
.hero-metrics {
|
|
display: flex;
|
|
gap: 14px;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
}
|
|
|
|
.metric {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 12px 14px;
|
|
border-radius: 14px;
|
|
background: rgba(255, 255, 255, 0.78);
|
|
border: 1px solid rgba(227, 61, 207, 0.16);
|
|
backdrop-filter: blur(10px);
|
|
|
|
i { color: var(--brand); font-size: 18px; }
|
|
|
|
.metric-title {
|
|
display: block;
|
|
font-weight: 900;
|
|
color: var(--text);
|
|
font-family: 'Inter', sans-serif;
|
|
font-size: 14px;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.metric-sub {
|
|
display: block;
|
|
font-family: 'Inter', sans-serif;
|
|
font-size: 12px;
|
|
color: rgba(17, 18, 20, 0.65);
|
|
}
|
|
}
|
|
|
|
/* =============================== */
|
|
/* FEATURES */
|
|
/* =============================== */
|
|
.features-section {
|
|
padding: 18px 0 60px 0;
|
|
background: transparent;
|
|
}
|
|
|
|
.section-head {
|
|
text-align: center;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.section-title {
|
|
font-family: 'Inter', sans-serif;
|
|
font-weight: 950;
|
|
color: var(--text);
|
|
font-size: 30px;
|
|
|
|
@media (max-width: 768px) { font-size: 24px; }
|
|
}
|
|
|
|
.section-title .brand { color: var(--brand); }
|
|
|
|
.section-subtitle {
|
|
margin-top: 10px;
|
|
color: var(--muted);
|
|
font-family: 'Poppins', sans-serif;
|
|
}
|
|
|
|
/* ✅ AQUI: 3 CARDS CENTRALIZADOS LADO A LADO NO NOTEBOOK */
|
|
.feature-cards-row {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: stretch;
|
|
gap: 26px;
|
|
flex-wrap: nowrap; /* ✅ força ficar em 1 linha */
|
|
|
|
/* notebook / telas médias */
|
|
@media (max-width: 1199.98px) {
|
|
gap: 18px;
|
|
}
|
|
|
|
/* quando a tela ficar pequena de verdade, aí quebra */
|
|
@media (max-width: 992px) {
|
|
flex-wrap: wrap;
|
|
}
|
|
}
|
|
|
|
/* Garante que o col-auto do bootstrap não atrapalhe */
|
|
.feature-item {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: stretch;
|
|
margin-bottom: 0 !important;
|
|
}
|
|
|
|
/* melhora o respiro no botão */
|
|
.button-section {
|
|
margin-top: 18px;
|
|
}
|
|
|
|
/* faixa de valores */
|
|
.value-strip {
|
|
margin-top: 26px;
|
|
padding: 14px 16px;
|
|
border-radius: var(--radius-xl);
|
|
background: rgba(255, 255, 255, 0.80);
|
|
border: 1px solid rgba(227, 61, 207, 0.14);
|
|
backdrop-filter: blur(10px);
|
|
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 18px;
|
|
flex-wrap: wrap;
|
|
|
|
.value {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
|
|
i { color: var(--brand); font-size: 18px; }
|
|
span { color: var(--text); font-family: 'Inter', sans-serif; }
|
|
}
|
|
}
|
|
|
|
/* =============================== */
|
|
/* ✅ ANIMAÇÕES SSR-SAFE */
|
|
/* =============================== */
|
|
[data-animate] { opacity: 1; transform: none; }
|
|
|
|
.js-animate [data-animate] {
|
|
opacity: 0;
|
|
transform: translateY(14px);
|
|
transition: opacity 600ms ease, transform 600ms ease;
|
|
will-change: opacity, transform;
|
|
}
|
|
|
|
.js-animate [data-animate].is-visible {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
/* brilho suave no botão */
|
|
:host ::ng-deep app-cta-button .btn,
|
|
:host ::ng-deep app-cta-button button {
|
|
position: relative;
|
|
overflow: hidden;
|
|
transform: translateZ(0);
|
|
}
|
|
|
|
:host ::ng-deep app-cta-button .btn::after,
|
|
:host ::ng-deep app-cta-button button::after {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
transform: translateX(-120%) rotate(12deg);
|
|
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.55), transparent);
|
|
animation: shine 3.4s ease-in-out infinite;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.page-blob { animation: none; }
|
|
.js-animate [data-animate] { transition: none; transform: none; opacity: 1; }
|
|
:host ::ng-deep app-cta-button .btn::after,
|
|
:host ::ng-deep app-cta-button button::after { animation: none; }
|
|
}
|
|
|
|
@keyframes floaty {
|
|
0% { transform: translate(0, 0) scale(1); }
|
|
50% { transform: translate(18px, 10px) scale(1.03); }
|
|
100% { transform: translate(0, 0) scale(1); }
|
|
}
|
|
|
|
@keyframes shine {
|
|
0%, 65% { transform: translateX(-120%) rotate(12deg); opacity: 0.0; }
|
|
75% { opacity: 1; }
|
|
100% { transform: translateX(120%) rotate(12deg); opacity: 0.0; }
|
|
}
|