/*
Theme Name: Bébé Soleil
Description: Thème enfant GeneratePress — magazine portage. Direction « étiquette textile » : bande tissée signature, palette fil (ocre, cacao, jean), Bricolage Grotesque en display.
Template: generatepress
Version: 2.1.0
*/

/* ===== Fonte display (self-hostée, latin, variable 700-800) ===== */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 700 800;
  font-display: swap;
  src: url(fonts/bricolage-latin.woff2) format('woff2');
}

/* ===== Tokens (palette « fil ») ===== */
:root {
  --blanc: #ffffff;
  --ardoise: #35404d;        /* texte */
  --ardoise-pale: #71809b;
  --ocre: #d98e04;           /* fil soleil */
  --ocre-fonce: #a96d00;     /* CTA (contraste AA sur blanc) */
  --cacao: #6b4f3a;          /* fil cacao */
  --jean: #5877a3;           /* fil bleu jean (liens) */
  --jean-fonce: #40587d;
  --sable: #f6eddd;          /* fond d'encadré */
  --bordure: #e6e2d8;
  --display: 'Bricolage Grotesque', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  /* la bande tissée — signature du site */
  --tissage: repeating-linear-gradient(-45deg,
    var(--ocre) 0 10px,
    var(--sable) 10px 20px,
    var(--cacao) 20px 30px,
    var(--sable) 30px 40px,
    var(--jean) 40px 50px,
    var(--sable) 50px 60px);
}

body {
  background-color: var(--blanc);
  color: var(--ardoise);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.68;
}

h1, h2, h3, h4, .entry-title, .main-title {
  font-family: var(--display);
  font-weight: 750;
  color: var(--ardoise);
  line-height: 1.18;
  letter-spacing: -0.015em;
}

a { color: var(--jean-fonce); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--ocre-fonce); }
a:focus-visible, button:focus-visible { outline: 2px solid var(--ocre-fonce); outline-offset: 2px; }

/* ===== Header + bande tissée ===== */
.site-header { background-color: var(--blanc); }
/* la bande tissée court sous le header — l'étiquette du site */
.site-header::after {
  content: "";
  display: block;
  height: 7px;
  background: var(--tissage);
}
/* (étiquette tissée du titre retirée : le logo soleil la remplace) */
.main-title { font-weight: 800; }
.main-title a { color: var(--ardoise); font-size: 1.4em; text-decoration: none; }
.site-description { color: var(--ardoise-pale); font-size: 0.88em; }

/* logo soleil À GAUCHE du titre (order corrige la position DOM) */
.site-header .inside-header {
  display: flex;
  align-items: center;
  gap: 16px;
}
.site-logo { flex: 0 0 auto; order: -1; }
.site-logo img { height: 54px; width: auto; display: block; }
@media (max-width: 768px) {
  .site-header .inside-header { gap: 10px; justify-content: center; }
  .site-logo img { height: 40px; }
}

.main-navigation { background-color: transparent; }
.main-navigation .main-nav ul li a {
  color: var(--ardoise);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.8em;
  letter-spacing: 0.05em;
}
/* neutralise les pavés sombres GP (hover/actif) → filet tissé dessous.
   GP utilise li:not([class*="current-menu-"]):hover → répliquer sa forme exacte. */
body .main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
body .main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
body .main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a,
body .main-navigation .main-nav ul li[class*="current-menu-"] > a {
  background-color: transparent;
  color: var(--ocre-fonce);
}
/* sous-menus déroulants */
body .main-navigation .main-nav ul ul li:not([class*="current-menu-"]):hover > a,
body .main-navigation .main-nav ul ul li:not([class*="current-menu-"]):focus > a,
body .main-navigation .main-nav ul ul li.sfHover:not([class*="current-menu-"]) > a,
body .main-navigation .main-nav ul ul li[class*="current-menu-"] > a {
  background-color: var(--sable);
  color: var(--ardoise);
}
.main-navigation .main-nav ul li[class*="current-menu-"] > a { box-shadow: inset 0 -3px 0 var(--ocre); }
.main-navigation ul ul { background: #fff; border: 1px solid var(--bordure); }
/* menu mobile : toggle visible sur fond blanc */
.main-navigation .menu-toggle,
.main-navigation .menu-toggle:hover,
.main-navigation .menu-toggle:focus,
.main-navigation.toggled .menu-toggle {
  background: transparent;
  color: var(--ardoise);
}
.main-navigation.toggled .main-nav ul { background: #fff; border: 1px solid var(--bordure); }
@media (max-width: 768px) {
  /* header une ligne : logo + titre à gauche, burger à droite, tagline masquée */
  .site-description { display: none; }
  .site-header .main-title a, .main-title a { font-size: 20px !important; }
  .site-header .inside-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    padding: 14px 56px 14px 16px;
    gap: 8px;
  }
  .site-branding { text-align: left; }
  .site-logo img { height: 32px; }
  #page { position: relative; }
  .main-navigation, .main-navigation .inside-navigation { position: static; }
  .main-navigation .menu-toggle {
    position: absolute;
    top: 10px;
    right: 6px;
    width: auto;
    padding: 12px;
    font-weight: 800;
  }
  .menu-toggle .mobile-menu { display: none; }
  .main-navigation.toggled .main-nav ul { border-radius: 8px; margin: 0 12px 14px; overflow: hidden; }
  .main-navigation .main-nav ul li a { padding: 13px 18px; }
  .main-navigation .main-nav ul li + li { border-top: 1px solid var(--bordure); }
  .main-navigation .main-nav ul li[class*="current-menu-"] > a {
    box-shadow: inset 3px 0 0 var(--ocre);
  }
}

/* ===== Hero magazine (front page, via hook) ===== */
.hero-soleil {
  background-color: var(--sable);
  /* soleil discret côté droit (zéro image) */
  background-image:
    radial-gradient(circle at 86% 42%, rgba(217, 142, 4, 0.22) 0 110px, transparent 111px),
    radial-gradient(circle at 86% 42%, rgba(217, 142, 4, 0.10) 0 165px, transparent 166px),
    radial-gradient(circle at 86% 42%, rgba(217, 142, 4, 0.05) 0 225px, transparent 226px);
  border-bottom: 1px solid var(--bordure);
}
@media (max-width: 900px) { .hero-soleil { background-image: none; } }
.hero-soleil .hero-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 58px 40px 62px;
}
.hero-soleil .hero-kicker {
  display: inline-block;
  font-weight: 700;
  font-size: 0.78em;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--cacao);
  border: 1.5px solid var(--cacao);
  border-radius: 999px;
  padding: 5px 14px;
  margin-bottom: 18px;
}
.hero-soleil h1 {
  font-size: clamp(1.9em, 5vw, 3.1em);
  font-weight: 800;
  max-width: 14em;
  margin: 0 0 0.35em;
}
.hero-soleil h1 em {
  font-style: normal;
  color: var(--ocre-fonce);
}
.hero-soleil .hero-sub { color: var(--ardoise-pale); max-width: 36em; margin-bottom: 1.5em; font-size: 1.05em; }
.hero-soleil .hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
@media (max-width: 768px) {
  .hero-soleil .hero-inner { padding: 36px 22px 42px; }
}

/* ===== Contenu ===== */
.site-content { padding-top: 30px; }
.inside-article {
  background: var(--blanc);
  border: 1px solid var(--bordure);
  border-radius: 10px;
  padding: 38px 44px;
  position: relative;
  overflow: hidden;
}
/* liseré tissé en haut de chaque carte article */
.inside-article::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 5px;
  background: var(--tissage);
  z-index: 1;
}
/* image à la une : pleine largeur de carte, recadrée 16/9, sous le liseré */
.blog .post-image, .archive .post-image { margin: -21px -28px 16px; }
.blog .post-image img, .archive .post-image img,
.blog img.wp-post-image, .archive img.wp-post-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}
@media (max-width: 768px) { .blog .post-image, .archive .post-image { margin: -17px -16px 14px; } }
/* article seul : bannière raisonnable */
.single .post-image { margin: 0 0 24px; }
.single .post-image img, .single img.wp-post-image {
  width: 100%;
  aspect-ratio: 21 / 9;
  object-fit: cover;
  border-radius: 6px;
  display: block;
}
@media (max-width: 768px) { .inside-article { padding: 22px 16px; } }

.entry-title { font-size: 1.5em; }
.entry-title a { color: var(--ardoise); text-decoration: none; }
.entry-title a:hover { color: var(--ocre-fonce); }
.entry-meta { color: var(--ardoise-pale); font-size: 0.78em; text-transform: uppercase; letter-spacing: 0.04em; }

/* ===== Grille magazine (home + archives) ===== */
.blog .site-main, .archive .site-main, .search .site-main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  align-items: stretch;
}
.blog .site-main > *, .archive .site-main > * { min-width: 0; }
.blog .site-main > .paging-navigation, .archive .site-main > .paging-navigation,
.blog .site-main > nav, .archive .site-main > nav { grid-column: 1 / -1; }
@media (max-width: 768px) { .blog .site-main, .archive .site-main, .search .site-main { grid-template-columns: 1fr; } }

.blog article, .archive article { margin-bottom: 0; display: flex; }
.blog .inside-article, .archive .inside-article {
  width: 100%;
  display: flex;
  flex-direction: column;
  padding: 26px 28px 24px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.blog .inside-article:hover, .archive .inside-article:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(34, 56, 76, 0.10);
}
.blog .entry-title, .archive .entry-title { font-size: 1.22em; margin-bottom: 4px; }
.blog .entry-meta, .archive .entry-meta { font-size: 0.62em; margin-bottom: 14px; }
.blog .entry-summary, .archive .entry-summary { font-size: 0.94em; }
/* footer de carte : catégorie en chip ocre, icônes/commentaires masqués */
footer.entry-meta { margin-top: auto; padding-top: 14px; }
.entry-meta .gp-icon, .entry-meta .comments-link { display: none; }
footer.entry-meta .cat-links a {
  display: inline-block;
  background: var(--sable);
  border: 1px solid var(--ocre);
  color: var(--ardoise);
  font-family: var(--display);
  font-size: 0.98em;
  font-weight: 700;
  text-decoration: none;
  padding: 2px 12px;
  border-radius: 3px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
footer.entry-meta .cat-links a:hover { background: var(--ocre); color: #2e2000; }
/* lien lire le guide */
.lire-suite { margin: 10px 0 0; }
.lire-suite a { font-family: var(--display); font-weight: 750; font-size: 0.88em; text-decoration: none; color: var(--ocre-fonce); }
.lire-suite a:hover { color: var(--cacao); }

.entry-content h2 {
  margin-top: 1.5em;
  padding-left: 14px;
  border-left: 6px solid var(--ocre);
}
.entry-content h3 { margin-top: 1.2em; }

/* ===== Tableaux comparatifs (cœur du site) ===== */
.entry-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92em;
  margin: 1.4em 0;
}
.entry-content th {
  background: var(--ardoise);
  color: #fff;
  padding: 11px 13px;
  text-align: left;
  font-family: var(--display);
  font-weight: 700;
  letter-spacing: 0.02em;
}
.entry-content td { padding: 11px 13px; border-bottom: 1px solid var(--bordure); vertical-align: top; }
.entry-content tr:nth-child(even) td { background: #fbf7ee; }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* Badge « Choix de la rédaction » */
.badge-choix {
  display: inline-block;
  background: var(--ocre);
  color: #2e2000;
  font-family: var(--display);
  font-weight: 800;
  font-size: 0.72em;
  padding: 4px 12px;
  border-radius: 3px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Bloc « En bref » — réponse directe en tête d'article (GEO/snippet) */
.en-bref {
  background: var(--sable);
  border-left: 5px solid var(--ocre);
  border-radius: 0 8px 8px 0;
  padding: 18px 24px;
  margin: 0 0 1.6em;
}
.en-bref .en-bref-label {
  display: block;
  font-family: var(--display);
  font-weight: 800;
  font-size: 0.82em;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ocre-fonce);
  margin-bottom: 6px;
}
.en-bref p { margin: 0; }

/* Encadré « Notre avis » : l'étiquette cousue */
.notre-avis {
  background: var(--sable);
  border: 1px dashed var(--cacao);
  border-radius: 6px;
  padding: 18px 22px;
  margin: 1.4em 0;
}
.notre-avis > :first-child { margin-top: 0; }
.notre-avis > :last-child { margin-bottom: 0; }

/* Rappel sécurité portage */
.securite {
  background: #fdf0ec;
  border-left: 6px solid #c0492e;
  border-radius: 0 8px 8px 0;
  padding: 14px 20px;
  margin: 1.4em 0;
}

/* ===== Section « par thème » (accueil) ===== */
.univers { max-width: 1120px; margin: 40px auto 20px; padding: 0 20px; }
.site-main > .univers, .site-main > .author-hero { grid-column: 1 / -1; }
.author .page-header { display: none; }
.univers-titre { padding-left: 14px; border-left: 6px solid var(--ocre); font-size: 1.55em; }
.univers-intro { color: var(--ardoise-pale); max-width: 44em; }
.univers-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 22px 0;
}
@media (max-width: 768px) { .univers-grid { grid-template-columns: 1fr; } }
.univers-carte {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--bordure);
  border-radius: 8px;
  padding: 20px 22px;
  text-decoration: none;
  color: var(--ardoise);
  position: relative;
  overflow: hidden;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.univers-carte::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--tissage); }
.univers-carte:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(34, 56, 76, 0.10); color: var(--ardoise); }
.univers-carte h3 { margin: 6px 0 8px; font-size: 1.05em; }
.univers-carte p { margin: 0 0 12px; font-size: 0.86em; color: var(--ardoise-pale); line-height: 1.6; }
.univers-carte .univers-lien { margin-top: auto; font-family: var(--display); font-weight: 750; font-size: 0.85em; color: var(--ocre-fonce); }
.univers-rassure { background: var(--sable); border-radius: 8px; padding: 16px 22px; font-size: 0.95em; }
.univers-rassure p { margin: 0; }

/* ===== Bandeau page auteur ===== */
.author-hero {
  display: flex;
  gap: 24px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--bordure);
  border-radius: 8px;
  padding: 26px 30px;
  margin: 0 0 26px;
  position: relative;
  overflow: hidden;
}
.author-hero::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--tissage); }
.author-hero img { width: 130px; height: 130px; border-radius: 50%; object-fit: cover; border: 4px solid var(--sable); flex-shrink: 0; }
.author-hero h1 { margin: 6px 0 2px; font-size: 1.5em; }
.author-hero-role { color: var(--cacao); font-weight: 700; font-size: 0.8em; text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 10px; }
.author-hero p { margin: 0; font-size: 0.95em; }
@media (max-width: 600px) { .author-hero { flex-direction: column; text-align: center; } }

/* ===== CTA affiliés ===== */
.btn-affilie, .entry-content a.btn-affilie, .bouton-soleil {
  display: inline-block;
  background: var(--ocre-fonce);
  color: #fff;
  font-family: var(--display);
  font-weight: 750;
  padding: 13px 28px;
  border-radius: 8px;
  text-decoration: none;
}
.btn-affilie:hover, .bouton-soleil:hover { background: var(--cacao); color: #fff; }

.button, button, input[type="submit"] { background: var(--ocre-fonce); color: #fff; border-radius: 8px; }
.button:hover, button:hover, input[type="submit"]:hover { background: var(--cacao); color: #fff; }

/* Étapes numérotées (tutos nouage) */
.entry-content ol.etapes { counter-reset: etape; list-style: none; padding-left: 0; }
.entry-content ol.etapes > li {
  counter-increment: etape;
  position: relative;
  padding-left: 54px;
  margin-bottom: 1.1em;
}
.entry-content ol.etapes > li::before {
  content: counter(etape);
  position: absolute;
  left: 0; top: -2px;
  width: 38px; height: 38px;
  background: var(--ocre);
  color: #2e2000;
  font-family: var(--display);
  font-weight: 800;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.entry-content img { border-radius: 6px; max-width: 100%; height: auto; }

/* ===== Footer + bande tissée ===== */
.site-footer { background: transparent; position: relative; margin-top: 30px; }
.site-footer::before {
  content: "";
  display: block;
  height: 7px;
  background: var(--tissage);
}
.site-info { background-color: transparent; color: var(--ardoise-pale); font-size: 0.85em; padding-top: 16px; }
.site-info a { color: var(--ardoise-pale); }

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}
