/* --------------------------------------------------------------------------
   Versátil Pro — Estilos dos shortcodes e blocos
   Carregado apenas quando algum componente [vsp_*] é usado na página.
   Todas as cores herdam as variáveis do tema (--vsp-*), então o resultado
   acompanha a paleta escolhida no painel e o modo escuro sem regras extras.
   -------------------------------------------------------------------------- */

.vsp-sc-posts,
.vsp-sc-cards,
.vsp-sc-contact {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(var(--vsp-sc-cols, 3), minmax(0, 1fr));
	margin: 24px 0;
}

.vsp-sc-posts--list {
	grid-template-columns: 1fr;
}

@media (max-width: 900px) {
	.vsp-sc-posts,
	.vsp-sc-cards,
	.vsp-sc-contact {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.vsp-sc-posts,
	.vsp-sc-cards,
	.vsp-sc-contact {
		grid-template-columns: 1fr;
	}
}

/* -------------------------------------------------------------- Cards */
.vsp-sc-card {
	display: block;
	padding: 22px;
	border: 1px solid var(--vsp-border, #dfe6ee);
	border-radius: var(--vsp-radius, 14px);
	background: var(--vsp-surface-2, #fff);
	color: inherit;
	box-shadow: var(--vsp-shadow-sm, 0 1px 2px rgba(16, 20, 25, .04));
}

.vsp-sc-card--link {
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.vsp-sc-card--link:hover,
.vsp-sc-card--link:focus-visible {
	transform: translateY(-3px);
	border-color: color-mix(in srgb, var(--vsp-primary, #2f6f8f) 35%, transparent);
	box-shadow: var(--vsp-shadow-md, 0 10px 24px rgba(16, 20, 25, .10));
}

.vsp-sc-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin-bottom: 12px;
	border-radius: 12px;
	background: color-mix(in srgb, var(--vsp-primary, #2f6f8f) 10%, transparent);
	color: var(--vsp-primary, #2f6f8f);
}

.vsp-sc-card__title {
	margin: 0 0 6px;
	font-size: 1.05rem;
	line-height: 1.35;
}

.vsp-sc-card__text {
	margin: 0;
	color: var(--vsp-muted, #5b6875);
	font-size: .95rem;
	line-height: 1.6;
}

.vsp-sc-card__text > :last-child {
	margin-bottom: 0;
}

/* ------------------------------------------------------------ Botões */
.vsp-sc-btn {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 12px 22px;
	border: 2px solid transparent;
	border-radius: 999px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}

.vsp-sc-btn:hover,
.vsp-sc-btn:focus-visible {
	transform: translateY(-2px);
}

.vsp-sc-btn--sm { padding: 8px 16px; font-size: .9rem; }
.vsp-sc-btn--lg { padding: 15px 30px; font-size: 1.05rem; }

.vsp-sc-btn--primary {
	background: var(--vsp-primary, #2f6f8f);
	border-color: var(--vsp-primary, #2f6f8f);
	color: #fff;
}

.vsp-sc-btn--primary:hover,
.vsp-sc-btn--primary:focus-visible {
	background: var(--vsp-primary-dk, #1f4d66);
	border-color: var(--vsp-primary-dk, #1f4d66);
	color: #fff;
}

.vsp-sc-btn--ghost {
	background: transparent;
	border-color: var(--vsp-primary, #2f6f8f);
	color: var(--vsp-primary, #2f6f8f);
}

.vsp-sc-btn--ghost:hover,
.vsp-sc-btn--ghost:focus-visible {
	background: var(--vsp-primary, #2f6f8f);
	color: #fff;
}

.vsp-sc-btn--soft {
	background: color-mix(in srgb, var(--vsp-primary, #2f6f8f) 12%, transparent);
	color: var(--vsp-primary, #2f6f8f);
}

.vsp-sc-btn--wa {
	background: #25d366;
	border-color: #25d366;
	color: #0b2e18;
}

.vsp-sc-btn--wa:hover,
.vsp-sc-btn--wa:focus-visible {
	background: #1fb955;
	border-color: #1fb955;
	color: #0b2e18;
}

/* ------------------------------------------------------------- Ícone */
.vsp-sc-icon {
	vertical-align: -0.15em;
}

/* ------------------------------------------------------------ Seções */
.vsp-sc-section {
	margin: 32px 0;
	padding: 0;
}

.vsp-sc-section--soft {
	padding: 32px;
	border-radius: var(--vsp-radius-lg, 18px);
	background: var(--vsp-surface, #f4f7fa);
}

.vsp-sc-section--center {
	text-align: center;
}

.vsp-sc-section--center .vsp-sc-section__body {
	margin-inline: auto;
}

.vsp-sc-section__head {
	margin-bottom: 18px;
}

.vsp-sc-section__kicker {
	display: inline-block;
	margin-bottom: 8px;
	color: var(--vsp-primary, #2f6f8f);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.vsp-sc-section__title {
	margin: 0;
	line-height: 1.25;
}

/* ----------------------------------------------------------- Contato */
.vsp-sc-contact__item {
	padding: 20px;
	border: 1px solid var(--vsp-border, #dfe6ee);
	border-radius: var(--vsp-radius, 14px);
	background: var(--vsp-surface-2, #fff);
}

.vsp-sc-contact__icon {
	display: inline-flex;
	margin-bottom: 10px;
	color: var(--vsp-primary, #2f6f8f);
}

.vsp-sc-contact__label {
	margin: 0 0 4px;
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--vsp-muted, #5b6875);
}

.vsp-sc-contact__value {
	font-size: 1rem;
	line-height: 1.55;
	overflow-wrap: anywhere;
}

.vsp-sc-contact__value a {
	color: inherit;
	text-decoration: none;
}

.vsp-sc-contact__value a:hover {
	text-decoration: underline;
}

/* --------------------------------------------------------------- FAQ */
.vsp-sc-faq {
	margin: 28px 0;
}

.vsp-sc-faq__title {
	margin: 0 0 14px;
}

.vsp-sc-faq__item {
	border: 1px solid var(--vsp-border, #dfe6ee);
	border-radius: var(--vsp-radius, 14px);
	background: var(--vsp-surface-2, #fff);
	margin-bottom: 10px;
	overflow: hidden;
}

.vsp-sc-faq__item > summary {
	padding: 16px 20px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
	position: relative;
	padding-right: 46px;
}

.vsp-sc-faq__item > summary::-webkit-details-marker {
	display: none;
}

.vsp-sc-faq__item > summary::after {
	content: "";
	position: absolute;
	right: 20px;
	top: 50%;
	width: 9px;
	height: 9px;
	margin-top: -6px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform .2s ease;
	opacity: .6;
}

.vsp-sc-faq__item[open] > summary::after {
	transform: rotate(-135deg);
	margin-top: -2px;
}

.vsp-sc-faq__item > summary:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--vsp-primary, #2f6f8f) 45%, transparent);
	outline-offset: -3px;
}

.vsp-sc-faq__answer {
	padding: 0 20px 18px;
	color: var(--vsp-muted, #5b6875);
	line-height: 1.65;
}

.vsp-sc-faq__answer > :last-child {
	margin-bottom: 0;
}

/* ---------------------------------------------------------- Glossário */
.vsp-sc-glossary {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(var(--vsp-sc-cols, 3), minmax(0, 1fr));
	list-style: none;
	margin: 24px 0;
	padding: 0;
}

@media (max-width: 700px) {
	.vsp-sc-glossary {
		grid-template-columns: 1fr;
	}
}

.vsp-sc-glossary__item {
	padding: 14px 16px;
	border: 1px solid var(--vsp-border, #dfe6ee);
	border-radius: var(--vsp-radius-sm, 10px);
	background: var(--vsp-surface-2, #fff);
}

.vsp-sc-glossary__item > a {
	display: block;
	font-weight: 700;
	color: inherit;
	text-decoration: none;
}

.vsp-sc-glossary__item > a:hover {
	color: var(--vsp-primary, #2f6f8f);
}

.vsp-sc-glossary__def {
	display: block;
	margin-top: 4px;
	color: var(--vsp-muted, #5b6875);
	font-size: .9rem;
	line-height: 1.5;
}



/* ---------------------------------------- Frase do Dia do autor */
.vsp-sc-daily-phrase {
	position: relative;
	overflow: hidden;
	width: 100%;
	padding: 20px 22px;
	border: 1px solid var(--vsp-border, #dfe6ee);
	border-radius: max(var(--vsp-radius, 14px), 18px);
	background:
		linear-gradient(145deg, color-mix(in srgb, var(--vsp-text, #1f2328) 2.8%, transparent), color-mix(in srgb, var(--vsp-text, #1f2328) 1.2%, transparent)),
		var(--vsp-surface, #f4f7fa);
	box-shadow: 0 14px 42px color-mix(in srgb, #000 14%, transparent);
}
.vsp-sc-daily-phrase::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 2px;
	background: linear-gradient(var(--vsp-primary, #2f6f8f), var(--vsp-accent, #2d8a78));
}
.vsp-sc-daily-phrase__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 8px;
}
.vsp-sc-daily-phrase__label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--vsp-primary, #2f6f8f);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .11em;
	text-transform: uppercase;
}
.vsp-sc-daily-phrase__label i {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--vsp-primary, #2f6f8f);
	box-shadow: 0 0 0 5px color-mix(in srgb, var(--vsp-primary, #2f6f8f) 7%, transparent);
}
.vsp-sc-daily-phrase__date {
	color: var(--vsp-muted, #5b6470);
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}
.vsp-sc-daily-phrase__quote {
	margin: 0;
	max-width: 64ch;
	color: var(--vsp-text, #1f2328);
	font-family: var(--vsp-font-heading, inherit);
	font-size: clamp(18px, 2.1vw, 22px);
	font-weight: 500;
	line-height: 1.55;
}
.vsp-sc-daily-phrase__author {
	display: inline-flex;
	margin-top: 12px;
	color: var(--vsp-primary, #2f6f8f);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
}
@media (max-width: 520px) {
	.vsp-sc-daily-phrase { padding: 18px; }
	.vsp-sc-daily-phrase__top { align-items: flex-start; }
	.vsp-sc-daily-phrase__date { font-size: 11px; }
}

/* ------------------------------------------- Prévia no editor de blocos */
.vsp-block-preview {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 16px 18px;
	border: 1px dashed #c3ccd8;
	border-radius: 12px;
	background: #f6f9fc;
	color: #1f2937;
	font-size: 13px;
	line-height: 1.5;
}

.vsp-block-preview__icon {
	flex: 0 0 auto;
	color: #2f6f8f;
}

.vsp-block-preview__name {
	display: block;
	font-weight: 700;
	margin-bottom: 2px;
}

.vsp-block-preview__desc {
	color: #5b6875;
}

@media (prefers-reduced-motion: reduce) {
	.vsp-sc-card--link,
	.vsp-sc-btn {
		transition: none;
	}

	.vsp-sc-card--link:hover,
	.vsp-sc-btn:hover {
		transform: none;
	}
}
