/*
 * Headers Hidrojap — ajustes responsivos.
 * O desktop acima de 1024px permanece sob controle exclusivo do Elementor.
 */

/* Estrutura compartilhada por tablet e mobile. */
@media (max-width: 1024px) {
	.hidrojap-header {
		box-sizing: border-box;
		width: 100%;
		max-width: 100vw;
		align-items: center !important;
		justify-content: space-between !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		gap: 16px !important;
	}

	.hidrojap-header__logo {
		flex: 0 0 auto !important;
		min-width: 0;
	}

	.hidrojap-header__logo a {
		display: block;
		width: 100%;
	}

	.hidrojap-header__logo img {
		display: block;
		max-width: 100%;
		height: auto;
	}

	.hidrojap-header__menu {
		/* O header — e não o widget de 44px — contém o dropdown. */
		position: static !important;
		flex: 0 0 44px !important;
		width: 44px !important;
		max-width: 44px !important;
		min-width: 44px;
		min-height: 44px;
		align-items: flex-end !important;
		justify-content: center !important;
	}

	.hidrojap-header__menu .elementor-menu-toggle {
		box-sizing: border-box;
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
		margin: 0 !important;
		padding: 10px;
	}

	.hidrojap-header__menu .elementor-nav-menu--dropdown {
		position: absolute !important;
		top: 100% !important;
		right: var(--hidrojap-header-side-padding) !important;
		left: var(--hidrojap-header-side-padding) !important;
		box-sizing: border-box;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		overflow-x: hidden;
		z-index: 1000;
	}

	.hidrojap-header__menu .elementor-nav-menu--dropdown .elementor-nav-menu,
	.hidrojap-header__menu .elementor-nav-menu--dropdown .menu-item {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
	}

	.hidrojap-header__menu .elementor-nav-menu--dropdown .elementor-item {
		box-sizing: border-box;
		display: flex;
		align-items: center;
		width: 100%;
		min-height: 44px;
		padding: 12px 20px !important;
		white-space: normal;
		overflow-wrap: anywhere;
	}

	/* Estados atual e interativo alinhados à identidade aprovada no desktop. */
	.hidrojap-header__menu .elementor-nav-menu--dropdown .current-menu-item > .elementor-item,
	.hidrojap-header__menu .elementor-nav-menu--dropdown .current_page_item > .elementor-item,
	.hidrojap-header__menu .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
	.hidrojap-header__menu .elementor-nav-menu--dropdown .elementor-item:hover,
	.hidrojap-header__menu .elementor-nav-menu--dropdown .elementor-item:focus,
	.hidrojap-header__menu .elementor-nav-menu--dropdown .elementor-item:focus-visible {
		background-color: #CF171F !important;
		color: #FFFFFF !important;
	}
}

/* Tablet: 768px a 1024px. */
@media (min-width: 768px) and (max-width: 1024px) {
	.hidrojap-header {
		--hidrojap-header-side-padding: 24px;
		min-height: 96px !important;
		padding: 8px var(--hidrojap-header-side-padding) !important;
	}

	.hidrojap-header__logo {
		width: 90px !important;
		max-width: 90px !important;
	}

	.hidrojap-header__logo img {
		width: 90px !important;
	}
}

/* Mobile: até 767px. */
@media (max-width: 767px) {
	.hidrojap-header {
		--hidrojap-header-side-padding: 18px;
		min-height: 80px !important;
		padding: 6px var(--hidrojap-header-side-padding) !important;
		gap: 12px !important;
	}

	.hidrojap-header__logo {
		width: 78px !important;
		max-width: 78px !important;
	}

	.hidrojap-header__logo img {
		width: 78px !important;
	}

	.hidrojap-header__menu .elementor-nav-menu--dropdown .elementor-item {
		padding-right: 18px !important;
		padding-left: 18px !important;
	}
}

/*
 * Conteúdo responsivo do site.
 * Todas as regras permanecem cercadas em até 1024px para preservar o desktop.
 */
@media (max-width: 1024px) {
	.elementor [class*="hidrojap-"] {
		box-sizing: border-box;
		min-width: 0;
	}

	.elementor .elementor-element.hidrojap-why__inner,
	.elementor .elementor-element.hidrojap-proof__inner,
	.elementor .elementor-element.hidrojap-testimonials__inner,
	.elementor .elementor-element.hidrojap-cta__inner,
	.elementor .elementor-element.hidrojap-company__inner,
	.elementor .elementor-element.hidrojap-company-values__inner,
	.elementor .elementor-element.hidrojap-company-values__photo-wrap,
	.elementor .elementor-element.hidrojap-differentials__inner,
	.elementor .elementor-element.hidrojap-services__inner,
	.elementor .elementor-element.hidrojap-works__inner,
	.elementor .elementor-element.hidrojap-contact__inner {
		width: 100%;
		max-width: 930px;
		padding-right: clamp(36px, 6vw, 64px);
		padding-left: clamp(36px, 6vw, 64px);
	}

	.elementor .elementor-element.hidrojap-hero .hidrojap-hero__building,
	.elementor .elementor-element.hidrojap-company__media .hidrojap-company__image,
	.elementor .elementor-element.hidrojap-company-values__photo-wrap .hidrojap-company-values__photo,
	.elementor .elementor-element.hidrojap-proof__media .hidrojap-proof__image,
	.elementor .elementor-element.hidrojap-proof__badges .hidrojap-proof__badges-image,
	.elementor .elementor-element.hidrojap-work-card .hidrojap-work-card__image {
		height: auto;
		max-width: 100%;
	}

	.elementor .elementor-element.hidrojap-cta__button,
	.elementor .elementor-element.hidrojap-contact__map-button {
		min-height: 44px;
	}

	/* Rodapé global. */
	.elementor .elementor-element.hidrojap-footer {
		padding-top: 32px;
	}

	.elementor .elementor-element.hidrojap-footer__contact,
	.elementor .elementor-element.hidrojap-footer__brand,
	.elementor .elementor-element.hidrojap-footer__certifications {
		flex-wrap: wrap;
	}

	.elementor .elementor-element.hidrojap-footer__contact {
		gap: 14px 18px;
		padding-right: 24px;
		padding-left: 24px;
	}

	.elementor .elementor-element.hidrojap-footer__brand {
		gap: 24px 36px;
		padding-right: 24px;
		padding-left: 24px;
	}

	.elementor .elementor-element.hidrojap-footer__bottom {
		height: auto;
		min-height: 45px;
		padding: 10px 20px;
		text-align: center;
	}

	/* Home. */
	.elementor .elementor-element.hidrojap-why__grid {
		gap: 24px 32px;
	}

	.elementor .elementor-element.hidrojap-why__item {
		width: calc(50% - 16px);
		min-height: 0;
	}

	.elementor .elementor-element.hidrojap-why__copy {
		width: auto;
		flex: 1 1 auto;
	}

	.elementor .elementor-element.hidrojap-proof__media,
	.elementor .elementor-element.hidrojap-proof__content {
		min-width: 0;
	}

	.elementor .elementor-element.hidrojap-testimonials__heading {
		padding-right: clamp(36px, 6vw, 64px);
		padding-left: clamp(36px, 6vw, 64px);
	}

	.elementor .elementor-element.hidrojap-testimonials__carousel,
	.elementor .elementor-element.hidrojap-testimonials__carousel .elementor-main-swiper {
		width: 100%;
		max-width: 100%;
	}

	/* A Empresa. */
	.elementor .elementor-element.hidrojap-company__intro,
	.elementor .elementor-element.hidrojap-company-values__inner {
		gap: 28px;
	}

	.elementor .elementor-element.hidrojap-company__media,
	.elementor .elementor-element.hidrojap-company__copy,
	.elementor .elementor-element.hidrojap-company-values__left,
	.elementor .elementor-element.hidrojap-company-values__right {
		min-width: 0;
	}

	.elementor .elementor-element.hidrojap-company-values__photo-wrap {
		padding-right: clamp(36px, 6vw, 64px);
		padding-left: clamp(36px, 6vw, 64px);
	}

	/* Diferenciais. */
	.elementor .elementor-element.hidrojap-differentials__grid {
		gap: 18px 24px;
	}

	.elementor .elementor-element.hidrojap-differentials__item {
		width: calc(50% - 12px);
		padding: 20px;
	}

	.elementor .elementor-element.hidrojap-differentials__number {
		width: auto;
		flex: 0 0 auto;
	}

	.elementor .elementor-element.hidrojap-differentials__item-content {
		min-width: 0;
		flex: 1 1 auto;
	}

	/* Serviços. */
	.elementor .elementor-element.hidrojap-services__grid-top,
	.elementor .elementor-element.hidrojap-services__grid-bottom,
	.elementor .elementor-element.hidrojap-services__grid {
		gap: 16px;
	}

	.elementor .elementor-element.hidrojap-services__item {
		width: calc(25% - 12px);
		min-width: 0;
		min-height: 150px;
		cursor: pointer;
		touch-action: manipulation;
	}

	.elementor .elementor-element.hidrojap-services__detail {
		width: 100%;
		max-width: 100%;
		height: auto;
	}

	/* Obras. */
	.elementor .elementor-element.hidrojap-works__grid {
		gap: 12px;
	}

	.elementor .elementor-element.hidrojap-work-card {
		width: calc(50% - 6px);
	}

	.elementor .elementor-element.hidrojap-work-card__gallery {
		width: 100%;
		aspect-ratio: 9 / 10;
		overflow: hidden;
	}

	.elementor .elementor-element.hidrojap-work-card__image {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	/* Contato. */
	.elementor .elementor-element.hidrojap-contact__main {
		width: 100%;
	}

	.elementor .elementor-element.hidrojap-contact__info,
	.elementor .elementor-element.hidrojap-contact__form {
		min-width: 0;
	}

	.elementor .elementor-element.hidrojap-contact__form-widget,
	.elementor .elementor-element.hidrojap-contact__form-widget form,
	.elementor .elementor-element.hidrojap-contact__form-widget .elementor-form-fields-wrapper,
	.elementor .elementor-element.hidrojap-contact__form-widget .elementor-field-group,
	.elementor .elementor-element.hidrojap-contact__form-widget input,
	.elementor .elementor-element.hidrojap-contact__form-widget textarea,
	.elementor .elementor-element.hidrojap-contact__form-widget select,
	.elementor .elementor-element.hidrojap-contact__form-widget button,
	.elementor .elementor-element.hidrojap-contact__map,
	.elementor .elementor-element.hidrojap-contact__map iframe {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
	}

	.elementor .elementor-element.hidrojap-contact__form-widget input,
	.elementor .elementor-element.hidrojap-contact__form-widget select,
	.elementor .elementor-element.hidrojap-contact__form-widget button {
		min-height: 44px;
	}
}

/* Mobile: reorganiza o conteúdo no fluxo normal. */
@media (max-width: 767px) {
	.elementor .elementor-element.hidrojap-why,
	.elementor .elementor-element.hidrojap-testimonials,
	.elementor .elementor-element.hidrojap-cta,
	.elementor .elementor-element.hidrojap-company,
	.elementor .elementor-element.hidrojap-company-values,
	.elementor .elementor-element.hidrojap-differentials,
	.elementor .elementor-element.hidrojap-services,
	.elementor .elementor-element.hidrojap-works,
	.elementor .elementor-element.hidrojap-contact {
		padding-right: 20px;
		padding-left: 20px;
	}

	.elementor .elementor-element.hidrojap-why__inner,
	.elementor .elementor-element.hidrojap-testimonials__inner,
	.elementor .elementor-element.hidrojap-testimonials__heading,
	.elementor .elementor-element.hidrojap-cta__inner,
	.elementor .elementor-element.hidrojap-company__inner,
	.elementor .elementor-element.hidrojap-company-values__inner,
	.elementor .elementor-element.hidrojap-company-values__photo-wrap,
	.elementor .elementor-element.hidrojap-differentials__inner,
	.elementor .elementor-element.hidrojap-services__inner,
	.elementor .elementor-element.hidrojap-works__inner,
	.elementor .elementor-element.hidrojap-contact__inner {
		width: 100%;
		max-width: 100%;
		padding-right: 0;
		padding-left: 0;
	}

	.elementor .elementor-element.hidrojap-hero {
		min-height: 520px;
	}

	.elementor .elementor-element.hidrojap-hero__content {
		width: 100%;
		max-width: 100%;
		padding-right: 20px;
		padding-left: 20px;
	}

	.elementor .elementor-element.hidrojap-hero__title,
	.elementor .elementor-element.hidrojap-hero__title .elementor-heading-title {
		width: 100%;
		max-width: 100%;
		overflow-wrap: normal;
	}

	.elementor .elementor-element.hidrojap-hero .hidrojap-hero__building {
		top: 285px;
		right: -66%;
		left: auto;
		width: 150%;
		max-width: none;
	}

	.elementor .elementor-element.hidrojap-why {
		padding-top: 42px;
		padding-bottom: 48px;
	}

	.elementor .elementor-element.hidrojap-why__inner {
		margin-top: 0;
		padding-top: 0;
		padding-bottom: 0;
	}

	.elementor .elementor-element.hidrojap-why__grid,
	.elementor .elementor-element.hidrojap-why__item {
		width: 100%;
	}

	.elementor .elementor-element.hidrojap-why__item {
		align-items: flex-start;
		gap: 16px;
	}

	.elementor .elementor-element.hidrojap-proof__inner,
	.elementor .elementor-element.hidrojap-company__intro,
	.elementor .elementor-element.hidrojap-company-values__inner,
	.elementor .elementor-element.hidrojap-contact__main {
		flex-direction: column;
	}

	.elementor .elementor-element.hidrojap-proof__media,
	.elementor .elementor-element.hidrojap-proof__content,
	.elementor .elementor-element.hidrojap-company__media,
	.elementor .elementor-element.hidrojap-company__copy,
	.elementor .elementor-element.hidrojap-company-values__left,
	.elementor .elementor-element.hidrojap-company-values__right,
	.elementor .elementor-element.hidrojap-contact__info,
	.elementor .elementor-element.hidrojap-contact__form {
		width: 100%;
		max-width: 100%;
	}

	.elementor .elementor-element.hidrojap-proof__media {
		min-height: 0;
	}

	.elementor .elementor-element.hidrojap-proof__content {
		min-height: 0;
		padding: 28px 20px;
	}

	.elementor .elementor-element.hidrojap-testimonials,
	.elementor .elementor-element.hidrojap-cta {
		padding-top: 42px;
		padding-bottom: 42px;
	}

	.elementor .elementor-element.hidrojap-testimonials__grid {
		gap: 20px;
	}

	.elementor .elementor-element.hidrojap-cta__button {
		width: 100%;
		max-width: 320px;
		padding-right: 20px;
		padding-left: 20px;
		text-align: center;
	}

	/* A Empresa: elimina a composição negativa somente no mobile. */
	.elementor .elementor-element.hidrojap-company__intro,
	.elementor .elementor-element.hidrojap-company-values__inner {
		gap: 28px;
	}

	.elementor .elementor-element.hidrojap-company__media {
		min-height: 0;
	}

	.elementor .elementor-element.hidrojap-company__media .hidrojap-company__image {
		display: block;
		width: 100%;
		height: auto;
	}

	.elementor .elementor-element.hidrojap-company-values__photo-wrap {
		min-height: 0;
		margin-top: 0;
		margin-bottom: 0;
		padding-top: 28px;
	}

	.elementor .elementor-element.hidrojap-company-values__photo-wrap .hidrojap-company-values__photo {
		display: block;
		width: 100%;
		height: auto;
	}

	.elementor .elementor-element.hidrojap-cta--company {
		margin-top: 0;
	}

	/* Diferenciais: uma coluna legível. */
	.elementor .elementor-element.hidrojap-differentials__grid {
		flex-direction: column;
		gap: 10px;
	}

	.elementor .elementor-element.hidrojap-differentials__item {
		width: 100%;
		min-height: 0;
		padding: 18px 0;
	}

	.elementor .elementor-element.hidrojap-differentials__item-heading {
		width: 100%;
		gap: 12px;
	}

	.elementor .elementor-element.hidrojap-differentials__item-content {
		width: auto;
	}

	/* Serviços: duas colunas e painel após os oito itens. */
	.elementor .elementor-element.hidrojap-services__inner > .hidrojap-services__intro {
		order: 1;
	}

	.elementor .elementor-element.hidrojap-services__grid-top {
		order: 2;
		margin-top: 28px;
	}

	.elementor .elementor-element.hidrojap-services__grid-bottom {
		order: 3;
	}

	.elementor .elementor-element.hidrojap-services__detail {
		order: 4;
		min-height: 0;
		margin-top: 18px;
		padding: 22px 20px;
	}

	.elementor .elementor-element.hidrojap-services__grid-top,
	.elementor .elementor-element.hidrojap-services__grid-bottom,
	.elementor .elementor-element.hidrojap-services__grid {
		width: 100%;
		gap: 12px;
		flex-wrap: wrap;
	}

	.elementor .elementor-element.hidrojap-services__item {
		width: calc(50% - 6px);
		min-height: 156px;
		padding: 14px 8px;
	}

	.elementor .elementor-element.hidrojap-services__item-icon {
		width: min(86px, 100%);
	}

	.elementor .elementor-element.hidrojap-services__item-title,
	.elementor .elementor-element.hidrojap-services__item-title .elementor-heading-title {
		width: 100%;
		max-width: 100%;
		text-align: center;
		overflow-wrap: anywhere;
	}

	/* Obras: cards em uma coluna e overlay acessível por toque. */
	.elementor .elementor-element.hidrojap-work-card {
		width: 100%;
	}

	.elementor .elementor-element.hidrojap-work-card__gallery {
		aspect-ratio: 9 / 10;
	}

	.elementor .elementor-element.hidrojap-work-card__overlay {
		pointer-events: none;
	}

	/* Contato empilhado e sem margens negativas. */
	.elementor .elementor-element.hidrojap-contact__main {
		gap: 0;
	}

	.elementor .elementor-element.hidrojap-contact__info,
	.elementor .elementor-element.hidrojap-contact__form {
		margin: 0;
		padding: 26px 22px;
	}

	.elementor .elementor-element.hidrojap-contact__map {
		overflow: hidden;
	}

	/* Rodapé mobile. */
	.elementor .elementor-element.hidrojap-footer__contact {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.elementor .elementor-element.hidrojap-footer__contact-item {
		width: 100%;
		justify-content: center;
		text-align: center;
	}

	.elementor .elementor-element.hidrojap-footer__brand {
		flex-direction: column;
		gap: 22px;
	}

	.elementor .elementor-element.hidrojap-footer__certifications {
		width: 100%;
		justify-content: center;
		gap: 12px;
	}
}

/* Em touch o conteúdo do overlay não depende de hover. */
@media (max-width: 1024px) and (hover: none),
	(max-width: 1024px) and (pointer: coarse) {
	.elementor .elementor-element.hidrojap-work-card__overlay {
		opacity: 1;
		visibility: visible;
		transform: none;
	}
}

/* Ajustes finais para larguras mobile estreitas. */
@media (max-width: 374px) {
	.elementor .elementor-element.hidrojap-header {
		--hidrojap-header-side-padding: 14px;
		padding-right: var(--hidrojap-header-side-padding) !important;
		padding-left: var(--hidrojap-header-side-padding) !important;
	}

	.elementor .elementor-element.hidrojap-why,
	.elementor .elementor-element.hidrojap-testimonials,
	.elementor .elementor-element.hidrojap-cta,
	.elementor .elementor-element.hidrojap-company,
	.elementor .elementor-element.hidrojap-company-values,
	.elementor .elementor-element.hidrojap-differentials,
	.elementor .elementor-element.hidrojap-services,
	.elementor .elementor-element.hidrojap-works,
	.elementor .elementor-element.hidrojap-contact {
		padding-right: 16px;
		padding-left: 16px;
	}

	.elementor .elementor-element.hidrojap-services__item {
		min-height: 150px;
		padding-right: 6px;
		padding-left: 6px;
	}

	.elementor .elementor-element.hidrojap-footer__contact,
	.elementor .elementor-element.hidrojap-footer__brand {
		padding-right: 16px;
		padding-left: 16px;
	}
}

/* Passe corretivo da Home: composição mobile dedicada, sem afetar outras páginas. */
@media (max-width: 767px) {
	body.home .elementor .elementor-element.hidrojap-hero {
		min-height: 490px;
	}

	body.home .elementor .elementor-element.hidrojap-hero__content {
		min-height: 250px;
		padding-right: 20px;
		padding-left: 20px;
	}

	body.home .elementor .elementor-element.hidrojap-hero__title .elementor-heading-title {
		font-size: clamp(32px, 10.3vw, 45px);
		line-height: 0.9;
		letter-spacing: -1px;
		white-space: normal;
		overflow-wrap: normal;
	}

	body.home .elementor .elementor-element.hidrojap-hero__eyebrow .elementor-heading-title {
		font-size: clamp(16px, 4.6vw, 19px);
		line-height: 1.15;
		letter-spacing: 0.3px;
	}

	body.home .elementor .elementor-element.hidrojap-hero .hidrojap-hero__building {
		top: 230px;
		right: -32%;
		width: 145%;
		object-position: center top;
	}

	body.home .elementor .elementor-element.hidrojap-why {
		padding-top: 34px;
		padding-bottom: 36px;
	}

	body.home .elementor .elementor-element.hidrojap-why__inner {
		gap: 16px;
	}

	body.home .elementor .elementor-element.hidrojap-why__title .elementor-heading-title {
		font-size: clamp(23px, 6.3vw, 26px);
		line-height: 1.05;
	}

	body.home .elementor .elementor-element.hidrojap-why__grid {
		padding: 0;
		row-gap: 4px;
		column-gap: 0;
	}

	body.home .elementor .elementor-element.hidrojap-why__item {
		min-height: 0;
		align-items: flex-start;
		gap: 14px;
		padding: 10px 0;
	}

	body.home .elementor .elementor-element.hidrojap-why__item > .hidrojap-why__icon {
		flex: 0 0 48px;
		width: 48px !important;
		max-width: 48px !important;
		height: auto;
		margin-top: 2px;
	}

	body.home .elementor .elementor-element.hidrojap-why__copy {
		width: auto;
		min-width: 0;
		flex: 1 1 auto;
		gap: 5px;
		padding: 0;
	}

	body.home .elementor .elementor-element.hidrojap-why__item-title .elementor-heading-title {
		font-size: 15px;
		line-height: 1.15;
	}

	body.home .elementor .elementor-element.hidrojap-why__item-text,
	body.home .elementor .elementor-element.hidrojap-why__item-text p {
		font-size: 14px;
		line-height: 1.4;
	}

	body.home .elementor .elementor-element.hidrojap-why__item-text p:last-child {
		margin-bottom: 0;
	}

	body.home .elementor .elementor-element.hidrojap-proof__inner {
		padding-right: 0;
		padding-left: 0;
	}

	body.home .elementor .elementor-element.hidrojap-proof__media,
	body.home .elementor .elementor-element.hidrojap-proof__content {
		width: 100%;
		max-width: 100%;
	}

	body.home .elementor .elementor-element.hidrojap-proof__content {
		padding: 28px 20px 26px;
	}

	body.home .elementor .elementor-element.hidrojap-proof__title .elementor-heading-title {
		font-size: clamp(23px, 6.5vw, 26px);
		line-height: 1.03;
		letter-spacing: -0.2px;
	}

	body.home .elementor .elementor-element.hidrojap-proof__text,
	body.home .elementor .elementor-element.hidrojap-proof__text p {
		font-size: 15px;
		line-height: 1.4;
	}

	body.home .elementor .elementor-element.hidrojap-proof__callout,
	body.home .elementor .elementor-element.hidrojap-proof__callout p {
		font-size: 14px;
		line-height: 1.35;
	}

	body.home .elementor .elementor-element.hidrojap-proof__badges {
		padding-top: 12px;
		padding-right: 0;
		padding-bottom: 0;
	}

	body.home .elementor .elementor-element.hidrojap-proof__badges .hidrojap-proof__badges-image {
		width: min(220px, 100%);
		max-width: 100%;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials {
		padding-top: 36px;
		padding-bottom: 36px;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__inner {
		padding-top: 0;
		padding-bottom: 0;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__title .elementor-heading-title {
		font-size: clamp(23px, 6.3vw, 26px);
		line-height: 1.05;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__grid {
		margin-top: 16px;
		gap: 0;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel {
		width: 100%;
		height: auto;
		padding-bottom: 48px;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-main-swiper,
	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .swiper-slide,
	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-testimonial,
	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-testimonial__content,
	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-testimonial__footer {
		width: 100% !important;
		max-width: none !important;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-testimonial {
		padding-right: 0;
		padding-left: 0;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-testimonial__content {
		font-size: 15px;
		line-height: 1.5;
		text-align: left;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-testimonial__text {
		font-size: 15px;
		line-height: 1.5;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-testimonial__footer {
		align-items: center;
		margin-top: 16px;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-testimonial__cite {
		width: auto !important;
		min-width: 0;
		flex: 1 1 auto;
		margin-left: 14px;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-testimonial__name {
		font-size: 14px;
		line-height: 1.3;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-testimonial__title {
		font-size: 12px;
		line-height: 1.35;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-swiper-button {
		top: auto;
		bottom: 0;
		width: 40px;
		height: 40px;
		margin: 0;
		transform: none;
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-swiper-button-prev {
		left: calc(50% - 50px);
	}

	body.home .elementor .elementor-element.hidrojap-testimonials__carousel .elementor-swiper-button-next {
		right: calc(50% - 50px);
	}

}

/* Rodapé global compacto em mobile. */
@media (max-width: 767px) {
	.elementor .elementor-element.hidrojap-footer {
		padding-top: 18px;
	}

	.elementor .elementor-element.hidrojap-footer__contact {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: center;
		column-gap: clamp(6px, 2.5vw, 12px);
		row-gap: 6px;
		padding-right: 12px;
		padding-left: 12px;
	}

	.elementor .elementor-element.hidrojap-footer__contact-item {
		width: 100% !important;
		max-width: 100%;
		min-width: 0;
		min-height: 24px;
		justify-content: center;
		text-align: center;
		margin: 0;
	}

	.elementor .elementor-element.hidrojap-footer__contact-item:nth-child(1),
	.elementor .elementor-element.hidrojap-footer__contact-item:nth-child(4) {
		grid-column: 1 / -1;
		justify-self: center;
	}

	.elementor .elementor-element.hidrojap-footer__contact-item:nth-child(2) {
		grid-column: 1;
	}

	.elementor .elementor-element.hidrojap-footer__contact-item:nth-child(3) {
		grid-column: 2;
	}

	.elementor .elementor-element.hidrojap-footer__contact-text,
	.elementor .elementor-element.hidrojap-footer__contact-text p {
		font-size: 12px;
		line-height: 1.2;
	}

	.elementor .elementor-element.hidrojap-footer__contact-item:nth-child(2) .hidrojap-footer__contact-text,
	.elementor .elementor-element.hidrojap-footer__contact-item:nth-child(2) .hidrojap-footer__contact-text p,
	.elementor .elementor-element.hidrojap-footer__contact-item:nth-child(3) .hidrojap-footer__contact-text,
	.elementor .elementor-element.hidrojap-footer__contact-item:nth-child(3) .hidrojap-footer__contact-text p {
		min-width: 0;
		font-size: clamp(10px, 2.9vw, 12px);
		white-space: nowrap;
	}

	.elementor .elementor-element.hidrojap-footer__social {
		display: flex;
		width: 32px;
		height: 32px;
		flex: 0 0 32px !important;
		align-items: center;
		justify-content: center;
	}

	.elementor .elementor-element.hidrojap-footer__social:nth-last-child(2),
	.elementor .elementor-element.hidrojap-footer__social:last-child {
		margin-right: 0;
		margin-left: 0;
	}

	.elementor .elementor-element.hidrojap-footer__social:nth-last-child(2) {
		grid-column: 1;
		justify-self: end;
	}

	.elementor .elementor-element.hidrojap-footer__social:last-child {
		grid-column: 2;
		justify-self: start;
	}

	.elementor .elementor-element.hidrojap-footer__brand {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: center;
		gap: 12px;
		padding: 14px 18px 16px;
	}

	.elementor .hidrojap-footer__logo {
		width: clamp(78px, 22vw, 92px);
		max-width: 92px;
	}

	.elementor .elementor-element.hidrojap-footer__certifications {
		width: auto;
		max-width: 230px;
		flex: 1 1 0;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 8px;
	}

	.elementor .hidrojap-footer__certification-logo {
		width: calc(50% - 4px) !important;
		max-width: 105px !important;
		height: auto;
	}

	.elementor .elementor-element.hidrojap-footer__bottom {
		min-height: 38px;
		padding: 7px 14px;
	}

	.elementor .elementor-element.hidrojap-footer__copyright,
	.elementor .elementor-element.hidrojap-footer__copyright p {
		font-size: 10px;
		line-height: 1.25;
	}
}

/* A Empresa: refinamento de leitura e ritmo vertical no mobile. */
@media (max-width: 767px) {
	body.page-id-15 .elementor .elementor-element.hidrojap-company__text p {
		font-size: clamp(13.5px, 3.5vw, 14px);
		line-height: 1.38;
		margin-bottom: 12px;
	}

	body.page-id-15 .elementor .elementor-element.hidrojap-company__text p:last-child {
		margin-bottom: 0;
	}

	body.page-id-15 .elementor .elementor-element.hidrojap-company-values__inner {
		--hidrojap-company-values-gap: 24px;
		display: flex;
		width: 100%;
		max-width: 100%;
		flex-direction: column;
		gap: var(--hidrojap-company-values-gap);
	}

	body.page-id-15 .elementor .elementor-element.hidrojap-company-values__left,
	body.page-id-15 .elementor .elementor-element.hidrojap-company-values__right {
		display: flex;
		width: 100%;
		max-width: 100%;
		flex-direction: column;
	}

	body.page-id-15 .elementor .elementor-element.hidrojap-company-values__text p:last-child {
		margin-bottom: 0;
	}

	body.page-id-15 .elementor .elementor-element.hidrojap-company-values__text + .hidrojap-company-values__title {
		margin-top: var(--hidrojap-company-values-gap);
	}

	body.page-id-15 .elementor .elementor-element.hidrojap-company-values {
		--hidrojap-company-values-side-padding: 20px;
		display: flex;
		flex-direction: column;
		align-items: center;
		padding-top: 45px;
		padding-bottom: 18px;
		overflow: visible;
	}

	body.page-id-15 .elementor .elementor-element.hidrojap-company-values__photo-wrap {
		display: flex;
		width: calc(100% + var(--hidrojap-company-values-side-padding) + var(--hidrojap-company-values-side-padding));
		max-width: none;
		align-self: center;
		padding-top: 0;
		overflow: visible;
	}

	body.page-id-15 .elementor .elementor-element.hidrojap-company-values__photo-wrap .hidrojap-company-values__photo {
		display: block;
		width: 100%;
		max-width: none;
		height: auto;
	}
}

@media (max-width: 374px) {
	body.page-id-15 .elementor .elementor-element.hidrojap-company-values {
		--hidrojap-company-values-side-padding: 16px;
	}
}

/* Diferenciais: superfícies editoriais e ritmo visual no mobile. */
@media (max-width: 767px) {
	body.page-id-17 .elementor .elementor-element.hidrojap-differentials__grid {
		gap: 10px;
		margin-top: 28px;
	}

	body.page-id-17 .elementor .elementor-element.hidrojap-differentials__item {
		--hidrojap-differentials-number-column: clamp(50px, 14vw, 56px);
		box-sizing: border-box;
		width: 100%;
		min-height: 0;
		padding: 13px clamp(8px, 2.6vw, 12px);
		background-color: #fff;
		border-top: 1px solid rgba(0, 57, 108, 0.12);
		border-radius: 0;
		box-shadow: none;
	}

	body.page-id-17 .elementor .elementor-element.hidrojap-differentials__item-heading {
		width: 100%;
		align-items: flex-start;
		gap: 8px;
	}

	body.page-id-17 .elementor .elementor-element.hidrojap-differentials__number {
		width: var(--hidrojap-differentials-number-column);
		flex: 0 0 var(--hidrojap-differentials-number-column);
		margin-top: 1px;
	}

	body.page-id-17 .elementor .elementor-element.hidrojap-differentials__item-content {
		width: auto;
		min-width: 0;
		flex: 1 1 auto;
		gap: 6px;
		padding-left: 12px;
	}

	body.page-id-17 .elementor .elementor-element.hidrojap-differentials__item-text,
	body.page-id-17 .elementor .elementor-element.hidrojap-differentials__item-text p {
		line-height: 1.42;
	}
}

/* Serviços: painel único inserido após a linha ativa no mobile. */
@media (max-width: 767px) {
	body.page-id-19 .elementor .elementor-element.hidrojap-services__detail {
		order: 0;
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-height: 0;
		flex: 0 0 100%;
		align-self: stretch;
		margin: 4px 0 8px;
		padding: 22px 20px;
	}
}

/* Obras: o controle dinâmico nunca aparece fora do estado mobile ativo. */
body.page-id-21 .hidrojap-works__more[hidden] {
	display: none;
}

/* Obras: grade compacta e carregamento progressivo no mobile. */
@media (max-width: 767px) {
	body.page-id-21 .elementor .elementor-element.hidrojap-works__grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
		gap: 12px 10px;
		width: 100%;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card {
		display: block;
		position: relative;
		width: 100%;
		min-width: 0;
		min-height: 0;
		margin: 0;
		overflow: hidden;
		touch-action: manipulation;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card--progressive-hidden {
		display: none;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card .hidrojap-work-card__image {
		display: block;
		width: 100%;
		height: auto;
		aspect-ratio: 9 / 10;
		object-fit: cover;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card__label {
		display: flex;
		width: 100%;
		min-height: 40px;
		padding: 7px 9px;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card__label .elementor-heading-title {
		font-size: clamp(11px, 2.9vw, 13px);
		line-height: 1.15;
		overflow-wrap: anywhere;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card__overlay {
		display: flex;
		position: absolute;
		inset: 0;
		z-index: 3;
		width: 100%;
		height: 100%;
		min-height: 0;
		justify-content: flex-start;
		gap: 6px;
		padding: clamp(9px, 2.8vw, 12px);
		overflow: hidden;
		opacity: 0;
		visibility: hidden;
		transform: none;
		pointer-events: none;
		transition: none;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card--touch-active .hidrojap-work-card__overlay {
		opacity: 1;
		visibility: visible;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card__overlay .elementor-widget {
		width: 100%;
		margin: 0;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card__overlay-title .elementor-heading-title {
		font-size: clamp(11px, 3vw, 13px);
		line-height: 1.1;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card__overlay .elementor-widget-text-editor,
	body.page-id-21 .elementor .elementor-element.hidrojap-work-card__overlay .elementor-widget-text-editor p {
		font-size: clamp(10px, 2.55vw, 11px);
		line-height: 1.22;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card__overlay .elementor-widget-text-editor p {
		margin: 0;
	}

	body.page-id-21 .elementor .elementor-element.hidrojap-work-card__overlay .elementor-widget-text-editor p + p {
		margin-top: 5px;
	}

	body.page-id-21 .hidrojap-works__more {
		display: block;
		width: min(100%, 240px);
		min-height: 44px;
		align-self: center;
		margin: 24px auto 0;
		border: 1px solid #004274;
		background: #004274;
		color: #ffffff;
		font-family: inherit;
		font-size: 12px;
		font-weight: 700;
		letter-spacing: 0.25px;
		line-height: 1.2;
		text-align: center;
		cursor: pointer;
		touch-action: manipulation;
	}

	body.page-id-21 .hidrojap-works__more[hidden] {
		display: none;
	}
}

/* A versão dinâmica usa escopo próprio e não depende do ID da página. */
[data-hidrojap-works-dynamic] + .hidrojap-works__more[hidden] {
	display: none;
}

/* Obras dinâmicas: equivalência de tablet sem afetar a página manual. */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor [data-hidrojap-works-dynamic][data-hidrojap-works-grid] {
		width: 100%;
		max-width: none;
		gap: 12px;
	}

	.elementor [data-hidrojap-works-dynamic] > .elementor-element.hidrojap-work-card {
		width: calc(50% - 6px);
	}

	.elementor [data-hidrojap-works-dynamic] .elementor-element.hidrojap-work-card__gallery {
		width: 100%;
		height: 1px;
		aspect-ratio: 9 / 10;
	}
}

/* Obras dinâmicas: grade compacta e carregamento progressivo no mobile. */
@media (max-width: 767px) {
	.elementor [data-hidrojap-works-dynamic][data-hidrojap-works-grid] {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
		gap: 12px 10px;
		width: 100%;
		max-width: none;
	}

	.elementor [data-hidrojap-works-dynamic] > .elementor-element.hidrojap-work-card {
		display: block;
		position: relative;
		width: 100%;
		min-width: 0;
		min-height: 0;
		margin: 0;
		overflow: hidden;
		touch-action: manipulation;
	}

	.elementor [data-hidrojap-works-dynamic] > .elementor-element.hidrojap-work-card--progressive-hidden {
		display: none;
	}

	.elementor [data-hidrojap-works-dynamic] .elementor-element.hidrojap-work-card__image {
		display: block;
		width: 100%;
		height: auto;
		aspect-ratio: 9 / 10;
		object-fit: cover;
	}

	.elementor [data-hidrojap-works-dynamic] .elementor-element.hidrojap-work-card__label {
		display: flex;
		width: 100%;
		height: 44px;
		min-height: 44px;
		max-height: 44px;
		flex: 0 0 44px;
		padding: 7px 9px;
	}

	.elementor [data-hidrojap-works-dynamic] .hidrojap-work-card__label .elementor-heading-title {
		font-size: clamp(11px, 2.9vw, 13px);
		line-height: 1.15;
		overflow-wrap: anywhere;
	}

	[data-hidrojap-works-lightbox] {
		padding: 60px 12px;
	}

	[data-hidrojap-works-lightbox] .hidrojap-lightbox__control {
		width: 44px;
		height: 44px;
		font-size: 34px;
	}

	[data-hidrojap-works-lightbox] .hidrojap-lightbox__close {
		top: 8px;
		right: 8px;
	}

	[data-hidrojap-works-lightbox] .hidrojap-lightbox__previous {
		left: 4px;
	}

	[data-hidrojap-works-lightbox] .hidrojap-lightbox__next {
		right: 4px;
	}

	[data-hidrojap-works-lightbox] .hidrojap-lightbox__counter {
		top: 18px;
		font-size: 13px;
	}

	.elementor [data-hidrojap-works-dynamic] .elementor-element.hidrojap-work-card__overlay {
		display: flex;
		position: absolute;
		inset: 0;
		z-index: 3;
		width: 100%;
		height: 100%;
		min-height: 0;
		justify-content: flex-start;
		gap: 6px;
		padding: clamp(9px, 2.8vw, 12px);
		overflow: hidden;
		opacity: 0;
		visibility: hidden;
		transform: none;
		pointer-events: none;
		transition: none;
	}

	.elementor [data-hidrojap-works-dynamic] > .elementor-element.hidrojap-work-card--touch-active .hidrojap-work-card__overlay {
		opacity: 1;
		visibility: visible;
	}

	.elementor [data-hidrojap-works-dynamic] .hidrojap-work-card__overlay .elementor-widget {
		width: 100%;
		margin: 0;
	}

	.elementor [data-hidrojap-works-dynamic] .hidrojap-work-card__overlay-title .elementor-heading-title {
		font-size: clamp(11px, 3vw, 13px);
		line-height: 1.1;
	}

	.elementor [data-hidrojap-works-dynamic] .hidrojap-work-card__overlay .elementor-widget-text-editor,
	.elementor [data-hidrojap-works-dynamic] .hidrojap-work-card__overlay .elementor-widget-text-editor p {
		font-size: clamp(10px, 2.55vw, 11px);
		line-height: 1.22;
	}

	.elementor [data-hidrojap-works-dynamic] .hidrojap-work-card__overlay .elementor-widget-text-editor p {
		margin: 0;
	}

	.elementor [data-hidrojap-works-dynamic] .hidrojap-work-card__overlay .elementor-widget-text-editor p + p {
		margin-top: 5px;
	}

	[data-hidrojap-works-dynamic] + .hidrojap-works__more {
		display: block;
		width: min(100%, 240px);
		min-height: 44px;
		align-self: center;
		margin: 24px auto 0;
		border: 1px solid #004274;
		background: #004274;
		color: #FFFFFF;
		font-family: inherit;
		font-size: 12px;
		font-weight: 700;
		letter-spacing: 0.25px;
		line-height: 1.2;
		text-align: center;
		cursor: pointer;
		touch-action: manipulation;
	}

	[data-hidrojap-works-dynamic] + .hidrojap-works__more[hidden] {
		display: none;
	}
}
