/*
 * RH-7 — Polish design (Lot 1 « Dynamisation », suivi/fine-tuning). CSS PUR, child theme
 * versionné. Aucun JS, aucune édition DB, Greenshift NON modifié (on enrobe le markup).
 *
 * Ciblage par SIGNATURE de structure (jamais d'id de bloc FR → parité FR/EN Polylang) :
 *   1. Padding droit des blocs de la colonne DROITE des rows full-bleed « image gauche /
 *      texte droite » des pages internes (ex. « Soft Mobility », « The History of the Site »,
 *      sections partenaires de « Nous connaître ») : le contenu du row est full-width
 *      (aucun max-width) → le contenu colle au bord droit. On rétablit une gouttière.
 *   2. Réduction légère des labels sous les compteurs de la HOME — un poil trop grands.
 *
 * NB `:has()` : supporté par les navigateurs cibles récents (Chrome/Edge ≥105, Safari
 * ≥15.4, Firefox ≥121) ; sans support → aucun changement (dégradation propre, l'existant
 * reste), jamais de casse.
 */

:root {
  /* Gouttière droite ajoutée au contenu des rows full-bleed (desktop côte-à-côte).
   * TUNABLE au feel avec Etienne en preview. */
  --rh-polish-fullbleed-gutter: clamp(1.5rem, 4vw, 5rem);   /* ≈ 24px → 80px (≥992px) */
  /* Marge haute/basse de la colonne de texte de ces rows (06/10/2026). */
  --rh-polish-fullbleed-gutter-v: clamp(2.5rem, 5vw, 4.5rem); /* ≈ 40px → 72px */
  /* Marge latérale quand les colonnes sont empilées (< 992 px), 06/10/2026. */
  --rh-polish-stack-gutter: clamp(1rem, 5vw, 2.5rem);       /* ≈ 16px → 40px */

  /* Taille des labels de compteurs (home). Repos actuel = 18px → réduction légère.
   * TUNABLE au feel. */
  --rh-polish-counter-label-size: 1rem;                     /* ≈ 16px (−2px vs 18px) */
}

/* --- 1. Padding droit — rows full-bleed « image gauche / texte droite » (internes) -----
 *
 * Signature (locale-agnostique, sans id) :
 *  - `.gspb_row.alignfull`                         → row pleine largeur (déborde le conteneur)
 *  - `> [class*="gspb_row__col"]`                  → colonnes en ENFANT DIRECT du row : c'est
 *      la structure de ces sections internes, DISTINCTE des rows de la home (qui ont un
 *      wrapper `.gspb_row__content`) → exclut naturellement les rows home full-bleed.
 *  - `:last-child:not(:first-child)`               → la colonne de DROITE d'un row multi-colonnes
 *      (le `:not(:first-child)` évite une row full-bleed à 1 colonne, qui recevrait un padding
 *      droit SEUL = asymétrie).
 *  - `:has(.gspb_text):not(:has(figure:not(.rh-media--logo)))` → colonne de TEXTE (pas la colonne
 *      photo ; un LOGO de partenaire dans la colonne de texte ne l'exclut pas — 06/10/2026)
 *
 * Vérifié en preview : cible « Soft Mobility » + « The History of the Site » (le-quartier
 * + /en/the-neighborhood/, parité FR/EN) + les 4 sections partenaires de « Nous connaître »
 * (même pattern) ; ZÉRO match sur la home (hero et rows à `.gspb_row__content` exclus).
 *
 * Scopé `min-width: 992px` (seuil Greenshift, 1000 px avant le 06/10/2026) = colonnes côte à
 * côte. En dessous elles s'empilent (`--md-12`, texte full-width) : marge latérale SYMÉTRIQUE
 * dédiée (bloc « Colonnes EMPILÉES » plus bas, 06/10/2026).
 *
 * On applique le padding à TOUS les blocs enfants de la colonne (`> *` : titre, texte,
 * liste à puces, CTA…) pour un retrait droit HOMOGÈNE, et PAS à la colonne : Greenshift
 * zérote le padding des colonnes via un sélecteur d'ID de bloc (`.gspb_row #gspb_col-id-…
 * { padding: 0 }`, spécificité (1,2,0)) — imbattable sans `!important` ni id. Le
 * `padding-right` des blocs de contenu, lui, n'est contesté par aucune règle → cascade
 * gagnée proprement. Anti-overflow : ces blocs sont en flux normal (`width:auto`) → le
 * padding rogne le contenu, la boîte reste dans la largeur de la colonne (aucun débordement). */
/* 06/10/2026 (relevé d'Etienne sur « Tralux Immobilier », /en/about-us/ et /nous-connaitre/) :
 *  - `:not(:has(img))` excluait aussi les colonnes de texte qui portent un LOGO de partenaire
 *    (`figure.rh-media--logo`, ajouté par ST-TRA-018) → plus de gouttière, texte collé à droite.
 *    On n'exclut plus que les colonnes qui contiennent une vraie photo (figure non-logo).
 *  - aucune marge haute/basse : un texte plus haut que la photo (Tralux, 2 paragraphes) occupe toute
 *    la hauteur du bloc rose, titre collé en haut, bouton collé en bas. Padding haut sur le premier
 *    bloc, bas sur le dernier : quand le texte est plus court que la photo, la colonne est centrée
 *    verticalement (Greenshift) et ces paddings symétriques ne changent rien à l'écran.
 *  - seuil aligné sur Greenshift (992 px : colonnes côte à côte au-dessus, empilées en dessous) —
 *    à 1000 px, la plage 992–999 px restait côte à côte sans gouttière. */
@media (min-width: 992px) {
  .gspb_row.alignfull > [class*="gspb_row__col"]:last-child:not(:first-child):has(.gspb_text):not(:has(figure:not(.rh-media--logo))) > * {
    padding-right: var(--rh-polish-fullbleed-gutter);
  }
  .gspb_row.alignfull > [class*="gspb_row__col"]:last-child:not(:first-child):has(.gspb_text):not(:has(figure:not(.rh-media--logo))) > :first-child {
    padding-top: var(--rh-polish-fullbleed-gutter-v);
  }
  .gspb_row.alignfull > [class*="gspb_row__col"]:last-child:not(:first-child):has(.gspb_text):not(:has(figure:not(.rh-media--logo))) > :last-child {
    padding-bottom: var(--rh-polish-fullbleed-gutter-v);
  }
}

/* Colonnes EMPILÉES (< 992 px) : la colonne de texte prend toute la largeur du bloc pleine largeur,
 * sans aucune marge → texte collé aux deux bords (constaté aussi sur les deux sections roses de
 * « Le quartier »). Marge latérale symétrique et marge basse, même signature de structure. */
@media (max-width: 991.98px) {
  .gspb_row.alignfull > [class*="gspb_row__col"]:last-child:not(:first-child):has(.gspb_text):not(:has(figure:not(.rh-media--logo))) > * {
    padding-left: var(--rh-polish-stack-gutter);
    padding-right: var(--rh-polish-stack-gutter);
  }
  .gspb_row.alignfull > [class*="gspb_row__col"]:last-child:not(:first-child):has(.gspb_text):not(:has(figure:not(.rh-media--logo))) > :last-child {
    padding-bottom: var(--rh-polish-fullbleed-gutter-v);
  }
}

/* --- 2. Labels sous les compteurs (HOME) — réduction légère -----------------------------
 *
 * Signature JS-INDÉPENDANTE (fonctionne aussi sans `rh-js` / en reduced-motion, contrairement
 * à la classe `.rh-reveal-group--counters` posée par le JS RH-1) : le label est le `.gspb_text`
 * frère direct d'un `.gs-counterwrap` (nombre) dans le wrapper de chaque compteur.
 * Scopé `body.home` = périmètre du ticket. NB : le MÊME composant compteurs existe sur d'autres
 * pages (« Nous connaître » / EN « About Us », labels aussi en 18px) — laissés inchangés ici ;
 * à étendre site-wide seulement sur décision d'Etienne (cohérence visuelle) → retirer `body.home`.
 * `line-height` du thème = unitless (1.65) → reste proportionnel à la nouvelle taille (zéro CLS). */
body.home [class*="gspb_row__col"]:has(> .gs-counterwrap) > .gspb_text {
  font-size: var(--rh-polish-counter-label-size);
}

/*
 * ST-TRA-046 — titre renuméroté pour la structure (un seul <h1>, aucun niveau sauté), ASPECT
 * INCHANGÉ : `inc/rh-titres.php` lui pose `rh-aspect-h<niveau d'origine>`. Blocksy taille les
 * titres PAR NIVEAU via `--theme-font-size` (graisse 800 et interligne 1,5 identiques à tous les
 * niveaux ; la marge du bas suit la taille, en em). Valeurs de Blocksy (Personnaliser →
 * Typographie) relevées le 05/11/2026 : à reprendre ici si on les change là-bas. Un titre dont
 * Greenshift fixe la taille (hero de l'accueil) n'est pas concerné : sa taille l'emporte.
 */
.rh-aspect-h2 { --theme-font-size: 35px; }
.rh-aspect-h3 { --theme-font-size: 30px; }
.rh-aspect-h4 { --theme-font-size: 25px; }
.rh-aspect-h5 { --theme-font-size: 20px; }
