/* RAS LE VOL — feuille du thème WordPress (générée par outils/theme.py).
   Elle complète site.css, copie de maquette/src/v7.css dont seul le bloc « Mouvement » est remplacé (site_css() de
   outils/theme.py : compteurs, révélation et changement de page), avec ce que
   WordPress ajoute autour de la maquette : polices locales, boucles d'articles, pagination,
   contenu des articles. Chaque règle dit quelle règle de la maquette elle prolonge. */

/* ——— Polices locales (aussi déclarées dans theme.json : même fichier, même adresse) ——— */
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("fonts/plus-jakarta-sans-latin-ext-wght-normal.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; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("fonts/plus-jakarta-sans-latin-wght-normal.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: "Rubik"; font-style: normal; font-weight: 700 800; font-display: swap; src: url("fonts/rubik-latin-ext-wght-normal.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; }
@font-face { font-family: "Rubik"; font-style: normal; font-weight: 700 800; font-display: swap; src: url("fonts/rubik-latin-wght-normal.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; }

/* ——— Couleurs d'Astra ——— */
/* Les blocs Spectra et Kadence des articles publiés sous Astra écrivent leurs couleurs « var(--ast-global-color-N) ». Astra définit
   ces variables, pas rlv : sans elles, titres, boutons et fonds de ces blocs perdent leur couleur. Valeurs de la palette d'Astra
   (celle du site actuel). astra-repris.css, lui, reste identique au CSS additionnel d'Astra. */
:root {
  --ast-global-color-0: #ec0000;
  --ast-global-color-1: #e00f0f;
  --ast-global-color-2: #0c0c0c;
  --ast-global-color-3: #020202;
  --ast-global-color-4: #FFFFFF;
  --ast-global-color-5: #fffafa;
  --ast-global-color-6: #111111;
  --ast-global-color-7: #060606;
  --ast-global-color-8: #111111;
}

/* ——— Socle : ce que WordPress ajoute autour du site ——— */
.wp-site-blocks { padding: 0; }
.wp-site-blocks *:focus:not(:focus-visible) { outline: none; } /* WordPress dessine un contour au clic ; la maquette seulement au clavier (:focus-visible) */

/* ——— Boucles d'articles : la liste (ul) porte la classe de la maquette, chaque li est une case ——— */
.wp-block-post-template.cards, .wp-block-post-template.rail { margin: 0; max-width: none; }
.wp-block-post-template.rail { padding: 0 0 1.25rem; } /* .rail : padding-bottom 1.25rem */
@media (max-width: 640px) { .wp-block-post-template.rail { margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); } } /* .rail sur mobile : va jusqu'au bord, la carte suivante dépasse */
.wp-block-post-template.cards { padding: 0; }
.cards > li, .rail > li { margin: 0; min-width: 0; }
.wp-block-post-template > li.post { padding: 0; } /* WordPress met la classe « post » sur chaque li ; la maquette s'en sert pour le bloc de l'article (.post : 4,5 rem de marge haute) */
.card.wp-block-group { margin: 0; }
.card .wp-block-post-featured-image { margin: 0; }
.card .wp-block-post-featured-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; height: auto; } /* .card img */
.card .wp-block-post-date, .card .wp-block-post-time-to-read { margin: 0; }
.card-meta .wp-block-post-time-to-read::before { content: "· "; } /* « · 3 min de lecture » de la maquette */
.card .wp-block-post-title { margin: 0; }
.card .wp-block-post-excerpt { margin: 0; }
.card .wp-block-post-excerpt__excerpt { margin: 0; color: var(--ink-2); font-size: 0.95rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } /* .card .excerpt */

/* Listes d'actualités, de rubriques et de recherche (CNIL) : une photo n'y est jamais affichée plus large que sous Astra, soit 300 px à
   1280 px. Les 3 colonnes et le dessin des cartes ne changent pas ; la liste (et sa pagination) est centrée et sa largeur bornée à
   3 × 300 px + 2 écarts de 2 rem (.cards : gap 3rem 2rem). Sans effet quand la fenêtre est plus étroite que cela. */
.wp-block-query.rlv-liste { max-width: calc(900px + 4rem); margin-inline: auto; }

/* ——— Pagination (maquette : .pagination) ——— */
nav.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 0.5rem; padding-top: 3.5rem; margin: 0; }
nav.pagination .wp-block-query-pagination-numbers { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; }
nav.pagination .wp-block-query-pagination-previous, nav.pagination .wp-block-query-pagination-next, nav.pagination .page-numbers { display: inline-flex; margin: 0; }
nav.pagination .page-numbers.current { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* ——— Article ——— */
.post-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.35em; } /* « Par RasleVol@ · date · 3 min de lecture » */
.post-meta .wp-block-post-author { display: block; margin: 0; }
.post-meta .wp-block-post-author__content { display: flex; gap: 0.3em; flex: none; }
.post-meta .wp-block-post-author__byline { margin: 0; font-size: inherit; }
.post-meta .wp-block-post-author__name { margin: 0; color: var(--ink); font-weight: 700; } /* .post-meta span */
.post-meta .wp-block-post-date, .post-meta .wp-block-post-time-to-read { margin: 0; }
.post-meta .wp-block-post-date::before, .post-meta .wp-block-post-time-to-read::before { content: "· "; }
/* Image mise en avant (CNIL) : jamais plus large que l'image des articles de la maquette (27,5 rem = 440 px) */
.post > .wrap > .wp-block-post-featured-image, .prose > .rlv-photo-principale { max-width: 44rem; margin: 0 auto 2.5rem; }
.post > .wrap > .wp-block-post-featured-image img, .prose .rlv-photo-principale img { width: 100%; max-width: 27.5rem; height: auto; }
/* Contenu : colonne de lecture (.col) et blocs larges (.wide) de la maquette */
.prose > :is(p, h2, h3, h4, h5, h6, ul, ol, blockquote, figure, pre, hr, .wp-block-buttons, .wp-block-file, .overa-social-share) { max-width: 44rem; margin-inline: auto; }
.prose > .wp-block-media-text, .prose > .wp-block-gallery { max-width: 64rem; margin-inline: auto; }
.prose > .wp-block-media-text { margin-block: 3.5rem; } /* .media-text */
.prose .wp-block-media-text { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 3.5rem; align-items: center; }
.prose .wp-block-media-text.has-media-on-the-right { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
.prose .wp-block-media-text .wp-block-media-text__media { margin: 0; }
.prose .wp-block-media-text .wp-block-media-text__content { padding: 0; }
.prose .wp-block-media-text__content > * + * { margin-top: 1rem; } /* .mt-content */
.prose .wp-block-media-text h3 { margin-top: 0; }
@media (max-width: 960px) {
  .prose .wp-block-media-text, .prose .wp-block-media-text.has-media-on-the-right { grid-template-columns: minmax(0, 1fr); }
  .prose .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media, .prose .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content { grid-column: 1; grid-row: auto; }
}
/* Listes, citations, images, boutons : la maquette remet les listes à zéro, les articles en ont besoin */
.prose > :is(ul, ol), .prose ul.wp-block-list, .prose ol.wp-block-list { list-style: revert; padding-left: 1.5rem; }
.prose li + li { margin-top: 0.5rem; }
.prose blockquote { padding-left: 1.25rem; border-left: 3px solid var(--red); }
.prose blockquote p { color: var(--ink); }
.prose figcaption { font-size: var(--t-s); color: var(--ink-2); padding-top: 0.75rem; }
.prose iframe, .prose video { max-width: 100%; }
.prose .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 1.5rem; border-radius: 999px; background: var(--red); color: var(--on-red); font-weight: 700; text-decoration: none; } /* .btn .btn-red */
.prose .wp-block-button__link:hover { background: var(--red-hover); }
.prose a:not(.wp-block-button__link) { text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 0.2em; }
/* Articles voisins (maquette : .post-nav) */
.post-nav .wp-block-post-navigation-link { margin: 0; max-width: 28rem; }
.post-nav .wp-block-post-navigation-link a { display: grid; gap: 0.25rem; text-decoration: none; min-height: 44px; }
.post-nav .post-navigation-link__label { font-size: var(--t-s); color: var(--ink-2); font-weight: 400; }
.post-nav .post-navigation-link__title { font-weight: 700; letter-spacing: -0.015em; }
.post-nav .wp-block-post-navigation-link a:hover .post-navigation-link__title { color: var(--red-ink); }
.post-nav .post-navigation-link-next { margin-left: auto; text-align: right; }

/* ——— Pages génériques (page.html) : le questionnaire de l'enquête borne lui-même sa largeur ——— */
.prose > .rbm { max-width: none; }

/* ——— Formulaire de contact : le formulaire Kadence Blocks, habillé comme celui de la maquette (.form-card, .form-grid, .btn-red) ———
   Le code et les champs restent ceux de Kadence (c'est lui qui envoie le message à contact@raslevol.com) ; seules les règles d'aspect
   changent. Les règles de Kadence (feuille du bloc et style écrit dans la page, 4 classes de spécificité) sont dépassées par une
   classe de plus. Ordre des champs de la maquette : Nom et Téléphone côte à côte, puis E-mail, puis Message. */
.form-card .kb-form-wrap { margin: 0; } /* Kadence : marge de 30 px sous le bloc */
.form-card .kb-form-wrap .kb-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin: 0; align-items: start; text-align: left; } /* .form-grid, .row2 */
.form-card .kb-form-wrap .kb-form > * { grid-column: 1 / -1; order: 5; }
.form-card .kb-form-wrap .kb-form > .kadence-blocks-form-field:first-child { grid-column: 1; order: 1; } /* Nom */
.form-card .kb-form-wrap .kb-form > .kb-form-field-2 { grid-column: 2; order: 2; } /* Téléphone */
.form-card .kb-form-wrap .kb-form > .kb-form-field-1 { order: 3; } /* E-mail */
.form-card .kb-form-wrap .kb-form > p { position: absolute; width: 0; height: 0; margin: 0; overflow: hidden; } /* champs cachés et piège à robots de Kadence : hors de la grille */
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field { width: auto; margin: 0; padding: 0; text-align: left; }
/* Pas de display sur le champ d'envoi : sans JavaScript, Kadence le masque par une règle écrite dans la page (balise noscript). */
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field:not(.kb-submit-field) { display: grid; grid-template-columns: minmax(0, 1fr); justify-content: stretch; gap: 0.5rem; align-items: start; } /* .form-grid label ; justify-content : Kadence met flex-start, qui empêcherait la colonne de s'étirer */
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field > label { display: block; margin: 0; font-weight: 600; font-size: var(--t-s); line-height: 1.6; color: var(--ink); }
.form-card .kb-form-wrap .kb-form .required { margin-left: 0; color: inherit; } /* « Nom* » : astérisque de la couleur du texte */
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field .kb-text-style-field { width: 100%; max-width: 100%; min-height: 48px; padding: 0.75rem 0.25rem; border: 0; border-bottom: 1.5px solid var(--rule-2); border-radius: 0; background: var(--paper); box-shadow: none; color: var(--ink); font: inherit; font-size: var(--t-m); line-height: 1.6; transition: border-color 160ms ease-out; } /* .form-grid input */
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field textarea.kb-text-style-field { height: 8rem; min-height: 8rem; resize: vertical; } /* .form-grid textarea (Kadence donne rows="4", la maquette 8 rem) */
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field .kb-text-style-field:focus { border-bottom-color: var(--ink); outline: none; background: var(--white); }
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field .kb-text-style-field.has-error { border-bottom-color: var(--red-ink); }
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field .kb-forms-submit,
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field .kb-forms-submit:focus { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 56px; padding: 0 2rem; border: 0; border-radius: 999px; background: var(--red); color: var(--on-red); font: inherit; font-size: var(--t-m); font-weight: 700; line-height: 1.6; letter-spacing: -0.005em; text-shadow: none; overflow: visible; cursor: pointer; transition: background-color 160ms ease-out, color 160ms ease-out, transform 160ms var(--ease-out); } /* .btn .btn-red .btn-lg */
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field .kb-forms-submit:hover { background: var(--red-hover); color: var(--on-red); }
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field .kb-forms-submit:active { transform: scale(0.98); }
.form-card .kb-form-wrap .kb-form .kadence-blocks-form-field .kb-forms-submit::before { display: none; }
.form-card .kb-form-wrap .kb-form .kb-form-error-msg { margin: 0; padding: 0; border: 0; background: none; color: var(--red-ink); font-size: var(--t-s); font-weight: 600; line-height: 1.5; }
.form-card .kadence-blocks-form-message:is(.kadence-blocks-form-success, .kadence-blocks-form-warning) { margin: 1.25rem 0 0; padding: 0; border: 0; border-radius: 0; background: none; font-size: var(--t-s); font-weight: 600; line-height: 1.5; } /* message d'envoi : Kadence écrit line-height 6px et un fond rouge dans la page */
.form-card .kadence-blocks-form-message.kadence-blocks-form-success { color: var(--ink); }
.form-card .kadence-blocks-form-message.kadence-blocks-form-warning { color: var(--red-ink); }
.form-card .kb-form-wrap ~ .form-status { margin-top: 1.25rem; }
.form-card .rlv-contact-secours { font-size: var(--t-m); line-height: 1.5; } /* repli : formulaire indisponible */
@media (max-width: 640px) { /* .form-grid .row2 passe sur une colonne */
  .form-card .kb-form-wrap .kb-form > .kadence-blocks-form-field:first-child, .form-card .kb-form-wrap .kb-form > .kb-form-field-2 { grid-column: 1 / -1; }
}

/* ——— Cibles tactiles d'au moins 44 px sous 480 px : liens du pied de page (maquette : 40 px) et boutons de partage des articles (astra-repris.css : 40 px) ——— */
@media (max-width: 480px) {
  .foot-nav a { min-height: 44px; }
  .overa-social-share__link { width: 44px; height: 44px; }
  .overa-social-share__link svg { width: 20px; height: 20px; }
}
