@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
/* Variáveis incorporadas (antes em variables.css) para evitar @import adicional */
:root {
	--color-bg: #f7f9fc;
	--color-surface: #ffffff;
	--color-surface-alt: #edf1f6;
	--color-primary: #c01818;
	--color-primary-accent: #d82626;
	--color-accent: #575756;
	--color-accent-alt: #717171;
	--color-text: #1c222b;
	--color-text-soft: #4d5968;
	--color-text-dim: #6b7684;
	--color-danger: #e54848;
	--color-focus: #ffcf4d;
	--radius-sm: 4px;
	--radius-md: 8px;
	--radius-lg: 16px;
	--max-width: 1180px;
	--color-border: #d4dbe4;
	--color-border-strong: #c1c9d3;
	--font-stack: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
	--shadow-sm: 0 1px 2px rgba(0,0,0,.08);
	--shadow-md: 0 6px 18px -4px rgba(0,0,0,.15);
	--gradient-primary: linear-gradient(90deg,#c01818,#d82626);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: var(--font-stack); background: var(--color-bg); color: var(--color-text); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

h1,h2,h3,h4 { font-weight:600; line-height:1.15; margin:0 0 .6em; }
p { line-height:1.55; margin:0 0 1em; }

ul { padding-left:1.1rem; }

.container { width:100%; max-width: var(--max-width); margin:0 auto; padding:0 1.25rem; }
.section { padding: clamp(3rem, 7vw, 6rem) 0; position:relative; }
.section.alt { background: var(--color-surface); }
.section.narrow { padding: clamp(2.5rem,6vw,4rem) 0; }

.flex { display:flex; gap:1.5rem; }
.grid { display:grid; gap:2rem; }

.btn { --btn-bg: var(--color-primary); --btn-color:#ffffff; background:var(--btn-bg); color:var(--btn-color); padding:.9rem 1.4rem; border-radius: var(--radius-md); font-weight:600; font-size:.95rem; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:.5rem; box-shadow: var(--shadow-sm); transition:.25s; }
.btn:hover { filter:brightness(1.05); box-shadow: var(--shadow-md); text-decoration:none; }
.btn.outline { background:transparent; color:var(--color-primary); border:2px solid var(--color-primary); }
.btn.outline:hover { background:var(--color-primary); color:#ffffff; }
.btn.dark { --btn-bg:#222630; --btn-color:#ffffff; }

.badge { display:inline-block; background:rgba(255,255,255,.07); padding:.35rem .65rem; font-size:.7rem; letter-spacing:.5px; text-transform:uppercase; border-radius:var(--radius-sm); font-weight:600; }

.text-center { text-align:center; }
.muted { color: var(--color-text-soft); }
.dim { color: #98a0ae; }

.hero {
	padding: clamp(6rem,12vw,10rem) 0 clamp(3rem,7vw,6rem);
	position:relative;
	overflow:hidden;
	color:#fff;
	background-color:#0f1115; /* fallback */
	min-height:60vh;
	/* Parallax background directly on element */
	background-image: var(--hero-bg);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	/* Fix: remover parallax para evitar mancha no header ao rolar */
	background-attachment: scroll;
}
.hero::after {
	content:"";
	position:absolute; inset:0;
	background: linear-gradient(to bottom, rgba(0,0,0,.55), rgba(0,0,0,.35) 35%, rgba(0,0,0,.55));
	z-index:0;
	pointer-events:none;
}
.hero > * { position: relative; z-index: 1; }
.hero h1 { font-size: clamp(2.2rem, 5vw, 3.2rem); color:#fff; background: none; -webkit-text-fill-color: initial; }
.hero p.lead { font-size: clamp(1.05rem,1.9vw,1.35rem); max-width: 720px; color:#f3f6fb; }

/* Ajuste solicitado: cor do texto dos botões dentro da seção hero */
.hero .btn { --btn-color:#ffffff; }
.hero .btn.dark { --btn-color:#ffffff; }

/* Improve readability on dark overlay */
.hero .tagline { color:#ffd2d2; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.hero h1, .hero p { text-shadow: 0 2px 12px rgba(0,0,0,.35); }

.cards { display:grid; gap:1.5rem; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); }
.card { background: var(--color-surface); border:1px solid var(--color-border); padding:1.25rem 1.15rem 1.4rem; border-radius: var(--radius-lg); position:relative; overflow:hidden; display:flex; flex-direction:column; gap:.65rem; box-shadow: var(--shadow-sm); }
.card.accent { border-color: var(--color-border-strong); background: var(--color-surface-alt); }
.card h3 { font-size:1.05rem; margin:0; }
.card p { font-size:.85rem; margin:0; }
.card .icon { width:42px; height:42px; border-radius:10px; background: #eef2f7; display:grid; place-items:center; font-size:1.15rem; color: var(--color-primary); }

.split { display:grid; gap:3rem; grid-template-columns: repeat(auto-fit,minmax(320px,1fr)); align-items:start; }
.flow > * + * { margin-top:1rem; }
.tagline { font-size:.8rem; letter-spacing: .5px; text-transform:uppercase; font-weight:600; color: var(--color-primary); }

.steps { counter-reset: step; display:grid; gap:1.5rem; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); }
.step { position:relative; padding:1.4rem 1.2rem 1.4rem 1.2rem; background: var(--color-surface); border:1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.step::before { counter-increment: step; content: counter(step); position:absolute; top:-14px; left:14px; background: var(--gradient-primary); color:#ffffff; width:36px; height:36px; display:grid; place-items:center; font-weight:700; border-radius:12px; box-shadow: var(--shadow-md); }
.step h3 { margin-top:.4rem; font-size:1rem; }
.step p { font-size:.8rem; }

.profile { display:grid; gap:2.5rem; grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); align-items:start; }
.profile-photo { width:180px; height:180px; border-radius:28px; background: var(--color-surface-alt); display:grid; place-items:center; font-size:3rem; font-weight:600; color:var(--color-primary); box-shadow: var(--shadow-md); }
.qual-list { list-style:none; margin:0; padding:0; display:grid; gap:.75rem; }
.qual-list li { display:flex; gap:.75rem; align-items:flex-start; font-size:.85rem; }
.qual-list li .icon { color: var(--color-primary); font-size:1.1rem; line-height:1.3; }

.service-cards { display:grid; gap:1.75rem; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); }
.service-card { background: var(--color-surface); border:1px solid var(--color-border); padding:1.4rem 1.25rem 1.6rem; border-radius: var(--radius-lg); display:flex; flex-direction:column; gap:.75rem; box-shadow: var(--shadow-sm); }
.service-card h3 { margin:.2rem 0 .2rem; font-size:1.05rem; }
.service-card p { font-size:.8rem; }
.service-card a { font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }

.blog-list { display:grid; gap:1.6rem; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); }
.blog-item { background: var(--color-surface); border:1px solid var(--color-border); padding:1.2rem 1rem 1.4rem; border-radius: var(--radius-lg); display:flex; flex-direction:column; gap:.6rem; box-shadow: var(--shadow-sm); }
.blog-item h3 { font-size: .95rem; margin:0 0 .1rem; }
.blog-item p { font-size:.75rem; }

.form-card { background: var(--color-surface); border:1px solid var(--color-border); padding:2rem 1.75rem 2.4rem; border-radius: var(--radius-lg); max-width:680px; margin:0 auto; box-shadow: var(--shadow-sm); }
.form-grid { display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.form-grid .full { grid-column:1 / -1; }
label { display:flex; flex-direction:column; gap:.4rem; font-size:.7rem; font-weight:600; letter-spacing:.5px; text-transform:uppercase; color: var(--color-text-soft); }
input, textarea { background:#ffffff; border:1px solid var(--color-border); border-radius: var(--radius-md); padding:.75rem .85rem; font:inherit; color:var(--color-text); resize:vertical; min-height:54px; }
input:focus, textarea:focus { outline:2px solid var(--color-primary); }
small.error { color: var(--color-danger); font-size:.65rem; font-weight:600; text-transform:uppercase; letter-spacing:.5px; display:none; }

.faq { max-width:860px; margin:0 auto; }
.accordion { list-style:none; padding:0; margin:0; display:grid; gap:.75rem; }
.accordion-item { border:1px solid var(--color-border); border-radius: var(--radius-md); overflow:hidden; background: var(--color-surface); box-shadow: var(--shadow-sm); }
.accordion-btn { width:100%; background:var(--color-surface); border:none; padding:1rem 1rem 1rem 3.2rem; text-align:left; color:var(--color-text); font:inherit; font-weight:600; position:relative; cursor:pointer; border-radius: var(--radius-md); transition:.25s; }
.accordion-btn:hover { background: var(--color-surface-alt); }
.accordion-btn:focus-visible { outline:2px solid var(--color-primary); outline-offset:2px; }
.accordion-btn::before { content:""; position:absolute; left:1rem; top:1.1rem; width:16px; height:16px; border:2px solid var(--color-primary); border-radius:5px; }
.accordion-btn::after { content:"+"; position:absolute; left:1.3rem; top:.9rem; font-weight:700; color: var(--color-primary); transition:.25s; }
.accordion-item.open .accordion-btn::after { transform:rotate(45deg); }
.accordion-panel { max-height:0; overflow:hidden; transition:max-height .45s ease; padding:0 1.25rem 0 3.2rem; }
.accordion-panel p { font-size:.8rem; }
.accordion-item.open .accordion-panel { padding:0 1.25rem 1rem 3.2rem; }

.site-header { position:sticky; top:0; backdrop-filter: blur(10px); background:rgba(255,255,255,.85); border-bottom:1px solid var(--color-border); z-index:50; }
.navbar { display:flex; align-items:center; justify-content:space-between; padding:.25rem 1.25rem; }
.logo { font-weight:700; letter-spacing:.5px; font-size:1.1rem; color: var(--color-text); }
.primary-nav { display:flex; gap:1.25rem; align-items:center; }
.primary-nav a { font-size:.75rem; text-transform:uppercase; letter-spacing:.5px; font-weight:600; color: var(--color-text-soft); }
.primary-nav a:hover { color: var(--color-text); }

.site-footer { background:#f0f4f9; border-top:1px solid var(--color-border); padding:3rem 0 2.5rem; font-size:.75rem; }
.footer-grid { display:grid; gap:2.5rem; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); }
.footer-col h4 { font-size:.75rem; text-transform:uppercase; letter-spacing:.5px; font-weight:600; margin:0 0 .9rem; color: var(--color-text-soft); }
.footer-col ul { list-style:none; margin:0; padding:0; display:grid; gap:.45rem; }
.footer-col a { color: var(--color-text-soft); }
.footer-col a:hover { color: var(--color-text); }
.copyright { margin-top:2.5rem; padding-top:1.25rem; border-top:1px solid var(--color-border); text-align:center; color: var(--color-text-dim); font-size:.65rem; }

/* Seção Sobre: ajustes específicos */
#sobre .card.accent {
	/* Borda mais fina (hairline em telas de alta densidade) */
	border-width: .5px;
}
#sobre .card.accent img {
	/* Garantir que a imagem encoste no topo do conteúdo do card (sem margem extra) */
	margin-top: 0;
	border-radius: 12px;
	display: block;
}

/* Seção Riscos: alinhar cards pela parte inferior e aumentar margem superior do grid */
#riscos .cards {
	/* empurra os cards para baixo visualmente */
	margin-top: clamp(1rem, 4vw, 3rem);
	/* garante alinhamento pela base da coluna ao lado da imagem */
	align-self: end;
}

@media (max-width: 860px) {
	#navToggle { display:inline-flex !important; }
	.primary-nav { position:absolute; top:100%; right:1rem; background:#ffffff; border:1px solid var(--color-border); padding:1rem 1.25rem 1.25rem; flex-direction:column; align-items:stretch; gap:.9rem; width: min(240px, 85vw); border-radius: var(--radius-md); box-shadow: var(--shadow-md); opacity:0; transform:translateY(-8px); pointer-events:none; transition:.28s ease; }
	.primary-nav.open { opacity:1; transform:translateY(0); pointer-events:auto; }
	.primary-nav a { font-size:.8rem; }
	.hero { text-align:center; }
	/* On mobile, disable background-attachment: fixed to avoid jank */
	.hero { background-attachment: scroll; }
	.profile-photo { margin:0 auto; }
}
