/* =====================================================================
   Thème enfant « cassini » pour Hummingbird 2.0 (PrestaShop 9.1)
   Palette B : rouge du logo Cassini. Titres et interface en Cabin,
   texte courant en Source Serif 4. Polices auto-hébergées (RGPD).
   ===================================================================== */

/* ---------- polices ---------- */
@font-face { font-family: 'Cabin'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/Cabin-400-latin.woff2) format('woff2'); }
@font-face { font-family: 'Cabin'; font-style: italic; font-weight: 400 700; font-display: swap; src: url(../fonts/Cabin-400i-latin.woff2) format('woff2'); }
@font-face { font-family: 'Source Serif 4'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/SourceSerif4-400-latin.woff2) format('woff2'); }
@font-face { font-family: 'Source Serif 4'; font-style: italic; font-weight: 400; font-display: swap; src: url(../fonts/SourceSerif4-400i-latin.woff2) format('woff2'); }
@font-face { font-family: 'Source Serif 4'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/SourceSerif4-600-latin.woff2) format('woff2'); }

/* ---------- jetons ---------- */
:root {
  --cassini-rouge: #b5061a;
  --cassini-rouge-fonce: #8e0514;
  --cassini-rouge-clair: #fbe9eb;
  --cassini-texte: #2b2a28;
  --cassini-texte-2: #6b6862;
  --cassini-surface: #f7f3f1;
  --cassini-bord: #e7dedb;
  --cassini-titre: 'Cabin', system-ui, -apple-system, sans-serif;
  --cassini-serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;

  /* Bootstrap 5.3 */
  --bs-primary: var(--cassini-rouge);
  --bs-primary-rgb: 181, 6, 26;
  --bs-link-color: var(--cassini-rouge);
  --bs-link-color-rgb: 181, 6, 26;
  --bs-link-hover-color: var(--cassini-rouge-fonce);
  --bs-link-hover-color-rgb: 142, 5, 20;
  --bs-body-color: var(--cassini-texte);
  --bs-body-color-rgb: 43, 42, 40;
  --bs-body-font-family: var(--cassini-serif);
  --bs-body-font-size: 1.0625rem;
  --bs-body-line-height: 1.55;
  --bs-font-sans-serif: var(--cassini-titre);
  --bs-border-color: var(--cassini-bord);
  --bs-secondary-bg: var(--cassini-surface);
  --bs-tertiary-bg: var(--cassini-surface);
}

/* ---------- typographie ---------- */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6,
.btn, .form-control, .form-select, .form-label, label, input, select, textarea, button,
.header, .footer, .breadcrumb, .menu, .ps-mainmenu, .ps-searchbar, .header-block,
.product-miniature, .product__prices, .product__actions, .product-flags, .badge,
.pagination, .products__sort, .sort-orders, .facet, .accordion-button, .nav, .card-header,
.alert, .cart, .checkout, .modal, .offcanvas, .blockreassurance, .psreassurance, .newsletter,
.category__header .rich-text, .product__description-short, .page-title, .price {
  font-family: var(--cassini-titre);
}
h1, h2, h3, .h1, .h2, .h3 { font-weight: 600; letter-spacing: -0.01em; color: var(--cassini-texte); }
.rich-text, .product__description, .cms-content, .page-cms { font-family: var(--cassini-serif); font-size: 1.0625rem; }
a { text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---------- boutons ---------- */
.btn-primary, .btn-primary:visited {
  --bs-btn-bg: var(--cassini-rouge); --bs-btn-border-color: var(--cassini-rouge); --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--cassini-rouge-fonce); --bs-btn-hover-border-color: var(--cassini-rouge-fonce); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--cassini-rouge-fonce); --bs-btn-active-border-color: var(--cassini-rouge-fonce); --bs-btn-active-color: #fff;
  --bs-btn-disabled-bg: #c9a3a8; --bs-btn-disabled-border-color: #c9a3a8; --bs-btn-disabled-color: #fff;
  --bs-btn-focus-shadow-rgb: 181, 6, 26;
  font-weight: 600; border-radius: 4px;
}
.btn-outline-primary {
  --bs-btn-color: var(--cassini-rouge); --bs-btn-border-color: var(--cassini-rouge);
  --bs-btn-hover-bg: var(--cassini-rouge); --bs-btn-hover-border-color: var(--cassini-rouge); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--cassini-rouge-fonce); --bs-btn-active-border-color: var(--cassini-rouge-fonce); --bs-btn-active-color: #fff;
  --bs-btn-focus-shadow-rgb: 181, 6, 26;
  font-weight: 600; border-radius: 4px;
}
.btn-link { --bs-btn-color: var(--cassini-rouge); --bs-btn-hover-color: var(--cassini-rouge-fonce); }
.form-control:focus, .form-select:focus { border-color: var(--cassini-rouge); box-shadow: 0 0 0 .2rem rgba(181, 6, 26, .18); }
.form-check-input:checked { background-color: var(--cassini-rouge); border-color: var(--cassini-rouge); }
.text-primary { color: var(--cassini-rouge) !important; }
.bg-primary, .badge.bg-primary { background-color: var(--cassini-rouge) !important; }
.border-primary { border-color: var(--cassini-rouge) !important; }
.page-link.active, .active > .page-link { background-color: var(--cassini-rouge); border-color: var(--cassini-rouge); }
.page-link { color: var(--cassini-rouge); }
.accordion-button:not(.collapsed) { color: var(--cassini-rouge-fonce); background-color: var(--cassini-rouge-clair); box-shadow: none; }
.accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(181, 6, 26, .18); border-color: var(--cassini-rouge); }
.nav-link { color: var(--cassini-rouge); }
.nav-link:hover, .nav-link:focus { color: var(--cassini-rouge-fonce); }
.material-icons { color: inherit; }

/* ---------- en-tête ---------- */
.header-top { background: var(--cassini-surface); border-bottom: 1px solid var(--cassini-bord); font-size: .9rem; }
.header-bottom { border-bottom: 1px solid var(--cassini-bord); }
.header-bottom__logo img { max-height: 56px; width: auto; }
.header-block__badge { background: var(--cassini-rouge); color: #fff; }
.header-block__icon { color: var(--cassini-texte); }

/* menu des collections : barre horizontale sous le logo, dès les tablettes, souligné rouge */
@media (min-width: 1200px) {
  .ps-mainmenu--desktop { flex: 0 0 100%; max-width: 100%; order: 20; margin-top: .25rem; }
  .ps-mainmenu__desktop { border-top: 1px solid var(--cassini-bord); }
  .header-bottom__row { row-gap: 0; }
}
.ps-mainmenu__tree { display: flex; flex-wrap: wrap; gap: 0 .25rem; list-style: none; margin: 0; padding: 0; }
.ps-mainmenu__tree-item-wrapper { display: block; }
.ps-mainmenu__tree-link {
  display: block; padding: .55rem .5rem; font-family: var(--cassini-titre); font-weight: 500; font-size: .86rem; color: var(--cassini-texte);
  border-bottom: 3px solid transparent; white-space: nowrap;
}
.ps-mainmenu__tree-link:hover, .ps-mainmenu__tree-link:focus, .ps-mainmenu__tree-item--current .ps-mainmenu__tree-link,
.ps-mainmenu__tree-item.active .ps-mainmenu__tree-link { color: var(--cassini-rouge); border-bottom-color: var(--cassini-rouge); text-decoration: none; }
.ps-mainmenu__mobile .menu__link { font-family: var(--cassini-titre); }

/* recherche */
.ps-searchbar__input { font-family: var(--cassini-titre); background: var(--cassini-surface); border: 1px solid var(--cassini-bord); border-radius: 4px; }
.ps-searchbar__input:focus { background: #fff; }

/* bandeau de réassurance */
.header-nav-full-width .blockreassurance_product, .header-nav-full-width [class*="reassurance"] { font-family: var(--cassini-titre); }

/* ---------- vignettes de livres ---------- */
.product-miniature__image-container, .product-miniature__image-link { display: block; }
.product-miniature__image-link {
  aspect-ratio: 2 / 3; background: #fff; border: 1px solid var(--cassini-bord); border-radius: 2px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .06); overflow: hidden; transition: transform .15s ease, box-shadow .15s ease;
  display: flex; align-items: center; justify-content: center;
}
.product-miniature:hover .product-miniature__image-link { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0, 0, 0, .12); }
.product-miniature__image { width: 100%; height: 100%; object-fit: contain; }
.product-miniature__title { font-family: var(--cassini-titre); font-weight: 600; font-size: .95rem; line-height: 1.3; color: var(--cassini-texte); }
.product-miniature__title:hover { color: var(--cassini-rouge); text-decoration: none; }
.product-miniature__price { color: var(--cassini-rouge); font-weight: 600; }
.product-miniature .quantity-button { display: none; }             /* pas de sélecteur de quantité dans les listes */
.product-miniature__add { border-radius: 4px; }
.product-miniature__discount-price:empty { display: none; }

/* ---------- fiche livre ---------- */
.product__name { font-size: 2rem; line-height: 1.15; }
.product__images img, .product__cover img { box-shadow: 0 8px 24px rgba(0, 0, 0, .14); border-radius: 2px; }
.product__thumbnails:has(.product__thumbnail:only-child) { display: none; }   /* une seule image : pas de vignette redondante */
.product__description-short { font-family: var(--cassini-titre); font-size: 1rem; color: var(--cassini-texte); }
.product__description-short a { color: var(--cassini-rouge) !important; }
.product__description-short span[style*="color"] { color: inherit !important; }
.product__prices .price, .product__price, .current-price-value { color: var(--cassini-texte); font-weight: 600; font-size: 1.75rem; }
.product__accordion .accordion-body { font-family: var(--cassini-serif); }
.product-flags .product-flag { background: var(--cassini-rouge); color: #fff; font-family: var(--cassini-titre); }
.product-flags .product-flag.out_of_stock { background: var(--cassini-texte-2); }

/* ---------- pages catégorie (collections) ---------- */
.category__header .page-title, .category__header h1 { font-size: 1.9rem; }
.category__description { max-width: 800px; color: var(--cassini-texte-2); font-family: var(--cassini-serif); }
.breadcrumb { font-family: var(--cassini-titre); font-size: .85rem; }
.products__sort, .sort-orders { font-family: var(--cassini-titre); font-size: .9rem; }

/* ---------- accueil ---------- */
.cassini-editorial { max-width: 780px; padding: 2rem 0 .5rem; }
.cassini-collections-section { padding-bottom: 1rem; }
.cassini-editorial h2 { font-size: 1.9rem; margin-bottom: .6rem; }
.cassini-editorial p { font-family: var(--cassini-serif); font-size: 1.125rem; margin: 0; }
.page-content--home h2, .page-content--home .products-section-title, .page-content--home .h2 {
  font-size: 1.4rem; border-bottom: 2px solid var(--cassini-rouge); padding-bottom: .5rem; margin-bottom: 1.25rem;
}
.cassini-actualites { margin: 1.5rem 0 2rem; }
.cassini-actualites h3 { font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--cassini-rouge); margin: 1.4rem 0 .6rem; }
.cassini-actualites ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem 1.5rem; }
.cassini-actualites li { display: flex; gap: .9rem; align-items: flex-start; font-family: var(--cassini-serif); }
.cassini-actualites li img { width: 64px; aspect-ratio: 2 / 3; object-fit: contain; border: 1px solid var(--cassini-bord); background: #fff; flex: none; }
.cassini-actualites li a { color: var(--cassini-texte); }
.cassini-actualites li a:hover { color: var(--cassini-rouge); text-decoration: none; }
.cassini-actualites li em { display: block; font-style: italic; }
.cassini-actualites li small { font-family: var(--cassini-titre); color: var(--cassini-texte-2); }
.cassini-collections { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .9rem; margin: 1rem 0 2.5rem; }
.cassini-collections a {
  display: block; padding: .9rem 1rem; background: var(--cassini-surface); border: 1px solid var(--cassini-bord); border-radius: 4px;
  font-family: var(--cassini-titre); font-weight: 600; font-size: .95rem; color: var(--cassini-texte);
}
.cassini-collections a:hover { border-color: var(--cassini-rouge); color: var(--cassini-rouge); text-decoration: none; }

/* ---------- pied de page ---------- */
.footer { font-family: var(--cassini-titre); }
.footer__main { background: var(--cassini-surface); border-top: 1px solid var(--cassini-bord); color: var(--cassini-texte-2); }
.footer__main a { color: var(--cassini-texte-2); }
.footer__main a:hover { color: var(--cassini-rouge); }
.footer__main .footer-block__title, .footer__main h3, .footer__main .h3, .footer__main p.h4 { font-size: .95rem; font-weight: 600; color: var(--cassini-texte) !important; }
.footer__main .footer-block__title .material-icons, .footer__main .footer-block__title button { color: var(--cassini-texte); }
.footer__main .footer-block__list a, .footer__main .footer-block__content, .footer__main .footer-block__content a { color: var(--cassini-texte-2); }
.footer__main .footer-block__content a:hover, .footer__main .footer-block__list a:hover { color: var(--cassini-rouge); }
.footer__before { border-top: 1px solid var(--cassini-bord); }

.copyright { font-family: var(--cassini-titre); font-size: .8rem; color: var(--cassini-texte-2); text-align: center; }
.copyright a { color: var(--cassini-texte-2); }

/* ---------- divers ---------- */
::selection { background: var(--cassini-rouge-clair); color: var(--cassini-rouge-fonce); }
.alert-success { --bs-alert-color: #1f5c38; --bs-alert-bg: #e6f2ea; --bs-alert-border-color: #bfe0cb; }
@media (max-width: 767.98px) {
  .product__name { font-size: 1.5rem; }
  .cassini-editorial h2 { font-size: 1.5rem; }
}

/* ---------- caractéristiques (auteur, tableau bibliographique) ---------- */
.cassini-auteur { font-family: var(--cassini-titre); font-size: .88rem; color: var(--cassini-texte-2); margin-top: .15rem; }
.cassini-fiche-auteurs { margin: .25rem 0 .9rem; font-family: var(--cassini-titre); }
.cassini-fiche-auteur { font-size: 1.15rem; margin: 0 0 .15rem; color: var(--cassini-texte); }
.cassini-fiche-role { font-size: .95rem; margin: 0; color: var(--cassini-texte-2); }
.cassini-meta { display: grid; grid-template-columns: repeat(3, auto); gap: .6rem 1.6rem; width: fit-content; max-width: 100%;
  font-family: var(--cassini-titre); font-size: .9rem; background: var(--cassini-surface); border: 1px solid var(--cassini-bord); border-radius: 4px; padding: .8rem 1rem; margin: 0 0 1.2rem; }
.cassini-meta dt { font-size: .72rem; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; color: var(--cassini-texte-2); margin: 0; }
.cassini-meta dd { margin: 0; color: var(--cassini-texte); }
#product_features { display: none; }   /* le tableau ci-dessus remplace l'accordéon « Caractéristiques » */
@media (max-width: 575.98px) { .cassini-meta { grid-template-columns: repeat(2, auto); } }

/* ---------- en-tête : outils (langues, compte, panier) sur la ligne du logo ---------- */
.header-top { display: none !important; }
.cassini-header-tools { gap: .9rem; margin-left: .5rem; font-family: var(--cassini-titre); }
.cassini-header-tools .header-block__title { font-size: .9rem; }
.cassini-langues { display: flex; gap: .35rem; align-items: center; }
.cassini-langue { display: block; line-height: 0; opacity: .45; border: 1px solid transparent; border-radius: 2px; padding: 1px; }
.cassini-langue img { display: block; width: 20px; height: 14px; object-fit: cover; }
.cassini-langue:hover, .cassini-langue--active { opacity: 1; }
.cassini-langue--active { border-color: var(--cassini-rouge); }
#_desktop_ps_currencyselector, .ps-currencyselector { display: none !important; }

/* ---------- vignettes : ni bouton, ni avis, ni étiquette de rupture ---------- */
.product-miniature__actions, .product-miniature .product-list-reviews, .product-miniature .product-comments__list-reviews { display: none !important; }
.product-miniature .product-flags .badge.out_of_stock { display: none; }
.product-miniature__prices { display: flex; align-items: baseline; gap: .6rem; margin-top: .35rem; }
.cassini-pages { font-family: var(--cassini-titre); font-size: .85rem; color: var(--cassini-texte-2); }
.footer__main .ps-contactinfo__phone, .footer__main .ps-contactinfo__email { margin-top: .35rem; }
/* pied de page en trois colonnes : Catalogue, Commander, Les Éditions Cassini */
@media (min-width: 768px) {
  .footer__main .footer-block { flex: 0 0 33.3333%; width: 33.3333%; max-width: 33.3333%; }
}
.footer__main .ps-contactinfo .footer-block__list { margin-bottom: .75rem; }

/* ---------- « n livres dans la même collection » : rangée défilante ---------- */
.cassini-collection-row { margin: 2rem 0 1rem; }
.cassini-scroll { display: flex; gap: 1.1rem; overflow-x: auto; scroll-snap-type: x proximity; padding: .25rem .25rem 1rem; scrollbar-width: thin; scrollbar-color: var(--cassini-bord) transparent; }
.cassini-scroll__item { flex: 0 0 190px; scroll-snap-align: start; }
.cassini-scroll .product-miniature__title { font-size: .88rem; }
.cassini-scroll .product-miniature__prices { font-size: .9rem; }
.cassini-collection-row__more { text-align: right; font-family: var(--cassini-titre); font-size: .92rem; margin: .25rem 0 0; }
.cassini-collection-row__more a { color: var(--cassini-rouge); }
@media (max-width: 575.98px) { .cassini-scroll__item { flex-basis: 140px; } }
