/* =====================================================
	RESET
===================================================== */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
}
body {
	font-family: 'Inter', sans-serif;
	background: #ffffff;
	color: #17202a;
	line-height: 1.6;
}
img {
	max-width: 100%;
	display: block;
}
a {
	text-decoration: none;
}
button,
input,
textarea {
	font-family: inherit;
}
/* ALERTAS */
.alert {
    padding: 15px;
    border-radius: 5px;
    margin-bottom: 20px;
    animation: slideDown 0.3s ease;
}
@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.alert-success {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.alert-danger {
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.alert-warning {
    background-color: #fff3cd;
    color: #856404;
    border: 1px solid #ffeaa7;
}

.alert-info {
    background-color: #d1ecf1;
    color: #0c5460;
    border: 1px solid #bee5eb;
}
/* =====================================================
	VARIÁVEIS
===================================================== */
:root {
	--primary: #ef3340;
	--primary-dark: #d92332;
	--primary-light: #fff0f1;
	--green: #25d366;
	--dark: #17202a;
	--dark-2: #28323c;
	--text: #344054;
	--muted: #667085;
	--background: #ffffff;
	--background-light: #f7f8fa;
	--border: #e6e8ec;
	--card: #ffffff;
	--shadow:
	0 10px 35px rgba(16, 24, 40, .08);
	--radius: 18px;
	--max-width: 1180px;
}
/* =====================================================
	CONTAINER
===================================================== */
.container {
	width: min(
	var(--max-width),
	calc(100% - 40px)
	);
	margin: 0 auto;
}
/* =====================================================
	HEADER
===================================================== */
header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 76px;
	background:
	rgba(255,255,255,.96);
	backdrop-filter:
	blur(12px);
	border-bottom:
	1px solid rgba(230,232,236,.8);
	z-index: 1000;
}
.header-content {
	height: 76px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.logo {
	width: 165px;
}
nav {
	display: flex;
	align-items: center;
	gap: 26px;
}
nav a {
	color: #344054;
	font-size: 14px;
	font-weight: 600;
	transition: .25s;
}
nav a:hover {
	color: var(--primary);
}
.header-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 0 22px;
	border-radius: 10px;
	border: 0;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: .25s;
}
.btn-outline {
	color: var(--primary);
	background: white;
	border:
	1px solid var(--primary);
}
.btn-outline:hover {
	background: var(--primary-light);
}
.btn-primary {
	color: white;
	background: var(--primary);
	box-shadow:
	0 8px 20px
	rgba(239,51,64,.20);
}
.btn-primary:hover {
	background: var(--primary-dark);
	transform:
	translateY(-2px);
}
.btn-green {
	background: var(--green);
	color: white;
}
/* =====================================================
	MENU MOBILE
===================================================== */
.menu-mobile {
	display: none;
	width: 44px;
	height: 44px;
	border: 1px solid var(--border);
	border-radius: 10px;
	background: white;
	font-size: 22px;
	cursor: pointer;
}
/* =====================================================
	HERO
===================================================== */
#home {
	padding-top: 150px;
	padding-bottom: 100px;
	background:
	radial-gradient(
	circle at 80% 20%,
	#fff0f1 0,
	transparent 35%
	),
	linear-gradient(
	180deg,
	#ffffff 0%,
	#fafbfc 100%
	);
}
.hero {
	display: grid;
	grid-template-columns:
	1.05fr .95fr;
	gap: 70px;
	align-items: center;
	min-height: 620px;
}
.hero-content {
	max-width: 650px;
}
.hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	background: var(--primary-light);
	color: var(--primary);
	border-radius: 50px;
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 22px;
}
.hero h1 {
	font-family: 'Poppins', sans-serif;
	font-size:
	clamp(38px, 5vw, 64px);
	line-height: 1.08;
	letter-spacing: -2px;
	color: var(--dark);
	margin-bottom: 24px;
}
.hero h1 span {
	color: var(--primary);
}
.hero-text {
	font-size: 19px;
	color: var(--muted);
	max-width: 590px;
	margin-bottom: 34px;
}
.hero-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 30px;
}
.hero-benefits {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	color: var(--muted);
	font-size: 13px;
	font-weight: 600;
}
.hero-benefits span {
	display: flex;
	align-items: center;
	gap: 6px;
}
.check {
	color: #18a957;
	font-size: 17px;
}
/* =====================================================
	HERO MOCKUP
===================================================== */
.hero-visual {
	position: relative;
	display: flex;
	justify-content: center;
}
.phone {
	width: 300px;
	max-width: 100%;
	padding: 10px;
	border-radius: 36px;
	background: #17202a;
	box-shadow:
	0 30px 70px
	rgba(16,24,40,.22);
	transform:
	rotate(2deg);
}
.phone-screen {
	overflow: hidden;
	border-radius: 27px;
	background: #f5f6f8;
}
.phone-header {
	background: white;
	padding: 20px 18px;
	border-bottom:
	1px solid #eee;
}
.phone-title {
	font-weight: 800;
	font-size: 17px;
}
.phone-subtitle {
	color: #7b8490;
	font-size: 11px;
}
.phone-category {
	display: flex;
	gap: 7px;
	overflow: hidden;
	padding: 12px;
}
.phone-category span {
	white-space: nowrap;
	padding: 8px 12px;
	border-radius: 30px;
	background: white;
	border: 1px solid #e3e5e8;
	font-size: 10px;
	font-weight: 700;
}
.phone-category span.active {
	background: var(--primary);
	color: white;
	border-color:
	var(--primary);
}
.phone-search {
	margin: 0 12px 12px;
	padding: 12px;
	background: white;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	color: #89909a;
	font-size: 11px;
}
.phone-product {
	margin: 8px 12px;
	padding: 10px;
	background: white;
	border-radius: 13px;
	display: flex;
	gap: 10px;
	align-items: center;
}
.phone-product-image {
	width: 60px;
	height: 60px;
	border-radius: 10px;
	background:
	linear-gradient(
	135deg,
	#ffd3d6,
	#fff
	);
}
.phone-product-info {
	flex: 1;
}
.phone-product-info strong {
	display: block;
	font-size: 11px;
}
.phone-product-info small {
	display: block;
	font-size: 9px;
	color: #89909a;
}
.phone-price {
	margin-top: 3px;
	color: var(--primary);
	font-size: 11px;
	font-weight: 800;
}
.phone-add {
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--primary);
	color: white;
	font-weight: 800;
}
/* =====================================================
	SEÇÕES
===================================================== */
section {
	padding: 100px 0;
}
.section-header {
	max-width: 720px;
	margin:
	0 auto 55px;
	text-align: center;
}
.section-label {
	color: var(--primary);
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-bottom: 10px;
}
.section-title {
	font-family: 'Poppins', sans-serif;
	font-size:
	clamp(30px, 4vw, 44px);
	line-height: 1.15;
	color: var(--dark);
	margin-bottom: 15px;
}
.section-description {
	color: var(--muted);
	font-size: 16px;
}
/* =====================================================
	SOBRE
===================================================== */
#sobre {
	background: var(--background-light);
}
.about-grid {
	display: grid;
	grid-template-columns:
	1fr 1fr;
	gap: 50px;
	align-items: center;
}
.about-text h3 {
	font-family: 'Poppins', sans-serif;
	font-size: 30px;
	margin-bottom: 18px;
}
.about-text p {
	color: var(--muted);
	margin-bottom: 18px;
}
.about-list {
	list-style: none;
	display: grid;
	gap: 12px;
	margin-top: 25px;
}
.about-list li {
	display: flex;
	gap: 10px;
	align-items: center;
	font-weight: 600;
	color: var(--text);
}
.about-card {
	padding: 35px;
	background: white;
	border-radius: 24px;
	box-shadow: var(--shadow);
}
.about-stat {
	display: grid;
	grid-template-columns:
	1fr 1fr;
	gap: 15px;
}
.stat {
	padding: 25px;
	background: var(--primary-light);
	border-radius: 16px;
}
.stat strong {
	display: block;
	color: var(--primary);
	font-family: 'Poppins';
	font-size: 28px;
}
.stat span {
	color: var(--muted);
	font-size: 13px;
	font-weight: 600;
}



/* Container do Card */
.about-card {
	padding: 35px;
	background: #ffffff;
	border-radius: 24px;
	box-shadow: var(--shadow, 0 10px 30px rgba(0, 0, 0, 0.08));
	display: flex;
	flex-direction: column;
	gap: 24px; /* Espaçamento uniforme entre o cabeçalho e cada item */
}

/* Cabeçalho do Card */
.about-card-header {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-bottom: 20px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06); /* Linha sutil separando o topo */
}

.about-card-icon {
	font-size: 32px;
	background: var(--primary-light, #f0f7ff);
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 16px;
	flex-shrink: 0;
}

.about-card-header strong {
	display: block;
	font-family: 'Poppins', sans-serif;
	font-size: 18px;
	color: var(--text, #1f2937);
	line-height: 1.3;
}

.about-card-header span {
	font-size: 14px;
	color: var(--muted, #6b7280);
}

/* Lista de Recursos (.about-stat) */
.about-stat {
	display: flex; /* Mudado de grid para flex para alinhar o ícone perfeitamente */
	align-items: flex-start;
	gap: 16px;
	padding: 12px;
	border-radius: 16px;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

/* Efeito Hover suave nos itens */
.about-stat:hover {
	background-color: var(--primary-light, #f8fafc);
	transform: translateX(4px);
}

/* Ícones dos Recursos */
.stat-icon {
	font-size: 20px;
	width: 44px;
	height: 44px;
	background: var(--primary-light, #f0f7ff);
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0; /* Impede o ícone de encolher */
}

/* Conteúdo dos Recursos */
.stat-content {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.stat-content strong {
	font-family: 'Poppins', sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: var(--text, #1f2937);
}

.stat-content span {
	font-size: 13.5px;
	color: var(--muted, #6b7280);
	line-height: 1.4;
}

/* Responsividade para telas menores */
@media (max-width: 768px) {
	.about-grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.about-card {
		padding: 24px;
	}
}




/* =====================================================
	FUNCIONALIDADES
===================================================== */
#funcionalidades {
	background: white;
}
.features-group {
	margin-bottom: 70px;
}
.features-group:last-child {
	margin-bottom: 0;
}
.features-group-title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 25px;
	font-family: 'Poppins';
	font-size: 25px;
	color: var(--dark);
}
.features-group-title span {
	width: 42px;
	height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	background: var(--primary-light);
	font-size: 21px;
}
.features-grid {
	display: grid;
	grid-template-columns:
	repeat(3, 1fr);
	gap: 20px;
}
.feature-card {
	padding: 28px;
	background: white;
	border:
	1px solid var(--border);
	border-radius: var(--radius);
	transition: .25s;
}
.feature-card:hover {
	transform:
	translateY(-5px);
	border-color:
	#f4a0a6;
	box-shadow: var(--shadow);
}
.feature-icon {
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 14px;
	background: var(--primary-light);
	font-size: 22px;
	margin-bottom: 18px;
}
.feature-card h3 {
	font-size: 17px;
	margin-bottom: 8px;
	color: var(--dark);
}
.feature-card p {
	color: var(--muted);
	font-size: 14px;
}
/* =====================================================
	COMO FUNCIONA
===================================================== */
#como-funciona {
	background: var(--background-light);
}
.steps {
	display: grid;
	grid-template-columns:
	repeat(6, 1fr);
	gap: 15px;
}
.step {
	text-align: center;
	position: relative;
}
.step-number {
	width: 58px;
	height: 58px;
	margin:
	0 auto 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--primary);
	color: white;
	font-weight: 800;
	font-size: 18px;
}
.step h3 {
	font-size: 15px;
	margin-bottom: 7px;
}
.step p {
	color: var(--muted);
	font-size: 12px;
}
/* =====================================================
	PLANOS
===================================================== */
#planos {
	background: white;
}
.pricing-grid {
	display: grid;
	grid-template-columns:
	repeat(4, 1fr);
	gap: 22px;
	align-items: stretch;
}
.pricing-card {
	position: relative;
	padding: 35px 30px;
	border:
	1px solid var(--border);
	border-radius: 22px;
	background: white;
	transition: .25s;
}
.pricing-card:hover {
	transform:
	translateY(-5px);
	box-shadow: var(--shadow);
}
.pricing-card.featured {
	border:
	2px solid var(--primary);
	box-shadow:
	0 20px 50px
	rgba(239,51,64,.14);
	transform:
	scale(1.02);
}
.recommended {
	position: absolute;
	top: -13px;
	left: 50%;
	transform:
	translateX(-50%);
	background: var(--primary);
	color: white;
	padding: 6px 16px;
	border-radius: 30px;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
}
.plan-icon {
	font-size: 30px;
	margin-bottom: 10px;
}
.pricing-card h3 {
	font-family: 'Poppins';
	font-size: 25px;
	margin-bottom: 7px;
}
.plan-description {
	color: var(--muted);
	font-size: 13px;
	min-height: 42px;
	margin-bottom: 20px;
}
.price {
	margin-bottom: 25px;
}
.price strong {
	font-family: 'Poppins';
	font-size: 36px;
	color: var(--dark);
}
.price small {
	color: var(--muted);
	font-size: 13px;
}
.pricing-button {
	width: 100%;
	margin-bottom: 25px;
}
.plan-features {
	list-style: none;
	display: grid;
	gap: 11px;
}
.plan-features li {
	display: flex;
	gap: 8px;
	font-size: 13px;
	color: var(--text);
}
.plan-features .yes {
	color: #18a957;
	font-weight: 800;
}
.plan-features .no {
	color: #b5bbc3;
}
.plans-note {
	margin-top: 30px;
	text-align: center;
	color: var(--muted);
	font-size: 13px;
}
/* =====================================================
	COMPARATIVO
===================================================== */
.comparison-wrapper {
	margin-top: 60px;
	overflow-x: auto;
	border:
	1px solid var(--border);
	border-radius: 18px;
}
.comparison {
	width: 100%;
	min-width: 750px;
	border-collapse: collapse;
	background: white;
}
.comparison th,
.comparison td {
	padding: 15px 18px;
	border-bottom:
	1px solid var(--border);
	text-align: center;
	font-size: 13px;
}
.comparison th:first-child,
.comparison td:first-child {
	text-align: left;
}
.comparison th {
	background: #fafafa;
	font-weight: 800;
	color: var(--dark);
}
.comparison td:first-child {
	color: var(--text);
	font-weight: 600;
}
.table-check {
	color: #18a957;
	font-weight: 900;
	font-size: 17px;
}
/* =====================================================
	CTA
===================================================== */
#cta {
	padding: 80px 0;
}
.cta-box {
	background:
	radial-gradient(
	circle at 90% 20%,
	#ff6470,
	transparent 30%
	),
	var(--primary);
	border-radius: 28px;
	padding: 65px;
	color: white;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 40px;
}
.cta-box h2 {
	font-family: 'Poppins';
	font-size:
	clamp(28px, 4vw, 40px);
	line-height: 1.15;
	margin-bottom: 12px;
}
.cta-box p {
	opacity: .9;
	max-width: 620px;
}
.cta-box .btn {
	flex-shrink: 0;
	background: white;
	color: var(--primary);
}
/* =====================================================
	FAQ
===================================================== */
#faq {
	background: var(--background-light);
}
.faq {
	max-width: 850px;
	margin: 0 auto;
}
.faq-item {
	background: white;
	border:
	1px solid var(--border);
	border-radius: 14px;
	margin-bottom: 12px;
	overflow: hidden;
}
.faq-question {
	width: 100%;
	padding: 20px;
	background: white;
	border: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	cursor: pointer;
	text-align: left;
	font-size: 15px;
	font-weight: 700;
	color: var(--dark);
}
.faq-question span:last-child {
	color: var(--primary);
	font-size: 22px;
	transition: .25s;
}
.faq-answer {
	display: none;
	padding:
	0 20px 20px;
	color: var(--muted);
	font-size: 14px;
}
.faq-item.active
.faq-answer {
	display: block;
}
.faq-item.active
.faq-question span:last-child {
	transform:
	rotate(45deg);
}
/* =====================================================
	CONTATO
===================================================== */
#contato {
	background: white;
}
.contact-grid {
	display: grid;
	grid-template-columns:
	.8fr 1.2fr;
	gap: 50px;
	align-items: start;
}
.contact-info h3 {
	font-family: 'Poppins';
	font-size: 30px;
	margin-bottom: 15px;
}
.contact-info > p {
	color: var(--muted);
	margin-bottom: 30px;
}
.contact-methods {
	display: grid;
	gap: 16px;
}
.contact-method {
	display: flex;
	gap: 14px;
	align-items: center;
}
.contact-icon {
	width: 45px;
	height: 45px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	background: var(--primary-light);
	font-size: 20px;
}
.contact-method strong {
	display: block;
	font-size: 13px;
	color: var(--dark);
}
.contact-method span {
	color: var(--muted);
	font-size: 13px;
}
.contact-method a {
	color: var(--primary);
	font-weight: 600;
	font-size: 13px;
}
.contact-form {
	padding: 35px;
	border:
	1px solid var(--border);
	border-radius: 22px;
	box-shadow: var(--shadow);
}
.form-grid {
	display: grid;
	grid-template-columns:
	1fr 1fr;
	gap: 16px;
}
.form-group {
	margin-bottom: 16px;
}
.form-group.full {
	grid-column:
	1 / -1;
}
.form-group label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 7px;
	color: var(--dark);
}
.form-group input,
.form-group textarea,
.form-group select {
	width: 100%;
	padding: 13px 14px;
	border:
	1px solid #dfe3e8;
	border-radius: 10px;
	outline: none;
	color: var(--dark);
	background: white;
	font-size: 14px;
	transition: .2s;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
	border-color:
	var(--primary);
	box-shadow:
	0 0 0 3px
	rgba(239,51,64,.08);
}
.form-group textarea {
	min-height: 130px;
	resize: vertical;
}
.form-note {
	margin-top: 10px;
	color: var(--muted);
	font-size: 11px;
	text-align: center;
}
/* =====================================================
	FOOTER
===================================================== */
footer {
	background: #151a20;
	color: white;
	padding: 60px 0 25px;
}
.footer-grid {
	display: grid;
	grid-template-columns:
	1.5fr 1fr 1fr 1fr;
	gap: 40px;
	margin-bottom: 45px;
}
.footer-logo {
	width: 190px;
	margin-bottom: 18px;
}
.footer-description {
	color: #aab1ba;
	font-size: 13px;
	max-width: 330px;
}
.footer-column h4 {
	margin-bottom: 15px;
	font-size: 14px;
}
.footer-column a {
	display: block;
	color: #aab1ba;
	font-size: 13px;
	margin-bottom: 9px;
	transition: .2s;
}
.footer-column a:hover {
	color: white;
}
.footer-bottom {
	border-top:
	1px solid #2a3037;
	padding-top: 22px;
	display: flex;
	justify-content: space-between;
	gap: 20px;
	color: #89919b;
	font-size: 11px;
}
/* =====================================================
	WHATSAPP FLUTUANTE
===================================================== */
.whatsapp-float {
	position: fixed;
	right: 22px;
	bottom: 22px;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--green);
	color: white;
	font-size: 26px;
	box-shadow:
	0 10px 30px
	rgba(37,211,102,.35);
	z-index: 999;
	transition: .25s;
}
.whatsapp-float:hover {
	transform:
	translateY(-4px)
	scale(1.05);
}
/* =====================================================
	ANIMAÇÃO
===================================================== */
.fade-up {
	animation:
	fadeUp .7s ease both;
}
@keyframes fadeUp {
	from {
		opacity: 0;
		transform:
		translateY(20px);
	}
	to {
		opacity: 1;
		transform:
		translateY(0);
	}
}
/* =====================================================
	RESPONSIVO
===================================================== */
@media (max-width: 1000px) {
	nav {
		display: none;
	}
	.menu-mobile {
		display: block;
	}
	.header-actions
	.btn-outline {
		display: none;
	}
	.hero {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 50px;
	}
	.hero-content {
		margin: 0 auto;
	}
	.hero-buttons,
	.hero-benefits {
		justify-content: center;
	}
	.hero-visual {
		order: 2;
	}
	.about-grid {
		grid-template-columns: 1fr;
	}
	.features-grid {
		grid-template-columns:
		repeat(2, 1fr);
	}
	.steps {
		grid-template-columns:
		repeat(3, 1fr);
		row-gap: 35px;
	}
	.pricing-grid {
		grid-template-columns: 1fr;
		max-width: 520px;
		margin: 0 auto;
	}
	.pricing-card.featured {
		transform: none;
	}
	.cta-box {
		flex-direction: column;
		text-align: center;
	}
	.contact-grid {
		grid-template-columns: 1fr;
	}
	.footer-grid {
		grid-template-columns:
		1fr 1fr;
	}
}
@media (max-width: 650px) {
	.container {
		width:
		calc(100% - 28px);
	}
	header,
	.header-content {
		height: 68px;
	}
	.logo {
		width: 135px;
	}
	.header-actions
	.btn-primary {
		display: none;
	}
	#home {
		padding-top: 110px;
		padding-bottom: 70px;
	}
	section {
		padding: 70px 0;
	}
	.hero h1 {
		font-size: 39px;
		letter-spacing: -1px;
	}
	.hero-text {
		font-size: 16px;
	}
	.hero-buttons {
		flex-direction: column;
	}
	.hero-buttons .btn {
		width: 100%;
	}
	.phone {
		width: 270px;
	}
	.features-grid {
		grid-template-columns: 1fr;
	}
	.steps {
		grid-template-columns:
		1fr 1fr;
	}
	.about-stat {
		grid-template-columns: 1fr 1fr;
	}
	.cta-box {
		padding: 40px 25px;
	}
	.form-grid {
		grid-template-columns: 1fr;
	}
	.form-group.full {
		grid-column: auto;
	}
	.contact-form {
		padding: 22px;
	}
	.footer-grid {
		grid-template-columns: 1fr;
	}
	.footer-bottom {
		flex-direction: column;
		text-align: center;
	}
	.whatsapp-float {
		width: 52px;
		height: 52px;
		right: 15px;
		bottom: 15px;
	}
}

/* ==========================================================
   MODAL DE CONTRATAÇÃO
========================================================== */

.plan-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(15, 23, 42, 0.65);
    backdrop-filter: blur(5px);
}

.plan-modal.active {
    display: flex;
}

.plan-modal-content {
    position: relative;
    width: 100%;
    max-width: 560px;
    max-height: 90vh;
    overflow-y: auto;
    background: #ffffff;
    border-radius: 20px;
    padding: 32px;
    box-shadow: 0 25px 80px rgba(0, 0, 0, 0.20);
    animation: modalUp .25s ease;
}

@keyframes modalUp {
    from {
        opacity: 0;
        transform: translateY(25px) scale(.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.plan-modal-close {
    position: absolute;
    top: 15px;
    right: 18px;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: #f1f3f5;
    color: #333;
    font-size: 24px;
    cursor: pointer;
}

.plan-modal-header {
    padding-right: 40px;
    margin-bottom: 25px;
}

.plan-modal-label {
    display: inline-block;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    color: #ef3340;
}

.plan-modal-header h2 {
    margin: 0 0 8px;
    font-family: 'Poppins', sans-serif;
    font-size: 28px;
}

.plan-modal-header p {
    margin: 0;
    color: #667085;
}

.selected-plan-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 24px;
    padding: 18px;
    border-radius: 14px;
    background: #f8f9fb;
    border: 1px solid #e6e8ec;
}

.selected-plan-name {
    font-size: 18px;
    font-weight: 800;
}

.selected-plan-price {
    font-weight: 700;
    color: #ef3340;
    text-align: right;
}

.billing-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 25px;
}

.billing-option {
    position: relative;
}

.billing-option input {
    position: absolute;
    opacity: 0;
}

.billing-option label {
    display: block;
    padding: 15px;
    border: 2px solid #e6e8ec;
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    transition: .2s;
}

.billing-option label strong {
    display: block;
    margin-bottom: 4px;
}

.billing-option label small {
    color: #667085;
}

.billing-option input:checked + label {
    border-color: #ef3340;
    background: #fff5f6;
}

.annual-badge {
    display: inline-block;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 20px;
    background: #e8f7ee;
    color: #16834b;
    font-size: 11px;
    font-weight: 800;
}

.plan-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.plan-form-group {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.plan-form-group.full {
    grid-column: 1 / -1;
}

.plan-form-group label {
    font-size: 14px;
    font-weight: 600;
}

.plan-form-group input {
    width: 100%;
    box-sizing: border-box;
    padding: 13px 14px;
    border: 1px solid #d9dde5;
    border-radius: 10px;
    outline: none;
    font-family: inherit;
    font-size: 15px;
}

.plan-form-group input:focus {
    border-color: #ef3340;
    box-shadow: 0 0 0 3px rgba(239, 51, 64, .10);
}

.plan-submit {
    width: 100%;
    margin-top: 22px;
}

.plan-modal-note {
    margin: 15px 0 0;
    text-align: center;
    font-size: 12px;
    color: #667085;
}

@media (max-width: 600px) {

    .plan-modal-content {
        padding: 24px 18px;
        border-radius: 16px;
    }

    .plan-modal-header h2 {
        font-size: 23px;
    }

    .plan-form-grid {
        grid-template-columns: 1fr;
    }

    .plan-form-group.full {
        grid-column: auto;
    }

    .billing-options {
        grid-template-columns: 1fr;
    }

    .selected-plan-box {
        align-items: flex-start;
        flex-direction: column;
    }

    .selected-plan-price {
        text-align: left;
    }
}