/**
 * RosaFood — mobil és telepített app (PWA) reszponzív javítások
 * Utolsó betöltés: felülírja a legacy FazFood / Elementor szélesség-hibákat.
 */

@media (max-width: 991px) {
	:root {
		--rf-gutter: 1rem;
		--rf-mobile-sticky-cart-h: calc(3.25rem + env(safe-area-inset-bottom, 0px));
		--rf-mobile-rfpo-bar-h: calc(4.25rem + env(safe-area-inset-bottom, 0px));
	}

	html {
		overflow-x: clip;
		-webkit-text-size-adjust: 100%;
	}

	body {
		overflow-x: clip;
		max-width: 100%;
	}

	#page,
	.site,
	.site-content,
	.site-content-page,
	#content,
	.content-area,
	.col-full,
	.rf-home-layout,
	.fazfood-home-03 {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	.content-area,
	body.home .content-area,
	body.page-template-template-homepage .content-area,
	body.page-template-template-homepage-php .content-area,
	.fazfood-full-width-content .content-area,
	.woocommerce-page .content-area,
	body.fazfood-sidebar-left .content-area,
	body.fazfood-sidebar-right .content-area {
		width: 100% !important;
		max-width: 100% !important;
		float: none !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	#secondary,
	.widget-area {
		display: none !important;
	}

	.site-content > .col-full,
	.woocommerce-shop .site-content > .col-full,
	.post-type-archive-product .site-content > .col-full {
		padding-left: var(--rf-gutter) !important;
		padding-right: var(--rf-gutter) !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.col-full [data-elementor-type="wp-page"] {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		transform: none !important;
	}

	/* Elementor full-bleed — ne okozzon vízszintes görgetést */
	body .elementor-section.elementor-section-stretched {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		left: auto !important;
	}

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

/* -------------------------------------------------------------------------
 * Fejléc
 * ------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.rf-header-larosa .header-main {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 0.35rem;
	}

	.rf-header-main__left {
		min-width: 0;
		padding-left: var(--rf-gutter);
		padding-right: 0.35rem;
	}

	.rf-header-main__right {
		padding-right: var(--rf-gutter);
		padding-left: 0.35rem;
		gap: 0.35rem;
	}

	.rf-header-main__left .site-branding,
	.rf-header-main__left .custom-logo-link {
		min-width: 0;
		max-width: 9.5rem;
	}

	.rf-header-main__left .custom-logo,
	.rf-header-main__left .site-branding img {
		max-width: 100%;
		height: auto;
	}

	.rf-header-cat-nav__more-panel {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		left: 0;
		right: 0;
	}

	.header-cart-mobile .cart-contents,
	.rf-header-account-mobile a {
		min-width: var(--rf-touch);
		min-height: var(--rf-touch);
	}
}

/* -------------------------------------------------------------------------
 * Kezdőlap (Home 03)
 * ------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.home03-hero__inner {
		flex-direction: column;
		align-items: stretch;
		gap: 1.25rem;
		padding-top: 1.25rem;
		padding-bottom: 1.25rem;
	}

	.home03-hero__content,
	.home03-hero__media {
		flex: 1 1 auto;
		width: 100%;
	}

	.home03-hero__content h1 {
		font-size: clamp(2rem, 9vw, 2.75rem);
	}

	.home03-hero__content p {
		max-width: none;
		font-size: 1rem;
	}

	.home03-hero__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.home03-hero__actions .rf-btn {
		width: 100%;
		justify-content: center;
		white-space: normal;
		text-align: center;
		line-height: 1.2;
	}

	.home03-cat-nav__scroll {
		margin: 0 calc(var(--rf-gutter) * -1);
		padding: 0 var(--rf-gutter);
	}

	.home03-trust__grid {
		grid-template-columns: 1fr;
	}

	.home03-countdown__timer {
		flex-wrap: wrap;
		justify-content: center;
	}
}

/* -------------------------------------------------------------------------
 * Bolt / kategória lista
 * ------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.woocommerce ul.products {
		margin: 0 !important;
		padding: 0 !important;
	}

	.woocommerce-products-header {
		padding-left: 0;
		padding-right: 0;
	}

	.woocommerce-products-header__title {
		font-size: clamp(1.5rem, 6vw, 2rem);
		word-break: break-word;
	}
}

/* -------------------------------------------------------------------------
 * Termék oldal
 * ------------------------------------------------------------------------- */
@media (max-width: 991px) {
	.single-product div.product.single-product-type-vertical .content-single-wrapper,
	.single-product div.product.single-product-type-vertical_right .content-single-wrapper {
		padding-top: 1.25rem;
		padding-bottom: calc(var(--rf-mobile-rfpo-bar-h) + 1rem);
	}

	.single-product div.product.single-product-type-vertical .content-single-wrapper::before,
	.single-product div.product.single-product-type-vertical_right .content-single-wrapper::before {
		width: 100%;
		left: 0;
		transform: none;
	}

	.single-product div.product.single-product-type-vertical .woocommerce-tabs,
	.single-product div.product.single-product-type-vertical_right .woocommerce-tabs {
		margin-top: 2rem;
	}

	.single-product div.product .woocommerce-product-gallery,
	.single-product div.product .summary.entry-summary {
		width: 100% !important;
		float: none !important;
		max-width: 100% !important;
	}

	.single-product .summary.entry-summary {
		padding-left: 0;
		padding-right: 0;
	}

	.single-product .product_title {
		font-size: clamp(1.35rem, 5vw, 1.75rem);
		line-height: 1.15;
		word-break: break-word;
	}

	.single-product .rfpo-options {
		margin-bottom: calc(var(--rf-mobile-rfpo-bar-h) + 0.5rem);
	}

	.rfpo-open-sheet {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}
}

@media (max-width: 767px) {
	.rfpo-size-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rfpo-upsell-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rfpo-section__title {
		font-size: 1rem;
	}
}

/* RFPO alsó sticky sáv — ne csússzon le a képernyőről */
@media (max-width: 768px) {
	body.rfpo-has-sticky .rfpo-sticky-bar,
	body.rfpo-has-sticky .rfpo-options + .rfpo-sticky-bar {
		left: 0;
		right: 0;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		flex-wrap: nowrap;
		align-items: center;
		gap: 0.5rem;
		padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
		padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
		padding-bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
		z-index: 1001;
	}

	.rfpo-sticky-bar__actions {
		flex: 1 1 auto;
		min-width: 0;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 0.5rem;
	}

	.rfpo-sticky-qty {
		flex: 0 1 auto;
		min-width: 0;
		overflow: hidden;
	}

	.rfpo-sticky-qty .quantity_wrap {
		gap: 0.35rem;
	}

	.rfpo-sticky-qty .quantity-text {
		font-size: 0.625rem;
		letter-spacing: 0;
	}

	.rfpo-sticky-qty .quantity {
		min-width: 5rem;
		max-width: 6.5rem;
	}

	body.rfpo-has-sticky .rfpo-sticky-bar .single_add_to_cart_button.rfpo-sticky-add,
	body.rfpo-has-sticky .rfpo-sticky-bar .button.alt.rfpo-sticky-add {
		flex: 0 0 auto;
		min-width: 0;
		max-width: none;
		width: auto;
		white-space: nowrap;
		overflow: visible;
		text-align: center;
		line-height: 1.1;
		padding: 0.55rem 0.7rem !important;
		font-size: 0.6875rem !important;
		font-weight: 800 !important;
		letter-spacing: 0.02em !important;
		gap: 0.2rem;
	}

	body.rfpo-has-sticky .rfpo-sticky-bar .single_add_to_cart_button.rfpo-sticky-add::before,
	body.rfpo-has-sticky .rfpo-sticky-bar .button.alt.rfpo-sticky-add::before {
		font-size: 0.8125rem !important;
		margin-right: 0.25rem !important;
		line-height: 1;
		flex-shrink: 0;
	}

	.rfpo-options--sheet {
		left: 0;
		right: 0;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		padding-left: max(1rem, env(safe-area-inset-left, 0px));
		padding-right: max(1rem, env(safe-area-inset-right, 0px));
		padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
	}
}

@media (max-width: 420px) {
	.rfpo-sticky-qty .quantity-text {
		display: none;
	}

	body.rfpo-has-sticky .rfpo-sticky-bar .single_add_to_cart_button.rfpo-sticky-add,
	body.rfpo-has-sticky .rfpo-sticky-bar .button.alt.rfpo-sticky-add {
		padding: 0.55rem 0.85rem !important;
	}
}

/* -------------------------------------------------------------------------
 * Alsó kosár sáv + RFPO + PWA banner rétegezés
 * ------------------------------------------------------------------------- */
@media (max-width: 768px) {
	.rf-sticky-cart__link {
		padding-left: max(1rem, env(safe-area-inset-left, 0px));
		padding-right: max(1rem, env(safe-area-inset-right, 0px));
	}

	body.rf-has-sticky-cart {
		padding-bottom: var(--rf-mobile-sticky-cart-h);
	}

	body.rfpo-has-sticky.rf-has-sticky-cart {
		padding-bottom: calc(var(--rf-mobile-sticky-cart-h) + var(--rf-mobile-rfpo-bar-h));
	}

	/* Termék oldalon a kosár sáv a RFPO gomb fölé */
	body.single-product.rfpo-has-sticky .rf-sticky-cart {
		bottom: var(--rf-mobile-rfpo-bar-h);
		z-index: 1000;
	}

	body.rfpo-has-sticky .rf-pwa-install {
		bottom: calc(var(--rf-mobile-rfpo-bar-h) + 0.75rem);
	}

	body.rfpo-has-sticky.rf-has-sticky-cart .rf-pwa-install {
		bottom: calc(var(--rf-mobile-rfpo-bar-h) + var(--rf-mobile-sticky-cart-h) + 0.75rem);
	}

	body.rfpo-has-sticky .rf-pwa-fab {
		bottom: calc(var(--rf-mobile-rfpo-bar-h) + 0.75rem);
	}

	body.rfpo-has-sticky.rf-has-sticky-cart .rf-pwa-fab {
		bottom: calc(var(--rf-mobile-rfpo-bar-h) + var(--rf-mobile-sticky-cart-h) + 0.75rem);
	}
}

/* -------------------------------------------------------------------------
 * Kosár oldalsó panel (fejléc kosár)
 * ------------------------------------------------------------------------- */
@media (max-width: 768px) {
	.site-header-cart-side {
		width: min(100%, 100vw);
		max-width: 100%;
		transform: translate3d(100%, 0, 0);
	}

	.site-header-cart-side.active {
		transform: none;
	}

	.site-header-cart-side .widget_shopping_cart .buttons {
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
		padding: 0 15px 15px;
	}

	.site-header-cart-side .widget_shopping_cart .buttons a {
		display: block;
		width: 100%;
		margin: 0 !important;
		box-sizing: border-box;
		white-space: normal;
		text-align: center;
		min-height: var(--rf-touch);
		line-height: 1.2;
		padding: 0.75rem 1rem;
	}

	.site-header-cart-side .widget_shopping_cart .mini_cart_item {
		padding-right: 2.5rem;
	}

	.site-header-cart-side .widget_shopping_cart .mini_cart_item a {
		word-break: break-word;
	}
}

/* -------------------------------------------------------------------------
 * Kosár + pénztár
 * ------------------------------------------------------------------------- */
@media (max-width: 768px) {
	body.woocommerce-cart .site-content > .col-full,
	body.woocommerce-checkout .site-content > .col-full {
		padding-left: var(--rf-gutter) !important;
		padding-right: var(--rf-gutter) !important;
	}

	.woocommerce-cart .woocommerce,
	.woocommerce-checkout .woocommerce {
		padding-left: 0;
		padding-right: 0;
	}

	.woocommerce-cart-form,
	.cart-collaterals,
	.woocommerce-checkout .col2-set,
	.woocommerce-checkout #order_review {
		width: 100%;
		max-width: 100%;
	}

	.woocommerce .cart-collaterals .cart_totals,
	.woocommerce-checkout #payment {
		width: 100% !important;
		float: none !important;
	}

	.woocommerce table.shop_table .product-remove {
		justify-content: flex-end;
	}

	.woocommerce table.shop_table .product-name {
		text-align: left;
	}

	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last,
	.woocommerce form .form-row-wide {
		width: 100% !important;
		float: none !important;
	}

	.woocommerce #payment ul.payment_methods li {
		padding: 0.75rem 0;
	}

	.woocommerce #payment ul.payment_methods li label {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.35rem;
		line-height: 1.3;
	}
}

/* -------------------------------------------------------------------------
 * PWA app mód (standalone) — tab sáv + sticky rétegek
 * ------------------------------------------------------------------------- */
@media (max-width: 768px) {
	body.rf-pwa-app.rf-pwa-page-product.rfpo-has-sticky .rfpo-sticky-bar,
	html.rf-pwa-app-root.rf-pwa-page-product.rfpo-has-sticky .rfpo-sticky-bar {
		bottom: var(--rf-pwa-tabbar-h);
		padding-bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
	}

	body.rf-pwa-app.rf-pwa-page-product .rfpo-options {
		margin-bottom: calc(var(--rf-pwa-tabbar-h) + var(--rf-mobile-rfpo-bar-h));
	}

	body.rf-pwa-app.rf-pwa-page-product .summary.entry-summary,
	body.rf-pwa-app.rf-pwa-page-cart .woocommerce,
	body.rf-pwa-app.rf-pwa-page-checkout .woocommerce {
		padding-left: var(--rf-gutter);
		padding-right: var(--rf-gutter);
		box-sizing: border-box;
	}

	body.rf-pwa-app .site-content,
	body.rf-pwa-app .content-area {
		padding-bottom: 0.5rem;
	}
}
