/*
Theme Name: Diversification alimentaire bébé
Template: astra
Description: Thème enfant Astra de diversification-alimentaire-bebe.com, charte sauge et abricot (lot 05 site-diversification).
Version: 1.0.0
Text Domain: diversification
*/

/* --- Polices servies par le site (fonts/, licence OFL) ------------------------------------------------------- */

@font-face {
  font-family: "Nunito";
  src: url("fonts/nunito-latin-wght.woff2") format("woff2");
  font-weight: 200 1000;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Sans 3";
  src: url("fonts/source-sans-3-latin-wght.woff2") format("woff2");
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Source Sans 3";
  src: url("fonts/source-sans-3-latin-wght-italic.woff2") format("woff2");
  font-weight: 200 900;
  font-style: italic;
  font-display: swap;
}

/* --- Jetons de la charte (paires de contraste vérifiées par tests/test_diversification_theme.py) ------------- */

:root {
  --dab-fond: #FAF8F4;
  --dab-surface: #FFFFFF;
  --dab-texte: #23302A;
  --dab-texte-doux: #4D5B54;
  --dab-titre: #2F5D50;
  --dab-sauge-fonce: #244A40;
  --dab-encadre: #EAF1EC;
  --dab-bouton: #B4532A;
  --dab-bouton-fonce: #923F1D;
  --dab-abricot-clair: #FBEBDF;
  --dab-bordure: #7C8A83;
  --dab-blanc: #FFFFFF;
  --dab-rayon: 12px;
  --dab-mesure: 62ch;
  --dab-police-titres: "Nunito", "Trebuchet MS", sans-serif;
  --dab-police-texte: "Source Sans 3", "Helvetica Neue", Arial, sans-serif;
}

/* --- Base --------------------------------------------------------------------------------------------------- */

body,
body.ast-plain-container,
.ast-separate-container {
  background-color: var(--dab-fond);
  color: var(--dab-texte);
}

body {
  font-family: var(--dab-police-texte);
  font-size: 17px;
  line-height: 1.65;
  -webkit-text-size-adjust: 100%;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.site-title {
  font-family: var(--dab-police-titres);
  color: var(--dab-titre);
  line-height: 1.2;
  overflow-wrap: break-word;
}

a {
  color: var(--dab-titre);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  text-decoration-thickness: 1px;
}

a:hover {
  color: var(--dab-sauge-fonce);
  text-decoration-thickness: 2px;
}

:focus-visible {
  outline: 3px solid var(--dab-bouton-fonce);
  outline-offset: 2px;
}

img {
  max-width: 100%;
  height: auto;
}

.screen-reader-text:focus {
  background: var(--dab-surface);
  color: var(--dab-texte);
}

button,
.button,
.ast-button,
input[type="submit"],
.wp-block-button__link {
  background-color: var(--dab-bouton);
  color: var(--dab-blanc);
  border: 0;
  border-radius: 999px;
  font-family: var(--dab-police-titres);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.2;
  padding: 0.8em 1.5em;
  text-transform: none;
  letter-spacing: 0;
}

button:hover,
.button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover {
  background-color: var(--dab-bouton-fonce);
  color: var(--dab-blanc);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}

html {
  scroll-behavior: smooth;
}

/* --- En-tête et menu ---------------------------------------------------------------------------------------- */

.site-header .ast-primary-header-bar,
.ast-mobile-header-wrap .ast-primary-header-bar {
  background-color: var(--dab-surface);
  border-bottom: 1px solid var(--dab-encadre);
}

.dab-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.dab-logo svg {
  display: block;
  width: 232px;
  height: auto;
}

.main-header-menu .menu-link,
.ast-header-break-point .main-header-menu .menu-link {
  color: var(--dab-texte);
  font-family: var(--dab-police-titres);
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;
}

/* Huit entrées sur une ligne dès 1181 px ; de 922 à 1180 px, le menu peut passer sur deux lignes. */
@media (min-width: 1181px) {
  .main-header-menu {
    flex-wrap: nowrap;
  }

  .main-header-menu > .menu-item > .menu-link {
    padding-left: 0.45em;
    padding-right: 0.45em;
    white-space: nowrap;
  }

  .dab-logo svg {
    width: 200px;
  }
}

.main-header-menu .menu-item:hover > .menu-link,
.main-header-menu .current-menu-item > .menu-link,
.main-header-menu .current-menu-ancestor > .menu-link {
  color: var(--dab-bouton-fonce);
}

.main-header-menu .sub-menu {
  background-color: var(--dab-surface);
  border: 1px solid var(--dab-encadre);
  border-radius: 0 0 var(--dab-rayon) var(--dab-rayon);
}

.main-header-menu .sub-menu .menu-link {
  font-weight: 600;
}

.ast-mobile-header-content .menu-link:focus-visible,
.main-header-menu .menu-link:focus-visible {
  outline: 3px solid var(--dab-bouton-fonce);
  outline-offset: -3px;
}

.ast-mobile-menu-trigger-minimal,
.menu-toggle.main-header-menu-toggle {
  color: var(--dab-titre);
  background: transparent;
  padding: 0.5em;
}

/* --- Article ------------------------------------------------------------------------------------------------ */

.single-post .site-content > .ast-container {
  max-width: 820px;
}

.single-post .entry-header {
  margin-bottom: 1.5em;
}

.single-post .entry-title {
  font-size: clamp(30px, 6vw, 42px);
  font-weight: 800;
}

.entry-meta,
.entry-meta a,
.ast-blog-meta-container {
  color: var(--dab-texte-doux);
  font-size: 16px;
}

.single-post .post-thumb-img-content img,
.single-post .ast-single-post-featured-section img {
  border-radius: var(--dab-rayon);
  width: 100%;
}

.entry-content {
  overflow-wrap: break-word;
}

.entry-content > p,
.entry-content > ul,
.entry-content > ol {
  max-width: var(--dab-mesure);
}

.entry-content h2 {
  font-size: clamp(25px, 4.4vw, 30px);
  font-weight: 800;
  margin: 2em 0 0.6em;
  scroll-margin-top: 1em;
}

.entry-content h3 {
  font-size: clamp(20px, 3.4vw, 23px);
  font-weight: 700;
  margin: 1.6em 0 0.5em;
}

.entry-content figure {
  margin: 1.6em 0;
}

.entry-content figure img {
  border-radius: var(--dab-rayon);
}

.entry-content figcaption,
.wp-caption-text {
  color: var(--dab-texte-doux);
  font-size: 16px;
  text-align: left;
}

.entry-content blockquote,
.wwc-quote blockquote {
  margin: 1.6em 0;
  padding: 0.4em 0 0.4em 1.2em;
  border-left: 4px solid var(--dab-bouton);
  font-family: var(--dab-police-titres);
  font-size: 19px;
  font-style: normal;
  color: var(--dab-titre);
  background: transparent;
}

.entry-content iframe {
  max-width: 100%;
}

/* Fonds écrits en dur dans le texte Wisewand (encadré « L'essentiel à retenir », lecteur audio) : charte imposée. */
.entry-content [style*="background: lightblue"],
.entry-content [style*="background:lightblue"] {
  background: var(--dab-encadre) !important;
  border-radius: var(--dab-rayon);
  color: var(--dab-texte);
}

.entry-content .wisewand-audio-player {
  background: var(--dab-encadre) !important;
  border-left-color: var(--dab-titre) !important;
  border-radius: var(--dab-rayon) !important;
}

.entry-content .wisewand-audio-player p {
  color: var(--dab-titre) !important;
  font-family: var(--dab-police-titres);
}

/* --- Sommaire (functions.php : dab_sommaire) ---------------------------------------------------------------- */

.dab-sommaire {
  margin: 1.6em 0 2em;
  padding: 1em 1.25em;
  background: var(--dab-encadre);
  border-radius: var(--dab-rayon);
  max-width: var(--dab-mesure);
}

.dab-sommaire summary {
  cursor: pointer;
  font-family: var(--dab-police-titres);
  font-weight: 800;
  font-size: 19px;
  color: var(--dab-titre);
}

.dab-sommaire ol {
  margin: 0.75em 0 0 1.25em;
  padding: 0;
}

.dab-sommaire li {
  margin: 0.3em 0;
}

.dab-sommaire a {
  color: var(--dab-texte);
}

/* --- Tableaux : conteneur défilant au bord visible --------------------------------------------------------- */

.dab-tableau,
.wwc-table__scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 1.6em 0;
  border: 1px solid var(--dab-bordure);
  border-radius: var(--dab-rayon);
  background:
    linear-gradient(to right, var(--dab-surface) 30%, rgba(255, 255, 255, 0)) left center / 32px 100% no-repeat local,
    linear-gradient(to left, var(--dab-surface) 30%, rgba(255, 255, 255, 0)) right center / 32px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%, rgba(35, 48, 42, 0.25), rgba(35, 48, 42, 0)) left center / 12px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%, rgba(35, 48, 42, 0.25), rgba(35, 48, 42, 0)) right center / 12px 100% no-repeat scroll,
    var(--dab-surface);
}

.wwc-table {
  margin: 1.6em 0;
}

.wwc-table .wwc-table__scroll {
  margin: 0;
}

.entry-content table {
  width: 100%;
  min-width: 520px;
  margin: 0;
  border-collapse: collapse;
  border: 0;
  font-size: 16px;
  background: transparent;
}

.entry-content th,
.entry-content td {
  padding: 0.65em 0.8em;
  border: 0;
  border-bottom: 1px solid var(--dab-encadre);
  text-align: left;
  vertical-align: top;
  color: var(--dab-texte);
}

.entry-content thead th {
  background: var(--dab-encadre);
  color: var(--dab-sauge-fonce);
  font-family: var(--dab-police-titres);
  font-weight: 800;
}

.entry-content tbody th {
  font-weight: 700;
}

.wwc-vh {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* --- Blocs du contenu Wisewand ------------------------------------------------------------------------------ */

.entry-content svg {
  flex: none;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  vertical-align: -0.2em;
}

.entry-content .wwc,
.wwc-brief,
.wwc-note,
.wwc-recap,
.wwc-verdict,
.wwc-sheet,
.wwc-binary,
.wwc-pc__col,
.wwc-duo__panel {
  margin: 1.6em 0;
  padding: 1.1em 1.25em;
  border-radius: var(--dab-rayon);
  background: var(--dab-surface);
  border: 1px solid var(--dab-encadre);
  color: var(--dab-texte);
}

.entry-content .wwc > :last-child,
.wwc-note__body > :last-child,
.wwc-brief__list,
.wwc-recap__text:last-child {
  margin-bottom: 0;
}

.wwc-title,
.wwc-brief__title,
.wwc-note__title,
.wwc-recap__title,
.wwc-verdict__title,
.wwc-sheet__title,
.wwc-pc__title,
.wwc-duo__title,
.wwc-cards__title {
  display: block;
  margin: 0 0 0.5em;
  font-family: var(--dab-police-titres);
  font-weight: 800;
  font-size: 19px;
  line-height: 1.3;
  color: var(--dab-titre);
}

.wwc-subtitle,
.wwc-help {
  color: var(--dab-texte-doux);
  font-size: 16px;
}

/* « L'essentiel » / « En bref » et encadrés d'information : fond sauge clair, texte du corps (constat 3). */
.wwc-brief,
.entry-content .wwc-info,
.entry-content .wwc-tip,
.entry-content .wwc-star,
.entry-content .wwc-key-figures,
.wwc-recap,
.wwc-note--tip,
.wwc-note {
  background: var(--dab-encadre);
  border-color: var(--dab-encadre);
}

.wwc-brief__list {
  margin: 0 0 0 1.2em;
  padding: 0;
}

.wwc-brief__item {
  margin: 0.35em 0;
}

/* Mises en garde : fond abricot clair, titre abricot foncé. */
.entry-content .wwc-warning,
.entry-content .wwc-shield,
.entry-content .wwc-important,
.wwc-note--warning,
.wwc-note--danger {
  background: var(--dab-abricot-clair);
  border-color: var(--dab-abricot-clair);
}

.entry-content .wwc-warning .wwc-title,
.entry-content .wwc-shield .wwc-title,
.entry-content .wwc-important .wwc-title,
.wwc-note--warning .wwc-note__title,
.wwc-note--danger .wwc-note__title {
  color: var(--dab-bouton-fonce);
}

.wwc-note {
  display: flex;
  gap: 0.75em;
  align-items: flex-start;
}

.wwc-note > svg {
  margin-top: 0.2em;
  color: var(--dab-titre);
}

.wwc-note--warning > svg,
.wwc-note--danger > svg {
  color: var(--dab-bouton-fonce);
}

.wwc-note__text {
  margin: 0;
}

/* Étapes numérotées : pastilles pleines, chiffres blancs (constat 3). */
.wwc-steps {
  counter-reset: dab-etape;
  list-style: none;
  margin: 1.4em 0;
  padding: 0;
}

.wwc-steps__item {
  counter-increment: dab-etape;
  position: relative;
  margin: 0 0 1em;
  padding: 0 0 0 3em;
  min-height: 2.2em;
}

.wwc-steps__item::before {
  content: counter(dab-etape);
  position: absolute;
  left: 0;
  top: 0;
  width: 2.1em;
  height: 2.1em;
  border-radius: 50%;
  background: var(--dab-titre);
  color: var(--dab-blanc);
  font-family: var(--dab-police-titres);
  font-weight: 800;
  font-size: 16px;
  line-height: 2.1em;
  text-align: center;
}

.entry-content .wwc-steps__title {
  margin: 0.15em 0 0.25em;
  font-size: 19px;
  font-weight: 800;
}

.wwc-steps__text {
  margin: 0;
}

/* Ce qui marche / À éviter : icône de 20 px en currentColor, libellé sur une ligne (constat 5). */
.wwc-binary {
  padding: 0;
  overflow: hidden;
}

.wwc-binary__row {
  padding: 1em 1.25em;
}

.wwc-binary__row + .wwc-binary__row {
  border-top: 1px solid var(--dab-encadre);
}

.wwc-binary__tag {
  display: flex;
  align-items: center;
  gap: 0.5em;
  margin: 0 0 0.3em;
  font-family: var(--dab-police-titres);
  font-weight: 800;
  white-space: nowrap;
}

.wwc-binary__row--yes .wwc-binary__tag {
  color: var(--dab-titre);
}

.wwc-binary__row--no .wwc-binary__tag {
  color: var(--dab-bouton-fonce);
}

.wwc-binary__text {
  margin: 0;
}

.wwc-pc {
  display: grid;
  gap: 1em;
  margin: 1.6em 0;
}

.wwc-pc .wwc-pc__col {
  margin: 0;
}

.wwc-pc__title,
.wwc-pc__item {
  display: flex;
  gap: 0.5em;
  align-items: flex-start;
}

.wwc-pc__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.wwc-pc__col--pro svg {
  color: var(--dab-titre);
}

.wwc-pc__col--con svg {
  color: var(--dab-bouton-fonce);
}

/* Colonnes « Ce qui aide / Ce qui gêne » (wwc-icon-pro, wwc-icon-con). */
.entry-content .wwc-grid {
  display: grid;
  gap: 1em;
}

.wwc-icon-pro .wwc-title::before,
.wwc-icon-con .wwc-title::before {
  display: inline-block;
  width: 1.3em;
  font-weight: 800;
}

.wwc-icon-pro .wwc-title::before {
  content: "✓";
  color: var(--dab-titre);
}

.wwc-icon-con .wwc-title::before {
  content: "✕";
  color: var(--dab-bouton-fonce);
}

.entry-content .wwc-column {
  padding: 1em;
  border-radius: var(--dab-rayon);
  background: var(--dab-surface);
  border: 1px solid var(--dab-encadre);
}

@media (min-width: 640px) {
  .entry-content .wwc-grid,
  .wwc-pc,
  .wwc-duo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wwc-key-figures .wwc-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Listes à cocher. */
.wwc-check-list {
  list-style: none;
  margin: 1.4em 0;
  padding: 0;
}

.wwc-check__item {
  display: flex;
  gap: 0.75em;
  align-items: flex-start;
  margin: 0.5em 0;
}

.wwc-check__box {
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: 0.2em;
  border: 2px solid var(--dab-titre);
  border-radius: 5px;
  background: var(--dab-surface);
}

/* Cartes et fiches. */
.wwc-cards {
  list-style: none;
  display: grid;
  gap: 1em;
  margin: 1.6em 0;
  padding: 0;
}

@media (min-width: 640px) {
  .wwc-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.wwc-cards__item {
  padding: 1em 1.25em;
  border-radius: var(--dab-rayon);
  background: var(--dab-surface);
  border: 1px solid var(--dab-encadre);
}

.wwc-cards__text,
.wwc-recap__text,
.wwc-verdict__text {
  margin: 0;
}

.wwc-sheet__list {
  margin: 0 0 0 1.2em;
  padding: 0;
}

.wwc-verdict__by {
  display: block;
  margin-top: 0.5em;
  color: var(--dab-texte-doux);
  font-style: normal;
}

/* Sommaire propre de Wisewand (articles qui l'ont déjà : le thème n'en ajoute pas un second). */
.wwc-toc {
  margin: 1.6em 0 2em;
  padding: 1em 1.25em;
  background: var(--dab-encadre);
  border-radius: var(--dab-rayon);
}

.wwc-toc__summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-family: var(--dab-police-titres);
  font-weight: 800;
  font-size: 19px;
  color: var(--dab-titre);
}

.wwc-toc__list {
  margin: 0.75em 0 0 1.25em;
  padding: 0;
}

.wwc-toc__link {
  color: var(--dab-texte);
}

/* Widgets interactifs (calculateur de portions, quiz) rendus par js/wwc.js. */
.wwc-widget {
  margin: 1.6em 0;
  padding: 1.1em 1.25em;
  border-radius: var(--dab-rayon);
  background: var(--dab-surface);
  border: 1px solid var(--dab-bordure);
}

.wwc-field {
  margin: 0.75em 0;
}

.wwc-field label {
  display: block;
  font-weight: 700;
  margin-bottom: 0.3em;
}

.wwc-field input[type="range"] {
  width: 100%;
  accent-color: var(--dab-bouton);
}

.wwc-metric .wwc-title {
  font-size: 22px;
  color: var(--dab-bouton-fonce);
}

.wwc-video-embed:empty {
  display: none;
}

.wwc-footer {
  margin-top: 0.75em;
  color: var(--dab-texte-doux);
}

[x-cloak] {
  display: none !important;
}

/* FAQ de Rank Math. */
.wp-block-rank-math-faq-block {
  margin: 0;
}

.rank-math-faq-item {
  padding: 1em 0;
  border-bottom: 1px solid var(--dab-encadre);
}

.entry-content .rank-math-question {
  margin: 0 0 0.4em;
  font-size: 19px;
}

/* --- Articles liés (Astra, même catégorie) ----------------------------------------------------------------- */

.ast-single-related-posts-container {
  background: transparent;
  border-top: 1px solid var(--dab-encadre);
  padding-left: 0;
  padding-right: 0;
}

.ast-related-posts-title {
  font-family: var(--dab-police-titres);
  color: var(--dab-titre);
  font-size: 26px;
  font-weight: 800;
}

.ast-related-post-content .entry-title,
.ast-related-post-content .entry-title a {
  font-size: 19px;
  font-weight: 700;
  color: var(--dab-titre);
}

.ast-related-post-featured-section img {
  border-radius: var(--dab-rayon);
}

/* --- Commentaires : champs bordés au moins 3:1 (constat 14) ------------------------------------------------- */

.comments-area {
  border-top: 1px solid var(--dab-encadre);
  margin-top: 2.5em;
  padding-top: 1.5em;
}

.comment-respond .comment-reply-title,
.comments-title {
  font-family: var(--dab-police-titres);
  color: var(--dab-titre);
  font-size: 24px;
}

.comment-form label {
  display: block;
  font-weight: 700;
  margin-bottom: 0.3em;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width: 100%;
  background: var(--dab-surface);
  color: var(--dab-texte);
  border: 1px solid var(--dab-bordure);
  border-radius: 8px;
  padding: 0.65em 0.8em;
  font-size: 17px;
}

.comment-form input:focus,
.comment-form textarea:focus {
  border-color: var(--dab-titre);
}

.comment-form .comment-notes,
.comment-form .logged-in-as {
  color: var(--dab-texte-doux);
  font-size: 16px;
}

/* --- Catégories et archives -------------------------------------------------------------------------------- */

.ast-archive-description {
  background: var(--dab-encadre);
  border-radius: var(--dab-rayon);
  padding: 1.5em;
}

.ast-archive-description .ast-archive-title,
.ast-archive-description .page-title {
  color: var(--dab-titre);
  font-family: var(--dab-police-titres);
  font-weight: 800;
}

.ast-archive-description p {
  color: var(--dab-texte);
}

.archive .ast-article-post .ast-article-inner,
.blog .ast-article-post .ast-article-inner {
  background: var(--dab-surface);
  border: 1px solid var(--dab-encadre);
  border-radius: var(--dab-rayon);
  overflow: hidden;
  height: 100%;
}

.archive .ast-article-post .entry-title,
.archive .ast-article-post .entry-title a {
  font-size: 20px;
  font-weight: 800;
  color: var(--dab-titre);
  text-decoration: none;
}

.archive .ast-article-post .entry-title a:hover {
  text-decoration: underline;
}

.archive .ast-excerpt-container,
.archive .ast-excerpt-container p {
  color: var(--dab-texte);
}

.ast-pagination a,
.ast-pagination span.page-numbers {
  color: var(--dab-titre);
  font-size: 17px;
}

.ast-pagination .page-numbers.current {
  background: var(--dab-titre);
  border-color: var(--dab-titre);
  color: var(--dab-blanc);
}

/* --- Pied de page ------------------------------------------------------------------------------------------ */

.site-footer,
.site-primary-footer-wrap,
.site-below-footer-wrap {
  background-color: var(--dab-sauge-fonce);
  color: var(--dab-fond);
}

.site-footer a,
.site-footer .menu-link,
.ast-footer-copyright,
.ast-footer-copyright p {
  color: var(--dab-fond);
  font-size: 16px;
}

.site-footer a:hover {
  color: var(--dab-blanc);
}

/* --- Revue better du 2026-10-24 : règles d'Astra plus spécifiques que celles du thème ------------------------- */

#comments .submit:focus-visible,
.comment-form input:focus-visible,
.comment-form textarea:focus-visible,
.wwc-field input[type="range"]:focus-visible,
.menu-toggle:focus-visible,
.wwc-widget button:focus-visible {
  outline-style: solid !important;
  outline-width: 3px !important;
  outline-color: var(--dab-bouton-fonce) !important;
  outline-offset: 2px;
}

header.entry-header .entry-title,
.comment-respond .comment-reply-title {
  font-weight: 800;
}

.single-post header.entry-header {
  text-align: start;
}

#comments .submit,
.comment-form .submit {
  background-color: var(--dab-bouton);
  color: var(--dab-blanc);
  border: 0;
  border-radius: 999px;
  font-family: var(--dab-police-titres);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.2;
  padding: 0.8em 1.5em;
}

#comments .submit:hover {
  background-color: var(--dab-bouton-fonce);
}

.comment-form-cookies-consent {
  display: flex;
  gap: 0.6em;
  align-items: flex-start;
}

.comment-form .comment-form-cookies-consent label {
  display: inline;
  font-weight: 400;
}

.comment-form-cookies-consent input[type="checkbox"] {
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: 0.2em;
}

.ast-single-related-posts-container .ast-related-post .entry-title,
.ast-single-related-posts-container .ast-related-post .entry-title a {
  font-size: 19px;
  line-height: 1.3;
}

.entry-content .wwc-binary__tag {
  margin: 0 0 0.3em;
}

.entry-content .wwc-binary__text,
.entry-content .wisewand-audio-player p:last-child {
  margin: 0;
}

/* --- Pages du site (lot 06 : inc/pages.php, front-page.php, home.php, page-plan-du-site.php, 404.php) ---------- */

.dab-page {
  max-width: 1120px;
  margin: 0 auto;
  padding: 2em 0 3em;
}

.dab-page h1 {
  font-size: clamp(30px, 6vw, 44px);
  font-weight: 800;
  margin: 0 0 0.5em;
}

.dab-page h2 {
  font-size: clamp(24px, 4vw, 30px);
  font-weight: 800;
  margin: 0 0 0.8em;
}

.dab-hero,
.dab-entete-page {
  max-width: var(--dab-mesure);
  margin-bottom: 2.5em;
}

.dab-hero__intro {
  font-size: 19px;
}

.dab-signature {
  color: var(--dab-texte-doux);
  font-style: italic;
}

/* Accueil : texte puis photo de Camille dans sa cuisine (lot 07), côte à côte à partir de 900 px */
.dab-hero__photo {
  margin: 1.5em 0 0;
  max-width: 480px;
}

.dab-hero__photo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--dab-rayon);
}

@media (min-width: 900px) {
  .dab-accueil .dab-hero {
    max-width: none;
    display: grid;
    grid-template-columns: minmax(0, 62ch) 420px;
    gap: 3em;
    align-items: center;
  }

  .dab-hero__photo {
    margin: 0;
  }
}

/* Articles : mini-photo et signature de Camille sous le titre, encadré auteur en fin d'article */
.single-post .entry-header .entry-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 0.4em;
}

.dab-auteur {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
}

.dab-auteur__photo {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex: none;
}

.dab-encadre-auteur {
  background: var(--dab-encadre);
  border-radius: var(--dab-rayon);
  padding: 1.4em 1.6em;
  margin: 3em 0 0;
  max-width: var(--dab-mesure);
}

.entry-content .dab-encadre-auteur h2 {
  font-size: 22px;
  margin: 0 0 0.5em;
}

.dab-encadre-auteur p {
  margin: 0;
}

.dab-encadre-auteur .dab-suite {
  margin-top: 0.8em;
}

.dab-section {
  margin: 0 0 3em;
}

.dab-suite {
  margin-top: 1.2em;
  font-weight: 700;
}

.dab-ages {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1em;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.dab-age {
  background: var(--dab-abricot-clair);
  border-radius: var(--dab-rayon);
  padding: 1.2em 1.3em;
  margin: 0;
}

.dab-page .dab-age__titre {
  font-size: 22px;
  margin: 0 0 0.3em;
}

.dab-age__titre a {
  color: var(--dab-titre);
  text-decoration: none;
}

.dab-age__titre a:hover {
  text-decoration: underline;
}

.dab-age p {
  margin: 0;
}

.dab-cartes {
  display: grid;
  gap: 1.2em;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.dab-carte {
  position: relative;
  background: var(--dab-surface);
  border: 1px solid var(--dab-encadre);
  border-radius: var(--dab-rayon);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.dab-carte__image img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.dab-carte__corps {
  padding: 1em 1.2em 1.2em;
}

.dab-carte__meta {
  color: var(--dab-texte-doux);
  font-size: 16px;
  margin: 0 0 0.4em;
}

.dab-page .dab-carte__titre {
  font-size: 20px;
  line-height: 1.3;
  margin: 0;
}

.dab-carte__titre a {
  color: var(--dab-titre);
  text-decoration: none;
}

/* Toute la carte est cliquable par le lien du titre (un seul arrêt au clavier). */
.dab-carte__titre a::after {
  content: "";
  position: absolute;
  inset: 0;
}

.dab-carte:hover .dab-carte__titre a {
  text-decoration: underline;
}

.dab-carte:focus-within {
  outline: 3px solid var(--dab-bouton-fonce);
  outline-offset: 2px;
}

.dab-carte__titre a:focus-visible {
  outline: none;
}

.dab-encadre-pediatre {
  background: var(--dab-encadre);
  border-left: 6px solid var(--dab-titre);
  border-radius: var(--dab-rayon);
  padding: 1.4em 1.6em;
  margin: 0 0 3em;
  max-width: 820px;
}

.dab-encadre-pediatre p {
  margin: 0;
}

.dab-plan__bloc {
  margin: 0 0 2em;
}

.dab-plan__liste {
  margin: 0 0 1.2em 1.2em;
  columns: 2 300px;
  column-gap: 2em;
}

.dab-plan__liste li {
  break-inside: avoid;
  margin-bottom: 0.3em;
}

.dab-plan h3,
.dab-plan h4 {
  font-size: 20px;
  margin: 1em 0 0.5em;
}

.dab-recherche form {
  display: flex;
  gap: 0.6em;
  flex-wrap: wrap;
  align-items: flex-end;
  max-width: 560px;
}

.dab-recherche label {
  display: block;
  font-weight: 700;
  margin-bottom: 0.3em;
}

.dab-recherche input[type="search"],
.dab-contact input,
.dab-contact textarea {
  width: 100%;
  background: var(--dab-surface);
  border: 1px solid var(--dab-bordure);
  border-radius: 8px;
  color: var(--dab-texte);
  font-size: 17px;
  padding: 0.6em 0.8em;
}

.dab-recherche__champ {
  flex: 1 1 240px;
  margin: 0;
}

.dab-page .navigation.pagination {
  margin-top: 2em;
}

/* --- Formulaire de contact [dab_contact] -------------------------------------------------------------------- */

.dab-contact {
  max-width: var(--dab-mesure);
}

.dab-champ label {
  display: block;
  font-weight: 700;
  margin-bottom: 0.3em;
}

.dab-requis,
.dab-aide {
  color: var(--dab-texte-doux);
  font-weight: 400;
}

.dab-aide {
  display: block;
  margin-bottom: 0.3em;
}

.dab-contact input:focus-visible,
.dab-contact textarea:focus-visible,
.dab-recherche input[type="search"]:focus-visible {
  outline-style: solid !important;
  outline-width: 3px !important;
  outline-color: var(--dab-bouton-fonce) !important;
  outline-offset: 2px;
  border-color: var(--dab-titre);
}

.dab-contact [aria-invalid="true"] {
  border: 2px solid var(--dab-bouton-fonce);
}

.dab-piege {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.dab-avis {
  border-left: 6px solid var(--dab-titre);
  background: var(--dab-encadre);
  border-radius: var(--dab-rayon);
  padding: 1em 1.2em;
  font-weight: 700;
}

.dab-avis--erreur {
  border-left-color: var(--dab-bouton-fonce);
  background: var(--dab-abricot-clair);
}

/* --- Pages en blocs (à propos, contact, mentions) ----------------------------------------------------------- */

/* Une colonne de lecture pour toute la page (titre compris), alignée à gauche dans cette colonne. */
.page .site-main > article {
  max-width: 760px;
  margin: 0 auto;
  padding: 2em 0 3em;
}

.page .entry-content > * {
  margin-left: 0;
  margin-right: 0;
}

.page header.entry-header {
  text-align: start;
  margin-bottom: 1em;
}

.page header.entry-header .entry-title {
  font-size: clamp(30px, 6vw, 44px);
}

.page .entry-content .dab-illustration {
  max-width: 560px;
  margin: 0 0 1.5em;
}

.page .entry-content .dab-illustration img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--dab-rayon);
}

.page .entry-content h2 {
  font-size: clamp(24px, 4vw, 30px);
  font-weight: 800;
  margin-top: 1.6em;
}

/* Bandeau de cookies (wf-cookie-consent, posé en `position: fixed` par son script) : en fin de page, il ne recouvre
   plus le texte ni le focus ; `relative` garde sa croix de fermeture (absolue) dans le bandeau. */
#cookieChoiceInfo {
  position: relative !important;
}

/* --- Revue better du 2026-10-25 (lot 06) --------------------------------------------------------------------- */

/* Un seul focus pour tout le site : contour plein de 3 px abricot foncé, plus fort que les règles d'Astra
   (`outline: none` sur les boutons, pointillé de 1 px sur les sous-menus). */
a:focus-visible,
button:focus-visible,
.ast-menu-toggle:focus-visible,
.dab-contact button:focus-visible,
.dab-recherche button:focus-visible {
  outline-style: solid !important;
  outline-width: 3px !important;
  outline-color: var(--dab-bouton-fonce) !important;
  outline-offset: 2px;
}

/* Fonds sombres (pied de page, bandeau de cookies) : contour blanc. */
.site-footer a:focus-visible,
#cookieChoiceInfo a:focus-visible {
  outline-color: var(--dab-blanc) !important;
}

/* Pagination du blog : cibles de 44 px, page courante marquée. */
.navigation.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em;
  align-items: center;
}

.navigation.pagination .page-numbers {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.6em;
  border: 1px solid var(--dab-bordure);
  border-radius: 999px;
  color: var(--dab-titre);
  font-size: 17px;
}

.navigation.pagination .page-numbers.current {
  background: var(--dab-titre);
  border-color: var(--dab-titre);
  color: var(--dab-blanc);
}

.navigation.pagination .page-numbers.dots {
  border: 0;
}

.dab-recherche__champ-bouton {
  margin: 0;
}

/* Grilles sans rangée orpheline : 6 cartes en 3 × 2, 4 âges en 2 × 2 sur tablette. */
@media (min-width: 900px) {
  .dab-cartes {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 560px) and (max-width: 999px) {
  .dab-ages {
    grid-template-columns: repeat(2, 1fr);
  }
}

.dab-404 .dab-plan__liste {
  columns: 1;
}

.dab-plan__rubriques ul {
  list-style: none;
  margin: 0 0 2em;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 1.2em;
}

.dab-plan h2 {
  scroll-margin-top: 1em;
}

/* Lot 09 : encadré « Sources » (posé dans le texte), avertissement médical, date de relecture. */
.dab-sources {
  background: var(--dab-surface);
  border: 1px solid var(--dab-bordure);
  border-radius: var(--dab-rayon);
  padding: 1.1em 1.4em;
  margin: 2.5em 0 0;
  max-width: var(--dab-mesure);
}

.entry-content .dab-sources__titre {
  font-family: var(--dab-police-titres);
  font-weight: 800;
  color: var(--dab-titre);
  margin: 0 0 0.4em;
}

.entry-content .dab-sources ul {
  margin: 0 0 0 1.2em;
}

.entry-content .dab-sources li {
  margin: 0.3em 0;
}

.dab-avertissement {
  color: var(--dab-texte-doux);
  font-style: italic;
  margin: 2em 0 0;
  max-width: var(--dab-mesure);
}

.dab-maj {
  white-space: nowrap;
}

/* Écran étroit : la date sur sa ligne, sans point séparateur orphelin en fin de ligne. */
@media (max-width: 543px) {
  .dab-meta-sep {
    display: none;
  }

  .dab-maj {
    display: block;
    margin-top: 0.3em;
  }
}
