/* Veilleuse 1.0.1 — babydoc.fr. Bleu nuit du logo (en-tête, pied, boutons), UNE couleur d'accent : le rose « Doc » du logo.
   Fonds pâles alternés : lait, dragée, brume, blanc. Cadrages francs : aucune image arrondie ni découpée. */

@font-face { font-family: "Lora"; src: url(../polices/lora.woff2) format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Lora"; src: url(../polices/lora-italique.woff2) format("woff2"); font-weight: 400 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Signika"; src: url(../polices/signika.woff2) format("woff2"); font-weight: 300 700; font-style: normal; font-display: swap; }

:root {
    --vls-nuit: #161B5F;
    --vls-nuit-2: #0F1449;
    --vls-nuit-3: #232A85;
    --vls-rose: #F27A93;
    --vls-rose-texte: #B0365A;
    --vls-dragee: #FDEEF1;
    --vls-lait: #FBF7F1;
    --vls-brume: #EEF0F8;
    --vls-blanc: #FFFFFF;
    --vls-encre: #151936;
    --vls-texte: #33374F;
    --vls-gris: #62667C;
    --vls-trait: #E2DFE8;
    --vls-titre: "Lora", Georgia, "Times New Roman", serif;
    --vls-corps: "Signika", "Segoe UI", system-ui, -apple-system, sans-serif;
    --vls-bandeau: 72px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--vls-bandeau) + 24px); -webkit-text-size-adjust: 100%; }
body.vls { margin: 0; background: var(--vls-blanc); color: var(--vls-texte); font-family: var(--vls-corps); font-size: 17px; line-height: 1.6; font-weight: 400; }
.vls img { max-width: 100%; height: auto; display: block; }
:where(.vls) a { color: inherit; }
.vls h1, .vls h2, .vls h3, .vls h4 { color: var(--vls-encre); font-family: var(--vls-titre); font-weight: 600; line-height: 1.18; }
:where(.vls) :where(h1, h2, h3, h4, p, figure) { margin: 0; }
.vls-masque { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.vls-evitement { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--vls-blanc); color: var(--vls-nuit); padding: 10px 16px; }
.vls-evitement:focus { top: 12px; }
.vls :focus-visible { outline: 2px solid var(--vls-rose-texte); outline-offset: 3px; }

.vls-cadre { max-width: 1240px; margin: 0 auto; padding-inline: 24px; }
.vls-cadre--lecture { max-width: 808px; }

/* ---------- Bandeau (en-tête collant unique) ---------- */
.vls-bandeau { position: sticky; top: 0; z-index: 60; background: var(--vls-nuit); color: var(--vls-blanc); }
.vls-bandeau__rang { display: flex; align-items: center; gap: 28px; height: var(--vls-bandeau); }
.vls-bandeau__logo { flex: none; display: block; }
.vls-bandeau__logo img { width: auto; height: 30px; }
.vls-menu { margin-left: auto; }
.vls-menu__liste { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.vls .vls-menu__liste a { display: block; padding: 10px 12px; color: var(--vls-blanc); text-decoration: none; font-size: .97rem; font-weight: 500; letter-spacing: .01em; border-bottom: 2px solid transparent; }
.vls .vls-menu__liste a:hover, .vls .vls-menu__liste a[aria-current] { border-bottom-color: var(--vls-rose); }
.vls .vls-menu__annuaire a { border: 1px solid rgba(255, 255, 255, .45); padding: 8px 14px; margin-left: 8px; }
.vls .vls-menu__annuaire a:hover, .vls .vls-menu__annuaire a[aria-current] { border-color: var(--vls-rose); }
.vls-bandeau__loupe, .vls-bandeau__tiroir { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: transparent; color: var(--vls-blanc); border: 1px solid rgba(255, 255, 255, .3); cursor: pointer; padding: 0; }
.vls-bandeau__loupe:hover, .vls-bandeau__loupe[aria-expanded="true"] { border-color: var(--vls-rose); color: var(--vls-rose); }
.vls-bandeau__tiroir { display: none; }
.vls-bandeau__traits { display: grid; gap: 5px; width: 20px; }
.vls-bandeau__traits span { height: 2px; background: currentColor; }
.vls-recherche { background: var(--vls-nuit-2); padding: 18px 0; }
.vls-recherche__forme { display: flex; gap: 10px; max-width: 760px; }
.vls-recherche__forme input { flex: 1; min-width: 0; font: inherit; font-size: 1rem; padding: 12px 16px; border: 1px solid var(--vls-trait); background: var(--vls-blanc); color: var(--vls-encre); border-radius: 0; }
.vls-recherche__forme button { font: inherit; font-weight: 600; padding: 12px 22px; border: 0; background: var(--vls-rose); color: var(--vls-encre); cursor: pointer; }
.vls-recherche__forme--page { margin-top: 24px; }
.vls-recherche__forme--page button { background: var(--vls-nuit); color: var(--vls-blanc); }

/* ---------- Éléments communs ---------- */
.vls-surtitre { display: flex; align-items: center; gap: 12px; font-family: var(--vls-corps); font-size: .78rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--vls-rose-texte); margin-bottom: 14px; }
.vls-surtitre::before { content: ""; width: 28px; height: 2px; background: var(--vls-rose); flex: none; }
.vls .vls-titre { font-size: clamp(1.75rem, 2.6vw, 2.45rem); letter-spacing: -.01em; }
.vls .vls-titre--moyen { font-size: clamp(1.45rem, 2vw, 1.85rem); }
.vls .vls-titre a { text-decoration: none; }
.vls-entete { margin-bottom: 36px; max-width: 760px; }
.vls-entete--ligne { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.vls .vls-tout { display: inline-flex; align-items: center; gap: 8px; color: var(--vls-nuit); font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--vls-rose); padding-bottom: 3px; }
.vls .vls-tout::after { content: "→"; }
.vls .vls-tout:hover { color: var(--vls-rose-texte); }
.vls .vls-bouton { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 24px; background: var(--vls-nuit); color: var(--vls-blanc); border: 1.5px solid var(--vls-nuit); border-radius: 4px; font-weight: 600; font-size: 1rem; text-decoration: none; white-space: nowrap; }
.vls .vls-bouton:hover { background: var(--vls-nuit-3); border-color: var(--vls-nuit-3); }
.vls .vls-bouton--trait { background: transparent; color: var(--vls-nuit); }
.vls .vls-bouton--trait:hover { background: var(--vls-blanc); color: var(--vls-nuit); border-color: var(--vls-nuit); }
.vls-etiq { font-size: .72rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: var(--vls-gris); margin-bottom: 8px; }
.vls-ariane { font-size: .88rem; color: var(--vls-gris); margin-bottom: 20px; }
.vls .vls-ariane a { color: var(--vls-gris); text-decoration: none; }
.vls .vls-ariane a:hover { color: var(--vls-nuit); text-decoration: underline; }

.vls-bloc { padding: 80px 0; position: relative; }
.vls-bloc--serre { padding: 48px 0 72px; }
.vls-bloc--blanc { background: var(--vls-blanc); }
.vls-bloc--lait { background: var(--vls-lait); }
.vls-bloc--dragee { background: var(--vls-dragee); }
.vls-bloc--brume { background: var(--vls-brume); }
.vls-bloc--courbes { overflow: hidden; }
.vls-bloc--courbes > .vls-cadre { position: relative; }

/* Courbes de croissance (motif du carnet de santé) */
.vls-courbes { position: absolute; pointer-events: none; fill: none; stroke: var(--vls-nuit); stroke-width: 1; opacity: .09; }
.vls-courbes .vls-courbes__moyenne { stroke: var(--vls-rose); stroke-width: 2; opacity: 1; }
.vls-courbes--bloc { right: 0; top: 0; width: 52%; height: 70%; }
.vls-courbes--tete { right: 0; bottom: 0; width: 48%; height: 100%; }

/* ---------- Cartes ---------- */
.vls-carte { display: flex; flex-direction: column; min-width: 0; }
.vls-carte__image { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--vls-brume); }
.vls .vls-carte__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.vls-carte:hover .vls-carte__image img { transform: scale(1.03); }
.vls-carte__image--vide { display: flex; align-items: center; justify-content: center; }
.vls-carte__monogramme { font-family: var(--vls-titre); font-style: italic; font-size: 3rem; color: var(--vls-rose-texte); }
.vls-carte__corps { padding-top: 16px; }
.vls .vls-carte__titre { font-size: 1.16rem; line-height: 1.3; }
.vls .vls-carte__titre a { text-decoration: none; background-image: linear-gradient(var(--vls-rose), var(--vls-rose)); background-size: 0 2px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size .3s ease; }
.vls .vls-carte__titre a:hover { background-size: 100% 2px; }
.vls-carte__chapo { margin-top: 10px; color: var(--vls-texte); font-size: .98rem; }
.vls-carte__date { margin-top: 10px; font-size: .85rem; color: var(--vls-gris); }
.vls .vls-carte--une .vls-carte__titre { font-size: clamp(1.4rem, 2vw, 1.85rem); line-height: 1.2; }
.vls-carte--ligne { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; align-items: start; }
.vls-carte--ligne .vls-carte__image { aspect-ratio: 4 / 3; }
.vls-carte--ligne .vls-carte__corps { padding-top: 0; }
.vls .vls-carte--ligne .vls-carte__titre { font-size: 1.02rem; }

.vls-grille { display: grid; gap: 40px 28px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vls-grille--1 { grid-template-columns: minmax(0, 1fr); max-width: 420px; }
.vls-grille--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vls-grille--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vls-grille--vedette > .vls-carte:first-child { grid-column: span 2; grid-row: span 2; }
.vls-grille--vedette > .vls-carte:first-child .vls-carte__image { aspect-ratio: auto; flex: 1; min-height: 340px; }

/* ---------- Ouverture (hero) : texte large à gauche, une grande image fixe à fond perdu à droite ---------- */
.vls-ouverture { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr); background: var(--vls-lait); height: clamp(540px, calc(100vh - var(--vls-bandeau) - 104px), 720px); }
.vls-ouverture__texte { display: flex; flex-direction: column; justify-content: center; padding: 40px 64px 40px max(24px, calc((100vw - 1240px) / 2 + 24px)); }
.vls .vls-ouverture__titre { font-size: clamp(2.5rem, 3.9vw, 3.75rem); line-height: 1.06; letter-spacing: -.015em; max-width: 13.5em; }
.vls-ouverture__titre em { font-style: italic; font-weight: 500; color: var(--vls-rose-texte); }
.vls-ouverture__chapo { margin-top: 22px; font-size: 1.16rem; line-height: 1.6; max-width: 34em; color: var(--vls-texte); }
.vls-ouverture__boutons { display: flex; gap: 14px; margin-top: 30px; flex-wrap: nowrap; }
.vls-ouverture__reperes { list-style: none; margin: 34px 0 0; padding: 22px 0 0; border-top: 1px solid var(--vls-trait); display: flex; gap: 32px; flex-wrap: wrap; }
.vls .vls-ouverture__reperes a { text-decoration: none; color: var(--vls-gris); font-size: .95rem; }
.vls .vls-ouverture__reperes a:hover { color: var(--vls-nuit); }
.vls-ouverture__reperes strong { font-family: var(--vls-titre); font-size: 1.6rem; font-weight: 600; color: var(--vls-nuit); margin-right: 4px; }
.vls-ouverture__image { margin: 0; position: relative; overflow: hidden; background: var(--vls-dragee); }
.vls .vls-ouverture__image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.vls-ouverture__image::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 10px; background: var(--vls-rose); z-index: 1; }

/* ---------- Sommaire : cinq onglets d'intercalaire ---------- */
.vls-onglets { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 22px; }
.vls-onglet { display: flex; flex-direction: column; }
.vls .vls-onglet__lien { display: flex; flex-direction: column; text-decoration: none; }
.vls-onglet__tab { align-self: flex-start; display: inline-flex; align-items: baseline; gap: 8px; padding: 9px 16px 8px; background: var(--vls-lait); border: 1px solid var(--vls-trait); border-bottom: 0; font-weight: 600; color: var(--vls-encre); font-size: 1rem; position: relative; top: 1px; }
.vls-onglet__num { font-family: var(--vls-titre); font-style: italic; color: var(--vls-rose-texte); font-weight: 500; }
.vls-onglet__image { display: block; aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid var(--vls-trait); background: var(--vls-brume); }
.vls .vls-onglet__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.vls-onglet__lien:hover .vls-onglet__image img { transform: scale(1.04); }
.vls-onglet__lien:hover .vls-onglet__tab { background: var(--vls-dragee); }
.vls-onglet__nb { margin-top: 10px; font-size: .85rem; color: var(--vls-gris); }
.vls-onglet__titres { list-style: none; margin: 10px 0 0; padding: 0; }
.vls-onglet__titres li { border-top: 1px dotted var(--vls-trait); padding: 9px 0; font-size: .93rem; line-height: 1.4; }
.vls .vls-onglet__titres a { text-decoration: none; color: var(--vls-texte); }
.vls .vls-onglet__titres a:hover { color: var(--vls-rose-texte); }

/* ---------- À la une ---------- */
.vls-une { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: start; }
.vls-une__liste { list-style: none; margin: 0; padding: 0; counter-reset: une; }
.vls-une__liste li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 8px; padding: 20px 0; border-top: 1px solid rgba(21, 25, 54, .12); }
.vls-une__liste li:first-child { border-top: 0; padding-top: 0; }
.vls-une__num { font-family: var(--vls-titre); font-style: italic; font-size: 1.5rem; color: var(--vls-rose-texte); line-height: 1; }

/* ---------- Le quotidien de bébé ---------- */
.vls-quotidien { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.vls-quotidien--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vls-quotidien--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vls-quotidien--1 { grid-template-columns: minmax(0, 1fr); max-width: 420px; }
.vls-quotidien__col { background: var(--vls-blanc); border: 1px solid var(--vls-trait); padding: 18px 18px 8px; display: flex; flex-direction: column; }
.vls-quotidien__theme { font-family: var(--vls-titre); font-size: 1.22rem; font-weight: 600; color: var(--vls-encre); margin-bottom: 14px; display: flex; align-items: center; gap: 10px; }
.vls-quotidien__theme::before { content: ""; width: 10px; height: 10px; background: var(--vls-rose); flex: none; }
.vls-quotidien__image { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--vls-brume); }
.vls .vls-quotidien__image img { width: 100%; height: 100%; object-fit: cover; }
.vls-quotidien__liste { list-style: none; margin: 8px 0 0; padding: 0; }
.vls-quotidien__liste li { padding: 11px 0; border-bottom: 1px dotted var(--vls-trait); font-size: .97rem; line-height: 1.4; }
.vls-quotidien__liste li:last-child { border-bottom: 0; }
.vls .vls-quotidien__liste a { text-decoration: none; color: var(--vls-encre); }
.vls .vls-quotidien__liste a:hover { color: var(--vls-rose-texte); }

/* ---------- Grossesse ---------- */
.vls-grossesse { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.vls-grossesse__image { display: block; aspect-ratio: 4 / 5; overflow: hidden; max-height: 640px; background: var(--vls-brume); }
.vls .vls-grossesse__image img { width: 100%; height: 100%; object-fit: cover; }
.vls-grossesse__intro { margin-top: 16px; font-size: 1.06rem; max-width: 34em; }
.vls-grossesse__liste { list-style: none; margin: 26px 0 28px; padding: 0; counter-reset: gr; }
.vls-grossesse__liste li { counter-increment: gr; display: grid; grid-template-columns: 38px minmax(0, 1fr); padding: 12px 0; border-top: 1px solid var(--vls-trait); line-height: 1.4; }
.vls-grossesse__liste li::before { content: counter(gr, decimal-leading-zero); font-family: var(--vls-titre); font-style: italic; color: var(--vls-rose-texte); }
.vls .vls-grossesse__liste a { text-decoration: none; color: var(--vls-encre); font-size: 1.02rem; }
.vls .vls-grossesse__premier a { font-family: var(--vls-titre); font-weight: 600; font-size: 1.2rem; }
.vls .vls-grossesse__liste a:hover { color: var(--vls-rose-texte); }

/* ---------- Enfants et famille + annuaire ---------- */
.vls-famille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; align-items: start; }
.vls-creche { background: var(--vls-blanc); border: 1px solid var(--vls-nuit); padding: 28px 24px; align-self: stretch; display: flex; flex-direction: column; gap: 14px; }
.vls-creche__sur { font-size: .74rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--vls-rose-texte); }
.vls .vls-creche__titre { font-size: 1.45rem; }
.vls-creche .vls-bouton { margin-top: auto; align-self: flex-start; }

/* ---------- Santé ---------- */
.vls-sante { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 36px; }
.vls-carte--sante .vls-carte__image { aspect-ratio: 4 / 3; }
.vls-sante__pile { display: grid; gap: 32px; align-content: start; }
.vls-sante__suite { list-style: none; margin: 48px 0 0; padding: 28px 0 0; border-top: 1px solid var(--vls-trait); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 32px; counter-reset: sante 3; }
.vls-sante__suite li { counter-increment: sante; display: grid; grid-template-columns: 34px minmax(0, 1fr); line-height: 1.4; }
.vls-sante__suite li::before { content: counter(sante, decimal-leading-zero); font-family: var(--vls-titre); font-style: italic; color: var(--vls-rose-texte); }
.vls .vls-sante__suite a { text-decoration: none; color: var(--vls-encre); }
.vls .vls-sante__suite a:hover { color: var(--vls-rose-texte); }

/* ---------- Fil des parutions ---------- */
.vls-fil { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 56px; }
.vls-fil li { display: grid; grid-template-columns: 72px 150px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 15px 0; border-bottom: 1px dotted rgba(21, 25, 54, .25); }
.vls-fil time { font-family: var(--vls-titre); font-style: italic; color: var(--vls-rose-texte); }
.vls-fil__rub { font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--vls-gris); }
.vls .vls-fil a { text-decoration: none; color: var(--vls-encre); line-height: 1.4; }
.vls .vls-fil a:hover { color: var(--vls-rose-texte); }

/* ---------- La rédaction ---------- */
.vls-redaction { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.vls-redaction__qui { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 28px; align-items: start; }
.vls-redaction__portrait img { width: 120px; height: 120px; object-fit: cover; border: 1px solid var(--vls-trait); }
.vls-redaction__bio { margin-top: 12px; }
.vls-redaction__liens { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.vls .vls-redaction__liens a { color: var(--vls-nuit); font-weight: 600; text-decoration-color: var(--vls-rose); text-underline-offset: 4px; }
.vls-redaction__chiffres { display: grid; gap: 14px; border-left: 1px solid rgba(21, 25, 54, .15); padding-left: 40px; }
.vls-redaction__chiffres strong { font-family: var(--vls-titre); font-size: 2.2rem; color: var(--vls-nuit); margin-right: 8px; font-weight: 600; }
.vls-redaction__note { font-size: .97rem; }
.vls-redaction__note span { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; color: var(--vls-gris); }
.vls .vls-redaction__note a { color: var(--vls-encre); text-decoration-color: var(--vls-rose); text-underline-offset: 4px; }

/* ---------- Texte de fond + questions ---------- */
.vls-fond { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 56px; align-items: start; }
.vls-fond__texte { background: var(--vls-blanc); border: 1px solid var(--vls-trait); padding: 36px 40px; }
.vls-fond__texte p + p, .vls-fond__texte h2 + p { margin-top: 14px; }
.vls .vls-fond__faq-titre { font-size: 1.35rem; margin-bottom: 12px; }
.vls-fond__faq details { border-bottom: 1px solid var(--vls-trait); }
.vls-fond__faq summary { cursor: pointer; list-style: none; padding: 16px 36px 16px 0; font-weight: 600; color: var(--vls-encre); position: relative; }
.vls-fond__faq summary::-webkit-details-marker { display: none; }
.vls-fond__faq summary::after { content: "+"; position: absolute; right: 4px; top: 12px; font-size: 1.4rem; color: var(--vls-rose-texte); font-weight: 400; }
.vls-fond__faq details[open] summary::after { content: "–"; }
.vls-fond__faq details p { padding: 0 0 18px; }
.vls .vls-fond__faq a, .vls .vls-fond__texte a { color: var(--vls-nuit); text-decoration-color: var(--vls-rose); text-underline-offset: 3px; }

/* ---------- Rubrique, recherche, auteur, 404 ---------- */
.vls-rub-tete { background: var(--vls-brume); padding: 32px 0 44px; position: relative; overflow: hidden; }
.vls-rub-tete > .vls-cadre { position: relative; }
.vls-rub-tete__onglets { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 30px; }
.vls .vls-rub-tete__onglets a, .vls .vls-autres__onglet { display: inline-flex; align-items: baseline; gap: 8px; padding: 9px 15px; background: var(--vls-blanc); border: 1px solid var(--vls-trait); color: var(--vls-encre); text-decoration: none; font-weight: 600; font-size: .95rem; }
.vls-rub-tete__onglets span, .vls-autres__onglet span { font-family: var(--vls-titre); font-style: italic; font-weight: 500; color: var(--vls-rose-texte); }
.vls .vls-rub-tete__onglets a:hover, .vls .vls-autres__onglet:hover { border-color: var(--vls-nuit); }
.vls .vls-rub-tete__onglets a[aria-current], .vls .vls-autres__onglet[aria-current] { background: var(--vls-nuit); border-color: var(--vls-nuit); color: var(--vls-blanc); }
.vls .vls-rub-tete__onglets a[aria-current] span, .vls .vls-autres__onglet[aria-current] span { color: var(--vls-rose); }
.vls-rub-tete__corps { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 48px; align-items: end; }
.vls-rub-tete__corps--auteur { grid-template-columns: 112px minmax(0, 1fr); gap: 28px; align-items: center; }
.vls-rub-tete__portrait img { width: 112px; height: 112px; object-fit: cover; }
.vls .vls-rub-tete__titre { font-size: clamp(2.4rem, 4.6vw, 4rem); line-height: 1.02; letter-spacing: -.02em; }
.vls .vls-rub-tete__titre--moyen { font-size: clamp(1.9rem, 3.2vw, 2.7rem); }
.vls-rub-tete__intro { font-size: 1.08rem; max-width: 36em; }
.vls-rub-tete__nb { margin-top: 12px; font-size: .9rem; color: var(--vls-gris); }
.vls-rub-tete--simple .vls-rub-tete__corps { display: block; }
.vls-rub-tete--simple .vls-rub-tete__intro { margin-top: 14px; }
.vls-perdu { padding: 72px 0 88px; }
.vls-perdu .vls-autres__rang { margin-top: 28px; }
.vls-pages { margin-top: 56px; display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.vls .vls-pages .page-numbers { display: inline-flex; min-width: 44px; height: 44px; align-items: center; justify-content: center; padding: 0 14px; border: 1px solid var(--vls-trait); text-decoration: none; color: var(--vls-encre); font-weight: 600; }
.vls .vls-pages .page-numbers.current { background: var(--vls-nuit); border-color: var(--vls-nuit); color: var(--vls-blanc); }
.vls .vls-pages a.page-numbers:hover { border-color: var(--vls-nuit); }
.vls-autres { padding: 40px 0 48px; border-top: 1px solid var(--vls-trait); }
.vls-autres__rang { display: flex; flex-wrap: wrap; gap: 8px; }

/* ---------- Article : fiche du carnet ---------- */
.vls-fiche__tete { background: var(--vls-lait); padding: 32px 0 104px; }
.vls-fiche__grille { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; align-items: end; }
.vls .vls-fiche__titre { font-size: clamp(2rem, 3.4vw, 3.05rem); line-height: 1.1; letter-spacing: -.012em; max-width: 21em; }
.vls-signature { display: flex; align-items: center; gap: 12px; margin-top: 24px; font-size: .97rem; }
.vls-signature__portrait img { width: 48px; height: 48px; object-fit: cover; }
.vls .vls-signature a { color: var(--vls-nuit); font-weight: 600; text-decoration-color: var(--vls-rose); text-underline-offset: 3px; }
.vls-suivi { margin: 0; background: var(--vls-blanc); border: 1px solid var(--vls-trait); padding: 16px 22px; display: grid; gap: 2px; font-size: .94rem; }
.vls-suivi > div { display: flex; align-items: baseline; gap: 8px; padding: 6px 0; }
.vls-suivi dt { order: 0; color: var(--vls-gris); }
.vls-suivi > div::after { content: ""; order: 1; flex: 1; border-bottom: 1px dotted rgba(21, 25, 54, .3); transform: translateY(-4px); }
.vls-suivi dd { order: 2; margin: 0; color: var(--vls-encre); font-weight: 600; }
.vls .vls-suivi dd a { color: var(--vls-nuit); text-decoration: none; }
.vls-fiche__image { margin-top: -72px; margin-bottom: 0; }
.vls .vls-fiche__image img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; max-height: 540px; }
.vls-lecture { max-width: 808px; margin: 0 auto; padding: 56px 24px 72px; }
.vls-asavoir { margin-top: 48px; background: var(--vls-brume); border: 1px solid var(--vls-trait); padding: 20px 24px; font-size: .95rem; }
.vls-asavoir__titre { font-weight: 600; color: var(--vls-encre); margin-bottom: 4px; display: flex; align-items: center; gap: 10px; }
.vls-asavoir__titre::before { content: ""; width: 10px; height: 10px; background: var(--vls-rose); }

/* Texte des articles et des pages (contenu et liens jamais modifiés : seulement l'habillage) */
.vls-texte { font-size: 1.08rem; line-height: 1.75; color: var(--vls-texte); }
.vls .vls-texte p, .vls .vls-texte ul, .vls .vls-texte ol, .vls .vls-texte table, .vls .vls-texte figure, .vls .vls-texte blockquote { margin: 0 0 1.25em; }
.vls .vls-texte h2 { font-size: clamp(1.5rem, 2.2vw, 1.85rem); margin: 2.1em 0 .7em; padding-top: 18px; position: relative; }
.vls .vls-texte h2::before { content: ""; position: absolute; left: 0; top: 0; width: 44px; height: 3px; background: var(--vls-rose); }
.vls .vls-texte h3 { font-family: var(--vls-corps); font-weight: 600; font-size: 1.22rem; margin: 1.7em 0 .5em; color: var(--vls-encre); }
.vls .vls-texte h4 { font-family: var(--vls-corps); font-weight: 600; font-size: 1.06rem; margin: 1.4em 0 .4em; }
.vls .vls-texte a { color: var(--vls-nuit); text-decoration: underline; text-decoration-color: var(--vls-rose); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.vls .vls-texte a:hover { color: var(--vls-rose-texte); }
.vls .vls-texte strong { color: var(--vls-encre); font-weight: 600; }
.vls .vls-texte ul, .vls .vls-texte ol { padding-left: 1.3em; }
.vls .vls-texte li { margin-bottom: .45em; }
.vls .vls-texte ul li::marker { color: var(--vls-rose-texte); }
.vls .vls-texte ol li::marker { color: var(--vls-rose-texte); font-weight: 600; }
.vls .vls-texte img { height: auto; }
.vls .vls-texte figure img, .vls .vls-texte .wp-block-image img { border-radius: 0; }
.vls .vls-texte blockquote { background: var(--vls-dragee); border: 1px solid var(--vls-trait); padding: 18px 24px; font-family: var(--vls-titre); font-style: italic; color: var(--vls-encre); }
.vls .vls-texte table { width: 100%; border-collapse: collapse; font-size: .95rem; display: block; overflow-x: auto; }
.vls .vls-texte th, .vls .vls-texte td { border: 1px solid var(--vls-trait); padding: 10px 12px; text-align: left; vertical-align: top; }
.vls .vls-texte th, .vls .vls-texte thead td { background: var(--vls-brume); color: var(--vls-encre); font-weight: 600; }
.vls .vls-texte iframe { max-width: 100%; }
/* Sommaire Easy TOC */
.vls .vls-texte #ez-toc-container { background: var(--vls-brume); border: 1px solid var(--vls-trait); border-radius: 0; box-shadow: none; padding: 18px 22px; width: 100%; margin: 0 0 1.8em; font-family: var(--vls-corps); }
.vls .vls-texte #ez-toc-container .ez-toc-title { font-family: var(--vls-titre); font-weight: 600; font-size: 1.15rem; color: var(--vls-encre); }
.vls .vls-texte #ez-toc-container ul { padding-left: 0; margin: 10px 0 0; }
.vls .vls-texte #ez-toc-container li { margin: 0; padding: 4px 0; font-size: .97rem; line-height: 1.45; }
.vls .vls-texte #ez-toc-container a { color: var(--vls-nuit); text-decoration: none; }
.vls .vls-texte #ez-toc-container a:hover { color: var(--vls-rose-texte); text-decoration: underline; }
.vls .vls-texte #ez-toc-container .ez-toc-title-toggle a { border: 0; background: transparent; }
/* Encadrés en ligne (styles écrits dans le contenu) ramenés à la charte */
.vls .vls-texte div[style*="border-left"], .vls .vls-texte div[style*="background"] { border-radius: 0 !important; }
/* Encadrés « A lire » (Inline Related Posts : classes aléatoires, styles en !important) ramenés à la charte */
.vls .vls-texte a:has(.ctaText) { background-color: var(--vls-dragee) !important; border: 1px solid var(--vls-trait) !important; border-left: 4px solid var(--vls-rose) !important; text-decoration: none !important; opacity: 1 !important; }
.vls .vls-texte a:has(.ctaText) .ctaText { color: var(--vls-rose-texte) !important; text-decoration: none !important; font-family: var(--vls-corps); letter-spacing: .04em; }
.vls .vls-texte a:has(.ctaText) .postTitle { color: var(--vls-nuit) !important; font-family: var(--vls-titre); text-decoration-color: var(--vls-rose) !important; }
/* Signature éditoriale et boîte d'auteur ajoutées au contenu par le site */
.vls .vls-texte .sr-identite-editoriale { background: var(--vls-lait) !important; border: 1px solid var(--vls-trait) !important; border-radius: 0 !important; font-family: var(--vls-corps); }
.vls .vls-texte .sr-identite-editoriale a { color: var(--vls-nuit); }
.vls .vls-texte .saboxplugin-wrap { border: 1px solid var(--vls-trait) !important; border-radius: 0; background: var(--vls-lait); margin-top: 2em; }
.vls .vls-texte .saboxplugin-wrap .saboxplugin-gravatar img { border-radius: 0 !important; }
.vls .vls-texte .saboxplugin-wrap .saboxplugin-authorname a { color: var(--vls-encre) !important; font-family: var(--vls-titre); }
.vls .vls-texte .saboxplugin-wrap .saboxplugin-desc p { font-size: .97rem; }

/* Pages de structure */
.vls-page__tete { background: var(--vls-lait); padding: 32px 0 44px; border-bottom: 1px solid var(--vls-trait); }
.vls .vls-page__titre { font-size: clamp(2rem, 3.6vw, 3rem); }

/* ---------- Pied ---------- */
.vls-pied { background: var(--vls-nuit); color: rgba(255, 255, 255, .84); padding: 64px 0 28px; font-size: .95rem; }
.vls-pied__grille { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr) minmax(0, 1fr) minmax(0, 1.2fr); gap: 40px; }
.vls-pied__logo img { width: auto; height: 32px; margin-bottom: 18px; }
.vls-pied__titre { color: var(--vls-blanc); font-weight: 600; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 14px; }
.vls-pied ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.vls .vls-pied a { color: var(--vls-blanc); text-decoration: none; }
.vls .vls-pied a:hover { color: var(--vls-rose); }
.vls-pied__note p + p { margin-top: 8px; }
.vls-pied__bas { margin-top: 48px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .18); font-size: .85rem; color: rgba(255, 255, 255, .7); }

/* ---------- Annuaire des crèches (extension du site) : mise en page dans le thème, couleurs ramenées à la palette ---------- */
.vls-annuaire .content-area { max-width: none; margin: 0; padding: 0; }
.vls-annuaire .site-main { margin: 0; }
.vls-annuaire .bda-wrap h1, .vls-annuaire .bda-wrap h2, .vls-annuaire .bda-wrap h3 { font-family: var(--vls-titre); }
.vls-annuaire .bda-wrap section[style*="linear-gradient"] { background: var(--vls-nuit) !important; }
.vls-annuaire .bda-wrap section[style*="linear-gradient"] a[style] { color: var(--vls-nuit) !important; border-radius: 4px !important; }
/* 1.0.1 : titre du bloc d'appel (fond bleu nuit) rendu lisible, la règle des titres du thème le passait en encre sur bleu nuit ;
   liens « Horaires d'ouverture » des fiches ramenés du violet de l'extension au bleu nuit */
.vls .bda-cta-block h3 { color: var(--vls-rose); }
.vls-annuaire .bda-wrap summary[style*="7c3aed"] { color: var(--vls-nuit) !important; }
.vls-annuaire .bda-wrap button, .vls-annuaire .bda-wrap input, .vls-annuaire .bda-wrap textarea { font-family: var(--vls-corps); }

/* ---------- Écrans moyens ---------- */
@media (max-width: 1180px) {
    .vls-menu__liste a { padding: 10px 8px; font-size: .93rem; }
    .vls-onglets { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .vls-quotidien { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vls-famille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vls-grille--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vls-fil li { grid-template-columns: 64px minmax(0, 1fr); }
    .vls-fil__rub { grid-column: 2; }
    .vls-fil li a { grid-column: 2; }
}
@media (max-width: 1080px) {
    .vls-bandeau__tiroir { display: inline-flex; }
    .vls-menu { position: absolute; left: 0; right: 0; top: var(--vls-bandeau); background: var(--vls-nuit); border-top: 1px solid rgba(255, 255, 255, .15); display: none; }
    .vls-menu.vls-ouvert { display: block; }
    .vls-menu__liste { flex-direction: column; align-items: stretch; padding: 8px 24px 20px; gap: 0; }
    .vls .vls-menu__liste a { padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
    .vls .vls-menu__annuaire a { margin: 12px 0 0; padding: 12px 14px; text-align: center; }
    .vls-bandeau__loupe { margin-left: auto; }
}

/* ---------- Mobile et tablette ---------- */
@media (max-width: 960px) {
    .vls-bloc { padding: 56px 0; }
    .vls-ouverture { display: flex; flex-direction: column; height: auto; padding: 32px 20px 40px; gap: 18px; }
    .vls-ouverture__texte { display: contents; }
    .vls-ouverture__sur { order: 1; margin-bottom: 0; }
    .vls-ouverture__titre { order: 2; }
    .vls-ouverture__chapo { order: 3; margin-top: 0; }
    .vls-ouverture__image { order: 4; aspect-ratio: 4 / 3; margin: 4px 0; }
    .vls-ouverture__boutons { order: 5; margin-top: 0; flex-wrap: wrap; }
    .vls-ouverture__reperes { order: 6; margin-top: 4px; gap: 10px 24px; }
    .vls-ouverture__image::before { width: 6px; }
    .vls-une, .vls-grossesse, .vls-sante, .vls-redaction, .vls-fond, .vls-rub-tete__corps { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .vls-grossesse__image { aspect-ratio: 4 / 3; }
    .vls-sante__suite { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vls-fil { grid-template-columns: minmax(0, 1fr); }
    .vls-grille, .vls-grille--rubrique { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vls-grille--vedette > .vls-carte:first-child { grid-column: span 2; grid-row: auto; }
    .vls-grille--vedette > .vls-carte:first-child .vls-carte__image { aspect-ratio: 3 / 2; min-height: 0; }
    .vls-fiche__grille { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .vls-fiche__tete { padding-bottom: 88px; }
    .vls-redaction__chiffres { border-left: 0; padding-left: 0; border-top: 1px solid rgba(21, 25, 54, .15); padding-top: 24px; }
    .vls-pied__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vls-courbes--tete, .vls-courbes--bloc { width: 90%; opacity: .06; }
}
@media (max-width: 640px) {
    body.vls { font-size: 16px; }
    .vls-cadre { padding-inline: 20px; }
    .vls-bandeau__rang { gap: 12px; }
    .vls-bandeau__logo img { height: 26px; }
    .vls-onglets, .vls-quotidien, .vls-famille, .vls-grille, .vls-grille--2, .vls-grille--4, .vls-grille--rubrique, .vls-sante__suite { grid-template-columns: minmax(0, 1fr); }
    .vls-grille--vedette > .vls-carte:first-child { grid-column: auto; }
    .vls-onglet__titres { display: none; }
    .vls-onglets { gap: 12px; }
    .vls .vls-onglet__lien { display: grid; grid-template-columns: 104px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 16px; border: 1px solid var(--vls-trait); background: var(--vls-blanc); }
    .vls-onglet__image { grid-row: 1 / 3; grid-column: 1; border: 0; aspect-ratio: 1 / 1; }
    .vls-onglet__tab { grid-column: 2; align-self: end; background: none; border: 0; padding: 0; top: 0; font-size: 1.05rem; }
    .vls-onglet__lien:hover .vls-onglet__tab { background: none; }
    .vls-onglet__nb { grid-column: 2; align-self: start; margin-top: 2px; }
    .vls-fond__texte { padding: 26px 22px; }
    .vls-redaction__qui { grid-template-columns: 84px minmax(0, 1fr); gap: 18px; }
    .vls-redaction__portrait img { width: 84px; height: 84px; }
    .vls-pied__grille { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .vls-recherche__forme { flex-direction: column; }
    .vls .vls-ouverture__boutons .vls-bouton { flex: 1 1 100%; }
    .vls-fiche__image { padding-inline: 0; margin-top: -64px; }
    .vls .vls-fiche__image img { aspect-ratio: 3 / 2; }
    .vls-lecture { padding: 36px 20px 56px; }
    .vls-texte { font-size: 1.03rem; }
    .vls-fil li { grid-template-columns: 56px minmax(0, 1fr); }
    .vls .vls-rub-tete__onglets a, .vls .vls-autres__onglet { font-size: .86rem; padding: 7px 10px; }
    .vls-rub-tete__onglets span, .vls-autres__onglet span { display: none; }
    .vls-rub-tete__onglets { margin-bottom: 22px; }
}

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