/* ==========================================================================
   Maktabatul Salihine — feuille de style du thème
   Univers « écrin » : crème/papier, noir profond, ambre du logo.
   Mobile d'abord (≈ 390 px).
   ========================================================================== */

:root {
	--mks-noir: var(--wp--preset--color--noir, #0b0b0b);
	--mks-encre: var(--wp--preset--color--encre, #1e1a16);
	--mks-ambre: var(--wp--preset--color--ambre, #faa71b);
	--mks-ambre-fonce: var(--wp--preset--color--ambre-fonce, #8a5300);
	--mks-creme: var(--wp--preset--color--creme, #f7f1e6);
	--mks-papier: var(--wp--preset--color--papier, #fffcf6);
	--mks-sable: var(--wp--preset--color--sable, #e9dfcc);
	--mks-gris: var(--wp--preset--color--gris, #6b6259);
	--mks-bordeaux: var(--wp--preset--color--bordeaux, #5e1424);
	--mks-vert: var(--wp--preset--color--vert, #16402e);
	--mks-wa: #1f7a4d;
	--mks-rayon: 14px;
	--mks-ombre: 0 1px 2px rgb(30 26 22 / 6%), 0 8px 24px rgb(30 26 22 / 8%);
	--mks-titre: var(--wp--preset--font-family--titre);
	--mks-arabe: var(--wp--preset--font-family--arabe);
}

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }
.wp-site-blocks > * + * { margin-block-start: 0; }
body { touch-action: manipulation; overflow-x: hidden; }
img { max-width: 100%; height: auto; }
[hidden] { display: none !important; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--mks-noir); outline-offset: 2px; box-shadow: 0 0 0 5px var(--mks-ambre); }
[lang="ar"] { font-family: var(--mks-arabe); }

/* Champs ≥ 16 px : iOS ne zoome pas au toucher. */
input, select, textarea, .input-text { font-size: 16px !important; font-family: inherit; }
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="date"], input[type="search"], input[type="password"], input[type="url"], select, textarea, .input-text {
	width: 100%;
	padding: 0.7rem 0.85rem;
	border: 1px solid #cfc3ad;
	border-radius: 10px;
	background: var(--mks-papier);
	color: var(--mks-encre);
	min-height: 48px;
}
textarea { min-height: 7rem; }
label { font-weight: 600; }

.mks-saut { position: absolute; left: -9999px; top: 0.5rem; z-index: 1000; background: var(--mks-ambre); color: var(--mks-noir); padding: 0.6rem 1rem; border-radius: 8px; font-weight: 700; }
.mks-saut:focus { left: 0.5rem; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* ---------- Boutons ---------- */
.mks-bouton {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	min-height: 48px; padding: 0.8rem 1.5rem; border-radius: 999px; border: 2px solid transparent;
	font-weight: 700; font-size: 1rem; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.mks-bouton:hover { transform: translateY(-1px); }
.mks-bouton--ambre { background: var(--mks-ambre); color: var(--mks-noir); }
.mks-bouton--ambre:hover, .mks-bouton--ambre:focus { background: var(--mks-noir); color: var(--mks-ambre); border-color: var(--mks-ambre); }
.mks-bouton--contour { border-color: currentColor; color: inherit; background: transparent; }
.mks-bouton--contour:hover { background: var(--mks-ambre); color: var(--mks-noir); border-color: var(--mks-ambre); }
.mks-bouton--noir { background: var(--mks-noir); color: var(--mks-creme); }
.mks-bouton--noir:hover { background: var(--mks-encre); color: var(--mks-ambre); }
.mks-bouton--whatsapp { background: var(--mks-wa); color: #fff; }
.mks-bouton--whatsapp:hover { background: #17603c; color: #fff; }
.mks-bouton--bloc { width: 100%; }
.mks-bouton[disabled], .mks-bouton[aria-disabled="true"] { opacity: .5; cursor: not-allowed; transform: none; }
.mks-bouton svg { flex: none; }

.mks-surtitre { font-size: 0.78rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--mks-ambre-fonce); margin: 0 0 .5rem; }
.has-noir-background-color .mks-surtitre, .mks-heros .mks-surtitre, .mks-pied .mks-surtitre { color: var(--mks-ambre); }

/* Séparateur au motif du livre du logo */
.mks-separateur-livre, hr.wp-block-separator.mks-separateur-livre {
	border: 0; height: 22px; margin: 2.5rem auto; max-width: 280px; opacity: 1;
	background:
		linear-gradient(var(--mks-sable), var(--mks-sable)) left 50% / calc(50% - 18px) 1px no-repeat,
		linear-gradient(var(--mks-sable), var(--mks-sable)) right 50% / calc(50% - 18px) 1px no-repeat,
		url("../images/mark-120.png") center / auto 22px no-repeat;
}

/* ---------- En-tête ---------- */
.mks-entete { background: var(--mks-noir); color: var(--mks-creme); position: sticky; top: 0; z-index: 50; padding: 0 1rem; }
.admin-bar .mks-entete { top: 46px; }
@media (min-width: 783px) { .admin-bar .mks-entete { top: 32px; } }
.mks-entete__barre { display: flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 1200px; margin: 0 auto; min-height: 64px; }
.mks-marque { display: flex; align-items: center; gap: .7rem; color: var(--mks-creme); text-decoration: none; }
.mks-marque__livre { width: 30px; height: auto; }
.mks-marque__noms { display: flex; flex-direction: column; gap: .15rem; }
.mks-marque__latin { font-family: var(--mks-titre); font-weight: 600; font-size: 1.25rem; letter-spacing: .02em; color: var(--mks-creme); line-height: 1; }
.mks-marque__arabe { width: 110px; height: auto; }
.mks-entete__actions { display: flex; align-items: center; gap: .25rem; }
.mks-icone-lien { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; color: var(--mks-creme); border-radius: 50%; }
.mks-icone-lien:hover { color: var(--mks-ambre); }
.mks-panier__compte { position: absolute; top: 4px; right: 2px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--mks-ambre); color: var(--mks-noir); font-size: .75rem; font-weight: 800; line-height: 20px; text-align: center; }

/* Navigation : bouton menu (mobile) + ligne de menu (bureau) */
.mks-entete .mks-nav { max-width: 1200px; margin: 0 auto; position: static; }
.mks-entete .wp-block-navigation, .mks-entete .wp-block-navigation__container { position: static; }
.mks-entete .wp-block-navigation { color: var(--mks-creme); }
.mks-entete .wp-block-navigation a { color: var(--mks-creme); text-decoration: none; }
.mks-entete .wp-block-navigation a:hover, .mks-entete .wp-block-navigation .current-menu-item > a { color: var(--mks-ambre); }
.mks-entete .wp-block-navigation__responsive-container-open { position: absolute; top: 8px; right: 112px; width: 48px; height: 48px; justify-content: center; color: var(--mks-creme); }
.mks-entete .wp-block-navigation__responsive-container.is-menu-open { background: var(--mks-noir) !important; color: var(--mks-creme) !important; padding: 1.25rem; }
.mks-entete .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: .9rem; font-size: 1.15rem; padding-top: 3rem; }
.mks-entete .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { font-size: 1rem; padding-left: 1rem; opacity: .9; }
.mks-entete .wp-block-navigation__submenu-container { background: var(--mks-encre) !important; border: 1px solid #3a322a !important; border-radius: 10px; padding: .4rem 0; }
.mks-entete .wp-block-navigation__submenu-container a { padding: .5rem 1rem !important; }
@media (min-width: 600px) {
	.mks-entete .wp-block-navigation__responsive-container-open { display: none; }
	.mks-entete .mks-nav { padding: 0 0 .7rem; border-top: 1px solid #2a241e; padding-top: .55rem; }
}

/* ---------- Pied de page ---------- */
.mks-pied a { color: var(--mks-creme); }
.mks-pied li a, .mks-pied .mks-reseaux a, .wp-block-woocommerce-breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; }
.mks-pied ul { gap: 0 !important; }
.mks-pied a:hover { color: var(--mks-ambre); }
.mks-pied__titre { font-size: 1.15rem !important; color: var(--mks-ambre) !important; margin-bottom: .75rem; }
.mks-pied__logo { width: 140px; margin-bottom: .75rem; }
.mks-pied__signature { color: #d8cfbf; font-size: .95rem; }
.mks-pied__bas { border-top: 1px solid #2a241e; margin-top: 2.5rem; padding-top: 1.25rem; font-size: .85rem; color: #b5ab9b; text-align: center; }
.mks-pied ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.mks-pied .mks-horaires td, .mks-pied .mks-horaires th { color: #e9e1d2; }
.mks-pied .mks-a-confirmer { color: #d8cfbf; }

/* ---------- Sections ---------- */
.mks-section { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.mks-section--sable { background: var(--mks-sable); }
.mks-section__entete { margin-bottom: 1.75rem; text-align: center; }
.mks-section__entete h2 { margin: 0; }
.mks-vide { color: var(--mks-gris); font-style: italic; }

/* ---------- Héros (coffret qui s'ouvre) ---------- */
.mks-heros {
	position: relative; overflow: hidden; color: var(--mks-creme);
	background:
		radial-gradient(ellipse 70% 60% at 75% 55%, rgb(94 20 36 / 55%), transparent 70%),
		radial-gradient(ellipse 60% 50% at 10% 10%, rgb(22 64 46 / 40%), transparent 70%),
		var(--mks-noir);
	padding: 2.5rem 1rem 3rem;
}
.mks-heros__interieur { max-width: 1200px; margin: 0 auto; display: grid; gap: 2rem; align-items: center; }
.mks-heros__titre { font-family: var(--mks-titre); color: var(--mks-creme); font-size: clamp(2.1rem, 7.5vw, 4rem); line-height: 1.05; margin: 0 0 1rem; font-weight: 600; }
.mks-heros__accroche { color: #e2d9c8; font-size: 1.05rem; max-width: 34rem; margin: 0 0 1.5rem; }
.mks-heros__boutons { display: flex; flex-wrap: wrap; gap: .75rem; }
.mks-heros .mks-bouton--contour { color: var(--mks-creme); }
.mks-ecrin { position: relative; max-width: 460px; margin: 0 auto; perspective: 1200px; }
.mks-ecrin::before { content: ""; position: absolute; inset: 12% 6% 0; border-radius: 50%; background: radial-gradient(closest-side, rgb(250 167 27 / 28%), transparent); filter: blur(10px); }
.mks-ecrin__photo { position: relative; display: block; width: 100%; filter: drop-shadow(0 24px 30px rgb(0 0 0 / 55%)); }
.mks-ecrin__couvercle {
	position: absolute; left: 4%; right: 4%; top: 0; height: 52%;
	background: linear-gradient(160deg, #1d4a36 0%, var(--mks-vert) 55%, #0d2a1e 100%);
	border: 2px solid rgb(250 167 27 / 75%); border-radius: 6px;
	transform-origin: 50% 0; transform: rotateX(0deg);
	box-shadow: inset 0 0 0 6px rgb(250 167 27 / 15%);
	animation: mks-couvercle 1.8s cubic-bezier(.45, .05, .25, 1) .15s forwards;
}
.mks-ecrin__couvercle::after { content: ""; position: absolute; inset: 0; background: url("../images/mark-120.png") center / auto 46% no-repeat; opacity: .9; }
@keyframes mks-couvercle {
	0% { transform: rotateX(0deg); opacity: 1; }
	70% { opacity: 1; }
	100% { transform: rotateX(-105deg); opacity: 0; }
}
@media (min-width: 860px) {
	.mks-heros { padding: 4.5rem 1.5rem 5rem; }
	.mks-heros__interieur { grid-template-columns: 1.1fr .9fr; }
}
@media (prefers-reduced-motion: reduce) {
	.mks-ecrin__couvercle { animation: none; display: none; }
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------- Rubriques (cartes photo) ---------- */
.mks-rubriques { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
@media (min-width: 900px) { .mks-rubriques { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; } }
.mks-rubrique { position: relative; display: flex; flex-direction: column; background: var(--mks-papier); border-radius: var(--mks-rayon); box-shadow: var(--mks-ombre); overflow: hidden; text-decoration: none; color: var(--mks-encre); transition: transform .25s ease, box-shadow .25s ease; }
.mks-rubrique:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgb(30 26 22 / 8%), 0 14px 34px rgb(30 26 22 / 14%); }
.mks-rubrique__image { aspect-ratio: 1; display: grid; place-items: center; padding: .75rem; background: radial-gradient(circle at 50% 60%, #fff 0%, var(--mks-creme) 70%); }
.mks-rubrique__image img { width: 100%; height: 100%; object-fit: contain; }
.mks-rubrique__corps { padding: .8rem .9rem 1rem; }
.mks-rubrique__nom { display: block; font-family: var(--mks-titre); font-size: 1.45rem; font-weight: 600; line-height: 1.1; color: var(--mks-noir); }
.mks-rubrique__sous { display: block; font-size: .82rem; color: var(--mks-gris); margin-top: .3rem; }
.mks-photo-a-venir { display: grid; place-items: center; width: 100%; height: 100%; min-height: 8rem; color: var(--mks-gris); font-size: .85rem; text-align: center; border: 1px dashed #cdbfa6; border-radius: 10px; background: repeating-linear-gradient(45deg, transparent 0 10px, rgb(233 223 204 / 45%) 10px 20px); }

.mks-sous-rubriques { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.mks-sous-rubriques a, .mks-puce { display: inline-flex; align-items: center; min-height: 44px; padding: .45rem 1rem; border-radius: 999px; background: var(--mks-papier); border: 1px solid #d9ccb3; color: var(--mks-encre); text-decoration: none; font-weight: 600; font-size: .92rem; }
.mks-sous-rubriques a:hover, .mks-sous-rubriques a[aria-current="page"], .mks-puce:hover, .mks-puce[aria-pressed="true"] { background: var(--mks-noir); color: var(--mks-ambre); border-color: var(--mks-noir); }

/* Bandeau reliure */
.mks-bandeau-reliure { display: grid; margin-top: 1.5rem; border-radius: var(--mks-rayon); overflow: hidden; background: var(--mks-noir); color: var(--mks-creme); text-decoration: none; box-shadow: var(--mks-ombre); }
.mks-bandeau-reliure img { width: 100%; height: 100%; max-height: 220px; object-fit: contain; background: radial-gradient(circle, #3a2a1c, var(--mks-noir) 75%); padding: 1rem; }
.mks-bandeau-reliure__texte { padding: 1.25rem 1.25rem 1.5rem; display: flex; flex-direction: column; justify-content: center; gap: .4rem; }
.mks-bandeau-reliure__titre { font-family: var(--mks-titre); font-size: clamp(1.6rem, 5vw, 2.4rem); line-height: 1.1; }
.mks-bandeau-reliure__lien { color: var(--mks-ambre); font-weight: 700; }
.mks-bandeau-reliure .mks-surtitre { color: var(--mks-ambre); }
@media (min-width: 760px) { .mks-bandeau-reliure { grid-template-columns: 1fr 1.2fr; } }

/* Occasions */
.mks-occasions { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; list-style: none; padding: 0; margin: 0; }
.mks-occasion { display: inline-flex; align-items: center; gap: .5rem; min-height: 48px; padding: .6rem 1.15rem; border-radius: 999px; background: var(--mks-papier); color: var(--mks-encre); text-decoration: none; font-weight: 700; box-shadow: var(--mks-ombre); }
.mks-occasion::before { content: ""; width: 10px; height: 14px; background: url("../images/mark-120.png") center / contain no-repeat; }
.mks-occasion:hover { background: var(--mks-noir); color: var(--mks-ambre); }

/* Savoir-faire */
.mks-savoir-faire h2 { color: var(--mks-creme); }
.mks-savoir-faire p { color: #e2d9c8; }
.mks-savoir-faire__grille { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 860px) { .mks-savoir-faire__grille { grid-template-columns: 1fr 1fr; } }
.mks-savoir-faire__media .mks-photos-atelier { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
.mks-savoir-faire__media img { border-radius: 10px; background: radial-gradient(circle, #3a2a1c, #120e0b 80%); aspect-ratio: 1; object-fit: contain; padding: .5rem; width: 100%; }

/* Cartes articles */
.mks-carte-article { background: var(--mks-papier); border-radius: var(--mks-rayon); overflow: hidden; box-shadow: var(--mks-ombre); padding-bottom: 1rem; height: 100%; }
.mks-carte-article > *:not(.wp-block-post-featured-image) { margin-left: 1rem !important; margin-right: 1rem !important; }
.mks-carte-article .wp-block-post-featured-image { margin: 0 0 .75rem; }
.mks-carte-article .wp-block-post-title a { color: var(--mks-noir); text-decoration: none; }
.mks-carte-article .wp-block-post-date { color: var(--mks-gris); margin-top: .5rem; }

/* Réseaux */
.mks-reseaux { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-top: 1.75rem; }
.mks-pied .mks-reseaux { justify-content: flex-start; margin-top: .75rem; }

/* Où nous trouver */
.mks-nous-trouver { display: grid; gap: 1rem; }
@media (min-width: 820px) { .mks-nous-trouver { grid-template-columns: 1.1fr 1fr; } }
.mks-carte-lieu { position: relative; min-height: 240px; border-radius: var(--mks-rayon); overflow: hidden; background: var(--mks-noir); color: var(--mks-creme); padding: 1.5rem; display: flex; flex-direction: column; justify-content: flex-end; gap: .75rem;
	background-image: linear-gradient(to top, rgb(11 11 11 / 92%), rgb(11 11 11 / 40%)), repeating-linear-gradient(0deg, transparent 0 38px, rgb(250 167 27 / 10%) 38px 39px), repeating-linear-gradient(90deg, transparent 0 38px, rgb(250 167 27 / 10%) 38px 39px); }
.mks-carte-lieu { padding-top: 6.5rem; }
.mks-carte-lieu__epingle { position: absolute; top: 1.5rem; left: 50%; transform: translateX(-50%); width: 40px; filter: drop-shadow(0 6px 10px rgb(0 0 0 / 60%)); }
.mks-carte-lieu__adresse { font-family: var(--mks-titre); font-size: 1.5rem; line-height: 1.15; }
.mks-infos-lieu { background: var(--mks-papier); border-radius: var(--mks-rayon); padding: 1.25rem 1.25rem 1.5rem; box-shadow: var(--mks-ombre); }
.mks-infos-lieu ul { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .55rem; }
.mks-horaires { width: 100%; border-collapse: collapse; font-size: .95rem; }
.mks-horaires th { text-align: left; font-weight: 600; padding: .2rem .5rem .2rem 0; }
.mks-horaires td { text-align: right; padding: .2rem 0; }
.mks-horaires tr.est-aujourdhui th, .mks-horaires tr.est-aujourdhui td { color: var(--mks-ambre-fonce); font-weight: 800; }
.mks-pied .mks-horaires tr.est-aujourdhui th, .mks-pied .mks-horaires tr.est-aujourdhui td { color: var(--mks-ambre); }
.mks-ouvert { display: inline-flex; align-items: center; gap: .45rem; font-weight: 700; font-size: .92rem; }
.mks-ouvert::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #b23b3b; }
.mks-ouvert.est-ouvert::before { background: #2e9d5b; box-shadow: 0 0 0 4px rgb(46 157 91 / 20%); }
.mks-a-confirmer { color: var(--mks-gris); font-style: italic; font-size: .92rem; }

/* ---------- Grille produits ---------- */
.mks-grille-produits .wc-block-product-template, .wc-block-product-template.mks-grille-produits, .mks-grille-produits.wp-block-post-template { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 1rem !important; list-style: none; padding: 0; }
@media (min-width: 900px) { .mks-grille-produits .wc-block-product-template, .mks-grille-produits.wp-block-post-template { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 1.25rem !important; } }
.mks-grille-produits .wc-block-product, .mks-grille-produits > li { width: auto !important; margin: 0 !important; }
.mks-carte-produit { background: var(--mks-papier); border-radius: var(--mks-rayon); box-shadow: var(--mks-ombre); padding: .6rem .6rem 1rem; height: 100%; display: flex; flex-direction: column; gap: .35rem; }
.mks-carte-produit .wc-block-components-product-image { margin: 0 0 .4rem !important; border-radius: 10px; overflow: hidden; background: radial-gradient(circle at 50% 60%, #fff 0%, var(--mks-creme) 75%); }
.mks-carte-produit .wc-block-components-product-image img { object-fit: contain !important; aspect-ratio: 1; padding: .4rem; }
.mks-carte-produit .wp-block-post-title { font-family: var(--mks-titre); font-weight: 600; margin: 0 .2rem !important; line-height: 1.2; }
.mks-carte-produit .wp-block-post-title a { color: var(--mks-noir); text-decoration: none; }
.mks-carte-produit .wc-block-components-product-price, .mks-carte-produit .price { margin: 0 .2rem !important; font-weight: 700; color: var(--mks-ambre-fonce); }
.mks-prix-sur-demande { display: inline-block; font-weight: 700; color: var(--mks-ambre-fonce); font-size: .95em; }

/* ---------- Fiche produit ---------- */
.mks-fiche { align-items: flex-start; }
.mks-fiche__medias .woocommerce-product-gallery { background: radial-gradient(circle at 50% 55%, #fff 0%, var(--mks-papier) 70%); border-radius: var(--mks-rayon); padding: .5rem; box-shadow: var(--mks-ombre); }
.mks-fiche__medias .woocommerce-product-gallery__image img { object-fit: contain; }
.mks-fiche__medias .flex-control-thumbs { display: flex; gap: .4rem; list-style: none; padding: .5rem 0 0; margin: 0; overflow-x: auto; }
.mks-fiche__medias .flex-control-thumbs li { flex: 0 0 64px; }
.mks-fiche__medias .flex-control-thumbs img { border-radius: 8px; border: 2px solid transparent; cursor: pointer; opacity: .75; }
.mks-fiche__medias .flex-control-thumbs img.flex-active { border-color: var(--mks-ambre); opacity: 1; }
.mks-fiche__infos .wp-block-post-title { margin-top: 0; }
.mks-fiche__infos .price, .mks-fiche__infos .wc-block-components-product-price { font-size: 1.4rem; font-weight: 800; color: var(--mks-ambre-fonce); }
.mks-fiche .woocommerce-product-gallery__trigger { background: var(--mks-noir); border-radius: 50%; width: 44px !important; height: 44px !important; display: grid; place-items: center; }
form.cart { display: grid; gap: 1rem; margin: 1.25rem 0; }
form.cart .variations { width: 100%; border-collapse: collapse; }
form.cart .variations th, form.cart .variations td { display: block; text-align: left; padding: 0 0 .35rem; }
form.cart .quantity input { max-width: 5.5rem; text-align: center; }
form.cart .single_add_to_cart_button, .woocommerce .button.alt, .wc-block-components-button:not(.is-link), .woocommerce a.button, .woocommerce button.button {
	background: var(--mks-ambre) !important; color: var(--mks-noir) !important; border-radius: 999px !important; min-height: 50px; padding: .85rem 1.6rem !important; font-weight: 800 !important; border: 0; font-size: 1rem !important;
}
form.cart .single_add_to_cart_button:hover, .woocommerce .button.alt:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--mks-noir) !important; color: var(--mks-ambre) !important; }
.mks-infos-fab { list-style: none; padding: .85rem 1rem; margin: 1rem 0; background: var(--mks-papier); border-left: 3px solid var(--mks-ambre); border-radius: 0 10px 10px 0; display: grid; gap: .35rem; font-size: .95rem; }

/* Personnalisation */
.mks-perso { border: 1px solid #ddd0b8; border-radius: var(--mks-rayon); padding: 1rem; background: var(--mks-papier); display: grid; gap: .85rem; margin: 0; }
.mks-perso legend { font-family: var(--mks-titre); font-weight: 600; font-size: 1.3rem; padding: 0 .4rem; }
.mks-perso__champ { display: grid; gap: .3rem; }
.mks-perso__aide { font-size: .82rem; color: var(--mks-gris); }
.mks-perso__apercu { margin-top: .25rem; padding: 1rem; border-radius: 10px; text-align: center; background: linear-gradient(160deg, var(--mks-bordeaux), #3b0d17); color: #f3c66b; font-family: var(--mks-titre); font-size: 1.5rem; min-height: 3.5rem; letter-spacing: .03em; text-shadow: 0 1px 0 rgb(0 0 0 / 40%); overflow-wrap: anywhere; }
.mks-perso__apercu:empty::before { content: attr(data-vide); opacity: .55; font-size: 1rem; font-style: italic; }
.mks-perso__supplement { font-weight: 700; color: var(--mks-ambre-fonce); }

/* WhatsApp produit & bouton flottant */
.mks-wa-produit { margin: .5rem 0 1.25rem; }
.mks-wa-flottant { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 60; width: 58px; height: 58px; border-radius: 50%; background: var(--mks-wa); color: #fff; display: grid; place-items: center; box-shadow: 0 6px 20px rgb(0 0 0 / 30%); }
.mks-wa-flottant:hover { background: #17603c; color: #fff; transform: scale(1.04); }

/* ---------- Composer mon coffret ---------- */
.mks-composer { background: var(--mks-papier); border-radius: var(--mks-rayon); box-shadow: var(--mks-ombre); padding: 1rem; display: grid; gap: 1.25rem; }
@media (min-width: 900px) { .mks-composer { grid-template-columns: 1.5fr 1fr; padding: 1.75rem; align-items: start; } }
.mks-composer__etapes { list-style: none; display: flex; gap: .35rem; padding: 0; margin: 0 0 1rem; counter-reset: etape; overflow-x: auto; }
.mks-composer__etapes li { flex: 1; min-width: 4.5rem; font-size: .78rem; font-weight: 700; text-align: center; color: var(--mks-gris); border-top: 4px solid var(--mks-sable); padding-top: .4rem; }
.mks-composer__etapes li.est-active, .mks-composer__etapes li.est-faite { color: var(--mks-noir); border-color: var(--mks-ambre); }
.mks-composer__etape { border: 0; padding: 0; margin: 0; }
.mks-composer__etape[hidden] { display: none; }
.mks-composer__etape legend { font-family: var(--mks-titre); font-size: 1.6rem; font-weight: 600; margin-bottom: .75rem; }
.mks-choix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
@media (min-width: 600px) { .mks-choix { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mks-choix__option { position: relative; display: flex; flex-direction: column; gap: .3rem; padding: .6rem; border: 2px solid #e2d6c0; border-radius: 12px; background: #fff; cursor: pointer; font-weight: 600; font-size: .92rem; min-height: 48px; }
.mks-choix__option input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.mks-choix__option:has(input:checked) { border-color: var(--mks-noir); box-shadow: 0 0 0 3px var(--mks-ambre); }
.mks-choix__option:has(input:checked)::after { content: "✓"; position: absolute; top: .35rem; right: .45rem; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--mks-noir); color: var(--mks-ambre); display: grid; place-items: center; font-weight: 800; }
.mks-choix__option:has(input:focus-visible) { outline: 3px solid var(--mks-noir); outline-offset: 2px; }
.mks-choix__option img { aspect-ratio: 1; object-fit: contain; width: 100%; background: var(--mks-creme); border-radius: 8px; }
.mks-choix__prix { color: var(--mks-ambre-fonce); font-weight: 800; font-size: .88rem; }
.mks-pastille { width: 100%; aspect-ratio: 2.2; border-radius: 8px; border: 1px solid rgb(0 0 0 / 15%); }
.mks-composer__nav { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.25rem; }
.mks-recap { position: sticky; top: 8.5rem; background: var(--mks-noir); color: var(--mks-creme); border-radius: var(--mks-rayon); padding: 1.25rem; }
.mks-recap h2 { color: var(--mks-ambre); margin-top: 0; font-size: 1.5rem; }
.mks-recap ul { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .45rem; font-size: .95rem; }
.mks-recap li { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px dashed #3a322a; padding-bottom: .35rem; }
.mks-recap__total { display: flex; justify-content: space-between; font-size: 1.35rem; font-weight: 800; color: var(--mks-ambre); margin: .5rem 0 1rem; }
.mks-recap__budget { font-size: .9rem; color: #d8cfbf; margin: 0 0 1rem; }
.mks-recap__budget.est-depasse { color: #ffb4a6; }
.mks-recap .mks-bouton { width: 100%; margin-top: .5rem; }
.mks-recap__note { font-size: .82rem; color: #b5ab9b; margin-top: .75rem; }

/* ---------- Formulaires (devis, inscription, contact) ---------- */
.mks-formulaire { display: grid; gap: 1rem; background: var(--mks-papier); padding: 1.25rem; border-radius: var(--mks-rayon); box-shadow: var(--mks-ombre); }
.mks-formulaire__ligne { display: grid; gap: .35rem; }
.mks-formulaire__deux { display: grid; gap: 1rem; }
@media (min-width: 640px) { .mks-formulaire__deux { grid-template-columns: 1fr 1fr; } }
.mks-formulaire .mks-aide { font-size: .82rem; color: var(--mks-gris); font-weight: 400; }
.mks-formulaire input[type="file"] { padding: .6rem; border: 1px dashed #cdbfa6; border-radius: 10px; background: #fff; width: 100%; }
.mks-pot-de-miel { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.mks-message { padding: 1rem 1.15rem; border-radius: 12px; margin: 0 0 1rem; font-weight: 600; }
.mks-message--succes { background: #e5f3ea; color: #154b2c; border: 1px solid #a8d5b8; }
.mks-message--erreur { background: #fbe7e4; color: #7a1f12; border: 1px solid #f0b4aa; }
.mks-requis { color: #9b2c1f; }

/* ---------- Galerie ---------- */
.mks-galerie__filtres { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.mks-galerie__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; list-style: none; padding: 0; margin: 0; }
@media (min-width: 760px) { .mks-galerie__grille { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem; } }
.mks-galerie__item[hidden] { display: none; }
.mks-galerie__item button { all: unset; display: block; width: 100%; aspect-ratio: 1; border-radius: 12px; overflow: hidden; cursor: zoom-in; background: radial-gradient(circle at 50% 55%, #fff, var(--mks-creme) 75%); box-shadow: var(--mks-ombre); position: relative; }
.mks-galerie__item button:focus-visible { outline: 3px solid var(--mks-ambre); outline-offset: 2px; }
.mks-galerie__item img { width: 100%; height: 100%; object-fit: contain; padding: .35rem; }
.mks-galerie__item .mks-badge-video { position: absolute; inset: auto .5rem .5rem auto; background: var(--mks-noir); color: var(--mks-ambre); border-radius: 999px; padding: .2rem .6rem; font-size: .75rem; font-weight: 800; }
.mks-visionneuse { position: fixed; inset: 0; z-index: 1000; background: rgb(11 11 11 / 96%); display: grid; grid-template-rows: auto 1fr auto; color: var(--mks-creme); touch-action: none; }
.mks-visionneuse[hidden] { display: none; }
.mks-visionneuse__barre { display: flex; justify-content: space-between; align-items: center; padding: .5rem .75rem; }
.mks-visionneuse__scene { position: relative; overflow: hidden; display: grid; place-items: center; }
.mks-visionneuse__scene img, .mks-visionneuse__scene video, .mks-visionneuse__scene iframe { max-width: 100%; max-height: 100%; object-fit: contain; transform-origin: 0 0; user-select: none; -webkit-user-drag: none; }
.mks-visionneuse__scene iframe { width: min(100%, 960px); aspect-ratio: 16/9; height: auto; border: 0; }
.mks-visionneuse button { background: transparent; color: var(--mks-creme); border: 0; min-width: 48px; min-height: 48px; font-size: 1.6rem; cursor: pointer; border-radius: 50%; }
.mks-visionneuse button:hover { color: var(--mks-ambre); }
.mks-visionneuse__legende { text-align: center; padding: .5rem 1rem 1rem; font-size: .95rem; }
.mks-visionneuse__prec, .mks-visionneuse__suiv { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; background: rgb(11 11 11 / 50%) !important; }
.mks-visionneuse__prec { left: .5rem; }
.mks-visionneuse__suiv { right: .5rem; }

/* ---------- Vidéo légère (chargée au toucher) ---------- */
.mks-video { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--mks-rayon); overflow: hidden; background: var(--mks-noir); border: 0; padding: 0; cursor: pointer; color: var(--mks-creme); }
.mks-video--vertical { aspect-ratio: 9 / 16; max-width: 360px; margin: 0 auto; }
.mks-video img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.mks-video__lecture { position: absolute; inset: 0; display: grid; place-items: center; }
.mks-video__lecture span { width: 72px; height: 72px; border-radius: 50%; background: var(--mks-ambre); color: var(--mks-noir); display: grid; place-items: center; box-shadow: 0 6px 24px rgb(0 0 0 / 40%); }
.mks-video__titre { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.5rem 1rem .8rem; background: linear-gradient(transparent, rgb(0 0 0 / 80%)); text-align: left; font-weight: 700; }
.mks-video iframe, .mks-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mks-video-lien { display: flex; gap: .75rem; align-items: center; padding: 1rem; border-radius: var(--mks-rayon); background: var(--mks-noir); color: var(--mks-creme); text-decoration: none; }
.mks-fiche__medias .mks-video { margin-top: 1rem; }

/* ---------- Pages (contenu riche) ---------- */
.wp-block-post-content > h2 { margin-top: 2.5rem; }
.mks-encart { background: var(--mks-papier); border-radius: var(--mks-rayon); padding: 1.25rem 1.4rem; box-shadow: var(--mks-ombre); }
.mks-a-fournir { border: 1px dashed #c9a35b; background: #fff8e8; color: #6a4a10; padding: 1rem 1.2rem; border-radius: 12px; font-size: .95rem; }

/* ---------- WooCommerce : panier, commande, mon compte ---------- */
.woocommerce-cart-form, .woocommerce-checkout, .woocommerce-account .woocommerce { font-size: 1rem; }
.woocommerce table.shop_table { border-collapse: collapse; width: 100%; background: var(--mks-papier); border-radius: var(--mks-rayon); overflow: hidden; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: .75rem; border-bottom: 1px solid var(--mks-sable); vertical-align: top; }
.woocommerce table.shop_table img { width: 64px; border-radius: 8px; }
.woocommerce .cart-collaterals, .woocommerce-checkout #order_review, .woocommerce-checkout #customer_details { background: var(--mks-papier); border-radius: var(--mks-rayon); padding: 1rem; box-shadow: var(--mks-ombre); margin-bottom: 1.25rem; }
.woocommerce form .form-row { display: grid; gap: .3rem; margin: 0 0 .9rem; }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; padding: 0; display: grid; gap: .75rem; }
.woocommerce-checkout #payment ul.payment_methods li { background: #fff; border: 1px solid var(--mks-sable); border-radius: 12px; padding: .85rem 1rem; }
.woocommerce-checkout #payment .payment_box { font-size: .92rem; color: var(--mks-gris); margin-top: .5rem; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; padding: 1rem 1.15rem; border-radius: 12px; background: var(--mks-papier); border-left: 4px solid var(--mks-ambre); margin: 0 0 1rem; }
.woocommerce-error { border-left-color: #b23b3b; }
.mks-wa-panier { margin: 1rem 0; }
.wc-item-meta, .variation { font-size: .88rem; color: var(--mks-gris); list-style: none; padding: 0; }
.wc-item-meta p, .variation dd p { margin: 0; }

/* ---------- Divers ---------- */
.wp-block-woocommerce-breadcrumbs, .woocommerce-breadcrumb { color: var(--mks-gris); font-size: .85rem; }
.wp-block-woocommerce-breadcrumbs a, .woocommerce-breadcrumb a { color: var(--mks-gris); }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
@media (max-width: 599px) {
	.mks-fiche { gap: 1rem !important; }
	.wp-block-columns.mks-fiche > .wp-block-column { flex-basis: 100% !important; }
}
