/*
 * CurioVox 1.8.5 — système responsive prioritaire.
 * Cette feuille est la seule couche responsive chargée par le thème. Elle est
 * volontairement placée après les styles éditoriaux et de stabilité.
 */

:root {
  --cvx-gutter: clamp(20px, 4vw, 56px);
  --cvx-content: 1320px;
  --cvx-touch: 48px;
}

*, *::before, *::after { box-sizing: border-box; }

html {
  width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  width: 100%;
  min-width: 0;
  overflow-x: hidden;
  overflow-x: clip;
  overflow-wrap: break-word;
}

body.cvx-menu-open { overflow: hidden; touch-action: none; }

main, section, article, aside, header, footer, nav, div,
.site-header > *, .catalog-card, .catalog-card-link,
.catalog-card-body, .book-detail > *, .product-main > * { min-width: 0; }

img, svg, video, iframe, canvas { max-width: 100%; height: auto; }

button, input, select, textarea { max-width: 100%; font: inherit; }

a, button, summary, input, select, textarea { -webkit-tap-highlight-color: rgba(168, 71, 49, .18); }

a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #d66f55;
  outline-offset: 3px;
}

h1, h2, h3, p, li, a, span { overflow-wrap: break-word; }

.button, .header-search, .header-catalog-cta, .mobile-menu-button,
.home-book-tabs button, .brand-filters button, .catalog-tools input,
.catalog-tools select, .newsletter-form input, .newsletter-form button,
.contact-form input, .contact-form select, .contact-form button,
.cvx-pagination a, .cvx-pagination span, .card-cta {
  min-height: var(--cvx-touch);
}

/* Toile éditoriale large : le fond ne s'étrangle plus autour du contenu. */
.catalog-page-main, .journal-main, .articles-main, .article-main,
.simple-main, .product-main, .seo-landing, .house-page {
  width: min(calc(100% - var(--cvx-gutter) - var(--cvx-gutter)), var(--cvx-content));
  max-width: none;
  margin-inline: auto;
}

.cvx-editorial-canvas,
.cvx-editorial-canvas .site-main { background: #fbf9f4; }

/* -------------------------------------------------------------------------
   En-tête, menu par genres et marques
   ---------------------------------------------------------------------- */

.site-header {
  z-index: 1000;
  isolation: isolate;
}

.site-header [data-main-nav] {
  align-self: stretch;
  align-items: stretch;
}

.site-header [data-main-nav] > a,
.header-nav-menu > summary {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
}

.site-header [data-main-nav] > .nav-home,
.site-header [data-main-nav] > .header-brand-menu,
.header-mobile-actions { display: none; }

.header-nav-menu { position: static; margin: 0; }
.header-nav-menu > summary {
  padding: 0;
  color: var(--ink);
  font-size: .72rem;
  font-weight: 850;
  list-style: none;
  cursor: pointer;
  white-space: nowrap;
}
.header-nav-menu > summary::-webkit-details-marker { display: none; }
.header-nav-menu > summary span { margin-left: 6px; transition: transform .18s ease; }
.header-nav-menu[open] > summary span { transform: rotate(180deg); }
.site-header .header-nav-panel a::after,
.site-header .header-mobile-brand-links a::after,
.site-header .header-mobile-actions a::after { display: none !important; }

.header-nav-panel {
  position: absolute;
  top: calc(100% - 1px);
  left: max(24px, calc((100% - var(--cvx-content)) / 2));
  right: max(24px, calc((100% - var(--cvx-content)) / 2));
  z-index: 30;
  padding: 30px;
  display: grid;
  grid-template-columns: minmax(190px, .7fr) minmax(0, 2.3fr);
  gap: 24px 46px;
  background: #fffefa;
  border: 1px solid var(--line);
  box-shadow: 0 24px 55px rgba(8, 28, 42, .16);
  max-height: min(620px, calc(100vh - 140px));
  overflow-y: auto;
  overscroll-behavior: contain;
}

.header-nav-panel-intro strong {
  display: block;
  font-family: var(--serif);
  font-size: 1.45rem;
  line-height: 1.08;
}
.header-nav-panel-intro p { margin: 10px 0 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.header-genre-groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.header-genre-groups section { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.header-genre-groups section > strong {
  min-height: 34px;
  color: var(--accent-dark);
  font-size: .68rem;
  line-height: 1.3;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.site-header .header-genre-groups a {
  min-height: 34px;
  padding: 5px 0;
  display: inline-flex;
  align-items: center;
  color: var(--ink-soft);
  font-size: .78rem;
  line-height: 1.3;
  font-weight: 700;
}
.site-header .header-genre-groups a:hover { color: var(--accent-dark); }
.site-header .header-panel-all {
  grid-column: 1 / -1;
  min-height: 48px;
  padding: 0 18px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--ink);
  color: #fff;
  font-size: .78rem;
  font-weight: 850;
}

/* Cinq couvertures au maximum sur un grand écran. */
.catalog-grid, .seo-book-grid,
.catalog-page-content .catalog-grid,
.nefanda-catalog-content .catalog-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(22px, 2.2vw, 34px);
}

.catalog-card-link { height: 100%; }
.catalog-card-body { height: 100%; }
.catalog-card .card-cover-link { aspect-ratio: 2 / 3; overflow: hidden; }
.catalog-card .book-cover, .catalog-card .book-cover img { width: 100%; height: 100%; object-fit: cover; }
.catalog-card .card-summary {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.catalog-card .card-bottom { gap: 10px; align-items: center; }
.catalog-card .price-stack strong { color: var(--ink); font-size: 1.06rem; font-weight: 850; white-space: nowrap; }
.catalog-card .card-cta {
  width: auto;
  min-width: 0;
  padding: 0 13px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background: var(--accent);
  color: #fff;
  border: 1px solid var(--accent);
  font-size: .68rem;
  font-weight: 850;
  line-height: 1.15;
  text-align: center;
}
.catalog-card-link:hover .card-cta { background: var(--accent-dark); border-color: var(--accent-dark); color: #fff; }

.catalogue-invitation {
  width: 100%;
  padding: 28px max(var(--cvx-gutter), calc((100% - var(--cvx-content)) / 2));
  display: grid;
  grid-template-columns: auto minmax(260px, .9fr) minmax(300px, 1.25fr) auto;
  align-items: center;
  gap: 30px;
  background: var(--ink);
  color: #fff;
}
.catalogue-invitation > div { display: grid; gap: 5px; }
.catalogue-invitation > div > span { color: #ef9b84; font-size: .68rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.catalogue-invitation-copy strong { max-width: 420px; font-family: var(--serif); font-size: clamp(1.55rem, 2.1vw, 2.25rem); font-weight: 400; line-height: 1.05; }
.catalogue-invitation-count { min-width: 150px; padding-right: 28px; border-right: 1px solid rgba(255,255,255,.25); }
.catalogue-invitation-count strong { font-family: var(--serif); font-size: clamp(3.2rem, 5vw, 5rem); font-weight: 400; line-height: .85; letter-spacing: -.045em; }
.catalogue-invitation-count span { margin-top: 8px; color: #fff !important; font-size: .65rem !important; line-height: 1.2; }
.catalogue-invitation p { margin: 0; color: rgba(255,255,255,.78); font-size: .94rem; line-height: 1.55; }
.catalogue-invitation > a { min-height: 50px; padding: 0 18px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.5); color: #fff; font-size: .76rem; font-weight: 850; white-space: nowrap; }
.catalogue-invitation > a:hover { background: #fff; color: var(--ink); }

/* -------------------------------------------------------------------------
   Tablettes et menus tactiles
   ---------------------------------------------------------------------- */

@media (max-width: 1100px) {
  :root { --cvx-gutter: 28px; }

  .announcement { position: relative; z-index: 1001; }
  .site-header, .detail-header.public-header {
    position: sticky;
    top: 0;
    min-height: 70px;
    padding: 0 var(--cvx-gutter);
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px 48px;
    align-items: center;
    gap: 8px;
    background: #f8f4ec;
  }
  .admin-bar .site-header { top: 32px; }

  .brand-lockup { min-width: 0; }
  .brand-lockup .wordmark { font-size: clamp(1.25rem, 3vw, 1.55rem); white-space: nowrap; }
  .brand-lockup small { display: none; }

  .mobile-menu-button {
    grid-column: 3;
    width: 48px;
    height: 48px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    border: 1px solid var(--line);
    background: transparent;
  }
  .mobile-menu-button span { width: 100%; height: 2px; display: block; background: var(--ink); transition: transform .18s ease, opacity .18s ease; }
  .mobile-menu-button[aria-expanded="true"] span:first-child { transform: translateY(7px) rotate(45deg); }
  .mobile-menu-button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .mobile-menu-button[aria-expanded="true"] span:last-child { transform: translateY(-7px) rotate(-45deg); }

  .header-actions { grid-column: 2; grid-row: 1; display: block; }
  .header-search { width: 48px; min-width: 48px; height: 48px; padding: 0; justify-content: center; }
  .header-search svg { width: 21px; height: 21px; }
  .header-search span, .header-catalog-cta { display: none; }

  .site-header [data-main-nav], .public-header [data-main-nav] { display: none; }
  .site-header [data-main-nav].open, .public-header [data-main-nav].open {
    position: fixed;
    inset: 70px 0 0;
    z-index: 999;
    width: 100%;
    max-height: none;
    padding: 16px var(--cvx-gutter) max(28px, env(safe-area-inset-bottom));
    display: block;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #f8f4ec;
    border-top: 1px solid var(--line);
    box-shadow: 0 24px 42px rgba(8, 28, 42, .18);
  }
  .admin-bar .site-header [data-main-nav].open { top: 102px; }

  .site-header [data-main-nav].open > a,
  .site-header [data-main-nav].open > details > summary {
    width: 100%;
    min-height: 54px;
    padding: 0 2px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--ink);
    border: 0;
    border-bottom: 1px solid var(--line);
    font-size: .93rem;
    font-weight: 850;
  }
  .site-header [data-main-nav].open > a::after { display: none; }
  .site-header [data-main-nav].open > .nav-home,
  .site-header [data-main-nav].open > .header-brand-menu { display: block; }
  .header-nav-menu { display: block; }

  .header-nav-panel {
    position: static;
    width: 100%;
    padding: 18px 0 22px;
    display: block;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--line);
    box-shadow: none;
  }
  .header-nav-panel-intro { margin-bottom: 18px; }
  .header-nav-panel-intro strong { font-size: 1.3rem; }
  .header-genre-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 34px; }
  .header-genre-groups section > strong { min-height: auto; margin-bottom: 5px; }
  .site-header .header-genre-groups a { width: 100%; min-height: 44px; padding: 8px 0; font-size: .86rem; border-bottom: 1px solid rgba(12,34,51,.08); }
  .site-header .header-panel-all { margin-top: 20px; }

  .header-mobile-brand-links { padding: 10px 0 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; border-bottom: 1px solid var(--line); }
  .site-header .header-mobile-brand-links a {
    min-height: 48px;
    padding: 0 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fffefa;
    border: 1px solid var(--line);
    font-size: .78rem;
    font-weight: 850;
  }
  .header-mobile-brand-links i { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; background: var(--ribbon-accent); }

  .header-mobile-actions { padding-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .site-header .header-mobile-actions a {
    min-height: 50px;
    padding: 0 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ink);
    font-size: .78rem;
    font-weight: 850;
    text-align: center;
  }
  .site-header .header-mobile-actions a:last-child { background: var(--ink); color: #fff; }
  .brand-ribbon { display: none; }

  .catalog-grid, .seo-book-grid,
  .catalog-page-content .catalog-grid,
  .nefanda-catalog-content .catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .home-discovery-hero { width: min(calc(100% - var(--cvx-gutter) - var(--cvx-gutter)), 980px); grid-template-columns: 1fr; gap: 40px; }
  .home-selection-v17, .reading-paths, .brands-v15, .home-articles,
  .home-journal-v15, .newsletter-section { width: min(calc(100% - var(--cvx-gutter) - var(--cvx-gutter)), 980px); }
  .reading-path-grid, .brand-grid-v15 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-journal-grid, .journal-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .house-path-grid { grid-template-columns: 1fr; }
  .catalogue-invitation { grid-template-columns: auto minmax(0, 1fr); }
  .catalogue-invitation > p { grid-column: 2; grid-row: auto; }
  .catalogue-invitation > a { grid-column: 2; justify-self: start; }
}

/* -------------------------------------------------------------------------
   Téléphones
   ---------------------------------------------------------------------- */

@media (max-width: 767px) {
  :root { --cvx-gutter: 16px; --cvx-touch: 48px; }
  body { font-size: 16px; }
  button, [role="button"], .button { min-height: 48px; }
  .button { min-width: 0; max-width: 100%; padding: 10px 16px; white-space: normal; line-height: 1.25; text-align: center; }
  .admin-bar .site-header { top: 46px; }
  .admin-bar .site-header [data-main-nav].open { top: 116px; }

  .announcement { display: none; }
  .site-header, .detail-header.public-header {
    min-height: 68px;
    padding-inline: 16px;
    grid-template-columns: minmax(0, 1fr) 48px 48px;
  }
  .site-header [data-main-nav].open { top: 68px; padding-inline: 16px; }
  .admin-bar .site-header [data-main-nav].open { top: 114px; }
  .brand-lockup .wordmark { font-size: 1.28rem; letter-spacing: .08em; }
  .header-genre-groups { grid-template-columns: 1fr; gap: 18px; }
  .header-nav-panel-intro p { display: none; }
  .header-mobile-actions { grid-template-columns: 1fr; }

  #selection, #choisir, #marques, #articles, #maison,
  #merchant-heading, .article-content { scroll-margin-top: 82px; }

  .catalog-page-main, .journal-main, .articles-main, .article-main,
  .simple-main, .product-main, .seo-landing, .house-page {
    width: calc(100% - 32px);
    padding-inline: 0;
  }

  .home-v15 > section:not(.catalogue-invitation):not(.platform-marquee):not(.promo-banner) { width: calc(100% - 32px); }

  .home-v15 h1, .catalog-page-hero h1, .seo-landing-hero h1,
  .house-hero h1, .journal-landing-hero h1, .articles-hero h1,
  .article-hero h1, .book-detail h1, .product-main h1,
  .legal-copy h1, .simple-main h1 {
    max-width: 100%;
    font-size: clamp(2.35rem, 12vw, 3.35rem);
    line-height: 1;
    letter-spacing: -.035em;
    text-wrap: balance;
    overflow-wrap: anywhere;
  }

  .home-v15 h2, .catalog-page-main h2, .seo-landing h2,
  .journal-main h2, .article-main h2, .simple-main h2,
  .product-main h2 {
    max-width: 100%;
    font-size: clamp(1.9rem, 9vw, 2.75rem);
    line-height: 1.06;
    text-wrap: balance;
    overflow-wrap: anywhere;
  }

  .eyebrow { font-size: .7rem; line-height: 1.4; letter-spacing: .13em; }
  .breadcrumb { margin: 18px 0 34px; font-size: .74rem; }
  .breadcrumb, .detail-breadcrumb { display: flex; flex-wrap: wrap; gap: 5px 8px; }

  /* Héros de l'accueil : contenu court, recherche pleine largeur, visuel cadré. */
  .home-discovery-hero {
    width: calc(100% - 32px);
    min-height: 0;
    padding: 38px 0 34px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .home-discovery-copy h1 { margin: 10px 0 18px; }
  .home-discovery-copy .hero-intro {
    margin: 0;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    font-size: 1rem;
    line-height: 1.58;
  }
  .hero-search-block { margin-top: 24px; }
  .hero-search-block > strong { display: block; margin-bottom: 10px; font-size: 1.15rem; }
  .hero-search-form {
    min-height: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    overflow: visible;
  }
  .hero-search-form > svg { align-self: center; justify-self: center; }
  .hero-search-form input { min-height: 52px; padding: 0 10px 0 0; font-size: 16px; }
  .hero-search-form button { grid-column: 1 / -1; width: 100%; min-height: 50px; }
  .quick-suggestions, .quick-recent-searches { top: 52px; }
  .hero-mood-links { margin-top: 10px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .hero-mood-links a { min-height: 46px; padding: 8px 10px; display: flex; align-items: center; justify-content: center; font-size: .72rem; line-height: 1.25; text-align: center; white-space: normal; }

  .home-brand-carousel { width: 100%; margin: 0; overflow: hidden; }
  .home-brand-slides { min-height: 390px; }
  .home-brand-slide { min-width: 0; grid-template-rows: 285px auto; }
  .home-book-fan { width: 100%; height: 285px; overflow: hidden; }
  .home-fan-book { width: clamp(122px, 39vw, 158px); }
  .home-fan-1 { transform: translate(-38%, 8%) rotate(-8deg); }
  .home-fan-2 { transform: translateY(-1%); }
  .home-fan-3 { transform: translate(38%, 8%) rotate(8deg); }
  .home-brand-slide-copy { padding: 14px 12px 12px; }
  .home-brand-slide-copy p { margin: 6px 0; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: .78rem; line-height: 1.45; }
  .home-brand-slide-copy a { min-height: 44px; display: inline-flex; align-items: center; font-size: .76rem; }
  .home-carousel-controls { min-height: 48px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; }
  .home-carousel-controls button { min-width: 0; min-height: 48px; padding-inline: 4px; font-size: .64rem; }

  /* Bande catalogue et plateformes, sans animation latérale illisible. */
  .catalogue-invitation { padding: 24px 16px; display: grid; grid-template-columns: 1fr; gap: 14px; }
  .catalogue-invitation > div { display: grid; }
  .catalogue-invitation-count { min-width: 0; padding: 0 0 15px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.25); }
  .catalogue-invitation-count strong { font-size: 3.65rem; line-height: .86; }
  .catalogue-invitation-count span { margin-top: 7px; }
  .catalogue-invitation-copy strong { font-size: 1.85rem; line-height: 1.06; }
  .catalogue-invitation > p,
  .catalogue-invitation > a { grid-column: auto; }
  .catalogue-invitation > div > span { font-size: .66rem; }
  .catalogue-invitation p { grid-column: auto; grid-row: auto; margin: 0; font-size: .9rem; line-height: 1.5; }
  .catalogue-invitation > a { width: 100%; min-height: 50px; padding: 0 14px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.4); text-align: center; }

  .platform-marquee, .platform-marquee-compact { display: block; overflow: hidden; }
  .platform-marquee-label { padding: 22px 16px; }
  .platform-marquee-label strong { font-size: 1.25rem; line-height: 1.2; }
  .platform-marquee-window { width: 100%; overflow: visible; }
  .platform-marquee-track { width: 100%; transform: none !important; animation: none !important; }
  .platform-marquee-group { width: 100%; padding: 0 16px 22px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; transform: none !important; }
  .platform-marquee-group:nth-child(n+2) { display: none; }
  .platform-lockup { min-width: 0; min-height: 62px; padding: 8px; justify-content: center; gap: 8px; border: 1px solid rgba(12,34,51,.1); }
  .platform-lockup img { width: 30px; max-height: 30px; }
  .platform-lockup span strong { font-size: .72rem; line-height: 1.2; }

  /* Rayons : deux couvertures lisibles à la fois, sans carte géante. */
  .home-selection-v17, .reading-paths, .brands-v15, .home-articles,
  .home-journal-v15, .newsletter-section { width: calc(100% - 32px); }
  .shelf-section, .home-selection-v17, .reading-paths, .brands-v15, .home-articles { padding-block: 58px; }
  .section-heading, .home-library-heading, .home-shelf-heading,
  .reading-paths-heading, .brands-v15-heading, .seo-section-heading,
  .journal-section-heading {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    align-items: start;
  }
  .section-heading > p, .section-heading > div > p:last-child { max-width: 100%; font-size: .96rem; line-height: 1.55; }
  .home-library-heading > div > p:last-child { display: none; }
  .home-library-shelves { gap: 52px; }
  .home-shelf-heading h3 { font-size: 1.65rem; }
  .home-shelf-heading p { margin-top: 6px; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: .88rem; }
  .home-shelf-actions { width: 100%; display: grid; grid-template-columns: 1fr 48px 48px; gap: 8px; }
  .home-shelf-actions > a { min-height: 48px; display: flex; align-items: center; }
  .home-shelf-actions button { width: 48px; height: 48px; }
  .home-shelf-window { margin-right: -16px; overflow: visible; }
  .home-shelf-track {
    padding-right: 16px;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100vw - 54px) / 2);
    grid-template-columns: none;
    gap: 12px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .home-shelf-track::-webkit-scrollbar { display: none; }
  .home-shelf-card { width: auto; scroll-snap-align: start; }
  .home-shelf-card .card-cover-link { aspect-ratio: 2 / 3; }
  .home-shelf-card .catalog-card-body { padding: 12px 2px 0; }
  .home-shelf-card h3 { min-height: 2.4em; font-size: 1rem; line-height: 1.16; }
  .home-shelf-card .card-kicker { min-height: 2.2em; font-size: .54rem; }
  .home-shelf-card .card-author { font-size: .68rem; }
  .home-shelf-card .card-summary { -webkit-line-clamp: 2; font-size: .72rem; line-height: 1.45; }
  .home-shelf-card .card-bottom { align-items: stretch; flex-direction: column; }

  .home-catalogue-gateway { padding: 24px 18px; display: grid; grid-template-columns: 1fr; gap: 12px; }
  .home-catalogue-gateway-intro strong { font-size: 1.8rem; line-height: 1.05; }
  .home-catalogue-gateway-copy { font-size: .88rem; line-height: 1.5; }
  .home-catalogue-gateway-action { width: 100%; min-height: 50px; padding: 0 14px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.45); }

  /* Intentions de lecture et marques. */
  .reading-paths-heading > p, .brands-v15-heading > p { font-size: .95rem; line-height: 1.55; }
  .reading-path-grid, .brand-grid-v15 { grid-template-columns: 1fr; gap: 12px; }
  .reading-path-card { min-height: 0; padding: 20px; display: grid; grid-template-columns: 66px minmax(0, 1fr); gap: 16px; }
  .reading-path-art { width: 66px; height: 66px; }
  .reading-path-card h3 { margin-top: 0; font-size: 1.3rem; line-height: 1.15; }
  .reading-path-card p { display: none; }
  .reading-path-card nav { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 6px; }
  .reading-path-card nav a { min-height: 38px; padding: 7px 10px; display: inline-flex; align-items: center; font-size: .65rem; line-height: 1.2; }
  .reading-path-all { width: 100%; min-height: 50px; display: flex; align-items: center; justify-content: center; }

  .brand-story-card { min-height: 330px; display: grid; grid-template-columns: minmax(0, 1fr) 118px; overflow: hidden; }
  .brand-story-copy { padding: 24px 4px 24px 20px; }
  .brand-story-copy h3 { font-size: 2rem; }
  .brand-story-copy p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 4; font-size: .84rem; line-height: 1.5; }
  .brand-story-cta { min-height: 44px; display: inline-flex; align-items: center; font-size: .7rem; }
  .brand-story-books { width: 118px; overflow: hidden; }
  .brand-story-books .book-cover { width: 100px; }

  /* Articles : cartes verticales simples et entièrement cliquables. */
  .home-journal-grid, .home-articles-grid, .journal-card-grid,
  .article-suggestion-grid, .article-universe-grid { grid-template-columns: 1fr; gap: 16px; }
  .home-articles .section-heading { gap: 18px; }
  .home-articles-cta { width: 100%; justify-content: center; }
  .home-articles-list { display: grid; grid-template-columns: 1fr; gap: 14px; }
  .journal-card, .journal-feature-card { min-height: 0; }
  .journal-card-link, .journal-feature-card .journal-card-link { display: grid; grid-template-columns: 112px minmax(0, 1fr); }
  .journal-feature-card .journal-card-link { grid-template-columns: 1fr; }
  .journal-card-image { min-height: 138px; aspect-ratio: 4 / 5; }
  .journal-feature-card .journal-card-image { min-height: 0; aspect-ratio: 16 / 10; }
  .journal-card-copy { padding: 16px; }
  .journal-card-meta { gap: 6px 10px; font-size: .58rem; }
  .journal-card-title, .journal-feature-card .journal-card-title { margin: 9px 0; font-size: 1.25rem; line-height: 1.12; }
  .journal-card-excerpt { display: none; }
  .journal-feature-card .journal-card-excerpt { display: -webkit-box; -webkit-line-clamp: 2; }
  .journal-card-cta { min-height: 44px; display: inline-flex; align-items: center; }
  .journal-landing-hero, .articles-hero { padding: 34px 0; display: grid; grid-template-columns: 1fr; gap: 22px; }
  .journal-landing-hero > div > p:last-child { font-size: .96rem; line-height: 1.55; }
  .journal-landing-hero aside { min-height: 0; padding: 18px; display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; align-items: center; }
  .journal-landing-hero aside strong { grid-row: 1 / 3; font-size: 2rem; }
  .journal-landing-hero aside span { font-size: .76rem; }
  .journal-landing-hero aside a { grid-column: 1 / -1; min-height: 44px; margin-top: 8px; display: flex; align-items: center; }
  .journal-theme-nav { margin-inline: -16px; padding: 10px 16px; display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; scrollbar-width: none; }
  .journal-theme-nav::-webkit-scrollbar { display: none; }
  .journal-theme-nav a { flex: 0 0 auto; min-height: 46px; padding: 0 13px; display: flex; align-items: center; }
  .journal-feature-section, .journal-latest-section { margin-top: 50px; }
  .journal-subscribe { padding: 26px 20px; display: grid; grid-template-columns: 1fr; gap: 20px; }
  .journal-subscribe .button { width: 100%; justify-content: center; }

  .article-header { padding-top: 24px; }
  .article-header h1 { margin-block: 10px 16px; }
  .article-lead { font-size: 1.12rem; line-height: 1.55; }
  .article-hero-image { width: 100%; margin: 28px 0; }
  .article-hero-image img { width: 100%; max-height: 420px; object-fit: cover; }
  .article-local-nav { margin-inline: -16px; padding: 10px 16px; display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; scrollbar-width: none; }
  .article-local-nav strong, .article-local-nav a { flex: 0 0 auto; min-height: 44px; display: flex; align-items: center; }
  .article-suggestion-card { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 14px; }
  .article-suggestion-image { min-height: 150px; }
  .article-suggestion-card > div { padding: 14px 14px 14px 0; }
  .article-suggestion-card > div > p:not(.article-suggestion-meta) { display: none; }
  .article-universe-card { min-height: 0; padding: 22px 18px; }

  /* Catalogue et taxonomies. */
  .catalog-page-main { padding-top: 0; }
  .catalog-page-hero { padding: 30px 0 34px; }
  .catalog-page-hero > p:last-child { font-size: .96rem; line-height: 1.55; }
  .catalog-tools, .catalog-page-content .catalog-tools { display: grid; grid-template-columns: 1fr; gap: 8px; }
  .catalog-search-wrap, .catalog-tools label, .catalog-tools select,
  .catalog-tools input { width: 100%; }
  .catalog-tools input, .catalog-tools select { min-height: 50px; font-size: 16px; }
  .brand-filters { margin: 14px -16px 0; padding: 0 16px 6px; display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; scrollbar-width: none; }
  .brand-filters::-webkit-scrollbar { display: none; }
  .brand-filters button, .brand-filter-nefanda { flex: 0 0 auto; min-height: 46px; white-space: nowrap; }
  .results-line { min-height: 48px; align-items: center; }
  .results-line button { min-height: 44px; }
  .catalog-grid, .seo-book-grid,
  .catalog-page-content .catalog-grid,
  .nefanda-catalog-content .catalog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 12px;
  }
  .catalog-card .catalog-card-body { padding: 12px 1px 0; }
  .catalog-card .card-kicker { min-height: 2.35em; gap: 5px; font-size: .53rem; line-height: 1.15; }
  .catalog-card h3 { min-height: 2.35em; margin: 7px 0 4px; font-size: 1.02rem; line-height: 1.16; }
  .catalog-card .card-author { min-height: 2.2em; font-size: .68rem; line-height: 1.25; }
  .catalog-card .rating-line { font-size: .62rem; }
  .catalog-card .card-summary { margin: 8px 0; -webkit-line-clamp: 2; font-size: .72rem; line-height: 1.42; }
  .catalog-card .card-bottom { margin-top: 10px; padding-top: 10px; display: grid; grid-template-columns: 1fr; align-items: stretch; }
  .catalog-card .price-stack { min-height: 28px; display: flex; align-items: center; gap: 7px; }
  .catalog-card .price-stack strong { font-size: 1rem; }
  .catalog-card .card-cta { width: 100%; min-height: 46px; padding: 0 8px; font-size: .65rem; }
  .empty-state { padding: 42px 18px; }
  .empty-state h2 { font-size: 2rem; }
  .catalog-empty-suggestions-heading { display: grid; grid-template-columns: 1fr auto; gap: 12px; }
  .catalog-empty-suggestions-track { grid-auto-columns: calc((100vw - 54px) / 2); gap: 12px; }

  .cvx-pagination { margin-block: 34px; overflow: visible; }
  .cvx-pagination ul, .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
  .cvx-pagination a, .cvx-pagination span, .nav-links a, .nav-links span { min-width: 46px; min-height: 46px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; }
  .cvx-pagination .prev, .cvx-pagination .next { flex: 1 1 130px; }

  /* Pages de marque, genre, auteur et page À propos. */
  .seo-landing { padding-top: 0; }
  .seo-landing .breadcrumb { margin-bottom: 30px; }
  .seo-landing-hero { padding: 30px 0 38px; display: grid; grid-template-columns: 1fr; gap: 20px; }
  .seo-landing-promise { font-size: 1.45rem; line-height: 1.18; }
  .seo-landing-hero > p { font-size: .96rem; line-height: 1.58; }
  .seo-term-links { margin: 0 -16px; padding: 12px 16px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .seo-term-links a { flex: 0 0 auto; min-height: 44px; display: inline-flex; align-items: center; }
  .seo-book-section { padding-top: 48px; }
  .seo-section-heading > a { width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--accent); }
  .seo-catalogue-cta { padding: 26px 20px; display: grid; grid-template-columns: 1fr; gap: 20px; }
  .seo-catalogue-cta .button { width: 100%; justify-content: center; }

  .house-hero { padding: 30px 0 54px; }
  .house-hero-lead { font-size: 1.25rem; line-height: 1.35; }
  .house-hero > p:not(.eyebrow):not(.house-hero-lead) { font-size: .96rem; line-height: 1.6; }
  .house-hero-actions { display: grid; grid-template-columns: 1fr; }
  .house-hero-actions .button, .house-text-link { width: 100%; min-height: 50px; justify-content: center; text-align: center; }
  .house-publishing-pillars { grid-template-columns: 1fr; }
  .house-publishing-pillars li + li { border-left: 0; border-top: 1px solid var(--house-line); }
  .house-story, .house-editorial-work, .house-section-heading-split,
  .house-perspectives, .house-final-cta { display: grid; grid-template-columns: 1fr; gap: 24px; }
  .house-story, .house-paths, .house-universes, .house-perspectives { padding-block: 58px; }
  .house-path-grid, .house-brand-grid { grid-template-columns: 1fr; }
  .house-path-grid article, .house-brand-card { padding: 24px 20px; }
  .house-editorial-work { margin-inline: -16px; padding: 54px 16px; }
  .house-brand-card { min-height: 300px; }
  .house-brand-card > strong { font-size: 2.3rem; }
  .house-final-cta { margin-inline: -16px; padding: 40px 20px; }
  .house-final-actions .button { min-width: 0; width: 100%; }

  /* Fiche livre : priorité à la couverture, au prix et aux libraires. */
  .product-main, .book-detail { padding-top: 26px; }
  .product-main .product-hero, .book-detail { display: grid; grid-template-columns: 1fr; gap: 28px; }
  .product-cover-column, .detail-cover-wrap { width: min(68vw, 250px); margin-inline: auto; }
  .product-hook { font-size: 1.08rem; line-height: 1.45; }
  .product-decision { padding: 18px; }
  .product-price-row { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; }
  .product-decision .detail-price > strong { font-size: 1.7rem; }
  .merchant-grid, .purchase-options, .merchant-links-conversion { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .merchant-button, .purchase-button, .merchant-links-conversion > a { min-width: 0; min-height: 58px; padding: 8px; justify-content: center; text-align: center; }
  .merchant-links-conversion > a img { width: 28px; max-height: 28px; }
  .merchant-links-conversion > a span { min-width: 0; }
  .merchant-links-conversion > a small, .merchant-links-conversion > a strong { overflow-wrap: anywhere; }
  .product-benefits { display: grid; grid-template-columns: 1fr; }
  .product-benefits > span:not(:first-child) { border-left: 0; border-top: 1px solid var(--line); }
  .product-story-section, .product-author-section, .product-content,
  .product-story, .product-discovery { display: grid; grid-template-columns: 1fr; gap: 28px; }
  .product-main .related-grid, .related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
  .sticky-buy {
    z-index: 900;
    width: 100%;
    min-height: 68px;
    padding: 8px 12px max(8px, env(safe-area-inset-bottom));
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: center;
  }
  .sticky-buy .button { min-width: 0; width: 100%; min-height: 50px; padding-inline: 12px; justify-content: center; }
  .sticky-buy > span strong { font-size: 1.1rem; }
  .adult-gate-page { width: calc(100% - 32px); min-height: 0; margin-inline: auto; padding: 36px 0; }
  .adult-gate-card { padding: 30px 20px; }
  .adult-gate-card h1 { font-size: clamp(2rem, 10vw, 3rem); }
  .adult-gate-actions { display: grid; grid-template-columns: 1fr; }
  .adult-gate-actions .button { width: 100%; min-height: 52px; white-space: normal; text-align: center; }

  /* Formulaires, contenu et pied de page. */
  .newsletter-form, .contact-form { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .newsletter-form input, .newsletter-form button,
  .contact-form input, .contact-form select, .contact-form textarea,
  .contact-form button { width: 100%; min-height: 50px; font-size: 16px; }
  .article-content, .journal-article, .legal-copy { width: 100%; max-width: 100%; }
  .article-content p, .article-content li, .legal-copy p, .legal-copy li { font-size: 1rem; line-height: 1.7; }
  .legal-table-wrap { width: calc(100vw - 32px); overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .contact-layout, .simple-cta { display: grid; grid-template-columns: 1fr; gap: 28px; }
  .simple-hero { padding-block: 28px 38px; }
  .faq-list details { padding: 0; }
  .faq-list summary { min-height: 54px; padding: 14px 4px; }
  .faq-list details p { padding: 0 4px 18px; }

  .footer-main { padding: 42px 16px; grid-template-columns: 1fr; gap: 30px; }
  .footer-column a, .footer-cookie-button { min-height: 44px; display: flex; align-items: center; }
  .footer-bottom { padding: 18px 16px max(18px, env(safe-area-inset-bottom)); display: grid; grid-template-columns: 1fr; gap: 10px; }
  .help-fab { right: 14px; bottom: 14px; width: 50px; min-width: 50px; height: 50px; padding: 0; }
  .help-fab span { display: none; }

  .cookie-layer { align-items: end; padding: 0; }
  .cookie-panel { width: 100%; max-height: min(80vh, 620px); padding: 24px 16px max(22px, env(safe-area-inset-bottom)); overflow-y: auto; border-radius: 18px 18px 0 0; }
  .cookie-panel h2 { font-size: 1.7rem; }
  .cookie-actions { display: grid; grid-template-columns: 1fr; }
  .cookie-button { width: 100%; min-height: 48px; }
  .newsletter-popup { inset: auto 12px max(12px, env(safe-area-inset-bottom)); width: auto; max-height: 80vh; overflow-y: auto; }
}

@media (max-width: 359px) {
  :root { --cvx-gutter: 12px; }
  .site-header, .detail-header.public-header { padding-inline: 12px; grid-template-columns: minmax(0, 1fr) 46px 46px; gap: 5px; }
  .brand-lockup .wordmark { font-size: 1.12rem; letter-spacing: .055em; }
  .site-header [data-main-nav].open { padding-inline: 12px; }
  .home-v15 > section:not(.catalogue-invitation):not(.platform-marquee):not(.promo-banner),
  .catalog-page-main, .journal-main, .articles-main, .article-main,
  .simple-main, .product-main, .seo-landing, .house-page { width: calc(100% - 24px); }
  .home-shelf-track, .catalog-empty-suggestions-track { grid-auto-columns: calc((100vw - 42px) / 2); }
  .hero-mood-links { grid-template-columns: 1fr; }
  .catalog-grid, .seo-book-grid, .catalog-page-content .catalog-grid,
  .nefanda-catalog-content .catalog-grid { gap-inline: 9px; }
  .catalog-card .card-cta { font-size: .61rem; }
  .merchant-grid, .purchase-options, .merchant-links-conversion { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

@media (hover: none) and (pointer: coarse) {
  .catalog-card:hover, .journal-card:hover, .brand-story-card:hover { transform: none; }
}
