/* Faufil. La feuille de patron. */

@font-face { font-family: "Fell"; src: url("fonts/fell-roman.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Fell"; src: url("fonts/fell-italique.woff2") format("woff2"); font-style: italic; font-weight: 400; font-display: swap; }
@font-face { font-family: "Franklin"; src: url("fonts/franklin.woff2") format("woff2"); font-style: normal; font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Franklin"; src: url("fonts/franklin-italique.woff2") format("woff2"); font-style: italic; font-weight: 100 900; font-display: swap; }

:root {
	--cranteur: polygon(0.00% 0.00%, 2.27% 2.20%, 4.55% 0.00%, 6.82% 2.20%, 9.09% 0.00%, 11.36% 2.20%, 13.64% 0.00%, 15.91% 2.20%, 18.18% 0.00%, 20.45% 2.20%, 22.73% 0.00%, 25.00% 2.20%, 27.27% 0.00%, 29.55% 2.20%, 31.82% 0.00%, 34.09% 2.20%, 36.36% 0.00%, 38.64% 2.20%, 40.91% 0.00%, 43.18% 2.20%, 45.45% 0.00%, 47.73% 2.20%, 50.00% 0.00%, 52.27% 2.20%, 54.55% 0.00%, 56.82% 2.20%, 59.09% 0.00%, 61.36% 2.20%, 63.64% 0.00%, 65.91% 2.20%, 68.18% 0.00%, 70.45% 2.20%, 72.73% 0.00%, 75.00% 2.20%, 77.27% 0.00%, 79.55% 2.20%, 81.82% 0.00%, 84.09% 2.20%, 86.36% 0.00%, 88.64% 2.20%, 90.91% 0.00%, 93.18% 2.20%, 95.45% 0.00%, 97.73% 2.20%, 100.00% 0.00%, 97.80% 2.27%, 100.00% 4.55%, 97.80% 6.82%, 100.00% 9.09%, 97.80% 11.36%, 100.00% 13.64%, 97.80% 15.91%, 100.00% 18.18%, 97.80% 20.45%, 100.00% 22.73%, 97.80% 25.00%, 100.00% 27.27%, 97.80% 29.55%, 100.00% 31.82%, 97.80% 34.09%, 100.00% 36.36%, 97.80% 38.64%, 100.00% 40.91%, 97.80% 43.18%, 100.00% 45.45%, 97.80% 47.73%, 100.00% 50.00%, 97.80% 52.27%, 100.00% 54.55%, 97.80% 56.82%, 100.00% 59.09%, 97.80% 61.36%, 100.00% 63.64%, 97.80% 65.91%, 100.00% 68.18%, 97.80% 70.45%, 100.00% 72.73%, 97.80% 75.00%, 100.00% 77.27%, 97.80% 79.55%, 100.00% 81.82%, 97.80% 84.09%, 100.00% 86.36%, 97.80% 88.64%, 100.00% 90.91%, 97.80% 93.18%, 100.00% 95.45%, 97.80% 97.73%, 100.00% 100.00%, 97.73% 97.80%, 95.45% 100.00%, 93.18% 97.80%, 90.91% 100.00%, 88.64% 97.80%, 86.36% 100.00%, 84.09% 97.80%, 81.82% 100.00%, 79.55% 97.80%, 77.27% 100.00%, 75.00% 97.80%, 72.73% 100.00%, 70.45% 97.80%, 68.18% 100.00%, 65.91% 97.80%, 63.64% 100.00%, 61.36% 97.80%, 59.09% 100.00%, 56.82% 97.80%, 54.55% 100.00%, 52.27% 97.80%, 50.00% 100.00%, 47.73% 97.80%, 45.45% 100.00%, 43.18% 97.80%, 40.91% 100.00%, 38.64% 97.80%, 36.36% 100.00%, 34.09% 97.80%, 31.82% 100.00%, 29.55% 97.80%, 27.27% 100.00%, 25.00% 97.80%, 22.73% 100.00%, 20.45% 97.80%, 18.18% 100.00%, 15.91% 97.80%, 13.64% 100.00%, 11.36% 97.80%, 9.09% 100.00%, 6.82% 97.80%, 4.55% 100.00%, 2.27% 97.80%, 0.00% 100.00%, 2.20% 97.73%, 0.00% 95.45%, 2.20% 93.18%, 0.00% 90.91%, 2.20% 88.64%, 0.00% 86.36%, 2.20% 84.09%, 0.00% 81.82%, 2.20% 79.55%, 0.00% 77.27%, 2.20% 75.00%, 0.00% 72.73%, 2.20% 70.45%, 0.00% 68.18%, 2.20% 65.91%, 0.00% 63.64%, 2.20% 61.36%, 0.00% 59.09%, 2.20% 56.82%, 0.00% 54.55%, 2.20% 52.27%, 0.00% 50.00%, 2.20% 47.73%, 0.00% 45.45%, 2.20% 43.18%, 0.00% 40.91%, 2.20% 38.64%, 0.00% 36.36%, 2.20% 34.09%, 0.00% 31.82%, 2.20% 29.55%, 0.00% 27.27%, 2.20% 25.00%, 0.00% 22.73%, 2.20% 20.45%, 0.00% 18.18%, 2.20% 15.91%, 0.00% 13.64%, 2.20% 11.36%, 0.00% 9.09%, 2.20% 6.82%, 0.00% 4.55%, 2.20% 2.27%);
	--ecru: #F1EBDD;
	--papier: #F8F4EA;
	--encre: #1E1A1B;
	--encre-douce: #5C5450;
	--fil: #C63A1E;
	--nuit: #1D2A2A;
	--craie: #A8BAC0;
	--kraft: #CDB998;
	--ligne: #CFC6B2;
	--marge: clamp(16px, 4vw, 60px);
	--gout: clamp(12px, 1.6vw, 28px);
	--titre: "Fell", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
	--texte: "Franklin", "Helvetica Neue", Arial, sans-serif;
	--t-xl: clamp(3.1rem, 8.6vw, 9.2rem);
	--t-l: clamp(2.3rem, 5vw, 5.2rem);
	--t-m: clamp(1.6rem, 2.7vw, 2.6rem);
	--t-s: clamp(1.25rem, 1.7vw, 1.55rem);
	--respire: clamp(4.5rem, 11vw, 11rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }

body {
	margin: 0;
	background: var(--ecru);
	color: var(--encre);
	font-family: var(--texte);
	font-size: 1.0625rem;
	font-weight: 400;
	line-height: 1.58;
	font-feature-settings: "kern", "liga", "onum";
	overflow-x: clip;
}

h1, h2, h3, h4 { font-family: var(--titre); font-weight: 400; line-height: 1.04; letter-spacing: -.012em; margin: 0 0 .5em; text-wrap: balance; }
h1 { font-size: var(--t-l); }
h2 { font-size: var(--t-l); }
h3 { font-size: var(--t-m); }
h4 { font-size: var(--t-s); }
p { margin: 0 0 1em; text-wrap: pretty; }
img, svg { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
ul, ol { margin: 0; }
em { font-style: italic; }
small { font-size: .85em; }

a { color: inherit; text-decoration: underline dashed var(--fil) 1.5px; text-underline-offset: .28em; transition: color .2s; }
a:hover { color: var(--fil); }
:focus-visible { outline: 2px solid var(--fil); outline-offset: 3px; }

.evitement { position: absolute; left: -9999px; top: 0; background: var(--encre); color: var(--papier); padding: .6em 1em; z-index: 100; }
.evitement:focus { left: var(--marge); top: .5rem; }

/* Tête */
.tete { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; padding: clamp(.9rem, 1.6vw, 1.5rem) var(--marge) 0; position: relative; z-index: 20; }
.tete a { text-decoration: none; }
.tete a:hover { text-decoration: underline dashed var(--fil) 1.5px; text-underline-offset: .28em; color: inherit; }
.tete-logo { display: block; width: clamp(104px, 11vw, 158px); flex: none; }
.tete-logo svg, .pied-logo svg { width: 100%; }
.tete-nav { display: flex; gap: clamp(1.5rem, 4vw, 4.5rem); align-items: baseline; padding-top: .45rem; font-size: 1rem; }
.tete-liens { display: flex; gap: clamp(.9rem, 2vw, 2rem); list-style: none; padding: 0; flex-wrap: wrap; }
.tete-liens .current-menu-item a { text-decoration: underline dashed var(--fil) 1.5px; text-underline-offset: .28em; }
.tete-actions { display: flex; gap: clamp(.9rem, 2vw, 2rem); margin: 0; white-space: nowrap; }
.tete-rdv { font-weight: 600; }
.tete-bascule { display: none; background: none; border: 0; font: inherit; color: inherit; padding: .5rem 0; cursor: pointer; text-decoration: underline dashed var(--fil) 1.5px; text-underline-offset: .28em; }

@media (max-width: 980px) {
	.tete { align-items: center; padding-bottom: .4rem; }
	.tete-bascule { display: block; }
	.tete-nav { position: absolute; left: 0; right: 0; top: 100%; display: none; flex-direction: column; align-items: flex-start; gap: 1.6rem; background: var(--papier); padding: 1.5rem var(--marge) 2rem; border-top: 1.5px dashed var(--fil); border-bottom: 1px solid var(--ligne); }
	.tete-nav.ouverte { display: flex; }
	.tete-liens { flex-direction: column; gap: .35rem; font-family: var(--titre); font-size: 2rem; line-height: 1.2; }
	.tete-actions { flex-direction: column; gap: .5rem; }
}

/* Liens et boutons */
.lien-fil, .liens a { font-weight: 600; text-decoration: underline dashed var(--fil) 2px; text-underline-offset: .32em; }
.liens { display: flex; flex-wrap: wrap; gap: .5rem 2rem; }
.liens p { margin: 0; }

.bouton, .button, button.button, input.button, a.button, .woocommerce-button, #place_order {
	display: inline-block;
	background: var(--encre);
	color: var(--papier);
	border: 0;
	padding: 1.05em 1.9em;
	font: 600 1rem/1.2 var(--texte);
	text-decoration: none;
	cursor: pointer;
	outline: 1.5px dashed color-mix(in srgb, var(--papier) 62%, transparent);
	outline-offset: -6px;
	transition: background .2s;
	border-radius: 0;
	text-align: center;
}
.bouton:hover, .button:hover, #place_order:hover { background: var(--fil); color: var(--papier); text-decoration: none; }
.button.disabled, .button:disabled, .button.wc-variation-selection-needed { background: #6d6661; cursor: not-allowed; }
.button.alt { background: var(--encre); }
.button.alt:hover { background: var(--fil); }

/* Titrage des pages intérieures */
.titrage { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); padding: clamp(2.5rem, 7vw, 7rem) var(--marge) clamp(2rem, 5vw, 5rem); align-items: end; }
.titrage h1 { grid-column: 1 / 8; margin: 0; font-size: var(--t-xl); line-height: .98; }
.titrage > p, .titrage-texte { grid-column: 8 / 13; margin: 0; }
.titrage-texte p:last-child { margin-bottom: 0; }
.titrage-seul { min-height: 52vh; align-content: center; }
.titrage-seul h1 { grid-column: 1 / 11; }
.titrage-seul p { grid-column: 1 / 8; margin-top: 2rem; }
@media (max-width: 800px) {
	.titrage { display: block; }
	.titrage h1 { margin-bottom: 1.4rem; }
}

/* Accueil */
.a-tete { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto auto 1fr; column-gap: var(--gout); padding: clamp(1.5rem, 3vw, 3rem) var(--marge) 0; }
.a-tete h1 { grid-column: 1 / 9; grid-row: 1; font-size: clamp(3.1rem, 7.3vw, 8.4rem); line-height: .98; margin: 0 0 clamp(2rem, 5vw, 5rem); position: relative; z-index: 2; }
.a-tete .a-photo-grande { grid-column: 9 / 13; grid-row: 1 / 4; margin-top: clamp(3.5rem, 9vw, 10rem); }
.a-tete .a-photo-grande img { width: 100%; }
.a-tete .a-photo-petite { grid-column: 1 / 4; grid-row: 2 / 4; align-self: end; }
.a-tete .a-chapo { grid-column: 4 / 8; grid-row: 2; font-size: clamp(1.15rem, 1.5vw, 1.4rem); line-height: 1.42; margin-bottom: 1.4rem; }
.a-tete .liens { grid-column: 4 / 8; grid-row: 3; align-self: start; }
@media (max-width: 800px) {
	.a-tete { display: block; }
	.a-tete h1 { margin-bottom: 1.5rem; }
	.a-tete .a-photo-grande { margin: 1.8rem 0 0 18%; }
	.a-tete .a-photo-petite { width: 52%; margin-top: -3.5rem; position: relative; z-index: 2; }
	.a-tete .a-chapo { margin-top: 1.8rem; }
}

.a-definition { padding: var(--respire) var(--marge); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); }
.a-definition .def-mot { grid-column: 3 / 13; font-family: var(--titre); font-style: italic; font-size: var(--t-xl); line-height: 1; margin: 0; }
.a-definition .def-nature { grid-column: 3 / 13; color: var(--encre-douce); margin: .6rem 0 1.6rem; font-family: var(--titre); font-style: italic; font-size: var(--t-s); }
.a-definition .def-sens { grid-column: 3 / 11; font-family: var(--titre); font-size: var(--t-m); line-height: 1.2; margin: 0; }
@media (max-width: 800px) { .a-definition { display: block; } }

.a-section-tete { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); padding: 0 var(--marge); margin-bottom: clamp(2.5rem, 6vw, 6rem); align-items: end; }
.a-section-tete h2 { grid-column: 1 / 8; margin: 0; }
.a-section-tete p { grid-column: 9 / 13; margin: 0; }
@media (max-width: 800px) { .a-section-tete { display: block; } .a-section-tete h2 { margin-bottom: 1.2rem; } }

.a-apres { padding: clamp(2.5rem, 5vw, 5rem) var(--marge) 0; }
.a-apres p { margin: 0 0 0 calc((100% + var(--gout)) / 12 * 5); font-family: var(--titre); font-size: var(--t-m); }
@media (max-width: 800px) { .a-apres p { margin-left: 0; } }

/* Le calendrier en mètre ruban */
.a-metre { padding-top: var(--respire); padding-bottom: var(--respire); }
.a-metre h2 { padding: 0 var(--marge); max-width: 15em; margin-bottom: clamp(2.5rem, 6vw, 5rem); }
.metre { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); position: relative; padding-top: 74px; }
.metre::before {
	content: "";
	position: absolute; left: 0; right: 0; top: 0; height: 46px;
	background-color: #E9D98A;
	background-image:
		repeating-linear-gradient(90deg, var(--encre) 0 1.5px, transparent 1.5px calc(100% / 8)),
		repeating-linear-gradient(90deg, var(--encre) 0 1px, transparent 1px calc(100% / 32)),
		repeating-linear-gradient(90deg, rgba(30, 26, 27, .55) 0 1px, transparent 1px calc(100% / 160));
	background-size: 100% 100%, 100% 58%, 100% 30%;
	background-repeat: no-repeat;
	box-shadow: 0 1px 0 rgba(30, 26, 27, .25);
}
.metre li { padding: 0 var(--gout) 0 calc(var(--marge) / 2); font-size: .98rem; line-height: 1.45; position: relative; }
.metre li::before { content: ""; position: absolute; left: calc(var(--marge) / 2); top: -74px; height: 62px; border-left: 2px solid var(--fil); }
.metre li strong { display: block; font-family: var(--titre); font-weight: 400; font-size: var(--t-s); line-height: 1.15; margin-bottom: .35em; }
.metre li:nth-child(1) { grid-column: 1 / 3; }
.metre li:nth-child(2) { grid-column: 3 / 5; }
.metre li:nth-child(3) { grid-column: 5 / 7; }
.metre li:nth-child(4) { grid-column: 7 / 8; }
.metre li:nth-child(5) { grid-column: 8 / 9; }
.metre li:nth-child(4), .metre li:nth-child(5) { padding-right: .6rem; padding-left: .7rem; }
.metre li:nth-child(4)::before, .metre li:nth-child(5)::before { left: .7rem; }
@media (max-width: 1100px) {
	.metre { display: block; padding: 0 var(--marge) 0 calc(var(--marge) + 62px); }
	.metre::before { left: var(--marge); right: auto; top: 0; bottom: 0; height: auto; width: 40px;
		background-image:
			repeating-linear-gradient(0deg, var(--encre) 0 1.5px, transparent 1.5px 90px),
			repeating-linear-gradient(0deg, var(--encre) 0 1px, transparent 1px 22.5px),
			repeating-linear-gradient(0deg, rgba(30, 26, 27, .55) 0 1px, transparent 1px 4.5px);
		background-size: 100% 100%, 58% 100%, 30% 100%;
	}
	.metre li, .metre li:nth-child(4), .metre li:nth-child(5) { padding: 0 0 2rem; }
	.metre li::before, .metre li:nth-child(4)::before, .metre li:nth-child(5)::before { left: -22px; top: .75em; height: 0; width: 22px; border-left: 0; border-top: 2px solid var(--fil); }
}

/* Sur-mesure : la section sombre */
.a-nuit { background: var(--nuit); color: var(--papier); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto auto auto 1fr; column-gap: var(--gout); position: relative; z-index: 2; }
.a-nuit figure { grid-column: 1 / 7; grid-row: 1 / 5; }
.a-nuit figure img { width: 100%; height: 100%; object-fit: cover; }
.a-nuit h2 { grid-column: 8 / 13; padding-top: clamp(3rem, 8vw, 8rem); margin-bottom: 1.5rem; padding-right: var(--marge); }
.a-nuit p { grid-column: 8 / 12; padding-right: var(--marge); }
.a-nuit p:last-child { padding-bottom: clamp(3rem, 8vw, 8rem); margin: 0; }
.a-nuit a:hover { color: var(--papier); }
@media (max-width: 800px) {
	.a-nuit { display: block; }
	.a-nuit h2, .a-nuit p { padding-left: var(--marge); padding-right: var(--marge); }
}

/* Les tissus : un nuancier aux ciseaux cranteurs */
.a-tissus { padding: var(--respire) 0; }
.nuancier { padding: 0 var(--marge); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 4rem) var(--gout); }
.nuancier figure { grid-column: span 3; }
.nuancier figure:nth-child(1) { grid-column: 1 / 5; transform: rotate(-1.4deg); }
.nuancier figure:nth-child(2) { grid-column: 6 / 9; margin-top: 3.5rem; transform: rotate(1deg); }
.nuancier figure:nth-child(3) { grid-column: 10 / 13; transform: rotate(-.6deg); }
.nuancier figure:nth-child(4) { grid-column: 2 / 5; transform: rotate(.9deg); }
.nuancier figure:nth-child(5) { grid-column: 5 / 8; margin-top: 4rem; transform: rotate(-1.1deg); }
.nuancier figure:nth-child(6) { grid-column: 9 / 13; margin-top: -3rem; transform: rotate(.7deg); }
.nuancier img { width: 100%; aspect-ratio: 1; object-fit: cover; clip-path: var(--cranteur); filter: drop-shadow(0 1px 1px rgba(30, 26, 27, .1)); }
.nuancier figcaption { margin-top: .9rem; font-size: .98rem; line-height: 1.42; }
.nuancier figcaption strong { font-family: var(--titre); font-weight: 400; font-size: var(--t-s); display: block; }
@media (max-width: 800px) {
	.nuancier { display: grid; grid-template-columns: 1fr 1fr; }
	.nuancier figure, .nuancier figure:nth-child(n) { grid-column: auto; margin-top: 0; }
}

/* Le lieu */
.a-lieu { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto 1fr; column-gap: var(--gout); padding: 0 var(--marge) var(--respire); align-items: start; }
.a-lieu h2 { grid-column: 1 / 8; grid-row: 1; }
.a-lieu .a-lieu-texte { grid-column: 1 / 6; grid-row: 2; align-self: end; }
.a-lieu figure { grid-column: 8 / 13; grid-row: 1 / 3; }
.a-lieu figure img { width: 100%; }
@media (max-width: 800px) { .a-lieu { display: block; } .a-lieu figure { margin-top: 2rem; } }

.a-journal { padding: 0 var(--marge) var(--respire); }
.a-journal h2 { font-size: var(--t-m); margin-bottom: 1.5rem; }
.journal-liste { list-style: none; padding: 0; border-top: 1.5px dashed var(--fil); }
.journal-liste li { border-bottom: 1px solid var(--ligne); }
.journal-liste a { display: grid; grid-template-columns: 7fr 5fr; gap: var(--gout); padding: 1.5rem 0; text-decoration: none; align-items: baseline; }
.journal-titre { font-family: var(--titre); font-size: var(--t-m); line-height: 1.1; }
.journal-resume { color: var(--encre-douce); }
.journal-liste a:hover .journal-titre { color: var(--fil); }
@media (max-width: 800px) { .journal-liste a { display: block; } .journal-resume { display: block; margin-top: .5rem; } }

/* Mosaïque des produits */
.mosaique { list-style: none; padding: 0 var(--marge); margin: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); row-gap: clamp(3rem, 6vw, 6rem); align-items: start; }
.mosaique > li:nth-child(6n+1) { grid-column: 1 / 6; }
.mosaique > li:nth-child(6n+2) { grid-column: 7 / 10; margin-top: clamp(4rem, 12vw, 12rem); }
.mosaique > li:nth-child(6n+3) { grid-column: 10 / 13; margin-top: clamp(1rem, 3vw, 3rem); }
.mosaique > li:nth-child(6n+4) { grid-column: 2 / 5; margin-top: clamp(1rem, 3vw, 3rem); }
.mosaique > li:nth-child(6n+5) { grid-column: 5 / 8; margin-top: clamp(4rem, 10vw, 10rem); }
.mosaique > li:nth-child(6n+6) { grid-column: 8 / 13; margin-top: calc(clamp(2rem, 6vw, 6rem) * -1); }
@media (max-width: 800px) {
	.mosaique { grid-template-columns: 1fr 1fr; column-gap: 14px; row-gap: 2.5rem; }
	.mosaique > li:nth-child(n) { grid-column: auto; margin-top: 0; }
	.mosaique > li:nth-child(3n+1) { grid-column: 1 / 3; }
	.mosaique > li:nth-child(3n+3) { margin-top: 2.5rem; }
}
.carte { display: block; text-decoration: none; }
.carte:hover { color: inherit; }
.carte-photos { display: block; position: relative; background: var(--ligne); overflow: hidden; aspect-ratio: 2 / 3; }
.carte-photos img { width: 100%; height: 100%; object-fit: cover; }
.carte-seconde { position: absolute; inset: 0; opacity: 0; transition: opacity .45s; }
.carte:hover .carte-seconde, .carte:focus-visible .carte-seconde { opacity: 1; }
.carte-nom { display: block; font-family: var(--titre); font-size: var(--t-m); line-height: 1.1; margin-top: .75rem; }
.carte:hover .carte-nom { text-decoration: underline dashed var(--fil) 2px; text-underline-offset: .18em; }
.carte-prix { display: block; margin-top: .1rem; }
.carte-prix .woocommerce-Price-amount { font-weight: 400; }
.carte-accroche { display: block; color: var(--encre-douce); font-size: .95rem; line-height: 1.42; margin-top: .45rem; max-width: 34em; }

.familles { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; padding: 0 var(--marge); margin-bottom: clamp(2rem, 4vw, 4rem); font-size: 1rem; }
.familles a { text-decoration: none; }
.familles a:hover, .familles a[aria-current] { text-decoration: underline dashed var(--fil) 2px; text-underline-offset: .32em; color: inherit; }

.renvoi { margin-top: var(--respire); padding: clamp(3rem, 7vw, 7rem) var(--marge); background: var(--papier); border-top: 1.5px dashed var(--fil); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); align-items: end; }
.renvoi-titre { grid-column: 1 / 9; font-family: var(--titre); font-size: var(--t-l); line-height: 1.04; margin: 0; }
.renvoi p:last-child { grid-column: 10 / 13; margin: 0; }
@media (max-width: 800px) { .renvoi { display: block; } .renvoi-titre { margin-bottom: 1.5rem; } }

/* Fiche produit */
.woocommerce-notices-wrapper { padding: 0 var(--marge); }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; background: var(--papier); border-left: 3px solid var(--fil); padding: 1rem 1.2rem; margin: 1rem 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .8rem 2rem; }
.woocommerce-message .button, .woocommerce-info .button { padding: .7em 1.2em; font-size: .92rem; order: 2; }
.woocommerce-error li { margin: 0; }

.produit { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); padding: clamp(1.5rem, 3vw, 3rem) var(--marge) 0; align-items: start; }
.produit-photos { grid-column: 1 / 8; grid-row: 1; display: grid; grid-template-columns: 1fr 1fr; gap: var(--gout); align-items: start; }
.produit-photo img { width: 100%; }
.produit-photo-1 { grid-column: 1 / 3; }
.produit-photo-3 { margin-top: clamp(3rem, 8vw, 8rem); }
.produit-fiche { grid-column: 9 / 13; grid-row: 1; position: sticky; top: 1.5rem; padding-bottom: 2rem; }
.produit-retour { margin-bottom: 2.4rem; font-size: .95rem; }
.produit-retour a { text-decoration: none; }
.produit-retour a::before { content: "← "; }
.produit-retour a:hover { text-decoration: underline dashed var(--fil) 1.5px; text-underline-offset: .28em; }
.produit-nom { font-size: clamp(2.6rem, 5vw, 5rem); line-height: 1; margin-bottom: .35rem; }
.produit-prix { font-size: 1.25rem; margin-bottom: 1rem; }
.produit-accroche { font-family: var(--titre); font-size: var(--t-s); line-height: 1.26; margin-bottom: 1.8rem; }
.produit-accroche p { margin: 0; }
.produit form.cart { margin: 0 0 1.6rem; }
.produit form.cart .variations { width: 100%; border-collapse: collapse; margin-bottom: 1.1rem; }
.produit form.cart .variations th, .produit form.cart .variations td { display: block; text-align: left; padding: 0; }
.produit form.cart .variations th label { font-weight: 400; display: block; margin-bottom: .55rem; }
.produit form.cart .quantity { display: none; }
.produit .single_add_to_cart_button { width: 100%; }
.produit .single_variation_wrap .woocommerce-variation { margin-bottom: .6rem; }
.tailles { display: grid; grid-template-columns: repeat(8, 1fr); border-top: 1px solid var(--encre); border-left: 1px solid var(--encre); }
.tailles button { background: none; border: 0; border-right: 1px solid var(--encre); border-bottom: 1px solid var(--encre); font: 400 1rem/1 var(--texte); padding: .85em 0; cursor: pointer; color: inherit; }
.tailles button:hover { background: var(--papier); }
.tailles button[aria-pressed="true"] { background: var(--encre); color: var(--papier); }
.tailles button:disabled { color: #a49b8f; text-decoration: line-through; cursor: not-allowed; }
@media (max-width: 420px) { .tailles { grid-template-columns: repeat(4, 1fr); } }
.select-masque { position: absolute !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.produit-essai { margin-bottom: 2rem; }
.produit-essai span { display: block; font-size: .95rem; color: var(--encre-douce); margin-top: .5rem; }
.produit-plis { border-top: 1px solid var(--ligne); }
.produit-plis details { border-bottom: 1px solid var(--ligne); }
.produit-plis summary { padding: .85rem 0; cursor: pointer; list-style: none; display: flex; justify-content: space-between; }
.produit-plis summary::-webkit-details-marker { display: none; }
.produit-plis summary::after { content: "+"; font-family: var(--titre); font-size: 1.4rem; line-height: 1; color: var(--fil); }
.produit-plis details[open] summary::after { content: "–"; }
.produit-plis details p { font-size: .97rem; line-height: 1.5; }
.produit-recit { grid-column: 1 / 8; grid-row: 2; padding-top: clamp(3rem, 7vw, 7rem); max-width: 42em; }
.produit-recit p:first-child { font-family: var(--titre); font-size: clamp(1.35rem, 1.9vw, 1.75rem); line-height: 1.28; margin-bottom: 1em; }
@media (max-width: 900px) {
	.produit { display: block; }
	.produit-photos { margin: 0 calc(var(--marge) * -1); gap: 8px; }
	.produit-fiche { position: static; padding-top: 1.5rem; }
	.produit-retour { margin-bottom: 1rem; }
	.produit-recit { padding-top: 2.5rem; }
}
.produit-suite { padding: var(--respire) var(--marge) 0; }
.produit-suite h2 { font-size: var(--t-m); margin-bottom: 1.6rem; }
.produit-suite + .produit-suite { padding-top: clamp(3rem, 6vw, 6rem); }
.produit-suite:last-of-type { padding-bottom: var(--respire); }
.rangee { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gout); }
.rangee .carte-nom { font-size: var(--t-s); }
@media (max-width: 800px) { .rangee { grid-template-columns: 1fr 1fr; } }

/* Pages de texte */
.texte, .wp-block-group.texte { padding: 0 var(--marge) var(--respire); }
.texte > * { max-width: 42rem; margin-left: calc((100% + var(--gout)) / 12 * 5); }
.texte h2 { font-size: var(--t-m); margin-top: 2.2em; margin-bottom: .5em; }
.texte h3 { font-size: var(--t-s); margin-top: 1.6em; }
.texte > h2:first-child { margin-top: 0; }
.texte ul, .texte ol { padding-left: 1.2em; margin-bottom: 1em; }
.texte li { margin-bottom: .35em; }
@media (max-width: 800px) { .texte > * { margin-left: 0; } }

table { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums lining-nums; }
th, td, .wp-block-table th, .wp-block-table td { text-align: left; padding: .6em .8em .6em 0; border: 0; border-bottom: 1px solid var(--ligne); }
thead th, .wp-block-table thead th { border-bottom: 1.5px dashed var(--fil); font-weight: 600; }
.wp-block-table { overflow-x: auto; margin: 1.5rem 0; }
.wp-block-table thead { border-bottom: 0; }

/* Page atelier : photos et texte qui se répondent */
.bloc { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); padding: 0 var(--marge) var(--respire); align-items: start; }
.bloc h2 { font-size: var(--t-m); }
.bloc .bloc-texte { grid-row: 1; }
.bloc figure { grid-row: 1; }
.bloc figure img { width: 100%; }
.bloc figcaption { font-size: .92rem; color: var(--encre-douce); margin-top: .6rem; }
.bloc-a .bloc-texte { grid-column: 1 / 6; }
.bloc-a figure { grid-column: 7 / 13; }
.bloc-b .bloc-texte { grid-column: 8 / 13; }
.bloc-b figure { grid-column: 1 / 7; }
.bloc-c .bloc-texte { grid-column: 5 / 11; }
.bloc-c figure { grid-column: 1 / 4; margin-top: 4rem; }
.bloc-d .bloc-texte { grid-column: 2 / 7; }
.bloc-d figure { grid-column: 8 / 12; margin-top: -5rem; }
@media (max-width: 800px) { .bloc { display: block; } .bloc figure { margin: 0 0 1.6rem; } }
.pleine-page { margin: 0 0 var(--respire); }
.pleine-page img { width: 100%; max-height: 88vh; object-fit: cover; }
.bloc-tarifs { padding: 0 var(--marge) var(--respire); }
.tarifs { list-style: none; padding: 0; border-top: 1.5px dashed var(--fil); }
.tarifs li { display: flex; justify-content: space-between; gap: 2rem; padding: .85rem 0; border-bottom: 1px solid var(--ligne); }

/* Questions */
.questions { padding: 0 var(--marge) var(--respire); }
.questions details { border-bottom: 1px solid var(--ligne); max-width: none; }
.questions details:first-child { border-top: 1.5px dashed var(--fil); }
.questions summary { font-family: var(--titre); font-size: var(--t-s); line-height: 1.2; padding: 1.1rem 2.5rem 1.1rem 0; cursor: pointer; list-style: none; position: relative; }
.questions summary::-webkit-details-marker { display: none; }
.questions summary::after { content: "+"; position: absolute; right: 0; top: .9rem; color: var(--fil); font-size: 1.6rem; }
.questions details[open] summary::after { content: "–"; }
.questions details > p { max-width: 44rem; }

/* Rendez-vous */
.rdv-page { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); padding: 0 var(--marge) var(--respire); align-items: start; }
.rdv-page .rdv-cote { grid-column: 1 / 5; position: sticky; top: 1.5rem; }
.rdv-page .rdv-corps { grid-column: 6 / 13; }
.rdv-page figure { margin-bottom: 1.4rem; }
@media (max-width: 800px) { .rdv-page { display: block; } .rdv-page .rdv-cote { position: static; margin-bottom: 2.5rem; } }

.rdv-ligne { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gout); }
@media (max-width: 600px) { .rdv-ligne { grid-template-columns: 1fr; gap: 0; } }
label { display: block; margin-bottom: .35rem; }
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], textarea, select {
	width: 100%;
	background: var(--papier);
	border: 0;
	border-bottom: 1.5px solid var(--encre);
	padding: .72em .7em;
	font: inherit;
	color: inherit;
	border-radius: 0;
	appearance: none;
}
select { background-image: linear-gradient(45deg, transparent 50%, var(--encre) 50%), linear-gradient(135deg, var(--encre) 50%, transparent 50%); background-position: right 1em top 55%, right .65em top 55%; background-size: .35em .35em; background-repeat: no-repeat; padding-right: 2em; }
input:focus, textarea:focus, select:focus { outline: 0; border-bottom-color: var(--fil); box-shadow: 0 1.5px 0 var(--fil); }
::placeholder { color: #8a8177; opacity: 1; }
.rdv-piege { position: absolute; left: -9999px; }
.rdv-robes { border: 0; padding: 0; margin: 0 0 1.4rem; }
.rdv-robes legend { padding: 0; margin-bottom: .7rem; }
.rdv-robes { display: flex; flex-wrap: wrap; gap: .45rem; }
.rdv-robes legend { flex: 0 0 100%; }
.rdv-robes label { margin: 0; cursor: pointer; }
.rdv-robes input { position: absolute; opacity: 0; }
.rdv-robes span { display: block; padding: .42em .85em; border: 1px dashed var(--encre); font-family: var(--titre); font-size: 1.15rem; line-height: 1.2; }
.rdv-robes label:hover span { background: var(--papier); }
.rdv-robes input:checked + span { background: var(--encre); color: var(--papier); border-color: var(--encre); }
.rdv-robes input:focus-visible + span { outline: 2px solid var(--fil); outline-offset: 2px; }
.rdv-accord label { display: flex; gap: .7rem; font-size: .95rem; align-items: flex-start; }
.rdv-accord input { margin-top: .3em; accent-color: var(--fil); flex: none; }
.rdv-merci { background: var(--papier); padding: clamp(1.5rem, 4vw, 3rem); border: 1.5px dashed var(--fil); }
.rdv-merci-titre { font-family: var(--titre); font-size: var(--t-l); line-height: 1.05; margin-bottom: .4em; }
.rdv-erreur { border-left: 3px solid var(--fil); background: var(--papier); padding: .9rem 1.1rem; }

/* Journal */
.journal-grand { list-style: none; padding: 0 var(--marge) var(--respire); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); row-gap: clamp(3rem, 6vw, 6rem); }
.journal-grand a { display: block; text-decoration: none; }
.journal-grand li:nth-child(3n+1) { grid-column: 1 / 8; }
.journal-grand li:nth-child(3n+2) { grid-column: 9 / 13; margin-top: 6rem; }
.journal-grand li:nth-child(3n+3) { grid-column: 3 / 9; }
.journal-photo { display: block; margin-bottom: 1rem; }
.journal-photo img { width: 100%; }
.journal-grand .journal-resume { display: block; margin-top: .5rem; max-width: 36em; }
@media (max-width: 800px) { .journal-grand { display: block; } .journal-grand li { margin-bottom: 3rem; } .journal-grand li:nth-child(n) { margin-top: 0; } }

.article-tete { padding: clamp(2.5rem, 7vw, 7rem) var(--marge) clamp(2rem, 4vw, 4rem); }
.article-tete h1 { font-size: var(--t-xl); line-height: .98; max-width: 11em; }
.article-resume { font-family: var(--titre); font-size: var(--t-m); line-height: 1.18; max-width: 22em; margin-left: calc((100% + var(--gout)) / 12 * 5); }
.article-photo { margin: 0 var(--marge) clamp(3rem, 6vw, 6rem); }
.article-photo img { width: 100%; }
.article-corps { padding: 0 var(--marge); }
.article-corps > * { max-width: 40rem; margin-left: calc((100% + var(--gout)) / 12 * 5); }
.article-corps h2 { font-size: var(--t-m); margin-top: 1.8em; }
.article-fin { padding: 2rem var(--marge) var(--respire); margin: 2rem 0 0 calc((100% - 2 * var(--marge) + var(--gout)) / 12 * 5); color: var(--encre-douce); font-size: .95rem; }
@media (max-width: 800px) { .article-resume, .article-corps > *, .article-fin { margin-left: 0; } }

/* Panier, commande, compte */
.vue-panier .principal, .vue-commande .principal, .vue-mon-compte .principal { padding-bottom: var(--respire); }
div.woocommerce { padding: 0 var(--marge); }
.woocommerce form .form-row { margin: 0 0 1.1rem; padding: 0; }
.woocommerce form .form-row label { font-size: .96rem; }
.woocommerce-invalid input { border-bottom-color: var(--fil); }
.required { color: var(--fil); text-decoration: none; }
.optional { color: var(--encre-douce); }
.woocommerce-breadcrumb { display: none; }
.shop_table { font-variant-numeric: lining-nums; }
.shop_table .product-thumbnail img { width: 84px; }
.shop_table .product-name a { font-family: var(--titre); font-size: var(--t-s); text-decoration: none; }
.shop_table .product-remove a { text-decoration: none; color: var(--fil); font-size: 1.5rem; line-height: 1; }
.shop_table .quantity input { width: 4em; text-align: center; }
.shop_table td.actions { border: 0; padding-top: 1.2rem; text-align: right; }
.shop_table .coupon { display: inline-flex; gap: .6rem; float: left; align-items: stretch; }
.shop_table .coupon label { display: none; }
.shop_table .coupon input { width: 12em; }
.shop_table button[name="update_cart"] { background: none; color: var(--encre); outline: 0; padding: .9em 0; font-weight: 400; text-decoration: underline dashed var(--fil) 1.5px; text-underline-offset: .28em; }
.shop_table button[name="update_cart"]:hover { background: none; color: var(--fil); }
.cart-collaterals { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); margin-top: 3rem; }
.cart_totals { grid-column: 8 / 13; }
.cart_totals h2 { font-size: var(--t-m); }
.wc-proceed-to-checkout { margin-top: 1.5rem; }
.wc-proceed-to-checkout .button { width: 100%; }
.panier-note { color: var(--encre-douce); max-width: 32em; font-size: .95rem; margin-top: 1rem; }
.woocommerce-shipping-methods { list-style: none; padding: 0; }
.woocommerce-shipping-methods label { display: inline; }
form.checkout { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); align-items: start; }
#customer_details { grid-column: 1 / 7; }
#order_review_heading { grid-column: 8 / 13; grid-row: 1; font-size: var(--t-m); }
#order_review { grid-column: 8 / 13; grid-row: 2; }
#customer_details h3, .woocommerce-billing-fields h3 { font-size: var(--t-m); }
.woocommerce-checkout-review-order-table .product-quantity { font-weight: 400; }
.wc_payment_methods { list-style: none; padding: 0; margin: 1.6rem 0; border-top: 1.5px dashed var(--fil); }
.wc_payment_method { padding: .9rem 0; border-bottom: 1px solid var(--ligne); }
.wc_payment_method label { display: inline; font-weight: 600; margin-left: .35rem; }
.payment_box p { margin: .5rem 0 0; font-size: .95rem; color: var(--encre-douce); }
#place_order { width: 100%; margin-top: 1rem; }
.woocommerce-terms-and-conditions-wrapper { font-size: .95rem; }
.woocommerce-form-coupon-toggle .woocommerce-info { display: block; }
.woocommerce-form__label-for-checkbox { display: flex; gap: .55rem; align-items: flex-start; }
.woocommerce-form__label-for-checkbox input { margin-top: .32em; accent-color: var(--fil); }
@media (max-width: 800px) {
	form.checkout, .cart-collaterals { display: block; }
	.shop_table.cart thead { display: none; }
	.shop_table.cart tr.cart_item { display: grid; grid-template-columns: 70px 1fr auto; gap: .4rem .8rem; padding: 1rem 0; border-bottom: 1px solid var(--ligne); }
	.shop_table.cart tr.cart_item td { border: 0; padding: 0; }
	.shop_table.cart .product-remove { grid-column: 3; grid-row: 1; text-align: right; }
	.shop_table.cart .product-thumbnail { grid-column: 1; grid-row: 1 / 4; }
	.shop_table.cart .product-name { grid-column: 2; grid-row: 1; }
	.shop_table.cart .product-price { display: none; }
	.shop_table.cart .product-quantity { grid-column: 2; grid-row: 2; }
	.shop_table.cart .product-subtotal { grid-column: 2; grid-row: 3; }
	.shop_table .coupon { float: none; display: flex; margin-bottom: 1rem; }
	.shop_table .coupon input { flex: 1; width: auto; }
	.shop_table td.actions { display: block; }
}
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; margin-bottom: 2rem; }
.woocommerce-MyAccount-navigation a { text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { text-decoration: underline dashed var(--fil) 2px; text-underline-offset: .32em; }
.u-columns.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); }
.u-columns.col2-set h2 { font-size: var(--t-m); }
@media (max-width: 800px) { .u-columns.col2-set { grid-template-columns: 1fr; } }
.page-titre-woo { padding: clamp(2.5rem, 7vw, 7rem) var(--marge) clamp(2rem, 4vw, 4rem); margin: 0; font-size: var(--t-xl); line-height: .98; }

/* Pied */
.pied { background: var(--encre); color: var(--papier); padding: clamp(3rem, 6vw, 6rem) var(--marge) 1.5rem; position: relative; z-index: 2; }
.pied a { text-decoration: none; }
.pied a:hover { color: var(--papier); text-decoration: underline dashed var(--fil) 1.5px; text-underline-offset: .28em; }
.pied-haut { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); row-gap: 2.5rem; margin-bottom: clamp(3rem, 7vw, 7rem); }
.pied-adresse { grid-column: 1 / 6; font-size: 1.15rem; line-height: 1.4; }
.pied-adresse p:last-child { margin: 0; }
.pied-nav { grid-column: 7 / 10; }
.pied-legal { grid-column: 10 / 13; }
.pied ul { list-style: none; padding: 0; }
.pied li { margin-bottom: .3rem; }
.pied-logo { display: block; }
.pied-logo svg { width: 100%; }
.pied-fin { margin: 1.5rem 0 0; font-size: .9rem; opacity: .72; }
@media (max-width: 800px) {
	.pied-adresse { grid-column: 1 / 13; }
	.pied-nav { grid-column: 1 / 7; }
	.pied-legal { grid-column: 7 / 13; }
}

/* Le fil qui traverse les pages */
.principal { position: relative; }
.fil-trace { position: absolute; left: 0; top: 0; pointer-events: none; z-index: 0; overflow: visible; }
.principal > *:not(.fil-trace) { position: relative; z-index: 1; }
.principal > .a-nuit { z-index: 2; }

/* Blocs */
.wp-block-image img { height: auto; }
.wp-element-caption { font-size: .92rem; color: var(--encre-douce); margin-top: .6rem; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.pagination, .navigation.pagination, .woocommerce-pagination { padding: 2rem var(--marge); }
.page-numbers { list-style: none; display: flex; gap: 1rem; padding: 0; }

/* Une robe, ça sort */
.a-dehors { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto auto 1fr; column-gap: var(--gout); padding: 0 var(--marge) var(--respire); align-items: start; }
.a-dehors .a-dehors-1 { grid-column: 1 / 7; grid-row: 1 / 4; }
.a-dehors .a-dehors-2 { grid-column: 9 / 13; grid-row: 3; margin-top: 2.5rem; }
.a-dehors .a-dehors-titre { grid-column: 8 / 13; grid-row: 1; margin-top: clamp(1rem, 5vw, 5rem); }
.a-dehors .a-dehors-texte { grid-column: 8 / 12; grid-row: 2; }
.a-dehors img { width: 100%; }
@media (max-width: 800px) {
	.a-dehors { display: block; }
	.a-dehors .a-dehors-titre { margin-top: 2.5rem; }
	.a-dehors .a-dehors-2 { width: 74%; margin-left: auto; }
}

/* Listes de tarifs à côté du texte */
.bloc-liste .tarifs { grid-column: 7 / 13; grid-row: 1; }
.bloc-liste .bloc-texte { grid-column: 1 / 6; }
.tarifs span:last-child { white-space: nowrap; }

/* Tunnel de vente */
.produit form.cart .quantity { display: none !important; }
.cart_totals th, .woocommerce-checkout-review-order-table tfoot th { white-space: nowrap; width: 8em; }
form.checkout { grid-template-rows: auto 1fr; }
#customer_details { grid-row: 1 / span 2; }
#order_review_heading { margin-bottom: 1rem; }
#ship-to-different-address { font: 400 1rem/1.4 var(--texte); margin: 1rem 0; }
#ship-to-different-address label { display: flex; gap: .55rem; }
.woocommerce-additional-fields h3 { font-size: var(--t-s); margin-top: 1.5rem; }
div.woocommerce h2, .woocommerce-order h2 { font-size: var(--t-m); margin-top: 1.6em; }
.woocommerce-thankyou-order-details { list-style: none; padding: 0; margin: 1.5rem 0; display: flex; flex-wrap: wrap; gap: 1rem 3rem; }
.woocommerce-thankyou-order-received { font-family: var(--titre); font-size: var(--t-m); line-height: 1.15; }
.woocommerce-customer-details address { font-style: normal; }
#customer_details #ship-to-different-address { font: 400 1rem/1.4 var(--texte); letter-spacing: 0; }
