@media (max-width: 900px) {
	.hero {
		min-height: 100svh;
		height: auto;
		justify-content: flex-start;
		position: relative;
		overflow: visible;
		background-size: cover !important;
		background-position: center !important;
		background-repeat: no-repeat !important;
	}

	.hero > div[style*='background-image'] {
		background-size: cover !important;
		background-position: center !important;
		background-repeat: no-repeat !important;
	}

	.panel_lateral {
		order: 3;
		position: relative;
		width: auto;
		height: auto;
		background: transparent;
		padding: 24px 32px 0;
		gap: 14px;
		z-index: 1;
		transform: translateX(-48px);
		opacity: 0;
		transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.8s ease;
	}

	.panel_lateral.panel-lateral-activo {
		transform: translateX(0);
		opacity: 1;
	}

	.panel_lateral h2 {
		padding-top: 0;
		width: 100%;
		font-size: 28px;
		line-height: 1.08;
	}

	.panel_lateral p {
		width: 100%;
		font-size: 18px;
		line-height: 1.28;
	}

	.panel_lateral button {
		font-size: 14px;
		padding: 8px 16px;
		background-color: var(--color-verde-pastel);
		color: #fff;
		border-color: var(--color-verde-pastel);
	}

	header {
		order: 1;
		padding: 24px 32px 0;
		align-items: flex-start;
		position: relative;
		z-index: 2147483645;
	}

	.logo img {
		max-width: 145px;
	}

	.hamburger_btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 46px;
		height: 46px;
		border: 1px solid rgba(255, 255, 255, 0.2);
		background: rgba(0, 0, 0, 0.52);
		backdrop-filter: blur(4px);
		border-radius: 10px;
		color: #fff;
		font-size: 30px;
		line-height: 1;
		position: fixed;
		top: 24px;
		right: 32px;
		z-index: 10001;
		cursor: pointer;
	}

	.menu {
		position: fixed;
		top: 0;
		right: 0;
		width: min(86vw, 340px);
		height: 100vh;
		background: rgba(13, 15, 23, 0.97);
		backdrop-filter: blur(6px);
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
		padding: 94px 20px 24px;
		transform: translateX(100%);
		transition: transform 0.3s ease;
		z-index: 2147483646 !important;
		overflow-y: auto;
	}

	.menu_close_btn {
		position: absolute;
		top: 16px;
		right: 12px;
		width: 36px;
		height: 36px;
		border: 0;
		background: transparent;
		color: #fff;
		font-size: 23px;
		line-height: 1;
		cursor: pointer;
	}

	.menu.is-open {
		transform: translateX(0);
	}

	.menu > a,
	.menu_item > a {
		font-size: 19px;
	}

	.menu .btn-admin {
		margin-left: 0 !important;
	}

	.menu_item {
		width: 100%;
	}

	.submenu_trigger {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		width: auto;
		gap: 6px;
	}

	.submenu_trigger::after {
		content: '▾';
		font-size: 14px;
		line-height: 1;
		opacity: 0.9;
		transition: transform 0.2s ease, opacity 0.2s ease;
	}

	.has-submenu.submenu-open .submenu_trigger::after {
		transform: rotate(180deg);
		opacity: 1;
	}

	.submenu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		min-width: auto;
		width: 100%;
		display: none;
		padding: 8px 0 0 10px;
		border-radius: 0;
		background: transparent;
		backdrop-filter: none;
	}

	.has-submenu.submenu-open .submenu {
		display: flex;
	}

	.submenu a + a {
		border-top: 0;
	}

	.contenedor_titulo {
		order: 2;
		justify-content: flex-start;
		padding: 44px 32px 0;
		position: relative;
		z-index: 1;
	}

	.titulo_hero {
		width: 100%;
		gap: 10px;
		transform: translateX(-30px);
		opacity: 0;
		transition: transform 0.72s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.72s ease;
	}

	.titulo_hero.titulo-hero-activo {
		transform: translateX(0);
		opacity: 1;
	}

	.titulo_hero h1 {
		display: none;
	}

	.titulo_hero p {
		font-size: 26px;
		line-height: 1.08;
		max-width: 94%;
	}

	.servicios {
		order: 4;
		margin-top: 40px;
		width: 100%;
		display: grid;
		grid-template-columns: 1fr;
		gap: 0;
		padding: 0;
		background: var(--color-gris-oscuro);
		position: relative;
		z-index: 1;
	}

	.item_servicio {
		padding: 36px 32px 38px;
		gap: 16px;
		border-top: 4px solid rgba(255, 255, 255, 0.92);
	}

	.item_servicio:first-child {
		border-top: 0;
	}

	.item_servicio hr {
		width: 0;
		opacity: 0;
	}

	.item_servicio.item-servicio-visible hr {
		width: 130px;
		opacity: 1;
	}

	.item_servicio:hover hr {
		width: 0;
		opacity: 0;
	}

	.item_servicio.item-servicio-visible:hover hr {
		width: 130px;
		opacity: 1;
	}

	.item_servicio h2 {
		font-size: var(--font-size-normal);
		line-height: 0.95;
	}

	.item_servicio p {
		font-size: var(--font-size-small);
		line-height: 1.25;
	}

	.item_servicio button {
		font-size: 15px;
		padding: 8px 18px;
	}

	body.menu-open {
		overflow: hidden;
	}

	.quienes_somos {
		padding: 54px 32px;
		gap: 20px;
	}

	.quienes_somos h3 {
		font-size: 20px;
	}

	.quienes_somos h2 {
		font-size: 30px;
		line-height: 1.08;
	}

	.quienes_somos p {
		font-size: 17px;
		line-height: 1.35;
	}

	.blog {
		padding-top: 56px;
	}

	.blog h2 {
		font-size: 24px;
		letter-spacing: 3px;
	}

	.contenedor_post {
		grid-template-columns: 1fr;
		padding: 30px 32px 54px;
		gap: 20px;
	}

	.img_post {
		height: 210px;
	}

	.post_info {
		padding: 18px;
		gap: 12px;
	}

	.post_info h3 {
		font-size: 21px;
	}

	.post_info p {
		font-size: 16px;
		line-height: 1.35;
	}

	.post_info button {
		font-size: 18px;
	}

	.call_to_action {
		height: auto;
		margin-bottom: 56px;
		flex-direction: column;
	}

	.call_to_action_col1,
	.call_to_action_col2 {
		width: 100%;
	}

	.call_to_action_col1 {
		padding: 44px 0;
	}

	.info_calltoaction {
		padding: 0 32px;
		text-align: left;
		gap: 16px;
	}

	.info_calltoaction .parrafo_1,
	.info_calltoaction .parrafo_2 {
		font-size: 25px;
		line-height: 1.12;
	}

	.info_calltoaction .parrafo_3 {
		font-size: 17px;
		line-height: 1.35;
	}

	.info_calltoaction button {
		font-size: 15px;
		padding: 10px 18px;
	}

	.call_to_action_col2 {
		height: 230px;
	}

	footer {
		grid-template-columns: 1fr;
		gap: 28px;
		padding: 44px 32px;
	}

	.logo_footer img {
		max-width: 160px;
	}

	.popup {
		padding: 12px;
	}

	.popup_contenedor {
		width: 100%;
		max-width: 100%;
		border-width: 10px;
	}

	.popup_close {
		top: 4px;
		right: 6px;
		font-size: 24px;
	}

	.contenido_popup {
		height: auto;
		min-height: 320px;
		display: flex;
		flex-direction: row;
	}

	.col1_popup {
		width: 50%;
		height: auto;
		min-height: 320px;
		background-image: url(/assets/img/edificio.webp);
		background-size: cover;
		background-position: center;
	}

	.col2_popup {
		width: 50%;
		max-width: none;
		background-color: #fff;
	}

	.info_col2_popup {
		padding: 18px 12px;
		justify-content: flex-start;
		gap: 8px;
		height: auto;
	}

	.info_col2_popup h2 {
		font-size: var(--font-size-normal);
		width: 100%;
		padding: 0;
		line-height: 1.15;
	}

	.info_col2_popup h3 {
		font-size: var(--font-size-lsmall);
	}

	.info_col2_popup p {
		font-size: var(--font-size-lsmall);
		width: 100%;
		padding: 0;
		line-height: 1.25;
	}

	.contenedor_form {
		margin-top: 0;
		padding: 10px 12px 14px;
		gap: 10px;
		box-sizing: border-box;
		align-items: stretch;
	}

	.contenedor_form form {
		width: 100%;
		display: flex;
		flex-direction: column;
		gap: 10px;
		box-sizing: border-box;
	}

	.contenedor_form form input {
		width: 100%;
		font-size: 14px;
		box-sizing: border-box;
		min-width: 0;
	}

	.contenedor_form form button {
		width: 100%;
		padding-inline: 16px;
		padding-block: 10px;
		font-size: 14px;
		box-sizing: border-box;
	}

	#gedicon {
		font-size: 14px;
		align-self: center;
		margin-inline: auto;
		text-align: center;
	}
}

@media (min-width: 901px) {
	.hamburger_btn {
		display: none;
	}

	.menu_close_btn {
		display: none;
	}
}
