/* YOOtheme Integration CSS - Address & Offers Plugin - ALL MODES */

/* ========================================================================
	CSS VARIABLES - Brand Colors
	======================================================================== */
:root {
	--ao-brand-primary: var(--ao-primary-color, var(--lukman-primary, #0d7a8a));
	--ao-brand-primary-dark: var(--ao-secondary-color, var(--lukman-primary-dark, #095e6b));
}

/* ========================================================================
	GENERAL YOOTHEME INTEGRATION
	======================================================================== */

.yootheme-ao-plugin-wrapper .ao-offers-grid {
	/* Zachowaj plugin grid ale zintegruj z YOOtheme gap setting */
	/* Gap will be set dynamically via CSS classes */
}

/* Admin info is handled in template.php for proper permission checking */

/* Zapewnij że plugin cards pasują do YOOtheme aesthetic */
.yootheme-ao-plugin-wrapper:not(.yootheme-mode-configurator) .ao-offer-card {
	transition: all 0.3s ease !important;
}

.yootheme-ao-plugin-wrapper:not(.yootheme-mode-configurator) .ao-offer-card:hover {
	transform: translateY(-2px) !important;
	box-shadow: 0 5px 15px rgba(0,0,0,0.1) !important;
}

/* =========================================================================
	FORM BUILDER TOGGLE GROUPS (Offer list / configurator wrappers)
	========================================================================= */

/* Keep responsive grid for nested fields (UIkit was overriding display) */
.yootheme-ao-plugin-wrapper .ao-form-advanced__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
}

.yootheme-ao-plugin-wrapper .ao-form-advanced__row.ao-form-advanced__row--two-column {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Shared label styling for both simple and advanced toggles */
.yootheme-ao-plugin-wrapper .ao-toggle-label,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-label {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border-radius: var(--ao-form-radius, 12px);
	border: 1px solid var(--ao-form-border, #e0e4ec);
	background: #f5f7fb;
	cursor: pointer;
	transition: border-color 0.2s ease, background 0.2s ease;
}

.yootheme-ao-plugin-wrapper .ao-toggle-text,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-text {
	order: 1;
	flex: 1 1 auto;
	margin-right: 12px;
	font-weight: 500;
	color: var(--ao-form-heading, #1a1a1a);
}

.yootheme-ao-plugin-wrapper .ao-toggle-icon,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-icon {
	order: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	padding: 4px;
	margin-left: 5px;
	border-radius: 12px;
	background: #e9eff6;
	line-height: 1;
	font-size: 14px;
	color: var(--ao-form-primary, #0098d8);
	transition: transform 0.3s ease;
	transform: rotate(-90deg);
}

.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-icon--rotated {
	transform: rotate(0deg);
}

.yootheme-ao-plugin-wrapper .ao-toggle-checkbox,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-checkbox {
	position: absolute !important;
	opacity: 0 !important;
	pointer-events: none !important;
	width: 1px !important;
	height: 1px !important;
	margin: 0 !important;
}

.yootheme-ao-plugin-wrapper .ao-toggle-label:hover,
.yootheme-ao-plugin-wrapper .ao-toggle-label.ao-toggle-label--expanded,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-label:hover,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-label--expanded {
	border-color: var(--ao-form-primary, #0098d8);
	background: rgba(0, 152, 216, 0.08);
}

.yootheme-ao-plugin-wrapper .ao-form-advanced__conditional {
	border: 1px solid var(--ao-form-border, #e0e4ec);
	border-radius: var(--ao-form-radius, 12px);
	padding: 20px;
	background: var(--ao-form-bg, #fff);
	box-shadow: var(--ao-form-shadow, 0 6px 24px rgba(0, 0, 0, 0.08));
}

/* ========================================================================
	OFFER LIST MODE
	======================================================================== */

/* Gap sizes for offers grid */
/* TODO: remove after confirming frontend-main.css handles all grids
.yootheme-mode-offer_list.gap-small .ao-offers-grid {
	gap: 10px !important;
}

.yootheme-mode-offer_list.gap-default .ao-offers-grid {
	gap: 20px !important;
}

.yootheme-mode-offer_list.gap-large .ao-offers-grid {
	gap: 30px !important;
}

/* Column overrides - will be applied via CSS classes */
.yootheme-mode-offer_list.cols-1 .ao-offers-grid {
	grid-template-columns: 1fr !important;
}

.yootheme-mode-offer_list.cols-2 .ao-offers-grid {
	grid-template-columns: repeat(2, 1fr) !important;
}

.yootheme-mode-offer_list.cols-3 .ao-offers-grid {
	grid-template-columns: repeat(3, 1fr) !important;
}

.yootheme-mode-offer_list.cols-4 .ao-offers-grid {
	grid-template-columns: repeat(4, 1fr) !important;
}

/* Responsive override for YOOtheme element */
@media (max-width: 768px) {
	.yootheme-mode-offer_list .ao-offers-grid {
		grid-template-columns: 1fr !important; /* Single column on mobile */
	}
}

@media (min-width: 769px) and (max-width: 1024px) {
	.yootheme-mode-offer_list.cols-3 .ao-offers-grid,
	.yootheme-mode-offer_list.cols-4 .ao-offers-grid {
		grid-template-columns: repeat(2, 1fr) !important; /* Max 2 on tablet */
	}
} */

/* ========================================================================
	ADDRESS SEARCH MODE
	======================================================================== */

/* 🎨 CLIENT CUSTOMIZATION - CSS Variables (BEZ wartości domyślnych) */

/* UWAGA: To są tylko DEKLARACJE variables.
	Klient MUSI ustawić wartości przez YooTheme HTML Element.
	Zobacz: /docs/YOOTHEME_SIMPLE_SNIPPET.html
*/

.yootheme-mode-address_search {
	/* CSS Variables - klient ustawia w HTML Element */
	/* --ao-search-title-color */
	/* --ao-search-title-size */
	/* --ao-search-title-weight */
	/* --ao-search-title-align */
	/* --ao-search-input-border-color */
	/* --ao-search-input-border-width */
	/* --ao-search-input-border-radius */
	/* --ao-search-input-padding */
	/* --ao-search-input-focus-glow */
	/* --ao-search-button-bg */
	/* --ao-search-button-bg-hover */
	/* --ao-search-button-border-radius */
	/* --ao-search-button-padding */
	/* --ao-search-checkbox-color */
}

/* INSTRUKCJA:
	- Ten plik zawiera TYLKO strukturę i layout
	- Kolory i style ustawia klient przez YooTheme HTML Element
	- Przykład: /docs/YOOTHEME_SIMPLE_SNIPPET.html
*/

/* ========================================================================
	TYLKO STRUKTURA - bez kolorów (klient ustawia w HTML Element)
	======================================================================== */

/* Input fields - podstawowa struktura */
.yootheme-mode-address_search input[type="text"],
.yootheme-mode-address_search input[name="city"],
.yootheme-mode-address_search input[name="street"],
.yootheme-mode-address_search input[name="number"] {
	/* Struktura - klient nadpisuje kolory w HTML Element */
	border-radius: var(--ao-search-input-border-radius, 8px) !important;
	border-width: var(--ao-search-input-border-width, 1px) !important;
	padding: var(--ao-search-input-padding, 12px 16px) !important;
	transition: all 0.3s ease !important;
	box-sizing: border-box !important;
}

/* Input focus - struktura */
.yootheme-mode-address_search input:focus {
	outline: none !important;
	/* Kolory focus - klient ustawia w HTML Element */
}

/* Przycisk - podstawowa struktura */
.yootheme-mode-address_search .ao-search-button,
.yootheme-mode-address_search button[type="submit"] {
	/* Struktura - klient nadpisuje kolory i rozmiary w HTML Element */
	border-radius: var(--ao-search-button-border-radius, 8px) !important;
	padding: var(--ao-search-button-padding, 12px 24px) !important;
	font-weight: 600 !important;
	transition: all 0.3s ease !important;
	cursor: pointer !important;
	/* min-height - klient ustawia w HTML Element przez CSS variable */
}

/* Przycisk hover - animacje */
.yootheme-mode-address_search .ao-search-button:hover,
.yootheme-mode-address_search button[type="submit"]:hover {
	transform: translateY(-2px) !important;
	/* Kolory hover - klient ustawia w HTML Element */
}

/* Checkbox label - struktura */
.yootheme-mode-address_search .ao-checkbox-label {
	font-size: 14px !important;
	cursor: pointer !important;
}

/* KONIEC STRUKTURY - kolory w HTML Element */

/* Width variants - standard (600px), extended (2/3), full (100%) */

/* Standard width - 600px (default/wąski) */
.yootheme-mode-address_search.search-width-standard .ao-address-search-proxy-wrapper {
	max-width: 600px;
	margin: 0 auto;
}

/* Extended width - 2/3 ekranu (rozszerzony) */
.yootheme-mode-address_search.search-width-extended .ao-address-search-proxy-wrapper {
	max-width: 66.67%;
	margin: 0 auto;
}

/* IMPORTANT: Rozszerzony tryb - wszystkie pola równo rozłożone */
.yootheme-mode-address_search.search-width-extended .ao-form-row.ao-form-row-with-button {
	grid-template-columns: 1fr 1fr 1fr auto !important;
}

/* Full width - 100% */
.yootheme-mode-address_search.search-width-full .ao-address-search-proxy-wrapper {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.yootheme-mode-address_search.search-width-full .ao-address-search-form-proxy {
	width: 100% !important;
}

/* Fix button width for address search - AGGRESSIVE APPROACH */
.yootheme-mode-address_search .ao-search-button {
	white-space: nowrap !important;
	width: auto !important;
	min-width: auto !important;
	max-width: none !important;
	padding: 12px 24px !important;
	flex: 0 0 auto !important;
	flex-shrink: 0 !important;
	flex-grow: 0 !important;
	overflow: visible !important;
	text-overflow: visible !important;
	box-sizing: border-box !important;
	word-wrap: normal !important;
	word-break: normal !important;
}

.yootheme-mode-address_search .ao-form-row-with-button {
	align-items: end !important;
}

/* Keep the house-number column compact without fighting the shared grid layout. */
.yootheme-mode-address_search input[name="number"] {
	max-width: 120px;
	width: 100%;
}

/* Gap control for address search form fields */
.yootheme-mode-address_search.gap-small .ao-form-row,
.yootheme-mode-address_search.gap-small .ao-form-row.ao-form-row-with-button {
	gap: 8px !important;
}

.yootheme-mode-address_search.gap-default .ao-form-row,
.yootheme-mode-address_search.gap-default .ao-form-row.ao-form-row-with-button {
	gap: 12px !important;
}

.yootheme-mode-address_search.gap-medium .ao-form-row,
.yootheme-mode-address_search.gap-medium .ao-form-row.ao-form-row-with-button {
	gap: 16px !important;
}

.yootheme-mode-address_search.gap-large .ao-form-row,
.yootheme-mode-address_search.gap-large .ao-form-row.ao-form-row-with-button {
	gap: 24px !important;
}

/* No street checkbox styling */
.yootheme-mode-address_search .ao-checkbox-row {
	margin: 10px 0;
	padding: 8px 0;
}

.yootheme-mode-address_search .ao-checkbox-label {
	display: flex;
	align-items: center;
	cursor: pointer;
	font-size: 14px;
	color: #666;
}

.yootheme-mode-address_search .ao-no-street-checkbox {
	margin-right: 8px;
	margin-left: 0;
}

.yootheme-mode-address_search .ao-checkbox-text {
	user-select: none;
}

/* Disabled street field styling - ULTRA HIGH SPECIFICITY for YooTheme */
html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper input[name="street"].ao-disabled,
.yootheme-mode-address_search .ao-address-search-proxy-wrapper input[name="street"].ao-disabled,
.yootheme-mode-address_search input[name="street"].ao-disabled {
	background-color: #f5f5f5 !important;
	color: #999 !important;
	cursor: not-allowed !important;
	opacity: 0.6 !important;
	pointer-events: none !important;
}

/* Responsive design for address search */
@media (max-width: 768px) {
	/* Mobile: wszystkie stany na 100% szerokości */
	html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper,
	.yootheme-mode-address_search.search-width-standard .ao-address-search-proxy-wrapper,
	.yootheme-mode-address_search.search-width-extended .ao-address-search-proxy-wrapper,
	.yootheme-mode-address_search.search-width-full .ao-address-search-proxy-wrapper {
		max-width: 100% !important;
		width: 100% !important;
		padding: 0 15px !important;
		box-sizing: border-box !important;
		overflow: visible !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	/* Mobile: ULTRA HIGH SPECIFICITY - override frontend-main.css grid */
	html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row.ao-form-row-with-button,
	html body .yootheme-mode-address_search .ao-address-search-proxy-wrapper .ao-form-row.ao-form-row-with-button,
	.yootheme-mode-address_search .ao-address-search-proxy-wrapper .ao-form-row.ao-form-row-with-button {
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: wrap !important;
		gap: 10px !important;
		grid-template-columns: none !important;
		grid-template-rows: none !important;
		align-items: stretch !important;
	}

	/* Mobile: wszystkie inputy na pełną szerokość - ULTRA HIGH SPECIFICITY */
	html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row-with-button input[type="text"],
	html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row-with-button input[name="city"],
	html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row-with-button input[name="street"],
	html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row-with-button input[name="number"],
	.yootheme-mode-address_search .ao-form-row-with-button input {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		flex: 1 1 100% !important;
		box-sizing: border-box !important;
	}

	/* Mobile: przycisk na pełną szerokość - ULTRA HIGH SPECIFICITY */
	html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row-with-button button.ao-search-button,
	.yootheme-mode-address_search .ao-form-row-with-button .ao-search-button {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		flex: 1 1 100% !important;
		box-sizing: border-box !important;
	}

	/* Mobile: autocomplete wrapper na pełną szerokość */
	html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper .ao-autocomplete-wrapper,
	.yootheme-mode-address_search .ao-autocomplete-wrapper {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}
}

@media (min-width: 769px) and (max-width: 1024px) {
	/* Tablet: rozszerzony tryb na 80% zamiast 66.67% */
	.yootheme-mode-address_search.search-width-extended .ao-address-search-proxy-wrapper {
		max-width: 80% !important;
	}

	/* Tablet: grid 2+1 dla rozszerzonego */
	.yootheme-mode-address_search.search-width-extended .ao-form-row.ao-form-row-with-button {
		grid-template-columns: 2fr 1fr 0.8fr auto !important;
	}
}

/* ========================================================================
	LOCATION BASED MODE
	======================================================================== */

/* Location offers specific styling */
.yootheme-mode-location_based .ao-location-status {
	text-align: center;
	margin-bottom: 20px;
	padding: 15px;
	background: #f8f9fa;
	border-radius: 8px;
}

/* ========================================================================
	SELECTED LOCATION MODE
	======================================================================== */

/* Selected location specific styling */
.yootheme-mode-selected_location.full-width .ao-selected-location-display {
	display: flex;
	width: 100%;
}

.yootheme-mode-selected_location.standard-width .ao-selected-location-display {
	display: inline-flex;
	max-width: fit-content;
}

.yootheme-mode-selected_location .ao-selected-location-display {
	align-items: center;
	justify-content: space-between;
	padding: 12px 16px;
	background: #f8f9fa;
	border: 1px solid #e9ecef;
	border-radius: 8px;
	font-size: 0.95em;
}

.yootheme-mode-selected_location .ao-location-text {
	font-weight: 500;
	color: #495057;
}

.yootheme-mode-selected_location .ao-change-location-button {
	background: var(--ao-primary-color, rgb(35, 152, 216)) !important;
	color: white !important;
	border: 1px solid var(--ao-primary-color, rgb(35, 152, 216)) !important;
	padding: 6px 12px !important;
	border-radius: 4px !important;
	font-size: 0.9em !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
}

.yootheme-mode-selected_location .ao-change-location-button:hover {
	background: var(--ao-secondary-color, rgb(30, 137, 195)) !important;
	border-color: var(--ao-secondary-color, rgb(30, 137, 195)) !important;
	transform: translateY(-1px) !important;
}

.yootheme-mode-selected_location .ao-no-location {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	padding: 12px 16px;
	background: #ffffff;
	border: 1px solid rgb(35, 152, 216);
	border-radius: 8px;
	color: #495057;
	font-size: 0.95em;
	max-width: fit-content;
	white-space: nowrap;
}

.yootheme-mode-selected_location .ao-location-error {
	text-align: center;
	padding: 20px;
	background: #f8d7da;
	border: 1px solid #f5c6cb;
	border-radius: 8px;
	color: #721c24;
}

/* Responsive design for selected location */
@media (max-width: 768px) {
	.yootheme-mode-selected_location .ao-selected-location-display {
		flex-direction: column;
		gap: 10px;
		text-align: center;
	}

	.yootheme-mode-selected_location .ao-change-location-button {
		margin-left: 0 !important;
		width: 100%;
	}
}

/* ========================================================================
	CONFIGURATOR MODE
	======================================================================== */

/* Configurator base shell */
.yootheme-mode-configurator {
	font-family: -apple-system, BlinkMacSystemFont, "Segue UI", Roboto, sans-serif;
}

/* Gap control for progress and step wrappers. Offer grid spacing is owned below. */
.yootheme-mode-configurator.gap-small .configurator-progress,
.yootheme-mode-configurator.gap-small .ao-configurator-progress,
.yootheme-mode-configurator.gap-small .step-container,
.yootheme-mode-configurator.gap-small .ao-step-container {
	gap: 8px !important;
}

.yootheme-mode-configurator.gap-default .configurator-progress,
.yootheme-mode-configurator.gap-default .ao-configurator-progress,
.yootheme-mode-configurator.gap-default .step-container,
.yootheme-mode-configurator.gap-default .ao-step-container {
	gap: 12px !important;
}

.yootheme-mode-configurator.gap-large .configurator-progress,
.yootheme-mode-configurator.gap-large .ao-configurator-progress,
.yootheme-mode-configurator.gap-large .step-container,
.yootheme-mode-configurator.gap-large .ao-step-container {
	gap: 15px !important;
}

/* Force grid layout strictly inside configurator container (except horizontal scroll mode) */
.yootheme-mode-configurator #ao-configurator .ao-offers-grid:not(.ao-display-scroll),
.yootheme-mode-configurator #ao-configurator .ao-configurator-step .ao-offers-grid:not(.ao-display-scroll) {
	display: grid !important;
	gap: 25px !important;
	width: 100% !important;
	margin: 30px auto !important;
	padding: 0 !important;
	list-style: none !important;
	box-sizing: border-box !important;
	max-width: 100% !important;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
}

.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-cols-1:not(.ao-display-scroll) {
	grid-template-columns: 1fr !important;
	max-width: 520px !important;
}

.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-cols-2:not(.ao-display-scroll) {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-cols-3:not(.ao-display-scroll) {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-cols-4:not(.ao-display-scroll) {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* Horizontal scroll mode in configurator */
.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll,
.yootheme-mode-configurator #ao-configurator .ao-configurator-step .ao-offers-grid.ao-display-scroll {
	display: flex !important;
	flex-wrap: nowrap !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	scroll-snap-type: x mandatory !important;
	gap: 20px !important;
	width: 100% !important;
	margin: 30px auto !important;
	padding: 10px 0 20px 0 !important;
	box-sizing: border-box !important;
	justify-content: flex-start !important;
	grid-template-columns: none !important;
}

.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll .ao-offer-card {
	flex-shrink: 0 !important;
	scroll-snap-align: start !important;
	scroll-snap-stop: always !important;
}

.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll.ao-cols-1 .ao-offer-card {
	flex: 0 0 100% !important;
}

.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll.ao-cols-2 .ao-offer-card {
	flex: 0 0 calc((100% - 20px) / 2) !important;
}

.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll.ao-cols-3 .ao-offer-card {
	flex: 0 0 calc((100% - 40px) / 3) !important;
}

.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll.ao-cols-4 .ao-offer-card {
	flex: 0 0 calc((100% - 60px) / 4) !important;
}

.yootheme-mode-configurator #ao-configurator .ao-scroll-carousel-wrapper {
	position: relative;
	margin: 0 40px;
}

/* Explicit reset so YooTheme button styles do not alter appearance */
.yootheme-mode-configurator #ao-configurator .ao-scroll-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 50px;
	height: 50px;
	background: rgba(255, 255, 255, 0.95) !important;
	border: 2px solid var(--ao-primary-color, #0073aa) !important;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15) !important;
	color: var(--ao-primary-color, #0073aa) !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	z-index: 10;
	cursor: pointer;
}

.yootheme-mode-configurator #ao-configurator .ao-scroll-arrow.ao-scroll-prev {
	left: -45px;
}

.yootheme-mode-configurator #ao-configurator .ao-scroll-arrow.ao-scroll-next {
	right: -45px;
}

.yootheme-mode-configurator #ao-configurator .ao-scroll-arrow .dashicons {
	font-size: 28px;
	width: 28px;
	height: 28px;
}

/* Offer cards */
.yootheme-mode-configurator .ao-offer-card {
	display: flex !important;
	flex-direction: column !important;
	background: #fff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 12px !important;
	padding: 25px !important;
	transition: all 0.3s ease !important;
	box-shadow: 0 4px 20px rgba(0,0,0,0.1) !important;
	position: relative !important;
	min-height: 450px !important;
	box-sizing: border-box !important;
}

.yootheme-mode-configurator .ao-offer-card:hover {
	border-color: #007bff !important;
	box-shadow: 0 8px 25px rgba(0,123,255,0.15) !important;
	transform: translateY(-2px) !important;
}

.yootheme-mode-configurator .offer-card.selected,
.yootheme-mode-configurator .ao-offer-card.selected {
	border-color: rgb(35, 152, 216);
	background: rgba(35, 152, 216, 0.05);
}

/* Price styling */
.yootheme-mode-configurator .ao-offer-card .offer-price {
	display: flex !important;
	align-items: baseline !important;
	justify-content: center !important;
	gap: 5px !important;
	margin: 20px 0 !important;
	background: #f8f9fa !important;
	padding: 15px !important;
	border-radius: 8px !important;
	border: 3px solid #007bff !important;
	visibility: visible !important;
	opacity: 1 !important;
	box-shadow: 0 4px 15px rgba(0,123,255,0.2) !important;
	font-family: inherit !important;
}

.yootheme-mode-configurator .ao-offer-card .price-amount {
	font-size: 36px !important;
	font-weight: 800 !important;
	color: var(--ao-brand-primary, var(--ao-price-color, #007bff)) !important;
	line-height: 1 !important;
	visibility: visible !important;
	opacity: 1 !important;
	display: inline-block !important;
	text-shadow: 0 2px 4px rgba(0,123,255,0.2) !important;
}

.yootheme-mode-configurator .ao-offer-card .price-unit {
	font-size: 18px !important;
	color: #6c757d !important;
	font-weight: 700 !important;
	visibility: visible !important;
	opacity: 1 !important;
	display: inline-block !important;
}

/* Animation reset */
.yootheme-mode-configurator .ao-fade-in {
	animation: none !important;
	opacity: 1 !important;
	transform: none !important;
}

.yootheme-mode-configurator .ao-price-updating,
.yootheme-mode-configurator .ao-focused {
	transition: none !important;
}

@media (max-width: 768px) {
	.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll,
	.yootheme-mode-configurator #ao-configurator .ao-configurator-step .ao-offers-grid.ao-display-scroll {
		gap: 15px !important;
		margin: 0 -15px !important;
		padding-left: 15px !important;
		padding-right: 0 !important;
		scroll-padding-left: 15px !important;
		scroll-padding-right: 0 !important;
	}

	/* Gap presets should not change mobile peek in scroll mode */
	.yootheme-mode-configurator.gap-small #ao-configurator .ao-offers-grid.ao-display-scroll,
	.yootheme-mode-configurator.gap-default #ao-configurator .ao-offers-grid.ao-display-scroll,
	.yootheme-mode-configurator.gap-large #ao-configurator .ao-offers-grid.ao-display-scroll {
		gap: 15px !important;
	}

	.yootheme-mode-configurator #ao-configurator .ao-offers-grid:not(.ao-display-scroll),
	.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-cols-2:not(.ao-display-scroll),
	.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-cols-3:not(.ao-display-scroll),
	.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-cols-4:not(.ao-display-scroll),
	.yootheme-mode-configurator #ao-configurator .ao-configurator-step .ao-offers-grid:not(.ao-display-scroll),
	.yootheme-mode-configurator #ao-configurator .ao-configurator-step .ao-offers-grid.ao-cols-2:not(.ao-display-scroll),
	.yootheme-mode-configurator #ao-configurator .ao-configurator-step .ao-offers-grid.ao-cols-3:not(.ao-display-scroll),
	.yootheme-mode-configurator #ao-configurator .ao-configurator-step .ao-offers-grid.ao-cols-4:not(.ao-display-scroll),
	.yootheme-mode-configurator .ao-offers-grid:not(.ao-display-scroll),
	.yootheme-mode-configurator .ao-offers-grid.ao-cols-2:not(.ao-display-scroll),
	.yootheme-mode-configurator .ao-offers-grid.ao-cols-3:not(.ao-display-scroll),
	.yootheme-mode-configurator .ao-offers-grid.ao-cols-4:not(.ao-display-scroll) {
		grid-template-columns: 1fr !important;
		max-width: 100% !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll .ao-offer-card {
		flex: 0 0 90% !important;
		width: 90% !important;
		min-width: 280px !important;
		max-width: none !important;
	}

	.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll.ao-cols-2 .ao-offer-card,
	.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll.ao-cols-3 .ao-offer-card,
	.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll.ao-cols-4 .ao-offer-card {
		flex: 0 0 90% !important;
		width: 90% !important;
		min-width: 280px !important;
		max-width: none !important;
	}

	.yootheme-mode-configurator #ao-configurator .ao-scroll-carousel-wrapper {
		margin: 0 !important;
	}

	.yootheme-mode-configurator #ao-configurator .ao-scroll-arrow {
		display: none !important;
	}

	/* Progress bar wrap on mobile */
	.yootheme-mode-configurator .configurator-progress,
	.yootheme-mode-configurator .ao-configurator-progress {
		flex-wrap: wrap !important;
		gap: 10px !important;
	}

	/* Compact padding on mobile */
	.yootheme-mode-configurator .step-container,
	.yootheme-mode-configurator .ao-step-container {
		padding: 20px !important;
	}
}

@media (min-width: 769px) and (max-width: 1024px) {
	.yootheme-mode-configurator .ao-offers-grid.ao-cols-3:not(.ao-display-scroll) {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll.ao-cols-3 .ao-offer-card,
	.yootheme-mode-configurator #ao-configurator .ao-offers-grid.ao-display-scroll.ao-cols-4 .ao-offer-card {
		flex: 0 0 45% !important;
		min-width: 320px !important;
		max-width: 450px !important;
	}
}

/* Progress steps */
.yootheme-mode-configurator .configurator-progress,
.yootheme-mode-configurator .ao-configurator-progress {
	display: flex;
	justify-content: space-between;
	margin-bottom: 30px;
	padding: 15px;
	background: #f8f9fa;
	border-radius: 8px;
}

.yootheme-mode-configurator .configurator-progress .step,
.yootheme-mode-configurator .ao-configurator-progress .step {
	display: flex;
	align-items: center;
	padding: 8px 16px;
	background: #e9ecef;
	border-radius: 20px;
	font-size: 14px;
	font-weight: 500;
	color: #6c757d;
}

.yootheme-mode-configurator .configurator-progress .step.active,
.yootheme-mode-configurator .ao-configurator-progress .step.active {
	background: rgb(35, 152, 216);
	color: #fff;
}

/* Step container and copy */
.yootheme-mode-configurator .step-container,
.yootheme-mode-configurator .ao-step-container {
	background: #fff;
	border-radius: 12px;
	padding: 30px;
	box-shadow: 0 2px 12px rgba(0,0,0,0.08);
	border: 1px solid #e9ecef;
}

.yootheme-mode-configurator h1,
.yootheme-mode-configurator h2,
.yootheme-mode-configurator h3 {
	color: #212529;
	font-weight: 600;
	margin-bottom: 20px;
}

.yootheme-mode-configurator .offer-title,
.yootheme-mode-configurator .ao-offer-title {
	font-size: 1.25rem;
	font-weight: 600;
	color: #212529;
	margin-bottom: 15px;
}

.yootheme-mode-configurator .offer-description,
.yootheme-mode-configurator .ao-offer-description {
	color: #6c757d;
	margin-bottom: 20px;
	line-height: 1.5;
}

/* Configurable options */
.yootheme-mode-configurator .config-options,
.yootheme-mode-configurator .ao-config-options {
	margin-top: 25px;
	padding-top: 20px;
	border-top: 1px solid #e9ecef;
}

.yootheme-mode-configurator .config-options h4,
.yootheme-mode-configurator .ao-config-options h4 {
	margin-bottom: 15px;
	color: #495057;
	font-size: 1rem;
	font-weight: 600;
}

.yootheme-mode-configurator input[type="checkbox"],
.yootheme-mode-configurator input[type="radio"] {
	margin-right: 10px;
	transform: scale(1.2);
}

.yootheme-mode-configurator label {
	cursor: pointer;
	display: flex;
	align-items: center;
	padding: 8px 0;
	color: #495057;
}

/* Buttons */
.yootheme-mode-configurator .btn,
.yootheme-mode-configurator button {
	background: var(--ao-button-bg-color, var(--ao-configurator-primary, var(--ao-primary-color, rgb(35, 152, 216))));
	color: #fff;
	border: none;
	padding: 12px 24px;
	border-radius: 6px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s;
	text-decoration: none;
	display: inline-block;
}

.yootheme-mode-configurator .btn:hover,
.yootheme-mode-configurator button:hover {
	background: var(--ao-secondary-color, var(--ao-form-primary-dark, rgb(30, 137, 195)));
	transform: translateY(-1px);
}

/* Step action buttons */
.yootheme-mode-configurator .step-actions {
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	gap: 20px !important;
	margin-top: 40px !important;
	padding: 20px !important;
	flex-wrap: wrap !important;
	visibility: visible !important;
	opacity: 1 !important;
}

.yootheme-mode-configurator .ao-skip-button,
.yootheme-mode-configurator .ao-back-button,
.yootheme-mode-configurator .ao-modify-btn {
	padding: 12px 24px !important;
	border: 2px solid var(--ao-primary-color, #007bff) !important;
	background: transparent !important;
	color: var(--ao-primary-color, #007bff) !important;
	border-radius: 8px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	font-size: 14px !important;
	text-decoration: none !important;
	min-width: 120px !important;
	justify-content: center !important;
	visibility: visible !important;
	opacity: 1 !important;
	font-family: inherit !important;
	box-sizing: border-box !important;
}

.yootheme-mode-configurator .ao-skip-button:hover,
.yootheme-mode-configurator .ao-back-button:hover,
.yootheme-mode-configurator .ao-modify-btn:hover {
	background: var(--ao-primary-color, #007bff) !important;
	color: #fff !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 4px 15px rgba(0,123,255,0.3) !important;
}

/* ========================================================================
	TV CHANNELS MODE
	======================================================================== */

/* TV CHANNELS - YooTheme Integration */
.yootheme-mode-tv_channels {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* TV Channels - Custom Color Override */
.yootheme-mode-tv_channels .ao-category-icon {
	background: rgb(35, 152, 216) !important;
	border-color: rgb(25, 130, 190) !important;
}

.yootheme-mode-tv_channels .ao-package-tab.active {
	background: rgb(35, 152, 216) !important;
	border-color: rgb(35, 152, 216) !important;
}

.yootheme-mode-tv_channels .ao-package-tab:focus {
	outline: 2px solid rgb(35, 152, 216);
	outline-offset: -2px;
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header {
	background: rgb(35, 152, 216) !important;
	color: white !important;
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header .ao-category-name {
	color: white !important;
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header .ao-category-icon {
	color: white !important;
	border: 1px solid white !important;
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header .ao-category-toggle,
.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header .ao-toggle-plus,
.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header .ao-toggle-minus {
	color: white !important;
}

.yootheme-mode-tv_channels .ao-category-header:focus {
	outline: 2px solid rgb(35, 152, 216);
	outline-offset: -2px;
}

.yootheme-mode-tv_channels .ao-category-count {
	background: rgb(35, 152, 216) !important;
}

/* Package switcher tabs styling */
.yootheme-mode-tv_channels .ao-package-tabs {
	display: flex;
	justify-content: center;
	gap: 16px;
	margin-bottom: 30px;
	flex-wrap: wrap;
}

.yootheme-mode-tv_channels .ao-package-tab {
	background: #f8f9fa;
	border: 2px solid #e9ecef;
	color: #495057;
	padding: 12px 24px;
	border-radius: 8px;
	cursor: pointer;
	transition: all 0.3s ease;
	font-weight: 500;
}

.yootheme-mode-tv_channels .ao-package-tab:hover {
	background: #e9ecef;
	transform: translateY(-2px);
}

.yootheme-mode-tv_channels .ao-package-tab.active {
	background: rgb(35, 152, 216);
	border-color: rgb(35, 152, 216);
	color: white;
}

/* Package statistics header */
.yootheme-mode-tv_channels .ao-tv-stats-header {
	background: #f8f9fa;
	border-radius: 12px;
	padding: 20px;
	margin-bottom: 25px;
}

.yootheme-mode-tv_channels .ao-tv-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 20px;
}

.yootheme-mode-tv_channels .ao-tv-stat-item {
	text-align: center;
	padding: 15px;
	background: white;
	border-radius: 8px;
	border: 1px solid #e9ecef;
}

.yootheme-mode-tv_channels .ao-package-name {
	font-size: 1.2rem;
	font-weight: 600;
	color: #212529;
	margin-bottom: 8px;
}

.yootheme-mode-tv_channels .ao-package-description {
	color: #6c757d;
	font-size: 0.95rem;
}

/* Categories accordion */
.yootheme-mode-tv_channels .ao-category-section {
	background: white;
	border: 1px solid #e9ecef;
	border-radius: 8px;
	margin-bottom: 15px;
	overflow: hidden;
	transition: all 0.3s ease;
}

.yootheme-mode-tv_channels .ao-category-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 15px 20px;
	background: #f8f9fa;
	cursor: pointer;
	transition: all 0.3s ease;
}

.yootheme-mode-tv_channels .ao-category-header:hover {
	background: #e9ecef;
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header {
	background: rgb(35, 152, 216);
	color: white;
}

.yootheme-mode-tv_channels .ao-category-info {
	display: flex;
	align-items: center;
	gap: 12px;
}

.yootheme-mode-tv_channels .ao-category-icon {
	font-size: 1.2rem;
	width: 24px;
	text-align: center;
}

.yootheme-mode-tv_channels .ao-category-name {
	font-weight: 600;
	font-size: 1.1rem;
}

.yootheme-mode-tv_channels .ao-category-meta {
	display: flex;
	align-items: center;
	gap: 10px;
}

.yootheme-mode-tv_channels .ao-category-count {
	background: rgb(35, 152, 216);
	color: white !important;
	padding: 4px 8px;
	border-radius: 12px;
	font-size: 0.85rem;
	font-weight: 500;
	border: 1px solid rgb(35, 152, 216);
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-count {
	background: white;
	color: rgb(35, 152, 216);
	border: 1px solid white;
}

/* Channels grid */
.yootheme-mode-tv_channels .ao-channels-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 16px;
	padding: 20px;
}

.yootheme-mode-tv_channels .ao-channel-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 12px;
	border-radius: 8px;
	transition: all 0.3s ease;
	cursor: pointer;
}

.yootheme-mode-tv_channels .ao-channel-item:hover {
	background: #f8f9fa;
	transform: translateY(-2px);
}

.yootheme-mode-tv_channels .ao-channel-logo-container {
	position: relative;
	margin-bottom: 8px;
}

.yootheme-mode-tv_channels .ao-channel-logo {
	max-width: 60px;
	max-height: 40px;
	object-fit: contain;
}

.yootheme-mode-tv_channels .ao-channel-quality {
	position: absolute;
	top: -6px;
	right: -6px;
	background: var(--ao-brand-primary);
	color: white;
	padding: 2px 6px;
	border-radius: 4px;
	font-size: 0.7rem;
	font-weight: bold;
}

.yootheme-mode-tv_channels .ao-channel-quality.ao-quality-4k {
	background: #dc3545;
}

.yootheme-mode-tv_channels .ao-channel-name {
	font-size: 0.85rem;
	text-align: center;
	color: #495057;
	font-weight: 500;
}

/* Responsive design for TV channels */
@media (max-width: 768px) {
	.yootheme-mode-tv_channels .ao-package-tabs {
		gap: 8px;
	}

	.yootheme-mode-tv_channels .ao-package-tab {
		padding: 10px 16px;
		font-size: 0.9rem;
	}

	.yootheme-mode-tv_channels .ao-tv-stats-grid {
		grid-template-columns: 1fr;
	}

	.yootheme-mode-tv_channels .ao-channels-grid {
		grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
		gap: 12px;
	}
}

/* Full width variants - will be applied dynamically */
.yootheme-mode-tv_channels.tv-full-width .ao-tv-channels {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.yootheme-mode-tv_channels.tv-standard-width .ao-tv-channels {
	max-width: 1200px;
	margin: 0 auto;
}

/* Gap size variants - will be applied dynamically */
.yootheme-mode-tv_channels.tv-gap-small .ao-package-tabs {
	gap: 8px;
}

.yootheme-mode-tv_channels.tv-gap-medium .ao-package-tabs {
	gap: 16px;
}

.yootheme-mode-tv_channels.tv-gap-large .ao-package-tabs {
	gap: 24px;
}

.yootheme-mode-tv_channels.tv-gap-small .ao-tv-stats-grid {
	gap: 15px;
}

.yootheme-mode-tv_channels.tv-gap-medium .ao-tv-stats-grid {
	gap: 20px;
}

.yootheme-mode-tv_channels.tv-gap-large .ao-tv-stats-grid {
	gap: 30px;
}

.yootheme-mode-tv_channels.tv-gap-small .ao-category-section {
	margin-bottom: 10px;
}

.yootheme-mode-tv_channels.tv-gap-medium .ao-category-section {
	margin-bottom: 15px;
}

.yootheme-mode-tv_channels.tv-gap-large .ao-category-section {
	margin-bottom: 20px;
}

.yootheme-mode-tv_channels.tv-gap-small .ao-channels-grid {
	gap: 12px;
}

.yootheme-mode-tv_channels.tv-gap-medium .ao-channels-grid {
	gap: 16px;
}

.yootheme-mode-tv_channels.tv-gap-large .ao-channels-grid {
	gap: 24px;
}

/* Success message inherits fallback typography from brand CSS. */
.ao-location-success-message {
	margin-bottom: 2rem !important;
}

@media (max-width: 768px) {
	.ao-location-success-message {
		margin-bottom: 1.5rem !important;
	}
}
