/* =========================================================
   Fidei Landing Blocks — Design System
   ========================================================= */
:root {
	--flp-green:        #16a34a;
	--flp-green-light:  #22c55e;
	--flp-green-dim:    rgba(22,163,74,0.07);
	--flp-green-border: rgba(22,163,74,0.18);
	--flp-bg:           #f9fdf9;
	--flp-bg2:          #ffffff;
	--flp-bg3:          #f0f7f0;
	--flp-border:       rgba(0,0,0,0.07);
	--flp-text:         #0d1a0f;
	--flp-text2:        #374151;
	--flp-text3:        #6b7280;
}

body.fidei-lp-body {
	font-family: 'Inter', sans-serif;
	background: var(--flp-bg);
	color: var(--flp-text);
	overflow-x: hidden;
	margin: 0; padding: 0;
}
body.fidei-lp-body::before {
	content: '';
	position: fixed; inset: 0;
	background-image:
		linear-gradient(rgba(22,163,74,0.025) 1px, transparent 1px),
		linear-gradient(90deg, rgba(22,163,74,0.025) 1px, transparent 1px);
	background-size: 48px 48px;
	pointer-events: none; z-index: 0;
}
#fidei-lp-page { position: relative; z-index: 1; }

/* --- Layout containers --- */
.flp-container    { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
.flp-container-sm { max-width: 800px;  margin: 0 auto; padding: 0 24px; }
.flp-container-md { max-width: 900px;  margin: 0 auto; padding: 0 24px; }
.flp-container-form { max-width: 600px; margin: 0 auto; padding: 0 24px; }

/* --- NAV --- */
.flp-nav {
	position: sticky; top: 0; z-index: 50;
	border-bottom: 1px solid var(--flp-border);
	backdrop-filter: blur(16px);
	background: rgba(249,253,249,0.88);
}
.flp-nav-inner {
	display: flex; justify-content: space-between; align-items: center;
	padding: 16px 24px;
}
.flp-logo { display: flex; align-items: center; gap: 10px; }
.flp-logo-img { height: 36px; width: auto; object-fit: contain; display: block; }
.flp-logo-icon {
	width: 36px; height: 36px; background: #000; border-radius: 8px;
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 16px; color: #fff;
}
.flp-logo-bracket { color: #22c55e; font-size: 12px; }
.flp-site-name { font-size: 18px; font-weight: 700; color: var(--flp-text); }
.flp-site-name .flp-accent { color: var(--flp-green); }
.flp-nav-cta {
	background: var(--flp-green); color: #fff; font-weight: 700; font-size: 13px;
	padding: 9px 22px; border-radius: 999px; text-decoration: none;
	box-shadow: 0 2px 12px rgba(22,163,74,0.22); transition: background .2s;
}
.flp-nav-cta:hover { background: #15803d; color: #fff; }

/* --- HERO --- */
.flp-hero {
	position: relative; padding: 88px 24px 104px;
	background:
		radial-gradient(ellipse 55% 60% at 15% 50%, rgba(22,163,74,0.07) 0%, transparent 65%),
		radial-gradient(ellipse 45% 50% at 85% 30%, rgba(22,163,74,0.05) 0%, transparent 60%);
}
.flp-hero-grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center;
	position: relative; z-index: 1;
}
.flp-hero-badges { display: flex; align-items: center; gap: 10px; margin-bottom: 28px; flex-wrap: wrap; }
.flp-scan-badge {
	display: inline-flex; align-items: center; gap: 8px;
	background: var(--flp-green-dim); border: 1px solid var(--flp-green-border);
	border-radius: 999px; padding: 6px 16px;
	font-size: 11px; font-weight: 600; letter-spacing: .1em;
	text-transform: uppercase; color: var(--flp-green);
}
.flp-pulse-dot {
	width: 7px; height: 7px; border-radius: 50%; background: var(--flp-green-light);
	animation: flp-pulse 2s infinite; flex-shrink: 0;
}
@keyframes flp-pulse {
	0%,100% { box-shadow: 0 0 0 0 rgba(34,197,94,.5); transform: scale(.95); }
	70%      { box-shadow: 0 0 0 8px rgba(34,197,94,0); transform: scale(1); }
}
.flp-br-tag {
	display: inline-flex; align-items: center; gap: 6px;
	background: rgba(0,120,50,.08); border: 1px solid rgba(0,120,50,.2);
	color: #15803d; border-radius: 999px; padding: 4px 12px;
	font-size: 11px; font-weight: 600; letter-spacing: .05em;
}
.flp-hero-h1 {
	font-size: clamp(34px,5vw,60px); font-weight: 700; line-height: 1.1;
	margin: 0 0 24px; color: var(--flp-text);
}
.flp-serif-accent { font-family: 'DM Serif Display', serif; color: var(--flp-green); font-style: italic; }
.flp-hero-desc { font-size: 17px; color: var(--flp-text2); line-height: 1.75; margin: 0 0 32px; }
.flp-hero-cta {
	display: inline-block; background: var(--flp-green); color: #fff;
	font-weight: 700; font-size: 16px; padding: 18px 36px; border-radius: 12px;
	text-decoration: none; box-shadow: 0 4px 24px rgba(22,163,74,0.28); transition: background .2s;
}
.flp-hero-cta:hover { background: #15803d; color: #fff; }
.flp-hero-cta-note { font-size: 12px; color: var(--flp-text3); margin: 10px 0 0; }
.flp-hero-right { display: flex; flex-direction: column; gap: 14px; }
.flp-editorial-quote {
	border-left: 3px solid var(--flp-green); padding: 20px 24px;
	background: var(--flp-green-dim); border-radius: 0 16px 16px 0;
}
.flp-editorial-quote p { font-size: 15px; color: var(--flp-text2); line-height: 1.75; font-style: italic; margin: 0; }
.flp-mini-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.flp-mini-card {
	background: var(--flp-bg2); border: 1px solid var(--flp-border);
	border-radius: 16px; padding: 18px; text-align: center;
	box-shadow: 0 1px 8px rgba(0,0,0,0.04); transition: box-shadow .2s, border-color .2s;
}
.flp-mini-card:hover { border-color: var(--flp-green-border); box-shadow: 0 4px 20px rgba(22,163,74,0.1); }
.flp-mini-card-val { font-size: 26px; font-weight: 700; color: var(--flp-green); font-family: 'DM Serif Display', serif; }
.flp-mini-card-lbl { font-size: 12px; color: var(--flp-text3); margin-top: 4px; text-transform: uppercase; letter-spacing: .06em; }

/* --- SEPARATOR --- */
.flp-sep { border: none; border-top: 1px solid var(--flp-border); margin: 0; }

/* --- SECTIONS --- */
.flp-section     { padding: 80px 24px; }
.flp-section-alt { padding: 80px 24px; background: var(--flp-bg3); }
.flp-section-header { text-align: center; margin-bottom: 56px; }
.flp-eyebrow { font-family: 'Fira Code', monospace; font-size: 11px; color: rgba(22,163,74,.6); margin-bottom: 10px; display: block; }
.flp-h2 { font-size: clamp(26px,4vw,42px); font-weight: 700; margin: 0 0 14px; color: var(--flp-text); line-height: 1.2; }
.flp-h2-sm { font-size: clamp(26px,4vw,38px); font-weight: 700; margin: 0 0 10px; color: var(--flp-text); line-height: 1.2; }
.flp-desc { font-size: 15px; color: var(--flp-text2); line-height: 1.75; margin: 0; }
.flp-desc-sm { font-size: 14px; color: var(--flp-text2); line-height: 1.65; margin: 0 0 48px; }

/* --- DEMOCRATIZAÇÃO --- */
.flp-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.flp-cards-col { display: flex; flex-direction: column; gap: 16px; }
.flp-card {
	background: var(--flp-bg2); border: 1px solid var(--flp-border);
	border-radius: 24px; box-shadow: 0 2px 16px rgba(0,0,0,0.04);
	transition: border-color .25s, transform .25s, box-shadow .25s;
	padding: 24px; display: flex; gap: 16px; align-items: flex-start;
}
.flp-card:hover { border-color: var(--flp-green-border); transform: translateY(-4px); box-shadow: 0 8px 32px rgba(22,163,74,0.1); }
.flp-card-icon { font-size: 28px; flex-shrink: 0; }
.flp-card-title { font-size: 15px; font-weight: 700; margin: 0 0 6px; color: var(--flp-text); }
.flp-card-text { font-size: 13px; color: var(--flp-text2); line-height: 1.6; margin: 0; }

/* --- SOFTWARE LIVRE --- */
.flp-compare-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; max-width: 800px; margin: 0 auto 48px; }
.flp-compare-no  { background: rgba(254,242,242,1); border: 1px solid rgba(252,165,165,0.4); border-radius: 20px; padding: 28px; }
.flp-compare-yes { background: rgba(240,253,244,1); border: 1px solid rgba(22,163,74,0.2);  border-radius: 20px; padding: 28px; }
.flp-compare-header { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 16px; }
.flp-compare-no  .flp-compare-header { color: #b91c1c; }
.flp-compare-yes .flp-compare-header { color: #15803d; }
.flp-compare-list { list-style: none; display: flex; flex-direction: column; gap: 10px; padding: 0; margin: 0; }
.flp-compare-list li { font-size: 13px; color: var(--flp-text2); display: flex; gap: 8px; align-items: flex-start; }
.flp-no-icon  { color: #ef4444; flex-shrink: 0; font-weight: 700; }
.flp-yes-icon { color: var(--flp-green); flex-shrink: 0; font-weight: 700; }
.flp-italic-note { font-size: 14px; color: var(--flp-text3); font-style: italic; max-width: 520px; margin: 0 auto; line-height: 1.7; text-align: center; }

/* --- PROCESSO --- */
.flp-steps { display: flex; flex-direction: column; }
.flp-step { display: flex; gap: 20px; align-items: stretch; }
.flp-step-left { display: flex; flex-direction: column; align-items: center; }
.flp-step-num {
	width: 44px; height: 44px; border-radius: 50%;
	background: var(--flp-green-dim); border: 1.5px solid var(--flp-green-border);
	display: flex; align-items: center; justify-content: center;
	color: var(--flp-green); font-weight: 700; font-size: 17px;
	font-family: 'DM Serif Display', serif; flex-shrink: 0;
}
.flp-step-line {
	width: 1.5px; flex: 1;
	background: linear-gradient(to bottom,rgba(22,163,74,.3),transparent);
	margin-top: 8px; min-height: 24px;
}
.flp-step-content { padding: 4px 0 32px; }
.flp-step-last .flp-step-content { padding-bottom: 0; }
.flp-step-title { font-size: 15px; font-weight: 700; margin: 0 0 6px; color: var(--flp-text); }
.flp-step-text  { font-size: 13px; color: var(--flp-text2); line-height: 1.65; margin: 0; }

/* --- CREDENCIAIS --- */
.flp-stats-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 32px; }
.flp-stat-val { font-size: 42px; font-weight: 700; color: var(--flp-green); line-height: 1; font-family: 'DM Serif Display', serif; }
.flp-stat-lbl { font-size: 12px; color: var(--flp-text3); margin-top: 6px; text-transform: uppercase; letter-spacing: .07em; }

/* --- CONTATO / FORM --- */
.flp-form-card {
	background: var(--flp-bg2); border: 1px solid var(--flp-border);
	border-radius: 28px; padding: 36px; box-shadow: 0 2px 16px rgba(0,0,0,0.04);
}
.flp-form { display: flex; flex-direction: column; gap: 16px; }
.flp-form-group label {
	font-size: 12px; color: var(--flp-text3); display: block; margin-bottom: 6px;
	letter-spacing: .05em; text-transform: uppercase; font-weight: 600;
}
.flp-field {
	background: var(--flp-bg3); border: 1px solid rgba(0,0,0,0.09);
	border-radius: 12px; padding: 14px 16px;
	color: var(--flp-text); font-family: 'Inter', sans-serif;
	font-size: 14px; width: 100%; outline: none;
	transition: border-color .2s, box-shadow .2s; box-sizing: border-box;
}
.flp-field:focus { border-color: var(--flp-green); box-shadow: 0 0 0 3px rgba(22,163,74,0.1); }
.flp-field::placeholder { color: var(--flp-text3); }
.flp-btn-primary {
	background: var(--flp-green); color: #fff; font-weight: 700; font-size: 15px;
	padding: 16px 32px; border-radius: 12px; border: none; cursor: pointer; width: 100%;
	transition: background .2s, transform .15s, box-shadow .2s;
	font-family: 'Inter', sans-serif; box-shadow: 0 4px 20px rgba(22,163,74,0.25);
}
.flp-btn-primary:hover { background: #15803d; transform: scale(1.01); box-shadow: 0 6px 28px rgba(22,163,74,0.35); }
.flp-form-note { font-size: 11px; color: var(--flp-text3); text-align: center; margin-top: 10px; }
.flp-form-links {
	margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--flp-border);
	display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap;
}
.flp-form-links span { font-size: 12px; color: var(--flp-text3); }
.flp-form-links a { font-size: 13px; color: var(--flp-green); text-decoration: none; font-weight: 600; }
.flp-form-links a:hover { text-decoration: underline; }

/* --- CF7 — mesma estética do formulário nativo --- */
.flp-form-cf7 .wpcf7-form {
	display: flex; flex-direction: column; gap: 16px;
}
.flp-form-cf7 .wpcf7-form > p { margin: 0; }
.flp-form-cf7 label {
	font-size: 12px; color: var(--flp-text3); display: block; margin-bottom: 6px;
	letter-spacing: .05em; text-transform: uppercase; font-weight: 600;
}
.flp-form-cf7 input:not([type="submit"]),
.flp-form-cf7 textarea,
.flp-form-cf7 select {
	background: var(--flp-bg3); border: 1px solid rgba(0,0,0,0.09);
	border-radius: 12px; padding: 14px 16px;
	color: var(--flp-text); font-family: 'Inter', sans-serif;
	font-size: 14px; width: 100%; outline: none;
	transition: border-color .2s, box-shadow .2s; box-sizing: border-box;
}
.flp-form-cf7 input:not([type="submit"]):focus,
.flp-form-cf7 textarea:focus,
.flp-form-cf7 select:focus {
	border-color: var(--flp-green); box-shadow: 0 0 0 3px rgba(22,163,74,0.1);
}
.flp-form-cf7 input:not([type="submit"])::placeholder,
.flp-form-cf7 textarea::placeholder { color: var(--flp-text3); }
.flp-form-cf7 textarea { resize: vertical; }
.flp-form-cf7 input[type="submit"],
.flp-form-cf7 .wpcf7-submit {
	background: var(--flp-green); color: #fff; font-weight: 700; font-size: 15px;
	padding: 16px 32px; border-radius: 12px; border: none; cursor: pointer; width: 100%;
	transition: background .2s, transform .15s, box-shadow .2s;
	font-family: 'Inter', sans-serif; box-shadow: 0 4px 20px rgba(22,163,74,0.25);
}
.flp-form-cf7 input[type="submit"]:hover,
.flp-form-cf7 .wpcf7-submit:hover {
	background: #15803d; transform: scale(1.01); box-shadow: 0 6px 28px rgba(22,163,74,0.35);
}
.flp-form-cf7 .wpcf7-not-valid-tip {
	font-size: 11px; color: #ef4444; margin-top: 4px; display: block;
}
.flp-form-cf7 .wpcf7-response-output {
	font-size: 13px; border-radius: 8px; padding: 10px 14px; margin: 8px 0 0; border: 1px solid;
}
.flp-form-cf7 .wpcf7-form.sent .wpcf7-response-output {
	background: var(--flp-green-dim); border-color: var(--flp-green-border); color: #15803d;
}
.flp-form-cf7 .wpcf7-form.failed .wpcf7-response-output,
.flp-form-cf7 .wpcf7-form.invalid .wpcf7-response-output {
	background: rgba(254,242,242,1); border-color: rgba(252,165,165,0.4); color: #b91c1c;
}

/* --- FOOTER --- */
.flp-footer { border-top: 1px solid var(--flp-border); padding: 32px 24px; background: var(--flp-bg2); }
.flp-footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.flp-footer-logo { display: flex; align-items: center; gap: 10px; }
.flp-footer-logo-icon {
	width: 30px; height: 30px; background: #000; border-radius: 6px;
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 13px; color: #fff;
}
.flp-footer-site-name { font-size: 15px; font-weight: 700; color: var(--flp-text); }
.flp-footer-copy  { font-size: 12px; color: var(--flp-text3); }
.flp-footer-email { font-size: 12px; color: var(--flp-green); text-decoration: none; }
.flp-footer-email:hover { text-decoration: underline; }

/* --- REVEAL ANIMATION --- */
.flp-reveal { opacity: 0; transform: translateY(20px); transition: opacity .65s, transform .65s; }
.flp-reveal.flp-visible { opacity: 1; transform: none; }

/* --- RESPONSIVE --- */
@media (max-width: 768px) {
	.flp-hero-grid,
	.flp-two-col,
	.flp-compare-grid { grid-template-columns: 1fr; gap: 32px; }
	.flp-hero  { padding: 48px 16px 64px; }
	.flp-section, .flp-section-alt { padding: 48px 16px; }
	.flp-mini-cards { grid-template-columns: 1fr 1fr; }
	.flp-stats-grid { grid-template-columns: 1fr 1fr; }
}

/* --- EDITOR PREVIEW WRAPPER --- */
.wp-block[data-type^="fidei/lp-"] .components-placeholder { min-height: 80px; }
