/* CP Atelier — affichage public. Typographie héritée du thème ; quelques variables à ajuster. */
.cp {
	--cp-accent: #b8873a;
	--cp-ink: inherit;
	--cp-soft: #7d746b;
	--cp-line: #e7e1d8;
	--cp-paper: #faf7f1;
	--cp-max: 1200px;
	--cp-gap: clamp(20px, 3vw, 40px);
	max-width: var(--cp-max);
	margin: 0 auto;
	padding: clamp(24px, 5vw, 64px) 16px;
}
.cp img { max-width: 100%; height: auto; display: block; }

/* En-tête */
.cp-head { margin-bottom: var(--cp-gap); }
.cp-ariane { font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; color: var(--cp-soft); margin-bottom: .8rem; }
.cp-ariane a { color: inherit; text-decoration: none; }
.cp-ariane a:hover { color: var(--cp-accent); }
.cp-title { margin: 0; line-height: 1.12; font-size: clamp(1.9rem, 4vw, 2.8rem); font-weight: 400; }
.cp-ligne { margin: .6rem 0 0; color: var(--cp-soft); font-style: italic; font-size: 1.05rem; }
.cp-intro-rubrique { max-width: 46em; margin-top: 1rem; color: var(--cp-soft); }

/* Cartel */
.cp-cartel { border-top: 1px solid var(--cp-accent); padding-top: 1.1rem; margin-bottom: 1.6rem; font-size: .95rem; }
.cp-cartel dl { margin: 0; display: grid; gap: .55rem; }
.cp-cartel-row { display: grid; grid-template-columns: 9.5em 1fr; gap: 1em; }
.cp-cartel dt { color: var(--cp-soft); font-size: .78rem; letter-spacing: .07em; text-transform: uppercase; padding-top: .18em; }
.cp-cartel dd { margin: 0; }
.cp-logo { max-width: 140px; max-height: 70px; width: auto; object-fit: contain; margin-bottom: 1rem; }
.cp-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.2rem; }
.cp-btn { display: inline-block; padding: .55em 1.1em; border: 1px solid var(--cp-accent); color: inherit; text-decoration: none; font-size: .9rem; border-radius: 2px; transition: background .15s, color .15s; }
.cp-btn:hover { background: var(--cp-accent); color: #fff; }

.cp-texte > :first-child { margin-top: 0; }
.cp-texte { line-height: 1.7; }

/* Fiche : image principale + colonne cartel */
.cp-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--cp-gap); align-items: start; }
.cp-layout.cp-o-portrait { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.cp-layout.no-image { grid-template-columns: minmax(0, 46em); }
.cp-main-img { margin: 0; }
.cp-main-img figcaption, .cp-galerie figcaption { text-align: left; font-size: .85rem; color: var(--cp-soft); font-style: italic; margin-top: .5rem; }
.cp-type-livre .cp-main-img img { box-shadow: 0 12px 30px rgba(40, 30, 20, .16); }
.cp-side { position: sticky; top: 2rem; }

/* Carnet : intro puis planches */
.cp-intro { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--cp-gap); margin-bottom: calc(var(--cp-gap) * 1.5); }
.cp-planches { display: flex; flex-direction: column; gap: calc(var(--cp-gap) * 1.6); }
.cp-suite { margin-top: calc(var(--cp-gap) * 1.6); }
.cp-planche { margin: 0; display: grid; gap: var(--cp-gap); align-items: center; }
.cp-planche.has-texte { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
.cp-planche.has-texte.cp-o-portrait { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.cp-planche.has-texte.is-alt .cp-planche-img { order: 2; }
.cp-planche:not(.has-texte) .cp-planche-img { max-width: 900px; margin: 0 auto; }
.cp-planche.cp-o-portrait:not(.has-texte) .cp-planche-img { max-width: 620px; }
.cp-planche-titre { font-size: 1.3rem; font-weight: 400; font-style: italic; margin: 0 0 .7rem; }
.cp-planche-texte { line-height: 1.7; text-align: left; font-size: 1rem; }
.cp-planche-texte p:last-child { margin-bottom: 0; }

/* Galerie sans texte : colonnes façon carnet */
.cp-galerie { columns: 3 260px; column-gap: var(--cp-gap); }
.cp-galerie-item { break-inside: avoid; margin: 0 0 var(--cp-gap); }
/* Galerie en grille régulière (réglage par défaut) */
body:not(.cpt-gal-mosaique) .cp-galerie { columns: auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: calc(var(--cp-gap) * .6); }
body:not(.cpt-gal-mosaique) .cp-galerie-item { margin: 0; }
body:not(.cpt-gal-mosaique) .cp-galerie-item .cp-zoom { aspect-ratio: var(--cpt-ratio-galerie); overflow: hidden; background: var(--cp-paper); }
body:not(.cpt-gal-mosaique) .cp-galerie-item img { width: 100%; height: 100%; object-fit: var(--cpt-fit); object-position: var(--cpt-pos); transition: transform .5s ease; }
body:not(.cpt-gal-mosaique) .cp-galerie-item .cp-zoom:hover img { transform: scale(1.03); }

/* Cartes de rubrique */
.cp-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: calc(var(--cp-gap) * 1.1) var(--cp-gap); align-items: start; }
.cp-cards--row { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.cp-card { margin: 0; }
.cp-card a { color: inherit; text-decoration: none; display: block; }
/* Vignettes : format fixe par rubrique (Mon site › Apparence › Vignettes) */
:root {
	--cpt-fit: cover;
	--cpt-pos: 50% 50%;
	--cpt-ratio-livre: 3 / 4;
	--cpt-ratio-carnet: 4 / 3;
	--cpt-ratio-commande: 4 / 3;
	--cpt-ratio-actualite: 4 / 3;
	--cpt-ratio-mixte: 4 / 3;
	--cpt-ratio-galerie: 4 / 3;
}
.cp-card { --cpt-ratio: var(--cpt-ratio-actualite); }
.cp-card--livre { --cpt-ratio: var(--cpt-ratio-livre); }
.cp-card--carnet { --cpt-ratio: var(--cpt-ratio-carnet); }
.cp-card--commande { --cpt-ratio: var(--cpt-ratio-commande); }
.cp-card--presse { --cpt-ratio: var(--cpp-ratio); }
.cp-cards--row .cp-card { --cpt-ratio: var(--cpt-ratio-mixte); }
.cp-card-img { position: relative; overflow: hidden; background: var(--cp-paper); aspect-ratio: var(--cpt-ratio); }
.cp-card-img img { width: 100%; height: 100%; object-fit: var(--cpt-fit); object-position: var(--cpt-pos); transition: transform .5s ease; }
.cp-card a:hover .cp-card-img img { transform: scale(1.03); }
.cp-card-noimg { display: block; position: absolute; inset: 0; }
.cp-card-body { padding-top: .8rem; }
.cp-card-title { font-size: 1.15rem; font-weight: 400; margin: 0; line-height: 1.3; }
.cp-card a:hover .cp-card-title { color: var(--cp-accent); }
.cp-card-ligne { margin: .3rem 0 0; font-size: .88rem; color: var(--cp-soft); }
.cp-rub-presse .cp-cards { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }

/* Vignettes de la presse : format fixe, cadrées en haut, noir et blanc + voile de couleur.
   Variables réglables dans Mon site › Apparence › Couleurs › Vignettes de la presse. */
:root {
	--cpp-ratio: 3 / 4;
	--cpp-pos: 0%;
	--cpp-filter: grayscale(1) contrast(1.06);
	--cpp-overlay: #b8873a;
	--cpp-opacity: 38;
	--cpp-blend: multiply;
	--cpp-hover: 0;
}
.cp-card--presse .cp-card-img { isolation: isolate; }
.cp-card--presse .cp-card-img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% var(--cpp-pos); filter: var(--cpp-filter); transition: transform .5s ease, filter .45s ease; }
.cp-card--presse .cp-card-img::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: var(--cpp-overlay);
	mix-blend-mode: var(--cpp-blend);
	opacity: calc(var(--cpp-opacity) / 100);
	transition: opacity .45s ease;
}
.cp-card--presse a:hover .cp-card-img::after, .cp-card--presse a:focus-visible .cp-card-img::after { opacity: calc(var(--cpp-hover) / 100); }
.cp-card--presse a:hover .cp-card-img img { filter: none; }

.cp-subnav { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin-top: 1.4rem; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; }
.cp-subnav a { color: var(--cp-soft); text-decoration: none; padding-bottom: .2em; border-bottom: 1px solid transparent; }
.cp-subnav a[aria-current], .cp-subnav a:hover { color: inherit; border-color: var(--cp-accent); }
.cp-pagination { margin-top: var(--cp-gap); }
.cp-vide { color: var(--cp-soft); font-style: italic; }
.cp-derniers { padding: 0; }

/* Zoom */
.cp-zoom { display: block; cursor: zoom-in; }

/* Lightbox */
.cp-lb { position: fixed; inset: 0; z-index: 99999; background: rgba(22, 19, 16, .94); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .2s; }
.cp-lb.is-open { opacity: 1; }
.cp-lb figure { margin: 0; max-width: 92vw; max-height: 90vh; display: flex; flex-direction: column; align-items: center; }
.cp-lb img { max-width: 92vw; max-height: 82vh; width: auto; height: auto; box-shadow: 0 10px 40px rgba(0,0,0,.4); }
.cp-lb figcaption { color: #e9e2d6; font-style: italic; margin-top: .9rem; text-align: center; font-size: .95rem; }
.cp-lb button { position: absolute; background: none !important; box-shadow: none !important; border: 0 !important; color: #fff; font-size: 2.4rem; line-height: 1; padding: .4em .5em; cursor: pointer; opacity: .75; }
.cp-lb button:hover, .cp-lb button:focus-visible { opacity: 1; }
.cp-lb-close { top: .3em; right: .3em; }
.cp-lb-prev { left: .2em; top: 50%; transform: translateY(-50%); }
.cp-lb-next { right: .2em; top: 50%; transform: translateY(-50%); }
.cp-lb-count { position: absolute; bottom: 1em; left: 0; right: 0; text-align: center; color: #b5ab9c; font-size: .8rem; letter-spacing: .1em; }

@media (max-width: 860px) {
	.cp-layout, .cp-layout.cp-o-portrait, .cp-intro, .cp-planche.has-texte, .cp-planche.has-texte.cp-o-portrait { grid-template-columns: 1fr; }
	.cp-planche.has-texte.is-alt .cp-planche-img { order: 0; }
	.cp-side { position: static; }
	.cp-cartel-row { grid-template-columns: 8em 1fr; }
	.cp-lb-prev, .cp-lb-next { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.cp-card-img img, .cp-lb { transition: none; }
}
