/*
 * Al Shariqa / Maison Shariqa design foundation.
 * Version: 1.1.0
 *
 * This file is intentionally update-safe: it belongs to the child theme and
 * contains no remote imports or vendor overrides.
 */
:root {
	--alsq-brand: #6b0e2c;
	--alsq-brand-deep: #4d081f;
	--alsq-wine-deep: #43091d;
	--alsq-ivory: #f7efe6;
	--alsq-ivory-cool: #faf5f0;
	--alsq-ivory-warm: #f2e9e2;
	--alsq-gold: #c79a3b;
	--alsq-gold-soft: #e0c58a;
	--alsq-blush: #ebd3ce;
	--alsq-bronze: #916419;
	--alsq-ink: #211d1f;
	--alsq-muted: #6f686b;
	--alsq-border: #e5dcd7;
	--alsq-surface: #fffdfb;
	--alsq-surface-muted: #f8f3ef;
	/* Refonte typography: Bodoni Moda (display) + Archivo (UI) + Amiri (Arabic),
	 * self-hosted by assets/css/alsq-fonts.css. System stacks stay as fallbacks. */
	--alsq-display-font: "Fraunces", "Iowan Old Style", "Baskerville", "Times New Roman", serif;
	--alsq-body-font: "Archivo", "Instrument Sans", system-ui, Arial, sans-serif;
	--alsq-arabic-font: "Amiri", "Times New Roman", serif;
	--alsq-radius-sm: 8px;
	--alsq-radius-md: 14px;
	--alsq-radius-lg: 20px;

	/* "Verre" frosted-glass language (chosen: blur 16 · teinte 0.46 · filet on · rounded).
	 * Consumed by alsq-glass.css; kept here so tokens are global and tunable in one place. */
	/* Global feel: "Couture" — deeper, more solid wine glass + stronger gold. */
	--alsq-glass-blur: 12px;
	--alsq-glass-wine-a: 0.58;
	--alsq-glass-wine: rgba(67, 9, 29, var(--alsq-glass-wine-a));
	--alsq-glass-wine-strong: rgba(50, 8, 24, 0.74);
	/* text-bearing cards need a legibility floor over pale-studio photos + white */
	--alsq-glass-wine-card: rgba(67, 9, 29, 0.78);
	--alsq-glass-wine-solid: rgba(67, 9, 29, 0.9);
	--alsq-glass-ivory-a: 0.6;
	--alsq-glass-ivory: rgba(250, 245, 240, var(--alsq-glass-ivory-a));
	--alsq-glass-hairline: rgba(224, 197, 138, 0.58);
	--alsq-glass-hairline-soft: rgba(224, 197, 138, 0.32);
	--alsq-glass-radius: 12px;
	--alsq-shadow-soft: 0 10px 30px rgba(56, 18, 32, 0.09);
	--alsq-shadow-focus: 0 0 0 3px rgba(145, 100, 25, 0.22);
	--alsq-space-1: 0.5rem;
	--alsq-space-2: 0.75rem;
	--alsq-space-3: 1rem;
	--alsq-space-4: 1.5rem;
	--alsq-space-5: 2rem;
	--alsq-space-6: 3rem;

	/* Keep the theme's self-hosted font and expose the new design tokens to
	 * Glozin/Elementor without adding a remote dependency. */
	--gz-body-font: var(--alsq-body-font);
	--gz-heading-font: var(--alsq-display-font);
	--gz-heading-color: var(--alsq-ink);
	--gz-color-base: var(--alsq-ink);
	--gz-color-dark: var(--alsq-ink);
	--gz-color-primary: var(--alsq-brand);
	--gz-color-secondary: var(--alsq-gold);
	--gz-color-grey: var(--alsq-muted);
	--gz-color-light-grey: var(--alsq-surface-muted);
	--gz-border-color: var(--alsq-border);
	--gz-button-rounded: var(--alsq-radius-sm);
	--gz-input-rounded: var(--alsq-radius-sm);
}

/* Elementor's global kit is database-rendered; these variables keep its
 * existing widgets aligned with the file-based foundation. */
.elementor-kit-12 {
	--e-global-color-primary: var(--alsq-brand);
	--e-global-color-secondary: var(--alsq-gold);
	--e-global-color-text: var(--alsq-ink);
	--e-global-color-accent: var(--alsq-brand);
	--e-global-typography-primary-font-family: var(--alsq-display-font);
	--e-global-typography-secondary-font-family: var(--alsq-display-font);
	--e-global-typography-text-font-family: var(--alsq-body-font);
	--e-global-typography-accent-font-family: var(--alsq-body-font);
}

html {
	box-sizing: border-box;
	scroll-padding-top: calc(var(--gz-header-height, 70px) + 1rem);
}

body {
	box-sizing: border-box;
	background: var(--alsq-surface);
	color: var(--alsq-ink);
	font-family: var(--alsq-body-font);
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

body,
button,
input,
select,
textarea {
	font-family: var(--alsq-body-font);
}

:where(h1, h2, h3, h4, h5, h6, .heading, .elementor-heading-title) {
	color: var(--alsq-ink);
	font-family: var(--alsq-display-font);
	font-weight: 600;
	letter-spacing: -0.02em;
}

:where(a, .woocommerce a) {
	color: var(--alsq-brand);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.16em;
}

:where(a, .woocommerce a):hover {
	color: var(--alsq-bronze);
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 3px solid var(--alsq-bronze);
	outline-offset: 3px;
}

/* Maison navigation polish: retain the theme's layout while making the
 * active destination and keyboard position legible in every header state. */
.site-header .nav-menu > li.current-menu-item > a,
.site-header .nav-menu > li.current-menu-ancestor > a {
	text-decoration-line: underline;
	text-decoration-color: var(--alsq-gold);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.45em;
}

.site-header a:focus-visible,
.site-header button:focus-visible,
.site-footer a:focus-visible,
.site-footer button:focus-visible {
	outline-color: var(--alsq-gold);
	box-shadow: 0 0 0 1px var(--alsq-brand);
}

#site-header .header-main,
#site-header .header-mobile-main {
	border-bottom: 1px solid rgba(247, 239, 230, 0.18);
}

#site-header.gz-header-sticky-visible .header-main,
#site-header.gz-header-sticky-visible .header-mobile-main {
	box-shadow: 0 8px 22px rgba(33, 29, 31, 0.12);
}

.site-footer .elementor-widget-text-editor a,
.site-footer .elementor-widget-heading a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
}

/* Header and campaign utilities remain burgundy/ivory while allowing their
 * flex children to shrink instead of creating a mobile min-width. */
.campaign-bar {
	--gz-campaign-background: var(--alsq-brand);
	--gz-campaign-text-color: var(--alsq-ivory);
	min-height: 34px;
	background: var(--alsq-brand);
	color: var(--alsq-ivory);
}

.campaign-bar-type--slides .swiper .swiper-button-text {
	--gz-arrow-color: var(--alsq-ivory);
	--gz-arrow-color-hover: var(--alsq-ivory);
	--gz-arrow-bg-color: var(--alsq-brand);
	--gz-arrow-bg-color-hover: var(--alsq-brand-deep);
}

.campaign-bar__text,
.campaign-bar__item {
	max-width: 100%;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.site-header__desktop .site-header__container,
.site-header__mobile .site-header__container {
	min-width: 0;
	max-width: 100%;
}

.site-header__desktop .header-items,
.site-header__mobile .header-items {
	min-width: 0;
}

.site-header__desktop .header-right-items {
	gap: clamp(4px, 1vw, 14px);
}

.site-header__desktop .header-right-items > *,
.site-header__mobile .header-right-items > * {
	min-width: 0;
}

.site-header__mobile .site-header__container {
	gap: 8px;
	padding-inline: clamp(12px, 4vw, 20px);
}

.site-header__mobile .header-logo {
	max-width: min(58vw, 190px);
}

.site-header__mobile .header-logo img {
	max-width: 100%;
}

.site-header__mobile .header-center-items {
	overflow: hidden;
}

/* Glozin fixes the active header section to the viewport while scrolling.
 * Keep the measured placeholder height and use scroll margins for anchors,
 * rather than adding permanent page whitespace. */
#site-header.gz-header-sticky-visible {
	height: var(--gz-header-height, 70px);
}

#site-content,
#page-header,
.site-content,
.site-main,
.glozin-breadcrumb-navigation-wrapper {
	scroll-margin-top: calc(var(--gz-header-height, 70px) + 1rem);
}

@media (max-width: 1024px) {
	html {
		scroll-padding-top: calc(var(--gz-header-height-mobile, 64px) + 0.75rem);
	}

	#site-header.gz-header-sticky-visible {
		height: var(--gz-header-height-mobile, 64px);
	}

	#site-content,
	#page-header,
	.site-content,
	.site-main,
	.glozin-breadcrumb-navigation-wrapper {
		scroll-margin-top: calc(var(--gz-header-height-mobile, 64px) + 0.75rem);
	}
}

/* Constrain real flex/grid children; global overflow clipping remains only a
 * last-resort legacy rule in the existing Customizer CSS. */
#page,
#site-content,
.site-content,
.site-content-container,
#primary,
#main,
.content-area,
.elementor,
.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget-wrap,
.e-con,
.e-con-inner,
footer,
.site-footer {
	min-width: 0;
	max-width: 100%;
}

.elementor-section.elementor-section-boxed > .elementor-container {
	width: 100%;
}

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

table {
	max-width: 100%;
}

.site-breadcrumb,
.woocommerce-breadcrumb,
.glozin-breadcrumb-navigation-wrapper,
.page-header__title,
.page-header__description,
footer .elementor-widget-text-editor,
footer a {
	max-width: 100%;
	overflow-wrap: anywhere;
}

.site-breadcrumb,
.woocommerce-breadcrumb {
	line-height: 1.45;
}

/* Base controls and messages. Exclude icon-only Glozin buttons and native
 * checkboxes/radios so WooCommerce/Utopia interactions retain their layout. */
:where(
	a.button,
	button.button,
	input.button,
	.wp-element-button,
	.wp-block-button__link,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.single_add_to_cart_button,
	.add_to_cart_button,
	.checkout-button
) {
	min-height: 44px;
	border-radius: var(--alsq-radius-sm);
	font-weight: 600;
	letter-spacing: 0.01em;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

:where(
	a.button,
	button.button,
	input.button,
	.wp-element-button,
	.wp-block-button__link,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.single_add_to_cart_button,
	.add_to_cart_button,
	.checkout-button
):not(:disabled):not(.disabled):hover {
	transform: translateY(-1px);
}

:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
	max-width: 100%;
	border: 1px solid var(--alsq-border);
	border-radius: var(--alsq-radius-sm);
	background: var(--alsq-surface);
	color: var(--alsq-ink);
}

:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus {
	border-color: var(--alsq-brand);
	box-shadow: var(--alsq-shadow-focus);
	outline: 0;
}

:where(input, select, textarea)::placeholder {
	color: var(--alsq-muted);
	opacity: 1;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
	border-radius: var(--alsq-radius-sm);
	border-inline-start-color: var(--alsq-brand);
	background: var(--alsq-surface-muted);
}

.woocommerce span.onsale,
.wc-block-components-product-badge {
	background: var(--alsq-gold);
	color: var(--alsq-brand-deep);
}

.price,
.woocommerce-Price-amount {
	color: var(--alsq-brand);
}

/* Product cards should have a stable rhythm without changing their content. */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-loop-product__title {
	line-height: 1.35;
}

/* Real colour swatch dots under catalog cards (see alsq_loop_color_swatches). */
.alsq-swatch-dots {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 0.55rem;
}

.alsq-swatch-dot {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--sw, #cccccc);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.16);
}

.alsq-swatch-more {
	color: var(--alsq-muted);
	font-size: 0.72rem;
	letter-spacing: 0.02em;
}

/* Do not show Glozin's empty five-star placeholder; rated products are left
 * untouched by the MU-plugin filters. */
.glozin-rating:empty,
.glozin-rating:has(.star-rating:empty) {
	display: none;
}

@media (max-width: 767px) {
	.site-content-container,
	.elementor-section.elementor-section-boxed > .elementor-container,
	.e-con {
		width: 100%;
		max-width: 100%;
	}

	.elementor-widget-wrap,
	.e-con-inner {
		min-width: 0;
		max-width: 100%;
	}

	.page-header {
		padding-inline: 15px;
	}

	.site-breadcrumb,
	.woocommerce-breadcrumb {
		font-size: 0.8125rem;
	}

	:where(
		a.button,
		button.button,
		input.button,
		.wp-element-button,
		.wp-block-button__link,
		.woocommerce a.button,
		.woocommerce button.button,
		.woocommerce input.button,
		.single_add_to_cart_button,
		.add_to_cart_button,
		.checkout-button
	) {
		min-height: 42px;
		padding-inline: 0.9rem;
	}
}

/* Phase 1 mobile correction: reserve space for campaign controls, keep the
 * three header zones independent, and give authored content a real shrink
 * boundary. These rules address the source min-widths instead of masking
 * overflow at the viewport. */
@media (max-width: 767px) {
	#campaign-bar.campaign-bar-type--slides {
		min-height: 50px;
		line-height: 1.35;
	}

	#campaign-bar.campaign-bar-type--slides .campaign-bar__container {
		width: 100%;
		max-width: none;
		min-width: 0;
		padding-inline: 0;
		height: auto !important;
		overflow: hidden;
	}

	#campaign-bar.campaign-bar-type--slides .campaign-bar__items,
	#campaign-bar.campaign-bar-type--slides .campaign-bar__item,
	#campaign-bar.campaign-bar-type--slides .campaign-bar__text {
		min-width: 0;
		max-width: 100%;
	}

	#campaign-bar.campaign-bar-type--slides .campaign-bar__items {
		width: 100%;
		height: auto !important;
	}

	#campaign-bar.campaign-bar-type--slides .campaign-bar__item {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: auto !important;
		min-height: 50px;
	}

	#campaign-bar.campaign-bar-type--slides .campaign-bar__text {
		width: 100%;
		padding: 8px 52px 8px 12px !important;
		line-height: 1.35;
		white-space: normal;
		text-overflow: clip;
		overflow: visible;
		overflow-wrap: anywhere;
	}

	#campaign-bar.campaign-bar-type--slides .swiper-button-text {
		--gz-arrow-width: 32px;
		--gz-arrow-height: 32px;
	}

	#campaign-bar.campaign-bar-type--slides .swiper-button-prev {
		display: none !important;
	}

	#campaign-bar.campaign-bar-type--slides .swiper-button-next {
		display: none !important;
	}

	#campaign-bar.campaign-bar-type--slides .campaign-bar__close {
		width: 44px;
		min-width: 44px;
		height: 44px;
		min-height: 44px;
		padding-inline: 12px;
	}

	.site-header__mobile .site-header__container {
		display: grid !important;
		grid-template-columns: 88px minmax(0, 1fr) 88px;
		gap: 0;
		padding-inline: 10px;
	}

	.site-header__mobile .header-left-items,
	.site-header__mobile .header-center-items,
	.site-header__mobile .header-right-items {
		min-width: 0;
		width: auto;
		flex: none;
	}

	.site-header__mobile .header-left-items {
		width: 88px;
		min-width: 88px;
	}

	.site-header__mobile .header-center-items {
		overflow: visible;
		justify-content: center;
	}

	.site-header__mobile .header-logo {
		width: auto;
		max-width: 100%;
		flex: 0 1 auto;
	}

	.site-header__mobile .header-logo > a {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.site-header__mobile .header-logo img {
		max-width: 100%;
	}

	.site-header__mobile .header-right-items {
		width: 88px;
		min-width: 88px;
		gap: 0;
		justify-content: flex-end;
	}

	.site-header__mobile .header-left-items > .header-hamburger,
	.site-header__mobile .header-right-items > a {
		width: 44px;
		min-width: 44px;
		height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.alsq .inner,
	.alsq .box,
	.alsq .sub {
		min-width: 0;
		max-width: 100%;
	}

	.alsq .inner {
		padding-inline: 20px;
	}

	.alsq .box {
		width: 100%;
	}

	.alsq .sub {
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.alsqp,
	.alsqp .head,
	.alsqp .wrap,
	.alsqp .lead,
	.alsqp .values,
	.alsqp .cols,
	.alsqp .val,
	.alsqp .card {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.alsqp .head,
	.alsqp .wrap {
		padding-inline: 20px;
	}

	.alsqp .head h1,
	.alsqp .lead,
	.alsqp .val,
	.alsqp .card,
	.alsqp p,
	.alsqp span,
	.alsqp a {
		max-width: 100%;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.site-footer,
	.site-footer .elementor,
	.site-footer .e-con,
	.site-footer .e-con-inner,
	.site-footer .elementor-widget,
	.site-footer .elementor-widget-container,
	.site-footer .elementor-widget-text-editor {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.site-footer .elementor-widget-text-editor,
	.site-footer .elementor-widget-text-editor a,
	.site-footer .elementor-widget-heading,
	.site-footer .elementor-widget-heading * {
		max-width: 100%;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.elementor-page .elementor,
	.elementor-page .elementor-section,
	.elementor-page .e-con,
	.elementor-page .e-con-inner,
	.elementor-page .elementor-widget,
	.elementor-page .elementor-widget-container {
		min-width: 0;
		max-width: 100%;
	}

	.elementor-page .elementor-widget-text-editor,
	.elementor-page .elementor-widget-text-editor * {
		max-width: 100%;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.woocommerce-cart .gz-cart-empty-content {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		padding-inline: 15px;
	}

	.woocommerce-cart .gz-cart-empty-content h1,
	.woocommerce-cart .gz-cart-empty-content h2,
	.woocommerce-cart .gz-cart-empty-content p,
	.woocommerce-cart .gz-cart-empty-content > div,
	.woocommerce-cart .gz-cart-empty-content a {
		max-width: 100%;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.woocommerce-cart .gz-cart-empty-content .return-to-shop {
		margin-inline: auto;
	}

	.woocommerce-cart .gz-cart-empty-content .button {
		white-space: normal;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
