/*
 * Art by Sido — feuille de style unique du site statique.
 * Grille de 980 px centrée, sections pleine largeur, positions reprises du site d'origine.
 * En dessous de 1000 px, les sections s'empilent.
 */

/* ---------- Polices (hébergées sur le site) ---------- */

@font-face { font-family: "Libre Caslon Text"; src: url("../fonts/libre-caslon-text-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Libre Caslon Text"; src: url("../fonts/libre-caslon-text-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("../fonts/dm-sans-vf.woff2") format("woff2"); font-weight: 100 1000; font-style: normal; font-display: swap; }
@font-face { font-family: "Playfair Display"; src: url("../fonts/playfair-display-italic-vf.woff2") format("woff2"); font-weight: 400 900; font-style: italic; font-display: swap; }
@font-face { font-family: "Nunito Sans"; src: url("../fonts/nunito-sans-vf.woff2") format("woff2"); font-weight: 200 1000; font-style: normal; font-display: swap; }
@font-face { font-family: "EB Garamond"; src: url("../fonts/eb-garamond-italic-vf.woff2") format("woff2"); font-weight: 400 800; font-style: italic; font-display: swap; }

:root {
	--abs-grille: 980px;
	--abs-creme: #FDFAF0;
	--abs-creme-fonce: #FCF8ED;
	--abs-kaki: #BDB79C;
	--abs-kaki-trait: rgba(189, 183, 156, .45);
	--abs-brun: #564434;
	--abs-brun-fonce: #45362A;
	--abs-texte: #584A41;
	--abs-gris: #545454;
	--abs-titre: "Libre Caslon Text", "Adobe Caslon Pro", Georgia, serif;
	--abs-sans: "DM Sans", "Helvetica Neue", Arial, sans-serif;
	--abs-italique: "Playfair Display", Georgia, serif;
	--abs-fin: "Nunito Sans", Avenir, "Helvetica Neue", sans-serif;
	--abs-tableau: "EB Garamond", Garamond, Georgia, serif;
	--abs-icone-sac: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M5 8h14l-1 13H6z'/%3E%3Cpath d='M9 10V6a3 3 0 0 1 6 0v4'/%3E%3C/svg%3E");
	--abs-icone-enveloppe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Crect x='3' y='5.5' width='18' height='13'/%3E%3Cpath d='m3 6 9 7 9-7'/%3E%3C/svg%3E");
	--abs-icone-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Cpath d='M0 5h17M12.5.8 17 5l-4.5 4.2'/%3E%3C/svg%3E");
	--abs-icone-cadenas: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Crect x='5' y='11' width='14' height='10'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
	--abs-icone-coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='m4 12.5 5 5L20 6.5'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	overflow-x: clip;
	background: var(--abs-creme);
	color: var(--abs-texte);
	font-family: var(--abs-sans);
	font-size: 18px;
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
}
img, video { max-width: 100%; height: auto; display: block; }
picture { display: block; }
figure { margin: 0; }
p { margin: 0; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4 { margin: 0; font-family: var(--abs-titre); font-weight: 400; line-height: 1.4; color: var(--abs-kaki); }
/* Le site d'origine utilise Adobe Caslon demi-gras (sous licence) : Libre Caslon, épaissie et resserrée, s'en approche. */
:where(h1, h2, h3, h4):not(.abs-titre-collection, .abs-tableau__titre) { -webkit-text-stroke: .45px currentColor; letter-spacing: -0.01em; }
:focus-visible { outline: 2px solid var(--abs-brun); outline-offset: 3px; }

.abs-visuellement-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.abs-aller-contenu { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 8px 14px; background: var(--abs-brun); color: var(--abs-creme); }
.abs-aller-contenu:focus { top: 12px; }

.abs-grille { width: var(--abs-grille); max-width: 100%; margin-inline: auto; position: relative; }

.abs-filet { width: 31px; height: 0; margin: 0 auto; border: 0; border-top: 3px solid var(--abs-kaki); opacity: 1; }

.abs-titre-collection { font-family: var(--abs-italique); font-style: italic; font-size: 41px; letter-spacing: .08em; line-height: 1.3; }

/* ---------- Boutons ---------- */

.abs-bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 46px;
	padding: 0 26px;
	border: 1px solid transparent;
	font-family: var(--abs-sans);
	font-size: 14px;
	letter-spacing: .1em;
	line-height: 1.2;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
/* Plein brun (« Voir la collection »). */
.abs-bouton--plein { width: 265px; height: 52px; padding: 0; background: var(--abs-brun); color: var(--abs-creme); }
.abs-bouton--plein:hover { background: var(--abs-brun-fonce); }
/* Variante avec fine flèche qui glisse au survol, comme les boutons « Voir plus » et « En savoir plus ». */
.abs-bouton--fleche { gap: 12px; letter-spacing: .12em; }
.abs-bouton--fleche::after { content: ""; flex: none; width: 18px; height: 10px; background: currentColor; -webkit-mask: var(--abs-icone-fleche) center / contain no-repeat; mask: var(--abs-icone-fleche) center / contain no-repeat; transition: transform .25s ease; }
.abs-bouton--fleche:hover::after { transform: translateX(4px); }
/* Contour clair, pour les fonds kaki ou les photos : flèche qui glisse au survol. */
.abs-bouton--clair { padding: 0 22px 0 26px; gap: 12px; border-color: var(--abs-creme); color: var(--abs-creme); background: transparent; letter-spacing: .12em; }
.abs-bouton--clair::after { content: ""; flex: none; width: 18px; height: 10px; background: currentColor; -webkit-mask: var(--abs-icone-fleche) center / contain no-repeat; mask: var(--abs-icone-fleche) center / contain no-repeat; transition: transform .25s ease; }
.abs-bouton--clair:hover { background: var(--abs-creme); color: var(--abs-brun); }
.abs-bouton--clair:hover::after { transform: translateX(4px); }
/* E-mail : contour fin kaki, enveloppe, se remplit au survol. */
.abs-bouton--email { height: 48px; border-color: var(--abs-kaki); color: var(--abs-brun); font-size: 15px; letter-spacing: .08em; }
.abs-bouton--email::before { content: ""; flex: none; width: 17px; height: 17px; background: var(--abs-kaki); -webkit-mask: var(--abs-icone-enveloppe) center / contain no-repeat; mask: var(--abs-icone-enveloppe) center / contain no-repeat; transition: background-color .25s ease; }
.abs-bouton--email:hover { background: var(--abs-kaki); color: var(--abs-creme); transform: translateY(-1px); }
.abs-bouton--email:hover::before { background: var(--abs-creme); }
/* Réseau social : contour fin et logo de la plateforme. */
.abs-bouton--reseau { padding: 0 22px; border-color: var(--abs-kaki); color: var(--abs-brun); font-size: 15px; letter-spacing: .06em; }
.abs-bouton--reseau::before { content: ""; flex: none; width: 21px; height: 21px; background: var(--abs-brun); -webkit-mask: var(--abs-icone-reseau) center / contain no-repeat; mask: var(--abs-icone-reseau) center / contain no-repeat; transition: background-color .25s ease; }
.abs-bouton--reseau:hover { background: var(--abs-kaki); color: var(--abs-creme); transform: translateY(-1px); }
.abs-bouton--reseau:hover::before { background: var(--abs-creme); }
.abs-reseau-tiktok { --abs-icone-reseau: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16.6 3c.4 2.3 1.9 3.9 4.4 4.1v3.1c-1.6.1-3-.4-4.3-1.3v6.2c0 3.6-2.7 5.9-5.9 5.9-3.2 0-5.8-2.4-5.8-5.6 0-3.6 3.3-6.1 6.9-5.4v3.3c-1.7-.5-3.6.6-3.6 2.2 0 1.3 1.1 2.4 2.5 2.4 1.5 0 2.6-1 2.6-2.9V3z'/%3E%3C/svg%3E"); }
.abs-reseau-instagram { --abs-icone-reseau: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Crect x='3.5' y='3.5' width='17' height='17' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.3' cy='6.7' r='.9' fill='%23000' stroke='none'/%3E%3C/svg%3E"); }

/* ---------- En-tête et menu ---------- */

.abs-entete { position: relative; height: 136px; background: var(--abs-creme); z-index: 20; }
.abs-entete__logo { position: absolute; left: 0; top: 1px; z-index: 2; }
.abs-entete__logo img { width: 198px; height: auto; }
.abs-entete__grille { width: var(--abs-grille); max-width: 100%; height: 136px; margin: 0 auto; position: relative; }
.abs-menu { position: absolute; left: 370px; top: 31px; }
.abs-menu__ouvrir, .abs-menu__fermer-ligne { display: none; }
.abs-menu__liste { display: flex; gap: 1px; white-space: nowrap; }
.abs-menu__item { position: relative; }
.abs-menu__item > a { display: inline-flex; align-items: center; gap: 6px; padding: 0 15px; line-height: 53px; font-size: 20px; color: var(--abs-texte); transition: color .2s ease; }
.abs-menu__item > a:hover, .abs-menu__item.is-actif > a, .abs-menu__item.has-sous-menu:hover > a { color: var(--abs-kaki); }

/* Chevron de « Peintures », qui pivote à l'ouverture. */
.has-sous-menu > a::after { content: ""; width: 9px; height: 6px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6' fill='none' stroke='%23000' stroke-width='1.3'%3E%3Cpath d='m1 1 4 4 4-4'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6' fill='none' stroke='%23000' stroke-width='1.3'%3E%3Cpath d='m1 1 4 4 4-4'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .22s ease; }
.has-sous-menu:hover > a::after, .has-sous-menu:focus-within > a::after { transform: rotate(180deg); }

/* Sous-menu : apparaît en fondu sous une petite pointe, lignes surlignées au survol. */
.abs-sous-menu {
	position: absolute;
	top: calc(100% + 12px);
	left: 50%;
	min-width: 236px;
	padding: 8px;
	background: var(--abs-creme);
	border: 1px solid var(--abs-kaki-trait);
	border-radius: 6px;
	box-shadow: 0 14px 34px rgba(86, 68, 52, .14), 0 2px 6px rgba(86, 68, 52, .06);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 8px);
	transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
	z-index: 30;
}
.has-sous-menu:hover > .abs-sous-menu, .has-sous-menu:focus-within > .abs-sous-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition: opacity .22s ease, transform .22s ease, visibility 0s; }
.abs-sous-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.abs-sous-menu::after { content: ""; position: absolute; top: -6px; left: calc(50% - 5px); width: 10px; height: 10px; background: var(--abs-creme); border-top: 1px solid var(--abs-kaki-trait); border-left: 1px solid var(--abs-kaki-trait); transform: rotate(45deg); }
.abs-sous-menu a { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 14px; border-radius: 4px; font-size: 17px; line-height: 1.3; color: var(--abs-texte); transition: background-color .18s ease, color .18s ease; }
.abs-sous-menu a::after { content: ""; flex: none; width: 14px; height: 8px; background: currentColor; -webkit-mask: var(--abs-icone-fleche) center / contain no-repeat; mask: var(--abs-icone-fleche) center / contain no-repeat; opacity: 0; transform: translateX(-6px); transition: opacity .18s ease, transform .18s ease; }
.abs-sous-menu a:hover, .abs-sous-menu a:focus-visible { background: rgba(189, 183, 156, .18); color: var(--abs-brun); }
.abs-sous-menu a:hover::after, .abs-sous-menu a:focus-visible::after { opacity: 1; transform: none; }
.abs-sous-menu .is-actif > a { color: var(--abs-kaki); }

/* Onglet « Panier » : icône de sac et pastille du nombre de tableaux. */
.abs-menu-panier > a { gap: 7px; }
.abs-panier__icone { width: 19px; height: 19px; flex: none; margin-top: -2px; }
.abs-panier__compteur { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--abs-kaki); color: var(--abs-creme); font-size: 11px; line-height: 1; }
.abs-panier__compteur[hidden] { display: none; }

/* ---------- Pied de page ---------- */

.abs-pied { position: relative; height: 513px; padding-top: 47px; background: var(--abs-creme); text-align: center; }
.abs-pied__titre { width: 580px; max-width: calc(100% - 32px); margin: 0 auto; font-size: 28px; line-height: 1.4; color: var(--abs-kaki); }
.abs-pied__email { margin-top: 24px; }
.abs-pied__email .abs-bouton { width: 262px; height: 49px; padding: 0; font-size: 16px; }
.abs-pied__suivre { margin-top: 81px; font-size: 20px; line-height: 34px; color: var(--abs-kaki); }
.abs-reseaux { display: flex; flex-direction: column; align-items: center; gap: 11px; margin-top: 20px; }
.abs-reseau { display: flex; align-items: center; gap: 7px; }
.abs-reseau__icone img { width: 46px; height: 46px; transition: transform .2s ease; }
.abs-reseau__icone:hover img { transform: scale(1.08); }
.abs-reseau__nom { width: 142px; line-height: 46px; font-size: 16px; letter-spacing: .1em; color: var(--abs-kaki); }
.abs-reseau__nom:hover { opacity: .75; }
.abs-pied__liens { margin-top: 20px; font-size: 14px; letter-spacing: .05em; line-height: 22.4px; color: var(--abs-kaki); }
.abs-pied__liens a { margin: 0 17px; white-space: nowrap; }
.abs-pied__liens a:hover { text-decoration: underline; }
.abs-pied__copyright { margin-top: 9px; font-size: 14px; letter-spacing: .05em; line-height: 22.4px; color: var(--abs-kaki); }
.abs-pied__logo { position: absolute; left: 0; top: 326px; }
.abs-pied__logo img { width: 198px; height: auto; }
/* Pied réduit (page Contact) : logo et liens seulement. */
.abs-pied.is-reduit { height: auto; display: flex; flex-direction: column; align-items: center; margin-top: 40px; padding: 50px 16px 40px; border-top: 1px solid rgba(189, 183, 156, .35); }
.abs-pied.is-reduit .abs-pied__logo { position: static; order: -1; }
.abs-pied.is-reduit .abs-pied__logo img { width: 150px; }
.abs-pied.is-reduit .abs-pied__liens { margin-top: 18px; }

/* ---------- Accueil ---------- */

/* Le bandeau garde les proportions du tableau (2400 × 1153) : ciel et lac restent visibles quelle que
   soit la largeur de l'écran. Hauteur bornée : jamais moins de 573 px, jamais plus que l'écran. */
.abs-hero { position: relative; height: clamp(573px, 38vw, calc(100vh - 136px)); overflow: hidden; background: var(--abs-kaki); }
/* Bandeau moins haut que le tableau : on garde assez de ciel pour le nom et une bande de lac. */
.abs-hero > picture, .abs-hero__fond { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.abs-hero__contenu { position: relative; width: var(--abs-grille); max-width: 100%; height: 100%; margin: 0 auto; color: var(--abs-creme); }
/* Nom, lieu et filet empilés à gauche, dans le ciel. */
.abs-hero__titre { position: absolute; left: -21px; top: 30px; font-size: 56px; line-height: 1.2; color: var(--abs-creme); white-space: nowrap; text-shadow: 0 1px 12px rgba(86, 68, 52, .18); }
.abs-hero__lieu { position: absolute; left: -19px; top: 100px; font-size: 18px; line-height: 32.4px; color: var(--abs-creme); text-shadow: 0 1px 8px rgba(86, 68, 52, .22); }
.abs-hero__filet { position: absolute; left: -19px; top: 142px; width: 65px; border-top-color: var(--abs-creme); }
.abs-hero__bouton { position: absolute; left: 450px; top: 53%; }
.abs-hero .abs-bouton--clair:not(:hover) { background: rgba(86, 68, 52, .18); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }

.abs-apropos-accueil { display: grid; grid-template-columns: 1fr 1fr; min-height: 429px; }
.abs-apropos-accueil__boite { padding: 90px 30px 40px 95px; background: var(--abs-kaki); }
.abs-apropos-accueil__boite h2 { font-size: 56px; line-height: 95px; color: var(--abs-creme); }
.abs-apropos-accueil__boite .abs-filet { width: 30px; margin: 39px 0 41px; border-top-color: var(--abs-creme); }
.abs-apropos-accueil__texte { padding: 91px 30px 40px 58px; }
.abs-apropos-accueil__texte p { max-width: 406px; font-size: 18px; line-height: 32.4px; }

.abs-explorez { padding-top: 55px; text-align: center; }
.abs-explorez h2 { font-size: 56px; line-height: 78.4px; color: var(--abs-texte); }

.abs-collection-entete { padding: 24px 16px 81px; text-align: center; }
.abs-collection-entete .abs-titre-collection { margin-top: 34px; color: var(--abs-texte); }
.abs-collection-accueil.is-premiere .abs-collection-entete { padding-top: 63px; padding-bottom: 85px; }
.abs-collection-accueil.is-premiere .abs-titre-collection { margin-top: 26px; }

/* Carrousel : une rangée d'images de 464 px de haut qui défile horizontalement. */
.abs-carrousel-bande { position: relative; padding: 30px 11px 42px; background: var(--abs-kaki); }
.abs-carrousel { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.abs-carrousel::-webkit-scrollbar { display: none; }
.abs-carrousel > figure { flex: 0 0 auto; height: 464px; scroll-snap-align: start; }
/* Photos centrées quand elles tiennent dans la largeur ; sinon les marges automatiques tombent à zéro
   et le carrousel commence à gauche, défilement intact (un simple justify-content: center couperait le début). */
.abs-carrousel > figure:first-child { margin-left: auto; }
.abs-carrousel > figure:last-child { margin-right: auto; }
.abs-carrousel img { width: auto; height: 464px; max-width: none; }
/* Chaque photo mène à la page de son tableau : léger zoom au survol pour le signaler. */
.abs-carrousel > figure { overflow: hidden; }
.abs-carrousel__lien { display: block; height: 100%; }
.abs-carrousel__lien img { transition: transform .6s ease, opacity .3s ease; }
.abs-carrousel__lien:hover img { transform: scale(1.03); opacity: .92; }
.abs-carrousel-fleche { position: absolute; top: calc(30px + 232px - 20px); z-index: 3; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; background: none; color: #fff; cursor: pointer; filter: drop-shadow(0 0 2px rgba(0, 0, 0, .5)); }
.abs-carrousel-fleche svg { width: 10px; height: 17px; fill: currentColor; }
.abs-carrousel-fleche.is-suivant { right: 4px; }
.abs-carrousel-fleche.is-precedent { left: 4px; }
.abs-carrousel-fleche.is-precedent svg { transform: scaleX(-1); }
.abs-carrousel-fleche[hidden] { display: none; }
.abs-carrousel-bouton { min-height: 114px; padding: 31px 16px; text-align: center; }
.abs-carrousel-bouton.is-dernier { min-height: 199px; }

.abs-video { position: relative; height: 613px; overflow: hidden; }
.abs-video video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Bande de fleurs à l'aquarelle (positions en % de la largeur, comme sur le site d'origine). */
.abs-fleurs { position: relative; height: 509px; overflow: hidden; }
.abs-fleurs > figure { position: absolute; }
.abs-fleurs img { width: 100%; height: auto; }
.abs-fleur-1 { left: -1.3%; top: 30px; width: 34.8%; }
.abs-fleur-2 { left: 26.2%; top: 41px; width: 28.6%; }
.abs-fleur-3 { left: 52.3%; top: 183px; width: 18.8%; }
.abs-fleur-4 { left: 68.5%; top: -40px; width: 33%; }

/* ---------- Page Peintures ---------- */

.abs-collections { padding-bottom: 38px; }
.abs-collections__titre { padding: 67px 0 0 52px; font-size: 56px; line-height: 95px; color: var(--abs-kaki); }
.abs-collections__grille { display: grid; grid-template-columns: repeat(2, 474px); grid-template-rows: repeat(2, auto); grid-auto-flow: column; gap: 30px; margin-top: 30px; }
/* Carte de collection : photo sur toute la hauteur, carte entière cliquable, se soulève au survol. */
.abs-carte-collection { position: relative; display: grid; grid-template-columns: 235px 239px; height: 388px; overflow: hidden; background: var(--abs-kaki); transition: transform .35s ease, box-shadow .35s ease; }
.abs-carte-collection.is-cliquable { cursor: pointer; }
.abs-carte-collection:hover, .abs-carte-collection:focus-within { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(86, 68, 52, .18); }
.abs-carte-collection__contenu { position: relative; padding: 114px 6px 0 28px; }
.abs-carte-collection h2 { font-size: 28px; font-weight: 700; line-height: 39.2px; color: var(--abs-creme); -webkit-text-stroke: 0; }
.abs-carte-collection h2::after { content: ""; display: block; width: 30px; height: 2px; margin-top: 16px; background: var(--abs-creme); transition: width .35s ease; }
.abs-carte-collection:hover h2::after { width: 56px; }
.abs-carte-collection .abs-bouton { position: absolute; left: 28px; top: 290px; font-size: 16px; }
.abs-carte-collection:hover .abs-bouton--clair { background: var(--abs-creme); color: var(--abs-brun); }
.abs-carte-collection:hover .abs-bouton--clair::after { transform: translateX(4px); }
.abs-carte-collection__image { overflow: hidden; }
.abs-carte-collection__image img { width: 100%; height: 388px; object-fit: cover; transition: transform .9s cubic-bezier(.2, .7, .2, 1); }
.abs-carte-collection:hover .abs-carte-collection__image img { transform: scale(1.06); }

.abs-trois-colonnes { display: grid; grid-template-columns: 275px 431px 274px; min-height: 610px; padding-bottom: 8px; }
.abs-colonne-image img { width: 100%; height: 610px; object-fit: cover; }
.abs-colonne-image { background: #000; }
.abs-colonne-image.is-droite { background: var(--abs-creme-fonce); }
.abs-trois-colonnes__centre { padding: 71px 20px 0; text-align: center; }
.abs-trois-colonnes__centre h2 { font-size: 56px; line-height: 1.4; color: var(--abs-kaki); }
.abs-trois-colonnes__centre .abs-filet { margin-top: 35px; }
.abs-trois-colonnes__centre p { max-width: 294px; margin-inline: auto; font-size: 17px; line-height: 28.9px; color: var(--abs-kaki); }
.abs-trois-colonnes__centre .abs-intro { margin-top: 30px; }
.abs-trois-colonnes__centre .abs-idee { margin-top: 62px; max-width: 225px; }
.abs-trois-colonnes__bouton { margin-top: 10px !important; max-width: none !important; }

/* ---------- Pages de collection et cartes de tableaux ---------- */

.abs-section-page { padding: 39px 0 80px; }
.abs-titre-page { margin: 0 auto; font-size: 38px; line-height: 1.6; color: var(--abs-kaki); text-align: center; }
.abs-section-page > .abs-filet { margin-top: 15px; }

.abs-tableaux { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 23px; row-gap: 27px; width: var(--abs-grille); max-width: 100%; margin: 57px auto 0; }
.abs-tableau { position: relative; min-height: 614px; padding-bottom: 50px; background: var(--abs-kaki); text-align: center; }
.abs-tableau__image { display: block; height: 388px; overflow: hidden; }
.abs-tableau__img { width: 100%; height: 388px; object-fit: cover; transition: transform .6s ease; }
.abs-tableau__image:hover .abs-tableau__img { transform: scale(1.03); }
.abs-tableau__titre { margin: 9px 6px 0; font-family: var(--abs-tableau); font-style: italic; font-weight: 500; font-size: 25px; line-height: 1.24; letter-spacing: 0; color: var(--abs-creme); }
.abs-tableau__titre a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.abs-tableau__details { margin-top: 15px; }
.abs-tableau__details p { margin: 0 0 3px; font-family: var(--abs-fin); font-weight: 300; font-size: 15px; line-height: 24px; color: var(--abs-gris); }
/* Bouton d’une carte : sac pour « Ajouter au panier », enveloppe quand il ouvre un e-mail (« Acheter »). */
.abs-tableau__acheter { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-width: 142px; height: 40px; padding: 0 20px; border: 1px solid var(--abs-creme); background: transparent; color: var(--abs-creme); font-family: var(--abs-sans); font-size: 14px; letter-spacing: .12em; cursor: pointer; transition: background-color .25s ease, color .25s ease, transform .25s ease; }
.abs-tableau__acheter::before { content: ""; flex: none; width: 15px; height: 15px; background: currentColor; -webkit-mask: var(--abs-icone-sac) center / contain no-repeat; mask: var(--abs-icone-sac) center / contain no-repeat; }
.abs-tableau__acheter.is-email::before { -webkit-mask-image: var(--abs-icone-enveloppe); mask-image: var(--abs-icone-enveloppe); }
.abs-tableau__acheter:hover { background: var(--abs-creme); color: var(--abs-brun); transform: translateY(-1px); }
.abs-tableau__statut { position: absolute; left: 19px; bottom: 13px; font-size: 14px; line-height: 19.6px; color: var(--abs-creme); }

/* Autres peintures : aquarelles (fleurs plus grandes calées sur la grille, titre devant). */
.abs-aquarelles { margin-top: -80px; }
.abs-aquarelles .abs-titre-collection { position: relative; z-index: 2; margin-top: 101px; color: var(--abs-kaki); text-align: center; }
.abs-aquarelles .abs-fleurs { width: var(--abs-grille); max-width: 100%; height: 518px; margin: -152px auto 0; overflow: visible; }
.abs-aquarelles .abs-fleur-1 { left: -159px; top: 185px; width: 401px; }
.abs-aquarelles .abs-fleur-2 { left: 202px; top: 185px; width: 339px; }
.abs-aquarelles .abs-fleur-3 { left: 530px; top: 351px; width: 191px; }
.abs-aquarelles .abs-fleur-4 { left: 694px; top: 0; width: 445px; }
.abs-etiquettes { display: flex; flex-direction: column; align-items: center; padding: 66px 16px 53px; }
.abs-etiquettes > figure { width: 511px; max-width: 100%; }
.abs-etiquettes > figure:first-child { width: 600px; margin-bottom: 34px; }
.abs-etiquettes > figure:nth-child(2) { margin-bottom: 53px; }
.abs-etiquettes > figure:nth-child(2) img { height: 244px; width: 100%; object-fit: cover; }
.abs-etiquettes > figure:nth-child(3) img { height: 334px; width: 100%; object-fit: cover; }

/* ---------- Page d'un tableau ---------- */

.abs-fil-ariane { display: flex; justify-content: center; gap: 10px; margin: 0 auto 6px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--abs-kaki); }
.abs-fil-ariane a { transition: color .2s ease; }
.abs-fil-ariane a:hover { color: var(--abs-brun); }
.abs-produit .abs-titre-page { font-family: var(--abs-tableau); font-style: italic; font-weight: 500; font-size: 46px; line-height: 1.3; letter-spacing: 0; -webkit-text-stroke: 0; }
.abs-produit__colonnes { display: grid; grid-template-columns: 58fr 42fr; align-items: start; gap: 56px; width: var(--abs-grille); max-width: 100%; margin: 50px auto 0; }
.abs-produit__photo img { width: 100%; height: auto; }
/* Encadré d'achat : reste visible pendant qu'on fait défiler la photo. */
.abs-produit__encadre { position: sticky; top: 40px; padding: 34px 34px 30px; background: var(--abs-creme-fonce); border: 1px solid var(--abs-kaki-trait); }
.abs-fiche__statut { display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px; border-radius: 999px; background: rgba(189, 183, 156, .22); font-size: 13px; letter-spacing: .06em; line-height: 1.5; color: var(--abs-gris); }
.abs-fiche__statut::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #A39E86; }
.abs-fiche__statut.is-disponible { background: rgba(120, 140, 95, .14); color: #4F5E3C; }
.abs-fiche__statut.is-disponible::before { background: #7A8F5E; }
.abs-fiche__prix { margin-top: 18px; font-weight: 500; font-size: 32px; line-height: 1.15; letter-spacing: -0.01em; font-variant-numeric: lining-nums tabular-nums; color: var(--abs-brun); }
.abs-fiche__prix.is-sur-demande { font-size: 22px; font-weight: 400; color: var(--abs-texte); }
.abs-fiche__details { margin: 22px 0 0; border-top: 1px solid var(--abs-kaki-trait); }
.abs-fiche__details > div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--abs-kaki-trait); line-height: 1.5; }
.abs-fiche__details dt { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--abs-kaki); }
.abs-fiche__details dd { margin: 0; font-size: 16px; text-align: right; }
.abs-fiche__acheter { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 54px; margin-top: 26px; border: 1px solid var(--abs-brun); background: var(--abs-brun); color: var(--abs-creme); font-family: var(--abs-sans); font-size: 15px; letter-spacing: .12em; cursor: pointer; transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.abs-fiche__acheter::before { content: ""; width: 17px; height: 17px; background: currentColor; -webkit-mask: var(--abs-icone-sac) center / contain no-repeat; mask: var(--abs-icone-sac) center / contain no-repeat; }
.abs-fiche__acheter.is-email { background: transparent; color: var(--abs-brun); border-color: var(--abs-kaki); }
.abs-fiche__acheter.is-email::before { -webkit-mask-image: var(--abs-icone-enveloppe); mask-image: var(--abs-icone-enveloppe); }
.abs-fiche__acheter:hover { background: var(--abs-brun-fonce); transform: translateY(-1px); box-shadow: 0 10px 24px rgba(86, 68, 52, .22); }
.abs-fiche__acheter.is-email:hover { background: var(--abs-kaki); color: var(--abs-creme); border-color: var(--abs-kaki); box-shadow: none; }
.abs-fiche__garanties { margin-top: 24px; }
.abs-fiche__garanties li { position: relative; margin: 0 0 8px; padding-left: 26px; font-size: 15px; line-height: 1.5; }
.abs-fiche__garanties li::before { content: ""; position: absolute; left: 0; top: 4px; width: 15px; height: 15px; background: var(--abs-kaki); -webkit-mask: var(--abs-icone-coche) center / contain no-repeat; mask: var(--abs-icone-coche) center / contain no-repeat; }
.abs-fiche__question { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--abs-kaki-trait); font-size: 14px; line-height: 1.6; color: var(--abs-gris); }
.abs-fiche__question a { color: var(--abs-brun); text-decoration: underline; text-underline-offset: 3px; }
.abs-produit__description { margin-top: 30px; font-size: 16px; line-height: 1.7; }
.abs-produit__description p + p { margin-top: 12px; }
.abs-produit__suite { margin-top: 90px; text-align: center; }
.abs-produit__suite-titre { font-family: var(--abs-tableau); font-style: italic; font-weight: 500; font-size: 36px; line-height: 1.3; color: var(--abs-kaki); -webkit-text-stroke: 0; letter-spacing: 0; }
.abs-produit__suite > .abs-filet { margin-top: 14px; }
.abs-meme-collection { margin-top: 40px; }

/* ---------- Panier et commande ---------- */

.abs-boutique__corps { width: var(--abs-grille); max-width: calc(100% - 32px); margin: 40px auto 0; }
.abs-boutique__chargement { text-align: center; color: var(--abs-gris); }
.abs-boutique__grille { display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; gap: 48px; }

.abs-panier-lignes { border-top: 1px solid var(--abs-kaki-trait); }
.abs-panier-ligne { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 20px; padding: 24px 0; border-bottom: 1px solid var(--abs-kaki-trait); }
.abs-panier-ligne__image img { width: 110px; height: 130px; object-fit: cover; transition: transform .4s ease; }
.abs-panier-ligne__image:hover img { transform: scale(1.03); }
.abs-panier-ligne__titre { font-family: var(--abs-tableau); font-style: italic; font-weight: 500; font-size: 24px; line-height: 1.25; color: var(--abs-brun); }
.abs-panier-ligne__titre:hover { color: var(--abs-kaki); }
.abs-panier-ligne__details { margin-top: 8px; font-family: var(--abs-fin); font-weight: 300; font-size: 14px; line-height: 1.6; color: var(--abs-gris); }
.abs-panier-ligne__retirer { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; padding: 0; border: 0; background: none; font-size: 13px; color: var(--abs-gris); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.abs-panier-ligne__retirer:hover { color: var(--abs-brun); }
.abs-panier-ligne__prix { font-size: 18px; font-weight: 500; color: var(--abs-brun); }
.abs-panier-ligne.is-indisponible { opacity: .6; }
.abs-panier-ligne__alerte { margin-top: 8px; font-size: 14px; color: #8A3B2E; }

.abs-encadre { padding: 28px 28px 30px; background: var(--abs-creme-fonce); border: 1px solid var(--abs-kaki-trait); }
.abs-encadre__titre { padding-bottom: 14px; border-bottom: 1px solid var(--abs-kaki-trait); font-family: var(--abs-tableau); font-style: italic; font-weight: 500; font-size: 26px; line-height: 1.3; color: var(--abs-brun); -webkit-text-stroke: 0 !important; letter-spacing: 0 !important; }
.abs-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 0; font-size: 15px; border-bottom: 1px solid var(--abs-kaki-trait); }
.abs-total.is-principal { border-bottom: 0; padding-top: 16px; }
.abs-total.is-principal span:first-child { font-size: 16px; font-weight: 500; color: var(--abs-brun); }
.abs-total.is-principal span:last-child { font-size: 28px; font-weight: 500; letter-spacing: -0.01em; color: var(--abs-brun); }
.abs-total__note { margin-top: 4px; font-size: 13px; line-height: 1.5; color: var(--abs-gris); }
.abs-bouton-valider { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 54px; margin-top: 22px; border: 0; background: var(--abs-brun); color: var(--abs-creme); font-family: var(--abs-sans); font-size: 15px; letter-spacing: .12em; cursor: pointer; transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.abs-bouton-valider::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--abs-icone-cadenas) center / contain no-repeat; mask: var(--abs-icone-cadenas) center / contain no-repeat; }
.abs-bouton-valider:hover:not(:disabled) { background: var(--abs-brun-fonce); transform: translateY(-1px); box-shadow: 0 10px 24px rgba(86, 68, 52, .22); }
.abs-bouton-valider:disabled { opacity: .55; cursor: not-allowed; }
.abs-encadre .abs-fiche__garanties { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid var(--abs-kaki-trait); }
.abs-encadre .abs-fiche__garanties li { font-size: 14px; }
.abs-boutique__suite { margin-top: 36px; text-align: center; font-size: 14px; }
.abs-boutique__suite a { color: var(--abs-brun); text-decoration: underline; text-underline-offset: 3px; }

.abs-panier-vide { max-width: 520px; margin: 30px auto 0; text-align: center; }
.abs-panier-vide h2 { font-family: var(--abs-tableau); font-style: italic; font-weight: 500; font-size: 34px; line-height: 1.3; color: var(--abs-brun); -webkit-text-stroke: 0; letter-spacing: 0; }
.abs-panier-vide p { margin-top: 12px; font-size: 16px; line-height: 1.7; color: var(--abs-gris); }
.abs-panier-vide .abs-bouton { margin-top: 26px; }

/* Commande : étapes numérotées, choix du mode de réception. */
.abs-etape + .abs-etape { margin-top: 34px; }
.abs-etape__titre { display: flex; align-items: center; gap: 12px; font-family: var(--abs-tableau); font-style: italic; font-weight: 500; font-size: 26px; line-height: 1.3; color: var(--abs-brun); -webkit-text-stroke: 0 !important; letter-spacing: 0 !important; }
.abs-etape__titre span { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--abs-kaki); color: var(--abs-creme); font-family: var(--abs-sans); font-style: normal; font-size: 14px; }
.abs-etape__corps { margin-top: 16px; }
.abs-choix { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.abs-choix label { display: block; padding: 16px 18px; border: 1px solid rgba(189, 183, 156, .7); background: transparent; cursor: pointer; line-height: 1.4; transition: border-color .2s ease, background-color .2s ease; }
.abs-choix label:hover { border-color: var(--abs-kaki); }
.abs-choix input { position: absolute; opacity: 0; pointer-events: none; }
.abs-choix input:checked + label { border-color: var(--abs-brun); background: var(--abs-creme-fonce); box-shadow: inset 0 0 0 1px var(--abs-brun); }
.abs-choix input:focus-visible + label { outline: 2px solid var(--abs-brun); outline-offset: 2px; }
.abs-choix strong { display: block; font-size: 15px; font-weight: 500; color: var(--abs-brun); }
.abs-choix small { display: block; margin-top: 4px; font-size: 13px; color: var(--abs-gris); }
.abs-commande__note { margin-top: 12px; font-size: 14px; line-height: 1.6; color: var(--abs-gris); }
.abs-case { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.6; cursor: pointer; }
.abs-case input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--abs-brun); flex: none; }
.abs-case a { color: var(--abs-brun); text-decoration: underline; text-underline-offset: 3px; }
.abs-commande__erreur { margin-top: 16px; padding: 12px 16px; border-left: 3px solid #8A3B2E; background: rgba(138, 59, 46, .07); font-size: 14px; line-height: 1.6; color: #6E2E24; }
.abs-commande__erreur[hidden] { display: none; }
.abs-resume-ligne { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 12px 0; border-bottom: 1px solid var(--abs-kaki-trait); }
.abs-resume-ligne img { width: 56px; height: 68px; object-fit: cover; }
.abs-resume-ligne__titre { font-family: var(--abs-tableau); font-style: italic; font-weight: 500; font-size: 19px; line-height: 1.25; color: var(--abs-brun); }
.abs-resume-ligne__details { font-family: var(--abs-fin); font-weight: 300; font-size: 13px; line-height: 1.5; color: var(--abs-gris); }
.abs-resume-ligne__prix { font-size: 15px; color: var(--abs-brun); }

.abs-merci { text-align: center; }
.abs-merci p { max-width: 560px; margin: 24px auto 0; font-size: 17px; line-height: 1.7; }
.abs-merci__boutons { margin-top: 34px !important; }

/* ---------- À propos ---------- */

.abs-apropos { display: grid; grid-template-columns: 363px minmax(0, 1fr); min-height: 499px; }
.abs-apropos__titre { padding: 121px 0 0 5px; font-size: 38px; line-height: 1.7; color: var(--abs-kaki); }
.abs-apropos__texte { padding: 123px 0 90px; }
.abs-apropos__texte p { max-width: 590px; font-size: 19px; line-height: 26.6px; }
.abs-apropos__texte p:not(:last-child) { margin-bottom: 27px; }
.abs-apropos-parcours { display: grid; grid-template-columns: 1fr 1fr; min-height: 767px; }
.abs-apropos-parcours .abs-colonne-image { background: var(--abs-texte); }
.abs-apropos-parcours .abs-colonne-image img { width: 100%; height: 767px; object-fit: cover; }
.abs-apropos-parcours__texte { padding: 150px 25px 40px 63px; background: var(--abs-kaki); }
.abs-apropos-parcours__texte p { max-width: 402px; font-size: 20px; line-height: 34px; color: var(--abs-creme); }
.abs-apropos-parcours__texte p:not(:last-child) { margin-bottom: 27px; }

/* ---------- Contact ---------- */

.abs-contact-page__intro { max-width: 520px; margin: 26px auto 0; font-size: 18px; line-height: 1.7; text-align: center; }
.abs-contact-page__colonnes { display: grid; grid-template-columns: 44fr 56fr; gap: 30px; margin-top: 50px; }
.abs-contact-page__photo img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; }
.abs-contact-page__photo picture { height: 100%; }
.abs-contact-page__cartes { display: flex; flex-direction: column; gap: 30px; }
.abs-contact-carte { flex: 1; padding: 34px 36px 36px; background: var(--abs-creme-fonce); border: 1px solid var(--abs-kaki-trait); transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.abs-contact-carte:hover { border-color: var(--abs-kaki); box-shadow: 0 14px 34px rgba(86, 68, 52, .1); transform: translateY(-2px); }
.abs-contact-carte__icone { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: var(--abs-kaki); color: var(--abs-creme); }
.abs-contact-carte__icone svg { width: 22px; height: 22px; }
.abs-contact-carte h2 { margin-top: 18px; font-size: 24px; line-height: 1.3; color: var(--abs-texte); }
.abs-contact-carte p { margin-top: 6px; font-size: 16px; line-height: 1.6; color: var(--abs-gris); }
.abs-contact-carte__boutons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px !important; }

/* ---------- Pages légales ---------- */

.abs-legal { width: var(--abs-grille); max-width: calc(100% - 32px); margin: 0 auto; padding: 84px 11px 80px; color: var(--abs-kaki); }
.abs-legal h1 { margin-bottom: 40px; font-size: 60px; line-height: 66px; text-transform: uppercase; color: var(--abs-kaki); }
.abs-legal h2 { margin: 30px 0 8px; font-size: 24px; line-height: 1.5; color: var(--abs-kaki); }
.abs-legal p, .abs-legal li { font-size: 16px; line-height: 27.2px; }
.abs-legal p { margin: 0 0 14px; }
.abs-legal a { text-decoration: underline; }

/* ---------- Écrans étroits ---------- */

@media (max-width: 999px) {
	body { font-size: 17px; }

	.abs-entete { height: 96px; }
	.abs-entete__logo img { width: 140px; }
	.abs-entete__grille { height: 96px; }
	.abs-menu { left: auto; right: 16px; top: 28px; }
	.abs-menu__ouvrir { display: flex; padding: 8px; border: 0; background: none; color: var(--abs-texte); cursor: pointer; }
	.abs-menu__ouvrir svg, .abs-menu__fermer svg { fill: currentColor; }
	.abs-menu__liste { position: fixed; inset: 0; display: none; flex-direction: column; gap: 4px; padding: 20px 24px 40px; overflow-y: auto; background: var(--abs-creme); z-index: 50; }
	.abs-menu.is-ouvert .abs-menu__liste { display: flex; }
	.abs-menu__fermer-ligne { display: flex; justify-content: flex-end; }
	.abs-menu__fermer { padding: 8px; border: 0; background: none; color: var(--abs-texte); cursor: pointer; }
	.abs-menu__item > a { line-height: 44px; font-size: 21px; }
	.has-sous-menu > a::after { display: none; }
	.abs-sous-menu { position: static; min-width: 0; padding: 0 0 0 20px; border: 0; background: transparent; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
	.abs-sous-menu::after { display: none; }
	.abs-sous-menu a { padding: 8px 15px; }

	.abs-pied { height: auto; padding: 40px 16px 170px; }
	.abs-pied__liens a { display: inline-block; margin: 0 8px; }
	.abs-pied__logo { top: auto; bottom: 0; }

	.abs-hero { height: auto; min-height: 480px; }
	.abs-hero__contenu { height: auto; display: flex; flex-direction: column; gap: 6px; padding: 22px 16px 40px; }
	.abs-hero__titre, .abs-hero__lieu, .abs-hero__filet, .abs-hero__bouton { position: static; }
	.abs-hero__titre { font-size: 42px; line-height: 1.2; white-space: normal; }
	.abs-hero__filet { margin: 0; }
	.abs-hero__bouton { align-self: flex-start; margin-top: 190px; }

	.abs-apropos-accueil { grid-template-columns: 1fr; }
	.abs-apropos-accueil__boite, .abs-apropos-accueil__texte { padding: 50px 24px; }
	.abs-explorez h2, .abs-collections__titre, .abs-trois-colonnes__centre h2 { font-size: 40px; line-height: 1.3; }
	.abs-carrousel > figure, .abs-carrousel img { height: 320px; }
	.abs-carrousel-fleche { top: calc(30px + 160px - 20px); }
	.abs-video { height: 360px; }
	.abs-fleurs { height: 42vw; }
	.abs-fleur-1, .abs-fleur-2 { top: 2vw; }
	.abs-fleur-3 { top: 14vw; }
	.abs-fleur-4 { top: -3vw; }

	.abs-collections__titre { padding: 40px 16px 0; }
	.abs-collections__grille { grid-template-columns: 1fr; grid-auto-flow: row; padding: 0 16px; }
	.abs-carte-collection { grid-template-columns: 1fr 1fr; }
	.abs-trois-colonnes { grid-template-columns: 1fr; min-height: 0; padding-bottom: 0; }
	.abs-colonne-image img { height: 320px; }
	.abs-trois-colonnes__centre { padding: 50px 24px; }

	.abs-tableaux { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); padding: 0 16px; }
	.abs-aquarelles .abs-fleurs { width: 100%; height: 42vw; margin-top: 0; }
	.abs-aquarelles .abs-fleur-1 { left: -1.3%; top: 2vw; width: 34.8%; }
	.abs-aquarelles .abs-fleur-2 { left: 26.2%; top: 2vw; width: 28.6%; }
	.abs-aquarelles .abs-fleur-3 { left: 52.3%; top: 14vw; width: 18.8%; }
	.abs-aquarelles .abs-fleur-4 { left: 68.5%; top: -3vw; width: 33%; }
	.abs-aquarelles .abs-titre-collection { margin-top: 120px; font-size: 30px; padding: 0 16px; }

	.abs-produit__colonnes { grid-template-columns: 1fr; gap: 30px; padding: 0 16px; }
	.abs-produit__encadre { position: static; padding: 26px 22px; }
	.abs-produit .abs-titre-page { font-size: 34px; padding: 0 16px; }
	.abs-fil-ariane { flex-wrap: wrap; padding: 0 16px; }

	.abs-boutique__grille { grid-template-columns: 1fr; gap: 30px; }
	.abs-choix { grid-template-columns: 1fr; }
	.abs-panier-ligne { grid-template-columns: 80px minmax(0, 1fr) auto; gap: 14px; }
	.abs-panier-ligne__image img { width: 80px; height: 100px; }
	.abs-panier-ligne__titre { font-size: 21px; }

	.abs-apropos { grid-template-columns: 1fr; min-height: 0; }
	.abs-apropos__titre { padding: 40px 16px 0; }
	.abs-apropos__texte { padding: 16px 16px 40px; }
	.abs-apropos-parcours { grid-template-columns: 1fr; min-height: 0; }
	.abs-apropos-parcours .abs-colonne-image img { height: 420px; }
	.abs-apropos-parcours__texte { padding: 50px 24px; }

	.abs-contact-page__colonnes { grid-template-columns: 1fr; padding: 0 16px; }
	.abs-contact-page__photo img { min-height: 280px; height: 280px; }
	.abs-contact-carte { padding: 28px 24px; }
	.abs-contact-page__intro { padding: 0 16px; }

	.abs-legal h1 { font-size: 36px; line-height: 1.2; }
}

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