/* =========================================================================
 * LUXE MAROC — Design System 2026
 * Lin & soie premium · Femme 25-45 ans · FR + Darija
 * ========================================================================= */

:root {
	/* Palette */
	--luxe-beige:        #f4ede2;
	--luxe-beige-deep:   #e8dcc6;
	--luxe-sand:         #d9b48a;
	--luxe-gold:         #b8956a;
	--luxe-gold-dark:    #8b6f47;
	--luxe-rose:         #f4d5d5;
	--luxe-rose-deep:    #e8b8b8;
	--luxe-sky:          #c9dce8;
	--luxe-sky-deep:     #9bbed1;
	--luxe-ink:          #2a2520;
	--luxe-ink-soft:     #5c544a;
	--luxe-cream:        #fbf8f3;
	--luxe-white:        #ffffff;
	--luxe-line:         #e6dfd2;

	/* Typo */
	--luxe-font-display: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	--luxe-font-body:    'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	--luxe-font-arabic:  'Cairo', 'Tajawal', sans-serif;

	/* Espacements */
	--luxe-radius:       2px;
	--luxe-radius-lg:    4px;
	--luxe-shadow:       0 4px 24px rgba(42, 37, 32, 0.06);
	--luxe-shadow-lg:    0 12px 48px rgba(42, 37, 32, 0.12);
	--luxe-transition:   cubic-bezier(0.4, 0, 0.2, 1);
}

/* =========================================================================
 * BASE
 * ========================================================================= */
body.luxe-theme-2026 {
	font-family: var(--luxe-font-body);
	color: var(--luxe-ink);
	background: var(--luxe-cream);
	font-weight: 300;
	letter-spacing: 0.01em;
	line-height: 1.7;
}

body.luxe-theme-2026[dir="rtl"],
body.luxe-theme-2026 .rtl {
	font-family: var(--luxe-font-arabic);
}

.luxe-theme-2026 h1,
.luxe-theme-2026 h2,
.luxe-theme-2026 h3,
.luxe-theme-2026 h4,
.luxe-theme-2026 .luxe-product__title {
	font-family: var(--luxe-font-display);
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--luxe-ink);
	line-height: 1.2;
}

.luxe-theme-2026 a { color: var(--luxe-gold-dark); transition: color .3s var(--luxe-transition); }
.luxe-theme-2026 a:hover { color: var(--luxe-gold); }

.container { max-width: 1320px; margin: 0 auto; padding: 0 24px; }

/* =========================================================================
 * BOUTONS LUXE
 * ========================================================================= */
.luxe-theme-2026 .button,
.luxe-theme-2026 button.single_add_to_cart_button,
.luxe-theme-2026 .wc-block-components-button {
	background: var(--luxe-ink) !important;
	color: var(--luxe-cream) !important;
	font-family: var(--luxe-font-body);
	font-weight: 400;
	font-size: 13px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 18px 36px !important;
	border: 1px solid var(--luxe-ink) !important;
	border-radius: var(--luxe-radius) !important;
	transition: all .35s var(--luxe-transition) !important;
	cursor: pointer;
	position: relative;
	overflow: hidden;
}

.luxe-theme-2026 .button:hover,
.luxe-theme-2026 button.single_add_to_cart_button:hover {
	background: var(--luxe-gold-dark) !important;
	border-color: var(--luxe-gold-dark) !important;
	transform: translateY(-1px);
	box-shadow: var(--luxe-shadow);
}

/* =========================================================================
 * HEADER & NAV
 * ========================================================================= */
.luxe-theme-2026 .site-header,
.luxe-theme-2026 .ast-primary-header-bar {
	background: var(--luxe-cream) !important;
	border-bottom: 1px solid var(--luxe-line);
}
.luxe-theme-2026 .site-title,
.luxe-theme-2026 .ast-site-title {
	font-family: var(--luxe-font-display) !important;
	font-weight: 500;
	letter-spacing: 0.25em;
	text-transform: uppercase;
}

/* =========================================================================
 * PRODUIT — SHOP GRID
 * ========================================================================= */
.luxe-theme-2026 ul.products li.product {
	background: var(--luxe-white);
	padding: 0;
	transition: transform .5s var(--luxe-transition), box-shadow .5s var(--luxe-transition);
	border-radius: var(--luxe-radius-lg);
	overflow: hidden;
}
.luxe-theme-2026 ul.products li.product:hover {
	transform: translateY(-6px);
	box-shadow: var(--luxe-shadow-lg);
}
.luxe-theme-2026 ul.products li.product img {
	transition: transform 1.2s var(--luxe-transition);
}
.luxe-theme-2026 ul.products li.product:hover img {
	transform: scale(1.05);
}
.luxe-theme-2026 ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--luxe-font-display) !important;
	font-size: 20px !important;
	font-weight: 500 !important;
	padding: 16px 18px 4px !important;
}
.luxe-theme-2026 ul.products li.product .price {
	color: var(--luxe-gold-dark);
	font-weight: 500;
	padding: 0 18px 18px;
	font-size: 16px;
}

/* =========================================================================
 * FICHE PRODUIT
 * ========================================================================= */
.luxe-product {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 72px;
	padding: 56px 24px;
	max-width: 1400px;
	margin: 0 auto;
}
@media (max-width: 900px) {
	.luxe-product { grid-template-columns: 1fr; gap: 40px; padding: 24px 16px; }
}

.luxe-product__gallery { position: relative; }
.luxe-gallery__main {
	position: relative;
	background: var(--luxe-beige);
	border-radius: var(--luxe-radius-lg);
	overflow: hidden;
	aspect-ratio: 3/4;
}
.luxe-gallery__main img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .8s var(--luxe-transition);
}
.luxe-gallery__main:hover img { transform: scale(1.04); }

.luxe-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 10px;
	margin-top: 14px;
}
.luxe-gallery__thumb {
	background: none;
	border: 1px solid var(--luxe-line);
	padding: 0;
	cursor: pointer;
	aspect-ratio: 3/4;
	overflow: hidden;
	border-radius: var(--luxe-radius);
	transition: border-color .3s;
}
.luxe-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.luxe-gallery__thumb.is-active,
.luxe-gallery__thumb:hover { border-color: var(--luxe-gold); }

.luxe-badge {
	position: absolute;
	top: 16px;
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	padding: 6px 14px;
	background: var(--luxe-white);
	color: var(--luxe-ink);
	z-index: 2;
}
.luxe-badge--sale  { left: 16px; background: var(--luxe-rose-deep); color: var(--luxe-white); }
.luxe-badge--new   { right: 16px; background: var(--luxe-gold); color: var(--luxe-white); }

.luxe-product__collection {
	font-size: 11px;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--luxe-gold-dark);
	margin: 0 0 12px;
}
.luxe-product__title {
	font-size: clamp(28px, 4vw, 44px);
	margin: 0 0 16px;
}
.luxe-product__rating { display: flex; align-items: center; gap: 8px; margin-bottom: 20px; font-size: 13px; color: var(--luxe-ink-soft); }
.luxe-product__price {
	font-family: var(--luxe-font-display);
	font-size: 28px;
	color: var(--luxe-gold-dark);
	font-weight: 500;
	margin-bottom: 20px;
}
.luxe-product__price del { color: #999; font-size: 0.7em; margin-right: 12px; }
.luxe-product__short { color: var(--luxe-ink-soft); margin-bottom: 28px; }

/* Trust badges */
.luxe-trust-badges {
	list-style: none;
	padding: 20px;
	margin: 24px 0;
	background: var(--luxe-beige);
	border-radius: var(--luxe-radius-lg);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	font-size: 13px;
}
.luxe-trust-badges li { display: flex; align-items: center; gap: 10px; }

/* Accordéons */
.luxe-accordion {
	border-bottom: 1px solid var(--luxe-line);
	padding: 16px 0;
}
.luxe-accordion summary {
	cursor: pointer;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-size: 13px;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.luxe-accordion summary::after { content: '+'; font-size: 20px; color: var(--luxe-gold); }
.luxe-accordion[open] summary::after { content: '−'; }
.luxe-accordion ul, .luxe-accordion p { margin: 14px 0 0; font-size: 14px; color: var(--luxe-ink-soft); }

/* =========================================================================
 * BOUTON WHATSAPP COMMANDE
 * ========================================================================= */
.luxe-btn-whatsapp {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	margin-top: 18px;
	padding: 18px;
	background: #25D366;
	color: #fff !important;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-size: 13px;
	border-radius: var(--luxe-radius);
	text-decoration: none;
	transition: all .3s var(--luxe-transition);
}
.luxe-btn-whatsapp:hover { background: #128C7E; color: #fff !important; transform: translateY(-1px); }

/* =========================================================================
 * BOUTON WHATSAPP FLOTTANT
 * ========================================================================= */
.luxe-whatsapp-float {
	position: fixed;
	bottom: 24px;
	right: 24px;
	width: 60px;
	height: 60px;
	background: #25D366;
	color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4);
	z-index: 9999;
	transition: all .3s var(--luxe-transition);
	animation: luxe-pulse 2.4s infinite;
}
.luxe-whatsapp-float:hover {
	transform: scale(1.1) rotate(-6deg);
	color: #fff;
	box-shadow: 0 8px 28px rgba(37, 211, 102, 0.55);
}
.luxe-whatsapp-tooltip {
	position: absolute;
	right: 72px;
	background: var(--luxe-ink);
	color: var(--luxe-cream);
	padding: 10px 16px;
	border-radius: var(--luxe-radius);
	font-size: 13px;
	white-space: nowrap;
	opacity: 0;
	transform: translateX(10px);
	pointer-events: none;
	transition: all .3s var(--luxe-transition);
}
.luxe-whatsapp-float:hover .luxe-whatsapp-tooltip { opacity: 1; transform: translateX(0); }
@keyframes luxe-pulse {
	0%, 100% { box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4); }
	50%      { box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4), 0 0 0 12px rgba(37, 211, 102, 0); }
}
@media (max-width: 600px) {
	.luxe-whatsapp-float { bottom: 16px; right: 16px; width: 54px; height: 54px; }
	.luxe-whatsapp-tooltip { display: none; }
}

/* =========================================================================
 * SIZE GUIDE MODAL
 * ========================================================================= */
.luxe-size-guide-trigger {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: none;
	border: none;
	border-bottom: 1px solid var(--luxe-ink);
	padding: 4px 0;
	cursor: pointer;
	font-size: 13px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 12px 0 20px;
	color: var(--luxe-ink);
	font-family: var(--luxe-font-body);
}
.luxe-size-guide-trigger:hover { color: var(--luxe-gold-dark); border-color: var(--luxe-gold-dark); }

.luxe-modal {
	position: fixed; inset: 0;
	display: none;
	z-index: 10000;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.luxe-modal.is-open { display: flex; }
.luxe-modal__overlay { position: absolute; inset: 0; background: rgba(42,37,32,.5); backdrop-filter: blur(4px); }
.luxe-modal__content {
	position: relative;
	background: var(--luxe-cream);
	max-width: 640px;
	width: 100%;
	padding: 48px;
	border-radius: var(--luxe-radius-lg);
	box-shadow: var(--luxe-shadow-lg);
	max-height: 90vh;
	overflow: auto;
}
.luxe-modal__close {
	position: absolute; top: 16px; right: 20px;
	background: none; border: none;
	font-size: 28px; cursor: pointer;
	color: var(--luxe-ink-soft);
}
.luxe-modal__title { font-size: 28px; margin: 0 0 8px; }
.luxe-modal__sub { color: var(--luxe-ink-soft); font-size: 14px; margin-bottom: 24px; }
.luxe-modal__note { font-size: 13px; color: var(--luxe-ink-soft); margin-top: 16px; padding: 12px; background: var(--luxe-beige); border-radius: var(--luxe-radius); }

.luxe-size-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.luxe-size-table th,
.luxe-size-table td {
	padding: 12px 8px;
	text-align: center;
	border-bottom: 1px solid var(--luxe-line);
}
.luxe-size-table th {
	font-family: var(--luxe-font-display);
	font-weight: 500;
	color: var(--luxe-gold-dark);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 12px;
}

/* =========================================================================
 * LANG SWITCH
 * ========================================================================= */
.luxe-lang-switch {
	position: fixed;
	bottom: 24px;
	left: 24px;
	background: var(--luxe-white);
	padding: 8px 14px;
	border-radius: 40px;
	box-shadow: var(--luxe-shadow);
	font-size: 13px;
	z-index: 9998;
	display: flex;
	align-items: center;
	gap: 8px;
}
.luxe-lang-switch .luxe-lang { color: var(--luxe-ink-soft); text-decoration: none; padding: 2px 6px; }
.luxe-lang-switch .luxe-lang.is-active,
.luxe-lang-switch .luxe-lang:hover { color: var(--luxe-gold-dark); font-weight: 500; }
@media (max-width: 600px) { .luxe-lang-switch { bottom: 80px; left: 16px; padding: 6px 12px; } }

/* =========================================================================
 * BREADCRUMB
 * ========================================================================= */
.luxe-breadcrumb {
	max-width: 1400px;
	margin: 0 auto;
	padding: 24px;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--luxe-ink-soft);
}
.luxe-breadcrumb a { color: var(--luxe-ink-soft); text-decoration: none; }
.luxe-breadcrumb a:hover { color: var(--luxe-gold-dark); }

/* =========================================================================
 * FOOTER
 * ========================================================================= */
.luxe-theme-2026 .site-footer {
	background: var(--luxe-beige);
	padding: 60px 0 30px;
	border-top: 1px solid var(--luxe-line);
}

/* =========================================================================
 * RTL (Darija/Arabe)
 * ========================================================================= */
body.luxe-theme-2026[dir="rtl"] .luxe-whatsapp-float { right: auto; left: 24px; }
body.luxe-theme-2026[dir="rtl"] .luxe-lang-switch { left: auto; right: 24px; }
body.luxe-theme-2026[dir="rtl"] .luxe-whatsapp-tooltip { right: auto; left: 72px; transform: translateX(-10px); }

/* =========================================================================
 * ANIMATIONS D'ENTRÉE
 * ========================================================================= */
@keyframes luxe-fade-up {
	from { opacity: 0; transform: translateY(20px); }
	to   { opacity: 1; transform: translateY(0); }
}
.luxe-product__summary > * { animation: luxe-fade-up .6s var(--luxe-transition) both; }
.luxe-product__summary > *:nth-child(1) { animation-delay: .05s; }
.luxe-product__summary > *:nth-child(2) { animation-delay: .1s; }
.luxe-product__summary > *:nth-child(3) { animation-delay: .15s; }
.luxe-product__summary > *:nth-child(4) { animation-delay: .2s; }
.luxe-product__summary > *:nth-child(5) { animation-delay: .25s; }
