/* Agorgi Site Kit — Complément V2.2 (version interne 2.2.5).
   Chargé après la feuille d'Agorgi Site Kit. */

/* ======================================================================
   AGORGI SITE KIT — V2.2 (version interne 2.2.5)
   Correctif : fluidité du défilement + lien d'évitement unique
   À AJOUTER À LA FIN de la feuille du plugin (agorgi-site-kit-complete-css).

   IMPORTANT : le même code existe aussi dans Apparence > Personnaliser >
   > « CSS additionnel » (bloc AGORGI-SITE-KIT DEBUT/FIN). Donc on surcharge
   explicitement les règles ici au lieu de simplement les supprimer :
   une règle retirée du plugin resterait active via le Customizer.
   ====================================================================== */

/* 1) Défilement fluide des ancres, sur toutes les pages
      (avec décalage global pour l'en-tête sticky). */
:root { --ag-header-offset: 104px; }              /* en-tête mesuré : 93 px + marge */
@media (max-width: 980px) { :root { --ag-header-offset: 90px; } } /* mesuré : 79 px */
html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--ag-header-offset);    /* chaque #ancre, y compris #content */
}
html:has(> body.admin-bar) { scroll-padding-top: calc(var(--ag-header-offset) + 32px); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
/* 1b) Le plugin 2.2.4 (et sa copie dans le Customizer) donne déjà
       scroll-margin-top: 110px à ses cibles d'ancre. Le navigateur ADDITIONNE
       scroll-margin et scroll-padding : le titre s'arrêtait à ~214 px du haut
       (trou de ~120 px sous l'en-tête). Le décalage est désormais global (1),
       on neutralise donc ces marges. Sélecteurs plus spécifiques que l'original
       pour gagner aussi sur la copie du Customizer. Mesuré sur le banc : 214 px -> 104 px. */
body.agorgi-site-active #contact,
body.agorgi-site-active #agorgi-contact-form,
body.agorgi-site-active .agorgi-project-anchor-target,
body.agorgi-site-active .agorgi-project-detail-nav a,
body.agorgi-site-active .agorgi-project-overview,
body.agorgi-site-active .agorgi-project-exhibition-text { scroll-margin-top: 0; }

/* 2) Fluidité : le flou de l'en-tête sticky est recalculé à chaque
      image du défilement, alors que le fond est opaque à 97 % (le flou
      est donc invisible). On le désactive sur tous les formats d'écran
      (il l'est déjà sous 980 px). Fond rendu opaque : sans flou, les 3 % de
      transparence laisseraient voir le contenu net derrière l'en-tête. */
body.agorgi-site-active .agorgi-site-header {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  background: #fff;
}

/* 3) Menu mobile : éviter que le défilement du panneau ne se propage
      à la page (effet « saccadé » en fin de liste). */
#agorgi-mobile-menu { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
body.agorgi-menu-open { overflow: hidden; }

/* 4) Carrousel hero : confiner les repeints au cadre du slider. */
.agorgi-hero-frame { contain: paint; }

/* 5) Lien d'évitement unique : on garde le lien natif d'Astra
      (déjà traduit EN/FR, premier élément focusable), avec le style Agorgi.
      Filet de sécurité si l'ancien lien Agorgi est encore produit. */
.agorgi-skip-link { display: none !important; }
body.agorgi-site-active .skip-link.screen-reader-text:focus {
  position: absolute !important; top: 10px !important; left: 16px !important;
  z-index: 100000; width: auto; height: auto; margin: 0;
  padding: 10px 14px; clip: auto !important; clip-path: none;
  overflow: visible; white-space: nowrap;
  background: #fff; color: #111; border: 1px solid #111;
  font: 500 12px/1.2 var(--ag-font); letter-spacing: .08em;
  text-decoration: none; box-shadow: none;
}
body.admin-bar.agorgi-site-active .skip-link.screen-reader-text:focus { top: 42px !important; }

/* ======================================================================
   AGORGI SITE KIT — V2.2 QC (version interne 2.2.5)
   Correctifs d'accessibilité (axe-core, WCAG 2.2 AA) — à ajouter après
   agorgi-v2.2-scroll-skiplink.css
   ====================================================================== */

/* QC-A11Y-03 — Contraste : #888 sur blanc = 3,54:1 (< 4,5:1 requis pour
   les textes de 9 à 12 px). #767676 = 4,54:1, nuance de gris la plus proche
   qui soit conforme. La teinte reste quasiment identique. */
:root { --ag-grey: #767676; }

/* QC-A11Y-04 — Taille des cibles tactiles (WCAG 2.5.8) : liens « info@… » et
   « Nous écrire → » à 21,6 px de haut. On passe à 25,6 px, sans changer le
   texte ni l'alignement. */
.agorgi-footer-column > a { padding-block: 2px; }

/* QC-A11Y-09 (trouvé sur le banc d'aperçu) : la règle d'Astra
   « button:hover, button:focus { background: var(--ast-global-color-1) } »
   colorait en bleu les boutons du plugin au survol / après un clic :
   indicateurs du carrousel, ☰ et × du menu mobile. On garde leur fond
   transparent ; le contour blanc :focus-visible du plugin (clavier) reste. */
body.agorgi-site-active .agorgi-hero-progress-item,
body.agorgi-site-active .agorgi-hero-progress-item:hover,
body.agorgi-site-active .agorgi-hero-progress-item:focus,
body.agorgi-site-active .agorgi-menu-toggle,
body.agorgi-site-active .agorgi-menu-toggle:hover,
body.agorgi-site-active .agorgi-menu-toggle:focus,
body.agorgi-site-active .agorgi-menu-close,
body.agorgi-site-active .agorgi-menu-close:hover,
body.agorgi-site-active .agorgi-menu-close:focus {
  background-color: transparent;
  box-shadow: none;
}
body.agorgi-site-active .agorgi-menu-toggle:hover span,
body.agorgi-site-active .agorgi-menu-toggle:focus span { background-color: var(--ag-ink, #111); }

/* QC-A11Y-10 (trouvé sur le banc) : libellés « Image à venir » des cartes
   sans image, en gris sur fond #f2f2f2 / #f4f4f4 : 4,05:1 (< 4,5:1 requis).
   #666 donne 5,1:1 sur #f2f2f2. */
body.agorgi-site-active .agorgi-gallery-artwork-card__media--missing,
body.agorgi-site-active .agorgi-gallery-artist-card__media--missing,
body.agorgi-site-active .agorgi-gallery-event-card__media--missing,
body.agorgi-site-active .agorgi-project-artwork-card__media--missing,
body.agorgi-site-active .agorgi-card-image-missing-label { color: #666; }

/* =====================================================================
   AGORGI V2.2 (2.2.5) — CARROUSEL D'ACCUEIL : GLISSEMENT DEPUIS LA DROITE + POINTS
   Demande du 26/10/2026 :
     - la nouvelle photo arrive par la droite et pousse l'ancienne vers la gauche ;
     - seulement des points, en ligne, en bas au centre ;
     - ni flèche, ni barres de progression, ni compteur, ni bouton visible.
   Fonctionne avec includes/agorgi-v22-carrousel.js, qui ajoute la classe
   .agorgi-hero--glisse. Sans ce JS, rien ne change : le fondu du plugin reste actif.
   ===================================================================== */

/* 1. Diapositives.
      Sens normal (suivante) :
        - sans classe : sortie à gauche (-100 %). C'est là que va une photo qui
          perd .is-active, quel que soit le moment où le plugin la lui retire ;
        - .is-waiting : en attente à droite (+100 %), sans animation ;
        - .is-active : dans le cadre (0). Elle l'emporte sur .is-waiting.
      Sens inverse (.is-reverse sur le carrousel : point précédent, flèche ←,
      glissement du doigt vers la droite) : les deux côtés sont échangés. */
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-slide {
	opacity: 1;
	transform: translate3d(-100%, 0, 0);
	transition: none;
	will-change: transform;
}
body.agorgi-site-active .agorgi-hero--glisse.is-reverse .agorgi-hero-slide {
	transform: translate3d(100%, 0, 0);
}
body.agorgi-site-active .agorgi-hero--glisse-ready .agorgi-hero-slide {
	transition: transform .9s cubic-bezier(.77, 0, .18, 1);
}
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-slide.is-waiting:not(.is-active) {
	transform: translate3d(100%, 0, 0);
	transition: none !important;
}
body.agorgi-site-active .agorgi-hero--glisse.is-reverse .agorgi-hero-slide.is-waiting:not(.is-active) {
	transform: translate3d(-100%, 0, 0);
}
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-slide.is-active {
	z-index: 1;
	transform: translate3d(0, 0, 0);
}

/* 2. Navigation : seulement des points, en ligne, en bas au centre. */
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-navigation {
	top: auto;
	right: auto;
	bottom: 18px;
	left: 50%;
	min-height: 0;
	transform: translateX(-50%);
	flex-direction: row;
	justify-content: center;
	gap: 6px;
}
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-progress {
	flex-direction: row;
	gap: 4px;
	margin: 0;
}
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-progress-item {
	position: relative;
	display: grid;
	place-items: center;
	width: 24px;   /* zone de clic 24 × 24 px (WCAG 2.5.8) */
	height: 24px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
}
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-progress-item::before {
	display: block;
	width: 9px;
	height: 9px;
	border: 1.5px solid #fff;
	border-radius: 50%;
	background: transparent;
	box-shadow: 0 1px 6px rgba(0, 0, 0, .35);
	content: "";
	transition: background-color .25s ease, transform .25s ease;
}
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-progress-item:hover::before {
	background: rgba(255, 255, 255, .55);
}
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-progress-item.is-active::before {
	background: #fff;
	transform: scale(1.25);
}
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-progress-item:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 0;
}
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-progress-track,
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-counter {
	display: none !important;
}

/* 3. Bouton pause : invisible à la souris, il n'apparaît que quand on y arrive
      au clavier (Tab). Conservé car WCAG 2.2.2 impose de pouvoir arrêter un
      défilement automatique. */
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-pause:not(:focus-visible) {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	border: 0 !important;
	white-space: nowrap !important;
}
body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-pause:focus-visible {
	width: 30px;
	height: 30px;
	flex-basis: 30px;
	margin-left: 4px;
}

/* 4. Mobile. */
@media (max-width: 767px) {
	body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-navigation {
		right: auto;
		bottom: 12px;
		left: 50%;
	}
	body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-caption {
		bottom: 64px;
	}
}

/* 5. Préférence « réduire les animations » : changement sans glissement
      (le plugin coupe déjà la lecture automatique dans ce cas). */
@media (prefers-reduced-motion: reduce) {
	body.agorgi-site-active .agorgi-hero--glisse .agorgi-hero-slide,
	body.agorgi-site-active .agorgi-hero--glisse-ready .agorgi-hero-slide {
		transition: none !important;
	}
}
