:root { --catalog-primary:#531b53; --catalog-action:#bb2035; --catalog-paper:#fff; --catalog-bg:#f2f2f4; --catalog-ink:#211b22; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
.catalog-list-page { background:#f6f6f8; min-height:70vh; color:var(--catalog-ink); }
.catalog-list-hero { min-height:370px; display:grid; place-items:center; text-align:center; padding:130px 24px 70px; color:#fff; background:linear-gradient(100deg,rgba(42,10,43,.94),rgba(83,27,83,.78)),url('https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?auto=format&fit=crop&w=1800&q=85') center/cover; }
.catalog-list-hero__content { max-width:820px; }.catalog-eyebrow { color:#f1bdc5; text-transform:uppercase; letter-spacing:.16em; font-weight:800; font-size:.76rem; }
.catalog-list-hero h1 { margin:.5rem 0 1rem; font-size:clamp(2.5rem,6vw,4.8rem); line-height:1; }.catalog-list-hero p { margin:0 auto; max-width:700px; font-size:clamp(1rem,2vw,1.25rem); color:#f5edf5; }
.catalog-list-shell { max-width:1280px; margin:auto; }.catalog-list-tools { display:grid; grid-template-columns:2fr 1fr 1fr; gap:16px; margin:0 0 32px; padding:20px; background:#fff; border:1px solid #e7e2e7; border-radius:18px; box-shadow:0 14px 40px rgba(48,24,49,.07); }
.catalog-list-tools label { display:grid; gap:7px; font-size:.76rem; font-weight:800; text-transform:uppercase; color:#6c616d; }.catalog-list-tools input,.catalog-list-tools select { width:100%; min-height:48px; border:1px solid #ddd5de; border-radius:11px; padding:0 14px; color:var(--catalog-ink); background:#fff; }
.catalog-public-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }.catalog-public-card { overflow:hidden; border:1px solid #e5dfe6; border-radius:20px; background:#fff; box-shadow:0 12px 34px rgba(35,17,36,.08); transition:.25s ease; }.catalog-public-card:hover { transform:translateY(-5px); box-shadow:0 20px 46px rgba(35,17,36,.14); }
.catalog-public-card[hidden] { display:none; }.catalog-public-cover { aspect-ratio:4/5; display:grid; place-items:center; position:relative; overflow:hidden; background:linear-gradient(145deg,#6d2b6d,#321032); color:#fff; }.catalog-public-cover img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }.catalog-public-card:hover .catalog-public-cover img { transform:scale(1.035); }.catalog-public-cover>span { font-size:4rem; }
.catalog-public-cover b,.catalog-public-cover em { position:absolute; top:16px; padding:7px 11px; border-radius:999px; font-size:.72rem; font-style:normal; font-weight:800; }.catalog-public-cover b { left:16px; background:var(--catalog-action); }.catalog-public-cover em { right:16px; background:rgba(31,12,32,.83); }
.catalog-public-body { padding:22px; }.catalog-public-body>small { color:var(--catalog-action); font-weight:800; text-transform:uppercase; letter-spacing:.08em; }.catalog-public-body h2 { margin:7px 0 9px; font-size:1.35rem; }.catalog-public-body p { min-height:3.2em; color:#6c626d; line-height:1.6; }.catalog-public-meta { display:flex; flex-wrap:wrap; gap:14px; margin:18px 0; font-size:.82rem; color:#786d79; }.catalog-public-actions { display:flex; gap:10px; }.catalog-public-actions .button { flex:1; justify-content:center; }.catalog-public-actions .primary { background:var(--catalog-action); border-color:var(--catalog-action); }
.catalog-empty,.catalog-no-result { text-align:center; padding:70px 20px; color:#736974; }.catalog-empty i { font-size:3rem; color:var(--catalog-primary); }

.catalog-reader-body { margin:0; overflow:hidden; background:var(--catalog-bg); color:var(--catalog-ink); font-family:Manrope,Arial,sans-serif; }.catalog-reader { height:100dvh; display:grid; grid-template-rows:74px 1fr 66px; background:radial-gradient(circle at 50% 42%,#fff 0,#eceaed 58%,#d8d4d9 100%); }
.catalog-reader-header { z-index:20; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:20px; padding:10px 20px; color:#fff; background:linear-gradient(100deg,#351035,#531b53); box-shadow:0 5px 20px rgba(30,8,30,.25); }.catalog-reader-brand { display:flex; align-items:center; gap:9px; color:#fff; text-decoration:none; }.catalog-reader-brand>span { width:42px; height:42px; display:grid; place-items:center; overflow:hidden; border-radius:50%; background:#fff; color:var(--catalog-primary); font-weight:900; }.catalog-reader-brand img { width:100%; height:100%; object-fit:contain; }.catalog-reader-header>div { min-width:0; }.catalog-reader-header small { color:#dcbfdd; }.catalog-reader-header h1 { margin:1px 0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:1.05rem; }.catalog-reader-header nav { display:flex; gap:8px; }.catalog-reader-header nav a,.catalog-reader-header nav button { min-height:42px; display:flex; align-items:center; gap:7px; border:1px solid rgba(255,255,255,.2); border-radius:10px; padding:0 12px; background:rgba(255,255,255,.08); color:#fff; font:inherit; cursor:pointer; text-decoration:none; }
.catalog-reader-stage { min-height:0; position:relative; display:grid; place-items:center; overflow:auto; padding:26px 72px; }.catalog-book { --reader-zoom:1; width:min(1120px,calc(100vw - 180px)); height:min(74vh,720px); display:flex; justify-content:center; align-items:center; transform:scale(var(--reader-zoom)); transform-origin:center; transition:transform .22s ease; perspective:2400px; }.catalog-book.is-spread { gap:0; }
.catalog-book-page { width:50%; flex:0 0 50%; height:100%; max-width:50%; position:relative; overflow:hidden; display:grid; place-items:center; background:#fff; box-shadow:0 24px 65px rgba(27,14,29,.28); transform-style:preserve-3d; }.catalog-book-page.single { width:100%; flex-basis:100%; max-width:100%; }.catalog-book-page.left { border-radius:8px 1px 1px 8px; box-shadow:-20px 22px 55px rgba(27,14,29,.2),inset -18px 0 25px -25px rgba(0,0,0,.8); }.catalog-book-page.right { border-radius:1px 8px 8px 1px; box-shadow:20px 22px 55px rgba(27,14,29,.2),inset 18px 0 25px -25px rgba(0,0,0,.8); }.catalog-page-media { position:relative; width:100%; height:100%; display:grid; place-items:center; overflow:hidden; max-width:100%; max-height:100%; }.catalog-book-page img { width:100%; height:100%; object-fit:fill; opacity:1; transition:opacity .2s; }.catalog-book-page small { position:absolute; z-index:7; bottom:8px; left:50%; transform:translateX(-50%); min-width:24px; padding:3px 7px; border-radius:10px; background:rgba(255,255,255,.82); text-align:center; font-weight:700; font-size:.7rem; }.catalog-page-loader { position:absolute; color:var(--catalog-primary); }.catalog-book-page.loaded .catalog-page-loader { display:none; }
.catalog-book.flip-next .catalog-book-page.right,.catalog-book.flip-next .catalog-book-page.single { animation:catalogFlipNext .45s ease; transform-origin:left center; }.catalog-book.flip-prev .catalog-book-page.left,.catalog-book.flip-prev .catalog-book-page.single { animation:catalogFlipPrev .45s ease; transform-origin:right center; }@keyframes catalogFlipNext{0%{transform:rotateY(-16deg);filter:brightness(.75)}100%{transform:rotateY(0)}}@keyframes catalogFlipPrev{0%{transform:rotateY(16deg);filter:brightness(.75)}100%{transform:rotateY(0)}}
.catalog-hotspot { position:absolute; z-index:6; border:2px solid var(--hotspot); border-radius:7px; background:color-mix(in srgb,var(--hotspot) 17%,transparent); cursor:pointer; }.catalog-hotspot span { position:absolute; right:-7px; top:-7px; width:17px; height:17px; border:3px solid white; border-radius:50%; background:var(--hotspot); box-shadow:0 2px 9px #0005; }.catalog-hotspot.pulse span { animation:hotspotPulse 1.6s infinite; }@keyframes hotspotPulse{50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--hotspot) 25%,transparent)}}
.catalog-page-arrow { position:absolute; top:50%; translate:0 -50%; width:48px; height:64px; border:0; border-radius:13px; background:rgba(83,27,83,.9); color:#fff; font-size:1.2rem; cursor:pointer; box-shadow:0 8px 20px #35103544; }.catalog-page-arrow.previous { left:16px; }.catalog-page-arrow.next { right:16px; }.catalog-page-arrow:disabled { opacity:.25; cursor:not-allowed; }
.catalog-reader-controls { z-index:20; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:9px 20px; background:#fff; border-top:1px solid #ded9df; box-shadow:0 -6px 24px #35103512; transition:transform .25s; }.catalog-reader-controls>div { display:flex; align-items:center; gap:5px; }.catalog-reader-controls button,.catalog-reader-controls a { width:42px; height:42px; display:grid; place-items:center; border:0; border-radius:9px; background:#eee9ef; color:var(--catalog-primary); cursor:pointer; text-decoration:none; }.catalog-reader-controls button:hover,.catalog-reader-controls a:hover { background:var(--catalog-primary); color:#fff; }.catalog-reader-controls label { display:flex; align-items:center; gap:5px; margin:0 5px; }.catalog-reader-controls input { width:60px; height:40px; border:1px solid #d5ced6; border-radius:8px; text-align:center; }.controls-hidden .catalog-reader-controls { transform:translateY(100%); }
.catalog-reader-loading { position:absolute; z-index:8; display:grid; justify-items:center; gap:10px; color:var(--catalog-primary); }.catalog-reader-loading span { width:46px; height:46px; border:4px solid #d6cbd7; border-top-color:var(--catalog-action); border-radius:50%; animation:spin .8s linear infinite; }@keyframes spin{to{rotate:360deg}}.catalog-reader-message { display:grid; justify-items:center; text-align:center; color:#716773; }.catalog-reader-message i { font-size:3rem; }
.catalog-thumbnails { position:fixed; z-index:40; inset:74px auto 66px 0; width:min(330px,88vw); overflow:auto; padding:15px; background:#fff; box-shadow:10px 0 35px #35103533; }.catalog-thumbnails>div { display:flex; justify-content:space-between; align-items:center; }.catalog-thumbnails h2 { margin:0; }.catalog-thumbnails>div button { border:0; background:none; font-size:2rem; }.catalog-thumbnails section { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }.catalog-thumbnails section button { position:relative; padding:5px; border:2px solid transparent; border-radius:8px; background:#eee; }.catalog-thumbnails section button.active { border-color:var(--catalog-action); }.catalog-thumbnails img { width:100%; aspect-ratio:3/4; object-fit:cover; }.catalog-thumbnails section span { position:absolute; bottom:7px; right:7px; padding:3px 6px; border-radius:8px; background:#fff; }
.catalog-product-dialog,.catalog-share-dialog,.catalog-password-dialog { width:min(900px,92vw); max-height:88vh; border:0; border-radius:20px; padding:0; box-shadow:0 30px 100px #1e071e77; }.catalog-product-dialog::backdrop,.catalog-share-dialog::backdrop,.catalog-password-dialog::backdrop { background:#1e071ecc; backdrop-filter:blur(5px); }.catalog-dialog-close { position:absolute; z-index:3; top:12px; right:12px; width:38px; height:38px; border:0; border-radius:50%; background:#fff; font-size:1.5rem; box-shadow:0 4px 15px #0002; cursor:pointer; }.catalog-product-sheet { display:grid; grid-template-columns:1fr 1.05fr; }.catalog-product-sheet>img,.catalog-product-placeholder { width:100%; height:100%; min-height:520px; object-fit:cover; background:#eee; display:grid; place-items:center; font-size:5rem; color:var(--catalog-primary); }.catalog-product-sheet>div { padding:48px 36px 32px; }.catalog-product-sheet small { color:var(--catalog-action); font-weight:800; }.catalog-product-sheet h2 { margin:6px 0 10px; font-size:2rem; }.catalog-product-sheet strong { font-size:1.35rem; color:var(--catalog-primary); }.catalog-product-sheet p { color:#6c626d; line-height:1.65; }.catalog-product-sheet dl div { display:grid; grid-template-columns:100px 1fr; padding:8px 0; border-bottom:1px solid #eee; }.catalog-product-sheet dt { font-weight:800; }.catalog-product-sheet dd { margin:0; }.catalog-product-actions { display:grid; gap:8px; margin-top:20px; }.catalog-product-actions a,.catalog-product-actions button { min-height:44px; display:grid; place-items:center; border:0; border-radius:9px; background:var(--catalog-primary); color:#fff; text-decoration:none; font:inherit; font-weight:700; }.catalog-product-actions button { background:var(--catalog-action); }
.catalog-share-dialog { width:min(560px,92vw); padding:34px; }.catalog-share-dialog h2 { margin-top:0; }.catalog-share-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }.catalog-share-grid a { display:grid; justify-items:center; gap:6px; padding:14px 5px; border-radius:10px; background:#f1edf2; color:var(--catalog-primary); text-decoration:none; }.catalog-share-copy { display:flex; margin:18px 0; }.catalog-share-copy input { min-width:0; flex:1; border:1px solid #ddd; border-radius:8px 0 0 8px; padding:10px; }.catalog-share-copy button { border:0; border-radius:0 8px 8px 0; background:var(--catalog-action); color:#fff; }.catalog-qr { display:grid; place-items:center; }.catalog-password-dialog { width:min(430px,92vw); padding:35px; }.catalog-password-dialog form { display:grid; gap:14px; text-align:center; }.catalog-password-dialog form>i { font-size:2.5rem; color:var(--catalog-primary); }.catalog-password-dialog input,.catalog-password-dialog button { height:48px; border-radius:9px; }.catalog-password-dialog input { border:1px solid #d9d0da; padding:0 12px; }.catalog-password-dialog button { border:0; background:var(--catalog-action); color:#fff; font-weight:800; }.catalog-password-dialog small { color:#b00020; }
.catalog-reader-error { min-height:100vh; display:grid; place-content:center; justify-items:center; gap:10px; padding:20px; text-align:center; background:#f3eff4; }.catalog-reader-error i { font-size:4rem; color:var(--catalog-primary); }.catalog-reader-error a { padding:12px 18px; border-radius:10px; background:var(--catalog-action); color:#fff; text-decoration:none; }
@media (max-width:899px){.catalog-public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-reader{grid-template-rows:64px 1fr 60px}.catalog-reader-header{padding:8px 10px;gap:10px}.catalog-reader-brand strong,.catalog-reader-header nav span,.catalog-reader-header>div small{display:none}.catalog-reader-header nav a,.catalog-reader-header nav button{width:42px;padding:0;justify-content:center}.catalog-reader-stage{padding:18px 54px}.catalog-book{width:calc(100vw - 116px);height:min(74vh,670px)}.catalog-book-page{width:100%;flex-basis:100%;max-width:100%}.catalog-reader-controls{padding:7px 8px;overflow-x:auto}.catalog-reader-controls>div{flex:none}.catalog-reader-controls button,.catalog-reader-controls a{width:38px;height:38px}.catalog-product-sheet{grid-template-columns:1fr}.catalog-product-sheet>img,.catalog-product-placeholder{min-height:280px;max-height:360px}.catalog-product-sheet>div{padding:28px 22px}.catalog-thumbnails{inset:64px auto 60px 0}}
@media (max-width:650px){.catalog-list-hero{min-height:300px;padding-top:110px}.catalog-list-tools{grid-template-columns:1fr}.catalog-public-grid{grid-template-columns:1fr}.catalog-reader-header{position:relative;display:flex}.catalog-reader-header>div{display:none}.catalog-reader-brand{min-width:0}.catalog-reader-brand strong{display:block}.catalog-reader-header nav{position:absolute;top:8px;right:10px;width:auto;min-width:0;justify-content:flex-end}.catalog-reader-stage{padding:12px 42px}.catalog-book{width:calc(100vw - 88px);height:min(72vh,610px)}.catalog-page-arrow{width:36px;height:54px}.catalog-page-arrow.previous{left:4px}.catalog-page-arrow.next{right:4px}.catalog-reader-controls>div:first-child button[data-reader-first],.catalog-reader-controls>div:first-child button[data-reader-last],.catalog-reader-controls [data-reader-zoom-in],.catalog-reader-controls [data-reader-zoom-out],.catalog-reader-controls [data-reader-fit],.catalog-reader-controls [data-reader-print]{display:none}.catalog-share-grid{grid-template-columns:repeat(2,1fr)}.catalog-product-dialog{max-height:94vh}.catalog-product-sheet>div{padding-top:25px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.catalog-book.flip-next .catalog-book-page,.catalog-book.flip-prev .catalog-book-page{animation:none}}
@media print{.catalog-reader-header,.catalog-reader-controls,.catalog-page-arrow,.catalog-hotspot{display:none!important}.catalog-reader{display:block}.catalog-reader-stage{overflow:visible;padding:0}.catalog-book{width:100%;height:auto;transform:none}.catalog-book-page{max-width:100%;box-shadow:none;page-break-after:always}.catalog-book-page img{opacity:1}}

/* Visionneuse immersive inspirée des lecteurs de catalogues numériques */
.catalog-reader-body{background:#3f3f3f}.catalog-reader{grid-template-rows:58px 1fr 66px;background:#474747}.catalog-reader-header{padding:7px 18px;background:#191919;border-bottom:1px solid #ffffff14;box-shadow:0 3px 14px #0005}.catalog-reader-brand>span{width:38px;height:38px}.catalog-reader-header small{color:#bdbdbd}.catalog-reader-header nav a,.catalog-reader-header nav button{min-height:38px;border-color:#ffffff1c;border-radius:8px;background:#ffffff0a}.catalog-reader-header nav a:hover,.catalog-reader-header nav button:hover{background:#ffffff18}.catalog-reader-stage{padding:10px 70px 16px;overflow:hidden}.catalog-book{width:min(1250px,calc(100vw - 180px));height:calc(100dvh - 164px);max-height:820px}.catalog-book.has-designed{width:min(1250px,calc(100vw - 180px));height:auto;max-height:calc(100dvh - 164px);aspect-ratio:16/11}.catalog-book.has-designed .catalog-book-page{width:100%;max-width:100%;flex-basis:100%;border-radius:2px;box-shadow:0 20px 46px #0008}.catalog-book.has-designed .catalog-page-media{width:100%!important;height:100%!important}.catalog-book-page{box-shadow:0 18px 45px #0008}.catalog-book-page.left{box-shadow:-12px 16px 35px #0007,inset -20px 0 28px -28px #000}.catalog-book-page.right{box-shadow:12px 16px 35px #0007,inset 20px 0 28px -28px #000}.catalog-page-arrow{width:42px;height:72px;border-radius:8px;background:#282828b8;color:#ddd;box-shadow:none}.catalog-page-arrow:hover{background:#171717;color:#fff}.catalog-reader-controls{display:grid;grid-template-columns:auto minmax(160px,1fr) auto;gap:18px;padding:8px 20px;background:#333;border-color:#ffffff14;box-shadow:0 -5px 18px #0004;color:#fff}.catalog-reader-controls button,.catalog-reader-controls a{width:40px;height:40px;background:transparent;color:#fff}.catalog-reader-controls button:hover,.catalog-reader-controls a:hover{background:#ffffff18}.catalog-reader-controls input[type=number]{height:38px;border-color:#ffffff26;background:#242424;color:#fff}.catalog-reader-controls label span{color:#e6e6e6}.catalog-reader-progress{width:100%;margin:0!important}.catalog-reader-progress input{width:100%;height:4px;border:0;padding:0;accent-color:#b81f37;cursor:pointer}.catalog-thumbnails{inset:58px auto 66px 0;background:#242424;color:#fff;box-shadow:10px 0 35px #0006}.catalog-thumbnails section button{background:#151515}.catalog-thumbnails section button.active{border-color:#c79332}.catalog-reader-loading,.catalog-reader-message{color:#fff}.catalog-reader-loading span{border-color:#777;border-top-color:#c79332}.catalog-book-page.designed .catalog-hotspot{z-index:10}.catalog-book-page.designed .fd-page{font-size:clamp(8px,.92vw,15px)}
@media(max-width:899px){.catalog-reader{grid-template-rows:56px 1fr 58px}.catalog-reader-header{padding:7px 10px}.catalog-reader-stage{padding:10px 42px}.catalog-book,.catalog-book.has-designed{width:calc(100vw - 88px);height:auto;max-height:calc(100dvh - 134px);aspect-ratio:10/14}.catalog-book:not(.has-designed){height:calc(100dvh - 150px);aspect-ratio:auto}.catalog-book.has-designed .fd-page{font-size:11px}.catalog-reader-controls{grid-template-columns:auto minmax(90px,1fr) auto;gap:7px;padding:6px 8px}.catalog-reader-controls>div{gap:2px}.catalog-reader-controls button,.catalog-reader-controls a{width:36px;height:36px}.catalog-reader-progress{min-width:90px}.catalog-thumbnails{inset:56px auto 58px 0}}
@media(max-width:650px){.catalog-reader-header{display:flex}.catalog-reader-header nav{top:7px}.catalog-reader-brand strong{font-size:.9rem}.catalog-reader-stage{padding:8px 32px}.catalog-book,.catalog-book.has-designed{width:calc(100vw - 66px);max-height:calc(100dvh - 130px)}.catalog-page-arrow{width:30px;height:58px}.catalog-reader-controls{grid-template-columns:auto 1fr}.catalog-reader-controls>div:last-child{display:none}.catalog-reader-progress{grid-column:2}.catalog-reader-controls label{margin:0 2px}.catalog-reader-controls input[type=number]{width:48px}.catalog-book.has-designed .fd-page{font-size:9px}}
@media print{.catalog-reader{background:#fff}.catalog-book.has-designed{width:100%;height:auto;max-height:none;aspect-ratio:16/11}.catalog-book-page.designed{display:block;page-break-after:always}.catalog-book-page.designed .catalog-page-media{aspect-ratio:16/11}}

/* État vide compréhensible et orienté vers l’action */
.catalog-reader.is-empty .catalog-page-arrow,.catalog-reader.is-empty .catalog-reader-controls{visibility:hidden}.catalog-reader.is-empty .catalog-book{height:auto;max-height:none;transform:none}.catalog-friendly-empty{max-width:560px;padding:42px 38px;border:1px solid #ffffff1f;border-radius:20px;background:#2d2d2d;color:#fff;box-shadow:0 22px 60px #0004}.catalog-friendly-empty>i{font-size:3.2rem;color:#d8a63d}.catalog-friendly-empty h2{margin:16px 0 8px;font-size:1.55rem}.catalog-friendly-empty p{max-width:470px;margin:0;color:#d2d2d2;line-height:1.65}.catalog-empty-action{min-height:48px;display:inline-flex;align-items:center;gap:9px;margin-top:24px;padding:0 20px;border-radius:10px;background:#c51f39;color:#fff;font-weight:800;text-decoration:none}.catalog-empty-action:hover{background:#df2844}.catalog-empty-action i{font-size:1rem;color:inherit}
@media(max-width:650px){.catalog-friendly-empty{margin:12px;padding:30px 22px}.catalog-friendly-empty h2{font-size:1.25rem}}
