/* ==========================================================================
   Gala : styles complémentaires à theme.json (maquette validée)
   ========================================================================== */

/* ---------- Mise en page générale ---------- */
@media (max-width: 767px) {
	body {
		--wp--style--root--padding-left: 24px;
		--wp--style--root--padding-right: 24px;
	}
}
html { scroll-padding-top: 110px; }
body { -webkit-font-smoothing: antialiased; }
img { max-width: 100%; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.gala-chapo { max-width: 760px; }
.is-layout-constrained > .gala-chapo,
.is-layout-constrained > .wp-block-quote.is-style-signature { margin-left: 0 !important; }

/* Boutons : hauteur fixe 52 px, comme la maquette */
.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	box-sizing: border-box;
	transition: background-color .3s, color .3s;
}

/* ---------- Surtitre (texte + trait) ---------- */
.is-style-surtitre {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: clamp(.85rem, .9vw, 1rem);
	margin-top: 0;
	margin-bottom: 24px !important;
}
.is-style-surtitre::after {
	content: "";
	height: 1px;
	width: 9vw;
	max-width: 175px;
	min-width: 60px;
	background: currentColor;
	flex: none;
}
.is-style-surtitre a { text-decoration: none; }
.is-style-surtitre + .wp-block-heading,
.is-style-surtitre + h1,
.is-style-surtitre + h2 { margin-top: 0; }

/* ---------- Titres soulignés, frise, listes de liens ---------- */
.is-style-souligne + .is-style-frise { border-top: 0; }
.is-style-souligne {
	padding-bottom: 16px;
	border-bottom: 1px solid var(--wp--preset--color--noir);
	margin-bottom: 40px !important;
}

ul.is-style-frise,
ol.is-style-frise {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--wp--preset--color--noir);
}
.is-style-frise > li {
	display: grid;
	grid-template-columns: minmax(90px, 200px) minmax(0, 1fr);
	gap: 24px;
	padding: 26px 0;
	border-bottom: 1px solid var(--wp--preset--color--noir);
	margin: 0;
}
.is-style-frise > li > strong:first-child {
	font-weight: 400;
	color: var(--wp--preset--color--gris);
}
@media (max-width: 767px) {
	.is-style-frise > li { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 20px 0; }
}

/* Étapes numérotées (une vraie séquence : commande, acompte, création, remise) */
ol.is-style-etapes {
	list-style: none;
	counter-reset: etape;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr));
	gap: 48px clamp(24px, 4vw, 56px);
}
.is-style-etapes > li {
	counter-increment: etape;
	border-top: 1px solid var(--wp--preset--color--noir);
	padding-top: 20px;
	margin: 0;
	color: var(--wp--preset--color--gris);
}
.is-style-etapes > li::before {
	content: counter(etape);
	display: block;
	font-family: var(--wp--preset--font-family--bebas);
	font-size: 3rem;
	line-height: 1;
	color: var(--wp--preset--color--noir);
	margin-bottom: 16px;
}
.is-style-etapes > li > strong:first-child {
	display: block;
	font-weight: 600;
	color: var(--wp--preset--color--noir);
	margin-bottom: 8px;
}

/* Galerie d'exemples (page Sur commande) : légendes sous les images */
.gala-exemples.wp-block-gallery.has-nested-images figure.wp-block-image:not(#gala) { display: block; }
.gala-exemples.wp-block-gallery.has-nested-images figure.wp-block-image:not(#gala) img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.gala-exemples.wp-block-gallery.has-nested-images figure.wp-block-image:not(#gala)::before { display: none; }
.gala-exemples.wp-block-gallery.has-nested-images figure.wp-block-image:not(#gala) figcaption {
	position: static;
	background: none;
	color: var(--wp--preset--color--gris);
	font-size: .9rem;
	padding: 12px 0 0;
	margin: 0;
	text-align: left;
	max-height: none;
	overflow: visible;
	text-shadow: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

ul.is-style-liens,
.gala-liste-liens {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.is-style-liens a,
.gala-liste-liens a { text-decoration: none; }
.is-style-liens a:hover,
.gala-liste-liens a:hover { text-decoration: underline; }

/* ---------- Images ---------- */
.is-style-noir-et-blanc img { filter: grayscale(1) contrast(1.08); }
.wp-block-image img[style*="aspect-ratio"] { width: 100%; }
.wp-block-image figcaption,
.wp-element-caption {
	color: var(--wp--preset--color--gris);
	font-size: .95rem;
	text-align: center;
	margin-top: 18px;
}

/* ---------- Citation signée ---------- */
.wp-block-quote.is-style-signature {
	border: 0;
	padding: 0;
	max-width: 520px;
}
.wp-block-quote.is-style-signature p { font-weight: 300; font-size: 1.15rem; line-height: 1.45; margin: 0; }
.wp-block-quote.is-style-signature cite {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 14px;
	font-style: normal;
	font-size: 1rem;
	color: var(--wp--preset--color--gris);
}
.wp-block-quote.is-style-signature cite::before {
	content: "";
	width: 32px;
	height: 1px;
	background: var(--wp--preset--color--noir);
}

/* ---------- Accordéons (questions, fiche d'œuvre) ---------- */
.wp-block-details {
	border-top: 1px solid var(--wp--preset--color--noir);
	margin: 0 !important;
}
.gala-accordeons > .wp-block-details:last-child { border-bottom: 1px solid var(--wp--preset--color--noir); }
.wp-block-details summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	min-height: 64px;
	font-size: 1rem;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-size: 1.4rem; line-height: 1; }
.wp-block-details[open] summary::after { content: "−"; }
.wp-block-details > :not(summary) {
	margin: 0 0 24px;
	color: #333;
	line-height: 1.55;
	max-width: 760px;
}

/* ---------- En-tête ---------- */
header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 40;
	margin: 0;
}
.gala-entete { gap: 24px; }
.gala-logo { gap: 16px !important; align-items: baseline !important; }
.gala-logo .wp-block-site-title { margin: 0; }
.gala-logo .wp-block-site-title a { color: var(--wp--preset--color--noir); }
.gala-logo .wp-block-site-tagline { margin: 0; }
.gala-menu .wp-block-navigation-item__content { padding: 6px 0; border-bottom: 1px solid transparent; }
.gala-menu .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--gris); }
.gala-menu .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--gris);
	border-bottom-color: var(--wp--preset--color--gris);
}
@media (max-width: 1023px) {
	.gala-logo .wp-block-site-tagline { display: none; }
}
@media (max-width: 599px) {
	.gala-entete { padding: 16px 24px !important; }
	.gala-logo .wp-block-site-title { font-size: 40px !important; }
}

/* Menu mobile plein écran */
.gala-menu .wp-block-navigation__responsive-container.is-menu-open {
	padding: calc(24px + var(--wp-admin--admin-bar--height, 0px)) 24px 40px;
	background: var(--wp--preset--color--blanc);
}
.gala-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 72px;
	align-items: flex-start;
}
.gala-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 2.4rem;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: 0;
}
.gala-menu .wp-block-navigation__responsive-container-open svg,
.gala-menu .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }

/* ---------- Haut de la page d'accueil ---------- */
.gala-hero { min-height: 680px; }
.gala-hero__texte {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.gala-hero__texte > .wp-block-quote { margin-top: 64px !important; }
.gala-hero__mur {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.gala-hero__toile img,
.gala-toile-haute img { width: auto !important; max-width: 100%; }
@media (max-width: 781px) {
	.gala-hero { min-height: 0; }
	.gala-hero__texte { padding: 56px 24px 72px !important; }
	.gala-hero__mur { padding: 40px 24px !important; }
	.gala-hero__toile img { height: 400px !important; }
	.gala-toile-haute img { height: 380px !important; }
}

/* Sur mobile, l'image passe au-dessus du texte */
@media (max-width: 781px) {
	.gala-image-dabord > .wp-block-column:last-child { order: -1; }
}

/* ---------- Grille et cartes d'œuvres ---------- */
.gala-grille,
.wp-block-post-template.gala-grille {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(24rem, 100%), 1fr));
	column-gap: clamp(32px, 5vw, 72px);
	row-gap: clamp(64px, 7vw, 112px);
	list-style: none;
	margin: 0;
	padding: 0;
}
.gala-carte__lien { display: block; text-decoration: none; color: inherit; }
.gala-carte__tuile {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--wp--preset--color--fond);
}
.has-fond-background-color .gala-carte__tuile { background: var(--wp--preset--color--blanc); }
.gala-carte__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 8%;
	box-sizing: border-box;
	transition: transform .9s cubic-bezier(.22, 1, .36, 1);
}
.gala-carte__lien:hover .gala-carte__img { transform: scale(1.03); }
.gala-carte__vide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--gris);
	font-size: .95rem;
}
.gala-carte__badge {
	position: absolute;
	top: 16px;
	right: 16px;
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--blanc);
	font-weight: 600;
	font-size: .85rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 8px 14px;
}
.gala-carte__titre {
	display: block;
	margin: 20px 0 0;
	font-size: 1.05rem;
	line-height: 1.4;
	font-weight: 400;
}
.gala-carte__lien:hover .gala-carte__titre { text-decoration: underline; text-underline-offset: 3px; }
.gala-carte__ligne { display: block; color: var(--wp--preset--color--gris); }

/* ---------- Filtre des collections ---------- */
.gala-filtre {
	border-top: 1px solid var(--wp--preset--color--noir);
	border-bottom: 1px solid var(--wp--preset--color--noir);
	padding: 12px 0;
	margin: 0 0 64px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.gala-filtre__ligne { display: flex; flex-wrap: wrap; align-items: center; gap: 0 24px; }
.gala-filtre__lib { color: var(--wp--preset--color--gris); min-width: 120px; }
.gala-filtre__choix { display: flex; flex-wrap: wrap; gap: 0 24px; list-style: none; margin: 0; padding: 0; }
.gala-filtre__choix a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	text-decoration: none;
	border-bottom: 1px solid transparent;
}
.gala-filtre__choix a[aria-current] { border-bottom-color: var(--wp--preset--color--noir); }
@media (max-width: 767px) {
	.gala-filtre__lib { min-width: 0; width: 100%; padding-top: 8px; }
}

.gala-pagination { margin-top: 80px; gap: 16px; }
.gala-pagination a, .gala-pagination span { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.gala-pagination .current { border-bottom: 1px solid var(--wp--preset--color--noir); }

/* ---------- Fil d'Ariane ---------- */
.gala-ariane { font-size: .95rem; color: var(--wp--preset--color--gris); }
.gala-ariane ol { display: flex; flex-wrap: wrap; gap: 0 8px; list-style: none; margin: 0; padding: 0; }
.gala-ariane li + li::before { content: "/"; margin-right: 8px; }
.gala-ariane a { color: var(--wp--preset--color--gris); }

/* ---------- Fiche d'une œuvre ---------- */
.gala-fiche__image { background: var(--wp--preset--color--fond); margin: 0; }
.gala-fiche__image img { padding: 6%; box-sizing: border-box; }
.gala-fiche__contenu { margin-top: 16px; }
.gala-fiche__contenu > * + * { margin-top: 24px; }
.gala-fiche__contenu .wp-block-gallery { gap: 16px !important; }
.gala-fiche__contenu .wp-block-gallery.has-nested-images figure.wp-block-image:not(#gala):not(#gala) { width: calc((100% - 32px) / 3) !important; flex-grow: 0; }
.gala-fiche__contenu .wp-block-gallery.has-nested-images figure.wp-block-image:not(#gala) {
	display: block;
	background: none;
}
.gala-fiche__contenu .wp-block-gallery.has-nested-images figure.wp-block-image:not(#gala) img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: var(--wp--preset--color--fond);
}
.gala-fiche__contenu .wp-block-gallery.has-nested-images figure.wp-block-image:not(#gala)::before { display: none; }
.gala-fiche__contenu .wp-block-gallery.has-nested-images figure.wp-block-image:not(#gala) figcaption {
	position: static;
	background: none;
	color: var(--wp--preset--color--gris);
	font-size: .85rem;
	padding: 8px 0 0;
	margin: 0;
	text-align: left;
	max-height: none;
	overflow: visible;
	text-shadow: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

.gala-infos__titre { font-size: clamp(1.9rem, 2.2vw, 2.7rem); margin: 0; }
.gala-infos__statut { display: flex; align-items: center; gap: 10px; margin: 20px 0 32px; font-size: 1.05rem; }
.gala-infos__carre { width: 10px; height: 10px; border: 1px solid var(--wp--preset--color--noir); background: var(--wp--preset--color--noir); flex: none; }
.is-vendue .gala-infos__carre,
.is-reservee .gala-infos__carre { background: transparent; }
.gala-infos__specs { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 10px 16px; margin: 0; }
.gala-infos__specs dt { color: var(--wp--preset--color--gris); }
.gala-infos__specs dd { margin: 0; }
.gala-infos__prix { font-size: 2rem; margin: 40px 0 4px; line-height: 1.2; }
.gala-infos__note { color: var(--wp--preset--color--gris); margin: 0 0 24px; font-size: .95rem; }
.is-vendue .gala-infos__note,
.is-reservee .gala-infos__note { margin-top: 40px; }
.gala-infos__actions { margin: 0; }
.gala-infos__bouton { width: 100%; }
.gala-infos__bouton .wp-block-button__link { width: 100%; }
.gala-infos__question { margin: 24px 0 0; }
@media (max-width: 767px) {
	.gala-infos__specs { grid-template-columns: 120px minmax(0, 1fr); }
}

.gala-liees { margin-top: var(--wp--preset--spacing--80) !important; }
.gala-liees__titre { font-size: clamp(1.8rem, 2.1vw, 2.6rem); margin: 0 0 48px; }

/* ---------- Expositions ---------- */
.gala-expo__jour { font-size: clamp(2.4rem, 3vw, 3.6rem); line-height: .9; margin: 0; }
.gala-expo__date p { margin: 0 0 6px; }
.gala-expo .wp-block-heading { margin: 6px 0 16px; }
@media (max-width: 781px) {
	.is-style-encadre { padding: 24px !important; }
	.gala-expo > .wp-block-column:last-child { order: -1; }
}

/* ---------- Contact ---------- */
.gala-form__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 0 24px; }
.gala-form__champ { display: flex; flex-direction: column; gap: 8px; margin: 0 0 24px; }
.gala-form__champ label { font-size: 1rem; }
.gala-form__fac { color: var(--wp--preset--color--gris); }
.gala-form input[type="text"],
.gala-form input[type="email"],
.gala-form input[type="tel"],
.gala-form select,
.gala-form textarea {
	width: 100%;
	min-height: 52px;
	border: 1px solid var(--wp--preset--color--noir);
	border-radius: 0;
	padding: 0 16px;
	font: inherit;
	font-size: 1rem;
	color: var(--wp--preset--color--noir);
	background: var(--wp--preset--color--blanc);
	box-sizing: border-box;
}
.gala-form textarea { padding: 14px 16px; line-height: 1.5; resize: vertical; }
.gala-form select {
	appearance: none;
	background: var(--wp--preset--color--blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center;
	padding-right: 44px;
}
.gala-form [aria-invalid="true"] { border-color: var(--wp--preset--color--erreur) !important; border-width: 2px !important; }
.gala-form__err { display: flex; align-items: center; gap: 8px; color: var(--wp--preset--color--erreur); margin: 0; font-size: .95rem; }
.gala-form__err--global { margin-bottom: 24px; font-weight: 600; }
.gala-form__piege { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.gala-form__mention { color: var(--wp--preset--color--gris); font-size: .9rem; line-height: 1.5; margin: 8px 0 28px; }
.gala-form__mention a { color: var(--wp--preset--color--gris); }
.gala-form__ok { border: 1px solid var(--wp--preset--color--noir); padding: 40px; }
.gala-form__ok h2 { font-size: 2rem; margin: 0 0 12px; }
.gala-form__ok p { margin: 0 0 12px; }

.gala-coordonnees { display: flex; flex-direction: column; gap: 36px; }
.gala-coordonnees > .wp-block-group { margin: 0 !important; }
.gala-coordonnees__lib { color: var(--wp--preset--color--gris); margin: 0 0 6px !important; }
.gala-coordonnees__val { margin: 0 !important; font-size: clamp(1rem, 1.05vw, 1.15rem); line-height: 1.5; }

/* ---------- Pages de texte (légal, livraison…) ---------- */
.gala-texte h2 { font-size: var(--wp--preset--font-size--large); margin-top: 48px; }

/* ---------- Pied de page ---------- */
footer.wp-block-template-part { margin-top: 0; }
.gala-pied a { text-decoration: none; }
.gala-pied a:hover { text-decoration: underline; }
.gala-pied__logo { margin: 0; }
.gala-pied p { margin: 0; }
.gala-pied__titre {
	font-size: .9rem !important;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	margin: 0 0 16px;
	color: var(--wp--preset--color--blanc);
}
.gala-pied :focus-visible { outline-color: var(--wp--preset--color--blanc); }

/* ---------- Bouton « haut de page » ---------- */
.gala-haut {
	position: fixed;
	right: 24px;
	bottom: calc(24px + env(safe-area-inset-bottom, 0px));
	width: 46px;
	height: 46px;
	background: var(--wp--preset--color--noir);
	border: 1px solid var(--wp--preset--color--blanc);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 30;
	opacity: 0;
	pointer-events: none;
	transition: opacity .3s;
	cursor: pointer;
}
.gala-haut.est-visible { opacity: 1; pointer-events: auto; }

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