/*
 * Clarity — thème LimeSurvey autonome et accessible
 * Identité visuelle originale, sans ressources institutionnelles.
 */
:root {
  --cl-primary: #462e87;
  --cl-primary-dark: #292358;
  --cl-primary-hover: #292358;
  --cl-accent: #b81962;
  --cl-text: #000000;
  --cl-muted: #292358;
  --cl-border: #7a2a76;
  --cl-surface: #ffffff;
  --cl-surface-alt: #f0ebe9;
  --cl-error: #d51130;
  --cl-success: #18794e;
  --cl-warning: #8a4b08;
  --cl-focus: #009ed4;
  --cl-brand-gradient: linear-gradient(180deg, #009ed4 0%, #462e87 25%, #292358 68%, #b81962 100%);
  --cl-radius: .5rem;
  --cl-shadow: 0 .25rem 1rem rgb(41 35 88 / 16%);
  --cl-max-width: 76rem;

  /* Correspondances nécessaires aux gabarits LimeSurvey historiques. */
  --background-action-high-brand-primary: #462e87;
  --background-action-high-brand-primary-hover: #292358;
  --background-active-brand-primary: #462e87;
  --background-action-low-brand-primary: #f0ebe9;
  --background-action-low-brand-primary-hover: #ffffff;
  --background-alt-brand-primary: #f0ebe9;
  --background-contrast-brand-primary: #f0ebe9;
  --border-action-high-brand-primary: #462e87;
  --border-active-brand-primary: #462e87;
  --border-plain-brand-primary: #462e87;
  --text-action-high-brand-primary: #462e87;
  --text-inverted-brand-primary: #ffffff;
  --text-label-brand-primary: #462e87;
  --text-title-brand-primary: #292358;
  --background-action-high-error: #d51130;
  --background-action-high-error-hover: #b81962;
  --border-plain-error: #d51130;
  --text-default-error: #d51130;
  --text-inverted-error: #ffffff;
  --error-425-625: #d51130;
  --background-default-grey: #ffffff;
  --background-default-grey-hover: #f0ebe9;
  --background-alt-grey: #f0ebe9;
  --background-contrast-grey: #f0ebe9;
  --background-contrast-grey-hover: #ffffff;
  --background-disabled-grey: #f0ebe9;
  --border-default-grey: #7a2a76;
  --border-disabled-grey: #f0ebe9;
  --border-plain-grey: #292358;
  --text-default-grey: #000000;
  --text-title-grey: #000000;
  --text-label-grey: #000000;
  --text-mention-grey: #292358;
  --text-disabled-grey: #666666;
  --text-inverted-grey: #ffffff;
  --background-contrast-error: #f0ebe9;
  --background-contrast-success: #f0ebe9;
  --background-contrast-warning: #f0ebe9;
  --border-plain-info: #009ed4;
  --border-plain-success: #18794e;
  --text-default-success: #18794e;
  --text-default-warning: #8a4b08;
  --success-425-625: #18794e;
  --warning-425-625: #8a4b08;
  --raised-shadow: 0 .25rem 1rem rgb(41 35 88 / 16%);
  --overlap-shadow: 0 .125rem .5rem rgb(41 35 88 / 12%);
  --focus: #009ed4;
}

[data-cl-scheme="dark"] {
  --cl-primary: #462e87;
  --cl-primary-dark: #009ed4;
  --cl-primary-hover: #292358;
  --cl-accent: #b81962;
  --cl-text: #ffffff;
  --cl-muted: #f0ebe9;
  --cl-border: #7a2a76;
  --cl-surface: #000000;
  --cl-surface-alt: #292358;
  --cl-error: #d51130;
  --cl-success: #75d7a7;
  --cl-warning: #ffcc80;
  --text-action-high-brand-primary: #009ed4;
  --text-title-brand-primary: #ffffff;
  --background-action-low-brand-primary: #292358;
  --background-alt-brand-primary: #292358;
  --background-contrast-brand-primary: #292358;
}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
[data-cl-scheme="dark"] { color-scheme: dark; }
body {
  margin: 0;
  color: var(--cl-text);
  background: var(--cl-surface);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.55;
}
a { color: var(--cl-primary-dark); text-underline-offset: .2em; }
a:hover { text-decoration-thickness: .16em; }
img, svg { max-width: 100%; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: .2rem solid var(--cl-focus); outline-offset: .2rem; }

.cl-container, .cl-container-md { width: min(100% - 2rem, var(--cl-max-width)); margin-inline: auto; }
.cl-container--fluid { width: 100%; padding-inline: 1rem; }
.cl-grid-row { display: flex; flex-wrap: wrap; }
.cl-grid-row--gutters { gap: 1.5rem; }
.cl-grid-row--center { justify-content: center; }
.cl-grid-row--middle { align-items: center; }
.cl-grid-row--bottom { align-items: end; }
.cl-col, [class*="cl-col-"] { min-width: 0; flex: 1 1 0; }
.cl-col-12 { flex-basis: 100%; }
.cl-col-9 { flex-basis: 75%; }
.cl-col-6 { flex-basis: 50%; }
.cl-col-2 { flex-basis: 16.666%; }
.cl-col-1 { flex-basis: 8.333%; }

.cl-header { border-bottom: .35rem solid; border-image: var(--cl-brand-gradient) 1; background: var(--cl-surface); }
.cl-header__body-row { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 6rem; padding-block: 1rem; }
.cl-header__brand { display: flex; align-items: center; gap: 1.25rem; min-width: 0; }
.cl-header__brand-top { display: flex; align-items: center; gap: 1rem; }
.cl-logo { margin: 0; color: var(--cl-primary-dark); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cl-header__service-title { margin: 0; color: var(--cl-text); font-size: 1.35rem; font-weight: 750; }
.cl-header__service a { text-decoration: none; }
.cl-header__service-tagline { margin: .2rem 0 0; color: var(--cl-muted); }
.cl-header__tools-links, .cl-btns-group { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.cl-header__navbar { display: none; }
.cl-header__menu { border-top: 1px solid var(--cl-border); padding-block: 1rem; }

.cl-main { min-height: 55vh; padding-block: 2rem 4rem; }
h1, h2, h3, h4, .cl-h1, .cl-h2, .cl-h3, .cl-h4 { line-height: 1.2; color: var(--cl-text); }
.cl-h1, h1 { font-size: clamp(2rem, 5vw, 3rem); }
.cl-h2, h2 { font-size: clamp(1.55rem, 3vw, 2rem); }
.cl-h3, h3 { font-size: 1.35rem; }
.cl-text--lead { font-size: 1.2rem; }
.cl-text--bold { font-weight: 700; }
.cl-text--sm { font-size: .9rem; }
.cl-text--xs { font-size: .8rem; }
.cl-hint-text { display: block; color: var(--cl-muted); margin-top: .25rem; }
.cl-hidden, [hidden] { display: none !important; }
.cl-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Liens d'évitement : invisibles au repos, affichés dès la navigation clavier. */
.cl-skiplinks {
  position: absolute;
  z-index: 2000;
  top: 0;
  left: 0;
  width: 100%;
  padding-block: .75rem;
  background: var(--cl-surface);
  box-shadow: var(--cl-shadow);
  transform: translateY(-120%);
  transition: transform .15s ease-out;
}
.cl-skiplinks:focus-within { transform: translateY(0); }
.cl-skiplinks__list { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin: 0; padding: 0; list-style: none; }
.cl-skiplinks .cl-link { font-weight: 700; }

.cl-btn, button.cl-btn, input[type="submit"].cl-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 2.75rem; padding: .65rem 1rem; border: 2px solid var(--cl-primary);
  border-radius: var(--cl-radius); color: #fff; background: var(--cl-primary);
  font-weight: 700; line-height: 1.2; cursor: pointer; text-decoration: none;
}
.cl-btn:hover { background: var(--cl-primary-hover); border-color: var(--cl-primary-hover); }
.cl-btn--secondary, .cl-btn--tertiary, .cl-btn--tertiary-no-outline { color: var(--cl-primary-dark); background: transparent; }
.cl-btn--tertiary-no-outline { border-color: transparent; }
.cl-btn--sm { min-height: 2.25rem; padding: .4rem .7rem; font-size: .9rem; }
.cl-btn--lg { min-height: 3.25rem; padding: .85rem 1.25rem; }
.cl-btn:disabled, .cl-btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }

.cl-label, .cl-fieldset__legend { display: block; margin-bottom: .4rem; font-weight: 700; }
.cl-input, .cl-select, .cl-upload, textarea {
  width: 100%; min-height: 2.8rem; padding: .65rem .75rem;
  border: 1px solid var(--cl-border); border-bottom-width: 3px;
  border-radius: var(--cl-radius) var(--cl-radius) .15rem .15rem;
  color: var(--cl-text); background: var(--cl-surface-alt);
}
.cl-input:focus, .cl-select:focus, textarea:focus { border-bottom-color: var(--cl-primary); }
.cl-input-group, .cl-select-group, .cl-upload-group, .cl-range-group { margin-block: 1.25rem; }
.cl-input-group--error .cl-input, [aria-invalid="true"] { border-color: var(--cl-error); }
.cl-error-text, .cl-message--error { color: var(--cl-error); font-weight: 650; }
.cl-fieldset { min-width: 0; margin: 1.5rem 0; padding: 0; border: 0; }
.cl-fieldset__content { display: grid; gap: .75rem; }
.cl-checkbox-group, .cl-radio-group { position: relative; padding-left: 2rem; }
.cl-checkbox-group input, .cl-radio-group input { position: absolute; left: 0; top: .2rem; width: 1.2rem; height: 1.2rem; accent-color: var(--cl-primary); }

.cl-alert, .cl-callout { margin-block: 1.5rem; padding: 1rem 1.25rem; border-left: .35rem solid var(--cl-primary); border-radius: var(--cl-radius); background: var(--cl-surface-alt); }
.cl-alert--error, .cl-callout--red-brand { border-color: var(--cl-error); }
.cl-alert--success { border-color: var(--cl-success); }
.cl-alert--warning { border-color: var(--cl-warning); }
.cl-alert__title, .cl-callout__title { margin: 0 0 .35rem; font-weight: 800; }
.cl-badge { display: inline-block; padding: .15rem .5rem; border-radius: 999px; background: var(--cl-surface-alt); color: var(--cl-primary-dark); font-size: .82rem; font-weight: 750; }

.cl-table__container, .cl-table__wrapper { max-width: 100%; overflow-x: auto; }
.cl-table { width: 100%; border-collapse: collapse; }
.cl-table th, .cl-table td { padding: .75rem; border: 1px solid var(--cl-border); text-align: left; vertical-align: top; }
.cl-table th { background: var(--cl-surface-alt); font-weight: 750; }

.cl-stepper { margin-block: 1.5rem; }
.cl-stepper__title { margin-bottom: .5rem; font-weight: 750; }
.cl-stepper__steps { height: .55rem; border-radius: 999px; background: linear-gradient(90deg, var(--cl-primary) var(--progress, 0%), var(--cl-surface-alt) var(--progress, 0%)); }
.cl-stepper__details { color: var(--cl-muted); font-size: .9rem; }

.cl-modal { position: fixed; inset: 0; z-index: 1000; display: none; place-items: center; padding: 1rem; background: rgb(0 0 0 / 55%); }
.cl-modal[open], .cl-modal.cl-modal--opened, .cl-modal[aria-hidden="false"] { display: grid; }
.cl-modal__body { width: min(100%, 48rem); max-height: 90vh; overflow: auto; padding: 1.5rem; border-radius: var(--cl-radius); background: var(--cl-surface); box-shadow: var(--cl-shadow); }
.cl-collapse:not(.cl-collapse--expanded) { display: none; }

.cl-footer { margin-top: 3rem; padding-block: 2rem 1.25rem; border-top: .35rem solid; border-image: var(--cl-brand-gradient) 1; background: var(--cl-surface-alt); }
.cl-footer__body { display: flex; justify-content: space-between; gap: 2rem; }
.cl-footer__content { max-width: 48rem; }
.cl-footer__bottom { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--cl-border); }
.cl-footer__bottom-list, .cl-footer__content-list { display: flex; flex-wrap: wrap; gap: .6rem 1.25rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.cl-footer__bottom-link { padding: 0; border: 0; color: var(--cl-primary-dark); background: transparent; cursor: pointer; text-decoration: underline; }
.cl-footer__bottom-copy { color: var(--cl-muted); font-size: .85rem; }

.cl-mt-0 { margin-top: 0 !important; } .cl-mt-1w { margin-top: .5rem !important; } .cl-mt-2w { margin-top: 1rem !important; } .cl-mt-3w { margin-top: 1.5rem !important; } .cl-mt-4w { margin-top: 2rem !important; } .cl-mt-6w { margin-top: 3rem !important; }
.cl-mb-0 { margin-bottom: 0 !important; } .cl-mb-1w { margin-bottom: .5rem !important; } .cl-mb-2w { margin-bottom: 1rem !important; } .cl-mb-3w { margin-bottom: 1.5rem !important; } .cl-mb-4w { margin-bottom: 2rem !important; } .cl-mb-6w { margin-bottom: 3rem !important; }
.cl-my-2w { margin-block: 1rem !important; } .cl-my-4w { margin-block: 2rem !important; } .cl-my-6w { margin-block: 3rem !important; }
.cl-py-4w { padding-block: 2rem !important; } .cl-py-8w { padding-block: 4rem !important; }

@media (max-width: 48rem) {
  .cl-header__body-row, .cl-header__brand, .cl-footer__body { align-items: flex-start; flex-direction: column; }
  .cl-header__tools { display: none; }
  .cl-header__navbar { display: block; }
  [class*="cl-col-"] { flex-basis: 100%; }
  .cl-table--responsive thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .cl-table--responsive tr, .cl-table--responsive td { display: block; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
  .cl-header__tools, .cl-btn, .cl-footer nav { display: none !important; }
  body { color: #000; background: #fff; }
}
