/* Estilos base do site Techecia */

:root {
	--brand-color: #10b981; /* emerald 500 */
	--brand-dark: #0f766e; /* teal 700 */
	--brand-contrast: #d1fae5; /* emerald 100 */
	--text-muted: #64748b;
	--bg-light: #f6fffb;
	--surface: #ffffff;
	--surface-2: #f0fdf4; /* emerald 50 */
	--border-color: #e2e8f0;
	--radius: .9rem;
	--shadow-sm: 0 .25rem .75rem rgba(0,0,0,.05);
	--shadow-md: 0 .75rem 1.25rem rgba(0,0,0,.08);
	--shadow-lg: 0 1.25rem 2rem rgba(0,0,0,.12);
}

/* Fallback: se AOS não carregar, mantém os elementos visíveis */
html:not(.aos-enabled) [data-aos] {
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
}

body {
	font-family: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
	line-height: 1.6;
	background: var(--bg-light);
	color: #111827;
}


.hero {
	background: linear-gradient(135deg, var(--brand-color) 0%, #06b6d4 100%);
	color: #fff;
	padding: 84px 0;
	position: relative;
	overflow: hidden;
	clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
}

.hero:after {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(closest-side, rgba(255,255,255,.10), transparent 60%);
	pointer-events: none;
}

.hero:before {
	content: '';
	position: absolute;
	width: 480px;
	height: 480px;
	background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.25), transparent 60%);
	filter: blur(20px);
	border-radius: 50%;
	right: -120px;
	top: -80px;
}

.hero .lead {
	opacity: 0.95;
}

/* Page hero menor */

.page-hero {
	background: linear-gradient(135deg, var(--brand-color) 0%, var(--brand-dark) 100%);
	color: #fff;
	padding: 56px 0;
}

.section-title {
	font-weight: 700;
	margin-bottom: 1rem;
}
.section-title:after {
	content: '';
	display: block;
	width: 56px;
	height: 4px;
	border-radius: 999px;
	background: var(--brand-color);
	margin-top: .5rem;
}

.section-subtitle {
	color: var(--text-muted);
	margin-bottom: 1.5rem;
}

.card-service {
	transition: transform .2s ease, box-shadow .2s ease;
}

.card-service:hover {
	transform: translateY(-4px);
	box-shadow: 0 1rem 2rem rgba(0,0,0,.08);
}

.card-service .bi {
	font-size: 2rem;
	color: var(--brand-color);
}

/* Feature items */
.feature-card {
	border: 1px solid #eee;
	border-radius: .75rem;
	padding: 20px;
	background: #fff;
	transition: transform .2s ease, box-shadow .2s ease;
}

.feature-card:hover { transform: translateY(-4px); box-shadow: 0 .75rem 1.25rem rgba(0,0,0,.06); }

.icon-lg { font-size: 2.25rem; color: var(--brand-color); }

/* Steps */
.step {
	position: relative;
	padding-left: 48px;
}

.step .step-index {
	position: absolute;
	left: 0;
	top: 0;
	width: 36px;
	height: 36px;
	border-radius: 999px;
	background: #e7f1ff;
	color: #084298;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
}

/* Testimonials */
.testimonial-card {
	background: var(--surface);
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
	padding: 20px;
}

.avatar {
	width: 48px; height: 48px; border-radius: 999px; object-fit: cover;
}

/* FAQ */
.faq .accordion-button { font-weight: 600; }

/* CTA */
.cta {
	background: linear-gradient(135deg, var(--brand-color), #06b6d4);
	color: #fff;
	border-radius: var(--radius);
	padding: 28px;
}

.footer {
	background: #0b1412;
	color: #cfd3dc;
	padding: 48px 0;
	border-top: 1px solid rgba(255,255,255,.06);
}

.footer a { color: #cfd3dc; text-decoration: none; }
.footer a:hover { color: #fff; }

.navbar-brand strong { letter-spacing: 0.5px; }

.table-actions .btn { margin-right: 8px; }

.admin-header { background: #111827; color: #e5e7eb; }
.admin-header .navbar-brand { color: #fff; }

.badge-price { background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0; }

.section { padding: 72px 0; }
.section:nth-of-type(even) { background: var(--surface-2); }

.floating-actions { position: fixed; right: 16px; bottom: 16px; display: flex; flex-direction: column; gap: 10px; z-index: 1040; }
.floating-actions .btn { box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); } 

/* Navbar aprimorada */
.navbar.bg-body-tertiary {
	background: linear-gradient(90deg, var(--brand-dark), var(--brand-color)) !important;
	backdrop-filter: saturate(150%) blur(8px);
	border-bottom: none;
}
.navbar .navbar-brand { color: #ffffff; font-weight: 800; letter-spacing: .2px; }
.navbar .nav-link { color: #e2e8f0; font-weight: 700; border-radius: 999px; }
.navbar .nav-link:hover { color: #0b1412; background: #ffffff; }
.navbar .nav-link.active { color: #0b1412; background: #ffffff; }

/* Botões */
.btn { border-radius: 999px; padding: .625rem 1.1rem; font-weight: 700; }
.btn-primary { background: var(--brand-color); border-color: var(--brand-color); box-shadow: 0 .5rem 1rem rgba(16,185,129,.18); }
.btn-primary:hover { background: #0ea37a; border-color: #0ea37a; }
.btn-primary:focus { box-shadow: 0 0 0 .25rem rgba(16,185,129,.25); }
.btn-outline-primary { color: var(--brand-color); border-color: var(--brand-color); }
.btn-outline-primary:hover { background: var(--brand-color); border-color: var(--brand-color); color: #fff; }

/* Cards gerais */
.card { border: 1px solid rgba(255,255,255,.4); border-radius: var(--radius); box-shadow: var(--shadow-sm); background: rgba(255,255,255,.6); backdrop-filter: blur(8px); }
.card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }

/* Componentes custom atualizados */
.feature-card {
	border: 1px solid rgba(255,255,255,.5);
	border-radius: var(--radius);
	padding: 20px;
	background: rgba(255,255,255,.66);
	backdrop-filter: blur(8px);
	transition: transform .2s ease, box-shadow .2s ease;
}
.feature-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }

.card-service { transition: transform .2s ease, box-shadow .2s ease; }
.card-service:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.card-service .bi { font-size: 2rem; color: var(--brand-color); }

/* Steps */
.step .step-index {
	background: var(--brand-contrast);
	color: var(--brand-dark);
}

/* Formulários */
.form-control, .form-select { border-color: var(--border-color); border-radius: .75rem; }
.form-control:focus, .form-select:focus {
	border-color: var(--brand-color);
	box-shadow: 0 0 0 .25rem rgba(16,185,129,.20);
}

/* Links */
.link-primary { color: var(--brand-color); }
.link-primary:hover { color: #1d4ed8; }

/* Responsividade */
@media (max-width: 576px) {
	.hero { padding: 56px 0; }
	.page-hero { padding: 40px 0; }
	.btn { padding: .55rem .9rem; }
	.navbar .nav-link { padding: .5rem .75rem; }
	.section { padding: 56px 0; }
}