:root {
	--dr-outline: 3px solid var(--dr-color-text);
	--dr-header-height: 4.75rem;
	--dr-shadow-sm: var(--dr-shadow-2);
	--dr-shadow-lg: var(--dr-shadow-4);
	--dr-radius-sm: var(--dr-radius-2);
	--dr-radius-md: var(--dr-radius-4);
	--dr-radius-lg: var(--dr-radius-5);
	--dr-section-space: var(--dr-space-section);
	--dr-home-card-border: color-mix(in srgb, var(--dr-color-border) 78%, transparent);
	--dr-home-card-shadow: 0 1px 2px rgba(13, 14, 17, 0.04), 0 0.75rem 2rem rgba(13, 14, 17, 0.045);
	--dr-display-1: clamp(3rem, 2rem + 4vw, 4.75rem);
	--dr-display-2: clamp(2.25rem, 1.75rem + 2.1vw, 3.5rem);
	--dr-tracking-display-1: -0.055em;
	--dr-tracking-display-2: -0.045em;
	--dr-leading-display-1: 1;
	--dr-leading-display-2: 1.06;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	/* clip, nunca hidden: overflow-x hidden computa overflow-y auto e faz o
	 * body virar scroll container — o position: sticky do header deixa de
	 * engatar (o viewport é quem rola). clip corta sem criar scroller. */
	overflow-x: clip;
}

img {
	height: auto;
	max-width: 100%;
}

:focus-visible {
	outline: var(--dr-outline);
	outline-offset: 3px;
}

.site-header {
	--dr-header-btn-height: 3.125rem;
	/* Nunca usar backdrop-filter aqui: cria containing block e aprisiona o
	 * overlay `position: fixed` do menu mobile dentro da barra do header
	 * (o bg é opaco, então o blur nem era visível). */
	background: var(--dr-color-ink-900);
	color: var(--dr-color-text-inverse);
	min-height: var(--dr-header-height);
	padding-block: var(--dr-space-1);
	/* Sem min-height na transition (anima layout — jank); background-color
	 * suaviza a troca transparente→escuro do header da home. */
	transition:
		background-color var(--dr-duration-normal) var(--dr-ease-standard),
		box-shadow var(--dr-duration-normal) var(--dr-ease-standard);
}

/* O sticky vive no WRAPPER do template part, não no grupo interno: o core
 * envolve o header em <header class="wp-block-template-part"> que
 * shrinkwrapa o grupo — sticky no filho não tem curso dentro do pai e
 * nunca engata. */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: var(--dr-z-sticky);
}

.site-header.is-scrolled {
	box-shadow: 0 0.5rem 2rem rgba(13, 14, 17, 0.24);
}

.dr-header__inner {
	min-height: calc(var(--dr-header-height) - (var(--dr-space-1) * 2));
	position: relative;
	width: 100%;
}

.dr-header__brand,
.dr-header__actions {
	gap: var(--dr-space-2);
}

.dr-header__brand {
	flex-shrink: 0;
}

.dr-header__logo {
	display: inline-flex;
	margin: 0;
	text-decoration: none;
}

.dr-header__logo img {
	display: block;
	height: auto;
	max-height: 2.55rem;
	object-fit: contain;
	width: clamp(13rem, 20vw, 18rem);
}

.site-header .dr-header__title {
	font-size: var(--dr-font-size-500);
	font-weight: var(--dr-font-weight-bold);
	letter-spacing: -0.03em;
	line-height: var(--dr-line-height-tight);
	margin: 0;
}

.site-header .dr-header__title a {
	color: var(--dr-color-text-inverse);
	text-decoration: none;
}

.site-header .dr-header__title a:hover {
	color: color-mix(in srgb, var(--dr-color-text-inverse) 78%, transparent);
}

.dr-header__actions {
	margin-left: auto;
}

.dr-header__navigation {
	font-size: var(--dr-font-size-200);
	font-weight: var(--dr-font-weight-semibold);
}

.dr-header__navigation .wp-block-navigation__container {
	gap: var(--dr-space-3);
}

.dr-header__navigation .wp-block-navigation-item__content {
	color: var(--dr-color-text-inverse);
	position: relative;
	text-decoration: none;
}

.dr-header__navigation .wp-block-navigation-item__content::after {
	background: var(--dr-color-accent);
	bottom: calc(var(--dr-space-1) * -1);
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform var(--dr-duration-normal) var(--dr-ease-standard);
	width: 100%;
}

.dr-header__navigation .wp-block-navigation-item__content:hover::after,
.dr-header__navigation .wp-block-navigation-item__content:focus-visible::after,
.dr-header__navigation .current-menu-item > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* Ancorado em .dr-header__actions para vencer o `body .is-layout-flex
 * { display: flex; }` do global-styles do core (0,1,1) — sem o pai, os
 * botões desktop vazam para o header mobile e empilham ao lado do
 * hambúrguer. */
.dr-header__actions > .dr-header__desktop-cta {
	align-items: center;
	display: none;
	gap: var(--dr-space-1);
}

.site-header .dr-header__desktop-cta > .wp-block-button,
.site-header .dr-header__desktop-cta > .wp-block-button > .wp-block-button__link {
	block-size: var(--dr-header-btn-height);
	box-sizing: border-box;
	height: var(--dr-header-btn-height);
	max-block-size: var(--dr-header-btn-height);
	max-height: var(--dr-header-btn-height);
	min-block-size: var(--dr-header-btn-height);
	min-height: var(--dr-header-btn-height);
}

.dr-hero .dr-actions > .wp-block-button,
.dr-hero .dr-actions > .wp-block-button > .wp-block-button__link {
	block-size: var(--dr-btn-height);
	box-sizing: border-box;
	height: var(--dr-btn-height);
	max-block-size: var(--dr-btn-height);
	max-height: var(--dr-btn-height);
	min-block-size: var(--dr-btn-height);
	min-height: var(--dr-btn-height);
}

.dr-header__login .wp-block-button__link {
	background: transparent;
	border-color: color-mix(in srgb, var(--dr-color-text-inverse) 34%, transparent);
	color: var(--dr-color-text-inverse);
}

.dr-header__login .wp-block-button__link:hover {
	background: color-mix(in srgb, var(--dr-color-text-inverse) 10%, transparent);
	border-color: var(--dr-color-text-inverse);
	color: var(--dr-color-text-inverse);
}

.dr-header__login .wp-block-button__link:active {
	background: color-mix(in srgb, var(--dr-color-text-inverse) 16%, transparent);
	color: var(--dr-color-text-inverse);
}

.dr-header__navigation .wp-block-navigation__responsive-container-open {
	align-items: center;
	border: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 38%, transparent);
	border-radius: var(--dr-radius-2);
	color: var(--dr-color-text-inverse);
	display: flex;
	height: var(--dr-touch-target-min);
	justify-content: center;
	padding: 0;
	width: var(--dr-touch-target-min);
}

/* --- Home: header transparente sobre o céu do hero -------------------------
 * O hero desliza para baixo do header (margin negativa) e compensa no
 * padding. No topo, o header fica transparente com fontes escuras; ao rolar,
 * o main.js aplica .is-scrolled e ele volta ao escuro padrão. */

.home .wp-site-blocks > .site-main {
	margin-block-start: calc(-1 * var(--dr-header-height) - var(--dr-space-1) * 2);
}

.home .dr-hero {
	padding-block-start: calc(var(--dr-header-height) + clamp(var(--dr-space-4), 5vw, var(--dr-space-8)));
}

.dr-donation-page-active .wp-site-blocks > .dr-donation-page {
	margin-block-start: calc(-1 * var(--dr-header-height) - var(--dr-space-1) * 2);
}

.dr-donation-page-active .dr-don-hero {
	padding-block-start: calc(var(--dr-header-height) + clamp(var(--dr-space-8), 10vw, var(--dr-space-12)));
}

.home .site-header:not(.is-scrolled) {
	background: transparent;
	color: var(--dr-color-text);
}

.dr-donation-page-active .site-header:not(.is-scrolled) {
	background: transparent;
}

.dr-donation-page-active .site-header:not(.is-scrolled) .dr-header__logo img {
	filter: brightness(0) invert(1);
}

.home .site-header:not(.is-scrolled) .dr-header__title a {
	color: var(--dr-color-text);
}

.home .site-header:not(.is-scrolled) .dr-header__title a:hover {
	color: var(--dr-color-text-muted);
}

.home .site-header:not(.is-scrolled) .dr-header__logo img {
	filter: none;
}

/* :not(.is-menu-open): as fontes escuras do header transparente valem só
 * para a navegação inline fechada — dentro do overlay aberto (fundo ink)
 * os links continuam invertidos. */
.home .site-header:not(.is-scrolled) .dr-header__navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content {
	color: var(--dr-color-text);
}

.home .site-header:not(.is-scrolled) .dr-header__login .wp-block-button__link {
	border-color: color-mix(in srgb, var(--dr-color-ink-900) 38%, transparent);
	color: var(--dr-color-text);
}

.home .site-header:not(.is-scrolled) .dr-header__login .wp-block-button__link:hover {
	background: color-mix(in srgb, var(--dr-color-ink-900) 8%, transparent);
	border-color: var(--dr-color-ink-900);
}

.home .site-header:not(.is-scrolled) .dr-header__navigation .wp-block-navigation__responsive-container-open {
	border-color: color-mix(in srgb, var(--dr-color-ink-900) 38%, transparent);
	color: var(--dr-color-text);
}

.dr-header__navigation .wp-block-navigation__responsive-container-open:hover {
	background: color-mix(in srgb, var(--dr-color-text-inverse) 10%, transparent);
	border-color: color-mix(in srgb, var(--dr-color-text-inverse) 68%, transparent);
}

.dr-header__navigation .wp-block-navigation__responsive-container-open[aria-expanded="true"] {
	background: color-mix(in srgb, var(--dr-color-text-inverse) 14%, transparent);
	border-color: var(--dr-color-text-inverse);
}

.dr-header__navigation .wp-block-navigation__responsive-container {
	background: var(--dr-color-ink-900);
	color: var(--dr-color-text-inverse);
}

/* Espelha o seletor default do core (WP >= 7.0 aplica fundo #fff/texto #000
 * ao overlay aberto com especificidade 0,5,0) para as cores do tema
 * vencerem sem !important. */
.dr-header__navigation.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) {
	background-color: var(--dr-color-ink-900);
	color: var(--dr-color-text-inverse);
}

.dr-header__navigation .wp-block-navigation__responsive-container.is-menu-open {
	overscroll-behavior: contain;
	z-index: var(--dr-z-overlay);
}

.dr-header__navigation .wp-block-navigation__responsive-container-close {
	align-items: center;
	border: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 38%, transparent);
	border-radius: var(--dr-radius-2);
	color: var(--dr-color-text-inverse);
	display: flex;
	height: var(--dr-touch-target-min);
	justify-content: center;
	padding: 0;
	width: var(--dr-touch-target-min);
}

.dr-header__navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close {
	display: none;
}

.dr-header__navigation .wp-block-navigation__responsive-container-open:focus-visible,
.dr-header__navigation .wp-block-navigation__responsive-container-close:focus-visible {
	outline: 3px solid var(--dr-color-text-inverse);
	outline-offset: 3px;
}

.dr-header__navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: stretch;
	padding: var(--dr-space-10) var(--dr-container-gutter) max(var(--dr-space-4), env(safe-area-inset-bottom));
}

.dr-header__navigation .wp-block-navigation__responsive-dialog,
.dr-header__navigation .wp-block-navigation__responsive-container-content,
.dr-header__navigation .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
	width: 100%;
}

.dr-header__navigation .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
	align-items: stretch;
	gap: 0;
}

.dr-header__navigation .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
	border-bottom: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 18%, transparent);
	width: 100%;
}

.dr-header__navigation .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
	font-size: var(--dr-font-size-500);
	padding-block: var(--dr-space-2);
	width: 100%;
}

.dr-header__navigation .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content::after {
	display: none;
}

.dr-header__navigation .wp-block-navigation__responsive-container-content .dr-header__mobile-cta {
	border: 0;
	margin-top: var(--dr-space-1);
}

.dr-header__navigation .wp-block-navigation__responsive-container-content .dr-header__mobile-login {
	border: 0;
	margin-top: var(--dr-space-3);
}

.dr-header__navigation .wp-block-navigation__responsive-container-content .dr-header__mobile-login .wp-block-navigation-item__content {
	align-items: center;
	background: transparent;
	border: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 44%, transparent);
	border-radius: var(--dr-btn-radius);
	box-sizing: border-box;
	color: var(--dr-color-text-inverse);
	display: flex;
	font-size: var(--dr-btn-font-size);
	font-weight: var(--dr-btn-font-weight);
	gap: var(--dr-space-1);
	height: var(--dr-header-btn-height);
	justify-content: center;
	letter-spacing: var(--dr-btn-letter-spacing);
	line-height: var(--dr-btn-line-height);
	padding: 0 var(--dr-btn-padding-x);
	text-align: center;
	transition:
		background-color var(--dr-btn-duration) var(--dr-ease-standard),
		border-color var(--dr-btn-duration) var(--dr-ease-standard),
		transform var(--dr-btn-duration) var(--dr-ease-standard);
}

.dr-header__navigation .wp-block-navigation__responsive-container-content .dr-header__mobile-cta .wp-block-navigation-item__content {
	align-items: center;
	background: var(--dr-color-accent);
	border: 1px solid var(--dr-color-accent);
	border-radius: var(--dr-btn-radius);
	box-sizing: border-box;
	color: var(--dr-color-text-inverse);
	display: flex;
	font-size: var(--dr-btn-font-size);
	font-weight: var(--dr-btn-font-weight);
	gap: var(--dr-space-1);
	height: var(--dr-header-btn-height);
	justify-content: center;
	letter-spacing: var(--dr-btn-letter-spacing);
	line-height: var(--dr-btn-line-height);
	padding: 0 var(--dr-btn-padding-x);
	text-align: center;
	transition:
		background-color var(--dr-btn-duration) var(--dr-ease-standard),
		border-color var(--dr-btn-duration) var(--dr-ease-standard),
		transform var(--dr-btn-duration) var(--dr-ease-standard);
}

.dr-header__navigation .wp-block-navigation__responsive-container-content .dr-header__mobile-login .wp-block-navigation-item__content:hover {
	background: color-mix(in srgb, var(--dr-color-text-inverse) 10%, transparent);
	border-color: color-mix(in srgb, var(--dr-color-text-inverse) 70%, transparent);
	transform: translateY(-2px);
}

.dr-header__navigation .wp-block-navigation__responsive-container-content .dr-header__mobile-cta .wp-block-navigation-item__content:hover {
	background: var(--dr-color-accent-hover);
	border-color: var(--dr-color-accent-hover);
	box-shadow: var(--dr-btn-shadow-hover);
	transform: translateY(-2px);
}

.dr-header__navigation .wp-block-navigation__responsive-container-content :is(.dr-header__mobile-login, .dr-header__mobile-cta) .wp-block-navigation-item__content:active {
	box-shadow: none;
	transform: translateY(0);
}

.dr-header__navigation .wp-block-navigation__responsive-container-content :is(.dr-header__mobile-login, .dr-header__mobile-cta) .wp-block-navigation-item__content:focus-visible {
	outline: 3px solid var(--dr-color-focus);
	outline-offset: 3px;
}

.dr-header__navigation .wp-block-navigation__responsive-container-content :is(.dr-header__mobile-login, .dr-header__mobile-cta) .wp-block-navigation-item__content[aria-disabled="true"] {
	background: var(--dr-color-bg-muted);
	border-color: var(--dr-color-border);
	box-shadow: none;
	color: var(--dr-color-text-subtle);
	cursor: not-allowed;
	opacity: 0.64;
	pointer-events: none;
	transform: none;
}

/* Footer no fundo da viewport em páginas curtas, sem vazio artificial:
 * o antigo min-height fixo no main criava ~600px de branco no mobile
 * (ex.: /book-an-appointment/). */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100dvh;
}

.site-main {
	flex: 1;
}

.site-main > * {
	margin-block-start: 0;
}

.dr-section {
	padding-block: clamp(var(--dr-space-10), 8vw, var(--dr-space-16));
}

.dr-section:first-of-type {
	padding-block-start: clamp(var(--dr-space-8), 9vw, var(--dr-space-12));
}

.dr-eyebrow {
	color: var(--dr-color-premium-strong);
	font-size: var(--dr-font-size-100);
	font-weight: var(--dr-font-weight-bold);
	letter-spacing: var(--dr-letter-spacing-wide);
	margin-bottom: var(--dr-space-2);
	text-transform: uppercase;
}

.dr-section-heading {
	margin-bottom: clamp(var(--dr-space-4), 5vw, var(--dr-space-6));
	max-width: 50rem;
}

.dr-section-heading h2,
.dr-section-heading p {
	margin-left: 0;
}

.dr-section-heading h2 {
	font-size: var(--dr-display-2) !important;
	letter-spacing: var(--dr-tracking-display-2);
	line-height: var(--dr-leading-display-2);
	margin-bottom: var(--dr-space-2);
}

.dr-section-heading > p.has-large-font-size {
	color: var(--dr-color-text-muted);
	font-size: clamp(var(--dr-font-size-300), 1.3vw, var(--dr-font-size-400)) !important;
	line-height: 1.65;
	max-width: 42rem;
}

.dr-section-heading--center {
	margin-inline: auto;
	text-align: center;
}

.dr-section-heading--center h2,
.dr-section-heading--center p {
	margin-inline: auto;
}

/* O WP injeta blockGap entre os blocos de topo (header → main), que virou
 * uma faixa branca visível sobre a foto do hero — cola o main no header. */
.wp-site-blocks > .site-main {
	margin-block-start: 0;
}

.dr-hero {
	background: url("../images/banner-hero.webp") center / cover no-repeat, var(--dr-color-bg);
	overflow: hidden;
	/* A faixa "Trusted by" ocupa a zona da antiga trust bar; o padding
	 * inferior volta ao normal para a altura total ficar como antes. */
	padding-block: clamp(var(--dr-space-4), 5vw, var(--dr-space-8)) clamp(var(--dr-space-3), 4vw, var(--dr-space-5));
	position: relative;
}

/* Véu de legibilidade sobre a foto: denso à esquerda (título escuro precisa
 * de contraste AA), dissolvendo à direita para a imagem respirar atrás do
 * card de booking. */
.dr-hero::before {
	/* Duas camadas: véu claro reforçado atrás do texto (esquerda) e véu
	 * escuro sutil atrás do glass card (direita), que garante o contraste
	 * do card mais translúcido. */
	background:
		linear-gradient(
			280deg,
			color-mix(in srgb, var(--dr-color-ink-900) 30%, transparent) 0%,
			color-mix(in srgb, var(--dr-color-ink-900) 16%, transparent) 22%,
			transparent 42%
		),
		linear-gradient(
			100deg,
			color-mix(in srgb, var(--dr-color-bg) 97%, transparent) 0%,
			color-mix(in srgb, var(--dr-color-bg) 90%, transparent) 46%,
			color-mix(in srgb, var(--dr-color-bg) 26%, transparent) 72%,
			transparent 92%
		);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

/* Sobre a foto, o dourado padrão dos eyebrows fica abaixo de AA (auditoria
 * Impeccable: 3.1:1 no céu claro) — aqui usa o tom de tinta do DS. */
.dr-hero .dr-eyebrow {
	color: var(--dr-color-premium-ink);
}

/* --- Faixa "Trusted by" no rodapé do hero -----------------------------------
 * Marquee infinito CSS-only: dois grupos idênticos, o track anda -50%.
 * Wordmarks são PLACEHOLDERS (ver patterns/home-hero.php — compliance §6.4). */

.dr-hero__trusted {
	/* -20px a pedido: faixa mais próxima do conteúdo do hero. */
	margin-block-start: calc(clamp(var(--dr-space-5), 6vw, var(--dr-space-8)) - 1.25rem);
	position: relative;
	z-index: 1;
}

/* Mata os 24px que o core injeta entre rótulo e marquee; o ritmo real
 * (8px) é reafirmado abaixo com especificidade 0-2-0. */
.wp-block-group.dr-hero__trusted > * {
	margin-block: 0;
}

.wp-block-group.dr-hero__trusted > .dr-hero__trusted-label {
	/* 8px + 10px a pedido: só os logos desceram, o rótulo ficou. */
	margin-block-end: calc(var(--dr-space-1) + 0.625rem);
}

.dr-hero__trusted-label {
	color: color-mix(in srgb, var(--dr-color-ink-900) 78%, transparent);
	font-size: var(--dr-font-size-100);
	font-weight: var(--dr-font-weight-semibold);
	text-align: center;
}

/* Fade curto nas bordas: os logos entram/saem suaves sem parecer cortados. */
.dr-hero__marquee {
	mask-image: linear-gradient(90deg, transparent, black 6%, black 94%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, black 6%, black 94%, transparent);
	overflow: hidden;
	padding-block: var(--dr-space-1);
	transform: translateY(-10px);
}

.dr-hero__marquee-track {
	display: flex;
	width: max-content;
}

.dr-hero__marquee-track:hover {
	animation-play-state: paused;
}

.dr-hero__marquee-group {
	align-items: center;
	animation: dr-hero-marquee 28s linear infinite;
	display: flex;
	gap: clamp(var(--dr-space-5), 6vw, var(--dr-space-8));
	list-style: none;
	margin: 0;
	padding: 0 0 0 clamp(var(--dr-space-5), 6vw, var(--dr-space-8));
}

.dr-hero__marquee-track:hover .dr-hero__marquee-group {
	animation-play-state: paused;
}

.dr-hero__marquee-item {
	align-items: center;
	color: color-mix(in srgb, var(--dr-color-ink-900) 72%, transparent);
	display: flex;
	font-size: var(--dr-font-size-400);
	font-weight: var(--dr-font-weight-bold);
	gap: calc(var(--dr-space-1) / 2);
	letter-spacing: var(--dr-letter-spacing-tight);
	margin: 0;
	white-space: nowrap;
}

.dr-hero__marquee-mark {
	display: block;
	flex-shrink: 0;
}

.dr-hero__marquee-mark svg {
	display: block;
	height: 1.625rem;
	width: 1.625rem;
}

.dr-hero__marquee-item img {
	display: block;
	height: 1.75rem;
	opacity: 0.62;
	width: auto;
}

@keyframes dr-hero-marquee {
	to {
		transform: translateX(-100%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.dr-hero__marquee-group {
		animation: none;
	}

	/* Sem animação, o segundo grupo (duplicado) sai e o primeiro centraliza. */
	.dr-hero__marquee-group[aria-hidden="true"] {
		display: none;
	}

	.dr-hero__marquee-track {
		justify-content: center;
		width: 100%;
	}

	.dr-hero__marquee-group {
		flex-wrap: wrap;
		justify-content: center;
	}
}

/* Texto em largura total no mobile: véu uniforme, sem direção — e a
 * variante 768w da foto (35 KB vs 427 KB da original). */
@media (max-width: 48.8125rem) {
	.dr-hero {
		background-image: url("../images/banner-hero-768.webp");
	}

	.dr-hero::before {
		background: color-mix(in srgb, var(--dr-color-bg) 84%, transparent);
	}
}

.dr-hero__layout {
	align-items: center;
	gap: clamp(var(--dr-space-6), 8vw, var(--dr-space-12));
	grid-template-columns: 1fr;
	position: relative;
	z-index: 1;
}

.dr-hero__content {
	max-width: 46rem;
	position: relative;
	z-index: 2;
}

.dr-hero__content > * {
	animation: dr-hero-reveal var(--dr-duration-slow) var(--dr-ease-emphasized) both;
}

.dr-hero__content > :nth-child(2) {
	animation-delay: 60ms;
}

.dr-hero__content > :nth-child(3) {
	animation-delay: 120ms;
}

.dr-hero__content > :nth-child(4),
.dr-hero__content > :nth-child(5) {
	animation-delay: 180ms;
}

.dr-hero__title {
	font-size: var(--dr-display-1) !important;
	font-weight: var(--dr-font-weight-bold);
	letter-spacing: var(--dr-tracking-display-1);
	line-height: var(--dr-leading-display-1);
	margin: 0;
	max-width: 14ch;
	text-wrap: balance;
}

.dr-hero__nowrap {
	white-space: nowrap;
}

.dr-hero__lead {
	color: color-mix(in srgb, var(--dr-color-text) 72%, var(--dr-color-text-muted));
	font-size: clamp(var(--dr-font-size-300), 2vw, var(--dr-font-size-400)) !important;
	line-height: 1.58;
	margin: var(--dr-space-3) 0 0;
	max-width: 36rem;
	text-wrap: pretty;
}

.dr-actions {
	align-items: center;
	gap: var(--dr-space-3);
	margin-block: var(--dr-space-5) 0;
	flex-wrap: wrap;
}

.dr-trust-list {
	display: flex;
	flex-wrap: wrap;
	font-size: var(--dr-font-size-200);
	font-weight: var(--dr-font-weight-medium);
	gap: var(--dr-space-1) var(--dr-space-3);
	list-style: none;
	margin: var(--dr-space-5) 0 0;
	padding: 0;
}

.dr-trust-list li {
	align-items: center;
	display: flex;
	gap: var(--dr-space-1);
}

.dr-trust-list li::before {
	animation: dr-trust-dot-pulse 2.4s var(--dr-ease-standard) infinite;
	background: var(--dr-color-accent);
	border-radius: 50%;
	content: "";
	height: 0.375rem;
	width: 0.375rem;
}

.dr-trust-list li:nth-child(2)::before {
	animation-delay: 0.4s;
}

.dr-trust-list li:nth-child(3)::before {
	animation-delay: 0.8s;
}

@keyframes dr-trust-dot-pulse {
	0%,
	70%,
	100% {
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--dr-color-accent) 34%, transparent);
		transform: scale(1);
	}

	35% {
		box-shadow: 0 0 0 0.35rem transparent;
		transform: scale(1.12);
	}
}

.dr-hero__visual {
	animation: dr-hero-reveal 520ms var(--dr-ease-emphasized) 160ms both;
	background: var(--dr-color-bg-inverse);
	border: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 8%, transparent);
	border-radius: clamp(var(--dr-radius-4), 2vw, var(--dr-radius-5));
	box-shadow: 0 2rem 5rem color-mix(in srgb, var(--dr-color-ink-900) 22%, transparent);
	margin: 0;
	max-width: 32rem;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.dr-hero__image {
	aspect-ratio: 4 / 5;
	margin: 0;
}

.dr-hero__image img {
	height: 100%;
	object-fit: cover;
	object-position: center;
	width: 100%;
}

.dr-hero__visual::after {
	background: linear-gradient(to top, color-mix(in srgb, var(--dr-color-bg-inverse) 50%, transparent), transparent 40%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.dr-hero__badge {
	backdrop-filter: blur(0.75rem);
	background: color-mix(in srgb, var(--dr-color-bg-inverse) 82%, transparent);
	border: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 22%, transparent);
	border-radius: var(--dr-radius-4);
	bottom: var(--dr-space-3);
	color: var(--dr-color-text-inverse);
	left: var(--dr-space-3);
	margin: 0;
	padding: var(--dr-space-2) var(--dr-space-3);
	position: absolute;
	right: var(--dr-space-3);
	z-index: 2;
}

.dr-hero__badge-label {
	font-size: var(--dr-font-size-200);
	font-weight: var(--dr-font-weight-semibold);
	margin: 0;
}

.dr-hero__badge-meta {
	color: color-mix(in srgb, var(--dr-color-text-inverse) 72%, transparent);
	font-size: var(--dr-font-size-100);
	letter-spacing: var(--dr-letter-spacing-wide);
	margin: var(--dr-space-1) 0 0;
}

@keyframes dr-hero-reveal {
	from {
		opacity: 0;
		transform: translateY(var(--dr-space-1));
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.dr-trust-bar {
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--dr-color-bg-inverse) 96%, transparent), var(--dr-color-bg-inverse));
	border-bottom: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 14%, transparent);
	color: var(--dr-color-text-inverse);
	padding-block: var(--dr-space-1);
}

.dr-trust-bar__list {
	display: grid;
	font-size: var(--dr-font-size-200);
	font-weight: var(--dr-font-weight-semibold);
	gap: 0;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin-inline: auto;
	margin-block: 0;
	max-width: 72rem;
	padding: 0;
}

.dr-trust-bar__item {
	align-items: center;
	border-top: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 16%, transparent);
	color: color-mix(in srgb, var(--dr-color-text-inverse) 82%, transparent);
	display: flex;
	justify-content: center;
	margin: 0;
	font-size: var(--dr-font-size-100);
	letter-spacing: 0.08em;
	min-height: 4rem;
	padding: var(--dr-space-1) var(--dr-space-3);
	text-align: center;
	text-transform: uppercase;
	text-wrap: balance;
}

.dr-trust-bar__rating {
	border-top: 0;
	gap: var(--dr-space-1);
	grid-column: 1 / -1;
}

.dr-trust-bar__stars {
	color: var(--dr-color-premium);
	letter-spacing: 0.08em;
}

.dr-benefits {
	background: #fff;
}

/* "Ride with purpose" bento: same light cards and icons as before, re-laid
   with a flagship card. Card styling stays in the design-system layer; only
   positioning + the large-card treatment live here. */
.dr-benefits-bento {
	display: grid;
	gap: clamp(var(--dr-space-2), 2vw, var(--dr-space-3));
	grid-template-columns: 1fr;
	margin-block-start: var(--dr-space-4);
}

.dr-benefits-bento > .dr-benefit-card {
	margin: 0;
}

.dr-benefit-card--large {
	background:
		radial-gradient(30rem 20rem at 100% 0%, color-mix(in srgb, var(--dr-color-premium) 12%, transparent), transparent 64%),
		var(--dr-color-surface);
}

@media (min-width: 48rem) {
	.dr-benefits-bento {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dr-benefits-bento > .dr-benefit-card--large {
		grid-column: 1 / -1;
	}
}

@media (min-width: 64rem) {
	.dr-benefits-bento {
		grid-auto-rows: 1fr;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.dr-benefits-bento > .dr-benefit-card--large {
		grid-column: 1;
		grid-row: 1 / span 2;
	}

	.dr-benefit-card--large .dr-benefit-card__title {
		font-size: var(--dr-font-size-600);
	}
}

.dr-benefit-grid {
	gap: 0;
}

.dr-benefit {
	border-left: 1px solid var(--dr-color-border);
	height: 100%;
	margin: 0;
	padding: var(--dr-space-3) clamp(var(--dr-space-2), 3vw, var(--dr-space-4));
}

.dr-benefit:last-child {
	border-right: 1px solid var(--dr-color-border);
}

.dr-benefit h3 {
	margin-block: var(--dr-space-1);
}

.dr-benefit p:last-child {
	color: var(--dr-color-text-muted);
	font-size: var(--dr-font-size-200);
}

.dr-card-index {
	color: var(--dr-color-premium-strong);
	font-size: var(--dr-font-size-100);
	font-weight: var(--dr-font-weight-bold);
	letter-spacing: var(--dr-letter-spacing-wide);
}

.dr-services {
	background: var(--dr-color-bg-subtle);
}

.dr-card-grid {
	align-items: stretch;
	gap: clamp(var(--dr-space-2), 2vw, var(--dr-space-3));
}

.dr-testimonials {
	background: #f8fafb;
}

.dr-faq {
	background: #fff;
}

.dr-faq-list {
	align-items: stretch;
	display: grid;
	gap: var(--dr-space-3);
	max-width: 56rem;
	margin-inline: auto;
	width: min(100%, 56rem);
}

.dr-faq .dr-faq-item__details {
	height: 100%;
}

.dr-faq-list > .dr-faq-item {
	margin-block-start: 0;
}

.dr-faq .dr-faq-item__summary {
	box-sizing: border-box;
	height: 4.5rem;
	padding-block: 0.75rem;
}

.dr-cta-section--dark {
	background:
		radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--dr-color-petrol-300) 22%, transparent), transparent 24%),
		radial-gradient(circle at 86% 76%, color-mix(in srgb, var(--dr-color-premium) 16%, transparent), transparent 20%),
		linear-gradient(135deg, var(--dr-color-petrol-900), var(--dr-color-petrol-700));
	box-shadow: inset 0 1px 0 color-mix(in srgb, var(--dr-color-text-inverse) 12%, transparent);
}

.dr-cta-section--dark .dr-cta-section__title {
	font-size: clamp(2.5rem, 6vw, 4.5rem);
	letter-spacing: -0.06em;
	line-height: 1.02;
	max-width: 14ch;
}

.dr-cta-section--dark .dr-cta-section__actions {
	gap: var(--dr-space-3);
}

.dr-cta-section--dark .dr-cta-section__button--secondary .wp-block-button__link {
	background: transparent;
	border-color: color-mix(in srgb, var(--dr-color-text-inverse) 54%, transparent);
	color: var(--dr-color-text-inverse);
}

.dr-cta-section--dark .dr-cta-section__button--secondary .wp-block-button__link:hover {
	background: color-mix(in srgb, var(--dr-color-text-inverse) 10%, transparent);
	border-color: var(--dr-color-text-inverse);
	color: var(--dr-color-text-inverse);
}

.dr-home-cta.has-background {
	background: var(--dr-color-ink-900);
	color: var(--dr-color-text-inverse);
	overflow: hidden;
	padding-block: calc(var(--dr-space-section) + var(--dr-space-2));
	position: relative;
}

.dr-home-cta__photo {
	height: 100%;
	inset: 0;
	max-width: none;
	object-fit: cover;
	position: absolute;
	width: 100%;
}

.dr-home-cta__veil {
	background:
		linear-gradient(0deg, color-mix(in srgb, var(--dr-color-ink-900) 72%, transparent), color-mix(in srgb, var(--dr-color-ink-900) 55%, transparent));
	inset: 0;
	max-width: none;
	position: absolute;
}

.dr-home-cta > .dr-home-cta__photo,
.dr-home-cta > .dr-home-cta__veil {
	margin: 0;
}

.dr-home-cta .dr-cta-section__inner {
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	gap: var(--dr-space-3);
	position: relative;
	text-align: center;
}

.dr-home-cta .dr-cta-section__content {
	margin-inline: auto;
}

.dr-home-cta .dr-cta-section__title {
	font-size: var(--dr-display-2);
	letter-spacing: var(--dr-tracking-display-2);
	line-height: var(--dr-leading-display-2);
}

.dr-home-cta .dr-cta-section__actions {
	justify-items: center;
	justify-content: center;
}

.dr-home-cta .dr-cta-section__button,
.dr-home-cta .dr-cta-section__button .wp-block-button__link {
	width: auto;
}

.dr-home-cta .dr-cta-section__description {
	color: color-mix(in srgb, var(--dr-color-text-inverse) 84%, transparent);
	margin-inline: auto;
	max-width: 36rem;
}

.dr-home-cta .dr-cta-section__content > .dr-cta-section__eyebrow {
	color: var(--dr-color-text-inverse);
	margin-block: 0 var(--dr-space-2);
}

.dr-home-cta .dr-cta-section__button--secondary > .wp-block-button__link {
	background: color-mix(in srgb, var(--dr-color-text-inverse) 10%, transparent);
	border-color: color-mix(in srgb, var(--dr-color-text-inverse) 42%, transparent);
	color: var(--dr-color-text-inverse);
}

.dr-home-cta .dr-cta-section__button--secondary > .wp-block-button__link:hover {
	background: color-mix(in srgb, var(--dr-color-text-inverse) 16%, transparent);
	border-color: color-mix(in srgb, var(--dr-color-text-inverse) 64%, transparent);
	color: var(--dr-color-text-inverse);
}

.dr-home-cta .dr-cta-trust {
	align-items: center;
	color: color-mix(in srgb, var(--dr-color-text-inverse) 82%, transparent);
	display: flex;
	flex-direction: column;
	gap: var(--dr-space-2);
	justify-content: center;
	list-style: none;
	margin: 0;
	margin-block-start: calc(var(--dr-space-1) + 1.25rem);
	padding: 0;
	width: 100%;
}

.dr-cta-trust__item {
	align-items: center;
	display: inline-flex;
	font-size: 0.9375rem;
	font-weight: 600;
	gap: 0.5rem;
	justify-content: center;
	line-height: 1.4;
	white-space: nowrap;
}

.dr-cta-trust__icon {
	display: block;
	flex: 0 0 1.1875rem;
	height: 1.1875rem;
	width: 1.1875rem;
}

.dr-cta-trust__divider {
	display: none;
}

@media (min-width: 40rem) {
	.dr-home-cta .dr-cta-trust {
		flex-direction: row;
		gap: var(--dr-space-3);
	}

	.dr-cta-trust__divider {
		background: color-mix(in srgb, var(--dr-color-text-inverse) 22%, transparent);
		display: block;
		flex: 0 0 1px;
		height: 1.125rem;
		width: 1px;
	}
}

.dr-benefit-card,
.dr-service-offering-card,
.dr-vehicle-card,
.dr-testimonial-card,
.dr-faq-item {
	height: 100%;
}

.dr-benefit-card,
.dr-service-offering-card,
.dr-vehicle-card,
.dr-testimonial-card,
.dr-faq-item {
	border-color: var(--dr-home-card-border);
	box-shadow: var(--dr-home-card-shadow);
	transition:
		border-color var(--dr-duration-normal) var(--dr-ease-standard),
		box-shadow var(--dr-duration-normal) var(--dr-ease-standard),
		transform var(--dr-duration-normal) var(--dr-ease-standard);
}

.dr-benefit-card__title,
.dr-service-offering-card__title,
.dr-vehicle-card__title,
.dr-testimonial-card__name,
.dr-faq-item__question {
	text-wrap: balance;
}

.dr-benefit-card__description,
.dr-service-offering-card__description,
.dr-vehicle-card__description,
.dr-testimonial-card__quote p,
.dr-faq-item__answer p {
	color: var(--dr-color-text-subtle);
}

.dr-benefits .dr-benefit-card__description {
	font-size: var(--dr-font-size-300);
	font-weight: var(--dr-font-weight-regular);
	line-height: var(--dr-line-height-body);
}

.dr-fleet .dr-vehicle-card__description {
	font-size: var(--dr-font-size-300);
	font-weight: var(--dr-font-weight-regular);
	line-height: var(--dr-line-height-body);
}

/* Respostas do FAQ ocupavam a largura wide inteira (~119 caracteres por
 * linha — auditoria Impeccable; ideal <80; 1ch ≈ 1,27 caractere real). */
.dr-faq-item__answer p {
	max-width: 62ch;
}

.dr-benefit-card,
.dr-service-offering-card {
	padding: var(--dr-card-padding);
}

.dr-service-offering-card {
	position: relative;
}

/*
 * Card vertical rhythm.
 * WP core injects unlayered flow-layout margins
 * (:root :where(.is-layout-flow) > * { margin-block-start: 24px })
 * that beat the layered design-system resets, so cards must
 * re-zero child margins here and let the flex gap own the rhythm.
 */
.wp-block-group.dr-benefit-card > *,
.wp-block-group.dr-service-offering-card > *,
.wp-block-group.dr-testimonial-card > *,
.wp-block-group.dr-vehicle-card > *,
.wp-block-group.dr-vehicle-card__body > * {
	margin-block-start: 0;
}

.dr-benefit-card > .dr-benefit-card__eyebrow,
.dr-service-offering-card > .dr-service-offering-card__title,
.dr-service-offering-card > .dr-service-offering-card__benefits,
.dr-vehicle-card__body > .dr-vehicle-card__capacity {
	margin-block-start: var(--dr-space-1);
}

.dr-benefit-card > .dr-benefit-card__footer,
.dr-service-offering-card > .dr-service-offering-card__footer,
.dr-vehicle-card__body > .dr-vehicle-card__footer,
.dr-testimonial-card > .dr-testimonial-card__caption {
	margin-block-start: auto;
}

/* Same WP flow-margin reset for section headings and content lockups. */
.wp-block-group.dr-section-heading > *,
.wp-block-group.dr-hero__content > *,
.wp-block-group.dr-fleet__content > *,
.wp-block-group.dr-cta-section__content > *,
.wp-block-group.dr-process-step > * {
	margin-block: 0;
}

.dr-section-heading > .dr-eyebrow,
.dr-hero__content > .dr-eyebrow,
.dr-fleet__content > .dr-eyebrow {
	margin-block-end: var(--dr-space-1);
}

.wp-block-group.dr-section-heading h2,
.wp-block-group.dr-fleet__content h2 {
	margin-block-end: var(--dr-space-2);
}

.dr-fleet__content > p:not(.dr-eyebrow),
.dr-hero__content > .dr-hero__lead {
	margin-block-start: var(--dr-space-2);
}

.dr-hero__content > .dr-actions {
	margin-block-start: var(--dr-space-4);
}

.dr-hero__content > .dr-trust-list {
	margin-block-start: var(--dr-space-4);
}

.dr-cta-section__content > .dr-cta-section__description {
	margin-block-start: var(--dr-space-2);
}

.dr-process-step > .dr-process-step__number {
	margin-block-end: var(--dr-space-2);
}

.wp-block-group.dr-process-step > h3 {
	margin-block-end: var(--dr-space-1);
}

/* WP core quote styles are unlayered and add the default left bar. */
.dr-testimonial-card__quote.wp-block-quote {
	border: 0;
	margin: 0;
	padding: 0;
}

.dr-benefit-card__icon,
.dr-service-offering-card__mark {
	border: 1px solid color-mix(in srgb, var(--dr-color-accent) 16%, transparent);
	box-shadow: inset 0 1px 0 color-mix(in srgb, var(--dr-color-bg) 72%, transparent);
}

.dr-service-offering-card__mark {
	border-radius: var(--dr-radius-3);
}

.dr-service-offering-card__status {
	background: var(--dr-color-premium-subtle);
	border: 1px solid color-mix(in srgb, var(--dr-color-premium) 36%, var(--dr-color-border));
	border-radius: var(--dr-radius-round);
	color: var(--dr-color-premium-strong);
	font-size: var(--dr-font-size-100);
	font-weight: var(--dr-font-weight-bold);
	letter-spacing: var(--dr-letter-spacing-wide);
	margin: 0;
	padding: 0.25rem 0.625rem;
	position: absolute;
	right: var(--dr-card-padding);
	text-transform: uppercase;
	top: var(--dr-card-padding);
}

.dr-faq-item {
	border-radius: var(--dr-radius-4);
}

.dr-service-offering-card__benefits {
	border-top: 1px solid var(--dr-home-card-border);
	padding-top: var(--dr-card-gap);
}

.dr-vehicle-card__media {
	padding: 0;
}

.dr-vehicle-card__image {
	border-radius: 0;
}

.dr-vehicle-card__image img {
	background: var(--dr-color-bg-muted);
	object-fit: contain;
	object-position: center center;
}

.dr-vehicle-card__body {
	gap: var(--dr-card-gap);
	padding: var(--dr-card-padding);
}

.dr-vehicle-card__capacity {
	margin-top: var(--dr-card-gap);
	padding-block: var(--dr-card-gap);
}

.dr-vehicle-card__footer {
	margin-top: 0;
	padding-top: var(--dr-card-gap);
}

.dr-testimonial-card__quote p {
	font-size: var(--dr-font-size-300);
	line-height: var(--dr-line-height-body);
}

.dr-final-cta {
	box-shadow: inset 0 1px 0 color-mix(in srgb, var(--dr-color-text-inverse) 10%, transparent);
}

@media (hover: hover) {
	.dr-service-offering-card:hover,
	.dr-vehicle-card:hover {
		border-color: var(--dr-color-border-strong);
		box-shadow: var(--dr-shadow-2);
		transform: translateY(-2px);
	}

	.dr-faq-item:hover {
		border-color: var(--dr-color-border-strong);
	}
}

.dr-service-card {
	background: var(--dr-color-surface);
	border: 1px solid var(--dr-color-border);
	border-radius: var(--dr-radius-md);
	box-shadow: var(--dr-shadow-sm);
	height: 100%;
	margin: 0;
	padding: clamp(var(--dr-space-3), 4vw, var(--dr-space-4));
	transition:
		border-color var(--dr-duration-normal) var(--dr-ease-standard),
		box-shadow var(--dr-duration-normal) var(--dr-ease-standard);
}

.dr-service-card:hover {
	border-color: var(--dr-color-accent);
	box-shadow: var(--dr-shadow-2);
}

.dr-service-card__mark {
	align-items: center;
	background: var(--dr-color-premium-subtle);
	border: 1px solid var(--dr-color-gold-300);
	border-radius: 50%;
	color: var(--dr-color-premium-strong);
	display: flex;
	font-size: 1rem;
	font-weight: var(--dr-font-weight-bold);
	height: 3rem;
	justify-content: center;
	margin-bottom: var(--dr-space-4);
	width: 3rem;
}

.dr-service-card h3 {
	margin-bottom: var(--dr-space-2);
}

.dr-service-card > p:not(.dr-service-card__mark, .dr-text-link) {
	color: var(--dr-color-text-muted);
}

.dr-text-link {
	font-weight: var(--dr-font-weight-semibold);
	margin-top: var(--dr-space-4);
}

.dr-text-link a {
	text-decoration: none;
}

.dr-text-link a:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.dr-fleet {
	background: #fafaf9;
	color: var(--dr-color-text);
}

.wp-block-group.dr-fleet__layout {
	display: block;
}

.dr-fleet__content {
	margin-bottom: 0;
	max-width: 50rem;
}

.wp-block-group.dr-fleet__layout > .dr-card-grid {
	margin-block-start: clamp(var(--dr-space-4), 5vw, var(--dr-space-6));
}

.dr-fleet .dr-eyebrow {
	color: var(--dr-color-premium-strong);
}

.dr-fleet__content h2 {
	font-size: var(--dr-display-2) !important;
	letter-spacing: var(--dr-tracking-display-2);
	line-height: var(--dr-leading-display-2);
}

.dr-fleet__content > p:not(.dr-eyebrow) {
	color: var(--dr-color-text-muted);
	font-size: clamp(var(--dr-font-size-300), 1.3vw, var(--dr-font-size-400)) !important;
	line-height: 1.65;
	max-width: 42rem;
}

.dr-fleet-stack {
	margin: 0;
}

.dr-fleet-card {
	align-items: flex-start;
	border-top: 1px solid var(--dr-color-ink-700);
	gap: var(--dr-space-2);
	margin: 0;
	padding-block: var(--dr-space-2);
}

.dr-fleet-card:last-child {
	border-bottom: 1px solid var(--dr-color-ink-700);
}

.dr-fleet-card h3 {
	margin-bottom: var(--dr-space-1);
}

.dr-fleet-card p {
	color: var(--dr-color-ink-300);
	margin: 0;
}

.dr-fleet-card__number {
	color: var(--dr-color-gold-300) !important;
	font-size: var(--dr-font-size-100);
	font-weight: var(--dr-font-weight-bold);
	letter-spacing: var(--dr-letter-spacing-wide);
}

.dr-process {
	background: var(--dr-color-bg);
}

.dr-process-grid {
	gap: var(--dr-space-3);
	position: relative;
}

.dr-process-step {
	margin: 0;
	padding: var(--dr-space-3) clamp(var(--dr-space-2), 3vw, var(--dr-space-4));
	position: relative;
	text-align: center;
	z-index: 1;
}

.dr-process-step__number {
	align-items: center;
	background: var(--dr-color-accent);
	border: 0.25rem solid var(--dr-color-bg);
	box-shadow: 0 0 0 1px var(--dr-color-border);
	border-radius: 50%;
	color: var(--dr-color-text-inverse);
	display: flex;
	font-size: 1.125rem;
	font-weight: var(--dr-font-weight-bold);
	height: 4rem;
	justify-content: center;
	margin: 0 auto var(--dr-space-2);
	width: 4rem;
}

.dr-process-step p:last-child {
	color: var(--dr-color-text-muted);
	margin-inline: auto;
	max-width: 20rem;
}

.dr-process-step h3 {
	margin-bottom: var(--dr-space-1);
}

.dr-testimonial-card__caption {
	border-top: 1px solid var(--dr-home-card-border);
	padding-top: var(--dr-space-3);
}

.dr-faq-item:has(.dr-faq-item__details[open]) {
	border-color: var(--dr-color-border-strong);
	box-shadow: var(--dr-shadow-2);
}

.dr-final-cta {
	background: linear-gradient(110deg, var(--dr-color-petrol-900), var(--dr-color-petrol-700));
	color: var(--dr-color-text-inverse);
	overflow: hidden;
	position: relative;
	text-align: center;
}

.dr-final-cta::before,
.dr-final-cta::after {
	border: 1px solid var(--dr-color-gold-500);
	border-radius: 50%;
	content: "";
	position: absolute;
}

.dr-final-cta::before {
	height: 24rem;
	left: -12rem;
	top: -16rem;
	width: 24rem;
}

.dr-final-cta::after {
	bottom: -18rem;
	height: 30rem;
	right: -10rem;
	width: 30rem;
}

.dr-final-cta__inner {
	max-width: 50rem;
	position: relative;
	z-index: 1;
}

.dr-final-cta .dr-eyebrow {
	color: var(--dr-color-gold-300);
}

.dr-final-cta h2,
.dr-final-cta p {
	margin-inline: auto;
}

.site-footer {
	background: var(--dr-color-bg-inverse);
	color: var(--dr-color-text-inverse);
	margin-block-start: -1px;
	padding-block: var(--dr-space-8) var(--dr-space-3);
}

.site-main + footer.wp-block-template-part {
	background: var(--dr-color-bg-inverse);
	margin-block-start: 0;
}

.site-footer a {
	color: inherit;
}

.dr-footer__main {
	display: grid;
	gap: var(--dr-space-6);
}

.dr-footer__brand,
.dr-footer__section {
	margin: 0;
}

.dr-footer__identity {
	gap: var(--dr-space-2);
}

.dr-footer__logo {
	display: inline-flex;
	margin: 0;
	text-decoration: none;
}

.dr-footer__logo img {
	display: block;
	height: auto;
	max-height: 2.7rem;
	object-fit: contain;
	width: clamp(13rem, 22vw, 19rem);
}

.site-footer .dr-footer__title {
	font-size: var(--dr-font-size-500);
	font-weight: var(--dr-font-weight-bold);
	letter-spacing: var(--dr-letter-spacing-tight);
	line-height: var(--dr-line-height-tight);
	margin: 0;
}

.dr-footer__title a {
	text-decoration: none;
}

.dr-footer__description {
	color: color-mix(in srgb, var(--dr-color-text-inverse) 72%, transparent);
	margin: var(--dr-space-2) 0 0;
	max-width: 32rem;
}

.dr-footer__tagline {
	color: color-mix(in srgb, var(--dr-color-text-inverse) 72%, transparent);
	font-size: var(--dr-font-size-300);
	font-weight: var(--dr-font-weight-regular);
	letter-spacing: normal;
	line-height: var(--dr-line-height-heading);
	margin: var(--dr-space-3) 0 0;
}

.site-footer .dr-footer__heading {
	color: var(--dr-color-premium);
	font-size: var(--dr-font-size-100);
	font-weight: var(--dr-font-weight-bold);
	letter-spacing: var(--dr-letter-spacing-wide);
	margin: 0 0 var(--dr-space-2);
	text-transform: uppercase;
}

.dr-footer__navigation {
	font-size: var(--dr-font-size-200);
}

.dr-footer__navigation .wp-block-navigation__container {
	align-items: flex-start;
	gap: var(--dr-space-1);
}

.dr-footer__navigation .wp-block-navigation-item__content,
.dr-footer__legal .wp-block-navigation-item__content {
	color: color-mix(in srgb, var(--dr-color-text-inverse) 78%, transparent);
	padding-block: var(--dr-space-1);
	text-decoration-color: transparent;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
	transition:
		color var(--dr-duration-fast) var(--dr-ease-standard),
		text-decoration-color var(--dr-duration-fast) var(--dr-ease-standard);
}

.dr-footer__navigation .wp-block-navigation-item__content:hover,
.dr-footer__navigation .wp-block-navigation-item__content:focus-visible,
.dr-footer__legal .wp-block-navigation-item__content:hover,
.dr-footer__legal .wp-block-navigation-item__content:focus-visible {
	color: var(--dr-color-text-inverse);
	text-decoration-color: var(--dr-color-premium);
}

.dr-footer__contact p {
	color: color-mix(in srgb, var(--dr-color-text-inverse) 72%, transparent);
	margin: 0;
	max-width: 24rem;
}

.dr-footer__contact .dr-footer__contact-link {
	margin-top: var(--dr-space-2);
}

.dr-footer__contact-link a {
	background: transparent;
	border-color: color-mix(in srgb, var(--dr-color-text-inverse) 28%, transparent);
	color: var(--dr-color-text-inverse);
	text-decoration: none;
}

.dr-footer__contact-link a:hover {
	background: color-mix(in srgb, var(--dr-color-text-inverse) 10%, transparent);
	border-color: color-mix(in srgb, var(--dr-color-text-inverse) 48%, transparent);
	color: var(--dr-color-text-inverse);
}

.dr-footer__assurance {
	align-items: end;
	border-top: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 14%, transparent);
	display: grid;
	gap: var(--dr-space-4);
	margin-top: var(--dr-space-6);
	padding-top: var(--dr-space-4);
}

.dr-footer__compliance {
	color: color-mix(in srgb, var(--dr-color-text-inverse) 58%, transparent);
	font-size: var(--dr-font-size-100);
	line-height: var(--dr-line-height-body);
	margin: 0;
	/* Em ch, não rem: na fonte pequena, 48rem viravam ~120 caracteres por
	 * linha (auditoria Impeccable — ideal <80; 1ch ≈ 1,27 caractere real). */
	max-width: 62ch;
}

.dr-footer__payments {
	margin: 0;
}

.dr-footer__payments-label {
	color: color-mix(in srgb, var(--dr-color-text-inverse) 58%, transparent);
	font-size: var(--dr-font-size-100);
	font-weight: var(--dr-font-weight-medium);
	letter-spacing: var(--dr-letter-spacing-wide);
	margin: 0 0 var(--dr-space-1);
	text-transform: uppercase;
}

.dr-footer__payment-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dr-space-1);
	list-style: none;
	margin: 0;
	padding: 0;
}

.dr-footer__payment-badge {
	align-items: center;
	background: color-mix(in srgb, var(--dr-color-text-inverse) 6%, transparent);
	border: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 22%, transparent);
	border-radius: var(--dr-radius-2);
	color: color-mix(in srgb, var(--dr-color-text-inverse) 88%, transparent);
	display: inline-flex;
	font-size: var(--dr-font-size-100);
	font-weight: var(--dr-font-weight-semibold);
	justify-content: center;
	letter-spacing: -0.01em;
	min-height: 2rem;
	padding: 0.25rem 0.75rem;
	white-space: nowrap;
}

.dr-footer__payment-badge--apple svg,
.dr-footer__payment-badge--google svg,
.dr-footer__payment-badge--stripe svg {
	display: block;
	height: 1rem;
	width: auto;
}

.dr-footer__bottom {
	gap: var(--dr-space-2) var(--dr-space-4);
	margin-top: var(--dr-space-5);
	padding-top: var(--dr-space-3);
}

.dr-footer__copyright {
	color: color-mix(in srgb, var(--dr-color-text-inverse) 64%, transparent);
	font-size: var(--dr-font-size-100);
	margin: 0;
}

.dr-footer__legal {
	font-size: var(--dr-font-size-100);
}

.dr-footer__tagline,
.dr-footer__description,
.dr-footer__contact p:not(.dr-footer__contact-link),
.dr-footer__copyright {
	font-size: var(--dr-font-size-300);
	line-height: var(--dr-line-height-body);
}

.dr-footer__legal .wp-block-navigation__container {
	gap: var(--dr-space-1) var(--dr-space-3);
}

.has-chauffeur-booking-form .site-main {
	overflow: clip;
}

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

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

@media (max-width: 781px) {
	.dr-hero {
		min-height: auto;
	}

	.dr-hero__layout {
		grid-template-columns: 1fr;
	}

	.dr-hero__visual {
		margin-inline: auto;
		max-width: 28rem;
	}

	.dr-benefit {
		border-left: 0;
		border-top: 1px solid var(--dr-color-border);
		padding-inline: 0;
	}

	.dr-benefit:last-child {
		border-bottom: 1px solid var(--dr-color-border);
		border-right: 0;
	}

	.dr-fleet__layout {
		grid-template-columns: 1fr;
	}

	.dr-section-heading {
		margin-bottom: var(--dr-space-5);
	}

	.dr-faq-item__summary {
		gap: var(--dr-space-2);
		padding: var(--dr-space-3);
	}

	.dr-faq-item__answer {
		padding: 0 var(--dr-space-3) var(--dr-space-3);
	}
}

@media (min-width: 782px) {
	.dr-hero {
		/* Faixa de logos ocupa o fundo; padding curto mantém a altura antiga. */
		padding-block: var(--dr-space-8) var(--dr-space-3);
	}

	.dr-hero__layout {
		gap: clamp(var(--dr-space-8), 8vw, var(--dr-space-16));
		grid-template-columns: minmax(0, 1.1fr) minmax(20rem, 0.9fr);
	}

	.dr-hero__visual {
		justify-self: end;
		width: 100%;
	}

	.dr-footer__main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dr-footer__assurance {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.dr-footer__payments {
		justify-self: end;
	}
}

@media (min-width: 48rem) {
	.dr-trust-bar__list {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.dr-trust-bar__item {
		border-left: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 16%, transparent);
		border-top: 0;
	}

	.dr-trust-bar__item:last-child {
		border-right: 1px solid color-mix(in srgb, var(--dr-color-text-inverse) 16%, transparent);
	}

	.dr-trust-bar__rating {
		grid-column: auto;
	}

}

@media (min-width: 64rem) {
	.dr-footer__main {
		grid-template-columns: minmax(16rem, 2fr) repeat(2, minmax(8rem, 0.8fr)) minmax(14rem, 1.2fr);
	}

	.dr-header__actions > .dr-header__desktop-cta {
		display: flex;
	}

	.dr-process-grid::before {
		background: linear-gradient(90deg, transparent, var(--dr-color-border) 12%, var(--dr-color-border) 88%, transparent);
		content: "";
		height: 1px;
		left: 12.5%;
		position: absolute;
		right: 12.5%;
		top: calc(var(--dr-space-3) + 2rem);
	}

	.dr-header__navigation .wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open {
		display: none;
	}

	.dr-header__navigation .wp-block-navigation__responsive-container.is-menu-open {
		display: none;
	}

	.dr-header__navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
		background: transparent;
		display: block;
		position: static;
		width: auto;
		z-index: auto;
	}

	.dr-header__navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-content {
		padding: 0;
	}

	.dr-header__navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container {
		align-items: center;
		flex-direction: row;
		gap: var(--dr-space-3);
		width: auto;
	}

	.dr-header__navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item {
		border: 0;
		width: auto;
	}

	.dr-header__navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content {
		font-size: var(--dr-font-size-200);
		padding: 0;
		width: auto;
	}

	.dr-header__navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content::after {
		display: block;
	}

	.dr-header__navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .dr-header__mobile-cta {
		display: none;
	}

	.dr-header__navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .dr-header__mobile-login {
		display: none;
	}

	/* Menu centralizado no header (desktop): a navegação sai do fluxo e
	 * ancora no centro geométrico do .dr-header__inner. Qualificado como
	 * nav porque o WP duplica a className também no <ul> interno do overlay
	 * — sem o qualificador, o ul também era posicionado e quebrava o layout.
	 * O max-content impede o colapso para largura mínima. */
	nav.dr-header__navigation {
		left: 50%;
		position: absolute;
		top: 50%;
		transform: translate(-50%, -50%);
		width: max-content;
	}

	.dr-services .dr-card-grid--three {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	.dr-services .dr-card-grid--three > .dr-service-offering-card {
		grid-column: span 2;
	}

	.dr-testimonials .dr-card-grid--three,
	.dr-fleet .dr-card-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.dr-process-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
	.dr-hero__title {
		font-size: clamp(2.5rem, 12vw, 3rem) !important;
	}

	.dr-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.dr-actions .wp-block-button,
	.dr-actions .wp-block-button__link {
		width: 100%;
	}
}

/* Alvos de toque >= 44px em dispositivos de toque (WCAG 2.2 + PRODUCT.md).
 * Seletores de seções gated são inofensivos quando a seção não está na
 * página. Links inline em texto corrido ficam de fora (exceção da norma). */
@media (pointer: coarse) {
	.dr-footer__navigation .wp-block-navigation-item__content,
	.dr-footer__legal .wp-block-navigation-item__content,
	.dr-services-grid__link,
	.dr-benefit-card__link,
	.dr-focus-card__link,
	.dr-contact-aside__link,
	.dr-auth__meta a {
		align-items: center;
		display: inline-flex;
		min-block-size: var(--dr-touch-target-min);
	}

	.dr-auth .login-remember input {
		height: var(--dr-space-3);
		width: var(--dr-space-3);
	}

	.dr-hero__widget-tab {
		min-block-size: var(--dr-touch-target-min);
	}
}

@media (forced-colors: active) {
	.site-header {
		background: Canvas;
		border-color: CanvasText;
	}

	.dr-process-grid::before {
		background: CanvasText;
	}
}
