/* v1.0.118–119 — revisão exclusiva de celular. Não altera tablet, desktop ou ultrawide. */
@media (max-width: 767px) {
	/* Cabeçalho: marca legível, fundo escuro e três ações de toque de 44px. */
	body.gf-site .gf-header,
	body.gf-site .gf-header.gf-mini,
	body.gf-site .gf-header.gf-scrolled {
		background: #0d1c2b !important;
		padding-inline: 12px !important;
		border-color: #0d1c2b !important;
	}
	body.gf-site .gf-header .gf-nav {
		width: 100% !important;
		max-width: 100% !important;
		min-height: 84px !important;
		padding: 0 !important;
		gap: 8px !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		flex-wrap: nowrap !important;
	}
	body.gf-site .gf-header .gf-brand {
		flex: 1 1 auto !important;
		width: auto !important;
		min-width: 100px !important;
		max-width: 200px !important;
	}
	body.gf-site .gf-header .gf-brand .elementor-widget,
	body.gf-site .gf-header .gf-brand a,
	body.gf-site .gf-header .gf-brand img {
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
	}
	body.gf-site .gf-header .gf-nav-burger-visible,
	body.gf-site .gf-header .gf-nav-burger-visible .elementor-widget-container,
	body.gf-site .gf-header .gf-nav-burger-visible .elementor-icon-wrapper,
	body.gf-site .gf-header .gf-nav-burger-visible .elementor-icon,
	body.gf-site .gf-header .gf-nav-login-widget,
	body.gf-site .gf-header .gf-nav-login-wrap,
	body.gf-site .gf-header .gf-login-btn,
	body.gf-site .gf-header .gf-nav-cta,
	body.gf-site .gf-header .gf-nav-cta .elementor-button {
		flex: 0 0 44px !important;
		width: 44px !important;
		min-width: 44px !important;
		max-width: 44px !important;
		height: 44px !important;
		min-height: 44px !important;
		padding: 0 !important;
	}
	body.gf-site .gf-header .gf-nav-cta .elementor-button { position: relative; }
	body.gf-site .gf-header .gf-nav-cta .elementor-button-text {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		overflow: hidden !important;
		clip-path: inset(50%) !important;
		white-space: nowrap !important;
	}
	body.gf-site .gf-header .gf-nav-cta .elementor-button::after {
		content: "\f095" !important;
		display: block !important;
		position: static !important;
		font: 900 18px/1 "Font Awesome 5 Free" !important;
		color: inherit !important;
		background: none !important;
		transform: none !important;
	}
	body.gf-site .gf-header .gf-nav-cta .elementor-button-content-wrapper { width: 0 !important; }
	body.gf-site .gf-native-header__inner {
		display: flex !important;
		width: 100% !important;
		min-height: 84px !important;
		gap: 8px !important;
	}
	body.gf-site .gf-native-header__actions { flex: 0 0 auto; gap: 8px !important; }
	body.gf-site .gf-native-header .gf-menu-toggle,
	body.gf-site .gf-native-header .gf-native-header__login,
	body.gf-site .gf-native-header .gf-native-header__service {
		flex: 0 0 44px !important;
		width: 44px !important;
		min-width: 44px !important;
		max-width: 44px !important;
		height: 44px !important;
		min-height: 44px !important;
		padding: 0 !important;
	}
	body.gf-site .gf-native-header .gf-native-header__service span {
		display: block !important;
		position: absolute;
		width: 1px; height: 1px;
		clip-path: inset(50%); overflow: hidden;
	}
	body.gf-site .gf-native-header .gf-native-header__service::before { content: "\f095"; font: 900 18px/1 "Font Awesome 5 Free"; }

	/* O padding legado do inner deslocava os controles para fora do vídeo curto. */
	body.gf-site .gf-video-hero > .e-con-inner {
		position: static !important;
		min-height: 0 !important;
		height: 100% !important;
		padding: 0 !important;
	}

	/* Conteúdo de leitura não depende da animação de entrada em uma tela curta. */
	body.gf-site .gf-reveal,
	body.gf-site .gfx-reveal {
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
		transition: none !important;
	}

	/* Uma margem externa, sem somar padding de três contêineres. */
	body.gf-site .elementor .e-con.e-parent:not(.gf-header):not(.gf-video-hero):not(.htec-css-engine):not(.gfx-css-engine):not(.gftm-home-slider) {
		padding-inline: 18px !important;
	}
	body.gf-site .elementor .e-con.e-parent:not(.gf-header):not(.gf-video-hero):not(.htec-css-engine):not(.gfx-css-engine) > .e-con-inner {
		width: 100% !important;
		max-width: 100% !important;
		padding-inline: 0 !important;
	}
	body.gf-site .elementor .e-con-inner > .gf-reveal:not(.gf-form-card),
	body.gf-site .elementor .e-con-inner > .gfx-reveal:not(.gfx-card):not(.gfx-dif-card),
	body.gf-site .elementor-element-476631a4 {
		width: 100% !important;
		max-width: 100% !important;
		padding-inline: 0 !important;
	}
	body.gf-site .elementor h1.elementor-heading-title,
	body.gf-site .elementor .gf-hero-title .elementor-heading-title {
		font-size: clamp(26px, 7.5vw, 32px) !important;
		line-height: 1.22 !important;
		letter-spacing: 0 !important;
	}
	body.gf-site .elementor h2.elementor-heading-title,
	body.gf-site .gf2907-editorial-head h2 {
		font-size: clamp(24px, 6.6vw, 28px) !important;
		line-height: 1.25 !important;
		letter-spacing: 0 !important;
	}
	body.gf-site .elementor-widget-text-editor,
	body.gf-site .elementor-widget-text-editor p {
		font-size: 16px !important;
		line-height: 1.65 !important;
		overflow-wrap: anywhere;
	}
	body.gf-site #topo.gfx-hero .elementor-widget-heading,
	body.gf-site #topo.gfx-hero .elementor-widget-text-editor {
		width: 100% !important;
		max-width: 100% !important;
	}
	body.gf-site .gf-area-card,
	body.gf-site .gf-stat-card,
	body.gf-site .gfx-card,
	body.gf-site .gfx-dif-card {
		min-height: 0 !important;
		padding: 24px 20px !important;
	}
	body.gf-site .gf-cta-pair,
	body.gf-site .gfx-cta-pair {
		width: 100% !important;
		padding-inline: 0 !important;
		gap: 12px !important;
	}
	body.gf-site .gf-cta-pair .elementor-button,
	body.gf-site .gfx-cta-pair .elementor-button {
		min-height: 44px;
		padding: 14px 16px !important;
		white-space: normal !important;
		line-height: 1.45 !important;
	}

	/* O widget HTML da grade colapsava a 18px, embora reservasse 250px de altura. */
	body.gf-site #reconhecimento .elementor-widget-html,
	body.gf-site #reconhecimento .elementor-widget-container,
	body.gf-site #reconhecimento .gf2907-logo-rail {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}
	body.gf-site #reconhecimento .gf2907-logo-rail {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 12px !important;
	}
	body.gf-site #reconhecimento .gf2907-logo-rail a {
		min-height: 108px !important;
		opacity: 1 !important;
		filter: none !important;
	}
	body.gf-site #reconhecimento > .e-con-inner {
		padding-block: 48px !important;
		gap: 26px !important;
	}

	/* Foto vertical: a borda superior nunca é recortada. */
	body.gf-site .gftm-slide { grid-template-columns: minmax(0, 1fr) !important; }
	body.gf-site .gftm-slide__photo {
		min-height: 0 !important;
		height: auto !important;
		aspect-ratio: 4 / 5;
		background-size: cover !important;
		background-position: center top !important;
	}
	body.gf-site .gftm-slide__content { padding: 28px 22px !important; }
	body.gf-site .gftm-slide h3 { font-size: 26px !important; line-height: 1.25 !important; }
	body.gf-site .gftm-slide__bio,
	body.gf-site .gftm-slide__bio p { font-size: 16px !important; line-height: 1.65 !important; }

	/* Notícias: a imagem ocupa a largura do card, antes do texto. */
	body.gf-site .gf2907-editorial-blog { width: 100% !important; padding-inline: 0 !important; }
	body.gf-site .gf2907-editorial-side { gap: 24px !important; }
	body.gf-site .gf2907-editorial-card,
	body.gf-site .gf2907-editorial-side-card {
		display: flex !important;
		flex-direction: column !important;
		gap: 0 !important;
		width: 100% !important;
		min-width: 0 !important;
		padding: 0 !important;
		margin: 0 !important;
	}
	body.gf-site .gf2907-editorial-card .gf2907-editorial-image {
		display: block !important;
		width: 100% !important;
		min-height: 0 !important;
		height: auto !important;
		aspect-ratio: 16 / 9;
	}
	body.gf-site .gf2907-editorial-card .gf2907-editorial-image img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		object-position: center !important;
	}
	body.gf-site .gf2907-editorial-copy { padding: 20px 0 24px !important; }
	body.gf-site .gf2907-editorial-copy h3 {
		font-size: 21px !important;
		line-height: 1.3 !important;
		-webkit-line-clamp: unset !important;
		max-height: none !important;
	}

	/* Contato: ícone e dados na mesma linha; e-mail pode quebrar sem vazar. */
	body.gf-site .gf-contact-item { padding-block: 16px !important; margin-top: 0 !important; }
	body.gf-site .gf-contact-item .elementor-icon-box-wrapper {
		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		gap: 14px !important;
		text-align: left !important;
	}
	body.gf-site .gf-contact-item .elementor-icon-box-icon {
		flex: 0 0 44px !important;
		width: 44px !important;
		margin: 0 !important;
	}
	body.gf-site .gf-contact-item .elementor-icon {
		display: grid !important;
		place-items: center !important;
		width: 44px !important;
		height: 44px !important;
		padding: 0 !important;
		font-size: 21px !important;
	}
	body.gf-site .gf-contact-item .elementor-icon-box-content {
		flex: 1 1 0 !important;
		min-width: 0 !important;
		text-align: left !important;
	}
	body.gf-site .gf-contact-item .elementor-icon-box-title { margin: 0 0 5px !important; }
	body.gf-site .gf-contact-item .elementor-icon-box-description {
		margin: 0 !important;
		font-size: 14px !important;
		line-height: 1.5 !important;
		overflow-wrap: anywhere;
	}
	body.gf-site .gf-form-card,
	body.gf-site .gfx-contact-form,
	body.gf-site .gf-native-contact__card { padding: 24px 18px !important; min-width: 0 !important; max-width: 100% !important; }
	body.gf-site .gf-native-contact__grid,
	body.gf-site .gf-native-contact__row { grid-template-columns: minmax(0, 1fr) !important; }
	body.gf-site .gf-native-contact__grid { gap: 28px !important; }
	body.gf-site .gf-native-contact__card::before { display: none !important; }
	body.gf-site .gf-native-contact { padding: 40px 18px !important; }
	body.gf-site .gf-native-contact__grid { width: 100% !important; }
	body.gf-site .gf-native-contact__copy h2 { font-size: 26px !important; line-height: 1.25 !important; }
	body.gf-site .gf-native-contact__details a { overflow-wrap: anywhere; min-width: 0; }
	body.gf-site .gf-native-footer__grid {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 32px !important;
	}
	body.gf-site .gf-native-footer__grid > *,
	body.gf-site .gf-native-footer__contact,
	body.gf-site .gf-native-footer__contact li,
	body.gf-site .gf-native-footer__contact a { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
	body.gf-site .gf-native-footer .gf-newsletter {
		grid-template-columns: minmax(0, 1fr) !important;
		padding-inline: 0 !important;
		gap: 24px !important;
	}
	body.gf-site .gf-native-footer .gf-newsletter__form { grid-template-columns: minmax(0, 1fr) !important; }
	body.gf-site .gf-categories a { min-height: 44px; display: inline-flex; align-items: center; }
	body.gf-site .gf-map-wrap { gap: 28px !important; }
	body.gf-site .gf-map-wrap .elementor-widget-google_maps,
	body.gf-site .gf-map-wrap .elementor-widget-google_maps .elementor-widget-container,
	body.gf-site .gf-map-wrap iframe {
		height: 280px !important;
		min-height: 0 !important;
		max-height: 280px !important;
	}
	body.gf-site .gf-native-contact__card input,
	body.gf-site .gf-native-contact__card select,
	body.gf-site .gf-native-contact__card textarea,
	body.gf-site .gf-form-card input,
	body.gf-site .gf-form-card select,
	body.gf-site .gf-form-card textarea { max-width: 100%; min-width: 0; font-size: 16px !important; }

	/* Painéis fechados não podem desenhar sombra sobre a página nem receber foco. */
	body.gf-site .gf-floating-menu-panel:not(.gf-open),
	body.gf-site .gf-slidein-panel:not(.gf-open) { visibility: hidden !important; box-shadow: none !important; }
	body.gf-site .gf-floating-menu-panel,
	body.gf-site .gf-slidein-panel { width: min(100%, 390px) !important; padding: 88px 22px 28px !important; }
	body.gf-site .gf-floating-menu-panel.gf-open,
	body.gf-site .gf-slidein-panel.gf-open { visibility: visible !important; }
	/* O cabeçalho nativo usa z-index 9990: não pode cobrir o fechar do menu. */
	body.gf-site .gf-floating-menu-overlay { z-index: 10000 !important; }
	body.gf-site .gf-floating-menu-panel { z-index: 10001 !important; }
	body.gf-site .gf-floating-menu-nav a { display: flex; align-items: center; min-height: 44px; }
	body.gf-site .gf-floating-menu-actions a {
		width: 100% !important;
		max-width: 100% !important;
		min-height: 44px !important;
		height: auto !important;
		padding: 14px 16px !important;
		white-space: normal !important;
	}
	body.gf-site .gf-floating-menu-close,
	body.gf-site .gf-slidein-close,
	body.gf-site #gf-login .gf-login__close,
	body.gf-site .gf-wa-assistant button[data-gf-wa-close] { min-width: 44px !important; min-height: 44px !important; }
	body.gf-site .gf-floating-menu-close { display: grid; place-items: center; font-size: 24px !important; line-height: 1 !important; }
	/* O teclado/tela curta não pode empurrar Continuar e Voltar para fora do modal. */
	body.gf-site .gf-wa-assistant__dialog { grid-template-rows: auto 3px minmax(0, 1fr) minmax(0, auto) auto; }
	body.gf-site .gf-wa-assistant__question { min-height: 0; max-height: 55dvh; overflow-y: auto; }
	body.gf-site .gf-wa-assistant__dialog > footer { padding-bottom: max(13px, env(safe-area-inset-bottom)); }
	body.gf-site .gf-wa-assistant__dialog > footer button { min-width: 44px; min-height: 44px; }
	body.gf-site .gf-wa-assistant__question input:not([type="checkbox"]),
	body.gf-site .gf-wa-assistant__question select,
	body.gf-site .gf-wa-assistant__question textarea,
	body.gf-site .gf-login__fields input { font-size: 16px !important; }
	body.gf-site .gf-wa-float,
	body.gf-site .gf-whatsapp,
	body.gf-site .gf-backtotop { bottom: calc(16px + env(safe-area-inset-bottom)) !important; }
}

/* v1.0.119 — foto horizontal, leitura à esquerda e formulário de borda a borda. */
@media (max-width: 767px) {
 body.gf-site #topo.gfx-hero {
  min-height: 0 !important;
  height: auto !important;
  background-color: #0d1c2b !important;
  background-size: 100% auto !important;
  background-position: center 84px !important;
  background-repeat: no-repeat !important;
 }
 body.gf-site #topo.gfx-hero::before,
 body.gf-site #topo.gfx-hero::after { display: none !important; }
 body.gf-site #topo.gfx-hero > .e-con-inner {
  padding-top: calc(84px + 56.25vw + 28px) !important;
  padding-bottom: 36px !important;
  min-height: 0 !important;
  gap: 20px !important;
  align-items: stretch !important;
 }
 body.gf-site #topo.gfx-hero .elementor-widget,
 body.gf-site #topo.gfx-hero .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
 }
 body.gf-site #topo.gfx-hero h1.elementor-heading-title {
  font-size: clamp(26px, 7.2vw, 30px) !important;
  line-height: 1.22 !important;
  text-align: left !important;
 }
 body.gf-site #topo.gfx-hero .elementor-widget-text-editor p {
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  text-align: left !important;
  margin: 0 !important;
  color: #d8e0e4 !important;
 }
 body.gf-site #topo.gfx-hero .gfx-eyebrow .elementor-heading-title {
  font-size: 10px !important;
  letter-spacing: .18em !important;
  line-height: 1.5 !important;
 }
 body.gf-site #topo.gfx-hero .gfx-cta-pair {
  flex-direction: column !important;
  align-items: stretch !important;
  margin-top: 4px !important;
  gap: 12px !important;
 }
 body.gf-site #topo.gfx-hero .gfx-cta-pair > .elementor-element { width: 100% !important; max-width: 100% !important; }
 body.gf-site #topo.gfx-hero .gfx-cta-pair .elementor-button {
  width: 100% !important;
  min-height: 52px !important;
  padding: 16px 12px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  letter-spacing: .055em !important;
  text-align: center !important;
 }
 body.gf-site #contato .gf-form-card,
 body.gf-site #agendar .gf-form-card,
 body.gf-site .gf-native-contact__card {
  width: 100vw !important;
  max-width: none !important;
  margin-inline: calc(50% - 50vw) !important;
  padding: 28px 18px !important;
  border-radius: 0 !important;
 }
}

/* v1.0.120 — Blog: assinatura compacta, título proporcional e contato como a Home. */
@media (max-width: 767px) {
 /* As bases flex de desktop viravam alturas quando o eixo passava a coluna. */
 body.gf-site .gfx-blogbar-form { flex: 0 0 auto !important; width: 100%; min-height: 0 !important; height: auto !important; }
 body.gf-site .gfx-blogbar-row { flex-direction: column !important; align-items: stretch; }
 body.gf-site .gfx-blogbar-row input[type="email"] {
  flex: 0 0 auto !important;
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  padding: 12px 16px !important;
  font-size: 16px !important;
  line-height: 22px !important;
 }
 body.gf-site .gfx-blogbar-row button[type="submit"] { min-height: 48px; }
 /* Mesma tipografia do h3 dos cards regulares; mantém o h2 semântico. */
 body.gf-site .gf2907-featured-copy h2 { font-size: 17px !important; line-height: 1.38 !important; margin: 16px 0 13px !important; }

 /* Só o Blog: a paleta do contato é a mesma da Home. Não altera camadas/medidas. */
 body.gf-site:has(#topo.gfx-blog-hero) #agendar { background-color: #f6f7f8 !important; }
 body.gf-site:has(#topo.gfx-blog-hero) #agendar > .e-con-inner > .e-con:first-child,
 body.gf-site:has(#topo.gfx-blog-hero) #agendar > .e-con-inner > .e-con:first-child::before {
  background-color: transparent !important;
 }
 /* Cores escuras limitadas à coluna de texto, nunca ao formulário ou aos mapas. */
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .elementor-element-3b4da503 { line-height: 1.7; }
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .elementor-element-3b4da503 h2.elementor-heading-title,
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .elementor-element-3b4da503 .elementor-icon-box-title,
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .elementor-element-3b4da503 .elementor-icon-box-title a { color: #0d1c2b !important; }
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .elementor-element-6021faf2 .elementor-heading-title { color: #a86315 !important; }
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .elementor-element-3b4da503 .elementor-widget-text-editor,
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .elementor-element-3b4da503 .elementor-widget-text-editor p,
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .elementor-element-3b4da503 .elementor-icon-box-description { color: #596064 !important; }
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .elementor-element-3b4da503 .elementor-icon-box-title { line-height: 1.15 !important; }
 /* Mantém o card azul e restaura somente a borda cobre e o subtítulo da Home. */
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .gf-form-card { border-color: #a86315 !important; }
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .gf-form-card .elementor-element-4d92b4f6,
 body.gf-site:has(#topo.gfx-blog-hero) #agendar .gf-form-card .elementor-element-4d92b4f6 p { color: #acb9bd !important; }

 /* v1.0.127 — Home no celular: espaços grandes demais entre seções e foto
    pequena em "Nossos Valores". Cada seção tinha 48–64px de respiro em cima
    E embaixo, e como não há margem entre as seções, os dois respiros somavam
    (ex.: 56+64=120px entre os botões do Hero e "Prova de Resultados"). Reduz
    à metade só os trechos apontados pelo cliente; as demais seções (áreas,
    especialistas, etc.) não foram tocadas. */
 body.gf-site .elementor-element-9f4b71ec > .e-con-inner {
  padding-top: 28px !important;
  padding-bottom: 28px !important;
 }
 body.gf-site #resultados > .e-con-inner { padding-top: 32px !important; }
 body.gf-site #blog > .e-con-inner { padding-bottom: 32px !important; }
 body.gf-site #contato > .e-con-inner { padding-top: 32px !important; }

 /* A foto de "Nossos Valores" ficava presa numa proporção bem panorâmica
    (2560×1188, herdada do recorte de desktop de 40% de largura) e, mesmo já
    ocupando 100% da largura no celular, saía baixinha (~148px). Uma proporção
    menos larga deixa a mesma foto visivelmente maior em altura. */
 body.gf-site #sobre .elementor-element-2486ed0d {
  aspect-ratio: 4 / 3 !important;
  background-size: cover !important;
 }

 /* A primeira matéria em destaque do Blog da Home tinha uma borda cinza de
    1px ao redor do card inteiro (pensada pra um fundo branco no desktop);
    no celular ela ficava colada na foto, parecendo uma moldura solta. Os
    demais cards (side-card) nunca tiveram essa borda. */
 body.gf-site .gf2907-editorial-featured { border: 0 !important; }

 /* Os controles de pausa/som do vídeo da Home ficavam flutuando sobre a
    própria imagem (mesma posição absoluta do desktop); a pedido do cliente,
    no celular eles saem de cima do vídeo e vão para uma faixa própria,
    logo abaixo dele. O JS (mobile-layout.js) move o elemento para virar
    irmão do vídeo em vez de filho; aqui só estiliza essa nova posição. */
 body.gf-site .gf-video-hero-controls {
  position: static !important;
  inset: auto !important;
  justify-content: center !important;
  margin: 14px auto 0 !important;
 }
}
