/* ==========================================================================
   Webooster — estilos do tema
   Cores, tipos e tamanhos vêm de theme.json (variáveis --wp--preset--*).
   Aqui ficam só os componentes que os blocos nativos não cobrem.
   ========================================================================== */

:root {
	--wb-radius-s: var(--wp--custom--radius--small, 12px);
	--wb-radius-m: var(--wp--custom--radius--medium, 20px);
	--wb-radius-l: var(--wp--custom--radius--large, 28px);
	--wb-radius-pill: var(--wp--custom--radius--pill, 999px);
}

body {
	-webkit-font-smoothing: antialiased;
}

/* ---------- Secções ---------- */

.wb-section {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--70);
}

.wb-section.is-compact {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}

.wb-section > * + .wp-block-columns,
.wb-section > * + .wb-grid {
	margin-top: var(--wp--preset--spacing--60);
}

/* ---------- Texto ---------- */

.is-style-eyebrow {
	margin-bottom: 0.75rem;
	color: var(--wp--preset--color--primary);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.wb-lead {
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.65;
	max-width: 36em;
}

/* Especificidade baixa (:where) para que secções escuras e cores escolhidas no editor prevaleçam. */
.wb-muted,
:where(.wb-section) :where(p:not([class*="-color"]):not(.is-style-eyebrow)) {
	color: var(--wp--preset--color--text);
}

.wb-checks {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	padding-left: 0;
	list-style: none;
	font-size: var(--wp--preset--font-size--small);
}

.wb-checks li::before {
	content: "✓ ";
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

/* ---------- Botões ---------- */

.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1px solid #c9d9e8;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
}

/* ---------- Imagens ---------- */

.wb-media img {
	display: block;
	width: 100%;
	height: clamp(280px, 40vw, 520px);
	border-radius: var(--wb-radius-l);
	object-fit: cover;
	background: var(--wp--preset--color--placeholder);
}

/* ---------- Cartões ---------- */

.wb-card {
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 24px;
	background: var(--wp--preset--color--base);
}

.wb-card > .wp-block-image {
	margin: 0;
}

.wb-card > .wp-block-image img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
	background: var(--wp--preset--color--placeholder);
}

.wb-card__body {
	padding: 1.75rem;
}

.wb-card__body > * + * {
	margin-top: 0.875rem;
}

.wb-card-soft {
	padding: 1.75rem;
	border-radius: var(--wb-radius-m);
	background: var(--wp--preset--color--base);
}

.wb-card-soft > * + * {
	margin-top: 0.75rem;
}

.wb-step {
	margin: 0;
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.9375rem;
	font-weight: 800;
}

/* ---------- Secção escura ---------- */

.wb-section-dark h2,
.wb-section-dark h3 {
	color: var(--wp--preset--color--base);
}

.wb-section-dark p:not(.is-style-eyebrow),
.wb-section-dark li {
	color: var(--wp--preset--color--on-dark);
}

.wb-section-dark .is-style-eyebrow {
	color: var(--wp--preset--color--accent-on-dark);
}

.wb-card-dark {
	padding: 1.75rem;
	border: 1px solid var(--wp--preset--color--line-on-dark);
	border-radius: var(--wb-radius-m);
}

.wb-card-dark > * + * {
	margin-top: 0.625rem;
}

/* ---------- Logótipos de parceiros ---------- */

.wb-logos {
	gap: 1rem;
}

.wb-logos .wp-block-image {
	margin: 0;
}

.wb-logos img {
	display: block;
	width: 100%;
	height: 72px;
	padding: 0.75rem 1rem;
	border: 1px dashed #c9d9e8;
	border-radius: 14px;
	object-fit: contain;
	box-sizing: border-box;
}

/* ---------- Contactos ---------- */

.wb-contact-list {
	padding-left: 0;
	list-style: none;
}

.wb-contact-list li + li {
	margin-top: 1rem;
}

.wb-contact-list strong {
	display: block;
	color: var(--wp--preset--color--muted);
	font-size: 0.8125rem;
	font-weight: 600;
}

.wb-panel {
	padding: clamp(1.5rem, 4vw, 2.25rem);
	border-radius: 24px;
	background: var(--wp--preset--color--base);
}

/* ---------- Cabeçalho e rodapé ---------- */

.wb-header {
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.wb-header .wp-block-site-title a {
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

.wb-header .wp-block-navigation a {
	color: var(--wp--preset--color--ink);
	font-weight: 500;
	text-decoration: none;
}

.wb-header .wp-block-navigation a:hover {
	color: var(--wp--preset--color--primary);
}

.wb-footer,
.wb-footer p {
	color: var(--wp--preset--color--on-dark);
	font-size: var(--wp--preset--font-size--small);
}

.wb-footer .wp-block-site-title a {
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

/* ---------- Telemóvel ---------- */

@media (max-width: 781px) {
	.wb-media img {
		height: 280px;
	}

	.wb-logos.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.wb-logos.wp-block-columns > .wp-block-column {
		flex: 0 0 calc(50% - 0.5rem) !important;
	}
}

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

html {
	scroll-behavior: smooth;
}
