/* Fontes oficiais Medfy Labs — ver manual da marca em /brand-assets/manual/ */

/* Utilitários da Home (redesign v2) */
a { text-decoration: none; }
.medfy-eyebrow {
	font-family: 'Neue Montreal', sans-serif;
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	display: block;
}
.medfy-text-link {
	font-family: 'Neue Montreal', sans-serif;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 4px;
}
.medfy-text-link:hover { opacity: 0.75; }
br.medfy-lb { display: none; }
@media (min-width: 850px) {
	br.medfy-lb { display: inline; }
}
.elementor-button { text-decoration: none !important; }

/* Animações de entrada (Elementor): fade suave, mesma curva "ease-out sine" da referência.
   Duração: Normal 1,25s / Lenta 2s (definidas pelo Elementor). Respeita "reduzir movimento". */
.animated { animation-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1); }
/* Entrada rápida: o conteúdo principal e os botões aparecem quase de imediato (antes 1,25 s / 2 s, somados a atrasos de até 0,6 s). */
.animated, .animated.animated-fast { animation-duration: 0.5s !important; }
.animated.animated-slow { animation-duration: 0.6s !important; }
@media (max-width: 767px) {
	.animated, .animated.animated-slow, .animated.animated-fast { animation-duration: 0.4s !important; }
}
/* Símbolo da página Sobre: entrada com leve subida (24px) em vez do deslocamento de 100% do fadeInUp padrão */
@keyframes medfyRise {
	from { opacity: 0; transform: translate3d(0, 24px, 0); }
	to { opacity: 1; transform: none; }
}
.medfy-symbol.animated.fadeInUp { animation-name: medfyRise; }
@media (prefers-reduced-motion: reduce) {
	.elementor-invisible { visibility: visible !important; }
	.animated { animation: none !important; opacity: 1 !important; }
}

/* Equipe (página Sobre): proporção única para as fotos. Para trocar um placeholder, defina a imagem de fundo do contêiner (cobertura centralizada já configurada). */
.medfy-photo { aspect-ratio: 4 / 5; overflow: hidden; }
/* Foto real da equipe (widget Imagem dentro do cartão): preenche a moldura 4:5 sem distorcer. */
.medfy-photo .elementor-widget-image, .medfy-photo .elementor-widget-image .elementor-widget-container { width: 100%; height: 100%; }
.medfy-photo .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
/* Espaço reservado para foto: o widget de imagem vazio do Elementor exibe um placeholder cinza padrão; ele fica oculto até uma imagem real ser escolhida. */
.medfy-photo img[src*="/elementor/assets/images/placeholder"] { display: none; }
/* Cartões da equipe: no celular, nomes reservam 2 linhas (cargos alinhados na linha); em telas muito estreitas, 1 coluna */
@media (max-width: 767px) { .medfy-team-card h3 { min-height: 2.3em; } }
@media (max-width: 359px) { .medfy-team-card.e-con { width: 100% !important; max-width: 260px; } }

/* Cabeçalho (desktop): o menu horizontal nunca quebra linha. O HFE usa flex-wrap: wrap e links que aceitam quebra de texto,
   então qualquer falta de largura derrubava o último item ("Contato") para uma segunda linha. */
@media (min-width: 1025px) {
	.ehf-header .hfe-nav-menu { flex-wrap: nowrap; }
	.ehf-header .hfe-nav-menu .menu-item > a,
	.ehf-header .elementor-button { white-space: nowrap; }
}

/* Formulário de contato (página Contato): integrado ao fundo, discreto e acessível. Escopado em .medfy-form-wrap. */
.medfy-form-wrap { max-width: 560px; }
.medfy-form-wrap .wpcf7-form p { margin: 0 0 20px; }
.medfy-form-wrap .wpcf7-form label { display: block; font-size: 15px; font-weight: 500; color: #003741; margin-bottom: 6px; }
.medfy-form-wrap .wpcf7-form input[type="text"],
.medfy-form-wrap .wpcf7-form input[type="email"],
.medfy-form-wrap .wpcf7-form input[type="tel"],
.medfy-form-wrap .wpcf7-form textarea {
	background: transparent; color: #003741; border: 1px solid rgba(0, 55, 65, 0.4);
	border-radius: 2px; padding: 14px 16px; font-size: 17px; line-height: 1.4; margin-top: 0;
}
.medfy-form-wrap .wpcf7-form textarea { min-height: 140px; resize: vertical; }
.medfy-form-wrap .wpcf7-form input:focus,
.medfy-form-wrap .wpcf7-form textarea:focus { border-color: #003741; background: rgba(255, 255, 255, 0.35); }
.medfy-form-wrap .wpcf7-form input[type="submit"] {
	background: transparent; color: #003741; border: 1px solid #003741; border-radius: 2px;
	padding: 14px 30px; font-size: 17px; min-height: 48px; transition: background-color .2s, color .2s;
}
.medfy-form-wrap .wpcf7-form input[type="submit"]:hover,
.medfy-form-wrap .wpcf7-form input[type="submit"]:focus-visible { background: #003741; color: #E5E2DD; }
.medfy-form-wrap .wpcf7-not-valid { border-color: #9c2b28 !important; }
.medfy-form-wrap .wpcf7-not-valid-tip { color: #9c2b28; font-size: 14px; margin-top: 6px; }
.medfy-form-wrap .wpcf7-response-output { margin: 20px 0 0 !important; padding: 14px 16px !important; border-radius: 2px; font-size: 16px; color: #003741; }
.medfy-privacy-note { font-size: 14px; line-height: 1.5; color: #386277; max-width: 560px; margin: 16px 0 0; }
.medfy-privacy-note a { color: #003741; text-decoration: underline; }

/* Menu: hover/foco e item ativo identificáveis sem depender só da cor */
.elementor-widget-navigation-menu .menu-item > a:hover,
.elementor-widget-navigation-menu .menu-item > a:focus-visible,
.elementor-widget-navigation-menu .menu-item.current-menu-item > a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 6px;
}
.elementor-widget-navigation-menu .menu-item.current-menu-item > a {
	font-weight: 500;
}
.elementor-button:focus-visible,
a:focus-visible,
input:focus-visible,
button:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid #386277;
	outline-offset: 2px;
}
.medfy-step-num {
	font-family: 'Neue Montreal', sans-serif;
	font-weight: 500;
	font-size: 15px;
	letter-spacing: 1px;
	display: block;
}
.medfy-credit-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 36px 24px;
	max-width: 980px;
	margin: 0 auto;
}
.medfy-credit-item {
	text-align: center;
	padding: 0 12px;
}
.medfy-credit-item.medfy-credit-open {
	opacity: 0.6;
}
@media (max-width: 900px) {
	.medfy-credit-row { grid-template-columns: repeat(3, 1fr); gap: 28px 16px; }
}
@media (max-width: 700px) {
	.medfy-credit-row { grid-template-columns: repeat(2, 1fr); gap: 28px 16px; }
}
@media (max-width: 460px) {
	.medfy-credit-row { grid-template-columns: 1fr; }
}

@font-face {
	font-family: 'Questrial';
	src: url('fonts/Questrial/Questrial-Regular.ttf') format('truetype');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Neue Montreal';
	src: url('fonts/NeueMontreal/NeueMontreal-Light.otf') format('opentype');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Neue Montreal';
	src: url('fonts/NeueMontreal/NeueMontreal-LightItalic.otf') format('opentype');
	font-weight: 300;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: 'Neue Montreal';
	src: url('fonts/NeueMontreal/NeueMontreal-Regular.otf') format('opentype');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Neue Montreal';
	src: url('fonts/NeueMontreal/NeueMontreal-Italic.otf') format('opentype');
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: 'Neue Montreal';
	src: url('fonts/NeueMontreal/NeueMontreal-Medium.otf') format('opentype');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Neue Montreal';
	src: url('fonts/NeueMontreal/NeueMontreal-MediumItalic.otf') format('opentype');
	font-weight: 500;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: 'Neue Montreal';
	src: url('fonts/NeueMontreal/NeueMontreal-Bold.otf') format('opentype');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Neue Montreal';
	src: url('fonts/NeueMontreal/NeueMontreal-BoldItalic.otf') format('opentype');
	font-weight: 700;
	font-style: italic;
	font-display: swap;
}

/* Estilo do formulário de contato (Contact Form 7) na identidade Medfy */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #7F99A4;
	border-radius: 4px;
	font-family: 'Neue Montreal', sans-serif;
	margin-top: 4px;
	box-sizing: border-box;
}
.wpcf7-form label {
	font-family: 'Neue Montreal', sans-serif;
	font-weight: 500;
	color: #003741;
}
.wpcf7-form input[type="submit"] {
	background-color: #003741;
	color: #E5E2DD;
	border: none;
	padding: 12px 28px;
	border-radius: 4px;
	font-family: 'Neue Montreal', sans-serif;
	font-weight: 500;
	cursor: pointer;
}
.wpcf7-form input[type="submit"]:hover {
	background-color: #386277;
}
.wpcf7-form .medfy-hp {
	margin: 0;
}
.wpcf7-not-valid-tip {
	color: #b23b3b;
	font-size: 13px;
}
.wpcf7-form.sent .wpcf7-response-output {
	border-color: #003741 !important;
	color: #003741;
}

/*
 * Balgin (subtítulos) — pendente de envio dos arquivos oficiais.
 * Ao receber os arquivos, copie para fonts/Balgin/ e adicione os @font-face aqui,
 * seguindo o padrão acima. Depois inclua 'Balgin' no filtro em medfy-custom.php.
 */

/* Contato — foto na abertura: o degradê do Elementor (desktop) ganha mais densidade em telas
   menores, onde o texto ocupa quase toda a largura e precisa de contraste sobre a fotografia. */
@media (max-width: 1024px) {
	/* Contato, tablet: enquadramento mais amplo (parede + balcão) e proteção vertical sobre o texto. */
	.medfy-hero-foto.e-con { background-position: 100% 50% !important; }
	.medfy-hero-foto.e-con::before {
		background-image:
			linear-gradient(180deg, rgba(228, 233, 230, 0) 0%, rgba(228, 233, 230, 0.5) 14%, rgba(228, 233, 230, 0.5) 88%, rgba(228, 233, 230, 0) 100%),
			linear-gradient(90deg, rgba(228, 233, 230, 0.7) 0%, rgba(228, 233, 230, 0.5) 55%, rgba(228, 233, 230, 0.12) 100%) !important;
	}
}
@media (max-width: 767px) {
	/* Contato, celular: enquadramento em direção ao balcão e à iluminação indireta. */
	.medfy-hero-foto.e-con { background-position: 80% 50% !important; }
	.medfy-hero-foto.e-con::before {
		background-image:
			/* reforço suave sobre o bloco de texto e o botão */
			linear-gradient(180deg, rgba(228, 233, 230, 0) 0%, rgba(228, 233, 230, 0) 4%, rgba(228, 233, 230, 0.2) 11%, rgba(228, 233, 230, 0.2) 90%, rgba(228, 233, 230, 0) 98%, rgba(228, 233, 230, 0) 100%),
			linear-gradient(180deg, rgba(228, 233, 230, 0) 0%, rgba(228, 233, 230, 0.55) 8%, rgba(228, 233, 230, 0.55) 90%, rgba(228, 233, 230, 0) 99%, rgba(228, 233, 230, 0) 100%),
			linear-gradient(90deg, rgba(228, 233, 230, 0.76) 0%, rgba(228, 233, 230, 0.55) 45%, rgba(228, 233, 230, 0.26) 100%) !important;
	}
}

/* Sobre e Soluções — foto na abertura: o degradê do desktop é definido no Elementor (Estilo >
   Sobreposição de fundo). Em tablet e celular a densidade fica aqui, por página.
   Valores anteriores (sobreposição lisa #E4E9E6), para reverter: Sobre 70% desktop / 85% tablet /
   70% celular; Soluções 75% / 82% / 90%. Backups: backups/*_before_tratamento_foto_2026-10-22.json */
@media (max-width: 1024px) {
	/* Tablet: enquadramento próprio (a mesa e as cadeiras à direita) e transição horizontal ampla,
	   com proteção vertical sobre a área de texto. */
	.medfy-hero-foto-sobre.e-con { background-position: 100% 50% !important; }
	.medfy-hero-foto-sobre.e-con::before {
		background-image:
			/* reforço suave só sobre os parágrafos (≈ 49–86% da altura) */
			linear-gradient(180deg, rgba(228, 233, 230, 0) 0%, rgba(228, 233, 230, 0) 43%, rgba(228, 233, 230, 0.2) 51%, rgba(228, 233, 230, 0.2) 87%, rgba(228, 233, 230, 0) 96%, rgba(228, 233, 230, 0) 100%),
			linear-gradient(180deg, rgba(228, 233, 230, 0) 0%, rgba(228, 233, 230, 0.5) 14%, rgba(228, 233, 230, 0.5) 90%, rgba(228, 233, 230, 0) 100%),
			linear-gradient(90deg, rgba(228, 233, 230, 0.7) 0%, rgba(228, 233, 230, 0.62) 50%, rgba(228, 233, 230, 0.18) 100%) !important;
	}
	/* Soluções, tablet: enquadramento na mesa/poltronas; transição horizontal ampla + proteção vertical sobre o texto. */
	.medfy-hero-foto-solucoes.e-con { background-position: 62% 50% !important; }
	.medfy-hero-foto-solucoes.e-con::before {
		background-image:
			linear-gradient(180deg, rgba(228, 233, 230, 0) 0%, rgba(228, 233, 230, 0.5) 14%, rgba(228, 233, 230, 0.5) 88%, rgba(228, 233, 230, 0) 100%),
			linear-gradient(90deg, rgba(228, 233, 230, 0.7) 0%, rgba(228, 233, 230, 0.6) 50%, rgba(228, 233, 230, 0.2) 100%) !important;
	}
}
@media (max-width: 767px) {
	/* Celular: a foto é ampliada na vertical para que a mesa apareça abaixo do bloco de texto. */
	.medfy-hero-foto-sobre.e-con { background-size: auto 122% !important; background-position: 70% 0% !important; }
	.medfy-hero-foto-sobre.e-con::before {
		background-image:
			/* reforço suave só sobre os parágrafos (≈ 33–79% da altura) */
			linear-gradient(180deg, rgba(228, 233, 230, 0) 0%, rgba(228, 233, 230, 0) 25%, rgba(228, 233, 230, 0.2) 33%, rgba(228, 233, 230, 0.2) 81%, rgba(228, 233, 230, 0) 92%, rgba(228, 233, 230, 0) 100%),
			linear-gradient(180deg, rgba(228, 233, 230, 0) 0%, rgba(228, 233, 230, 0.55) 12%, rgba(228, 233, 230, 0.55) 83%, rgba(228, 233, 230, 0) 95%, rgba(228, 233, 230, 0) 100%),
			linear-gradient(90deg, rgba(228, 233, 230, 0.62) 0%, rgba(228, 233, 230, 0.3) 100%) !important;
	}
	.medfy-hero-foto-solucoes.e-con { background-position: 74% 50% !important; }
	.medfy-hero-foto-solucoes.e-con::before {
		background-image:
			/* reforço suave só sobre os parágrafos (≈ 43–87% da altura) */
			linear-gradient(180deg, rgba(228, 233, 230, 0) 0%, rgba(228, 233, 230, 0) 33%, rgba(228, 233, 230, 0.2) 42%, rgba(228, 233, 230, 0.2) 88%, rgba(228, 233, 230, 0) 97%, rgba(228, 233, 230, 0) 100%),
			linear-gradient(180deg, rgba(228, 233, 230, 0) 0%, rgba(228, 233, 230, 0.55) 11%, rgba(228, 233, 230, 0.55) 88%, rgba(228, 233, 230, 0) 99%, rgba(228, 233, 230, 0) 100%),
			linear-gradient(90deg, rgba(228, 233, 230, 0.62) 0%, rgba(228, 233, 230, 0.3) 100%) !important;
	}
}

/* Home — TESTE: abertura com fotografia no lugar do vídeo (classe medfy-hero-foto-home na seção Dobra_1).
   Para voltar ao vídeo: no Elementor, seção Dobra_1 → Estilo → Fundo → tipo "Vídeo" (o link do vídeo foi
   preservado) e remova a classe CSS "medfy-hero-foto-home" (Avançado). Também há o script
   backups/restaurar_home_video.php (WP-CLI). Estas regras só valem com a classe presente. */
.medfy-hero-foto-home.e-con::before {
	background-color: transparent !important;
	opacity: 1 !important;
	background-image: linear-gradient(90deg, rgba(228, 233, 230, 0.9) 0%, rgba(228, 233, 230, 0.86) 48%, rgba(228, 233, 230, 0.38) 70%, rgba(228, 233, 230, 0.04) 100%) !important;
}
.medfy-hero-foto-home .medfy-eyebrow,
.medfy-hero-foto-home .elementor-heading-title,
.medfy-hero-foto-home .elementor-widget-text-editor,
.medfy-hero-foto-home .elementor-widget-text-editor p { color: #003741 !important; }
.medfy-hero-foto-home a.medfy-text-link { color: #003741 !important; }
.medfy-hero-foto-home .elementor-button { background-color: #003741 !important; color: #E5E2DD !important; transition: background-color .25s ease; }
.medfy-hero-foto-home .elementor-button:hover,
.medfy-hero-foto-home .elementor-button:focus-visible { background-color: #386277 !important; color: #E5E2DD !important; }
@media (max-width: 1024px) {
	.medfy-hero-foto-home.e-con { background-position: 55% 50% !important; }
	.medfy-hero-foto-home.e-con::before { background-image: linear-gradient(90deg, rgba(228, 233, 230, 0.9) 0%, rgba(228, 233, 230, 0.66) 100%) !important; }
}
@media (max-width: 767px) {
	.medfy-hero-foto-home.e-con { background-position: 66% 50% !important; }
	/* Celular: o texto ocupa quase toda a largura, então a proteção é composta —
	   uma faixa vertical sobre a área de conteúdo + um degradê horizontal leve (mais claro à esquerda).
	   Fora da faixa de texto e à direita a fotografia aparece com mais presença. */
	.medfy-hero-foto-home.e-con::before {
		background-image:
			linear-gradient(180deg, rgba(228, 233, 230, 0) 0%, rgba(228, 233, 230, 0.55) 12%, rgba(228, 233, 230, 0.55) 88%, rgba(228, 233, 230, 0) 100%),
			linear-gradient(90deg, rgba(228, 233, 230, 0.62) 0%, rgba(228, 233, 230, 0.3) 100%) !important;
	}
}

/* Formulário "Solicitar diagnóstico": campo de seleção no mesmo padrão dos demais campos. */
.medfy-form-wrap .wpcf7-form select {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 17px; color: #003741;
	background-color: transparent; border: 1px solid rgba(0, 55, 65, 0.4); border-radius: 2px;
	padding: 14px 16px; min-height: 52px; appearance: none; -webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23003741' stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 16px center;
}
.medfy-form-wrap .wpcf7-form select:focus { border-color: #003741; background-color: rgba(255, 255, 255, 0.35); }
.medfy-form-wrap .wpcf7-form .medfy-opt { font-weight: 400; color: #386277; }

/* ===== Home — refinamento mobile (≤767px). Nada aqui afeta tablet ou desktop. ===== */
@media (max-width: 767px) {
	/* Margem lateral única: as seções já têm 24px; os contêineres internos do Elementor somavam +10px por nível. */
	body.home [data-elementor-type="wp-page"] .e-con .e-con { padding-left: 0; padding-right: 0; }
	/* Links de texto (→): área de toque de pelo menos 44px, sem mudar o visual. */
	body.home .medfy-text-link { display: inline-block; padding: 12px 0; }
}

/* ===== Rodapé (componente compartilhado) — organização mobile em três grupos: marca, navegação, contato. ===== */
@media (max-width: 767px) {
	.elementor-element-b3868d2 { flex-direction: column !important; align-items: center !important; flex-wrap: nowrap !important; gap: 0 !important; padding: 44px 24px 40px !important; text-align: center; }
	.elementor-element-b3868d2 > .e-con { width: 100% !important; max-width: 100% !important; padding: 0 !important; align-items: center; }
	.elementor-element-b3868d2 .e-con .e-con { padding: 0 !important; align-items: center; gap: 8px; width: 100%; }
	.elementor-element-b3868d2 > .e-con + .e-con { margin-top: 28px; padding-top: 28px !important; border-top: 1px solid rgba(0, 55, 65, 0.16); }
	.elementor-element-b3868d2 .elementor-widget-copyright,
	.elementor-element-b3868d2 .elementor-widget-copyright * { font-size: 14px !important; line-height: 1.6; text-align: center; }
	.elementor-element-b3868d2 .elementor-widget-text-editor,
	.elementor-element-b3868d2 .elementor-widget-text-editor p { font-size: 15px !important; line-height: 1.6; text-align: center; margin: 0; }
	.elementor-element-b3868d2 .elementor-widget-text-editor a { display: inline-block; padding: 8px 4px; }
	.elementor-element-b3868d2 .hfe-nav-menu { flex-direction: column; align-items: center; }
	.elementor-element-b3868d2 .hfe-nav-menu li { width: auto; }
	.elementor-element-b3868d2 .hfe-nav-menu li a.hfe-menu-item { font-size: 16px; padding: 12px 8px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
}

/* ===== Sobre a MEDFY — refinamento mobile (≤767px). Não afeta tablet nem desktop. ===== */
@media (max-width: 767px) {
	/* Mesma margem lateral em todas as seções: os contêineres internos somavam +10px por nível. */
	body.page-id-15 [data-elementor-type="wp-page"] .e-con .e-con { padding-left: 0; padding-right: 0; }
}

/* ===== Sobre — equipe: cargos mais consistentes (celular e tablet) ===== */
@media (max-width: 767px) {
	body.page-id-15 .medfy-team-card .elementor-widget-text-editor p { text-wrap: balance; }
}
@media (min-width: 768px) and (max-width: 1000px) {
	/* nomes reservam 2 linhas, como no celular, para os cargos alinharem na mesma altura */
	body.page-id-15 .medfy-team-card h3 { min-height: 2.4em; }
	body.page-id-15 .medfy-team-card .elementor-widget-text-editor p { text-wrap: balance; }
}

/* ===== Sobre — acabamento responsivo: respiro entre parágrafos do Hero e áreas de toque do rodapé ===== */
@media (max-width: 767px) {
	body.page-id-15 .elementor-element-d1f2601 p { margin-bottom: 28px !important; }
	body.page-id-15 .elementor-element-d1f2601 p:last-child { margin-bottom: 0 !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	body.page-id-15 .elementor-element-d1f2601 p { margin-bottom: 26px !important; }
	body.page-id-15 .elementor-element-d1f2601 p:last-child { margin-bottom: 0 !important; }
}
/* Rodapé (compartilhado), celular: links de contato com área de toque ≥ 44px. */
@media (max-width: 767px) {
	.elementor-element-b3868d2 .elementor-widget-text-editor a { padding: 10px 4px; }
}

/* ===== Soluções — refinamento responsivo ===== */
@media (max-width: 767px) {
	/* margem lateral única: os contêineres internos somavam +10px por nível */
	body.page-id-14 [data-elementor-type="wp-page"] .e-con .e-con { padding-left: 0; padding-right: 0; }
	body.page-id-14 .elementor-element-c27a5b5 p { margin-bottom: 28px !important; }
	body.page-id-14 .elementor-element-c27a5b5 p:last-child { margin-bottom: 0 !important; }
	/* jornadas: quebra natural, sem deixar a seta sozinha */
	body.page-id-14 .elementor-element-76f9b4d p,
	body.page-id-14 .elementor-element-02a459a p { text-wrap: balance; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	body.page-id-14 .elementor-element-76f9b4d p, body.page-id-14 .elementor-element-02a459a p { text-wrap: balance; }
	body.page-id-14 .elementor-element-c27a5b5 p { margin-bottom: 26px !important; }
	body.page-id-14 .elementor-element-c27a5b5 p:last-child { margin-bottom: 0 !important; }
}
/* divisores da comparação com mais contraste no celular e no tablet */
@media (max-width: 1024px) {
	body.page-id-14 .elementor-element-5ca306b, body.page-id-14 .elementor-element-d1e6299, body.page-id-14 .elementor-element-58143bd,
	body.page-id-14 .elementor-element-8c6b034, body.page-id-14 .elementor-element-68c99d2, body.page-id-14 .elementor-element-1808be9 { border-top-color: rgba(229, 226, 221, 0.42) !important; }
}

/* ===== Contato — refinamento responsivo ===== */
@media (max-width: 767px) {
	/* margem lateral única: os contêineres internos somavam +10px por nível */
	body.page-id-16 [data-elementor-type="wp-page"] .e-con .e-con { padding-left: 0; padding-right: 0; }
}
/* Formulário (só celular e tablet): bordas com contraste de componente (≥3:1), foco visível e campos confortáveis. */
@media (max-width: 1024px) {
	.medfy-form-wrap .wpcf7-form input[type="text"],
	.medfy-form-wrap .wpcf7-form input[type="email"],
	.medfy-form-wrap .wpcf7-form input[type="tel"],
	.medfy-form-wrap .wpcf7-form textarea { border-color: rgba(0, 55, 65, 0.62); min-height: 52px; font-size: 17px; }
	.medfy-form-wrap .wpcf7-form textarea { min-height: 160px; }
	.medfy-form-wrap .wpcf7-form input:focus-visible,
	.medfy-form-wrap .wpcf7-form textarea:focus-visible { outline: 2px solid #003741; outline-offset: 2px; border-color: #003741; }
	.medfy-form-wrap .wpcf7-form label { font-size: 16px; margin-bottom: 8px; display: block; }
	.medfy-form-wrap .wpcf7-form label + br { display: none; }
	.medfy-form-wrap .wpcf7-form p { margin-bottom: 22px; }
	.medfy-form-wrap .wpcf7-form .medfy-submit-row { margin-top: 8px; margin-bottom: 0; }
	.medfy-form-wrap .wpcf7-form input[type="submit"] { min-height: 52px; }
	.medfy-form-wrap .wpcf7-not-valid-tip { font-size: 15px; }
}
/* Contato (celular e tablet): o texto de apoio do WhatsApp usa o verde-petróleo institucional para garantir contraste sobre a foto. */
@media (max-width: 1024px) {
	body.page-id-16 .elementor-element-0236f77, body.page-id-16 .elementor-element-0236f77 p,
	body.page-id-16 .elementor-element-7cc58e4, body.page-id-16 .elementor-element-7cc58e4 p { color: #003741 !important; }
}
/* telas muito estreitas: o botão do WhatsApp cabe em uma linha */
@media (max-width: 359px) {
	body.page-id-16 #medfy-whatsapp-principal { padding-left: 22px !important; padding-right: 22px !important; font-size: 17px !important; }
}
/* Contato (celular): espaçamento do rodapé mais compacto, mantendo áreas de toque ≥44px (escopo restrito a esta página). */
@media (max-width: 767px) {
	body.page-id-16 .elementor-element-b3868d2 { padding: 36px 24px 32px !important; }
	body.page-id-16 .elementor-element-b3868d2 > .e-con + .e-con { margin-top: 20px; padding-top: 20px !important; }
}
/* Política de Privacidade — tipografia do texto (cole o conteúdo no widget de texto; H2/H3, parágrafos e listas herdam este padrão). */
.medfy-policy-content { max-width: 760px; color: #003741; }
.medfy-policy-content p, .medfy-policy-content li { font-family: 'Neue Montreal', sans-serif; font-size: 17px; line-height: 1.7; color: #003741; margin: 0 0 16px; }
.medfy-policy-content h2 { font-family: 'Questrial', sans-serif; font-weight: 400; font-size: 28px; line-height: 1.25; color: #003741; margin: 48px 0 16px; }
.medfy-policy-content h2:first-child { margin-top: 0; }
.medfy-policy-content h3 { font-family: 'Questrial', sans-serif; font-weight: 400; font-size: 21px; line-height: 1.3; color: #003741; margin: 32px 0 12px; }
.medfy-policy-content ul, .medfy-policy-content ol { margin: 0 0 20px; padding-left: 22px; }
.medfy-policy-content li { margin-bottom: 8px; }
.medfy-policy-content a { color: #003741; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) {
	.medfy-policy-content p, .medfy-policy-content li { font-size: 16px; line-height: 1.65; }
	.medfy-policy-content h2 { font-size: 24px; margin-top: 40px; }
	.medfy-policy-content h3 { font-size: 20px; }
}
@media (max-width: 767px) { body.page-id-488 [data-elementor-type="wp-page"] .e-con .e-con { padding-left: 0; padding-right: 0; } }
.medfy-policy-content code { font-size: .9em; background: rgba(0, 55, 65, 0.08); padding: 1px 6px; border-radius: 2px; }

/* Áreas seguras (iPhone em paisagem, entalhe/ilha dinâmica/barra de gestos): o fundo das seções vai até a borda da
   tela (viewport-fit=cover) e o conteúdo mantém a posição de sempre, somando o recuo do entalhe ao espaçamento.
   --medfy-sal/--medfy-sar permitem simular o recuo em testes; nos aparelhos vale env(). */
.e-con.e-parent {
	padding-inline-start: calc(var(--padding-inline-start, 0px) + var(--medfy-sal, env(safe-area-inset-left, 0px)));
	padding-inline-end: calc(var(--padding-inline-end, 0px) + var(--medfy-sar, env(safe-area-inset-right, 0px)));
}
@media (max-width: 767px) {
	/* o rodapé tem recuo fixo (!important) no celular: mantém o valor e soma a área segura */
	body .elementor-element-b3868d2.e-con { padding-left: calc(24px + var(--medfy-sal, env(safe-area-inset-left, 0px))) !important; padding-right: calc(24px + var(--medfy-sar, env(safe-area-inset-right, 0px))) !important; }
}


/* Menu móvel: acesso direto a "Solicitar diagnóstico". No desktop/tablet o botão do cabeçalho já cumpre esse papel. */
.menu-item.medfy-menu-diag { display: none; }
@media (max-width: 767px) {
	.ehf-header nav.hfe-dropdown .menu-item.medfy-menu-diag { display: block; }
	.ehf-header nav.hfe-dropdown .menu-item.medfy-menu-diag > a.hfe-menu-item { font-weight: 600; }
}

/* ===== Página Sobre: Nossos serviços, Tecnologia aplicada e chamada para Soluções (estilos restritos a estas seções) ===== */
.medfy-ico { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; flex: none; line-height: 0; }
.medfy-ico svg { display: block; width: 26px; height: 26px; }

/* Serviços: grade de 2 colunas (1 no celular), cartões informativos sobre o azul da marca */
.medfy-servicos .medfy-svc-grid.e-con { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; width: 100%; }
.medfy-servicos .medfy-svc-card.e-con {
	display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 18px; row-gap: 16px; align-items: center;
	padding: 32px 32px 34px; background: rgba(0, 55, 65, 0.34); border: 1px solid rgba(229, 226, 221, 0.16); border-radius: 4px;
}
.medfy-servicos .medfy-svc-card > .elementor-widget { margin: 0; }
.medfy-servicos .medfy-svc-card > .elementor-widget-text-editor { grid-column: 1 / -1; }
.medfy-servicos .medfy-svc-card .elementor-heading-title { margin: 0; }
.medfy-servicos .medfy-svc-card .medfy-ico { background: rgba(229, 226, 221, 0.1); border: 1px solid rgba(229, 226, 221, 0.38); color: #E5E2DD; }

/* Tecnologia: colunas abertas com filete superior (composição distinta dos cartões); 4 > 2 > 1 colunas */
.medfy-tecnologia .medfy-tech-grid.e-con { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 32px; width: 100%; }
.medfy-tecnologia .medfy-tech-item.e-con { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 28px 0 0; border-top: 2px solid #386277; }
.medfy-tecnologia .medfy-tech-item > .elementor-widget { margin: 0; width: 100%; }
.medfy-tecnologia .medfy-tech-item .elementor-heading-title { margin: 0; }
.medfy-tecnologia .medfy-tech-item .medfy-ico { width: 56px; height: 56px; background: #003741; color: #E5E2DD; }
.medfy-tecnologia .medfy-scope-note.e-con { width: 100%; padding: 20px 28px; background: rgba(0, 55, 65, 0.06); border-left: 3px solid #386277; border-radius: 2px; }
.medfy-tecnologia .medfy-scope-note > .elementor-widget { margin: 0; }
.medfy-tecnologia .medfy-tech-head .elementor-widget { margin-bottom: 0; }

@media (max-width: 1100px) {
	.medfy-tecnologia .medfy-tech-grid.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.medfy-servicos .medfy-svc-grid.e-con { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.medfy-servicos .medfy-svc-card.e-con { grid-template-columns: 46px minmax(0, 1fr); column-gap: 14px; padding: 24px 20px 26px; }
	.medfy-servicos .medfy-svc-card .medfy-ico, .medfy-tecnologia .medfy-tech-item .medfy-ico { width: 46px; height: 46px; }
	.medfy-ico svg { width: 24px; height: 24px; }
	.medfy-tecnologia .medfy-tech-grid.e-con { gap: 32px; }
	.medfy-tecnologia .medfy-scope-note.e-con { padding: 18px 20px; }
}
@media (max-width: 600px) {
	.medfy-tecnologia .medfy-tech-grid.e-con { grid-template-columns: minmax(0, 1fr); }
}

/* Alinha grades e nota à largura de conteúdo do site (1140 px centralizada), igual aos cabeçalhos das seções */
.medfy-servicos .medfy-svc-grid.e-con,
.medfy-tecnologia .medfy-tech-grid.e-con { max-width: var(--container-max-width, 1140px); margin-inline: auto; }
.medfy-tecnologia .medfy-scope-note.e-con { width: calc(100% - 20px); max-width: calc(var(--container-max-width, 1140px) - 20px); margin-inline: auto; }
@media (max-width: 767px) {
	/* A página Sobre zera o respiro lateral dos contêineres internos no celular; os cartões precisam do próprio preenchimento */
	body.page-id-15 .medfy-servicos .medfy-svc-card.e-con { padding: 24px 20px 26px; }
	body.page-id-15 .medfy-tecnologia .medfy-scope-note.e-con { padding: 18px 20px; }
	.medfy-tecnologia .medfy-scope-note.e-con { width: 100%; max-width: none; }
}
.medfy-servicos .medfy-svc-card.e-con { align-content: start; }

/* Encerramento da página Sobre: botão principal + link secundário discreto */
.medfy-fechamento .elementor-widget { margin: 0; }
.medfy-fechamento .medfy-fechamento-acoes.e-con { width: 100%; }
.medfy-fechamento .medfy-fechamento-acoes > .elementor-widget { width: auto; }
.medfy-fechamento .medfy-link-secundario a.elementor-button {
	background: transparent !important; color: #E5E2DD !important; border-radius: 0; padding: 12px 4px; min-height: 44px; font-weight: 500;
	text-decoration: underline !important; text-decoration-thickness: 1px; text-underline-offset: 6px; transition: opacity .25s ease;
}
.medfy-fechamento .medfy-link-secundario a.elementor-button:hover { opacity: .75; }
/* Foco visível no encerramento (fundo petróleo): anel claro nos dois botões */
.medfy-fechamento a.elementor-button:focus-visible { outline: 2px solid #E5E2DD !important; outline-offset: 4px; box-shadow: none !important; }
