/**
 * Styles globaux — skeditions.fr (refonte 2026, maquette Bookoe) : boutons, titres de
 * section, cartes livres, en-tête, pied de page, sections de l'accueil.
 * Chargée partout (mu-plugin bp-skeditions-accueil). Variables : poser-systeme-design.php.
 * Miroir local : skeditions.fr/refonte/bricks-child/assets/ — modifier localement puis pousser.
 */

/* NB : les conteneurs Bricks (container, block) sont en colonne par défaut : toute classe
   posée sur l'un d'eux et censée aligner en ligne doit le dire (flex-direction: row). */

/* ---------- boutons ---------- */
.sk-btn,
.brxe-button.sk-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 56px; padding: 0 var(--sp-32); border-radius: var(--radius-md);
	background: var(--color-primary); color: var(--color-white); border: 2px solid var(--color-primary);
	font: 700 var(--fs-18)/1 var(--font-heading); text-decoration: none; cursor: pointer;
	box-shadow: var(--shadow-accent); transition: background-color .2s, color .2s, border-color .2s;
}
.sk-btn:hover, .sk-btn:focus-visible { background: var(--color-primary-hover); border-color: var(--color-primary-hover); color: var(--color-white); }
.sk-btn--contour, .brxe-button.sk-btn--contour { background: transparent; color: var(--color-primary); box-shadow: none; }
.sk-btn--contour:hover { background: var(--color-primary); color: var(--color-white); }
.sk-btn--clair, .brxe-button.sk-btn--clair { background: var(--color-white); color: var(--color-dark); border-color: var(--color-white); box-shadow: none; }
.sk-btn--clair:hover { background: var(--color-primary-soft); border-color: var(--color-primary-soft); color: var(--color-primary); }

.sk-surtitre { margin: 0; font: 700 var(--fs-16)/1.3 var(--font-heading); letter-spacing: .06em; text-transform: uppercase; color: var(--color-accent-text); }

/* ---------- sections et titres de section ---------- */
.sk-section { padding-block: var(--sp-80); }
.sk-section--teinte { background: var(--color-grey-3); }
.sk-section--rose { background: var(--color-primary-soft); }
/* Accueil, rangée des auteurs : un stylo plume sur une page manuscrite (Adobe Stock 860156099, licence d'Olivier) sous
   un voile rose de la section, plus léger à droite où se trouve le stylo, plus dense à gauche sous le titre. */
.sk-section--rose:has(.sk-auteurs--carrousel) {
	background: linear-gradient(90deg, rgba(245, 237, 238, .92) 0%, rgba(245, 237, 238, .86) 50%, rgba(245, 237, 238, .74) 100%), url('fond-auteurs-2400.webp') center / cover no-repeat, var(--color-primary-soft);
}
/* Le nombre de livres, gris clair ailleurs, se perdait sur l'écriture du fond : un gris plus soutenu ici. */
.sk-section--rose:has(.sk-auteurs--carrousel) .sk-auteur__nb { color: #45485E; }
@media (max-width: 991px) {
	.sk-section--rose:has(.sk-auteurs--carrousel) { background: linear-gradient(rgba(245, 237, 238, .88), rgba(245, 237, 238, .88)), url('fond-auteurs-1200.webp') 70% center / cover no-repeat, var(--color-primary-soft); }
}
.sk-section--sombre { background: var(--color-dark); color: #D7D8E0; }
.sk-section--sombre :is(h1, h2, h3) { color: var(--color-white); }
.sk-entete-section { display: flex; flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--sp-16) var(--sp-32); width: 100%; margin-bottom: var(--sp-40); }
.sk-entete-section > * { width: auto; }
.sk-entete-section > :first-child { flex: 1 1 auto; }
.sk-entete-section :is(h2) { margin: 0; }
.sk-entete-section p { margin: var(--sp-8) 0 0; color: var(--color-text-muted); max-width: 60ch; }
.sk-voir-tout { font: 700 var(--fs-16)/1.2 var(--font-heading); color: var(--color-primary); text-decoration: none; white-space: nowrap; }
.sk-voir-tout:hover { text-decoration: underline; }

/* ---------- cartes livres (toutes les boucles WooCommerce marquées .sk-grille) ---------- */
.sk-grille { width: 100%; }
.sk-grille ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: var(--sp-40) var(--sp-32); margin: 0; padding: 0; list-style: none; }
.sk-grille ul.products::before, .sk-grille ul.products::after { content: none; }
.sk-grille ul.products li.product { width: auto; margin: 0; float: none; display: flex; flex-direction: column; gap: 6px; position: relative; }
.sk-grille ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-flow: row wrap; align-items: center; gap: 6px 8px; text-decoration: none; }
/* Une ligne par élément, sauf le prix et les étoiles d'avis, calées sur le bord droit de la couverture
   (elles passent dessous, toujours à droite, si la place manque). */
.sk-grille ul.products li.product a.woocommerce-LoopProduct-link > * { flex: 0 0 100%; }
.sk-grille ul.products li.product a.woocommerce-LoopProduct-link > .price { flex: 0 1 auto; order: 1; }
.sk-grille ul.products li.product a.woocommerce-LoopProduct-link > .star-rating { flex: none; order: 2; margin-left: auto !important; }
.sk-grille ul.products li.product img { aspect-ratio: 1 / 1.41; object-fit: cover; border-radius: var(--radius-md); width: 100%; margin: 0 0 var(--sp-8); box-shadow: var(--shadow-faint); transition: transform .25s, box-shadow .25s; }
.sk-grille ul.products li.product:hover img { transform: translateY(-4px); box-shadow: var(--shadow-soft); }
.sk-grille .woocommerce-loop-product__title { font: 700 var(--fs-18)/1.3 var(--font-heading); color: var(--color-dark); margin: 0; padding: 0; }
.sk-grille .sk-carte__auteur { font-size: var(--fs-14); color: var(--color-text-muted); }
.sk-grille ul.products li.product .star-rating { font-size: 11px; margin: 0; }
/* Étoiles de note, partout : les pleines au rouge de la boutique, les vides en gris clair (le gris foncé par défaut
   ne se distinguait presque pas). */
.star-rating::before { color: rgba(17, 20, 45, .18) !important; }
/* Étoiles vides et pleines au même point de départ : sans left, les vides suivaient l'alignement du texte
   (centré dans la note de la vue liste) et apparaissaient décalées derrière les pleines. */
.star-rating::before, .star-rating span::before { left: 0; top: 0; }
/* Le texte de lecture d'écran (« Noté 5,00 sur 5… ») est poussé sous les étoiles ; avec une boîte un peu plus haute,
   son sommet dépassait en un petit trait. Transparent : les lecteurs d'écran le lisent toujours. */
.star-rating span { color: transparent; }
.star-rating span::before, p.stars a, p.stars a::before { color: var(--color-primary) !important; }
.sk-grille ul.products li.product .price { font: 700 var(--fs-18)/1.2 var(--font-heading); color: var(--color-primary); margin: 0; }
.sk-grille ul.products li.product .price del { font-size: var(--fs-14); color: var(--color-text-muted); font-weight: 600; }
.sk-grille ul.products li.product .price ins { text-decoration: none; }
/* badges : à gauche sur la couverture ; la promo passe à droite pour ne pas s'y superposer */
.sk-grille ul.products li.product .sk-badge { position: absolute; top: 10px; left: 10px; z-index: 2; padding: 4px 12px; border-radius: var(--radius-md); background: var(--color-dark); color: var(--color-white); font: 700 var(--fs-14)/1.4 var(--font-body); }
.sk-grille ul.products li.product .sk-badge--precommander { background: var(--color-primary); }
.sk-grille ul.products li.product .onsale {
	position: absolute; top: 10px; left: auto; right: 10px; z-index: 2; margin: 0; min-height: 0; min-width: 0;
	background: var(--color-accent); color: var(--color-dark); border-radius: var(--radius-md);
	padding: 4px 12px; font: 700 var(--fs-14)/1.4 var(--font-body);
}
.sk-grille ul.products li.product .button { display: none; }
.sk-prix-des { font-size: .78em; font-weight: 600; color: var(--color-text-muted); }

/* Cartes livres (rangées de l'accueil, boutique, catégories, auteurs, séries, recherche) : au survol, l'auteur s'affiche en haut à gauche de la
   couverture, à gauche de la pastille passée à droite, et le titre en bas sur un voile. Seul le prix reste dessous.
   Sans survol (écran tactile), titre et auteur restent sous la couverture. */
@media (hover: hover) {
	.sk-grille ul.products li.product .sk-badge { left: auto; right: 10px; }
	.sk-grille ul.products li.product .sk-badge ~ .onsale { top: 48px; }
	.sk-grille .woocommerce-loop-product__title {
		position: absolute; top: 0; left: 0; right: 0; z-index: 1; aspect-ratio: 1 / 1.41;
		display: flex; align-items: flex-end; padding: var(--sp-16); border-radius: var(--radius-md);
		background: linear-gradient(to top, rgba(17, 20, 45, .92), rgba(17, 20, 45, .6) 40%, rgba(17, 20, 45, 0) 68%);
		color: var(--color-white); font-size: var(--fs-16); opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s;
	}
	.sk-grille .sk-carte__auteur {
		position: absolute; top: 10px; left: 10px; z-index: 3; max-width: calc(100% - 20px); padding: 4px 10px;
		border-radius: var(--radius-md); background: rgba(255, 255, 255, .95); color: var(--color-dark);
		font: 600 13px/1.35 var(--font-body); opacity: 0; pointer-events: none; transition: opacity .25s;
	}
	.sk-grille .sk-badge ~ .sk-carte__auteur { max-width: calc(100% - 128px); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; } /* plusieurs auteurs : deux lignes au plus */
	.sk-grille li.product:is(:hover, :focus-within) .woocommerce-loop-product__title { opacity: 1; transform: translateY(-4px); }
	.sk-grille li.product:is(:hover, :focus-within) .sk-carte__auteur { opacity: 1; }
}
@media (hover: hover) and (prefers-reduced-motion: reduce) {
	.sk-grille li.product:is(:hover, :focus-within) .woocommerce-loop-product__title { transform: none; }
}

/* Rangée en carrousel (Nouveautés de l'accueil) : la liste défile, cinq couvertures visibles sur ordinateur.
   Flèches : [sk_fleches_carrousel] et assets/carrousel.js. */
.sk-entete-section__actions { display: flex; flex-direction: row; align-items: center; gap: var(--sp-24); width: auto; }
.sk-grille--carrousel ul.products {
	display: flex !important; column-gap: var(--sp-32); overflow-x: auto; overscroll-behavior-x: contain; padding: 6px 2px;
	scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; /* pas de barre : flèches, molette ou doigt */
}
.sk-grille--carrousel ul.products::-webkit-scrollbar { display: none; }
/* En boucle et défilement automatique (carrousel.js) : pas d'aimantation, elle retiendrait le glissement continu ;
   pas de défilement doux en CSS, chaque image du glissement le relancerait (les flèches le demandent elles-mêmes). */
.sk-carrousel--boucle .sk-grille--carrousel ul.products { scroll-snap-type: none; scroll-behavior: auto; }
.sk-grille--carrousel ul.products li.product { display: flex !important; flex: 0 0 calc((100% - 4 * var(--sp-32)) / 5); scroll-snap-align: start; }
@media (prefers-reduced-motion: reduce) {
	.sk-grille--carrousel ul.products { scroll-behavior: auto; }
}

/* ---------- en-tête ---------- */
.sk-entete { background: var(--color-white); border-bottom: 1px solid var(--color-grey-2); }
.sk-entete__haut { display: flex; flex-direction: row; align-items: center; gap: var(--sp-32); padding-block: var(--sp-20); }
.sk-logo img { height: 64px; width: auto; max-width: none; display: block; }
/* Les blocs Bricks (block, shortcode, search) ont width:100% par défaut : dans une rangée,
   le logo tombait à 0 px et les actions prenaient 1 361 px (mesuré). */
.sk-entete__haut > * { width: auto; flex: none; }
.sk-recherche form { display: flex; align-items: stretch; width: 100%; }
.sk-recherche input[type="search"] {
	flex: 1; height: 56px; padding: 0 var(--sp-24); border: 2px solid var(--color-grey-2); border-right: 0;
	border-radius: var(--radius-md) 0 0 var(--radius-md); font: 400 var(--fs-16)/1 var(--font-body); color: var(--color-dark); background: var(--color-white);
}
.sk-recherche input[type="search"]::placeholder { color: var(--color-text-muted); }
.sk-recherche input[type="search"]:focus { outline: none; border-color: var(--color-primary); }
.sk-recherche button { height: 56px; padding: 0 var(--sp-20); border: 2px solid var(--color-grey-2); border-left: 0; border-radius: 0 var(--radius-md) var(--radius-md) 0; background: var(--color-white); color: var(--color-primary); cursor: pointer; }
.sk-recherche input[type="search"]:focus + button { border-color: var(--color-primary); }
.sk-entete__actions > * { width: auto; }
.sk-entete__actions { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: var(--sp-12); flex: none; }
.sk-compte { display: inline-flex; align-items: center; gap: 10px; height: 56px; padding: 0 var(--sp-20); border-radius: var(--radius-md); background: var(--color-primary-soft); color: var(--color-primary); font: 700 var(--fs-16)/1 var(--font-heading); text-decoration: none; }
.sk-compte:hover { background: var(--color-primary); color: var(--color-white); }
.sk-panier .mini-cart-link { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: var(--radius-md); background: var(--color-primary); color: var(--color-white); font-size: 22px; position: relative; }
.sk-panier .cart-count { background: var(--color-dark); color: var(--color-white); box-shadow: 0 0 0 2px var(--color-white); font: 700 12px/20px var(--font-body); min-width: 20px; height: 20px; border-radius: 10px; top: -6px; right: -6px; }

/* Barre d'un seul tenant : bouton « Menu » + recherche, comme sur la maquette. Le méga menu s'ouvre sous
   l'en-tête (mega-menu.css). En dessous de 992 px : menu burger de Bricks, recherche seule. */
.sk-entete__haut > .sk-nav-recherche { flex: 1 1 auto; min-width: 0; }
.sk-nav-recherche { display: flex; flex-direction: row; align-items: stretch; max-width: 940px; margin-inline: auto; }
.sk-nav-recherche > * { width: auto; }
.sk-nav-recherche > .sk-recherche { flex: 1 1 auto; min-width: 0; max-width: none; margin: 0; }
.sk-menu-bouton { display: none; align-items: center; gap: 12px; height: 56px; padding: 0 var(--sp-20); border: 2px solid var(--color-grey-2); border-right: 0; border-radius: var(--radius-md) 0 0 var(--radius-md); background: var(--color-white); color: var(--color-primary); font: 700 var(--fs-16)/1 var(--font-heading); white-space: nowrap; cursor: pointer; }
.sk-menu-bouton:hover, .sk-menu-bouton[aria-expanded="true"] { background: var(--color-primary-soft); }
.sk-menu-bouton:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px; }
.sk-menu-bouton__chevron { transition: transform .2s; }
.sk-menu-bouton[aria-expanded="true"] .sk-menu-bouton__chevron { transform: rotate(180deg); }
@media (min-width: 992px) {
	.sk-menu-bouton { display: inline-flex; }
	.sk-nav-recherche > .sk-recherche input[type="search"] { border-radius: 0; }
	.sk-nav-recherche > .sk-menu { position: static; flex: none; width: 0; }
	.sk-nav-recherche .sk-menu .bricks-nav-menu-wrapper { display: none; }
}
/* Les intertitres du méga menu n'ont pas de sens dans le burger, où ils seraient des liens morts. */
.sk-menu .bricks-mobile-menu .sk-groupe { display: none; }

/* menu mobile (panneau Bricks) : la carte façon Weba est dans mega-menu.css (04/11/2026). */
.sk-menu .bricks-mobile-menu .sub-menu { box-shadow: none; border-radius: 0; min-width: 0; background: transparent; }

/* ---------- messages WooCommerce (partout : ajout au panier, erreurs, invitations) ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-8) var(--sp-16); margin: 0; padding: var(--sp-12) var(--sp-20); border: 0; border-left: 4px solid var(--color-primary); border-radius: var(--radius-sm); background: var(--color-primary-soft); color: var(--color-dark); font-size: var(--fs-16); list-style: none; }
.woocommerce-error { border-left-color: var(--color-accent-text); background: #FFF1EC; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button), .woocommerce-error a:not(.button) { color: var(--color-primary); font-weight: 600; }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button { display: inline-flex; align-items: center; min-height: 40px; padding: 0 var(--sp-16); border: 0; border-radius: var(--radius-sm); background: var(--color-primary); color: var(--color-white); font: 700 var(--fs-14)/1.2 var(--font-heading); text-decoration: none; }
.woocommerce-message .button:hover, .woocommerce-info .button:hover, .woocommerce-error .button:hover { background: var(--color-primary-hover); color: var(--color-white); }
/* « Annuler ? » après le retrait d'un article : un bouton contour aux couleurs du site (Bricks le peignait en vert, texte
   bordeaux, illisible). Et pas de cadre noir : WooCommerce donne le focus à l'alerte pour les lecteurs d'écran. */
.woocommerce-message a.restore-item { display: inline-flex; align-items: center; min-height: 40px; padding: 0 var(--sp-16); border: 2px solid var(--color-primary); border-radius: var(--radius-sm); background: var(--color-white) !important; color: var(--color-primary) !important; font: 700 var(--fs-14)/1.2 var(--font-heading); text-decoration: none; }
.woocommerce-message a.restore-item:hover, .woocommerce-message a.restore-item:focus-visible { background: var(--color-primary) !important; color: var(--color-white) !important; }
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus { outline: none; }

/* ---------- fil d'Ariane (fiches et boutique) ---------- */
.sk-ariane { font-size: var(--fs-14); color: var(--color-text-muted); }
.sk-ariane .navigation { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.sk-ariane a { color: var(--color-text-muted); text-decoration: none; }
.sk-ariane a:hover { color: var(--color-primary); }
.sk-ariane .separator { color: var(--color-grey-1); }

/* ---------- pied de page ---------- */
.sk-pied { background: var(--color-dark); color: #C9CBD6; padding-block: var(--sp-80) 0; }
.sk-pied a { color: #C9CBD6; text-decoration: none; }
.sk-pied a:hover { color: var(--color-white); }
.sk-pied__grille { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: var(--sp-48); width: 100%; }
.sk-logo--clair img { height: 72px; width: auto; filter: brightness(0) invert(1); } /* le logo est noir : passé en blanc sur le fond sombre */
.sk-pied__baseline { margin: var(--sp-20) 0; max-width: 34ch; line-height: 1.6; }
.sk-pied h2, .sk-pied .sk-pied__titre { font: 700 var(--fs-20)/1.2 var(--font-heading); color: var(--color-white); margin: 0 0 var(--sp-20); }
.sk-pied .bricks-nav-menu { display: flex; flex-direction: column; gap: 12px; }
.sk-pied .bricks-nav-menu > li { margin: 0; }
.sk-pied ul.bricks-nav-menu { margin: 0; padding: 0; list-style: none; } /* la colonne Nos livres ([sk_pied_genres]) n'a pas l'enveloppe du menu Bricks qui les retire */
.sk-pied .bricks-nav-menu a { display: block; font: 400 var(--fs-16)/1.4 var(--font-body); color: #C9CBD6; padding: 0; }
.sk-pied .bricks-nav-menu a:hover { color: var(--color-white); }
.sk-pied__contact { font-style: normal; line-height: 1.8; }
.sk-pied__reseaux { display: flex; gap: var(--sp-12); margin-top: var(--sp-8); }
.sk-pied__reseaux a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-md); background: rgba(255, 255, 255, .08); color: var(--color-white); font-size: 20px; }
.sk-pied__reseaux a:hover { background: var(--color-primary); }
.sk-pied__bas { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; gap: var(--sp-12); width: 100%; margin-top: var(--sp-64); padding-block: var(--sp-24); border-top: 1px solid rgba(255, 255, 255, .1); font-size: var(--fs-14); }
.sk-pied__bas > * { width: auto; }
.sk-pied__bas p { margin: 0; }
.sk-coeur { color: var(--color-accent); }
/* Crédit de l'agence, même base que s-law.be : le cœur bat (rouge de la marque éclairci, lisible sur le pied sombre). */
.sk-credit { display: inline-flex; align-items: center; gap: 5px; }
.sk-credit__coeur { flex: none; color: color-mix(in srgb, var(--color-primary) 40%, #ff3b4f); transform-origin: center; animation: sk-battement 1.5s ease-in-out infinite; }
@keyframes sk-battement { 0% { transform: scale(1); } 10% { transform: scale(1.28); } 20% { transform: scale(1); } 30% { transform: scale(1.22); } 42%, 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .sk-credit__coeur { animation: none; } }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

/* ---------- boutique (gabarit « Boutique » : boutique, catégories, auteurs, séries, recherche) ---------- */
.sk-boutique { padding-block: var(--sp-24) var(--sp-80); }
.sk-boutique__grille { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: var(--sp-40); width: 100%; margin-top: var(--sp-24); align-items: start; }
.sk-boutique__contenu { display: flex; flex-direction: column; gap: var(--sp-24); min-width: 0; }
.sk-boutique__entete { display: flex; flex-direction: row; align-items: center; gap: var(--sp-24); }
.sk-boutique__entete > * { width: auto; }
.sk-boutique__portrait.sk-portrait { width: 120px; height: 120px; }
.sk-boutique__titre { margin: 0; font-size: var(--fs-40); }
.sk-boutique__intro { margin-top: var(--sp-12); color: var(--color-text-muted); max-width: 80ch; line-height: 1.6; }
.sk-boutique__intro p { margin: 0 0 var(--sp-8); }
.sk-boutique__barre { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-12) var(--sp-24); padding: var(--sp-12) var(--sp-20); background: var(--color-white); border-radius: var(--radius-md); box-shadow: var(--shadow-faint); }
.sk-boutique__barre > * { width: auto; }
.sk-boutique__compte { color: var(--color-text-muted); font-weight: 600; }
.sk-boutique__tri select, .sk-boutique__tri { min-width: 220px; }
/* Même habillage que les boutons grille / liste. Le <select> porte lui-même la classe : « .sk-boutique__tri select »
   ne le visait pas, et Bricks lui laissait une bordure fine sans arrondi. */
.sk-boutique__barre select.sk-boutique__tri { height: 44px; padding: 0 var(--sp-40) 0 var(--sp-16); border: 2px solid var(--color-grey-2); border-radius: var(--radius-sm); background-color: var(--color-white); color: var(--color-dark); font: 600 var(--fs-16)/1 var(--font-body); cursor: pointer; transition: border-color .2s; }
.sk-boutique__barre select.sk-boutique__tri:hover, .sk-boutique__barre select.sk-boutique__tri:focus-visible { border-color: var(--color-primary); }
.sk-boutique__actifs:empty { display: none; }
.sk-boutique__actifs { display: flex; flex-wrap: wrap; gap: var(--sp-8); list-style: none; margin: 0; padding: 0; }
.sk-boutique__actifs li { margin: 0; }
.sk-boutique__actifs button { background: var(--color-primary-soft); color: var(--color-primary); border: 0; border-radius: var(--radius-full); padding: 6px 14px; font: 600 var(--fs-14)/1.3 var(--font-body); cursor: pointer; }
.sk-boutique__actifs button:hover { background: var(--color-primary); color: var(--color-white); }
.sk-grille--boutique ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* boucle Bricks : le <ul> et les <li> sont des blocs, à remettre d'aplomb sur les cartes des autres rangées */
.sk-grille--boutique ul.products { width: 100%; }
.sk-grille--boutique ul.products li.product { align-items: stretch; min-width: 0; }
.sk-grille--boutique li.product > .brxe-shortcode { display: flex; flex-direction: column; gap: 6px; width: 100%; }

/* Grille ou liste ([sk_vue_boutique]) : deux boutons ronds à côté du tri. */
.sk-vue { display: flex; gap: var(--sp-8); }
.sk-vue__btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 2px solid var(--color-grey-2); border-radius: var(--radius-sm); background: var(--color-white); color: var(--color-text-muted); cursor: pointer; transition: border-color .2s, color .2s, background-color .2s; }
.sk-vue__btn:hover, .sk-vue__btn:focus-visible { border-color: var(--color-primary); color: var(--color-primary); }
.sk-vue__btn[aria-pressed="true"] { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-white); }

/* ---------- Vue liste, d'après la maquette Bookoe (03 Livres en liste) ----------
   [sk_carte_livre] sort deux cartes : celle de WooCommerce (grille) et .sk-cl (liste) ; la vue choisie affiche l'une ou
   l'autre. Maquette : carte blanche 14 px d'arrondi, couverture 229 × 321, titre Cairo 30, résumé 14/24, prix Cairo 28,
   « Écrit par » en libellés gris 14 et valeurs 18, bouton 229 × 60 avec icône panier, note en haut à droite. */
.sk-cl { display: none; }
.sk-vue-liste .sk-grille--boutique ul.products { grid-template-columns: minmax(0, 1fr) !important; gap: var(--sp-24); }
.sk-vue-liste .sk-grille--boutique ul.products li.product > .brxe-shortcode > :not(.sk-cl) { display: none !important; }
.sk-vue-liste .sk-cl {
	display: grid; grid-template-columns: 229px minmax(0, 1fr); gap: var(--sp-40); align-items: start;
	padding: 20px 23px; background: var(--color-white); border: 1px solid #F0F0F0; border-radius: 14px; box-shadow: var(--shadow-faint);
}
.sk-cl__couv { position: relative; display: block; }
.sk-cl__couv img { display: block; width: 229px; height: auto; aspect-ratio: 229 / 321; object-fit: cover; border-radius: 20px; box-shadow: var(--shadow-soft); transition: transform .25s; }
.sk-cl__couv:hover img { transform: translateY(-3px); }
.sk-cl__corps { display: flex; flex-direction: column; min-width: 0; min-height: 321px; padding-top: 10px; }
.sk-cl__tete { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--sp-24); }
.sk-cl__titre { margin: 0; font: 700 30px/1.2 var(--font-heading); color: var(--color-dark); }
.sk-cl__titre a { color: inherit; text-decoration: none; }
.sk-cl__titre a:hover { color: var(--color-primary); }
.sk-cl__genres { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 10px 0 0; font: 400 var(--fs-14)/1.4 var(--font-body); color: var(--color-primary); text-transform: uppercase; letter-spacing: .02em; }
.sk-grille ul.products li.product .sk-cl__genres .sk-badge { position: static; padding: 3px 10px; border-radius: var(--radius-md); background: var(--color-dark); color: var(--color-white); font: 700 12px/1.4 var(--font-body); text-transform: none; letter-spacing: 0; }
.sk-grille ul.products li.product .sk-cl__genres .sk-badge--precommander { background: var(--color-primary); }
.sk-cl__note { flex: none; display: flex; flex-direction: column; align-items: center; gap: 2px; margin-top: 7px; } /* haut des étoiles au haut des lettres du titre (Cairo 30, interligne 1,2) */
.sk-grille ul.products li.product .sk-cl__note .star-rating { font-size: 20px; width: 5.4em; height: 1.2em; line-height: 1.2; margin: 0; text-align: left; } /* hauteur à la taille des étoiles : sinon leur bas était rogné */
.sk-cl__note p { margin: 0; display: flex; align-items: baseline; gap: 8px; }
.sk-cl__note > p strong { font: 700 24px/1.2 var(--font-heading); color: var(--color-dark); } /* > p : pas le « 5,00 » caché dans les étoiles */
.sk-cl__note a { font-size: var(--fs-14); color: var(--color-primary); text-decoration: none; }
.sk-cl__resume { margin: 20px 0 0; font: 400 var(--fs-14)/24px var(--font-body); color: rgba(0, 0, 0, .7); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.sk-cl__prix { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-top: 18px; font: 700 28px/1.2 var(--font-heading); color: var(--color-primary); }
.sk-cl__prix del { order: 2; font: 600 20px/1 var(--font-heading); color: #AAAAAA; } /* l'ancien prix après le nouveau, comme la maquette */
.sk-cl__prix ins { text-decoration: none; }
.sk-cl__prix .sk-prix-des { font: 600 var(--fs-16)/1 var(--font-body); color: var(--color-text-muted); }
.sk-cl__pied { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-24); margin-top: auto; padding-top: var(--sp-24); }
.sk-cl__infos { flex: 1 1 auto; min-width: 0; display: flex; gap: var(--sp-32); margin: 0; }
.sk-cl__infos div { min-width: 0; flex: 0 1 auto; }
.sk-cl__infos div:first-child { flex: 0 1 200px; max-width: 200px; } /* auteurs : deux lignes plutôt que de pousser « Parution » à la ligne */
.sk-cl__infos div:last-child { flex: none; } /* l'année ne se coupe pas ; auteur et série passent sur deux lignes s'il le faut */
.sk-cl__infos dt { margin: 0 0 6px; font: 400 var(--fs-14)/1.3 var(--font-body); color: #AAAAAA; }
.sk-cl__infos dd { margin: 0; font: 600 18px/1.35 var(--font-body); color: var(--color-dark); }
/* Sélecteur long : la règle des cartes en grille (.sk-grille … li.product .button) cache les boutons. */
.sk-grille ul.products li.product .sk-cl__achat.button, .sk-cl__achat.button {
	flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-width: 229px; height: 60px; padding: 0 var(--sp-24);
	border: 0; border-radius: 14px; background: var(--color-primary); color: var(--color-white); font: 700 18px/1 var(--font-heading); text-decoration: none; box-shadow: 0 4px 10px rgba(129, 30, 39, .18); transition: background-color .2s, transform .2s, box-shadow .2s;
}
.sk-cl__achat.button::before { content: ""; width: 24px; height: 24px; background: currentColor; transition: transform .25s; -webkit-mask: var(--sk-icone-panier) center / contain no-repeat; mask: var(--sk-icone-panier) center / contain no-repeat; }
/* Survol : le bouton se soulève, l'ombre s'étend, l'icône panier avance d'un cran. */
.sk-grille ul.products li.product .sk-cl__achat.button:hover, .sk-grille ul.products li.product .sk-cl__achat.button:focus-visible { background: var(--color-primary-hover); color: var(--color-white); transform: translateY(-2px); box-shadow: 0 12px 24px rgba(129, 30, 39, .32); }
.sk-cl__achat.button:hover::before, .sk-cl__achat.button:focus-visible::before { transform: translateX(3px) rotate(-8deg); }
.sk-grille ul.products li.product .sk-cl__achat.button:active { transform: translateY(0); box-shadow: 0 4px 10px rgba(129, 30, 39, .25); }
@media (prefers-reduced-motion: reduce) { .sk-cl__achat.button, .sk-cl__achat.button::before { transition: background-color .2s; } .sk-cl__achat.button:hover, .sk-cl__achat.button:hover::before { transform: none; } }
.sk-cl__achat.loading { opacity: .6; }
.sk-cl .added_to_cart { display: none; }
:root { --sk-icone-panier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h2l2.4 11.2a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 2-1.5L21 7H6.2' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='10' cy='20' r='1.6'/%3E%3Ccircle cx='17' cy='20' r='1.6'/%3E%3C/svg%3E"); }
@media (max-width: 1199px) {
	.sk-vue-liste .sk-cl { grid-template-columns: 170px minmax(0, 1fr); gap: var(--sp-24); }
	.sk-cl__couv img { width: 170px; }
	.sk-cl__corps { min-height: 238px; }
	.sk-cl__titre { font-size: 24px; }
	.sk-cl__pied { flex-wrap: wrap; }
}
@media (max-width: 767px) {
	.sk-vue-liste .sk-cl { grid-template-columns: 96px minmax(0, 1fr); gap: var(--sp-16); padding: var(--sp-16); }
	.sk-cl__couv img { width: 96px; border-radius: 10px; }
	.sk-cl__corps { min-height: 0; padding-top: 0; }
	.sk-cl__tete { flex-direction: column; gap: var(--sp-8); }
	.sk-cl__note { flex-direction: row; gap: var(--sp-8); }
	.sk-grille ul.products li.product .sk-cl__note .star-rating { font-size: 14px; }
	.sk-cl__note > p strong { font-size: 16px; }
	.sk-cl__titre { font-size: 18px; }
	.sk-cl__resume { -webkit-line-clamp: 2; line-clamp: 2; margin-top: var(--sp-8); }
	.sk-cl__prix { margin-top: var(--sp-8); font-size: 22px; }
	.sk-cl__infos { flex-wrap: wrap; gap: var(--sp-8) var(--sp-24); }
	.sk-cl__infos dd { font-size: var(--fs-14); }
	.sk-cl__pied { flex-direction: column; align-items: stretch; padding-top: var(--sp-16); }
	.sk-cl__achat.button { min-width: 0; width: 100%; height: 48px; font-size: 16px; }
}
.sk-boutique__vide { grid-column: 1 / -1; padding: var(--sp-40); background: var(--color-primary-soft); border-radius: var(--radius-md); color: var(--color-dark); margin: 0; }
.sk-boutique .woocommerce-info, .sk-boutique .woocommerce-no-products-found { padding: var(--sp-40); background: var(--color-primary-soft); border-radius: var(--radius-md); color: var(--color-dark); border: 0; }

/* pagination */
/* Pied de la liste : le nombre de livres à gauche, la pagination à droite (au-dessus l'un de l'autre sur téléphone). */
.sk-boutique__pied { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-16) var(--sp-24); margin-top: var(--sp-16); }
.sk-boutique__pied > * { width: auto; }
.sk-boutique__pied .sk-pagination { margin-top: 0; }
@media (max-width: 767px) { .sk-boutique__pied { flex-direction: column; } }
.sk-pagination { margin-top: var(--sp-16); }
.sk-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--sp-8); margin: 0; padding: 0; list-style: none; }
.sk-pagination .page-numbers li { margin: 0; }
.sk-pagination .page-numbers a, .sk-pagination .page-numbers span { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; height: 48px; padding: 0 var(--sp-12); border-radius: var(--radius-md); background: var(--color-white); color: var(--color-dark); font: 700 var(--fs-16)/1 var(--font-heading); text-decoration: none; box-shadow: var(--shadow-faint); }
.sk-pagination .page-numbers a:hover { color: var(--color-primary); }
.sk-pagination .page-numbers .current { background: var(--color-primary); color: var(--color-white); }
.sk-pagination .page-numbers .dots { background: transparent; box-shadow: none; }

/* colonne des filtres */
.sk-filtres { display: flex; flex-direction: column; gap: var(--sp-16); }
.sk-filtres__haut { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: var(--sp-12); }
.sk-filtres__haut > * { width: auto; }
.sk-filtres__titre { margin: 0; font-size: var(--fs-40); }
.sk-filtres__bouton { display: none; }
.sk-filtres__corps { display: flex; flex-direction: column; gap: var(--sp-16); }
.sk-filtre { background: var(--color-white); border-radius: var(--radius-md); box-shadow: var(--shadow-faint); padding: var(--sp-20) var(--sp-24); }
.sk-filtre__titre { margin: 0 0 var(--sp-12); padding-bottom: var(--sp-12); border-bottom: 1px solid var(--color-grey-3); font-size: var(--fs-20); }
.sk-filtre ul { margin: 0; padding: 0; list-style: none; }
.sk-filtre li { margin: 0; }
.sk-filtre label { display: flex; align-items: center; gap: 10px; padding: 5px 0; color: var(--color-dark); cursor: pointer; line-height: 1.3; }
.sk-filtre label:hover { color: var(--color-primary); }
.sk-filtre input[type="checkbox"] { flex: none; width: 18px; height: 18px; accent-color: var(--color-primary); }
/* Pleine largeur : sinon la liste se resserre sur ses libellés et l'ascenseur colle au texte au lieu du bord du cadre. */
.sk-filtre .brxe-filter-checkbox { width: 100%; align-self: stretch; }
.sk-filtre--long .brxe-filter-checkbox { max-height: 260px; overflow-y: auto; }
/* Une case cochée dans un groupe : Bricks ne compte plus que le chevauchement avec elle
   (« Contemporaine (1) » alors que la cocher ajoute 161 livres). On masque ces nombres trompeurs. */
.sk-filtre .brxe-filter-checkbox:has(input:checked) .brx-option-count { display: none; }
.sk-filtre .brx-option-text { display: flex; flex-wrap: wrap; gap: 4px; }
.sk-filtre .brx-option-count { color: var(--color-text-muted); font-size: var(--fs-14); }
.sk-filtre--prix .value-wrap .value::after { content: " €"; }
/* inutile de filtrer par auteur sur la page d'un auteur, ni par série sur celle d'une série */
.tax-product_brand .sk-filtre--auteur, .tax-serie .sk-filtre--serie { display: none; }
.sk-filtres__reset { width: 100%; min-height: 48px; justify-content: center; border: 2px solid var(--color-grey-2); border-radius: var(--radius-md); background: transparent; color: var(--color-dark); font: 700 var(--fs-16)/1 var(--font-heading); cursor: pointer; }
.sk-filtres__reset:hover { border-color: var(--color-primary); color: var(--color-primary); }

/* ---------- pages ordinaires (gabarit « Page ») ---------- */
.sk-page { padding-block: var(--sp-48) var(--sp-80); }
.sk-page__titre { margin: 0 0 var(--sp-32); }
.sk-page__contenu { width: 100%; max-width: 80ch; font-size: var(--fs-16); line-height: 1.7; }
.sk-page__contenu :is(h2, h3, h4, h5, h6) { margin: var(--sp-40) 0 var(--sp-12); }
.sk-page__contenu h2 { font-size: var(--fs-28); }
.sk-page__contenu :is(h3, h4, h5, h6) { font-size: var(--fs-20); }
.sk-page__contenu img { max-width: 100%; height: auto; border-radius: var(--radius-md); }
.sk-page__contenu a { color: var(--color-primary); }
.sk-page__contenu, .sk-mesure { overflow-wrap: anywhere; }
/* bandeau de cookies : ni puce vide pour le document désactivé, ni texte collé au bord */
.cmplz-cookiebanner .cmplz-documents li:has(.cmplz-hidden) { display: none; }
/* la page « Nos auteurs » (grille) et les pages WooCommerce prennent toute la largeur */
.sk-page__contenu:has(.sk-auteurs--tous, .woocommerce, .sk-votre-avis, .sk-favoris) { max-width: none; }

/* ---------- pages de contenu (construites dans Bricks) ---------- */
.sk-page__corps { width: 100%; }
.sk-page .sk-ariane { margin-bottom: var(--sp-16); }
.sk-page__intro { font-size: var(--fs-20); color: var(--color-text-muted); margin-bottom: var(--sp-32); }
.sk-page__intro p { margin: 0; }
.sk-mesure { width: 100%; max-width: 80ch; display: flex; flex-direction: column; gap: var(--sp-24); line-height: 1.7; }
.sk-mesure a, .sk-presentation__texte a, .sk-contact__infos a { color: var(--color-primary); }
.sk-carte-page { background: var(--color-white); border-radius: var(--radius-md); box-shadow: var(--shadow-faint); padding: var(--sp-32); }
.sk-carte-page h2 { margin: 0 0 var(--sp-16); font-size: var(--fs-24); }
.sk-encadre { padding: var(--sp-24) var(--sp-32); border-left: 4px solid var(--color-primary); border-radius: var(--radius-md); background: var(--color-primary-soft); width: 100%; }
.sk-encadre h2 { margin: 0 0 var(--sp-12); font-size: var(--fs-24); color: var(--color-primary); }
.sk-encadre p:last-child { margin-bottom: 0; }
/* contact */
.sk-contact { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: var(--sp-32); align-items: start; width: 100%; }
.sk-contact > * { width: 100%; }
.sk-contact__infos { line-height: 1.7; }
.sk-contact__infos a { font-weight: 600; text-decoration: none; }
/* qui sommes-nous */
.sk-presentation { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: var(--sp-48); align-items: start; width: 100%; }
.sk-presentation__photo { width: 100%; position: sticky; top: var(--sp-24); }
.sk-presentation__photo img { width: 100%; height: auto; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
.sk-presentation__texte { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-16); max-width: 80ch; line-height: 1.7; }
/* partenaire */
.sk-partenaire { display: flex; flex-direction: row; align-items: center; gap: var(--sp-16); width: 100%; }
.sk-partenaire > * { width: auto; }
.sk-partenaire__logo img { width: 72px; height: auto; }
.sk-partenaire p { margin: 0; font-weight: 600; }
/* dédicaces : une date par carte, depuis une simple liste à puces */
.sk-dates { width: 100%; }
.sk-dates ul { display: flex; flex-direction: column; gap: var(--sp-12); margin: 0; padding: 0; list-style: none; }
.sk-dates li { margin: 0; padding: var(--sp-16) var(--sp-24); border-left: 4px solid var(--color-primary); border-radius: var(--radius-sm); background: var(--color-white); box-shadow: var(--shadow-faint); line-height: 1.5; }
.sk-dates strong { color: var(--color-primary); font-family: var(--font-heading); }
/* articles */
.sk-articles { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--sp-32); width: 100%; }
.sk-article { background: var(--color-white); border-radius: var(--radius-md); box-shadow: var(--shadow-faint); overflow: hidden; }
.sk-article > a { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; padding-bottom: var(--sp-20); }
.sk-article__image { display: block; width: 100%; height: 220px; object-fit: cover; background: var(--color-primary-soft); margin-bottom: var(--sp-16); }
.sk-article__sur { padding-inline: var(--sp-20); color: var(--color-text-muted); font-size: var(--fs-14); }
.sk-article__titre { margin: 4px 0 var(--sp-8); padding-inline: var(--sp-20); font-size: var(--fs-20); line-height: 1.3; }
.sk-article > a:hover .sk-article__titre { color: var(--color-primary); }
.sk-article__texte { margin: 0; padding-inline: var(--sp-20); color: var(--color-text-muted); font-size: var(--fs-14); line-height: 1.5; }
.sk-article__date { margin: 0; color: var(--color-text-muted); font-size: var(--fs-14); }
.sk-article__une { width: 100%; }
.sk-article__une img { display: block; width: auto; max-width: 100%; height: auto; max-height: 520px; border-radius: var(--radius-md); box-shadow: var(--shadow-soft); }
.sk-articles__vide { padding: var(--sp-32); border-radius: var(--radius-md); background: var(--color-primary-soft); }
/* séries */
.sk-series { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: var(--sp-32) var(--sp-24); width: 100%; }
.sk-serie { display: flex; flex-direction: column; gap: 4px; color: var(--color-dark); text-decoration: none; }
.sk-serie__image { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1.41; object-fit: cover; border-radius: var(--radius-md); box-shadow: var(--shadow-faint); margin-bottom: var(--sp-8); transition: transform .25s; }
.sk-serie:hover .sk-serie__image { transform: translateY(-4px); }
.sk-serie__nom { font: 700 var(--fs-16)/1.3 var(--font-heading); }
.sk-serie:hover .sk-serie__nom { color: var(--color-primary); }
.sk-serie__nb { color: var(--color-text-muted); font-size: var(--fs-14); }
/* 404 */
.sk-erreur .sk-page__corps { align-items: center; text-align: center; gap: var(--sp-16); }
.sk-erreur__recherche { width: 100%; max-width: 560px; }
.sk-erreur__recherche form { display: flex; width: 100%; }
.sk-erreur__recherche input[type="search"] { flex: 1 1 auto; width: 100%; min-height: 52px; padding: 0 var(--sp-16); border: 2px solid var(--color-grey-2); border-radius: var(--radius-md); font: 400 var(--fs-16)/1.4 var(--font-body); }
.sk-erreur__recherche input[type="search"]:focus { border-color: var(--color-primary); outline: none; }
.sk-erreur__liens { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: var(--sp-12); margin-top: var(--sp-16); }
.sk-erreur__liens > * { width: auto; }
.sk-btn--ligne { background: transparent !important; color: var(--color-primary) !important; border: 2px solid var(--color-primary) !important; }
/* formulaire de contact (Gravity Forms) */
:is(.sk-contact, .sk-appel) .gform_wrapper { --gf-color-primary: #811E27; --gf-color-primary-rgb: 129, 30, 39; --gf-color-primary-darker: #6A1820; --gf-ctrl-border-color: var(--color-grey-2); --gf-ctrl-radius: var(--radius-sm); }
:is(.sk-contact, .sk-appel) .gform_wrapper input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"]), :is(.sk-contact, .sk-appel) .gform_wrapper select, :is(.sk-contact, .sk-appel) .gform_wrapper textarea { width: 100%; min-height: 48px; padding: 10px 14px; border: 2px solid var(--color-grey-2); border-radius: var(--radius-sm); font: 400 var(--fs-16)/1.4 var(--font-body); }
:is(.sk-contact, .sk-appel) .gform_wrapper input:focus, :is(.sk-contact, .sk-appel) .gform_wrapper select:focus, :is(.sk-contact, .sk-appel) .gform_wrapper textarea:focus { border-color: var(--color-primary); outline: none; }
:is(.sk-contact, .sk-appel) .gform_wrapper .gfield_label { font-size: var(--fs-14); font-weight: 600; color: var(--color-dark); }
:is(.sk-contact, .sk-appel) .gform_wrapper .gfield_required { color: var(--color-primary); }
:is(.sk-contact, .sk-appel) .gform_wrapper input[type="checkbox"] { accent-color: var(--color-primary); width: 18px; height: 18px; }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_footer input[type="submit"], :is(.sk-contact, .sk-appel) .gform_wrapper .gform_footer button { min-height: 48px; padding: 0 var(--sp-32); border: 0; border-radius: var(--radius-md); background: var(--color-primary); color: var(--color-white); font: 700 var(--fs-16)/1.2 var(--font-heading); cursor: pointer; }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_footer input[type="submit"]:hover { background: var(--color-primary-hover); }
/* Formulaire d'avis de WP Review Slider Pro ([wprevpro_useform]) aux couleurs du site, sur le modèle du formulaire de contact.
   Le greffon charge sa feuille APRÈS la nôtre : chaque sélecteur porte donc .wprevpro_form .wprev_review_form pour la battre en spécificité, sans !important. */
.wprevpro_form .wprev_review_form { font: 400 var(--fs-16)/1.6 var(--font-body); color: var(--color-text); }
.wprevpro_form .wprev_review_form .wprevform-field { margin-bottom: var(--sp-24); }
.wprevpro_form .wprev_review_form .wprevform-field > label { display: inline-block; margin-bottom: 6px; font: 600 var(--fs-14)/1.4 var(--font-body); color: var(--color-dark); }
.wprevpro_form .wprev_review_form .wprevform-field .after { display: block; margin-top: 4px; font-style: normal; font-size: var(--fs-14); color: var(--color-text-muted); }
.wprevpro_form .wprev_review_form .required.symbol:after { color: var(--color-primary); }
.wprevpro_form .wprev_review_form p.wprevpro_required_notice { font-size: var(--fs-14); color: var(--color-text-muted); }
.wprevpro_form .wprev_review_form input[type=text], .wprevpro_form .wprev_review_form input[type=email], .wprevpro_form .wprev_review_form input[type=url], .wprevpro_form .wprev_review_form textarea {
	min-height: 48px; margin: 0; padding: 10px 14px; border: 2px solid var(--color-grey-2); border-radius: var(--radius-sm);
	background: var(--color-white); font: 400 var(--fs-16)/1.4 var(--font-body); color: var(--color-dark);
}
.wprevpro_form .wprev_review_form textarea { height: 10em; }
.wprevpro_form .wprev_review_form input:focus, .wprevpro_form .wprev_review_form textarea:focus { border-color: var(--color-primary); outline: none; }
.wprevpro_form .wprev_review_form input[type=file] { font-size: var(--fs-14); }
.wprevpro_form .wprev_review_form input[type=checkbox] { accent-color: var(--color-primary); width: 18px; height: 18px; vertical-align: middle; }
/* Les étoiles sont des MASQUES SVG posés sur un fond (doré chez le greffon), pas des glyphes : on change le fond et la taille du masque. */
.wprevpro_form .wprev_review_form .wprevpro-rating label { width: 28px; height: 30px; margin-right: 4px; background: var(--color-primary); mask-size: contain; -webkit-mask-size: contain; mask-repeat: no-repeat; -webkit-mask-repeat: no-repeat; }
.wprevpro_form .wprev_review_form .wprevpro-rating:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.wprevpro_form .wprev_review_form .button.btnwprevdefault {
	display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 var(--sp-32);
	border: 2px solid var(--color-primary); border-radius: var(--radius-md); background: var(--color-primary); color: var(--color-white);
	font: 700 var(--fs-16)/1.2 var(--font-heading); text-decoration: none; cursor: pointer; transition: background-color .2s, border-color .2s;
}
.wprevpro_form .wprev_review_form .button.btnwprevdefault:hover, .wprevpro_form .wprev_review_form .button.btnwprevdefault:focus-visible { background: var(--color-primary-hover); border-color: var(--color-primary-hover); color: var(--color-white); }
.wprevpro_form .wprev_review_form .wprevpro_submitsuccess { border: 0; border-radius: var(--radius-sm); background: var(--color-primary-soft); color: var(--color-dark); }
/* Page « Votre avis » ([sk_votre_avis], mu-plugins/bp-skeditions-votre-avis.php) : Google d'abord, le formulaire du site ensuite. */
.sk-votre-avis { display: grid; gap: var(--sp-32); }
/* Sur ordinateur, deux colonnes : Google et les couvertures à gauche (restent visibles au défilement), le formulaire, plus long, à droite. */
.sk-votre-avis__cote { display: grid; gap: var(--sp-32); align-content: start; }
.sk-votre-avis__visuel { margin: 0; text-align: center; }
.sk-votre-avis__visuel .sk-couvertures { --sk-h: 340px; width: 86%; margin-inline: auto; }
.sk-votre-avis__visuel figcaption { position: relative; z-index: 1; margin-top: var(--sp-32); font: 700 var(--fs-16)/1.3 var(--font-heading); color: var(--color-dark); }
/* Toute la colonne de gauche (bloc Google + couvertures) reste collée en haut pendant que le formulaire défile.
   Elle doit tenir dans l'écran, sinon son bas ne serait jamais visible : la largeur des couvertures suit la hauteur
   de la fenêtre (≈ 1,54 px de large par px de hauteur disponible sous le bloc Google, en-tête compris), et
   l'éventail garde ses proportions par aspect-ratio. Sous 800 px de haut, le visuel est retiré. Sur téléphone aussi. */
@media (min-width: 1024px) {
	.sk-votre-avis { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; }
	.sk-votre-avis__cote { position: sticky; top: 140px; }
	.sk-votre-avis__visuel .sk-couvertures { height: auto; aspect-ratio: 1.4; width: min(86%, calc((100vh - 600px) * 1.54)); }
}
@media (min-width: 1024px) and (max-height: 799px) { .sk-votre-avis__visuel { display: none; } }
@media (max-width: 1023px) { .sk-votre-avis__visuel { display: none; } }
.sk-votre-avis__bloc { padding: var(--sp-32); border: 1px solid rgba(17, 20, 45, .10); border-radius: var(--radius-lg); background: var(--color-white); box-shadow: 0 8px 24px rgba(17, 20, 45, .07); }
.sk-votre-avis__bloc--google { background: var(--color-primary-soft); border-color: transparent; box-shadow: none; }
.sk-votre-avis__bloc h2 { margin: 0 0 var(--sp-12); font: 700 var(--fs-24)/1.2 var(--font-heading); color: var(--color-dark); }
.sk-votre-avis__bloc > p { margin: 0 0 var(--sp-20); }
.sk-votre-avis__note { margin-top: var(--sp-12) !important; font-size: var(--fs-14); color: var(--color-text-muted); }
@media (max-width: 767px) { .sk-votre-avis__bloc { padding: var(--sp-24); } }
/* newsletter (AcyMailing) sur le bandeau rouge. AcyMailing imprime ses styles en ligne, par identifiant :
   sans !important, le formulaire reste un cadre blanc à bouton noir. */
.sk-newsletter [id^="acym_fulldiv"] { width: 100%; max-width: none !important; margin: 0 !important; padding: 0 !important; background: transparent !important; color: var(--color-white) !important; text-align: left !important; display: block !important; }
/* Nom et e-mail sur une ligne, puis la case de consentement et le bouton sur la suivante : les champs d'AcyMailing
   et son bouton sont dans deux blocs frères, que display: contents fait entrer dans une seule grille. */
.sk-newsletter [id^="acym_fulldiv"] form { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-16); align-items: center; }
.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__fields { display: contents !important; }
.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__lists { display: none !important; } /* ne porte que la liste cachée, toujours envoyée */
.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__fields > * { width: 100% !important; margin: 0 !important; }
.sk-newsletter [id^="acym_fulldiv"] .onefield input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]) { width: 100% !important; min-height: 48px; margin: 0 !important; padding: 10px 14px; border: 0; border-radius: var(--radius-sm); background: var(--color-white); color: var(--color-dark); font: 400 var(--fs-16)/1.4 var(--font-body); text-align: left; }
.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__termscond, .sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__termscond label { color: var(--color-white) !important; font-size: var(--fs-14); text-align: left; }
.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__termscond a { color: var(--color-white) !important; text-decoration: underline; }
.sk-newsletter [id^="acym_fulldiv"] input[type="checkbox"] { width: 18px; height: 18px; margin-right: 8px; accent-color: var(--color-white); vertical-align: middle; }
/* Case et bouton se rejoignent au milieu : la case calée à droite de sa colonne, le bouton à gauche de la sienne. */
.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__termscond { grid-column: 1; justify-self: end; width: auto !important; }
.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__button { grid-column: 2; justify-self: start; width: auto !important; display: block !important; margin: 0 !important; }
@media (max-width: 767px) {
	.sk-newsletter [id^="acym_fulldiv"] form { grid-template-columns: minmax(0, 1fr); }
	.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__termscond, .sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__button { grid-column: 1; }
	.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__termscond { justify-self: start; }
	.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__button { justify-self: stretch; width: 100% !important; }
	.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__button button { width: 100%; }
}
.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__button button { min-height: 48px; padding: 0 var(--sp-32) !important; border: 0 !important; border-radius: var(--radius-md) !important; background-color: var(--color-white) !important; color: var(--color-primary) !important; font: 700 var(--fs-16)/1.2 var(--font-heading); cursor: pointer; }
.sk-newsletter [id^="acym_fulldiv"] .acym__subscription__form__button button:hover { background-color: var(--color-primary-soft) !important; }

/* ---------- accueil : héros ---------- */
.sk-hero { padding-block: var(--sp-32) var(--sp-40); }
.sk-hero__grille { display: grid; grid-template-columns: minmax(0, 1fr) 384px; gap: var(--sp-24); width: 100%; }
.brxe-block.sk-hero__grille { align-items: stretch; } /* Bricks aligne en haut : le diaporama et la meilleure vente gardent la même hauteur */
.sk-hero__banniere { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; gap: var(--sp-40); background: var(--color-primary-soft); border-radius: var(--radius-xl); padding: var(--sp-64) var(--sp-80); overflow: hidden; min-height: 560px; }
.sk-hero__texte { display: flex; flex-direction: column; gap: var(--sp-20); }
.sk-hero__texte h1 { margin: 0; font-size: var(--fs-60); text-wrap: balance; }
.sk-hero__texte .sk-hero__chapo { font: 600 var(--fs-24)/1.35 var(--font-heading); color: var(--color-dark); margin: 0; }
.sk-hero__texte p { margin: 0; color: var(--color-text-muted); max-width: 52ch; }
.sk-hero__boutons { display: flex; flex-direction: row; flex-wrap: wrap; gap: var(--sp-16); margin-top: var(--sp-8); }

/* Les couvertures en éventail. --sk-h est la hauteur du bloc : 1 ou 2 livres s'agrandissent sans en sortir. */
.sk-couvertures { --sk-h: 420px; position: relative; height: var(--sk-h); }
.sk-couvertures__livre { --sk-x: -50%; --sk-y: -50%; --sk-r: 0deg; --sk-s: 1; position: absolute; top: 50%; left: 50%; width: 46%; transform: translate(var(--sk-x), var(--sk-y)) rotate(var(--sk-r)) scale(var(--sk-s)); transition: transform .35s cubic-bezier(.2, .8, .3, 1); }
.sk-couvertures__livre img { width: 100%; aspect-ratio: 1 / 1.41; object-fit: cover; border-radius: var(--radius-md); box-shadow: 0 24px 40px rgba(17, 20, 45, .25); display: block; transition: box-shadow .35s; }
.sk-couvertures__livre--1 { z-index: 3; }
.sk-couvertures__livre--2 { z-index: 2; --sk-x: -108%; --sk-y: -46%; --sk-r: -8deg; }
.sk-couvertures__livre--3 { z-index: 1; --sk-x: 8%; --sk-y: -46%; --sk-r: 8deg; }
.sk-couvertures--1 .sk-couvertures__livre { width: min(78%, calc(var(--sk-h) * .68)); }
.sk-couvertures--2 .sk-couvertures__livre { width: min(58%, calc(var(--sk-h) * .56)); }
.sk-couvertures--2 .sk-couvertures__livre--1 { z-index: 3; --sk-x: -80%; --sk-y: -50%; --sk-r: -5deg; }
.sk-couvertures--2 .sk-couvertures__livre--2 { --sk-x: -20%; --sk-y: -48%; --sk-r: 5deg; }
/* Au survol : la couverture se redresse et vient devant, avec son infobulle. */
.sk-couvertures__livre::after { content: attr(data-bulle); position: absolute; left: 50%; bottom: 12px; width: max-content; max-width: 88%; padding: 6px 12px; border-radius: 10px; background: var(--color-dark); color: var(--color-white); font: 600 var(--fs-14)/1.25 var(--font-body); text-align: center; opacity: 0; transform: translate(-50%, 6px); transition: opacity .2s, transform .2s; pointer-events: none; }
.sk-couvertures__livre:focus-visible { z-index: 4; --sk-r: 0deg; --sk-s: 1.05; }
.sk-couvertures__livre:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
@media (hover: hover) {
	.sk-couvertures__livre:hover { z-index: 4; --sk-r: 0deg; --sk-s: 1.05; }
	.sk-couvertures__livre:hover img { box-shadow: 0 32px 56px rgba(17, 20, 45, .4); }
	.sk-couvertures__livre:hover::after { opacity: 1; transform: translate(-50%, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.sk-couvertures__livre, .sk-couvertures__livre img, .sk-couvertures__livre::after { transition: none; }
}

.sk-vente { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--sp-12); height: 100%; background: var(--color-primary); color: var(--color-white); border-radius: var(--radius-xl); padding: var(--sp-40) var(--sp-32); }
.sk-vente__titre { margin: 0; font: 700 var(--fs-40)/1.1 var(--font-heading); color: var(--color-white); }
.sk-vente__sous { margin: 0; opacity: .85; }
.sk-vente__couv { flex: 1 1 290px; align-self: stretch; display: flex; align-items: center; justify-content: center; margin-top: var(--sp-16); container-type: size; } /* la couverture occupe la hauteur disponible */
.sk-vente__couv img { flex: none; width: 206px; width: min(100cqw, 70.9cqh); aspect-ratio: 1 / 1.41; object-fit: cover; border-radius: var(--radius-md); box-shadow: 0 20px 34px rgba(0, 0, 0, .3); display: block; }
.sk-vente__livre { font: 700 var(--fs-18)/1.3 var(--font-heading); color: var(--color-white); text-decoration: none; margin-top: var(--sp-8); }
/* Au survol, la couverture s'incline et grossit un peu, avec la courbe des couvertures du diaporama (.sk-couvertures). */
.sk-vente__couv img { transition: transform .35s cubic-bezier(.2, .8, .3, 1), box-shadow .35s; }
@media (hover: hover) {
	.sk-vente:hover .sk-vente__couv img { transform: rotate(-6deg) scale(1.05); box-shadow: 0 30px 50px rgba(0, 0, 0, .4); }
}
.sk-vente__couv:focus-visible img, .sk-vente__couv a:focus-visible img { transform: rotate(-6deg) scale(1.05); }
@media (prefers-reduced-motion: reduce) { .sk-vente__couv img { transition: none; } }
.sk-vente .sk-btn { margin-top: auto; min-height: 52px; }

/* ---------- accueil : atouts ---------- */
.sk-atouts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-24); width: 100%; }
.brxe-block.sk-atouts { align-items: stretch; } /* Bricks aligne en haut : les cadres gardent la même hauteur */
.sk-atout { display: flex; flex-direction: row; gap: var(--sp-20); align-items: flex-start; background: var(--color-white); border-radius: var(--radius-md); padding: var(--sp-24); box-shadow: var(--shadow-faint); }
.sk-atout__icone { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: var(--radius-md); background: var(--color-primary-soft); color: var(--color-primary); font-size: 26px; }
.sk-atout h3 { font-size: var(--fs-20); margin: 0 0 6px; }
.sk-atout p { margin: 0; font-size: var(--fs-14); color: var(--color-text-muted); line-height: 1.5; }

/* ---------- accueil : bannières de genres ---------- */
.sk-bannieres { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-24); width: 100%; }
.sk-banniere { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-16); border-radius: var(--radius-xl); padding: var(--sp-48); min-height: 300px; justify-content: center; }
.sk-banniere h3 { font-size: var(--fs-40); margin: 0; }
.sk-banniere p { margin: 0; max-width: 42ch; }
.sk-banniere--rose { background: var(--color-primary-soft); }
.sk-banniere--sombre { background: var(--color-dark); color: #D7D8E0; }
.sk-banniere--sombre h3 { color: var(--color-white); }
.sk-banniere--sombre .sk-surtitre { color: var(--color-accent); } /* l'orange foncé (texte sur clair) passe mal sur le sombre */

/* ---------- accueil : coup de cœur ---------- */
/* Fond : une bibliothèque aux lumières dorées (Adobe Stock 1134978583, licence d'Olivier) sous un calque bleu nuit,
   plus léger derrière la couverture (à gauche), plus dense derrière le texte pour garder le contraste. Sur téléphone, le
   texte passe sous la couverture : calque uniforme et plus dense, image plus petite. Fichiers : fond-coup-de-coeur-*.webp. */
.sk-section--sombre:has(.sk-cdc) {
	background: linear-gradient(90deg, rgba(17, 20, 45, .55) 0%, rgba(17, 20, 45, .70) 40%, rgba(17, 20, 45, .85) 65%), url('fond-coup-de-coeur-2400.webp') center / cover no-repeat, var(--color-dark);
}
@media (max-width: 991px) {
	.sk-section--sombre:has(.sk-cdc) { background: linear-gradient(rgba(17, 20, 45, .78), rgba(17, 20, 45, .86)), url('fond-coup-de-coeur-1200.webp') center / cover no-repeat, var(--color-dark); }
}
.sk-cdc { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: var(--sp-64); align-items: center; width: 100%; }
.sk-cdc__couv img { width: 100%; aspect-ratio: 1 / 1.41; object-fit: cover; border-radius: var(--radius-lg); box-shadow: 0 30px 50px rgba(0, 0, 0, .35); display: block; }
.sk-cdc__texte { display: flex; flex-direction: column; gap: var(--sp-16); }
.sk-cdc .sk-surtitre { color: var(--color-accent); }
.sk-cdc__titre { font-size: var(--fs-50); margin: 0; }
.sk-cdc__titre a { color: inherit; text-decoration: none; }
.sk-cdc__genres { margin: 0; color: var(--color-accent); font-weight: 600; }
.sk-cdc__resume { margin: 0; font-size: var(--fs-18); line-height: 1.7; max-width: 62ch; }
.sk-cdc__infos { display: flex; flex-wrap: wrap; gap: var(--sp-40); }
.sk-cdc__infos > span { display: flex; align-items: center; gap: var(--sp-12); color: var(--color-white); font-weight: 600; font-size: var(--fs-18); }
.sk-cdc__infos > span > span, .sk-cdc__infos > span { flex-direction: row; }
.sk-cdc__infos small { display: block; font-weight: 400; font-size: var(--fs-14); color: #C9CBD6; }
.sk-cdc__achat { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-24); margin-top: var(--sp-8); }
.sk-cdc__prix { font: 700 var(--fs-40)/1 var(--font-heading); color: var(--color-white); }
.sk-cdc__prix del { font-size: var(--fs-20); color: #C9CBD6; }
.sk-cdc__prix ins { text-decoration: none; }

/* ---------- accueil : avis ---------- */
.sk-avis-liste { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-24); width: 100%; }
.sk-avis { margin: 0; display: flex; flex-direction: column; gap: var(--sp-16); background: var(--color-white); border-radius: var(--radius-lg); padding: var(--sp-32); box-shadow: var(--shadow-faint); }
.sk-avis__etoiles { color: var(--color-primary); letter-spacing: 3px; font-size: var(--fs-18); }
.sk-avis__texte { margin: 0; padding: 0; border: 0; font-family: var(--font-body); font-style: normal; quotes: none; font-size: var(--fs-16); line-height: 1.7; color: var(--color-text); flex: 1; }
.sk-avis figcaption { font-size: var(--fs-14); color: var(--color-text-muted); }
.sk-avis figcaption strong { color: var(--color-dark); }
.sk-avis figcaption a { color: var(--color-primary); }
/* [sk_avis_defilants] : deux rangées qui défilent en sens contraires (Google, puis nos livres). */
.sk-avis-defilants { display: flex; flex-direction: column; gap: var(--sp-40); width: 100%; }
.sk-avis-rangee { --sk-car-ecart: var(--sp-24); }
.sk-avis-rangee__tete { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-16); margin-bottom: var(--sp-16); }
.sk-avis-rangee__titre { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px var(--sp-16); font: 700 var(--fs-20)/1.3 var(--font-heading); color: var(--color-dark); }
.sk-avis-rangee__note { font: 600 var(--fs-14)/1.3 var(--font-body); color: var(--color-text-muted); }
.sk-avis-rangee__note span { color: var(--color-primary); }
.sk-avis-rangee__titre a { font: 600 var(--fs-14)/1.3 var(--font-body); color: var(--color-primary); }
.sk-avis-piste { align-items: stretch; padding: 6px 2px 10px !important; }
.sk-avis-piste > li { flex: 0 0 min(360px, 82vw); display: flex; }
.sk-avis-piste .sk-avis { flex: 1; }
/* Même hauteur pour toutes les cartes des deux rangées : le texte est coupé côté serveur (SK_AVIS_EXTRAIT,
   bp-skeditions-accueil.php), la boîte réserve --sk-avis-lignes lignes, la signature deux. */
.sk-avis-piste { --sk-avis-lignes: 4; --sk-avis-sig-lignes: 2; }
.sk-avis-piste > li { height: calc(var(--sp-32) * 2 + 27px + var(--sp-16) * 2 + var(--fs-16) * 1.7 * var(--sk-avis-lignes) + 22px + var(--fs-14) * 1.4 * var(--sk-avis-sig-lignes) + var(--sp-16)); }
.sk-avis-piste .sk-avis { height: 100%; gap: var(--sp-8); overflow: hidden; border: 1px solid rgba(17, 20, 45, .10); box-shadow: 0 8px 24px rgba(17, 20, 45, .07); }
/* Carte plus étroite sur téléphone : une ligne de plus, sinon l'extrait serait recoupé par le navigateur. */
@media (max-width: 767px) { .sk-avis-piste { --sk-avis-lignes: 5; --sk-avis-sig-lignes: 3; } }
.sk-avis-piste .sk-avis__etoiles { margin-bottom: var(--sp-8); }
.sk-avis-piste .sk-avis__texte { flex: none; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--sk-avis-lignes); line-clamp: var(--sk-avis-lignes); overflow: hidden; }
.sk-avis-piste figcaption { flex: none; margin-top: auto; line-height: 1.4; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--sk-avis-sig-lignes); line-clamp: var(--sk-avis-sig-lignes); overflow: hidden; }
.sk-avis__suite { align-self: flex-start; padding: 0; border: 0; background: none; cursor: pointer; font: 600 var(--fs-14)/22px var(--font-body); color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; }
.sk-avis__suite:hover, .sk-avis__suite:focus-visible { color: var(--color-primary-hover); }
/* Une carte rouge par rangée (rang choisi dans [sk_avis_defilants]) pour rompre le pavé blanc. */
.sk-avis--accent { background: var(--color-primary); border-color: var(--color-primary) !important; }
.sk-avis--accent .sk-avis__etoiles, .sk-avis--accent .sk-avis__texte, .sk-avis--accent figcaption strong, .sk-avis--accent figcaption a, .sk-avis--accent .sk-avis__suite { color: var(--color-white); }
.sk-avis--accent figcaption { color: rgba(255, 255, 255, .8); }
.sk-avis--accent .sk-avis__suite:hover, .sk-avis--accent .sk-avis__suite:focus-visible { color: var(--color-primary-soft); }
/* La fenêtre « Lire la suite » (assets/avis.js) : la carte recopiée, avec l'avis entier. */
.sk-avis-fenetre { width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 0; border: 0; border-radius: var(--radius-lg); background: var(--color-white); box-shadow: 0 24px 60px rgba(17, 20, 45, .3); }
.sk-avis-fenetre::backdrop { background: rgba(17, 20, 45, .6); }
.sk-avis-fenetre .sk-avis { box-shadow: none; padding: var(--sp-40) var(--sp-32) var(--sp-32); }
.sk-avis-fenetre__fermer { position: absolute; top: 8px; right: 8px; width: 40px; height: 40px; border: 0; display: grid; place-items: center; padding: 0; border-radius: 50%; background: none; cursor: pointer; color: var(--color-dark); }
.sk-avis-fenetre__fermer:hover, .sk-avis-fenetre__fermer:focus-visible { background: var(--color-primary-soft); color: var(--color-primary); }

/* ---------- auteurs ---------- */
/* Portrait : rond, recadré sur la photo pour le gabarit maison (940 px : photo carrée de 535 px
   à x=203, y=173). Les pourcentages se calculent sur la largeur du cadre, qui est carré. */
.sk-portrait { position: relative; display: block; overflow: hidden; border-radius: var(--radius-full); aspect-ratio: 1; flex: none; }
.sk-portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sk-portrait--gabarit img { position: absolute; width: 175.7%; max-width: none; height: auto; left: -37.9%; top: -32.3%; object-fit: initial; }
.sk-infos__avatar.sk-portrait, .sk-cdc__avatar.sk-portrait { width: 50px; height: 50px; }

.sk-auteurs { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: var(--sp-32) var(--sp-24); width: 100%; }
.sk-auteurs--tous { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
/* Accueil : les auteurs en carrousel sans fin ([sk_auteurs carrousel="1"], carrousel.js), une colonne de 150 px par auteur. */
.sk-carrousel__piste.sk-auteurs--carrousel { display: flex; gap: var(--sp-24); padding: 6px 4px var(--sp-16); }
.sk-auteurs--carrousel > li { flex: 0 0 150px; display: flex; justify-content: center; }
.sk-auteur { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; text-decoration: none; color: var(--color-dark); }
.sk-auteur__photo { width: 120px; height: 120px; border-radius: var(--radius-full); margin-bottom: var(--sp-8); box-shadow: var(--shadow-faint); transition: transform .25s; }
.sk-auteur:hover .sk-auteur__photo { transform: scale(1.04); }
.sk-auteur__photo--vide { display: inline-flex; align-items: center; justify-content: center; background: var(--color-primary-soft); color: var(--color-primary); font: 700 var(--fs-40)/1 var(--font-heading); }
.sk-auteur__nom { font: 700 var(--fs-16)/1.3 var(--font-heading); }
.sk-auteur:hover .sk-auteur__nom { color: var(--color-primary); }
.sk-auteur__nb { font-size: var(--fs-14); color: var(--color-text-muted); }

/* ---------- chiffres ---------- */
.sk-chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-24); width: 100%; margin: 0; }
.sk-chiffres__item { text-align: center; }
.sk-chiffres dt { font: 700 var(--fs-50)/1 var(--font-heading); color: var(--color-primary); }
.sk-chiffres dd { margin: var(--sp-8) 0 0; color: var(--color-text-muted); font-weight: 600; }

/* ---------- newsletter ---------- */
.sk-newsletter { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-32); justify-items: center; text-align: center; width: 100%; color: var(--color-white); border-radius: var(--radius-xl); /* fond : voir plus haut (photo sous calque) */ padding: var(--sp-64) var(--sp-80); }
.sk-newsletter h2 { color: var(--color-white); margin: 0 0 var(--sp-12); }
/* Fond : une enveloppe à cachet de cire (Adobe Stock 2045480336, licence d'Olivier) sous un calque rouge de la marque,
   dense sous le texte et le formulaire, plus léger sur le bord droit où se trouvent l'enveloppe et son cachet. Image à
   110 % calée à gauche : l'enveloppe glisse vers la droite du cadre (en « cover » elle tombait sous le formulaire). */
.sk-newsletter { background: linear-gradient(90deg, rgba(129, 30, 39, .92) 0%, rgba(129, 30, 39, .9) 62%, rgba(129, 30, 39, .62) 100%), url('fond-newsletter-2400.webp') left 70% / 110% auto no-repeat, var(--color-primary); }
@media (max-width: 991px) {
	.sk-newsletter { background: linear-gradient(rgba(129, 30, 39, .9), rgba(129, 30, 39, .9)), url('fond-newsletter-1200.webp') 75% center / cover no-repeat, var(--color-primary); }
}
.sk-newsletter > * { width: 100%; max-width: 760px; align-items: center; } /* titre, accroche et formulaire centrés, sur une largeur lisible */
.sk-newsletter p { margin: 0; opacity: .9; }
.sk-newsletter__attente { padding: var(--sp-20); border: 2px dashed rgba(255, 255, 255, .5); border-radius: var(--radius-md); }

/* ---------- tablette / mobile ---------- */
/* Ordinateurs : le grand bloc reste compact pour que ses boutons soient visibles sans défiler sur un portable.
   Sa hauteur dépend aussi de la longueur des textes, plafonnée dans l'écran du diaporama (SK_DP_LIMITES). */
@media (min-width: 992px) {
	.sk-hero__grille { --fs-60: clamp(36px, 3.3vw, 50px); }
	.sk-hero__banniere { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: var(--sp-32); padding: var(--sp-48) 56px; min-height: 0; }
	.sk-hero__texte { gap: var(--sp-16); }
	.sk-hero__texte .sk-hero__chapo { font-size: 20px; }
	.sk-hero__boutons .sk-btn { min-height: 48px; padding-inline: var(--sp-20); font-size: 16px; }
	.sk-couvertures { --sk-h: 340px; }
	.sk-vente { padding: var(--sp-32); }
	.sk-vente__couv { flex-basis: 260px; margin-top: var(--sp-8); }
}
@media (min-width: 992px) and (max-width: 1199px) {
	.sk-hero__grille { grid-template-columns: minmax(0, 1fr) 320px; }
	.sk-hero__banniere { padding: var(--sp-40); gap: var(--sp-24); }
	.sk-vente { padding: var(--sp-32) var(--sp-24); }
}
/* Complianz masque son bouton jusqu'à 768 px : les grandes tablettes tenues à la verticale suivent. Le lien du pied de page le remplace. */
@media (min-width: 769px) and (max-width: 1100px) and (orientation: portrait) {
	body #cmplz-manage-consent .cmplz-manage-consent { display: none; }
}
@media (max-width: 1279px) {
	.sk-auteurs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.sk-hero__banniere { padding: var(--sp-48); }
	.sk-atouts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sk-boutique__grille { grid-template-columns: 280px minmax(0, 1fr); }
	.sk-contact { grid-template-columns: minmax(0, 1fr) 320px; }
	.sk-presentation { grid-template-columns: 260px minmax(0, 1fr); gap: var(--sp-32); }
	.sk-grille--boutique ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
	.sk-entete__haut { flex-wrap: wrap; gap: var(--sp-16); }
	/* Mobile : le bouton du menu remonte sur la ligne du logo (sinon une ligne entière
	   pour un seul pictogramme). La rangée du menu est sortie du flux, à gauche du logo. */
	.sk-entete { position: relative; }
	.sk-entete__haut > :first-child { margin-left: 44px; } /* le logo laisse la place au bouton du menu */
	.sk-entete__haut > .sk-nav-recherche { display: contents; }
	.sk-nav-recherche > .brxe-shortcode { display: none; }
	.sk-nav-recherche > .sk-menu { position: absolute; top: 20px; left: var(--sp-16); width: auto; height: 56px; display: flex; align-items: center; justify-content: center; }
	.sk-nav-recherche > .sk-recherche { order: 3; flex-basis: 100%; }
	.sk-entete__actions { margin-left: auto; }
	.sk-hero__grille, .sk-hero__banniere, .sk-cdc, .sk-newsletter { grid-template-columns: minmax(0, 1fr); }
	.sk-hero__banniere { min-height: 0; }
	.sk-couvertures { --sk-h: 340px; }
	.sk-cdc__couv { max-width: 300px; }
	.sk-pied__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sk-avis-liste { grid-template-columns: minmax(0, 1fr); }
	.sk-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--sp-40); }
	/* Boutique : les filtres passent au-dessus des livres, repliés derrière un bouton. */
	.sk-boutique__grille { grid-template-columns: minmax(0, 1fr); }
	.sk-contact, .sk-presentation { grid-template-columns: minmax(0, 1fr); }
	.sk-presentation__photo { position: static; max-width: 300px; }
	.sk-carte-page { padding: var(--sp-20); }
	.sk-filtres__titre { font-size: var(--fs-24); }
	.sk-filtres__bouton { display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 var(--sp-16); border-radius: var(--radius-md); background: var(--color-primary-soft); color: var(--color-primary); }
	.sk-filtres__corps { display: none; }
	.sk-filtres--ouvert .sk-filtres__corps { display: flex; }
}
@media (max-width: 767px) {
	.sk-section { padding-block: var(--sp-48); }
	.sk-hero__banniere, .sk-newsletter { padding: var(--sp-32) var(--sp-24); }
	.sk-banniere { padding: var(--sp-32); min-height: 0; }
	.sk-atouts, .sk-bannieres, .sk-pied__grille { grid-template-columns: minmax(0, 1fr); }
	.sk-logo img { height: 48px; }
	.sk-entete__haut { padding-block: var(--sp-12); }
	.sk-nav-recherche > .sk-menu { top: 12px; }
	.sk-compte span { display: none; }
	.sk-grille ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-24) var(--sp-16); }
	.sk-grille--boutique ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sk-series { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-24) var(--sp-16); }
	.sk-grille ul.products li.product .sk-badge, .sk-grille ul.products li.product .onsale { font-size: 12px; padding: 2px 8px; top: 6px; }
	.sk-grille ul.products li.product .sk-badge { left: 6px; }
	.sk-grille ul.products li.product .onsale { right: 6px; }
	/* Rangées de livres : le réglage « 5 colonnes » de l'élément (#brxe-… .products) passe avant la
	   règle ci-dessus et faisait déborder la page. Quatre cartes, pour ne pas laisser un livre seul. */
	.sk-grille:not(.sk-grille--boutique) ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.sk-grille:not(.sk-grille--boutique) ul.products li.product:nth-child(n+5) { display: none; }
	.sk-boutique__titre { font-size: var(--fs-28); }
	.sk-boutique__entete { align-items: flex-start; }
	.sk-boutique__portrait.sk-portrait { width: 72px; height: 72px; }
	.sk-boutique__tri, .sk-boutique__tri select { width: 100%; }
	.sk-couvertures { --sk-h: 280px; }
	.sk-auteurs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Carrousel des Nouveautés : une couverture entamée à droite signale qu'on peut faire défiler. */
@media (max-width: 991px) {
	.sk-grille--carrousel ul.products { column-gap: var(--sp-24); }
	.sk-grille--carrousel ul.products li.product { flex-basis: calc((100% - 3 * var(--sp-24)) / 3.3); }
}
@media (max-width: 767px) {
	.sk-grille--carrousel ul.products { column-gap: var(--sp-16); }
	.sk-grille--carrousel ul.products li.product { flex-basis: calc((100% - 2 * var(--sp-16)) / 2.3); }
	.sk-entete-section__actions .sk-carrousel__fleches button[data-sk-sens] { display: none; } /* au doigt, pas de flèches ; la pause reste */
}
/* « À lire aussi » : pas de bandeau vide quand il n'y a pas d'autre article. */
.sk-lire-aussi:not(:has(.sk-articles, .sk-abs)) { display: none; }

/* ---------- retour en haut (mu-plugins/bp-skeditions-haut-de-page.php) et consentement Complianz ---------- */
.sk-haut {
	position: fixed; right: 24px; bottom: 24px; z-index: 9991; display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 48px; padding: 0; border: 2px solid rgba(255, 255, 255, .9); border-radius: 50%; background: var(--color-primary); color: var(--color-white); /* le liseré blanc le détache aussi du pied bleu nuit */
	box-shadow: 0 8px 24px rgba(17, 20, 45, .25); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(12px);
	transition: opacity .25s, transform .25s, visibility .25s, background-color .2s;
}
.sk-haut--visible { opacity: 1; visibility: visible; transform: none; }
.sk-haut:hover, .sk-haut:focus-visible { background: var(--color-primary-hover); }
.sk-haut:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
/* Sur téléphone, la barre « Livraison offerte » prend toute la largeur du bas : le bouton passe au-dessus. */
@media (max-width: 600px) { .sk-haut { right: 16px; bottom: 56px; width: 44px; height: 44px; } }
@media (prefers-reduced-motion: reduce) { .sk-haut { transition: none; } }
/* Le bouton « Gestion Consentement » de Complianz passe du coin droit (pris par le retour en haut) au coin gauche. */
#cmplz-manage-consent .cmplz-manage-consent { right: auto !important; left: 40px !important; }

/* ---------- fondus ----------
   D'une page à l'autre : fondu enchaîné du navigateur (View Transitions, Chrome, Edge, Safari ; les autres changent
   de page comme avant). Dans la boutique, les livres apparaissent en fondu à chaque nouvelle liste (filtre, tri,
   pagination : Bricks remplace les cartes, l'animation rejoue d'elle-même). Le passage grille / liste utilise la même
   transition (bp-skeditions-boutique.php). Rien de tout cela si le système demande moins d'animations. */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .3s; }
@keyframes sk-apparition { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.sk-grille--boutique ul.products > li { animation: sk-apparition .35s ease both; }
@media (prefers-reduced-motion: reduce) {
	@view-transition { navigation: none; }
	.sk-grille--boutique ul.products > li { animation: none; }
}

/* ---------- favoris (mu-plugins/bp-skeditions-favoris.php, assets/favoris.js) ----------
   Cœur blanc arrondi sur la couverture des cartes (en haut à droite, comme la maquette) ; grand bouton 60 × 60 à côté
   du bouton d'achat en vue liste et sur la fiche ; rempli de rouge quand le livre est en favori. */
.sk-fav {
	display: inline-flex; align-items: center; justify-content: center; flex: none; width: 40px; height: 40px; padding: 0;
	border: 0; border-radius: 50%; background: rgba(255, 255, 255, .95); color: var(--color-dark); box-shadow: 0 4px 12px rgba(17, 20, 45, .18);
	cursor: pointer; transition: transform .2s, color .2s, background-color .2s;
}
.sk-fav svg { fill: none; stroke: currentColor; transition: fill .2s; }
.sk-fav:hover, .sk-fav:focus-visible { color: var(--color-primary); transform: scale(1.08); }
.sk-fav:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 2px; }
.sk-fav--actif { color: var(--color-primary); }
.sk-fav--actif svg { fill: currentColor; }
.sk-fav--battement svg { animation: sk-battement-fav .45s ease; }
@keyframes sk-battement-fav { 0% { transform: scale(1); } 35% { transform: scale(1.35); } 70% { transform: scale(.92); } 100% { transform: scale(1); } }
.sk-grille ul.products li.product .sk-fav--carte { position: absolute; top: 10px; right: 10px; z-index: 4; }
/* le cœur prend le coin droit : la pastille promo et, au survol, la pastille « Nouveauté » se décalent à sa gauche */
.sk-grille ul.products li.product .onsale { right: 58px; }
@media (hover: hover) {
	.sk-grille ul.products li.product .sk-badge { right: 58px; }
	.sk-grille ul.products li.product .sk-badge ~ .onsale { right: 58px; }
	.sk-grille .sk-badge ~ .sk-carte__auteur { max-width: calc(100% - 176px); }
}
.sk-fav--grand { width: 60px; height: 60px; border: 1px solid #F0F0F0; border-radius: 14px; box-shadow: none; background: var(--color-white); }
.sk-fav--grand svg { width: 24px; height: 24px; }
.sk-fav--grand:hover, .sk-fav--grand:focus-visible { transform: translateY(-2px); border-color: var(--color-primary); }
.sk-cl__actions { display: flex; align-items: center; gap: var(--sp-16); flex: none; }
@media (max-width: 767px) {
	.sk-cl__actions { width: 100%; }
	.sk-cl__actions .sk-cl__achat.button { flex: 1 1 auto; }
	.sk-cl__actions .sk-fav--grand { width: 48px; height: 48px; }
}
@media (prefers-reduced-motion: reduce) { .sk-fav, .sk-fav svg { transition: none; } .sk-fav--battement svg { animation: none; } .sk-fav:hover { transform: none; } }

/* en-tête : même habillage que « Connexion », icône seule, pastille du nombre */
.sk-favoris-lien { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: var(--radius-md); background: var(--color-primary-soft); color: var(--color-primary); text-decoration: none; transition: background-color .2s, color .2s; }
.sk-favoris-lien:hover, .sk-favoris-lien:focus-visible { background: var(--color-primary); color: var(--color-white); }
.sk-favoris-lien__nb { position: absolute; top: 6px; right: 6px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--color-primary); color: var(--color-white); font: 700 12px/20px var(--font-body); text-align: center; }
.sk-favoris-lien:hover .sk-favoris-lien__nb { background: var(--color-white); color: var(--color-primary); }
.sk-favoris-lien__nb[hidden] { display: none; }
/* Mobile : les boutons de l'en-tête (favoris, compte, panier, et le menu dans mega-menu.css) au même gabarit 48 × 48. */
@media (max-width: 767px) {
	.sk-favoris-lien, .sk-compte, .sk-panier .mini-cart-link { width: 48px; height: 48px; padding: 0; justify-content: center; border-radius: 14px; }
}

/* page « Mes favoris » */
.sk-favoris { display: grid; gap: var(--sp-24); }
.sk-grille--favoris ul.products { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.sk-grille--favoris[aria-busy="true"] { min-height: 320px; opacity: .5; }
.sk-favoris__vide { padding: var(--sp-40); border-radius: var(--radius-lg); background: var(--color-primary-soft); text-align: center; }
.sk-favoris__vide p { margin: 0 0 var(--sp-20); font-size: var(--fs-18); color: var(--color-dark); }
.sk-favoris__vide[hidden] { display: none; }
.sk-favoris__note { margin: 0; font-size: var(--fs-14); color: var(--color-text-muted); }
.sk-fav-sortie { opacity: 0; transform: scale(.96); transition: opacity .3s, transform .3s; }
.sk-fav-envol { position: fixed; z-index: 100001; pointer-events: none; color: var(--color-primary); animation: sk-envol .9s cubic-bezier(.2, .7, .3, 1) both; }
.sk-fav-envol svg { display: block; width: 100%; height: 100%; fill: currentColor; }
.sk-fav-envol:nth-child(even) { color: #E05A6B; }
@keyframes sk-envol {
	0% { opacity: 0; transform: translate(0, 0) scale(.4) rotate(0); }
	15% { opacity: 1; }
	100% { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(1.1) rotate(var(--rot)); }
}

/* ---------- format d'un livre au panier / à la commande (bp-skeditions-panier-popup.php, sk_pp_format) ---------- */
.sk-format {
	display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; padding: 3px 10px 3px 8px; border-radius: 999px;
	background: var(--color-primary-soft); color: var(--color-primary); font: 600 13px/1.3 var(--font-body); white-space: nowrap; vertical-align: middle;
}
.sk-format::before { content: ""; flex: none; width: 16px; height: 14px; background: currentColor; -webkit-mask: url(icones/livre.svg) center / contain no-repeat; mask: url(icones/livre.svg) center / contain no-repeat; }
.sk-format--ebook::before { -webkit-mask-image: url(icones/ebook.svg); mask-image: url(icones/ebook.svg); }

/* ---------- page « Nos auteurs » ([sk_auteurs nombre="0"]) : 6 par ligne, portraits plus grands, apparition au défilement ---------- */
.sk-auteurs.sk-auteurs--tous { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--sp-48) var(--sp-32); }
.sk-auteurs--tous .sk-auteur__photo { width: min(100%, 180px); height: auto; aspect-ratio: 1; }
.sk-auteurs--tous .sk-auteur__photo--vide { font-size: 56px; }
.sk-auteurs--tous .sk-auteur__nom { font-size: var(--fs-18); }
.sk-auteurs--anim .sk-auteur { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; transition-delay: var(--sk-delai, 0ms); }
.sk-auteurs--anim .sk-auteur.sk-visible { opacity: 1; transform: none; }
@media (max-width: 1279px) {
	.sk-auteurs.sk-auteurs--tous { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.sk-auteurs.sk-auteurs--tous { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-32) var(--sp-16); }
	.sk-auteurs--tous .sk-auteur__nom { font-size: var(--fs-16); }
}

/* Page d'un auteur : le portrait (180 px, comme la page « Nos auteurs ») calé en haut à gauche, le titre et la
   biographie l'entourent puis reprennent toute la largeur dessous ; le texte suit l'arrondi du portrait.
   Les pages de genre (sans portrait) gardent leur en-tête. */
.sk-boutique__entete:has(> .sk-boutique__portrait) { display: flow-root; }
.sk-boutique__entete > .sk-boutique__portrait.sk-portrait { float: left; width: 180px; height: 180px; margin: 4px var(--sp-32) var(--sp-16) 0; shape-outside: circle(50%); shape-margin: 18px; }
.sk-boutique__entete:has(> .sk-boutique__portrait) > div { width: auto; }
.sk-boutique__entete:has(> .sk-boutique__portrait) .sk-boutique__intro { max-width: none; }
@media (max-width: 767px) {
	.sk-boutique__entete > .sk-boutique__portrait.sk-portrait { width: 110px; height: 110px; margin-right: var(--sp-16); shape-margin: 10px; }
}

/* Halo rouge autour des portraits d'auteurs (liste, accueil, page d'un auteur ou d'une série, « Écrit par » de la fiche).
   Un contour décalé plutôt qu'une ombre : l'écart entre la photo et le cercle reste transparent, sur fond blanc comme rose. */
.sk-auteur__photo, .sk-boutique__portrait.sk-portrait { outline: 2px solid var(--color-primary); outline-offset: 5px; }
.sk-infos__avatar.sk-portrait, .sk-cdc__avatar.sk-portrait { outline: 1.5px solid var(--color-primary); outline-offset: 2px; }
.sk-auteurs--carrousel > li { padding-top: 8px; } /* place pour le halo dans la piste qui défile */
.sk-boutique__intro a { color: var(--color-primary); font-weight: 600; }

/* Dédicaces ([sk_dedicaces], mu-plugins/bp-skeditions-dedicaces.php) : par mois, une carte par événement — pavé de date,
   nom et lieu, puis les autrices et auteurs présents avec leur portrait (même halo que partout). */
.sk-dedicaces { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--sp-40); align-items: start; width: 100%; }
.sk-dedicaces--vide { display: block; }
.sk-dedicaces__fil { min-width: 0; }
.sk-dedicaces__bloc[hidden] { display: none; }
.sk-dedicaces__bloc:first-child .sk-dedicaces__mois { margin-top: 0; }
.sk-dedicaces__rien { margin: 0; padding: var(--sp-24); border-radius: var(--radius-md); background: var(--color-primary-soft); }
.sk-dedicaces__cote { position: sticky; top: 110px; display: flex; flex-direction: column; gap: var(--sp-20); }
.sk-dedicaces__carte { padding: var(--sp-24); border-radius: var(--radius-md); background: var(--color-white); box-shadow: var(--shadow-faint); }
.sk-dedicaces__carte p { margin: 0 0 var(--sp-16); color: var(--color-text-muted); line-height: 1.5; }
.sk-dedicaces__carte--orga { background: var(--color-primary-soft); box-shadow: none; }
.sk-dedicaces__carte--orga .sk-btn { width: 100%; }
.sk-dedicaces__cote-titre { margin: 0 0 var(--sp-8); font: 700 var(--fs-20)/1.25 var(--font-heading); color: var(--color-dark); }
.sk-dedicaces__filtre { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sk-dedicaces__filtre li { margin: 0; }
.sk-dedicaces__puce { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border: 1.5px solid var(--color-grey-2); border-radius: var(--radius-full); background: var(--color-white); color: var(--color-dark); font: 600 var(--fs-14)/1.2 var(--font-heading); cursor: pointer; transition: background-color .2s, border-color .2s, color .2s; }
.sk-dedicaces__puce span { color: var(--color-text-muted); font-weight: 500; }
.sk-dedicaces__puce:hover { border-color: var(--color-primary); color: var(--color-primary); }
.sk-dedicaces__puce[aria-pressed="true"] { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-white); }
.sk-dedicaces__puce[aria-pressed="true"] span { color: inherit; opacity: .8; }
.sk-ded[hidden] { display: none; }
.sk-dedicaces__mois { display: flex; align-items: center; gap: var(--sp-16); margin: var(--sp-40) 0 var(--sp-16); font: 700 var(--fs-24)/1.2 var(--font-heading); color: var(--color-dark); }
.sk-dedicaces__mois::after { content: ""; flex: 1; height: 1px; background: var(--color-grey-2); }
.sk-dedicaces__liste { display: flex; flex-direction: column; gap: var(--sp-16); margin: 0; padding: 0; list-style: none; }
.sk-ded { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; align-items: center; gap: var(--sp-24); margin: 0; padding: var(--sp-20) var(--sp-24); border-radius: var(--radius-md); background: var(--color-white); box-shadow: var(--shadow-faint); transition: transform .25s, box-shadow .25s; }
.sk-ded:hover { transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.sk-ded__date { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; aspect-ratio: 1; border-radius: var(--radius-md); background: var(--color-primary); color: var(--color-white); text-align: center; }
.sk-ded__jour { font: 700 26px/1 var(--font-heading); white-space: nowrap; }
.sk-ded__mois { font: 700 var(--fs-14)/1 var(--font-heading); text-transform: uppercase; letter-spacing: .06em; opacity: .85; }
.sk-ded__corps { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sk-ded__corps p { margin: 0; }
.sk-ded__quand { color: var(--color-primary); font: 600 var(--fs-14)/1.3 var(--font-heading); }
.sk-ded__titre { margin: 0; font: 700 var(--fs-20)/1.25 var(--font-heading); color: var(--color-dark); }
.sk-ded__info { display: flex; align-items: flex-start; gap: 8px; color: var(--color-text-muted); font-size: var(--fs-16); line-height: 1.45; }
.sk-ded__info svg { flex: none; margin-top: 3px; color: var(--color-primary); }
.sk-ded__info a { display: inline-flex; align-items: flex-start; gap: 8px; color: var(--color-primary); font-weight: 600; text-decoration: none; }
.sk-ded__info a:hover span { text-decoration: underline; }
.sk-ded__auteurs { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--sp-16); margin: 0; padding: 0; list-style: none; }
.sk-ded__auteurs li { width: 92px; margin: 0; text-align: center; }
.sk-ded__auteurs a { display: block; color: var(--color-dark); text-decoration: none; }
.sk-ded__auteurs a:hover .sk-ded__nom { color: var(--color-primary); }
.sk-ded__portrait { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin: 4px auto 10px; border-radius: var(--radius-full); outline: 1.5px solid var(--color-primary); outline-offset: 3px; }
.sk-ded__initiale { background: var(--color-primary-soft); color: var(--color-primary); font: 700 var(--fs-24)/1 var(--font-heading); }
.sk-ded__nom { display: block; font: 600 var(--fs-14)/1.3 var(--font-heading); transition: color .2s; }
.sk-dedicaces--vide p { margin: 0; padding: var(--sp-24); border-radius: var(--radius-md); background: var(--color-primary-soft); }
@media (max-width: 1100px) {
	.sk-dedicaces { grid-template-columns: minmax(0, 1fr); }
	.sk-dedicaces { gap: var(--sp-24); }
	.sk-dedicaces__cote { display: contents; } /* le filtre passe au-dessus de la liste, l'invitation aux organisateurs dessous */
	.sk-dedicaces__carte { order: -1; }
	.sk-dedicaces__carte--orga { order: 2; }
}
@media (max-width: 767px) {
	.sk-ded { grid-template-columns: 64px minmax(0, 1fr); gap: var(--sp-12) var(--sp-16); padding: var(--sp-16); align-items: start; }
	.sk-ded__jour { font-size: 20px; }
	.sk-ded__mois { font-size: 12px; }
	.sk-ded__titre { font-size: var(--fs-18); }
	.sk-ded__auteurs { grid-column: 1 / -1; justify-content: flex-start; padding-top: var(--sp-12); border-top: 1px solid var(--color-grey-2); }
	.sk-ded__auteurs { gap: var(--sp-8) var(--sp-20); }
	.sk-ded__auteurs li { width: auto; text-align: left; }
	.sk-ded__auteurs a, .sk-ded__auteurs li > .sk-ded__nom { display: flex; align-items: center; gap: 10px; }
	.sk-ded__auteurs li:not(:has(a)) { display: flex; align-items: center; gap: 10px; }
	.sk-ded__portrait { width: 40px; height: 40px; margin: 3px; font-size: var(--fs-16); }
	.sk-dedicaces__mois { font-size: var(--fs-20); margin-top: var(--sp-32); }
}
@media (prefers-reduced-motion: reduce) { .sk-ded, .sk-ded:hover { transition: none; transform: none; } }

/* Audiobooks ([sk_audiobooks] et [sk_audiobook], mu-plugins/bp-skeditions-audiobooks.php) : pochettes carrées
   (format Audible), jamais recadrées ; fiche en deux colonnes, pochette à gauche. */
.sk-abs { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--sp-40) var(--sp-32); width: 100%; margin: 0; padding: 0; list-style: none; }
.sk-ab { margin: 0; }
.sk-ab__lien { display: block; color: var(--color-dark); text-decoration: none; }
.sk-ab__pochette { position: relative; display: block; aspect-ratio: 1; overflow: hidden; border-radius: var(--radius-md); background: var(--color-primary-soft); box-shadow: var(--shadow-faint); transition: transform .25s, box-shadow .25s; }
.sk-ab__pochette img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sk-ab__badge { position: absolute; top: 10px; left: 10px; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: var(--radius-md); background: var(--color-dark); color: var(--color-white); font: 700 var(--fs-14)/1.4 var(--font-heading); }
.sk-ab__play { position: absolute; right: 12px; bottom: 12px; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: var(--radius-full); background: var(--color-primary); color: var(--color-white); box-shadow: var(--shadow-accent); opacity: 0; transform: translateY(6px); transition: opacity .25s, transform .25s; }
.sk-ab__lien:hover .sk-ab__pochette, .sk-ab__lien:focus-visible .sk-ab__pochette { transform: translateY(-4px); box-shadow: var(--shadow-soft); }
.sk-ab__lien:hover .sk-ab__play, .sk-ab__lien:focus-visible .sk-ab__play { opacity: 1; transform: none; }
.sk-ab__titre { margin: var(--sp-16) 0 4px; font: 700 var(--fs-18)/1.3 var(--font-heading); transition: color .2s; }
.sk-ab__lien:hover .sk-ab__titre { color: var(--color-primary); }
.sk-ab__par { margin: 0; color: var(--color-text-muted); font-size: var(--fs-14); }
.sk-ab__par a { color: var(--color-primary); font-weight: 600; text-decoration: none; }

.sk-abf { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: var(--sp-64); align-items: start; width: 100%; margin-top: var(--sp-8); }
.sk-abf__pochette { position: sticky; top: 110px; overflow: hidden; aspect-ratio: 1; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); background: var(--color-primary-soft); }
.sk-abf__pochette img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sk-abf__texte { min-width: 0; }
.sk-abf__sur { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 6px 14px; border-radius: var(--radius-full); background: var(--color-primary-soft); color: var(--color-primary); font: 700 var(--fs-14)/1.2 var(--font-heading); }
.sk-abf__titre { margin: var(--sp-16) 0 var(--sp-8); font: 700 var(--fs-40)/1.15 var(--font-heading); color: var(--color-dark); }
.sk-abf__par { margin: 0 0 var(--sp-24); font-size: var(--fs-18); color: var(--color-text-muted); }
.sk-abf__par a { color: var(--color-primary); font-weight: 600; text-decoration: none; }
.sk-abf__par a:hover { text-decoration: underline; }
.sk-abf__resume { max-width: 68ch; line-height: 1.7; color: var(--color-text); }
.sk-abf__resume p { margin: 0 0 1em; }
.sk-abf__actions { display: flex; flex-wrap: wrap; gap: var(--sp-12); margin: 0 0 var(--sp-20); }
.sk-abf__resume-titre { margin: var(--sp-40) 0 var(--sp-12); padding-top: var(--sp-24); border-top: 1px solid var(--color-grey-2); font: 700 var(--fs-20)/1.2 var(--font-heading); color: var(--color-dark); }
.sk-abf__actions .sk-btn { gap: 10px; }
.sk-abf__livre { display: flex; align-items: center; gap: var(--sp-16); max-width: 560px; padding: var(--sp-16); border-radius: var(--radius-md); background: var(--color-white); box-shadow: var(--shadow-faint); color: var(--color-dark); text-decoration: none; transition: box-shadow .25s, transform .25s; }
.sk-abf__livre:hover { transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.sk-abf__livre img { flex: none; width: 64px; height: auto; aspect-ratio: 1 / 1.41; object-fit: cover; border-radius: var(--radius-sm); box-shadow: var(--shadow-faint); margin: 0; }
.sk-abf__livre-texte { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.sk-abf__livre-sur { color: var(--color-primary); font: 700 var(--fs-14)/1.3 var(--font-heading); }
.sk-abf__livre strong { font: 700 var(--fs-16)/1.3 var(--font-heading); }
.sk-abf__livre-prix { color: var(--color-text-muted); font-size: var(--fs-14); }
.sk-abf__livre-voir { flex: none; color: var(--color-primary); font: 700 var(--fs-14)/1 var(--font-heading); white-space: nowrap; }
@media (max-width: 991px) {
	.sk-abf { grid-template-columns: minmax(0, 1fr); gap: var(--sp-24); }
	.sk-abf__pochette { position: static; width: 100%; max-width: 360px; }
	.sk-abf__titre { font-size: var(--fs-28); }
}
@media (max-width: 478px) {
	.sk-abs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-24) var(--sp-16); }
	.sk-ab__badge { font-size: 12px; padding: 3px 8px; }
	.sk-ab__titre { font-size: var(--fs-16); }
	.sk-abf__livre-voir { display: none; }
}
@media (prefers-reduced-motion: reduce) { .sk-ab__pochette, .sk-ab__play, .sk-abf__livre { transition: none; transform: none !important; } }
.sk-lire-aussi .sk-abs { margin-top: var(--sp-24); }

/* Page Contact (#2264, mu-plugins/bp-skeditions-contact.php) : raccourcis vers les réponses qui existent déjà, puis le
   formulaire à gauche et les coordonnées sur fond sombre à droite (une ligne Bricks par élément, icône en CSS). */
.sk-raccourcis { width: 100%; margin-bottom: var(--sp-40); }
.sk-raccourcis__titre { margin: 0 0 var(--sp-12); color: var(--color-text-muted); font: 700 var(--fs-14)/1.2 var(--font-heading); text-transform: uppercase; letter-spacing: .06em; }
.sk-raccourcis ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-16); margin: 0; padding: 0; list-style: none; }
.sk-raccourcis li { margin: 0; }
.sk-raccourcis a { display: flex; align-items: flex-start; gap: 14px; height: 100%; padding: var(--sp-20); border-radius: var(--radius-md); background: var(--color-white); box-shadow: var(--shadow-faint); color: var(--color-dark); text-decoration: none; transition: transform .25s, box-shadow .25s; }
.sk-raccourcis a:hover, .sk-raccourcis a:focus-visible { transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.sk-raccourcis__icone { display: flex; flex: none; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-full); background: var(--color-primary-soft); color: var(--color-primary); }
.sk-raccourcis__texte { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; }
.sk-raccourcis__texte strong { font: 700 var(--fs-16)/1.3 var(--font-heading); }
.sk-raccourcis__texte span { color: var(--color-text-muted); font-size: var(--fs-14); line-height: 1.45; }
.sk-raccourcis__fleche { flex: none; align-self: center; color: var(--color-primary); font-weight: 700; transition: transform .25s; }
.sk-raccourcis a:hover .sk-raccourcis__fleche { transform: translateX(3px); }

.sk-contact { grid-template-columns: minmax(0, 1fr) 380px; gap: var(--sp-40); }
.sk-contact__formulaire { padding: var(--sp-40); }
.sk-contact__formulaire h2 { margin-bottom: 6px; }
.sk-contact__aide p { margin: 0 0 var(--sp-24); color: var(--color-text-muted); font-size: var(--fs-14); }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_required_legend { display: none; } /* redit par la phrase d'aide */
.sk-contact__infos { position: sticky; top: 110px; display: flex; flex-direction: column; gap: var(--sp-20); padding: var(--sp-32); background: var(--color-dark); color: #C9CBD6; }
.sk-contact__infos h2 { margin: 0 0 var(--sp-4, 4px); color: var(--color-white); }
.sk-coord { position: relative; min-height: 40px; padding-left: 56px; line-height: 1.55; }
.sk-coord p { margin: 0; }
.sk-coord strong { color: var(--color-white); font-weight: 600; }
.sk-coord::before { content: ""; position: absolute; top: 0; left: 0; width: 40px; height: 40px; border-radius: var(--radius-full); background: rgba(255, 255, 255, .08); }
.sk-coord::after { content: ""; position: absolute; top: 10px; left: 10px; width: 20px; height: 20px; background: #F2B8BD; -webkit-mask: var(--sk-coord-icone) center / contain no-repeat; mask: var(--sk-coord-icone) center / contain no-repeat; }
.sk-coord--tel, .sk-coord--mail { display: flex; align-items: center; }
.sk-coord--adresse { --sk-coord-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.sk-coord--tel { --sk-coord-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25c1.1.37 2.3.6 3.6.6a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
.sk-coord--mail { --sk-coord-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm0 2v.5l8 5 8-5V6zm16 2.85-8 5-8-5V18h16z'/%3E%3C/svg%3E"); }
.sk-coord--horaires { --sk-coord-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm1-13h-2v6l5.2 3.1 1-1.6-4.2-2.5z'/%3E%3C/svg%3E"); }
.sk-contact__infos .sk-coord a { color: var(--color-white); font-weight: 600; text-decoration: none; }
.sk-contact__infos .sk-coord a:hover { text-decoration: underline; }
.sk-contact__infos .sk-pied__reseaux { margin-top: var(--sp-8); padding-top: var(--sp-20); border-top: 1px solid rgba(255, 255, 255, .1); }

/* Le formulaire : la charte plutôt que le bleu de Gravity Forms (thème orbital, piloté par ses variables). */
:is(.sk-contact, .sk-appel) .gform_wrapper.gform-theme--orbital {
	--gf-ctrl-btn-bg-color-primary: #811E27; --gf-ctrl-btn-bg-color-hover-primary: #6A1820; --gf-ctrl-btn-border-color-primary: #811E27;
	--gf-ctrl-btn-color-primary: #fff; --gf-ctrl-btn-radius: 12px; --gf-ctrl-btn-font-family: var(--font-heading); --gf-ctrl-btn-font-weight: 700;
	--gf-ctrl-btn-bg-color-simple: var(--color-primary-soft); --gf-ctrl-btn-color-simple: #811E27;
	--gf-ctrl-btn-bg-color-secondary: var(--color-primary-soft); --gf-ctrl-btn-color-secondary: #811E27; --gf-ctrl-btn-border-color-secondary: var(--color-primary-soft);
	--gf-ctrl-file-btn-bg-color: var(--color-primary-soft); --gf-ctrl-file-btn-color: #811E27;
	--gf-color-in-ctrl-primary: #811E27; --gf-field-gap-y: 24px;
}
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_drop_area { padding: var(--sp-24); border: 2px dashed var(--color-grey-2); border-radius: var(--radius-sm); background: #FBF7F7; }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_drop_area .gform_button_select_files { min-height: 40px; border: 0; border-radius: var(--radius-sm); background: var(--color-primary-soft); color: var(--color-primary); font: 700 var(--fs-14)/1 var(--font-heading); }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_drop_area .gform_button_select_files:hover { background: var(--color-primary); color: var(--color-white); }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_drop_area .gform_drop_instructions, :is(.sk-contact, .sk-appel) .gform_wrapper .gfield_description { color: var(--color-text-muted); font-size: var(--fs-14); }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_drop_area svg, :is(.sk-contact, .sk-appel) .gform_wrapper .gform_drop_area::before { color: var(--color-primary); }
:is(.sk-contact, .sk-appel) .gform_wrapper .gfield_description a { color: var(--color-primary); font-weight: 600; }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform-footer, :is(.sk-contact, .sk-appel) .gform_wrapper .gform_footer { margin-top: var(--sp-8); }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform-footer .gform_button, :is(.sk-contact, .sk-appel) .gform_wrapper .gform_footer .gform_button { min-height: 52px; padding: 0 var(--sp-40); border: 0; border-radius: var(--radius-md); background: var(--color-primary); color: var(--color-white); font: 700 var(--fs-16)/1.2 var(--font-heading); box-shadow: var(--shadow-accent); cursor: pointer; }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform-footer .gform_button:hover, :is(.sk-contact, .sk-appel) .gform_wrapper .gform_footer .gform_button:hover { background: var(--color-primary-hover); }

@media (max-width: 1100px) { .sk-raccourcis ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 991px) {
	.sk-contact { grid-template-columns: minmax(0, 1fr); gap: var(--sp-24); }
	.sk-contact__infos { position: static; }
	.sk-contact__formulaire { padding: var(--sp-24); }
}
@media (max-width: 600px) {
	.sk-raccourcis ul { grid-template-columns: minmax(0, 1fr); gap: var(--sp-12); }
	.sk-raccourcis a { padding: var(--sp-16); }
	.sk-contact__formulaire, .sk-contact__infos { padding: var(--sp-20); }
	:is(.sk-contact, .sk-appel) .gform_wrapper .gform_button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .sk-raccourcis a, .sk-raccourcis__fleche { transition: none; transform: none !important; } }
:is(.sk-contact, .sk-appel) .gform-theme--orbital .gform_drop_area .gform-theme-button.gform_button_select_files { background: var(--color-primary-soft); color: var(--color-primary); border: 0; box-shadow: none; }
:is(.sk-contact, .sk-appel) .gform-theme--orbital .gform_drop_area .gform-theme-button.gform_button_select_files:hover { background: var(--color-primary); color: var(--color-white); }
.sk-contact .sk-contact__infos .sk-pied__reseaux a { color: var(--color-white); }
.sk-contact .sk-contact__infos .sk-pied__reseaux a:hover { background: var(--color-primary); }
:is(.sk-contact, .sk-appel) .gform-theme--orbital .gform_drop_area .gform_button_select_files { --gf-local-bg-color: var(--color-primary-soft); --gf-local-color: var(--color-primary); --gf-local-border-color: transparent; --gf-local-shadow: none; }
:is(.sk-contact, .sk-appel) .gform-theme--orbital .gform_drop_area .gform_button_select_files:hover { --gf-local-bg-color: var(--color-primary); --gf-local-color: var(--color-white); }
:is(.sk-contact, .sk-appel) .gform-theme--orbital .gform_drop_area { --gf-local-color: var(--color-primary); }
/* Gravity Forms pose ses propres variables sur chaque bouton : seule une déclaration forcée les remplace. */
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_button_select_files { background: var(--color-primary-soft) !important; color: var(--color-primary) !important; border: 0 !important; box-shadow: none !important; min-height: 40px !important; padding: 0 20px !important; border-radius: var(--radius-sm) !important; font: 700 var(--fs-14)/1 var(--font-heading) !important; }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_button_select_files:hover { background: var(--color-primary) !important; color: var(--color-white) !important; }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_button { min-height: 52px !important; padding: 0 var(--sp-40) !important; border-radius: var(--radius-md) !important; font: 700 var(--fs-16)/1.2 var(--font-heading) !important; box-shadow: var(--shadow-accent) !important; }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_drop_area .gform_drop_instructions + * , :is(.sk-contact, .sk-appel) .gform_wrapper .gform_drop_area .gform-icon { color: var(--color-primary) !important; }
:is(.sk-contact, .sk-appel) .gform_wrapper .gform_drop_area::before { color: var(--color-primary) !important; }
@media (max-width: 600px) {
	.sk-raccourcis { margin-bottom: var(--sp-24); }
	.sk-raccourcis ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-12); }
	.sk-raccourcis a { flex-direction: column; gap: 10px; padding: var(--sp-16); }
	.sk-raccourcis__texte span, .sk-raccourcis__fleche { display: none; }
	.sk-raccourcis__icone { width: 38px; height: 38px; }
	.sk-raccourcis__texte strong { font-size: var(--fs-14); }
}

/* Pages « La maison » (manuscrits #2266, service presse #2267, librairies #2268, qui sommes-nous #2265) :
   le contenu en cartes à gauche, une colonne d'action collante à droite. Tout est en blocs Bricks éditables
   (import/bp-pages-maison.php) ; ces classes ne font que la mise en forme. */
.sk-info { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--sp-40); align-items: start; width: 100%; }
.sk-info__principal { display: flex; flex-direction: column; gap: var(--sp-24); min-width: 0; }
.sk-info__cote { position: sticky; top: 110px; display: flex; flex-direction: column; gap: var(--sp-20); }
.sk-carte-info { width: 100%; padding: var(--sp-32); border-radius: var(--radius-md); background: var(--color-white); box-shadow: var(--shadow-faint); line-height: 1.7; }
.sk-carte-info h2 { margin: 0 0 var(--sp-12); font: 700 var(--fs-24)/1.25 var(--font-heading); color: var(--color-dark); }
.sk-carte-info p { margin: 0 0 var(--sp-12); }
.sk-carte-info p:last-child { margin-bottom: 0; }
.sk-carte-info a:not(.sk-btn) { color: var(--color-primary); font-weight: 600; }
.sk-carte-info--sombre { background: var(--color-dark); color: #C9CBD6; box-shadow: none; }
.sk-carte-info--sombre h2 { color: var(--color-white); font-size: var(--fs-20); }
.sk-carte-info--sombre a:not(.sk-btn) { color: var(--color-white); }
.sk-carte-info--rose { background: var(--color-primary-soft); box-shadow: none; }
.sk-carte-info--rose h2 { font-size: var(--fs-20); }
.sk-carte-info .sk-btn { margin-top: var(--sp-8); }
.sk-carte-info--sombre .sk-btn, .sk-carte-info--rose .sk-btn { width: 100%; }
.sk-carte-info .sk-pied__reseaux { margin-top: var(--sp-12); }
.sk-carte-info--rose .sk-pied__reseaux a { background: var(--color-white); color: var(--color-primary); }
.sk-carte-info--rose .sk-pied__reseaux a:hover { background: var(--color-primary); color: var(--color-white); }

/* Encadré d'état (« Soumissions fermées ») : pastille et icône. */
.sk-statut { position: relative; width: 100%; padding: var(--sp-32) var(--sp-32) var(--sp-32) 112px; border-radius: var(--radius-md); background: var(--color-primary-soft); }
.sk-statut::before { content: ""; position: absolute; top: var(--sp-32); left: var(--sp-32); width: 56px; height: 56px; border-radius: var(--radius-full); background: var(--color-primary); }
.sk-statut::after { content: ""; position: absolute; top: calc(var(--sp-32) + 16px); left: calc(var(--sp-32) + 16px); width: 24px; height: 24px; background: var(--color-white); -webkit-mask: var(--sk-statut-icone) center / contain no-repeat; mask: var(--sk-statut-icone) center / contain no-repeat;
	--sk-statut-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a9 9 0 0 0-9 9v11h18V11a9 9 0 0 0-9-9zm7 18H5v-9a7 7 0 0 1 14 0zM12 13a2 2 0 0 0-1 3.7V19h2v-2.3A2 2 0 0 0 12 13zM8 6h8v2H8z'/%3E%3C/svg%3E"); }
.sk-statut h2 { margin: 0 0 var(--sp-8); font: 700 var(--fs-24)/1.25 var(--font-heading); color: var(--color-primary); }
.sk-statut p { margin: 0 0 var(--sp-8); line-height: 1.6; }
.sk-statut p:last-child { margin-bottom: 0; }

/* Liste de règles (croix rouges) et étapes numérotées. */
.sk-regles ul { display: flex; flex-direction: column; gap: var(--sp-16); margin: var(--sp-8) 0 0; padding: 0; list-style: none; }
.sk-regles li { position: relative; margin: 0; padding-left: 40px; line-height: 1.6; }
.sk-regles li::before { content: "×"; position: absolute; top: 0; left: 0; display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: var(--radius-full); background: var(--color-primary-soft); color: var(--color-primary); font: 700 18px/1 var(--font-heading); }
.sk-regles li.sk-ok::before { content: "✓"; font-size: 14px; }
/* Étapes numérotées des pages « maison » (presse, librairies) : limitées aux cartes, la barre du parcours de commande
   (parcours.css) porte aussi la classe sk-etapes et prenait sinon un « 1 » devant « Panier ». */
.sk-carte-info.sk-etapes ol { display: flex; flex-direction: column; gap: var(--sp-20); margin: var(--sp-8) 0 var(--sp-24); padding: 0; list-style: none; counter-reset: sk-etape; }
.sk-carte-info.sk-etapes li { position: relative; margin: 0; padding-left: 56px; min-height: 40px; line-height: 1.6; counter-increment: sk-etape; }
.sk-carte-info.sk-etapes li::before { content: counter(sk-etape); position: absolute; top: -2px; left: 0; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius-full); background: var(--color-primary); color: var(--color-white); font: 700 var(--fs-18)/1 var(--font-heading); }
.sk-carte-info.sk-etapes li strong { display: block; color: var(--color-dark); font-family: var(--font-heading); }

/* Partenaire (logo + texte) dans une carte. */
.sk-carte-info.sk-partenaire { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-12); }
.sk-carte-info.sk-partenaire .sk-partenaire__logo img { width: 150px; }
.sk-carte-info.sk-partenaire p { font-weight: 400; color: var(--color-text-muted); }

/* Qui sommes-nous : portrait et chapô, chiffres, sections, trois engagements, appel final. */
.sk-qsn-tete { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--sp-64); align-items: center; width: 100%; margin-bottom: var(--sp-48, 48px); }
.sk-qsn-tete .sk-qsn-portrait img, .sk-qsn-tete img.sk-qsn-portrait { display: block; width: 280px; height: 280px; object-fit: cover; border-radius: var(--radius-full); outline: 2px solid var(--color-primary); outline-offset: 8px; box-shadow: var(--shadow-soft); }
.sk-qsn-tete__texte { display: flex; flex-direction: column; gap: var(--sp-12); }
.sk-qsn-sur p { margin: 0; color: var(--color-primary); font: 700 var(--fs-14)/1.2 var(--font-heading); text-transform: uppercase; letter-spacing: .08em; }
.sk-qsn-tete__texte h2 { margin: 0; font: 700 var(--fs-40)/1.15 var(--font-heading); color: var(--color-dark); }
.sk-qsn-chapo p { margin: 0; font-size: var(--fs-20); line-height: 1.6; color: var(--color-text); }
.sk-qsn-chiffres { width: 100%; margin-bottom: var(--sp-48, 48px); padding: var(--sp-40) var(--sp-32); border-radius: var(--radius-md); background: var(--color-primary-soft); }
.sk-qsn-deux { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-24); width: 100%; margin-bottom: var(--sp-48, 48px); }
.sk-qsn-titre { width: 100%; margin: 0 0 var(--sp-20); font: 700 var(--fs-28)/1.2 var(--font-heading); color: var(--color-dark); text-align: center; }
.sk-qsn-trois { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-24); width: 100%; margin-bottom: var(--sp-48, 48px); }
.sk-qsn-trois .sk-carte-info { position: relative; padding-top: 88px; }
.sk-qsn-trois .sk-carte-info::before { content: ""; position: absolute; top: var(--sp-32); left: var(--sp-32); width: 44px; height: 44px; border-radius: var(--radius-full); background: var(--color-primary-soft); }
.sk-qsn-trois .sk-carte-info::after { content: ""; position: absolute; top: calc(var(--sp-32) + 11px); left: calc(var(--sp-32) + 11px); width: 22px; height: 22px; background: var(--color-primary); -webkit-mask: var(--sk-qsn-icone) center / contain no-repeat; mask: var(--sk-qsn-icone) center / contain no-repeat; }
.sk-qsn-trois h3 { margin: 0 0 var(--sp-8); font: 700 var(--fs-18)/1.3 var(--font-heading); color: var(--color-dark); }
.sk-qsn-icone--colis { --sk-qsn-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 3 6.5v11L12 22l9-4.5v-11zm0 2.2 6.6 3.3L12 10.8 5.4 7.5zM5 9.1l6 3v7.4l-6-3zm8 10.4v-7.4l6-3v7.4z'/%3E%3C/svg%3E"); }
.sk-qsn-icone--ecran { --sk-qsn-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2h10a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm0 2v14h10V4zm4 15v1h2v-1z'/%3E%3C/svg%3E"); }
.sk-qsn-icone--feuille { --sk-qsn-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 3c-9 0-15 4-15 11 0 2 .6 3.7 1.6 5L4 21.6 5.4 23l2.6-2.6A8 8 0 0 0 11 21c7 0 10-7 9-18zm-9 16c-.8 0-1.5-.1-2.1-.4L15 12.5 13.5 11l-6 6c-.3-.6-.5-1.4-.5-2.9C7 8.9 11.2 5.5 17.9 5c.4 8-1.9 14-6.9 14z'/%3E%3C/svg%3E"); }
.sk-qsn-fin { display: flex; flex-direction: column; align-items: center; gap: var(--sp-16); width: 100%; padding: var(--sp-48, 48px) var(--sp-32); border-radius: var(--radius-md); background: var(--color-dark); color: #C9CBD6; text-align: center; }
.sk-qsn-fin h2 { margin: 0; color: var(--color-white); font: 700 var(--fs-28)/1.2 var(--font-heading); }
.sk-qsn-fin p { max-width: 62ch; margin: 0 auto; line-height: 1.7; }
.sk-qsn-maj p { margin: var(--sp-16) 0 0; color: var(--color-text-muted); font-size: var(--fs-14); text-align: center; }

@media (max-width: 991px) {
	.sk-info { grid-template-columns: minmax(0, 1fr); gap: var(--sp-24); }
	.sk-info__cote { position: static; }
	.sk-qsn-tete { grid-template-columns: minmax(0, 1fr); gap: var(--sp-32); justify-items: center; text-align: center; }
	.sk-qsn-tete .sk-qsn-portrait img, .sk-qsn-tete img.sk-qsn-portrait { width: 200px; height: 200px; }
	.sk-qsn-tete__texte h2 { font-size: var(--fs-28); }
	.sk-qsn-deux, .sk-qsn-trois { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	.sk-carte-info { padding: var(--sp-20); }
	.sk-statut { padding: 92px var(--sp-20) var(--sp-20); }
	.sk-statut::before { top: var(--sp-20); left: var(--sp-20); }
	.sk-statut::after { top: calc(var(--sp-20) + 16px); left: calc(var(--sp-20) + 16px); }
	.sk-qsn-chapo p { font-size: var(--fs-18); }
	.sk-qsn-chiffres { padding: var(--sp-24) var(--sp-16); }
	.sk-qsn-trois .sk-carte-info { padding-top: 76px; }
	.sk-qsn-trois .sk-carte-info::before { top: var(--sp-20); left: var(--sp-20); }
	.sk-qsn-trois .sk-carte-info::after { top: calc(var(--sp-20) + 11px); left: calc(var(--sp-20) + 11px); }
	.sk-qsn-fin { padding: var(--sp-32) var(--sp-20); }
}
/* Le logo Insist est un carré de 500 px avec le logo au milieu : on ne garde que la bande centrale. */
.sk-carte-info.sk-partenaire img.sk-partenaire__logo { width: 200px; height: 64px; object-fit: cover; }
.sk-regles ul { margin-bottom: var(--sp-20); }
.sk-qsn-maj { width: 100%; }
@media (max-width: 991px) { .sk-qsn-tete__texte { align-items: center; text-align: center; } }

/* Pages légales (mu-plugins/bp-skeditions-legal.php) : pleine largeur, sommaire collant à gauche, texte dans une carte. */
.sk-page__contenu:has(.sk-legal) { max-width: none; }
.sk-legal { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--sp-40); align-items: start; width: 100%; }
.sk-legal--seul { grid-template-columns: minmax(0, 1fr); }
.sk-legal__sommaire { position: sticky; top: 110px; max-height: calc(100vh - 140px); overflow-y: auto; padding: var(--sp-24); border-radius: var(--radius-md); background: var(--color-primary-soft); }
.sk-legal__sommaire-titre { margin: 0 0 var(--sp-12); color: var(--color-primary); font: 700 var(--fs-14)/1.2 var(--font-heading); text-transform: uppercase; letter-spacing: .08em; }
.sk-legal__sommaire ol { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; list-style: none; }
.sk-legal__sommaire li { margin: 0; }
.sk-legal__sommaire a { display: block; padding: 6px 10px; border-radius: var(--radius-sm); color: var(--color-dark); font-size: var(--fs-14); line-height: 1.35; text-decoration: none; transition: background-color .2s, color .2s; }
.sk-legal__sommaire a:hover, .sk-legal__sommaire a:focus-visible { background: var(--color-white); color: var(--color-primary); }
.sk-legal__texte { min-width: 0; padding: var(--sp-40) var(--sp-48, 48px); border-radius: var(--radius-md); background: var(--color-white); box-shadow: var(--shadow-faint); }
.sk-legal__texte > :first-child, .sk-legal__texte > .cmplz-document > :first-child { margin-top: 0; }
.sk-legal__texte :is(h2, h3, h4) { scroll-margin-top: 120px; color: var(--color-dark); }
.sk-legal__texte h2 { margin: var(--sp-40) 0 var(--sp-12); font-size: var(--fs-24); }
.sk-legal__texte h3 { margin: var(--sp-40) 0 var(--sp-12); padding-top: var(--sp-24); border-top: 1px solid var(--color-grey-2); font-size: var(--fs-24); }
.sk-legal__texte > h3:first-child { padding-top: 0; border-top: 0; }
.sk-legal__texte h4 { margin: var(--sp-24) 0 var(--sp-8); font-size: var(--fs-18); color: var(--color-primary); }
.sk-legal__texte p, .sk-legal__texte li { max-width: 90ch; }
.sk-legal__texte ul, .sk-legal__texte ol { padding-left: 1.4em; }
.sk-legal__texte li { margin-bottom: 6px; }
/* Complianz : ses tableaux de cookies et ses blocs dépliables, aux couleurs du site. */
.sk-legal__texte .cmplz-document { max-width: none; font-size: inherit; }
.sk-legal__texte .cmplz-document h2 { margin-top: var(--sp-40); padding-top: var(--sp-24); border-top: 1px solid var(--color-grey-2); }
.sk-legal__texte .cmplz-document h2:first-of-type { margin-top: var(--sp-24); padding-top: 0; border-top: 0; }
.sk-legal__texte .cmplz-document details, .sk-legal__texte .cmplz-document .cmplz-dropdown { margin: 0 0 var(--sp-12); border: 1px solid var(--color-grey-2) !important; border-radius: var(--radius-sm); background: #FBF7F7 !important; }
.sk-legal__texte .cmplz-document summary { padding: var(--sp-12) var(--sp-16); color: var(--color-dark); font-family: var(--font-heading); font-weight: 700; cursor: pointer; }
.sk-legal__texte .cmplz-document table { width: 100%; border-collapse: collapse; font-size: var(--fs-14); }
.sk-legal__texte .cmplz-document :is(th, td) { padding: 8px 10px; border-bottom: 1px solid var(--color-grey-2); text-align: left; vertical-align: top; }
.sk-legal__texte .cmplz-document a { color: var(--color-primary); }
@media (max-width: 991px) {
	.sk-legal { grid-template-columns: minmax(0, 1fr); gap: var(--sp-20); }
	.sk-legal__sommaire { position: static; max-height: none; }
	.sk-legal__texte { padding: var(--sp-24); }
}
@media (max-width: 600px) {
	.sk-legal__texte { padding: var(--sp-20) var(--sp-16); }
	.sk-legal__texte :is(h2, h3) { font-size: var(--fs-20); }
	.sk-legal__sommaire ol { display: grid; grid-template-columns: minmax(0, 1fr); }
}
.sk-legal__texte #cmplz-document { max-width: none !important; font-size: var(--fs-16) !important; line-height: 1.7; color: var(--color-text); }
.sk-legal__texte #cmplz-document :is(p, li, td, span, summary) { font-size: inherit; }
.sk-legal__texte #cmplz-document h2 { font-size: var(--fs-24) !important; }
.sk-legal__texte #cmplz-document h3 { font-size: var(--fs-20) !important; }
/* Listes d’un seul élément dont la première ligne est un intertitre (politique de confidentialité) : en encadrés. */
.sk-legal__texte ul:has(> li:only-child br) { margin: 0 0 var(--sp-12); padding: 0; list-style: none; }
.sk-legal__texte ul:has(> li:only-child br) > li { max-width: none; margin: 0; padding: var(--sp-16) var(--sp-20); border-left: 3px solid var(--color-primary); border-radius: var(--radius-sm); background: #FBF7F7; }
.sk-legal__texte ul:has(> li:only-child br) > li::first-line { color: var(--color-dark); font-family: var(--font-heading); font-weight: 700; }
/* Mentions légales : quatre rubriques en cartes, sans sommaire. */
.sk-legal:has(.sk-mentions) { grid-template-columns: minmax(0, 1fr); }
.sk-legal:has(.sk-mentions) .sk-legal__sommaire { display: none; }
.sk-legal__texte:has(.sk-mentions) { padding: 0; background: none; box-shadow: none; }
.sk-mentions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-24); }
.sk-mentions section { padding: var(--sp-32); border-radius: var(--radius-md); background: var(--color-white); box-shadow: var(--shadow-faint); }
.sk-legal__texte .sk-mentions h3 { margin: 0 0 var(--sp-16); padding: 0; border: 0; font-size: var(--fs-20); color: var(--color-primary); }
.sk-mentions p { margin: 0 0 var(--sp-12); }
.sk-mentions p:last-child, .sk-mentions ul:last-child { margin-bottom: 0; }
@media (max-width: 767px) { .sk-mentions { grid-template-columns: minmax(0, 1fr); } .sk-mentions section { padding: var(--sp-20); } }

/* Appel à textes (mu-plugins/bp-skeditions-manuscrits.php) : statut ouvert, et le formulaire de soumission. */
.sk-statut--ouvert { background: #EAF6EE; }
.sk-statut--ouvert::before { background: #1E7F3C; }
.sk-statut--ouvert::after { --sk-statut-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z'/%3E%3C/svg%3E"); }
.sk-statut--ouvert h2 { color: #1E7F3C; }
.sk-statut .sk-statut__pastille { display: inline-block; margin: 0 0 var(--sp-8); padding: 4px 12px; border-radius: var(--radius-full); background: #1E7F3C; color: var(--color-white); font: 700 var(--fs-12, 12px)/1.4 var(--font-heading); letter-spacing: .06em; text-transform: uppercase; }
.sk-statut__theme { font-size: var(--fs-18); }
.sk-statut .sk-btn { margin-top: var(--sp-8); }
.sk-appel { scroll-margin-top: 110px; }
.sk-appel h2 { margin-bottom: 6px; }
.sk-appel__aide { margin: 0 0 var(--sp-24) !important; color: var(--color-text-muted); font-size: var(--fs-14); }
.sk-appel .gform_wrapper .gform_required_legend { display: none; }
.sk-appel .gform_wrapper input[type="file"] { width: 100%; height: auto !important; min-height: 64px; line-height: 1.4 !important; padding: var(--sp-16); border: 2px dashed var(--color-grey-2); border-radius: var(--radius-sm); background: #FBF7F7; font-size: var(--fs-14); }
.sk-appel .gform_wrapper input[type="file"]::file-selector-button { margin-right: var(--sp-16); padding: 10px 20px; border: 0; border-radius: var(--radius-sm); background: var(--color-primary-soft); color: var(--color-primary); font: 700 var(--fs-14)/1 var(--font-heading); cursor: pointer; }
.sk-appel .gform_wrapper input[type="file"]::file-selector-button:hover { background: var(--color-primary); color: var(--color-white); }
.sk-appel .gform_wrapper .gform_fileupload_rules, .sk-appel .gform_wrapper .gfield_description { color: var(--color-text-muted); font-size: var(--fs-14); }
.sk-appel .gform_confirmation_message { padding: var(--sp-24); border-radius: var(--radius-sm); background: #EAF6EE; color: var(--color-dark); line-height: 1.6; }
.sk-appel .gform_confirmation_message p { margin: 0 0 var(--sp-8); }
@media (max-width: 600px) {
	.sk-appel .gform_wrapper .gform_button { width: 100%; }
}

/* Qui sommes-nous, 04/11/2026 : chiffres sur la photo du livre ouvert (médiathèque n° 415337) sous un voile noir,
   et les deux encarts à la même hauteur, le texte de droite réparti sur toute la hauteur. */
.sk-qsn-chiffres { padding: var(--sp-64, 64px) var(--sp-32); background: radial-gradient(ellipse at center, rgba(10, 10, 14, .6) 0%, rgba(10, 10, 14, .3) 100%), url("/wp-content/uploads/2026/11/qsn-chiffres-livre-ouvert-2048x1148.jpg") center 62% / cover no-repeat; }
.sk-qsn-chiffres .sk-chiffres dt { color: var(--color-white); text-shadow: 0 2px 12px rgba(0, 0, 0, .45); }
.sk-qsn-chiffres .sk-chiffres dd { color: rgba(255, 255, 255, .88); text-shadow: 0 1px 8px rgba(0, 0, 0, .7); }
.sk-qsn-deux { align-items: stretch; }
.sk-qsn-deux > .sk-carte-info { display: flex; flex-direction: column; height: 100%; }
.sk-qsn-deux > .sk-carte-info > .brxe-text { display: flex; flex: 1; flex-direction: column; justify-content: space-between; }
.sk-qsn-deux > .sk-carte-info > .brxe-text p { margin: 0; }
.sk-qsn-deux > .sk-carte-info > .brxe-text p + p { margin-top: var(--sp-12); }
.sk-qsn-deux > .sk-carte-info--rose > .brxe-text p + p { padding-top: var(--sp-16); border-top: 1px solid rgba(129, 30, 39, .15); } /* l'espace en plus de cet encart, plus court, devient un rythme voulu */
@media (max-width: 991px) {
	.sk-qsn-deux > .sk-carte-info { height: auto; }
	.sk-qsn-deux > .sk-carte-info > .brxe-text { justify-content: flex-start; }
}
@media (max-width: 600px) {
	.sk-qsn-chiffres { padding: var(--sp-40) var(--sp-16); }
}

/* Qui sommes-nous, 04/11/2026 : le merci final sur la photo des livres à la bougie (médiathèque n° 415338). Voile plus dense
   au centre, où se trouvent le titre et le bouton, plus léger sur les bords pour laisser voir la bougie et les livres. */
.sk-qsn-fin { padding: var(--sp-80, 80px) var(--sp-32); background: radial-gradient(ellipse at center, rgba(10, 10, 14, .6) 0%, rgba(10, 10, 14, .3) 100%), url("/wp-content/uploads/2026/11/qsn-merci-livres-bougie-2048x1153.jpg") center / cover no-repeat; color: rgba(255, 255, 255, .86); }
.sk-qsn-fin h2, .sk-qsn-fin p { text-shadow: 0 1px 10px rgba(0, 0, 0, .6); }
@media (max-width: 600px) {
	.sk-qsn-fin { padding: var(--sp-48, 48px) var(--sp-20); }
}
/* Les trois engagements à la même hauteur (une ligne de grille ; les blocs Bricks ne s'étiraient pas). */
.sk-qsn-trois { align-items: stretch; }
.sk-qsn-trois > .sk-carte-info { height: 100%; }
@media (max-width: 991px) { .sk-qsn-trois > .sk-carte-info { height: auto; } }

/* Vos manuscrits, 04/11/2026 : encart d'aide (appel ouvert) et meilleure vente dans la colonne de droite. */
.sk-appel-aide { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-12); }
.sk-appel-aide p { margin: 0; }
.sk-appel-aide .sk-btn { margin-top: var(--sp-8); }
.sk-cote-vente { width: 100%; }
.sk-cote-vente .sk-vente { height: auto; padding: var(--sp-32) var(--sp-24); border-radius: var(--radius-md); }
.sk-cote-vente .sk-vente__titre { font-size: var(--fs-28); }
.sk-cote-vente .sk-vente__couv { flex: 0 0 260px; margin-top: var(--sp-8); }
.sk-statut--bientot { background: #FFF6E5; }
.sk-statut--bientot::before, .sk-statut--bientot .sk-statut__pastille { background: #B7791F; }
.sk-statut--bientot h2 { color: #8A5A12; }
.sk-statut--bientot::after { --sk-statut-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 16H5V9h14zM7 11h5v5H7z'/%3E%3C/svg%3E"); }
.sk-info__cote:has(.sk-cote-vente) { position: static; } /* plus haute que l'écran : collante, ses derniers encarts resteraient cachés */

/* Pages « maison » dont la colonne principale n'a qu'une carte (service presse) : la carte prend la hauteur de la
   colonne de droite ; les étapes s'espacent et les boutons descendent en bas de la carte. */
@media (min-width: 992px) {
	.sk-info:has(> .sk-info__principal > .sk-carte-info:only-child) { align-items: stretch; }
	.sk-info__principal:has(> .sk-carte-info:only-child) { display: flex; flex-direction: column; }
	.sk-info__principal > .sk-carte-info:only-child { display: flex; flex: 1; flex-direction: column; }
	.sk-info__principal > .sk-etapes:only-child > .brxe-text { display: flex; flex: 1; flex-direction: column; }
	.sk-info__principal > .sk-etapes:only-child ol { flex: 1; justify-content: space-evenly; }
	.sk-info__principal > .sk-etapes:only-child > .brxe-text > p:last-child { margin-top: auto; }
}

/* Vos manuscrits, 04/11/2026 : l'encart d'état sur la photo du stylo plume (Adobe Stock 860156099, déjà sur l'accueil),
   sous un voile de la couleur de l'état — rouge fermé, vert ouvert, ambre bientôt —, dense sous le texte à gauche,
   plus léger à droite où se trouve le stylo. Texte en blanc. */
.sk-statut { --sk-statut-voile: 129, 30, 39; background: linear-gradient(90deg, rgba(var(--sk-statut-voile), .93) 0%, rgba(var(--sk-statut-voile), .88) 55%, rgba(var(--sk-statut-voile), .66) 100%), url('fond-auteurs-1200.webp') right center / cover no-repeat, rgb(var(--sk-statut-voile)); color: rgba(255, 255, 255, .9); }
.sk-statut--ouvert { --sk-statut-voile: 22, 92, 48; }
.sk-statut--bientot { --sk-statut-voile: 138, 88, 14; }
.sk-statut h2, .sk-statut--ouvert h2, .sk-statut--bientot h2, .sk-statut strong { color: var(--color-white); }
.sk-statut::before, .sk-statut--ouvert::before, .sk-statut--bientot::before { background: var(--color-white); }
.sk-statut::after { background: rgb(var(--sk-statut-voile)); }
.sk-statut .sk-statut__pastille, .sk-statut--bientot .sk-statut__pastille { background: var(--color-white); color: rgb(var(--sk-statut-voile)); }
.sk-statut a:not(.sk-btn) { color: var(--color-white); }
@media (max-width: 600px) {
	.sk-statut { background: linear-gradient(rgba(var(--sk-statut-voile), .9), rgba(var(--sk-statut-voile), .9)), url('fond-auteurs-1200.webp') 80% center / cover no-repeat, rgb(var(--sk-statut-voile)); }
}

/* Votre avis, 04/11/2026 : le « G » de Google, en couleurs, devant le titre du bloc Google. */
.sk-votre-avis__bloc--google h2 { display: flex; align-items: center; gap: var(--sp-12); }
.sk-logo-google { flex: none; width: 28px; height: 28px; padding: 6px; box-sizing: content-box; border-radius: var(--radius-full); background: var(--color-white); box-shadow: 0 2px 8px rgba(17, 20, 45, .1); }

/* Votre avis, 04/11/2026 : le popup « Le partager aussi sur Google ? » après l'envoi du formulaire (toutes les notes). */
.sk-avis-google { width: min(520px, calc(100vw - 32px)); padding: var(--sp-32); border: 0; border-radius: var(--radius-lg); background: var(--color-white); color: var(--color-text); box-shadow: 0 24px 60px rgba(17, 20, 45, .3); }
.sk-avis-google::backdrop { background: rgba(17, 20, 45, .55); }
.sk-avis-google__fermer { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border: 0; border-radius: var(--radius-full); background: var(--color-grey-3, #F4F4F6); color: var(--color-dark); font: 400 22px/1 var(--font-body); cursor: pointer; }
.sk-avis-google__fermer:hover { background: var(--color-primary-soft); color: var(--color-primary); }
.sk-avis-google__merci { margin: 0 0 var(--sp-8); color: #1E7F3C; font: 700 var(--fs-14)/1.3 var(--font-heading); }
.sk-avis-google h2 { display: flex; align-items: center; gap: var(--sp-12); margin: 0 0 var(--sp-12); padding-right: 40px; font: 700 var(--fs-24)/1.2 var(--font-heading); color: var(--color-dark); }
.sk-avis-google h2 svg { flex: none; }
.sk-avis-google p { margin: 0 0 var(--sp-16); line-height: 1.6; }
.sk-avis-google__texte { width: 100%; margin-bottom: var(--sp-20); padding: 12px 14px; border: 2px solid var(--color-grey-2); border-radius: var(--radius-sm); background: #FBF7F7; font: 400 var(--fs-14)/1.5 var(--font-body); resize: none; }
.sk-avis-google__actions { display: flex; flex-wrap: wrap; gap: var(--sp-12); }
.sk-avis-google__etat { margin: var(--sp-12) 0 0 !important; min-height: 1.4em; color: #1E7F3C; font-size: var(--fs-14); }
@media (max-width: 600px) {
	.sk-avis-google { padding: var(--sp-24) var(--sp-20); }
	.sk-avis-google__actions .sk-btn { width: 100%; justify-content: center; }
}

/* Page Cookies : le lien « Gestion Consentement » du pied de page descend aux réglages de Complianz et les signale (menu.js). */
@keyframes sk-consentement-vu { 0%, 60% { box-shadow: 0 0 0 4px var(--color-primary); } 100% { box-shadow: 0 0 0 4px transparent; } }
#cmplz-manage-consent-container.sk-consentement-vu { border-radius: var(--radius-sm); animation: sk-consentement-vu 2.4s ease-out; scroll-margin-top: 140px; }
@media (prefers-reduced-motion: reduce) { #cmplz-manage-consent-container.sk-consentement-vu { animation: none; box-shadow: 0 0 0 3px var(--color-primary); } }

/* « Paiement complété par Bancontact » de Mollie (commande dans Mon compte, remerciement) : Mollie l'enveloppe dans
   section.woocommerce-info.mollie-instructions, dont l'icône de police WooCommerce débordait devant le texte.
   On en fait une ligne de confirmation, coche verte dessinée en CSS à la place de l'icône. */
.woocommerce-info.mollie-instructions, .woocommerce .woocommerce-info.mollie-instructions { position: relative; display: block; margin: var(--sp-24) 0; padding: var(--sp-12) var(--sp-16) var(--sp-12) 52px; border: 0; border-radius: var(--radius-sm); background: #EAF6EE; color: var(--color-dark); font-size: var(--fs-16); line-height: 1.5; }
.woocommerce-info.mollie-instructions::before, .woocommerce .woocommerce-info.mollie-instructions::before { content: ""; position: absolute; top: 50%; left: 16px; width: 22px; height: 22px; margin: 0; transform: translateY(-50%); border-radius: var(--radius-full); background: #1E7F3C url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 14px no-repeat; font-family: inherit; }
.woocommerce-info.mollie-instructions p { margin: 0; }

/* Cartes livres sur mobile (04/11/2026, toutes les rangées et grilles .sk-grille) : sans le titre — le lien et la couverture
   suffisent, le titre reste lu par les lecteurs d'écran —, l'auteur puis le prix ; la note, quand il y en a, sur sa
   ligne, à gauche. La vue liste de la boutique (.sk-cl) garde son titre. */
@media (max-width: 767px) {
	.sk-grille .woocommerce-loop-product__title { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
	.sk-grille ul.products li.product a.woocommerce-LoopProduct-link > .price { flex: 0 0 100%; }
	.sk-grille ul.products li.product a.woocommerce-LoopProduct-link > .star-rating { margin-left: 0 !important; }
}

/* Accueil, sous les avis : « Ajouter votre avis » (page Votre avis), centré. */
.sk-avis-defilants__actions { display: flex; justify-content: center; margin: 0; }

/* Pied de page sur mobile (une colonne) : tout centré. */
@media (max-width: 767px) {
	.sk-pied__grille { text-align: center; }
	.sk-pied__grille > * { align-items: center; }
	.sk-pied__baseline { margin-inline: auto; }
	.sk-pied .sk-logo img { margin-inline: auto; } /* image en bloc dans un lien pleine largeur */
	.sk-pied__reseaux { justify-content: center; }
	.sk-pied .bricks-nav-menu { align-items: center; }
	.sk-pied .brxe-nav-menu, .sk-pied .bricks-nav-menu-wrapper { display: flex; justify-content: center; width: 100%; }
	.sk-pied__bas { flex-direction: column; align-items: center; justify-content: center; text-align: center; }
}

/* Détails d'une ligne de panier (format d'un livre, destinataire d'un bon cadeau…) : un libellé, une valeur par ligne.
   Bricks les met en flex sur une seule ligne, illisible dès qu'il y en a plusieurs. */
dl.variation { display: grid !important; grid-template-columns: auto minmax(0, 1fr); gap: 2px var(--sp-8); margin: var(--sp-4) 0 0; font-size: var(--fs-14); line-height: 1.45; }
dl.variation dt { margin: 0; font-weight: 600; color: var(--color-text-muted); float: none; clear: none; }
dl.variation dd { margin: 0; float: none; overflow-wrap: anywhere; }
dl.variation dd p { margin: 0; }


/* Couvertures jamais rognées (demande de la cliente, ticket du 16/04/2025, point 8) : 525 couvertures sur 530 sont au
   format 1:1,41 et ne changent pas ; les quelques autres (carrées, plus allongées) s'affichent entières, sur un fond
   discret, au lieu d'être coupées. Relevé du 04/11/2026. */
.sk-grille ul.products li.product img, .sk-carrousel__carte img, .sk-fiche-couverture .woocommerce-product-gallery__image img,
.sk-lie__couv img, .woocommerce-cart-form .product-thumbnail img, .sk-ebook__couv img, .sk-merci__couv img, .sk-suggest img,
.sk-cl__couv img, .sk-serie__image, .sk-couvertures__livre img, .sk-vente__couv img, .sk-cdc__couv img {
	object-fit: contain !important; background-color: var(--color-grey-3);
}
