.sif {
	--sif-primary: #103b3a;
	--sif-primary-dark: #0b2b2a;
	--sif-accent: #c3a165;
	--sif-background: #f5f1e8;
	--sif-text: #1c2625;
	--sif-border: #d8e0dc;
	--sif-muted: #5c6b65;
	--sif-error: #a33a3a;
	--sif-success: #2f6a52;
	--sif-width: 720px;
	color: var(--sif-text);
	font-family: Manrope, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	margin: 1rem auto;
	max-width: min(100%, var(--sif-width));
	min-width: 0;
	overflow-wrap: anywhere;
}

.sif,
.sif * {
	box-sizing: border-box;
}

.sif__card {
	background: var(--sif-background);
	border: 1px solid var(--sif-border);
	border-radius: 6px;
	box-shadow: 0 18px 50px rgba(11, 43, 42, 0.14);
	max-width: 100%;
	padding: clamp(1.15rem, 4vw, 2rem);
}

.sif__header h2,
.sif__step h3 {
	color: var(--sif-primary);
	font-family: "Cormorant Garamond", Georgia, serif;
	line-height: 1.12;
	margin: 0 0 0.5rem;
}

.sif__header h2 { font-size: clamp(1.75rem, 6vw, 2.35rem); }
.sif__step h3 { font-size: clamp(1.5rem, 5vw, 2rem); }
.sif__header p,
.sif__description,
.sif__help { color: var(--sif-muted); }

.sif__step-text {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin-top: 1.25rem;
	text-transform: uppercase;
}

.sif__progress {
	background: var(--sif-border);
	border-radius: 99px;
	height: 4px;
	margin: 0.45rem 0 1.5rem;
	overflow: hidden;
}

.sif__progress span {
	background: var(--sif-accent);
	display: block;
	height: 100%;
	transition: width 0.22s ease;
}

.sif__step[hidden],
.sif__field[hidden] { display: none !important; }
.sif__field { margin: 0 0 1rem; min-width: 0; }

.sif label:not(.sif__option):not(.sif__check),
.sif legend {
	display: block;
	font-weight: 700;
	margin-bottom: 0.45rem;
}

.sif fieldset { border: 0; margin: 0; min-width: 0; padding: 0; }
.sif input:not([type="checkbox"]):not([type="radio"]),
.sif textarea,
.sif select {
	-webkit-appearance: none;
	appearance: none;
	background: #fff;
	border: 1px solid var(--sif-border);
	border-radius: 4px;
	color: var(--sif-text);
	font: inherit;
	max-width: 100%;
	min-width: 0;
	padding: 0.75rem;
	width: 100%;
}

.sif textarea { min-height: 120px; resize: vertical; }
.sif input:focus-visible,
.sif textarea:focus-visible,
.sif select:focus-visible,
.sif button:focus-visible {
	outline: 3px solid var(--sif-accent) !important;
	outline-offset: 2px;
}

.sif__options { display: grid; gap: 0.55rem; }
.sif__option {
	align-items: center;
	background: #fff;
	border: 1px solid var(--sif-border);
	border-radius: 4px;
	color: var(--sif-text);
	cursor: pointer;
	display: flex;
	font: inherit;
	gap: 0.65rem;
	line-height: 1.25;
	min-height: 48px;
	padding: 0.7rem 0.85rem;
	width: 100%;
}

.sif__option:has(input:checked) {
	border-color: var(--sif-accent);
	box-shadow: inset 3px 0 var(--sif-accent);
}

.sif__option input { accent-color: var(--sif-primary); flex: 0 0 auto; }
.sif__check { align-items: flex-start; display: flex; gap: 0.65rem; line-height: 1.25; }
.sif__check input { accent-color: var(--sif-primary); flex: 0 0 auto; margin-top: 0.2rem; }
.sif__notice { border-left: 3px solid var(--sif-accent); color: var(--sif-muted); font-size: 0.9rem; margin: 1rem 0; padding: 0.7rem 0.9rem; }
.sif__count { color: var(--sif-muted); display: block; font-size: 0.78rem; margin-top: 0.25rem; text-align: right; }
.sif__actions { display: flex; gap: 0.65rem; justify-content: flex-end; margin-top: 1.4rem; }

.sif .sif__next,
.sif .sif__submit,
.sif .sif__back {
	-webkit-appearance: none !important;
	appearance: none !important;
	border-radius: 3px !important;
	box-shadow: none !important;
	cursor: pointer;
	font-family: inherit !important;
	font-size: 0.9rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	min-height: 44px;
	padding: 0.7rem 1rem !important;
	text-decoration: none !important;
	text-transform: none !important;
}

.sif .sif__next,
.sif .sif__submit,
.sif .sif__next:hover,
.sif .sif__submit:hover,
.sif .sif__next:focus,
.sif .sif__submit:focus {
	background-color: var(--sif-primary) !important;
	border: 1px solid var(--sif-primary) !important;
	color: #fff !important;
}

.sif .sif__next:hover,
.sif .sif__submit:hover { background-color: var(--sif-primary-dark) !important; }
.sif .sif__back,
.sif .sif__back:hover,
.sif .sif__back:focus { background: transparent !important; border: 1px solid var(--sif-border) !important; color: var(--sif-muted) !important; }
.sif button:disabled { cursor: wait !important; opacity: 0.65 !important; }
.sif__errors { color: var(--sif-error); font-weight: 600; margin-top: 0.75rem; }
.sif__field-error { color: var(--sif-error); display: block; font-size: 0.84rem; font-weight: 600; margin-top: 0.35rem; }
.sif__field--error input:not([type="checkbox"]):not([type="radio"]),
.sif__field--error textarea,
.sif__field--error select,
.sif__field--error .sif__option,
.sif__field--error .sif__check { border-color: var(--sif-error) !important; }
.sif__hp { height: 0; left: -10000px; overflow: hidden; position: absolute; width: 0; }

.sif__review { background: #fff; border: 1px solid var(--sif-border); border-radius: 4px; max-width: 100%; padding: 0.9rem; }
.sif__review dl { display: grid; grid-template-columns: minmax(105px, 0.85fr) minmax(0, 1.6fr); margin: 0; }
.sif__review dt,
.sif__review dd { border-bottom: 1px solid var(--sif-border); margin: 0; min-width: 0; padding: 0.45rem; }
.sif__review dd { overflow-wrap: anywhere; }

/* O formulário parte do estado "com JavaScript": apenas a etapa atual, botão Continuar
   e Enviar oculto. Assim, otimizadores do host que adiam scripts (LiteSpeed, WP Rocket)
   não conseguem mais expor um botão de envio antes da lógica de etapas carregar.
   O fallback verdadeiro é aplicado pelo <noscript> impresso pelo Renderer. */
.sif__submit { display: none; }
.sif--last .sif__submit { display: inline-block; }
.sif--last .sif__next { display: none; }
.sif[data-step="0"] .sif__back { visibility: hidden; }

@media (max-width: 560px) {
	.sif { font-size: 15px; margin: 0; width: 100%; }
	.sif__card { border-radius: 4px; padding: 1rem; }
	.sif__actions { flex-direction: column-reverse; }
	.sif .sif__next,
	.sif .sif__submit,
	.sif .sif__back { width: 100%; }
	.sif__review { padding: 0.65rem; }
	.sif__review dl { grid-template-columns: 1fr; }
	.sif__review dt { border-bottom: 0; font-weight: 700; padding-bottom: 0; }
	.sif__review dd { padding-top: 0.1rem; }
}

@media (max-width: 375px) {
	.sif { font-size: 14px; }
	.sif__card { padding: 0.75rem; }
	.sif__option { gap: 0.5rem; padding: 0.65rem; }
	.sif__header h2 { font-size: 1.7rem; }
	.sif__step h3 { font-size: 1.45rem; }
}

@media (prefers-reduced-motion: reduce) {
	.sif * { scroll-behavior: auto !important; transition: none !important; }
}
