/* Charte publique commune. Les marqueurs explicites évitent de toucher
   l'administration, les cartes interactives et les cartes de contenu. */
.nzk-public {
  --site-ink: #111111;
  --site-blue: #e3eff8;
  --site-sage: #e6eee4;
  --site-sand: #f5eddf;
  --site-line: #d5ddd9;
  --site-action: #215b89;
  --site-action-hover: #174466;
  --site-radius: 4px;
}
.nzk-public:not(.nzk-accueil) #main-content { font-family: var(--nz-texte); color: var(--site-ink); }
.nzk-public:not(.nzk-accueil) #main-content :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--nz-texte) !important;
  font-weight: 700 !important;
  letter-spacing: -.015em;
  overflow-wrap: anywhere;
  hyphens: none;
}
.nzk-public:not(.nzk-accueil) #main-content h1 {
  font-size: clamp(26px, 3.2vw, 40px) !important;
  line-height: 1.2 !important;
}
.nzk-public:not(.nzk-accueil) #main-content h2 {
  font-size: clamp(21px, 2.3vw, 28px) !important;
  line-height: 1.3 !important;
}
.nzk-public:not(.nzk-accueil) #main-content h3 {
  font-size: clamp(17px, 1.8vw, 21px) !important;
  line-height: 1.4 !important;
}

/* Les bandeaux de lecture ont trois teintes fixes selon leur rubrique. */
.nzk-public #main-content .nzk-banner { --banner-surface: var(--site-blue); }
.nzk-public #main-content .nzk-banner--sage { --banner-surface: var(--site-sage); }
.nzk-public #main-content .nzk-banner--sand { --banner-surface: var(--site-sand); }
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo) {
  background: var(--banner-surface) !important;
  color: var(--site-ink) !important;
  padding: clamp(22px, 3vw, 36px) !important;
  margin-block: 0 24px !important;
  min-height: 0 !important;
  height: auto !important;
  border: 1px solid var(--site-line) !important;
  border-top: 3px solid var(--site-action) !important;
  border-radius: var(--site-radius) !important;
  box-shadow: none !important;
  text-align: left;
}
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo)::before,
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo)::after { display: none !important; }
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo) :is(h1,h2,h3,p,span,strong,small,div,nav,ol,li,time,label) {
  color: var(--site-ink) !important;
  opacity: 1;
  text-shadow: none;
}
.nzk-public #main-content .nzk-banner h1 { margin: 0 0 12px !important; max-width: 36ch; }
.nzk-public #main-content .nzk-banner h1:last-child { margin-bottom: 0 !important; }
.nzk-public #main-content .nzk-banner h1 span { color: inherit !important; }
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo) p {
  font-size: 15px; line-height: 1.7; max-width: 76ch;
}
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo) p:last-child { margin-bottom: 0; }
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo) a {
  color: var(--site-action-hover) !important;
  text-underline-offset: 3px;
}
/* Les contrôles qui se trouvent dans un bandeau restent sur fond clair. */
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo) :is(a[class*="btn"],a[class*="button"],a[class*="cta"],.nzk-b-vert,.nzk-b-or,.nzk-b-noir,button) {
  background: #fff !important; color: var(--site-action-hover) !important;
  border: 1px solid var(--site-action) !important; border-radius: var(--site-radius) !important;
  min-height: 44px;
}
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo) :is([class*="__badge"],[class*="__chip"],[class*="__kicker"],[class*="__stat"],[class*="__kpi"],[class*="__date-box"]) {
  background: #ffffff80; border-color: #11111126;
}
/* Décors historiques séparés du texte : ne pas recouvrir le fond pastel. */
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo) :is(.edu-hero__bg,.inv-hero__bg,[class*="hero__orb"],[class*="hero-orb"],.map-hero__orb) {
  display: none !important;
}
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo) > :is(.container,.edu-hero__content,.inv-hero__content) {
  background: transparent; border: 0; box-shadow: none;
  padding: 0; margin-block: 0;
}
/* Les photos gardent leur cadrage, leur voile et leurs commandes. */
.nzk-public #main-content .nzk-banner--photo h1,
.nzk-public #main-content .nzk-banner--photo h1 span { color: #fff !important; text-shadow: 0 1px 3px #0008; }
.nzk-public #main-content .nzk-page-heading { width: 100%; box-sizing: border-box; }

/* Articles et textes institutionnels : une mesure et un rythme de lecture. */
.nzk-public #main-content .nzk-reading {
  font-size: 16px; line-height: 1.75; color: var(--site-ink);
  overflow-wrap: anywhere;
}
.nzk-public #main-content .nzk-reading :is(p,li,dd,blockquote) {
  font-size: 16px !important; line-height: 1.75 !important;
  color: var(--site-ink) !important;
}
.nzk-public #main-content .nzk-reading :is(p,ul,ol,blockquote) { margin-block: 0 16px; }
.nzk-public #main-content .nzk-reading > :is(p,ul,ol,blockquote) { max-width: 78ch; }
.nzk-public #main-content .nzk-reading :is(h2,h3,h4) { color: var(--site-ink) !important; margin-block: 28px 12px !important; }
.nzk-public #main-content .nzk-reading > :first-child { margin-top: 0 !important; }
.nzk-public #main-content .nzk-reading > :last-child { margin-bottom: 0; }
.nzk-public #main-content .nzk-reading :is(img,video,iframe) { max-width: 100%; }
.nzk-public #main-content .nzk-reading a { color: var(--site-action-hover) !important; text-decoration: underline; text-underline-offset: 3px; }
.nzk-public #main-content .nzk-reading :is(table,pre) { display: block; max-width: 100%; overflow-x: auto; }
.nzk-public #main-content :is(.news-show__layout,.page-show__layout,.service-show__layout,.demarche-show__layout,.contact-layout) {
  gap: clamp(20px, 2.5vw, 32px); align-items: start;
}
.nzk-public #main-content :is(.news-show__panel,.page-show__panel,.service-show__panel,.contact-panel,.school-panel) {
  border-radius: var(--site-radius); box-shadow: none;
}
.nzk-public:not(.nzk-accueil) #main-content :is(.nzk-b-vert,.btn-primary,.button-primary) {
  background: var(--site-action); border-color: var(--site-action); color: #fff;
  border-radius: var(--site-radius); min-height: 44px;
}
.nzk-public:not(.nzk-accueil) #main-content :is(.nzk-b-vert,.btn-primary,.button-primary):hover { background: var(--site-action-hover); }
.nzk-public #main-content :is(input,select,textarea) { max-width: 100%; box-sizing: border-box; }
.nzk-public #main-content :is(input,select,textarea,a,button,summary):focus-visible {
  outline: 3px solid var(--site-action); outline-offset: 3px;
}
@media (max-width: 620px) {
  .nzk-public #main-content .nzk-banner:not(.nzk-banner--photo) { padding: 20px !important; margin-bottom: 20px !important; }
  .nzk-public #main-content .nzk-banner h1 { max-width: none; }
  .nzk-public #main-content .nzk-reading :is(p,li,dd,blockquote) { font-size: 15px !important; }
}
/* Dates et indicateurs inclus dans les bandeaux clairs. */
.nzk-public #main-content .nzk-banner:not(.nzk-banner--photo) :is(.ag-next__date,.edu-kpi,.inv-kpi) {
  background: #ffffff80; color: var(--site-ink); border-color: #11111126;
}
.nzk-public #main-content .nzk-banner h1 { text-transform: none; letter-spacing: -.015em; }
.nzk-public #main-content :is(.nzk-banner--photo,.news-show__hero) { border-radius: var(--site-radius); }
@media (max-width: 620px) {
  .nzk-public #main-content .nzk-banner .sr-form { flex-wrap: wrap; }
  .nzk-public #main-content .nzk-banner .sr-autocomplete { flex: 1 1 100%; min-width: 0; }
  .nzk-public #main-content .nzk-banner .sr-btn { width: 100%; }
  .nzk-public #main-content .nzk-banner :is(.edu-hero__kpis,.inv-hero__kpis) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

.nzk-public #main-content .nzk-banner .nzk-banner-chip { background: #ffffffb3 !important; color: var(--site-ink) !important; }
