/*
Theme Name: Livresse
Theme URI: https://librairie-livresse.fr
Description: Thème enfant de Twenty Twenty-Five pour la Librairie Livresse, librairie indépendante à Villeneuve-sur-Lot. Esthétique papier et encre, typographie de livre.
Author: Nicolas Verlhiac
Template: twentytwentyfive
Version: 1.0.8
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: livresse
*/

:root {
  --lv-rule: 1px solid var(--wp--preset--color--line);
}

/* Fond papier : léger grain pour éviter l'aplat */
body {
  background-color: var(--wp--preset--color--paper);
  background-image:
    radial-gradient(circle at 20% 0%, rgba(255,255,255,0.55), transparent 55%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.09 0 0 0 0 0.07 0 0 0 .045 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-attachment: fixed;
}

/* En-tête : titre serif, double filet éditorial */
.lv-header {
  border-bottom: 3px double var(--wp--preset--color--ink);
}
.lv-header .wp-block-site-title a {
  text-decoration: none;
  letter-spacing: -0.02em;
}
.lv-header .wp-block-site-title a:hover { color: var(--wp--preset--color--accent); }
.lv-header .wp-block-site-tagline {
  font-family: var(--wp--preset--font-family--manrope);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.7rem;
  color: var(--wp--preset--color--muted);
}
.lv-header .wp-block-navigation {
  font-family: var(--wp--preset--font-family--manrope);
  font-size: 0.98rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.lv-header .wp-block-navigation a { text-decoration: none; padding-bottom: 2px; border-bottom: 1px solid transparent; }
.lv-header .wp-block-navigation a:hover,
.lv-header .wp-block-navigation .current-menu-item > a { border-bottom-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }

/* Liste d'articles : chaque billet séparé par un filet, comme une table des matières */
.lv-list .wp-block-post {
  padding-block: var(--wp--preset--spacing--40);
  border-bottom: var(--lv-rule);
}
.lv-list .wp-block-post:first-child { padding-top: 0; }
.lv-list .wp-block-post-title { line-height: 1.15; }
.lv-list .wp-block-post-title a { text-decoration: none; background-image: linear-gradient(var(--wp--preset--color--accent), var(--wp--preset--color--accent)); background-repeat: no-repeat; background-size: 0 1px; background-position: 0 100%; transition: background-size .35s ease; }
.lv-list .wp-block-post-title a:hover { background-size: 100% 1px; }
.lv-list .wp-block-post-featured-image img { filter: saturate(.92); transition: filter .4s ease, transform .4s ease; }
.lv-list .wp-block-post:hover .wp-block-post-featured-image img { filter: saturate(1); }
.lv-list .wp-block-post-excerpt__more-link { font-family: var(--wp--preset--font-family--manrope); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.1em; text-decoration: none; color: var(--wp--preset--color--accent); }

/* Coup de cœur : petit cœur bordeaux devant le titre */
.category-coups-de-coeur .wp-block-post-title a::before,
.single .category-coups-de-coeur .wp-block-post-title::before {
  content: "\2665\00a0";
  color: var(--wp--preset--color--accent);
  font-size: 0.75em;
  vertical-align: 0.1em;
}

/* Métadonnées : date et catégories en petites capitales grotesques */
.lv-meta, .lv-meta a {
  font-family: var(--wp--preset--font-family--manrope);
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--wp--preset--color--muted);
  text-decoration: none;
}
.lv-meta a:hover { color: var(--wp--preset--color--accent); }

/* Sidebar : titres soulignés d'un trait bordeaux court */
.lv-sidebar .wp-block-heading {
  font-family: var(--wp--preset--font-family--manrope);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
  position: relative;
}
.lv-sidebar .wp-block-heading::after { content: ""; position: absolute; left: 0; bottom: 0; width: 2.5rem; height: 2px; background: var(--wp--preset--color--accent); }
.lv-sidebar .wp-block-latest-posts li { padding-block: .45rem; border-bottom: var(--lv-rule); }
.lv-sidebar .wp-block-latest-posts li a { text-decoration: none; }
.lv-sidebar .wp-block-latest-posts li a:hover { color: var(--wp--preset--color--accent); }
.lv-sidebar .wp-block-latest-posts__post-date { font-family: var(--wp--preset--font-family--manrope); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.lv-sidebar .wp-block-search__input { background: transparent; border: var(--lv-rule); border-radius: 0; }
.lv-sidebar .wp-block-search__button { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); border: 0; border-radius: 0; }
.lv-sidebar .wp-block-search__button:hover { background: var(--wp--preset--color--accent); }
.lv-sidebar .wp-block-jetpack-subscriptions input[type=email] { border-radius: 0 !important; border: var(--lv-rule) !important; background: transparent !important; }
.lv-sidebar .wp-block-jetpack-subscriptions button { border-radius: 0 !important; background: var(--wp--preset--color--accent) !important; }

/* Article seul */
.lv-single .wp-block-post-title { line-height: 1.08; letter-spacing: -0.02em; }
.lv-single .wp-block-post-content > p:first-of-type::first-letter {
  font-family: var(--wp--preset--font-family--vollkorn);
  float: left;
  font-size: 3.6em;
  line-height: .78;
  padding-right: .12em;
  padding-top: .08em;
  color: var(--wp--preset--color--accent);
}
.lv-single .wp-block-post-content a { text-decoration-color: var(--wp--preset--color--accent); text-underline-offset: .18em; }
.lv-single .wp-block-post-terms.taxonomy-post_tag a { font-family: var(--wp--preset--font-family--manrope); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; text-decoration: none; border: var(--lv-rule); padding: .2rem .55rem; margin: 0 .35rem .35rem 0; display: inline-block; }
.lv-single .wp-block-post-terms.taxonomy-post_tag a:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
.lv-single .wp-block-post-navigation-link a { text-decoration: none; }

/* Pied de page */
.lv-footer { border-top: 3px double var(--wp--preset--color--ink); }
.lv-footer .wp-block-heading { font-family: var(--wp--preset--font-family--manrope); font-size: .74rem; text-transform: uppercase; letter-spacing: .14em; color: var(--wp--preset--color--muted); }
.lv-footer a { text-decoration: none; }
.lv-footer a:hover { color: var(--wp--preset--color--accent); }
.lv-footer .lv-colophon p { margin: 0; }
.lv-footer .lv-colophon, .lv-footer .lv-colophon p { font-family: var(--wp--preset--font-family--manrope); font-size: .72rem; letter-spacing: .06em; color: var(--wp--preset--color--muted); }

/* Boutons et pagination */
.wp-block-query-pagination a { font-family: var(--wp--preset--font-family--manrope); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; text-decoration: none; }
.wp-block-query-pagination a:hover { color: var(--wp--preset--color--accent); }

/* Apparition douce au chargement */
@media (prefers-reduced-motion: no-preference) {
  .lv-list .wp-block-post { animation: lv-rise .6s ease both; }
  .lv-list .wp-block-post:nth-child(2) { animation-delay: .06s; }
  .lv-list .wp-block-post:nth-child(3) { animation-delay: .12s; }
  .lv-list .wp-block-post:nth-child(4) { animation-delay: .18s; }
  .lv-list .wp-block-post:nth-child(n+5) { animation-delay: .24s; }
  @keyframes lv-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
}

@media (max-width: 781px) {
  .lv-list .wp-block-post-featured-image { width: 100% !important; margin-bottom: .75rem; }
}

/* Liste des rubriques : sans puces, filets fins */
.lv-sidebar .wp-block-categories-list { list-style: none; padding-left: 0; margin: 0; }
.lv-sidebar .wp-block-categories-list li { padding-block: .4rem; border-bottom: var(--lv-rule); }
.lv-sidebar .wp-block-categories-list li a { text-decoration: none; }
.lv-sidebar .wp-block-categories-list li a:hover { color: var(--wp--preset--color--accent); }
.lv-sidebar .wp-block-latest-posts { list-style: none; padding-left: 0; margin: 0; }

/* Vignette de la liste : 34 % de la ligne, image pleine largeur du cadre */
.lv-list .wp-block-post-featured-image { flex: 0 0 34%; max-width: 34%; margin: 0; }
.lv-list .wp-block-post-featured-image img { width: 100% !important; display: block; }
@media (max-width: 781px) {
  .lv-list .wp-block-post > .wp-block-group { flex-wrap: wrap; }
  .lv-list .wp-block-post-featured-image { flex-basis: 100%; max-width: 100%; }
}

/* Menu déroulant Rubriques : panneau papier, entrées en bas de casse lisibles */
.lv-header .wp-block-navigation .wp-block-navigation__submenu-container {
  background: var(--wp--preset--color--paper);
  border: var(--lv-rule);
  border-top: 2px solid var(--wp--preset--color--accent);
  box-shadow: 0 12px 28px -12px rgba(28, 26, 22, .35);
  min-width: 240px;
  padding: .35rem 0;
}
.lv-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  font-family: var(--wp--preset--font-family--literata);
  text-transform: none;
  letter-spacing: 0;
  font-size: .95rem;
  padding: .45rem 1rem;
  border-bottom: 0;
}
.lv-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent); }
.lv-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { border-top: var(--lv-rule); }
.lv-header .wp-block-navigation .has-child .wp-block-navigation__submenu-icon { color: var(--wp--preset--color--muted); }
/* Dans le menu mobile, les sous-menus s affichent depliés */
@media (max-width: 599px) {
  .lv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0; box-shadow: none; padding-left: 1rem; }
}

/* Infos pratiques : encart papier foncé */
.lv-sidebar .lv-infos { background: var(--wp--preset--color--paper-2); padding: 1.25rem 1.35rem; border-left: 3px solid var(--wp--preset--color--accent); }
.lv-sidebar .lv-infos p { margin-bottom: .6rem; }
.lv-sidebar .lv-infos a { text-decoration: none; border-bottom: 1px solid var(--wp--preset--color--line); }
.lv-sidebar .lv-infos a:hover { color: var(--wp--preset--color--accent); border-bottom-color: var(--wp--preset--color--accent); }

/* En-tête : le menu sous le titre, séparé par un filet fin */
.lv-header .lv-navrow { padding-top: .6rem; border-top: var(--lv-rule); width: 100%; }
.lv-header .lv-search .wp-block-search__inside-wrapper { border: 0; border-bottom: var(--lv-rule); border-radius: 0; padding: 0; background: transparent; }
.lv-header .lv-search .wp-block-search__input { background: transparent; border: 0; font-family: var(--wp--preset--font-family--literata); font-size: .95rem; padding: .35rem 0; }
.lv-header .lv-search .wp-block-search__input:focus { outline: none; }
.lv-header .lv-search .wp-block-search__inside-wrapper:focus-within { border-bottom-color: var(--wp--preset--color--accent); }
.lv-header .lv-search .wp-block-search__button { background: transparent; color: var(--wp--preset--color--ink); border: 0; padding: 0 .2rem; margin: 0; }
.lv-header .lv-search .wp-block-search__button:hover { color: var(--wp--preset--color--accent); }
@media (max-width: 599px) { .lv-header .lv-search { width: 100% !important; } }
