/* Correctif accessibilite : accueil et carousel stables avec l'option Texte +. */
body.page-index.access-large-text .home-hero-title,
html.access-large-text body.page-index .home-hero-title {
  max-width: min(100%, 1320px) !important;
  padding-inline: clamp(8px, 2vw, 18px) !important;
  overflow-wrap: break-word !important;
}

body.page-index.access-large-text .home-hero-eyebrow,
html.access-large-text body.page-index .home-hero-eyebrow {
  font-size: .78rem !important;
  line-height: 1.1 !important;
  white-space: normal !important;
}

body.page-index.access-large-text .home-hero-title h1,
html.access-large-text body.page-index .home-hero-title h1 {
  max-width: min(100%, 1120px) !important;
  font-size: 3.55rem !important;
  line-height: 1.04 !important;
  letter-spacing: 0 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  hyphens: none !important;
  text-wrap: balance !important;
}

body.page-index.access-large-text .home-hero-subtitle,
html.access-large-text body.page-index .home-hero-subtitle {
  max-width: min(100%, 840px) !important;
  font-size: 1rem !important;
  line-height: 1.56 !important;
  overflow-wrap: break-word !important;
}

body.page-index .carousel-stage,
body.page-index.access-large-text .carousel-stage,
html.access-large-text body.page-index .carousel-stage {
  overflow: hidden !important;
}

body.page-index .carousel-caption,
body.page-index.access-large-text .carousel-caption,
html.access-large-text body.page-index .carousel-caption {
  width: min(100%, 42rem) !important;
  max-width: min(100%, 42rem) !important;
  min-width: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

body.page-index .carousel-caption .tag,
body.page-index.access-large-text .carousel-caption .tag,
html.access-large-text body.page-index .carousel-caption .tag {
  max-width: 100% !important;
  line-height: 1.12 !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
}

body.page-index .carousel-caption h3,
body.page-index.access-large-text .carousel-caption h3,
html.access-large-text body.page-index .carousel-caption h3 {
  max-width: 100% !important;
  margin: 0 0 .75rem !important;
  line-height: 1.08 !important;
  letter-spacing: 0 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  hyphens: none !important;
  text-wrap: balance !important;
}

body.page-index .carousel-caption h3 {
  font-size: 2.22rem !important;
}

body.page-index.access-large-text .carousel-caption h3,
html.access-large-text body.page-index .carousel-caption h3 {
  font-size: 2.02rem !important;
}

body.page-index .carousel-caption p,
body.page-index.access-large-text .carousel-caption p,
html.access-large-text body.page-index .carousel-caption p {
  max-width: min(100%, 36rem) !important;
  margin: 0 !important;
  line-height: 1.38 !important;
  overflow-wrap: break-word !important;
}

body.page-index.access-large-text .carousel-content,
html.access-large-text body.page-index .carousel-content {
  align-items: flex-start !important;
  justify-content: flex-start !important;
  min-height: 100% !important;
  padding: 2.25rem 2.5rem 7.25rem !important;
}

body.page-index.access-large-text .carousel-caption .tag,
html.access-large-text body.page-index .carousel-caption .tag {
  margin-bottom: .72rem !important;
  padding: .38rem .68rem !important;
  font-size: .84rem !important;
}

body.page-index.access-large-text .carousel-caption p,
html.access-large-text body.page-index .carousel-caption p {
  font-size: .98rem !important;
}

body.page-index.access-large-text .carousel-nav,
html.access-large-text body.page-index .carousel-nav {
  inset: auto 1.5rem 1.5rem auto !important;
  gap: .5rem !important;
  z-index: 6 !important;
}

body.page-index.access-large-text .carousel-nav button,
html.access-large-text body.page-index .carousel-nav button {
  width: 2.7rem !important;
  height: 2.7rem !important;
  min-width: 2.7rem !important;
  min-height: 2.7rem !important;
  font-size: 1.16rem !important;
  line-height: 1 !important;
}

@media (max-width: 1180px) {
  body.page-index .carousel-content,
  body.page-index.access-large-text .carousel-content,
  html.access-large-text body.page-index .carousel-content {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: 1.8rem 1.9rem 6.75rem !important;
  }

  body.page-index .carousel-caption,
  body.page-index.access-large-text .carousel-caption,
  html.access-large-text body.page-index .carousel-caption {
    max-width: min(100%, 40rem) !important;
  }

  body.page-index .carousel-caption h3 {
    font-size: 1.85rem !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3 {
    font-size: 1.66rem !important;
  }

  body.page-index .carousel-caption p {
    font-size: .92rem !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p {
    font-size: .92rem !important;
  }

  body.page-index .carousel-nav,
  body.page-index.access-large-text .carousel-nav,
  html.access-large-text body.page-index .carousel-nav {
    inset: auto 1.35rem 1.35rem auto !important;
    gap: .45rem !important;
    z-index: 6 !important;
  }

  body.page-index .carousel-nav button,
  body.page-index.access-large-text .carousel-nav button,
  html.access-large-text body.page-index .carousel-nav button {
    width: 2.55rem !important;
    height: 2.55rem !important;
    min-width: 2.55rem !important;
    min-height: 2.55rem !important;
    border-radius: 12px !important;
    font-size: 1.05rem !important;
  }
}

@media (max-width: 860px) {
  body.page-index.access-large-text .home-hero-title,
  html.access-large-text body.page-index .home-hero-title {
    padding-top: 1.5rem !important;
    padding-bottom: .85rem !important;
  }

  body.page-index.access-large-text .home-hero-title h1,
  html.access-large-text body.page-index .home-hero-title h1 {
    font-size: 2.06rem !important;
    line-height: 1.06 !important;
  }

  body.page-index.access-large-text .home-hero-subtitle,
  html.access-large-text body.page-index .home-hero-subtitle {
    margin-top: .75rem !important;
    font-size: .92rem !important;
    line-height: 1.45 !important;
  }

  body.page-index .carousel-stage {
    min-height: 25rem !important;
  }

  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: 26rem !important;
  }

  body.page-index .carousel-content,
  body.page-index.access-large-text .carousel-content,
  html.access-large-text body.page-index .carousel-content {
    padding: 1.35rem 1.35rem 6.25rem !important;
  }

  body.page-index .carousel-caption .tag {
    margin-bottom: .6rem !important;
    padding: .36rem .62rem !important;
    font-size: .76rem !important;
  }

  body.page-index.access-large-text .carousel-caption .tag,
  html.access-large-text body.page-index .carousel-caption .tag {
    font-size: .76rem !important;
  }

  body.page-index .carousel-caption h3 {
    margin-bottom: .66rem !important;
    font-size: 1.32rem !important;
    line-height: 1.08 !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3 {
    font-size: 1.22rem !important;
    line-height: 1.08 !important;
  }

  body.page-index .carousel-caption p {
    font-size: .82rem !important;
    line-height: 1.32 !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p {
    font-size: .83rem !important;
    line-height: 1.3 !important;
  }

  body.page-index .carousel-nav,
  body.page-index.access-large-text .carousel-nav,
  html.access-large-text body.page-index .carousel-nav {
    inset: auto 1rem 1rem auto !important;
  }

  body.page-index .carousel-nav button,
  body.page-index.access-large-text .carousel-nav button,
  html.access-large-text body.page-index .carousel-nav button {
    width: 2.35rem !important;
    height: 2.35rem !important;
    min-width: 2.35rem !important;
    min-height: 2.35rem !important;
    font-size: .98rem !important;
  }
}

@media (max-width: 420px) {
  body.page-index.access-large-text .home-hero-title h1,
  html.access-large-text body.page-index .home-hero-title h1 {
    font-size: 1.76rem !important;
  }

  body.page-index .carousel-stage {
    min-height: 25.5rem !important;
  }

  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: 26.5rem !important;
  }

  body.page-index .carousel-content,
  body.page-index.access-large-text .carousel-content,
  html.access-large-text body.page-index .carousel-content {
    padding: 1.15rem 1.1rem 5.85rem !important;
  }

  body.page-index .carousel-caption h3 {
    font-size: 1.14rem !important;
    line-height: 1.08 !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3 {
    font-size: 1.08rem !important;
    line-height: 1.08 !important;
  }

  body.page-index .carousel-caption p {
    font-size: .76rem !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p {
    font-size: .78rem !important;
  }
}

/* Correctif admin : alignement des champs et boutons de planification quotidienne. */
body.page-admin .daily-data-automation-form .daily-automation-controls {
  display: grid !important;
  grid-template-columns: minmax(220px, .9fr) minmax(260px, 1fr) minmax(260px, auto);
  gap: 1rem !important;
  align-items: start !important;
}

body.page-admin .daily-data-automation-form .daily-automation-field {
  display: grid;
  grid-template-rows: minmax(1.6rem, auto) auto 1fr;
  gap: .42rem;
  min-width: 0;
}

body.page-admin .daily-data-automation-form .form-label-like {
  min-height: 1.6rem;
  align-items: end;
  margin: 0 !important;
}

body.page-admin .daily-data-automation-form .form-file-input {
  min-height: 64px !important;
}

body.page-admin .daily-data-automation-form .daily-automation-actions {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  gap: .75rem;
  min-width: 0;
  padding-top: calc(1.6rem + .42rem);
}

body.page-admin .daily-data-automation-form .daily-automation-actions .admin-action-btn {
  min-height: 64px !important;
  margin: 0 !important;
  white-space: normal;
}

@media (max-width: 1180px) {
  body.page-admin .daily-data-automation-form .daily-automation-controls {
    grid-template-columns: minmax(220px, 1fr) minmax(260px, 1fr);
  }

  body.page-admin .daily-data-automation-form .daily-automation-actions {
    grid-column: 1 / -1;
    padding-top: 0;
  }
}

@media (max-width: 760px) {
  body.page-admin .daily-data-automation-form .daily-automation-controls {
    grid-template-columns: 1fr;
  }

  body.page-admin .daily-data-automation-form .daily-automation-field {
    grid-template-rows: auto auto auto;
  }

  body.page-admin .daily-data-automation-form .daily-automation-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.page-admin .daily-data-automation-form .daily-automation-actions .admin-action-btn {
    width: 100%;
  }
}

/* Correctif mobile : les cadres des mentions legales restent dans la largeur de l'ecran. */
@media (max-width: 760px) {
  body.page-mentions-legales {
    overflow-x: hidden;
  }

  body.page-mentions-legales .page-shell {
    width: calc(100% - 24px) !important;
    max-width: calc(100% - 24px) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  body.page-mentions-legales .panel-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.page-mentions-legales .hero,
  body.page-mentions-legales .panel,
  body.page-mentions-legales .summary-box,
  body.page-mentions-legales .placeholder,
  body.page-mentions-legales .clean-list {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  body.page-mentions-legales .panel-header,
  body.page-mentions-legales .panel-body {
    padding-right: clamp(14px, 4vw, 18px) !important;
    padding-left: clamp(14px, 4vw, 18px) !important;
  }

  body.page-mentions-legales .summary-box,
  body.page-mentions-legales .placeholder {
    padding: 14px !important;
  }

  body.page-mentions-legales .clean-list {
    padding-left: 1.05rem !important;
  }
}

@media (max-width: 379.98px) {
  body.page-mentions-legales .page-shell {
    width: calc(100% - 20px) !important;
    max-width: calc(100% - 20px) !important;
  }

  body.page-mentions-legales .hero,
  body.page-mentions-legales .panel-header,
  body.page-mentions-legales .panel-body {
    padding-right: 12px !important;
    padding-left: 12px !important;
  }
}

/* Correctif accueil : titres et textes du carousel sans coupure. */
body.page-index .home-hero-title,
body.page-index .carousel-head,
body.page-index .carousel-caption,
body.page-index.access-large-text .home-hero-title,
html.access-large-text body.page-index .home-hero-title,
body.page-index.access-large-text .carousel-caption,
html.access-large-text body.page-index .carousel-caption {
  height: auto !important;
  max-width: 100% !important;
  overflow: visible !important;
}

body.page-index .home-hero-title h1,
body.page-index .home-hero-subtitle,
body.page-index .carousel-head h2,
body.page-index .carousel-caption .tag,
body.page-index .carousel-caption h3,
body.page-index .carousel-caption p,
body.page-index.access-large-text .home-hero-title h1,
html.access-large-text body.page-index .home-hero-title h1,
body.page-index.access-large-text .home-hero-subtitle,
html.access-large-text body.page-index .home-hero-subtitle,
body.page-index.access-large-text .carousel-caption .tag,
html.access-large-text body.page-index .carousel-caption .tag,
body.page-index.access-large-text .carousel-caption h3,
html.access-large-text body.page-index .carousel-caption h3,
body.page-index.access-large-text .carousel-caption p,
html.access-large-text body.page-index .carousel-caption p {
  display: block !important;
  max-width: 100% !important;
  min-width: 0 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  -webkit-hyphens: none !important;
  -ms-hyphens: none !important;
  hyphens: none !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
}

body.page-index .home-hero-title h1,
body.page-index .carousel-head h2,
body.page-index .carousel-caption h3,
body.page-index.access-large-text .home-hero-title h1,
html.access-large-text body.page-index .home-hero-title h1,
body.page-index.access-large-text .carousel-caption h3,
html.access-large-text body.page-index .carousel-caption h3 {
  line-height: 1.1 !important;
  text-wrap: balance !important;
}

body.page-index .carousel-caption,
body.page-index.access-large-text .carousel-caption,
html.access-large-text body.page-index .carousel-caption {
  width: min(100%, 58rem) !important;
  max-width: min(100%, 58rem) !important;
}

body.page-index .carousel-caption p,
body.page-index.access-large-text .carousel-caption p,
html.access-large-text body.page-index .carousel-caption p {
  max-width: min(100%, 42rem) !important;
  line-height: 1.42 !important;
}

body.page-index .carousel-stage,
body.page-index.access-large-text .carousel-stage,
html.access-large-text body.page-index .carousel-stage {
  min-height: clamp(32rem, 45vw, 46rem) !important;
  max-height: none !important;
}

body.page-index .carousel-content,
body.page-index.access-large-text .carousel-content,
html.access-large-text body.page-index .carousel-content {
  min-height: 100% !important;
  height: 100% !important;
  padding-bottom: clamp(6.25rem, 8vw, 8rem) !important;
  overflow: visible !important;
}

@media (max-width: 1180px) {
  body.page-index .carousel-stage,
  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: clamp(30rem, 64vw, 42rem) !important;
  }
}

@media (max-width: 860px) {
  body.page-index .home-hero-title h1,
  body.page-index.access-large-text .home-hero-title h1,
  html.access-large-text body.page-index .home-hero-title h1 {
    line-height: 1.12 !important;
  }

  body.page-index .carousel-stage,
  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: clamp(29rem, 82vh, 40rem) !important;
    aspect-ratio: auto !important;
  }

  body.page-index .carousel-content,
  body.page-index.access-large-text .carousel-content,
  html.access-large-text body.page-index .carousel-content {
    padding-right: clamp(1rem, 4vw, 1.5rem) !important;
    padding-left: clamp(1rem, 4vw, 1.5rem) !important;
    padding-bottom: 6.75rem !important;
  }
}

@media (max-width: 420px) {
  body.page-index .carousel-stage,
  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: clamp(30rem, 86vh, 42rem) !important;
  }

  body.page-index .carousel-content,
  body.page-index.access-large-text .carousel-content,
  html.access-large-text body.page-index .carousel-content {
    padding-bottom: 6.5rem !important;
  }
}

/* Correctif accueil : taille carousel restauree et sous-titre Texte + en 3 lignes desktop. */
@media (min-width: 1181px) {
  body.page-index .carousel-stage,
  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: clamp(420px, 48vw, 700px) !important;
    max-height: none !important;
    aspect-ratio: auto !important;
  }

  body.page-index.access-large-text .home-hero-subtitle,
  html.access-large-text body.page-index .home-hero-subtitle,
  body:not(.access-high-contrast).page-index.access-large-text .home-hero-subtitle,
  html.access-large-text body:not(.access-high-contrast).page-index .home-hero-subtitle {
    width: min(100%, 68ch) !important;
    max-width: 68ch !important;
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
    line-height: 1.6 !important;
  }
}

@media (min-width: 861px) and (max-width: 1180px) {
  body.page-index .carousel-stage,
  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: clamp(420px, 62vw, 620px) !important;
    aspect-ratio: 16 / 10 !important;
  }
}

@media (max-width: 860px) {
  body.page-index .carousel-stage {
    min-height: 25rem !important;
    aspect-ratio: 4 / 5 !important;
  }

  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: 26rem !important;
    aspect-ratio: 4 / 5 !important;
  }
}

@media (max-width: 420px) {
  body.page-index .carousel-stage {
    min-height: 25.5rem !important;
  }

  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: 26.5rem !important;
  }
}
