/* E-librairie : langage commun à toutes les pages (hors typographie du texte des livres). */
body { --radius: 1rem; }
body .entete-site.barre-haut { height: 72px; background: color-mix(in srgb,var(--background) 94%,transparent); box-shadow: none; }
body .nom-site { letter-spacing: -.025em; }
body .entete-site .btn, body .entete-site .declencheur-langue { border-radius: 999px; }
body .entete-site .nav-site a { font-size: 14px; font-weight: 550; }
body .contenu { padding-bottom: 64px; }
body .bandeau-page { background: var(--background); border-bottom: 0; }
body .bandeau-page-int { padding-top: 32px; padding-bottom: 20px; }
body .bandeau-page h1 { font-size: clamp(30px,4vw,48px); line-height: 1.08; letter-spacing: -.04em; }
body .bandeau-page p { font-size: 16px; }
body .fil-ariane { font-size: 13px; margin-bottom: 8px; }
body .carte-formulaire, body .compte-bloc, body .note-carte, body .panneau-centre { background: var(--card); border: 1px solid var(--border); border-radius: 24px; box-shadow: 0 8px 26px rgb(0 0 0 / .025); }
body .carte-formulaire { padding: clamp(24px,4vw,40px); }
body .carte-formulaire h1 { font-size: clamp(28px,3.2vw,36px); line-height: 1.12; letter-spacing: -.035em; }
body .groupe-champ label { font-size: 14px; font-weight: 550; }
body .groupe-champ input, body .groupe-champ select, body .groupe-champ textarea { border-radius: 14px; background: var(--input); }
body .btn { min-height: 46px; border-radius: 999px; }
body .btn:not(.outline):not(.soft):not(.danger) { background: var(--accent-citron); color: #171717; font-weight: 650; }
body .btn.outline { background: transparent; border-color: var(--border); color: var(--foreground); }
body .btn-icone { border-radius: 50%; min-width: 44px; min-height: 44px; }
body .tag, body .filtres a { border-radius: 999px; }
body .fiche { display: grid; grid-template-columns: minmax(180px,260px) minmax(0,1fr); gap: clamp(28px,6vw,80px); align-items: start; padding-block: 28px 40px; background: none; border: 0; }
body .fiche > .couverture { width: 100%; max-width: 260px; aspect-ratio: 2/3; border-radius: 5px; box-shadow: 0 12px 28px rgb(0 0 0 / .13); }
body .fiche h1 { font-size: clamp(30px,3.8vw,48px); line-height: 1.08; letter-spacing: -.035em; }
body .fiche .description { font-size: 16px; line-height: 1.8; max-width: 64ch; }
body .liste-chapitres { border-radius: 18px; overflow: hidden; border: 1px solid var(--border); background: var(--card); }
body .liste-chapitres li { border-radius: 0; box-shadow: none; }
body .liste-chapitres li a { min-height: 60px; }
body .compte-grille { gap: 24px; }
body .compte-bloc { padding: 24px; }
body .compte-bloc h2 { font-size: 22px; letter-spacing: -.025em; }
body .note-carte { padding: 20px; }
body .abo-prix { background: radial-gradient(ellipse at top left,color-mix(in srgb,var(--accent-citron) 12%,transparent),transparent 75%),var(--card); border-radius: 22px; }
body .auth-aside { background: radial-gradient(ellipse at center,color-mix(in srgb,var(--accent-citron) 9%,transparent),transparent 75%); border: 0; }
body dialog.feuille { border-radius: 24px; background: var(--card); }
body dialog.feuille-menu { border-radius: 24px 0 0 24px; }
body dialog::backdrop { background: rgb(0 0 0 / .35); backdrop-filter: blur(5px); }
body .pied.pied-site { background: var(--background); border-top: 1px solid var(--border); }
body .barre-lecteur { background: color-mix(in srgb,var(--background) 94%,transparent); border-bottom: 1px solid var(--border); }
body .barre-lecteur .btn-icone { background: var(--card); }
body .barre-lecteur .btn-icone[aria-pressed="true"] { background: var(--accent-citron); color: #171717; }
body .reglages { border-radius: 22px; }
body a:focus-visible, body button:focus-visible, body input:focus-visible, body summary:focus-visible { outline: 2px solid var(--ring); outline-offset: 3px; }
@media(max-width:720px) {
 body .fiche { grid-template-columns: minmax(0,1fr); gap: 28px; }
 body .fiche > .couverture { width: min(56vw,220px); margin-inline: auto; }
 body .fiche .actions { display: flex; flex-wrap: wrap; gap: 10px; }
 body .carte-formulaire { border-radius: 22px; }
 body .bandeau-page-int { padding-top: 24px; }
 body .compte-bloc { padding: 20px; }
}
body .livre-item.livre-immersif { display: block; min-height: 0; aspect-ratio: auto; overflow: visible; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body .livre-item.livre-immersif::after { content: none; }
body .livre-item.livre-immersif > a.livre-visuel { position: relative; inset: auto; display: block; border-radius: 5px; overflow: visible; }
body .livre-item.livre-immersif > a.livre-visuel .couverture { width: 100%; height: auto; aspect-ratio: 2/3; padding: 0; border-radius: 5px; box-shadow: 0 5px 12px rgb(0 0 0 / .1); }
body .livre-immersif .couverture img { object-fit: contain; }
body .livre-immersif .couverture strong, body .livre-immersif .couverture-bas { visibility: visible; }
body .livre-legende { position: static; padding: 14px 0 0; color: var(--foreground); pointer-events: auto; }
body .livre-item.livre-immersif h2, body .livre-item.livre-immersif h3 { color: var(--foreground); font-size: 16px; line-height: 1.3; letter-spacing: -.02em; margin: 0 0 6px; }
body .livre-autrice { color: var(--muted-foreground); font-size: 13px; margin: 0 0 8px; }
body .livre-details { color: var(--muted-foreground); font-size: 12px; margin-bottom: 8px; }
body .livre-extrait { display: inline-flex; justify-content: flex-start; width: auto; gap: 6px; padding: 0; min-height: 44px; background: none; color: var(--foreground); border-radius: 0; font-size: 13px; text-decoration: underline; text-underline-offset: 4px; }

/* Positions explicites : neutralise l'ancienne fiche hors-centre. */
body .fiche > .couverture { grid-column: 1; grid-row: 1; justify-self: start; position: relative; top: auto; min-width: 0; padding: 0; }
body .fiche > div:not(.couverture) { grid-column: 2; grid-row: 1; min-width: 0; }
body .fiche h1 { max-width: 24ch; }
@media(max-width:720px) {
 body .fiche > .couverture { grid-column: 1; grid-row: 1; justify-self: center; }
 body .fiche > div:not(.couverture) { grid-column: 1; grid-row: 2; }
}
body .contenu:has(> .fiche) { display: block; }
body .fiche { width: 100%; max-width: none; }
/* Formulaires : composition compacte de la référence de droite. */
.page-auth-compacte .auth-page { display: block; margin: 24px auto 48px; max-width: 440px; }
.page-auth-compacte .auth-aside { display: none; }
.page-auth-compacte .carte-formulaire { width: 100%; margin: 0; padding: clamp(28px,5vw,40px); border-radius: 30px; }
.page-auth-compacte .carte-formulaire h1 { font-size: 28px; margin-bottom: 8px; }
.auth-sous-titre { font-size: 13px; margin-bottom: 28px; }
.auth-sous-titre a { font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.page-auth-compacte .groupe-champ { margin-bottom: 18px; }
.page-auth-compacte .groupe-champ input { min-height: 48px; border-radius: 10px; }
.auth-oubli { font-size: 13px; margin: 0 0 24px; }
.page-auth-compacte .auth-page .btn.plein { min-height: 48px; border-radius: 999px; }
.auth-social-titre { font-size: 12px; text-align: center; }
.auth-social { display: flex; justify-content: center; gap: 14px; }
.auth-google { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--soft); border: 1px solid var(--border); font: 700 24px/1 system-ui; }
.auth-legal { text-align: center; font-size: 11px; color: var(--muted-foreground); margin: 36px 0 0; line-height: 1.6; }
/* Profil : identité, groupes et lignes de réglages. */
.page-profil .contenu { max-width: 760px; }
.profil-identite { display: flex; align-items: center; gap: 16px; padding: 24px; border: 1px solid var(--border); border-radius: 18px; background: var(--card); margin-bottom: 28px; }
.profil-avatar { display: grid; place-items: center; flex: 0 0 54px; height: 54px; border-radius: 50%; background: var(--accent-citron); color: #171717; font-size: 24px; font-weight: 650; }
.profil-identite h1 { font-size: 21px; margin: 0 0 5px; letter-spacing: -.025em; }
.profil-identite p { font-size: 14px; margin: 0; color: var(--muted-foreground); overflow-wrap: anywhere; }
.profil-rubrique { color: var(--muted-foreground); font-size: 13px; font-weight: 550; margin: 24px 8px 10px; }
.page-profil .compte-grille { display: block; border: 1px solid var(--border); background: var(--card); border-radius: 16px; overflow: hidden; }
body.page-profil .compte-bloc.profil-ligne { border: 0; border-radius: 0; padding: 0; box-shadow: none; margin: 0; }
.profil-ligne + .profil-ligne { border-top: 1px solid var(--border) !important; }
.profil-ligne summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; padding: 16px 20px; font-size: 15px; font-weight: 550; cursor: pointer; list-style: none; }
.profil-ligne summary::-webkit-details-marker { display: none; }
.profil-ligne summary > span { font-size: 23px; color: var(--muted-foreground); }
.profil-ligne[open] summary > span { transform: rotate(90deg); }
.profil-detail { padding: 0 20px 20px; }
.profil-liste { border: 1px solid var(--border); border-radius: 16px; background: var(--card); overflow: hidden; }
.profil-action { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 14px 20px; border: 0; border-radius: 0; background: none; color: var(--foreground); text-align: start; font: inherit; font-size: 15px; }
.profil-action + .profil-action { border-top: 1px solid var(--border); }
.profil-action > span:nth-child(2) { flex: 1; }
.profil-action small { margin-inline-start: auto; }
.profil-action:hover { background: var(--soft); }
.profil-action .ico, .profil-action svg { width: 18px; height: 18px; }
.page-profil .compte-sensible { margin-top: 28px; }
@media(max-width:600px) { .profil-identite { padding: 20px; } .page-auth-compacte .auth-page { margin-top: 12px; } }
/* Hero : message lisible et affiche entière, dans deux zones distinctes. */
body.site-vitrine .madeleine-diaporama { margin: 16px auto 0; width: calc(100% - 32px); max-width: 1440px; min-height: 660px; border-radius: 28px; background: #171717; color: #f4f4f1; }
body.site-vitrine .madeleine-diapo { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); align-items: center; place-items: center; gap: clamp(28px,4vw,64px); min-height: 660px; padding: 48px clamp(28px,5vw,72px); text-align: start; }
body.site-vitrine .madeleine-diapo[hidden] { display: none; }
body.site-vitrine .madeleine-diapo::after { background: radial-gradient(ellipse at 90% 30%,rgb(198 255 52 / .08),transparent 65%); }
body.site-vitrine .madeleine-diapo__texte { grid-column: 1; grid-row: 1; width: 100%; max-width: 600px; }
body.site-vitrine .madeleine-diapo__texte .tag { color: #c6ff34; font-size: 11px; letter-spacing: .18em; margin-bottom: 24px; }
body.site-vitrine .madeleine-diapo__texte h1, body.site-vitrine .madeleine-diapo__texte h2 { font-size: clamp(36px,4.3vw,62px); font-weight: 650; line-height: 1.07; letter-spacing: -.04em; margin: 0 0 26px; max-width: 18ch; }
body.site-vitrine .madeleine-diapo__texte .mot-cle { background: none; color: #c6ff34; padding: 0; }
body.site-vitrine .madeleine-diapo__texte > p:not(.tag) { color: #d7dad1; font-size: clamp(17px,1.5vw,20px); line-height: 1.65; max-width: 38ch; margin: 0 0 32px; }
body.site-vitrine .madeleine-diapo__texte .actions { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 12px; }
body.site-vitrine .madeleine-diapo__texte .btn { min-height: 50px; padding-inline: 24px; border-radius: 999px; letter-spacing: 0; text-transform: none; font-size: 14px; }
body.site-vitrine .madeleine-diapo__texte .btn.outline { background: transparent; border: 1px solid #ffffff55; color: #f4f4f1; }
body.site-vitrine .madeleine-diapo > img { position: relative; inset: auto; grid-column: 2; grid-row: 1; z-index: 0; display: block; width: 100%; height: 564px; max-height: none; aspect-ratio: 2/3; object-fit: contain; object-position: center; border-radius: 12px; background: transparent; animation: none; box-shadow: none; }
@media (max-width:900px) {
 body.site-vitrine .madeleine-diapo { gap: 24px; padding: 32px; min-height: 580px; }
 body.site-vitrine .madeleine-diaporama { min-height: 580px; }
 body.site-vitrine .madeleine-diapo > img { height: 480px; }
 body.site-vitrine .madeleine-diapo__texte h1, body.site-vitrine .madeleine-diapo__texte h2 { font-size: 40px; }
}
@media (max-width:600px) {
 body.site-vitrine .madeleine-diaporama { width: calc(100% - 24px); margin-top: 12px; border-radius: 22px; min-height: 0; }
 body.site-vitrine .madeleine-diapo { grid-template-columns: minmax(0,1fr); gap: 26px; padding: 24px 24px 32px; min-height: 0; }
 body.site-vitrine .madeleine-diapo > img { grid-column: 1; grid-row: 1; width: 100%; height: 250px; }
 body.site-vitrine .madeleine-diapo__texte { grid-column: 1; grid-row: 2; }
 body.site-vitrine .madeleine-diapo__texte .tag { margin-bottom: 16px; font-size: 10px; }
 body.site-vitrine .madeleine-diapo__texte h1, body.site-vitrine .madeleine-diapo__texte h2 { font-size: clamp(32px,8.5vw,42px); margin-bottom: 20px; max-width: 19ch; }
 body.site-vitrine .madeleine-diapo__texte > p:not(.tag) { font-size: 16px; margin-bottom: 24px; }
 body.site-vitrine .madeleine-diapo__texte .actions { display: grid; grid-template-columns: minmax(0,1fr); }
 body.site-vitrine .madeleine-diapo__texte .btn { justify-content: center; }
}
@media (max-width:600px) { body.site-vitrine .madeleine-diapo__texte { min-height: 390px; display: flex; flex-direction: column; align-items: stretch; } body.site-vitrine .madeleine-diapo__texte .actions { margin-top: auto; } }
/* Hero : retour aux affiches en arrière-plan panoramique avec zoom lent. */
body.site-vitrine .madeleine-diapo { grid-template-columns: minmax(0,1fr); place-items: center start; }
body.site-vitrine .madeleine-diapo > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: center 45%; border-radius: 0; }
body.site-vitrine .madeleine-diapo::after { background: linear-gradient(90deg,rgb(23 23 23 / .94),rgb(23 23 23 / .8) 38%,rgb(23 23 23 / .3) 75%,rgb(23 23 23 / .2)),linear-gradient(to top,rgb(23 23 23 / .45),transparent 60%); }
body.site-vitrine .madeleine-diapo__texte { grid-column: 1; grid-row: 1; max-width: 600px; }
@media (prefers-reduced-motion:no-preference) {
 body.site-vitrine .madeleine-diapo:not([hidden]) > img { animation: madeleine-panorama 7s linear both; }
}
@media(max-width:600px) {
 body.site-vitrine .madeleine-diapo { min-height: 660px; padding: 52px 24px 40px; align-items: end; }
 body.site-vitrine .madeleine-diapo > img { position: absolute; grid-column: auto; grid-row: auto; width: 100%; height: 100%; object-position: center; }
 body.site-vitrine .madeleine-diapo__texte { grid-row: 1; min-height: 0; }
 body.site-vitrine .madeleine-diapo::after { background: linear-gradient(to top,rgb(23 23 23 / .96),rgb(23 23 23 / .76) 55%,rgb(23 23 23 / .25)); }
 body.site-vitrine .madeleine-diapo__texte .actions { margin-top: 0; }
}
/* Hero bord à bord, sans cadre. */
body.site-vitrine .madeleine-diaporama { width: 100%; max-width: none; margin: 0; border: 0; border-radius: 0; box-shadow: none; }
/* Une image absolue ne doit plus être rattachée à l'ancienne deuxième colonne. */
body.site-vitrine .madeleine-diapo > img { grid-area: auto; inset: 0; width: 100%; height: 100%; max-width: none; justify-self: auto; align-self: auto; }
.collections-bilingues .collection-langue { margin-top: 56px; }
.collections-bilingues .collection-langue > h2 { font-size: clamp(26px,3vw,36px); max-width: none; padding-bottom: 24px; border-bottom: 1px solid var(--border); }
.collection-rayon { margin-top: 30px; }
.collection-entete { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.collection-entete h3 { font-size: 21px !important; }
.collection-entete .lien { font-size: 13px; }
.collection-piste { display: flex; gap: 24px; overflow-x: auto; direction: ltr; margin: 0; padding: 8px 4px 14px; list-style: none; scrollbar-width: thin; }
.collection-piste > .livre-item { flex: 0 0 175px; min-width: 0; }
.collection-commandes { display: flex; justify-content: flex-end; gap: 8px; }
.collection-commandes[hidden] { display:none; }
.collection-commandes button { min-height:44px; min-width:44px; border:1px solid var(--border); border-radius:999px; padding:8px 16px; background:var(--card); color:var(--foreground); font:inherit; font-size:13px; }
.collection-vide { padding:20px; border:1px dashed var(--border); border-radius:14px; color:var(--muted-foreground); font-size:14px; }
@media(max-width:600px){.collection-piste{gap:18px;}.collection-piste>.livre-item{flex-basis:140px;}.collection-entete{display:block;}.collection-entete .lien{margin-top:6px;}}
.offres-choix { border:0; padding:0; margin:24px 0; min-width:0; }
.offres-choix legend { font-size:15px; font-weight:600; margin-bottom:16px; }
.offre-option { display:flex; align-items:center; gap:16px; padding:22px; border:1px solid var(--border); border-radius:18px; background:var(--card); margin:12px 0; cursor:pointer; }
.offre-option:has(input:checked) { border:2px solid var(--foreground); padding:21px; background:color-mix(in srgb,var(--accent-citron) 12%,var(--card)); }
.offre-option input { flex:0 0 22px; width:22px; height:22px; accent-color:var(--foreground); }
.offre-option strong { display:block; font-size:17px; }
.offre-montant { display:block; margin-top:10px; font-size:32px; line-height:1.2; font-weight:700; }
.offre-montant small { font-size:16px; font-weight:400; }
.offre-details { margin:18px 0; font-size:14px; }
.offre-details summary { min-height:44px; cursor:pointer; font-weight:550; }
.offres-choix legend { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
body.site-vitrine #abonnement h2 { font-size:clamp(27px,3vw,36px); margin-bottom:20px; }
.collection-langue,.collection-rayon { scroll-margin-top:96px; }
.collection-piste > .collection-annonce { flex:0 0 175px; min-width:0; }
.collection-annonce img { display:block; width:100%; height:auto; aspect-ratio:2/3; object-fit:contain; border-radius:5px; box-shadow:0 5px 12px rgb(0 0 0 / .1); }
.collection-annonce h4 { font-size:16px; line-height:1.3; margin:14px 0 6px; }
.collection-annonce p { font-size:13px; color:var(--muted-foreground); margin:0 0 10px; }
@media(max-width:600px){.collection-piste>.collection-annonce{flex-basis:140px;}}

.collection-piste { max-width:640px; }
@media(max-width:600px){.collection-piste{max-width:100%;}}
/* Ruban infini : aucune commande visible et aucun retour brusque au départ. */
.collection-piste { position:relative; scroll-behavior:auto !important; scroll-snap-type:none; scrollbar-width:none; }
.collection-piste::-webkit-scrollbar { display:none; }
.defilement-global { overflow:hidden; }
.defilement-global .collection-piste { max-width:none; width:100%; margin-top:30px; padding-inline:24px; }
.collection-piste [data-copie] { pointer-events:none; }
.collection-commandes { display:none !important; }

/* Les rayons restent fixes ; seule la bibliothèque défile. */
.collection-rayon .collection-piste { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:24px; max-width:none; overflow:visible; }
.collection-rayon .collection-piste > li { width:100%; max-width:175px; min-width:0; }
@media(max-width:600px){.collection-rayon .collection-piste{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}}


/* Rapprocher les sections de la vitrine et éviter les grandes bandes vides. */
body.site-vitrine .sv-section { padding-block:clamp(28px,3.5vw,44px); }
body.site-vitrine .defilement-global { padding-bottom:24px; }
body.site-vitrine .defilement-global + .collections-bilingues { padding-top:28px; }


.autrice-portrait{float:right;width:min(40%,260px);margin:0 0 24px 28px;}.autrice-portrait img{display:block;width:100%;height:auto;border-radius:18px;}.page-texte:has(.autrice-portrait)::after{content:"";display:block;clear:both;}@media(max-width:600px){.autrice-portrait{float:none;width:min(100%,300px);margin:0 auto 28px;}}


.page-texte .autrice-portrait{float:none;width:min(100%,260px);margin:20px 0;}@media(min-width:900px){.page-texte>section>.autrice-portrait{grid-column:1;grid-row:2/span 5;margin:20px 0 0;}}@media(max-width:600px){.page-texte .autrice-portrait{margin:20px auto 28px;}}

