/* N0 — seules valeurs brutes du site. Couleurs : Charte ESS Bretagne, déclinaison Finistère. */
:root {
  /* Couleurs de la charte */
  --color-white: #ffffff;
  --color-glaz-1: #78c7c9;
  --color-glaz: #2d8a87;
  --color-glaz-3: #005154;
  --color-glaz-4: #00393b;
  --color-or: #f7a600;

  /* Couleur propre à chaque pôle, relevée sur son logo (Charte/logoPoleESS/) ; réservée aux éléments de ce pôle.
     Texte blanc dessus : Morlaix 5,7:1, Brest 7,8:1, Cornouaille 6,3:1 ; en texte sur la teinte à 7 % : 5,2:1 au moins. */
  --color-pole-morlaix: #157270;
  --color-pole-brest: #9f1251;
  --color-pole-cornouaille: #b22760;

  /* Charte TAg29 (Charte/tag29/3. LOGOS TAG/TAg29_KIT_COMMUNICATION_salarie_stagiaire/TAg29_CHARTE-GRAPHIQUE.pdf),
     réservée à la page /tag29/ : jaune et orange foncé du logo, noir des textes, bleu nuit du réseau TAgBZH (nuancier).
     Noir sur jaune 11,1:1 ; blanc sur bleu nuit 14,6:1 ; jaune sur bleu nuit 7,7:1 ; orange sur blanc 3,5:1 (décor seulement). */
  --color-tag29-jaune: #f8ae3c;
  --color-tag29-orange: #ea5b25;
  --color-tag29-noir: #000000;
  --color-tagbzh-nuit: #212937;

  /* Rôles (contrastes sur blanc : glaz-4 12,7:1, glaz-3 9,1:1 ; glaz 4,1:1 grand texte et composants seulement ; or jamais en texte sur blanc) */
  --color-text: var(--color-glaz-4);
  --color-text-soft: color-mix(in srgb, var(--color-glaz-4) 82%, var(--color-white));
  --color-link: var(--color-glaz-3);
  --color-surface: var(--color-white);
  --color-surface-alt: color-mix(in srgb, var(--color-glaz-1) 14%, var(--color-white));
  --color-surface-tint: color-mix(in srgb, var(--color-glaz-1) 28%, var(--color-white));
  --color-line: color-mix(in srgb, var(--color-glaz-1) 45%, var(--color-white));
  --color-border: var(--color-glaz);
  --color-accent: var(--color-or);
  /* Focus : Glaz 3 sur fond clair (9:1), or sur fond sombre ; l'or seul sur blanc ne fait que 1,9:1 (RGAA 3.3, audit du 15/10/2026). */
  --color-focus: var(--color-glaz-3);
  --color-focus-on-dark: var(--color-or);
  --color-on-dark: var(--color-white);

  /* Dégradé Glaz de la charte : sombre en bas à gauche, clair en haut à droite (le texte reste côté sombre). */
  --gradient-glaz: linear-gradient(to top right, var(--color-glaz-4) 0%, var(--color-glaz-3) 55%, color-mix(in srgb, var(--color-glaz) 70%, var(--color-glaz-3)) 100%); /* extrémité claire assombrie : texte blanc ≥ 4,5:1 partout (audit du 15/10/2026) */
  --gradient-photo: linear-gradient(90deg, color-mix(in srgb, var(--color-glaz-4) 94%, transparent) 0%, color-mix(in srgb, var(--color-glaz-4) 90%, transparent) 50%, color-mix(in srgb, var(--color-glaz-3) 20%, transparent) 100%);
  --gradient-photo-mobile: linear-gradient(0deg, color-mix(in srgb, var(--color-glaz-4) 96%, transparent) 35%, color-mix(in srgb, var(--color-glaz-4) 75%, transparent) 100%);

  /* Typographie */
  --font-ui: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-accent: "Viga", var(--font-ui);
  --font-tag29: "Quicksand", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --weight-regular: 400;
  --weight-bold: 600;
  /* Échelle unique du site : titre de page 2xl, titres de section xl, titres de carte lg, chapeau de page lg,
     texte courant (introductions de section comprises) base, mentions sm et xs. */
  --text-xs: 0.8125rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-md: 1.0625rem;
  --text-lg: clamp(1.125rem, 1.05rem + 0.35vw, 1.3125rem);
  --text-xl: clamp(1.375rem, 1.15rem + 1vw, 1.875rem);
  --text-2xl: clamp(1.875rem, 1.4rem + 2.2vw, 3rem);
  --text-3xl: clamp(2.25rem, 1.5rem + 3.6vw, 4.5rem);
  --text-stat: clamp(2rem, 1.6rem + 1.8vw, 2.875rem);
  --leading: 1.65;
  --leading-tight: 1.15;
  --tracking-caps: 0.08em;
  --measure: 65ch;

  /* Espaces */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-section: clamp(2.5rem, 1.75rem + 2.5vw, 4.5rem);
  --gutter: clamp(1rem, 0.5rem + 2.5vw, 2.5rem);
  --container: 76rem;
  --header-h: 4.75rem;
  --subnav-h: 3.25rem;

  /* Formes */
  --radius-sm: 0.375rem;
  --radius-md: 0.75rem;
  --radius-lg: 1.25rem;
  --radius-xl: 2rem;
  --radius-pill: 999px;
  --border-width: 1px;
  --focus-width: 3px;
  --target-min: 2.75rem;
  --shadow-sm: 0 1px 2px color-mix(in srgb, var(--color-glaz-4) 8%, transparent), 0 2px 8px color-mix(in srgb, var(--color-glaz-4) 6%, transparent);
  --shadow-md: 0 6px 24px color-mix(in srgb, var(--color-glaz-4) 12%, transparent), 0 2px 6px color-mix(in srgb, var(--color-glaz-4) 6%, transparent);
  --shadow-lg: 0 24px 60px color-mix(in srgb, var(--color-glaz-4) 22%, transparent);

  /* Icône de lien vers un autre site (flèche diagonale, fichier local) */
  --icon-external: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 2.5h8.5V11h-2V5.9l-7.3 7.3-1.4-1.4 7.3-7.3H5z'/%3E%3C/svg%3E");
  --icon-external-size: 0.75em;
  --icon-inline-size: 1.1em;
  --icon-inline-offset: -0.15em;

  /* Mouvement */
  --duration-feedback: 150ms;
  --duration-enter: 300ms;
  --ease: cubic-bezier(0.2, 0, 0, 1);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-feedback: 0ms;
    --duration-enter: 0ms;
  }
}

/* Admin — tableau de bord seulement (public/assets/css/admin.css). */
:root {
  --admin-side-w: 16rem;
  --admin-bar-h: 3.5rem;
  --admin-main-max: 78rem;
  --admin-aside-w: 20rem;
  --admin-control-h: 2.5rem;
  --admin-icon: 1.125rem;
  --admin-gap-tight: 2px;
  --admin-border-strong: 2px;
  --admin-focus-offset: 2px;
  --admin-tab-indicator: 3px;
  --admin-bg: color-mix(in srgb, var(--color-glaz-1) 9%, var(--color-white));
  --admin-side-bg: var(--color-glaz-4);
  --admin-side-text: color-mix(in srgb, var(--color-white) 86%, var(--color-glaz-4));
  --admin-side-hover: color-mix(in srgb, var(--color-white) 10%, transparent);
  --admin-side-line: color-mix(in srgb, var(--color-white) 16%, transparent);
  --admin-input-border: color-mix(in srgb, var(--color-glaz-4) 58%, var(--color-white));
  --admin-success-soft: color-mix(in srgb, var(--color-glaz-1) 22%, var(--color-white));
  --admin-warning-soft: color-mix(in srgb, var(--color-or) 14%, var(--color-white));
  --admin-info-soft: var(--color-surface-alt);
}
