/* =========================================================
   NOU HABITAT – RESPONSIVE CSS COMPLETO
   SOLO MOBILE
========================================================= */

@media (max-width: 767px) {

	/* =========================================================
	   1) BASE GLOBAL MOBILE
	========================================================= */

	html,
	body {
		overflow-x: hidden;
	}

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

	.elementor *,
	.wp-block-columns,
	.wp-block-column,
	.e-con,
	.e-con-inner {
		box-sizing: border-box;
	}

	/* =========================================================
	   2) CONTENEDORES GENERALES MOBILE
	========================================================= */

	.container,
	.nv-content-wrap,
	.neve-main .container,
	.elementor .e-con.e-parent,
	.elementor .e-con-boxed > .e-con-inner {
		padding-left: 14px !important;
		padding-right: 14px !important;
	}

	/* =========================================================
	   3) TIPOGRAFÍA MOBILE
	========================================================= */

	h1,
	.elementor h1,
	.wp-block-heading h1,
	.product_title {
		font-size: 28px !important;
		line-height: 1.15 !important;
	}

	h2,
	.elementor h2 {
		font-size: 24px !important;
		line-height: 1.2 !important;
	}

	h3,
	.elementor h3 {
		font-size: 20px !important;
		line-height: 1.25 !important;
	}

	p,
	li,
	.elementor-widget-text-editor,
	.wp-block-paragraph {
		font-size: 15px !important;
		line-height: 1.55 !important;
	}

	/* =========================================================
	   4) SPACERS EXCESIVOS MOBILE
	========================================================= */

	.elementor-spacer .elementor-spacer-inner[style*="height: 100px"],
	.elementor-spacer .elementor-spacer-inner[style*="height:100px"],
	.elementor-spacer .elementor-spacer-inner[style*="height: 80px"],
	.elementor-spacer .elementor-spacer-inner[style*="height:80px"] {
		height: 32px !important;
	}

	.wp-block-spacer[style*="height:100px"],
	.wp-block-spacer[style*="height: 100px"] {
		height: 32px !important;
	}

	.wp-block-spacer[style*="height:40px"],
	.wp-block-spacer[style*="height: 40px"] {
		height: 20px !important;
	}

	/* =========================================================
	   5) HOME – BUSCADOR Y MENÚ CATEGORÍAS
	========================================================= */

	.nh-row {
		flex-wrap: wrap !important;
		align-items: stretch !important;
		gap: 10px !important;
	}

	.nh-col,
	.nh-col-btn {
		flex: 1 1 100% !important;
		width: 100% !important;
	}

	.nh-btn,
	.nh-select {
		width: 100% !important;
	}

	.Cat-Menu img {
		width: 100% !important;
		height: 130px !important;
		object-fit: cover !important;
		border-radius: 0 !important;
	}

	.Cat-Menu .woocommerce-loop-category__title,
	.Cat-Menu h2 {
		font-size: 16px !important;
		line-height: 1.2 !important;
		text-align: center !important;
	}

	.Cat-Menu mark.count {
		display: block !important;
		margin-top: 4px !important;
		font-size: 12px !important;
	}

	/* =========================================================
	   6) CATEGORÍA / LOOP DE INMUEBLES
	========================================================= */

	.woocommerce ul.products,
	ul.products {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 14px !important;
		margin: 0 !important;
	}

	.woocommerce ul.products li.product,
	ul.products li.product {
		width: 100% !important;
		margin: 0 !important;
		float: none !important;
	}

	.woocommerce ul.products li.product .nv-card-content-wrapper,
	ul.products li.product .nv-card-content-wrapper {
		height: 100% !important;
		display: flex !important;
		flex-direction: column !important;
	}

	.sp-product-image img {
		height: 190px !important;
		min-height: 190px !important;
		object-fit: cover !important;
		margin-bottom: 0 !important;
	}

	.woocommerce-loop-product__title,
	.nhcp-title {
		font-size: 15px !important;
		line-height: 1.25 !important;
	}

	.nhcp-location,
	.nhcp-price,
	.woocommerce ul.products li.product .price {
		font-size: 13px !important;
	}

	.nhcp-card-body {
		max-height: none !important;
		padding-top: 10px !important;
	}

	.nhcp-icons-row {
		padding-top: 12px !important;
		gap: 8px !important;
		flex-wrap: wrap !important;
	}

	.nhcp-ico-box {
		transform: scale(0.95) !important;
		transform-origin: left center !important;
	}

	.woocommerce-pagination {
		margin-top: 24px !important;
	}

	.woocommerce-pagination .page-numbers {
		display: flex !important;
		flex-wrap: wrap !important;
		justify-content: center !important;
		gap: 8px !important;
	}

	/* =========================================================
	   7) CONTACTO
	========================================================= */

	.contact-box-row {
		flex-wrap: nowrap !important;
		align-items: flex-start !important;
		gap: 10px !important;
	}

	.contact-box-row > .wp-block-column:first-child {
		flex: 0 0 30px !important;
		max-width: 30px !important;
	}

	.contact-box-row > .wp-block-column:last-child {
		flex: 1 1 auto !important;
		min-width: 0 !important;
	}

	.contact-box-row p,
	.contact-box-row a {
		word-break: break-word !important;
	}

	.elementor-form .elementor-field-group {
		margin-bottom: 12px !important;
	}

	.elementor-form input,
	.elementor-form textarea,
	.elementor-form select,
	.elementor-form .elementor-field-textual {
		font-size: 16px !important;
	}

	.elementor-form .e-form__buttons,
	.elementor-form button[type="submit"],
	.elementor-form .elementor-button {
		width: 100% !important;
	}

	iframe[src*="google.com/maps"] {
		height: 320px !important;
	}

	/* =========================================================
	   8) SERVICIOS / OBRA NUEVA / GUTENBERG
	========================================================= */

	.wp-block-columns.is-layout-flex {
		gap: 14px !important;
	}

	.wp-block-columns.is-layout-flex > .wp-block-column {
		flex-basis: 100% !important;
	}

	.spec-img img,
	.wp-block-image.spec-img img {
		width: 100% !important;
		height: 220px !important;
		object-fit: cover !important;
	}

	.wp-block-themeisle-blocks-icon-list {
		gap: 10px !important;
	}

	.wp-block-button.has-custom-width,
	.wp-block-button__link,
	.wp-block-buttons .wp-block-button {
		width: 100% !important;
		max-width: 100% !important;
	}

	.wp-block-themeisle-blocks-advanced-columns .innerblocks-wrap {
		flex-direction: column !important;
	}

	.wp-block-themeisle-blocks-advanced-column {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	/* =========================================================
	   9) BEFORE FOOTER
	========================================================= */

	.nh-before-footer-area {
		padding: 28px 14px !important;
	}

	.nh-before-footer-widget-title {
		font-size: 16px !important;
	}

	/* =========================================================
	   10) FOOTER
	========================================================= */

	.footer-main-inner .row,
	.footer-top-inner .row,
	.footer-bottom-inner .row {
		grid-template-columns: 1fr !important;
		gap: 18px !important;
	}

	.site-footer,
	.site-footer p,
	.site-footer li {
		text-align: left !important;
	}

	.site-footer .wp-block-button,
	.site-footer .wp-block-button__link,
	.site-footer .elementor-button,
	.site-footer button,
	.site-footer input[type="submit"] {
		text-align: center !important;
		justify-content: center !important;
		align-items: center !important;
	}

	.site-footer .wp-block-button__link,
	.site-footer .elementor-button {
		display: inline-flex !important;
	}

	/* Footer spec-row */
	.site-footer .spec-row,
	.footer-main .spec-row,
	.footer-top .spec-row,
	.footer-bottom .spec-row,
	.widget .spec-row {
		display: grid !important;
		grid-template-columns: 30px minmax(0, 1fr) !important;
		align-items: start !important;
		gap: 14px !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 0 18px 0 !important;
		padding: 0 !important;
		height: auto !important;
	}

	.site-footer .spec-row > .wp-block-column:first-child,
	.footer-main .spec-row > .wp-block-column:first-child,
	.footer-top .spec-row > .wp-block-column:first-child,
	.footer-bottom .spec-row > .wp-block-column:first-child,
	.widget .spec-row > .wp-block-column:first-child {
		flex-basis: auto !important;
		width: 30px !important;
		max-width: 30px !important;
		min-width: 30px !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.site-footer .spec-row > .wp-block-column:last-child,
	.footer-main .spec-row > .wp-block-column:last-child,
	.footer-top .spec-row > .wp-block-column:last-child,
	.footer-bottom .spec-row > .wp-block-column:last-child,
	.widget .spec-row > .wp-block-column:last-child {
		flex-basis: auto !important;
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.site-footer .spec-row p,
	.site-footer .spec-row a,
	.footer-main .spec-row p,
	.footer-main .spec-row a,
	.footer-top .spec-row p,
	.footer-top .spec-row a,
	.footer-bottom .spec-row p,
	.footer-bottom .spec-row a,
	.widget .spec-row p,
	.widget .spec-row a {
		margin: 0 !important;
		padding: 0 !important;
		line-height: 1.45 !important;
		word-break: break-word !important;
	}

	.site-footer .spec-row .wp-block-themeisle-blocks-font-awesome-icons,
	.footer-main .spec-row .wp-block-themeisle-blocks-font-awesome-icons,
	.footer-top .spec-row .wp-block-themeisle-blocks-font-awesome-icons,
	.footer-bottom .spec-row .wp-block-themeisle-blocks-font-awesome-icons,
	.widget .spec-row .wp-block-themeisle-blocks-font-awesome-icons {
		justify-content: flex-start !important;
		margin: 0 !important;
	}

	.site-footer .spec-row .wp-block-themeisle-blocks-font-awesome-icons-container,
	.footer-main .spec-row .wp-block-themeisle-blocks-font-awesome-icons-container,
	.footer-top .spec-row .wp-block-themeisle-blocks-font-awesome-icons-container,
	.footer-bottom .spec-row .wp-block-themeisle-blocks-font-awesome-icons-container,
	.widget .spec-row .wp-block-themeisle-blocks-font-awesome-icons-container {
		margin: 0 !important;
	}

	/* =========================================================
	   11) PRODUCTO – SOLO MOBILE
	========================================================= */

	/* Full width real del single */
	body.single-product .neve-main,
	body.single-product #content,
	body.single-product .nv-content-wrap,
	body.single-product .shop-container,
	body.single-product .nv-shop,
	body.single-product .elementor-location-single,
	body.single-product .elementor.elementor-5335,
	body.single-product #ContentBox {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	/* Sin sidebar */
	body.single-product .nv-sidebar-wrap,
	body.single-product aside {
		display: none !important;
	}

	/* Header por encima */
	body.single-product .header,
	body.single-product .site-header,
	body.single-product .header-main,
	body.single-product .builder-item,
	body.single-product .element-is-sticky {
		z-index: 99 !important;
	}

	/* SOLO HERO DEL PRODUCTO */
	body.single-product .Hero,
	body.single-product .Hero-Box {
		width: 100vw !important;
		max-width: 100vw !important;
		min-width: 100vw !important;
		margin-top: 0px !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		padding: 0 !important;
		overflow: hidden !important;
		aspect-ratio: 16 / 11 !important;
		position: relative !important;
		z-index: 0 !important;
	}

	body.single-product .Hero > *,
	body.single-product .Hero-Box > *,
	body.single-product .Hero .e-con,
	body.single-product .Hero .e-con-inner,
	body.single-product .Hero-Box .e-con,
	body.single-product .Hero-Box .e-con-inner,
	body.single-product .Hero .elementor-element,
	body.single-product .Hero-Box .elementor-element,
	body.single-product .Hero .elementor-widget,
	body.single-product .Hero-Box .elementor-widget,
	body.single-product .Hero .elementor-widget-container,
	body.single-product .Hero-Box .elementor-widget-container {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	/* SOLO SLIDER DEL PRODUCTO */
	body.single-product .elementor-widget-woocommerce-product-images,
	body.single-product .elementor-widget-woocommerce-product-images .elementor-widget-container,
	body.single-product .woocommerce-product-gallery,
	body.single-product .woocommerce-product-gallery__wrapper,
	body.single-product .woocommerce-product-gallery__image,
	body.single-product .woocommerce-product-gallery__image a,
	body.single-product .images,
	body.single-product .nh-carousel,
	body.single-product .nh-carousel__viewport,
	body.single-product .nh-carousel__track,
	body.single-product .nh-carousel__slide,
	body.single-product .nh-carousel__button,
	body.single-product .nh-carousel__image {
		width: 100vw !important;
		max-width: 100vw !important;
		min-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		border-radius: 0 !important;
		box-sizing: border-box !important;
	}

	body.single-product .woocommerce-product-gallery img,
	body.single-product .nh-carousel img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		display: block !important;
		margin: 0 !important;
	}

	/* Texto del hero del producto */
	body.single-product .Hero .title-with-logo,
	body.single-product .Hero .elementor-widget-heading,
	body.single-product .Hero .elementor-widget-text-editor,
	body.single-product .Hero-Box .title-with-logo,
	body.single-product .Hero-Box .elementor-widget-heading,
	body.single-product .Hero-Box .elementor-widget-text-editor {
		width: auto !important;
		max-width: none !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
		box-sizing: border-box !important;
	}

	body.single-product .Hero .product_title,
	body.single-product .Hero-Box .product_title,
	body.single-product .Hero h1,
	body.single-product .Hero-Box h1 {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 100% !important;
		font-size: 24px !important;
		line-height: 1.08 !important;
		margin: 0 0 6px 0 !important;
		text-wrap: balance;
	}

	body.single-product .Hero .price,
	body.single-product .Hero .amount,
	body.single-product .Hero .woocommerce-Price-amount,
	body.single-product .Hero-Box .price,
	body.single-product .Hero-Box .amount,
	body.single-product .Hero-Box .woocommerce-Price-amount {
		font-size: 20px !important;
		line-height: 1.1 !important;
	}

	/* ContentBox plano */
	body.single-product #ContentBox {
		padding: 0 !important;
		box-sizing: border-box !important;
	}

	body.single-product #ContentBox > *,
	body.single-product #ContentBox .e-con,
	body.single-product #ContentBox .e-con-inner,
	body.single-product #ContentBox .elementor-element,
	body.single-product #ContentBox .elementor-widget,
	body.single-product #ContentBox .elementor-widget-container {
		margin: 0 !important;
		padding: 0 !important;
	}

	/* Texto del content */
	html body.single-product #ContentBox p {
		margin: 0 !important;
		margin-top: 10px !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
		box-sizing: border-box !important;
	}

	body.single-product .elementor-heading-title {
		margin-top: 20px !important;
	}

	/* Título y precio fuera del hero */
	body.single-product .product_title {
		font-size: 26px !important;
		line-height: 1.15 !important;
		margin: 0 0 10px 0 !important;
	}

	body.single-product .price,
	body.single-product .amount,
	body.single-product .woocommerce-Price-amount {
		font-size: 24px !important;
		line-height: 1.1 !important;
	}

	/* Productos relacionados: 1 por fila */
	body.single-product section.related ul.products,
	body.single-product .related ul.products {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 16px !important;
	}

	body.single-product section.related ul.products li.product,
	body.single-product .related ul.products li.product {
		width: 100% !important;
		margin: 0 !important;
		float: none !important;
	}

	/* NH atributos resumen: 2 columnas todos */
	html body.single-product #ContentBox .nh-atributos-resumen {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 14px !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 18px 0 10px 0 !important;
		padding: 0 !important;
	}

	html body.single-product #ContentBox .nh-atributos-resumen > .nh-resumen-item {
		display: flex !important;
		align-items: center !important;
		width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
	}

	html body.single-product #ContentBox .nh-atributos-resumen > .nh-resumen-item-localidad {
		grid-column: auto !important;
	}

	/* Checkboxes form */
	body.single-product .elementor-field-type-checkbox,
	body.single-product .elementor-field-type-checkbox label,
	body.single-product .elementor-field-subgroup label,
	body.single-product .elementor-field-option,
	body.single-product input[type="checkbox"] + label {
		font-size: 11px !important;
		line-height: 1.3 !important;
	}
}

/* =========================================================
   MOBILE PEQUEÑO
========================================================= */

@media (max-width: 480px) {

	.woocommerce ul.products,
	ul.products {
		grid-template-columns: 1fr !important;
	}

	.sp-product-image img {
		height: 230px !important;
		min-height: 230px !important;
	}

	body.single-product #ContentBox .nh-atributos-resumen {
		grid-template-columns: 1fr !important;
	}
}


.nv-card-content-wrapper div{min-height:inherit!important;}
