/* ══════════════════════════════════════════════════════════════════
   GATHER THEME — Clean Editorial
   Une seule police (DM Sans), espaces généreux, mobile-first
   ══════════════════════════════════════════════════════════════════ */

/* ── Police DM Sans auto-hébergée ─────────────────────────────────
   Fix 09/07/2026 : l'URL fonts.gstatic v15 codée en dur dans les
   theme.json par-site est morte (404 depuis le passage v17 côté
   Google) — la police ne chargeait plus sur aucun site. Ces
   @font-face locaux priment sur ceux du theme.json (déclarés plus
   tard dans la cascade) et suppriment la dépendance tierce (RGPD). */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('fonts/dmsans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('fonts/dmsans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ── Icônes reading-time / key-takeaways ──────────────────────────
   Fix 09/07/2026 : les <i class="fa-solid fa-clock|fa-lightbulb">
   injectés dans le contenu des articles n'ont jamais eu de CSS
   Font Awesome (aucun plugin ne le charge — les <i> étaient vides).
   Icônes SVG monochromes via mask → héritent de la couleur du
   texte, zéro dépendance externe, zéro webfont icône. */
.wp-block-post-content .fa-clock::before,
.wp-block-post-content .fa-lightbulb::before {
  content: '';
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: 0.45em;
  vertical-align: -0.125em;
  background-color: currentColor;
  -webkit-mask: var(--gather-icon) no-repeat center / contain;
  mask: var(--gather-icon) no-repeat center / contain;
}
.wp-block-post-content .fa-clock::before {
  --gather-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}
.wp-block-post-content .fa-lightbulb::before {
  --gather-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4M12 3a6 6 0 0 1 4 10.5c-.7.6-1 1.5-1 2.5h-6c0-1-.3-1.9-1-2.5A6 6 0 0 1 12 3z'/%3E%3C/svg%3E");
}

/* Reading-time : petit texte discret sous le titre */
.single .wp-block-post-content .reading-time {
  font-size: 0.9rem;
  color: var(--wp--preset--color--muted);
}

/* ── Base ───────────────────────────────────────────────────────── */
html {
  scroll-behavior: smooth;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* WP Admin Bar — s'assurer qu'il reste au-dessus et cliquable */
#wpadminbar, #wpadminbar * {
  z-index: 9999999999 !important;
  pointer-events: auto !important;
}
body.admin-bar .wp-site-blocks {
  position: relative;
  z-index: 1;
}

::selection {
  background: var(--wp--preset--color--accent);
  color: #fff;
}

/* ── Header ─────────────────────────────────────────────────────── */
.site-header {
  border-bottom: none !important;
  box-shadow: none !important;
}

/* Header — logo + nav alignés au centre vertical */
.site-header.is-layout-flex {
  align-items: center !important;
  flex-wrap: nowrap !important;
}

/* Logo */
.site-header .site-logo-img {
  margin: 0 !important;
  flex-shrink: 0;
  display: flex !important;
  align-items: center;
}

.site-header .site-logo-img figure,
.site-header .site-logo-img a {
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
}

.site-header .site-logo-img img {
  height: 44px;
  width: auto;
  display: block;
}

/* Nav */
.site-header .wp-block-navigation {
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
}

.wp-block-navigation a {
  position: relative;
  transition: color .2s ease;
  color: var(--wp--preset--color--secondary);
}

.wp-block-navigation a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--wp--preset--color--accent);
  transition: width .25s ease;
}

.wp-block-navigation a:hover::after,
.wp-block-navigation .current-menu-item > a::after {
  width: 100%;
}

.wp-block-navigation a:hover,
.wp-block-navigation .current-menu-item > a {
  color: var(--wp--preset--color--secondary) !important;
}

/* Séparateur avant Contact (desktop) */
.nav-contact-link {
  margin-left: 8px !important;
  padding-left: 16px !important;
  border-left: 1px solid #e5e7eb;
}

/* Burger menu : items centrés avec espacement */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  padding: 40px 32px !important;
  gap: 8px !important;
  align-items: flex-start !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
  font-size: 18px !important;
  padding: 12px 0 !important;
}

/* Sur mobile, pas de séparateur sur Contact */
@media (max-width: 768px) {
  .nav-contact-link {
    margin-left: 0 !important;
    padding-left: 0 !important;
    border-left: none !important;
  }
}

/* ── Hero ───────────────────────────────────────────────────────── */
.hero-section .wp-block-cover__inner-container { position: relative; z-index: 2; }
.hero-title { text-shadow: 0 2px 30px rgba(0,0,0,0.25); }
.section-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent);
}

/* ── Category Cards (miobar style) ──────────────────────────────── */
.cat-card-img {
  min-height: 500px !important;
  transition: transform .3s ease, box-shadow .3s ease;
  overflow: hidden;
}

.cat-card-img:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 50px rgba(0,0,0,0.2);
}

/* Image zoom on hover */
.cat-card-img .wp-block-cover__image-background {
  transition: transform .6s ease;
}
.cat-card-img:hover .wp-block-cover__image-background {
  transform: scale(1.06);
}

/* Gradient overlay : transparent en haut, sombre en bas */
.cat-card-img .wp-block-cover__background {
  background: linear-gradient(0deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.2) 40%, rgba(0,0,0,0) 100%) !important;
  opacity: 1 !important;
}

/* Texte en bas à gauche (style miobar) */
/* Cards : hauteur basée sur la largeur du viewport */
.cat-card-img.wp-block-cover {
  aspect-ratio: auto !important;
  min-height: 22vw !important;
}

/* Force inner-container en flex, texte en bas */
div.cat-card-img > div.wp-block-cover__inner-container {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  align-items: flex-start !important;
  height: 100% !important;
  /* Override le constrained layout qui centre tout */
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Le groupe enfant aussi : pas de centrage, aligné à gauche */
div.cat-card-img .wp-block-cover__inner-container > .wp-block-group {
  min-height: auto !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
}

/* Contenu enfant du constrained : pas de max-width auto-centré */
div.cat-card-img .wp-block-cover__inner-container > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.cat-card-img h3 {
  text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.cat-card-img p, .cat-card-img h3 {
  margin-left: 0 !important;
  text-align: left !important;
}

/* Mobile cards catégories */
@media (max-width: 768px) {
  .cat-card-img.wp-block-cover { min-height: 65vw !important; }
  div.cat-card-img > div.wp-block-cover__inner-container { min-height: 65vw !important; padding-bottom: 36px !important; }
}

/* ── Article Cards ──────────────────────────────────────────────── */
.wp-block-latest-posts.is-grid li {
  background: #fff;
  border: none;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  transition: transform .3s ease, box-shadow .3s ease;
  padding: 0 !important;
}
.wp-block-latest-posts.is-grid li:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

/* Images dans les cards */
.wp-block-latest-posts__featured-image { margin-bottom: 0; overflow: hidden; }
.wp-block-latest-posts__featured-image img {
  width: 100%; height: 220px; object-fit: cover;
  transition: transform .4s ease;
}
.wp-block-latest-posts.is-grid li:hover .wp-block-latest-posts__featured-image img {
  transform: scale(1.03);
}
.wp-block-post-featured-image img {
  transition: transform .4s ease;
}

/* Card text */
.wp-block-latest-posts__post-title {
  font-size: 16px; font-weight: 700; line-height: 1.4;
  padding: 16px 16px 0; color: var(--wp--preset--color--secondary);
  display: block; transition: color .2s; text-decoration: none;
}
.wp-block-latest-posts__post-title:hover { color: var(--wp--preset--color--primary); }
.wp-block-latest-posts__post-excerpt {
  padding: 8px 16px 8px; color: var(--wp--preset--color--muted);
  font-size: 15px; line-height: 1.6;
}
.wp-block-latest-posts__post-date {
  padding: 0 16px 16px; color: var(--wp--preset--color--muted);
  font-size: 12px; letter-spacing: 0.5px; text-transform: uppercase;
  margin-top: 10px;
}

/* Query loop article cards */
.article-card {
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  border-radius: 12px;
  transition: transform .3s ease, box-shadow .3s ease;
}
.article-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

.article-card .wp-block-post-title a {
  text-decoration: none !important;
  color: var(--wp--preset--color--secondary) !important;
  transition: color .2s;
}
.article-card .wp-block-post-title a:hover {
  color: var(--wp--preset--color--primary) !important;
}

/* Images articles dans les cards latest-posts */
.wp-block-latest-posts__featured-image {
  margin: 0 !important;
  overflow: hidden;
  border-radius: 12px 12px 0 0;
}
.wp-block-latest-posts__featured-image a {
  display: block;
  line-height: 0;
}
.wp-block-latest-posts__featured-image img {
  width: 100% !important;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px 12px 0 0;
  transition: transform .4s ease;
  display: block;
}
.wp-block-latest-posts.is-grid li:hover .wp-block-latest-posts__featured-image img {
  transform: scale(1.04);
}

/* Images articles dans les cards query loop */
.article-card .wp-block-post-featured-image {
  overflow: hidden;
  margin: 0 !important;
  border-radius: 12px 12px 0 0;
}
.article-card .wp-block-post-featured-image img {
  width: 100% !important;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform .4s ease;
  display: block;
}
.article-card:hover .wp-block-post-featured-image img {
  transform: scale(1.04);
}

/* Grille 4 colonnes → 2 sur tablette → 1 sur mobile */
@media (max-width: 1024px) {
  .wp-block-post-template[class*="grid"][class*="columns-4"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  .wp-block-post-template[class*="grid"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── Single Article ─────────────────────────────────────────────── */

/* Image mise en avant : forcer horizontal */
.single .wp-block-post-featured-image img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 8px;
}

/* Pas de séparateurs entre les H2 */
.single .wp-block-post-content h2 {
  margin-top: 2.5rem;
  padding-top: 0;
  border-top: none;
}

/* Premier paragraphe légèrement plus grand */
.single .wp-block-post-content > p:first-of-type {
  font-size: 1.1em;
  color: var(--wp--preset--color--muted);
}

/* Points clés à retenir */
.single .wp-block-post-content .key-takeaways {
  background: var(--wp--preset--color--accent);
  border-radius: 12px;
  padding: 28px 32px;
  margin: 2rem 0 2.5rem;
  border-left: none;
}
.single .wp-block-post-content .key-takeaways h3 {
  margin-top: 0;
  margin-bottom: 16px;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
}
.single .wp-block-post-content .key-takeaways h3 i {
  color: #fff;
}
.single .wp-block-post-content .key-takeaways ul {
  margin: 0;
  padding-left: 0;
  list-style: none;
}
.single .wp-block-post-content .key-takeaways li {
  position: relative;
  padding: 6px 0 6px 24px;
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255,255,255,0.95);
}
.single .wp-block-post-content .key-takeaways li strong {
  color: #fff;
  font-weight: 600;
}
.single .wp-block-post-content .key-takeaways li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 6px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
}

/* Encadrés conseil/astuce/warning/retenir */
.single .wp-block-post-content .wp-block-quote.is-style-default {
  background: #faf9f6;
  border-left: 4px solid var(--wp--preset--color--accent);
  border-radius: 0 8px 8px 0;
  padding: 20px 24px;
  margin: 2rem 0;
  font-style: normal;
  color: var(--wp--preset--color--secondary);
}
.single .wp-block-post-content .wp-block-quote.is-style-default p {
  font-style: normal;
  color: var(--wp--preset--color--secondary);
}

/* Blockquotes (citations) */
.single .wp-block-post-content blockquote:not(.is-style-default) {
  border-left: 3px solid var(--wp--preset--color--accent);
  padding: 1rem 0 1rem 1.5rem;
  margin: 2rem 0;
  font-style: italic;
  color: var(--wp--preset--color--muted);
}

/* Liens dans l'article */
.single .wp-block-post-content a {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--wp--preset--color--accent);
}
.single .wp-block-post-content a:hover {
  text-decoration-color: var(--wp--preset--color--secondary);
}

/* Category badge */
.post-category-badge a,
.taxonomy-category a,
.cat-links a {
  font-size: 11px; font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase;
  color: var(--wp--preset--color--accent);
  text-decoration: none;
}

/* Sommaire */
.article-toc {
  font-family: var(--wp--preset--font-family--body);
  border-radius: 0;
  background: #faf9f6 !important;
  border-left: 3px solid var(--wp--preset--color--accent) !important;
}
.article-toc ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Author box */
.author-box {
  border-radius: 0;
}
.author-box .wp-block-post-author {
  display: flex !important;
  align-items: center !important;
  gap: 20px;
}
.author-box .wp-block-post-author__avatar {
  flex-shrink: 0;
}
.author-box .wp-block-post-author__avatar img {
  border-radius: 50%;
  width: 72px !important;
  height: 72px !important;
  object-fit: cover;
  display: block;
}
.author-box .wp-block-post-author__content {
  display: flex;
  align-items: center;
}

/* ── Boutons ────────────────────────────────────────────────────── */
.wp-block-button__link {
  transition: all .25s ease;
}
.wp-block-button__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.1);
}
.is-style-outline .wp-block-button__link {
  border: 2px solid currentColor;
  background: transparent;
}

/* ── Footer ─────────────────────────────────────────────────────── */
.site-footer { border-top: none; }

/* ── Separator accent ───────────────────────────────────────────── */
.accent-line {
  width: 60px;
  border-top: 3px solid var(--wp--preset--color--accent);
  margin-left: 0;
}
.accent-line-center {
  width: 60px;
  border-top: 3px solid var(--wp--preset--color--accent);
  margin-left: auto; margin-right: auto;
}

/* ══════════════════════════════════════════════════════════════════
   RESPONSIVE — Mobile first
   ══════════════════════════════════════════════════════════════════ */

/* ── Tablette (max 1024px) ──────────────────────────────────────── */
@media (max-width: 1024px) {
  /* Réduire les paddings des sections */
  .wp-block-group[style*="padding-top:100px"] { padding-top: 60px !important; padding-bottom: 60px !important; }
  .wp-block-group[style*="padding-top:80px"] { padding-top: 50px !important; padding-bottom: 50px !important; }
  .wp-block-group[style*="padding-left:48px"] { padding-left: 24px !important; padding-right: 24px !important; }

  /* Hero */
  .wp-block-cover[style*="min-height:600px"] { min-height: 450px !important; }
  .wp-block-group[style*="padding-top:120px"] { padding-top: 80px !important; padding-bottom: 80px !important; }

  /* Grille 2 colonnes au lieu de 3 */
  .wp-block-latest-posts.is-grid { columns: 2 !important; }

  /* Cards catégorie sur 2 colonnes */
  .wp-block-columns:has(.cat-card) { flex-wrap: wrap !important; }
  .wp-block-columns:has(.cat-card) > .wp-block-column { flex-basis: 48% !important; margin-bottom: 16px; }
}

/* ── Mobile (max 768px) ─────────────────────────────────────────── */
@media (max-width: 768px) {
  /* Paddings globaux réduits */
  .wp-block-group[style*="padding-left:40px"] { padding-left: 20px !important; padding-right: 20px !important; }
  .wp-block-group[style*="padding-left:48px"] { padding-left: 16px !important; padding-right: 16px !important; }
  .wp-block-group[style*="padding-top:100px"] { padding-top: 40px !important; padding-bottom: 40px !important; }
  .wp-block-group[style*="padding-top:80px"] { padding-top: 36px !important; padding-bottom: 36px !important; }
  .wp-block-group[style*="padding-top:48px"] { padding-top: 24px !important; }

  /* Hero mobile */
  .wp-block-cover[style*="min-height:600px"] { min-height: 400px !important; }
  .wp-block-group[style*="padding-top:120px"] { padding-top: 60px !important; padding-bottom: 60px !important; }
  .hero-title { font-size: 1.8rem !important; }

  /* Header */
  .site-header { padding-left: 16px !important; padding-right: 16px !important; }

  /* Colonnes catégories en 1 colonne */
  .wp-block-columns:has(.cat-card) > .wp-block-column { flex-basis: 100% !important; }
  .cat-card { padding: 24px 20px !important; }

  /* Grille articles en 1 colonne */
  .wp-block-latest-posts.is-grid { columns: 1 !important; }
  .wp-block-post-template[class*="grid"] { grid-template-columns: 1fr !important; }

  /* Article single */
  .single .wp-block-post-featured-image img {
    border-radius: 0;
    margin-left: -20px;
    margin-right: -20px;
    width: calc(100% + 40px);
    max-width: calc(100% + 40px);
  }

  /* Sommaire */
  .article-toc {
    padding: 20px 20px !important;
    margin-bottom: 32px !important;
  }

  /* Boutons hero seulement */
  .hero-section .wp-block-buttons { flex-direction: column !important; }
  .hero-section .wp-block-button { width: 100%; }
  .hero-section .wp-block-button__link { width: 100%; text-align: center; }

  /* Footer mobile : compact, pas de colonnes */
  .site-header + * ~ * .wp-block-columns { flex-direction: column !important; }
  .site-header + * ~ * .wp-block-column { flex-basis: 100% !important; margin-bottom: 32px; }

  /* Footer bouton Contact petit sur mobile */
  footer .wp-block-button__link,
  .has-dark-background-color:last-child .wp-block-button__link {
    font-size: 11px !important;
    padding: 8px 16px !important;
    letter-spacing: 0.5px !important;
  }

  /* Footer flex wrap */
  footer .is-layout-flex,
  .site-footer .is-layout-flex {
    flex-wrap: wrap !important;
    gap: 12px !important;
  }

  /* Images cards plus petites */
  .wp-block-latest-posts__featured-image img { height: 200px; }

  /* Titres cards */
  .wp-block-latest-posts__post-title { font-size: 16px; padding: 16px 20px 0; }
  .wp-block-latest-posts__post-excerpt { padding: 6px 20px 6px; font-size: 14px; }
  .wp-block-latest-posts__post-date { padding: 0 20px 16px; }
}

/* ── Petit mobile (max 480px) ───────────────────────────────────── */
@media (max-width: 480px) {
  .hero-title { font-size: 1.5rem !important; }
  .wp-block-cover[style*="min-height"] { min-height: 320px !important; }
  body { font-size: 16px; }
}
