body.aim17-public {
  --ap-sidebar-width: clamp(280px, 24vw, 365px);
  --ap-inset: clamp(16px, 2vw, 35px);
  --ap-gap: clamp(8px, .9vw, 14px);
  --ap-accent: #df2518;
  min-width: 0;
  background: #fff !important;
  color: #161616;
  font-family: Arial, "Segoe UI", sans-serif;
}
body.aim17-public > header.site-header.aim17-sidebar {
  position: relative;
  inset: auto;
  background: #fff;
  color: #161616;
  border: 0;
  border-bottom: 1px solid #ddd;
  box-shadow: none;
  z-index: 100;
}
.aim17-public .aim17-sidebar .header-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
  max-width: none;
  padding: 20px;
  margin: 0;
}
.aim17-public .aim17-sidebar .brand {
  display: flex;
  align-items: center;
  gap: 13px;
  color: #161616;
  text-decoration: none;
}
.aim17-public .aim17-sidebar .brand img {
  width: 55px;
  height: 55px;
  object-fit: contain;
  border-radius: 0;
  box-shadow: none;
}
.aim17-public .aim17-sidebar .brand .name { color: #161616; font-size: 16px; line-height: 1.2; font-weight: 800; }
.aim17-public .aim17-sidebar .brand .tag { color: #595959; font-size: 11px; margin-top: 7px; }
.aim17-public .aim17-intro { flex: 1 0 100%; }
.aim17-public .aim17-intro-title {
  margin: 0 0 15px;
  color: #141414;
  font-size: 25px;
  line-height: 1.08;
  letter-spacing: -.025em;
  text-transform: uppercase;
  font-weight: 800;
}
.aim17-public .aim17-intro-title::after {
  content: '';
  display: block;
  width: 50px;
  height: 5px;
  margin-top: 16px;
  background: var(--ap-accent);
}
.aim17-public .aim17-intro-text { color: #555; font-size: 12px; line-height: 1.65; }
.aim17-public .aim17-intro-text p { margin: 0; }
.aim17-public .aim17-sidebar .nav {
  position: static;
  display: none;
  flex: 1 0 100%;
  min-width: 0;
  width: 100%;
  padding: 0;
  margin: 0;
  background: #fff;
  color: #242424;
  border: 0;
  box-shadow: none;
}
.aim17-public .aim17-sidebar .nav.is-open { display: block; }
.aim17-public .aim17-sidebar .nav > ul { display: block; list-style: none; padding: 0; margin: 0; }
.aim17-public .aim17-sidebar .nav > ul > li { padding: 0; margin: 0; }
.aim17-public .aim17-sidebar :is(.nav > ul > li > a, .nav > .cta, .aim17-rubriques > summary) {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  margin: 0;
  border: 0;
  border-top: 1px solid #ddd;
  border-radius: 0;
  box-shadow: none;
  color: #242424;
  background: #fff;
  font: 400 14px/1.4 Arial, sans-serif;
  text-decoration: none;
}
.aim17-public .aim17-sidebar :is(.nav > ul > li > a, .aim17-rubriques > summary)::after {
  content: '›';
  color: var(--ap-accent);
  font-size: 20px;
}
.aim17-public .aim17-sidebar .aim17-rubriques[open] > summary::after { content: '⌄'; }
.aim17-public .aim17-sidebar .aim17-rubriques summary { cursor: pointer; list-style: none; }
.aim17-public .aim17-sidebar .aim17-rubriques summary::-webkit-details-marker { display: none; }
.aim17-public .aim17-sidebar .aim17-rubriques a {
  display: block;
  color: #444;
  padding: 7px 0 7px 10px;
  font-size: 13px;
  border-bottom: 1px solid #eee;
}
.aim17-public .aim17-sidebar .nav > .cta {
  margin-top: 12px;
  padding: 12px 14px;
  background: var(--ap-accent);
  color: #fff;
  font-weight: 700;
}
.aim17-public .aim17-sidebar .nav > .cta::after { content: '›'; }
.aim17-public .aim17-sidebar .nav-toggle {
  display: block;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid #ccc;
  border-radius: 0;
  background: #fff;
  color: #222;
}
.aim17-public .aim17-sidebar .nav a:hover:not(.cta),
.aim17-public .aim17-sidebar .nav a[aria-current="page"] { color: #a61c12; }
.aim17-public .aim17-sidebar #aim17-weather-header {
  position: relative !important;
  inset: auto !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 var(--ap-inset) 16px;
  transform: none !important;
  box-shadow: none;
}

.aim17-public .ap-main { padding: var(--ap-inset); }
.aim17-public .ap-guest-confirmation { margin: 0 0 12px; padding: 10px 14px; border-left: 3px solid var(--ap-accent); background: #f7f7f7; }
.aim17-public .ap-hero { display: grid; gap: var(--ap-gap); align-items: stretch; }
.aim17-public .ap-visual, .aim17-public .ap-classifieds, .aim17-public .ap-president {
  min-width: 0;
  border: 1px solid #ddd;
  border-top: 3px solid var(--ap-accent);
  background: #fff;
}
.aim17-public .ap-visual { width: min(100%, 540px); justify-self: center; align-self: center; }
.aim17-public .ap-banner-button {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: #fff;
  cursor: zoom-in;
}
.aim17-public .ap-banner-media { display: block; width: 100%; height: auto; aspect-ratio: 1672 / 941; object-fit: contain; }
.aim17-public .ap-enlarge {
  position: absolute;
  right: 10px;
  bottom: 10px;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  background: #fff;
  color: #222;
  box-shadow: 0 2px 10px #0003;
  font-size: 21px;
}
.aim17-public .ap-hero-dialog { width: max-content; max-width: 95vw; max-height: 95vh; padding: 10px; border: 1px solid #aaa; }
.aim17-public .ap-hero-dialog::backdrop { background: #0009; }
.aim17-public .ap-hero-dialog img { display: block; width: auto; max-width: calc(95vw - 22px); max-height: 82vh; object-fit: contain; }
.aim17-public .ap-hero-dialog form { text-align: right; margin: 0 0 8px; }
.aim17-public .ap-actions { display: grid; grid-template-columns: 1fr; min-width: 0; }
.aim17-public .ap-actions a, .aim17-public .ap-quick-grid a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-width: 0;
  min-height: 30px;
  padding: 5px 9px;
  border-bottom: 1px solid #ddd;
  color: #242424;
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
  text-decoration: none;
}
.aim17-public .ap-actions a { font-weight: 700; }
.aim17-public .ap-actions .ap-primary { background: var(--ap-accent); color: #fff; }
.aim17-public .ap-actions a:hover:not(.ap-primary), .aim17-public .ap-quick-grid a:hover { color: #a61c12; border-color: #a61c12; }
.aim17-public :is(.ap-actions, .ap-quick-grid) a span { flex: none; color: #a61c12; }
.aim17-public .ap-classifieds { display: grid; gap: 12px; align-items: center; padding: 12px; }
.aim17-public .ap-classifieds-heading h2, .aim17-public .ap-president h2 { margin: 0; color: #222; font-size: 17px; line-height: 1.2; text-transform: uppercase; }
.aim17-public .ap-classifieds-link, .aim17-public .ap-contact { display: inline-block; margin-top: 8px; color: #a61c12; font-size: 13px; font-weight: 700; text-decoration: underline; }
.aim17-public .ap-listings { display: grid; align-content: center; min-width: 0; padding: 8px 10px; background: #f7f7f7; }
.aim17-public .ap-listing-with-photo { display: grid; grid-template-columns: clamp(64px, 10vw, 180px) minmax(0, 1fr); align-items: center; gap: 12px; }
.aim17-public .ap-listing-photo { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.aim17-public .ap-listing h3, .aim17-public .ap-catalog-card h2 { margin: 4px 0; color: #222; font-size: 17px; line-height: 1.35; overflow-wrap: anywhere; }
.aim17-public .ap-listing p { margin: 0; color: #444; font-size: 13px; overflow-wrap: anywhere; }
.aim17-public .ap-listing-meta { display: flex; justify-content: space-between; gap: 6px 15px; margin: 0; color: #a61c12; font-size: 12px; font-weight: 700; }
.aim17-public .ap-listing-meta strong { color: #222; }
.aim17-public .ap-classifieds-controls { display: flex; align-items: center; gap: 6px; }
.aim17-public :is(.ap-listing,.ap-classifieds-controls)[hidden] { display: none; }
.aim17-public .ap-classifieds-controls button { min-height: 36px; min-width: 36px; padding: 3px 8px; border: 1px solid #bbb; background: #fff; color: #222; font: 700 15px Arial, sans-serif; cursor: pointer; }
.aim17-public .ap-classifieds-controls button:hover { border-color: #a61c12; color: #a61c12; }
.aim17-public .ap-classifieds-controls .ap-classifieds-play { font-size: 12px; }
.aim17-public .ap-classifieds-count { min-width: 34px; text-align: center; font-size: 12px; color: #555; }

.aim17-public .ap-president { padding: 9px 12px; }
.aim17-public .ap-president-content { display: flow-root; margin-top: 5px; color: #555; font-size: 13px; line-height: 1.35; }
.aim17-public .ap-portrait { float: left; width: clamp(45px, 4vw, 68px); height: auto; margin: 0 10px 4px 0; }
.aim17-public .ap-president-text p { margin: 0 0 3px; }
.aim17-public .ap-site-map { display: grid; gap: var(--ap-gap); min-width: 0; }
.aim17-public .ap-site-map h2 { margin: 0 0 4px; font-size: 15px; line-height: 1.25; text-transform: uppercase; }
.aim17-public .ap-site-map-copy { color: #555; font-size: 12px; }
.aim17-public .ap-quick-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--ap-gap); }
.aim17-public .ap-quick-grid a { padding-inline: 0; }
.aim17-public .ap-catalog { padding: var(--ap-inset); }
.aim17-public .ap-breadcrumb { color: #555; font-size: 13px; }
.aim17-public .ap-catalog a { color: #a61c12; }
.aim17-public :is(.ap-catalog-actions, .ap-catalog-categories) { display: flex; flex-wrap: wrap; gap: 8px; margin-block: 14px; }
.aim17-public .ap-catalog-actions a { padding: 6px 0; margin-right: 12px; font-weight: 700; }
.aim17-public .ap-catalog-categories a { padding: 8px 12px; border: 1px solid #ddd; text-decoration: none; }
.aim17-public .ap-catalog-categories a:hover { border-color: #a61c12; }
.aim17-public .ap-catalog-categories a[aria-current] { border-color: #a61c12; background: #a61c12; color: #fff; }
.aim17-public .ap-catalog-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 146px), 1fr)); align-items: end; gap: 10px; padding: 12px; background: #f7f7f7; }
.aim17-public .ap-catalog-filters label { min-width: 0; font-size: 13px; font-weight: 700; }
.aim17-public .ap-catalog-filters :is(input, select, button) { display: block; box-sizing: border-box; width: 100%; min-width: 0; min-height: 38px; margin-top: 4px; padding: 6px 9px; border: 1px solid #bbb; background: #fff; color: #222; font: inherit; }
.aim17-public .ap-catalog-filters button { background: #a61c12; border-color: #a61c12; color: #fff; font-weight: 700; cursor: pointer; }
.aim17-public .ap-catalog-cover { display: block; margin-bottom: 10px; background: #f7f7f7; }
.aim17-public .ap-catalog-cover img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.aim17-public .ap-catalog-gallery { margin-block: 10px; }
.aim17-public .ap-catalog-gallery summary { cursor: pointer; }
.aim17-public .ap-catalog-gallery div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.aim17-public .ap-catalog-gallery img { display: block; width: 68px; height: 56px; object-fit: contain; background: #f7f7f7; }
.aim17-public .ap-catalog-cover { cursor: zoom-in; }
.aim17-public .ap-catalog-dialog-photo { display: block; padding: 0; margin-top: 8px; border: 0; background: transparent; cursor: zoom-out; }
.aim17-public .ap-catalog-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 14px; margin-block: 18px; }
.aim17-public .ap-catalog-card { border: 1px solid #ddd; border-top: 3px solid var(--ap-accent); padding: 14px; }
.aim17-public .ap-catalog-description { white-space: pre-line; overflow-wrap: anywhere; color: #444; }
.aim17-public .ap-catalog-pagination { display: flex; gap: 18px; }
body.aim17-public::before { background: none !important; }
body.aim17-public > :is(.ticker, .footer) { background: #fff !important; box-shadow: none; }
body.aim17-public > .ticker { border-top: 2px solid var(--ap-accent); border-bottom: 1px solid #ddd; }
body.aim17-public > .ticker :is(.track, .item, .dot) { background: transparent !important; color: #444 !important; font-size: 11px; font-weight: 400; }
body.aim17-public > .footer { color: #555; }

@media (min-width: 901px) and (min-height: 480px), (min-width: 981px) {
  body.aim17-public > header.site-header.aim17-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: var(--ap-sidebar-width);
    height: 100dvh;
    overflow-y: auto;
    border: 0;
    border-right: 1px solid #e5e5e5;
  }
  .aim17-public .aim17-sidebar .header-inner {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: clamp(13px, 2.5dvh, 23px);
    padding: clamp(17px, 3dvh, 28px) 28px 18px;
  }
  .aim17-public .aim17-sidebar .brand { flex-direction: column; align-items: flex-start; gap: 12px; }
  .aim17-public .aim17-sidebar .brand img { width: clamp(60px, 10dvh, 82px); height: auto; aspect-ratio: 1; }
  .aim17-public .aim17-sidebar .nav { display: block; flex: initial; }
  .aim17-public .aim17-sidebar .nav-toggle { display: none; }
  body.aim17-public > :is(main, .ticker, .footer) {
    width: calc(100% - var(--ap-sidebar-width)) !important;
    max-width: none !important;
    margin-inline: var(--ap-sidebar-width) 0 !important;
  }
  .aim17-public .ap-hero {
    grid-template-columns: min(64.5%, clamp(336px, 64.5dvh, 540px)) minmax(0, 1fr);
    grid-template-areas: "image actions" "annonces annonces" "president president" "plan plan";
  }
  .aim17-public .ap-visual { grid-area: image; width: 100%; }
  .aim17-public .ap-actions { grid-area: actions; }
  .aim17-public .ap-classifieds {
    grid-area: annonces;
    grid-template-columns: minmax(148px, 24%) minmax(0, 1fr) auto;
    min-height: 249.6px;
  }
  .aim17-public .ap-listings { min-height: 198.4px; }
  .aim17-public .ap-president { grid-area: president; }
  .aim17-public .ap-site-map { grid-area: plan; grid-template-columns: minmax(134px, 21%) minmax(0, 1fr); }
  .aim17-public .ap-quick-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 900px), (max-width: 980px) and (height < 480px) {
  .aim17-public .aim17-sidebar .nav { order: 2; }
  .aim17-public .aim17-intro { order: 3; }
  .aim17-public .ap-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Charte de la vitrine : panneaux blancs, bordures neutres et accent rouge. */
body.aim17-public {
  --text: #161616;
  --muted: #555;
  --line: #ddd;
  --panel: #fff;
  --shadow: none;
  --ap-paper: #fff;
  --ap-soft: #f7f7f7;
  --ap-link: #a61c12;
  color-scheme: light;
}

body.aim17-public main .card,
body.aim17-public main :is(.tarifs-shell, .tarif-card) {
  background: var(--ap-paper);
  border-color: var(--line);
  box-shadow: none;
}

body.aim17-public main :is(.page-title, .card h2, .card h3, .card h4) { color: var(--text); }
body.aim17-public main :is(.page-sub, .card p) { color: var(--muted); }

body.aim17-public main .btn:not(.primary),
body.aim17-public main :is(.section-shortcut-btn, .btn-back, .section-docs-link, .tld-docs-link) {
  background: var(--ap-paper);
  border-color: var(--line);
  color: var(--ap-link);
  box-shadow: none;
}

body.aim17-public main :is(.btn.primary, .tarifs-tab.is-active, .section-shortcut-btn.is-active) {
  background: var(--ap-link);
  border-color: var(--ap-link);
  color: #fff;
  box-shadow: none;
}

body.aim17-public main :is(.btn:not(.primary), .section-shortcut-btn:not(.is-active), .btn-back, .section-docs-link, .tld-docs-link):hover {
  background: #fff3f2;
  border-color: var(--ap-link);
}

body.aim17-public main :is(
  .history-intro, .history-kpi, .history-step, .docs-category, .docs-subcard,
  .section-tile, .club-event-item, .useful-link-card, .trombi-panel, .trombi-card,
  .events-media-slider-stage, .events-media-video-shell, .public-cal-grid-wrap, .public-cal-plan-wrap
) {
  background: var(--ap-paper);
  border-color: var(--line);
  box-shadow: none;
}

body.aim17-public main :is(
  .history-step-year, .trombi-placeholder, .trombi-photo, .tarif-card__visual,
  .tarif-card__price, .aim17-license-current-total, .pi-stand-badge, .access-overview-icon,
  .events-media-video-empty
) {
  background: var(--ap-soft);
  border-color: var(--line);
  color: var(--text);
}

body.aim17-public main .aim17-license-submit {
  background: var(--ap-soft);
  border-color: var(--line);
  color: var(--text);
}

body.aim17-public main .aim17-license-submit :is(h2, h3, p, label, small) { color: var(--text); }

/* Sections et sous-pages historiquement conçues pour un fond sombre. */
body.aim17-public[data-page^="section-"] main :is(.section-head, .section-photo, .section-logo) {
  border-color: var(--line);
  box-shadow: none;
}

body.aim17-public[data-page^="section-"] main :is(
  .section-body, .section-body-readable, .section-body-readable :is(p, li),
  .section-docs-intro, .section-docs-category p, .section-docs-empty,
  .tld-docs-intro, .tld-docs-category p, .tld-docs-empty, .tld-media-caption
) { color: var(--muted); }

body.aim17-public[data-page^="section-"] main .section-contact-line :is(.label, span:first-child) {
  color: var(--muted) !important;
}

body.aim17-public[data-page^="section-"] main .section-contact-line a { color: var(--ap-link); border-color: var(--ap-link); }

body.aim17-public[data-page^="section-"] main :is(
  .tar-block, .tar-info-card, .section-docs-category, .section-docs-subcard,
  .tld-docs-category, .tld-docs-subcard, .tld-media-tile.is-empty
) {
  background: var(--ap-soft);
  border-color: var(--line);
  box-shadow: none;
}

body.aim17-public[data-page^="section-"] main .section-body::-webkit-scrollbar-thumb { background: #aaa; }
body.aim17-public[data-page^="section-"] main .section-body::-webkit-scrollbar-track { background: var(--ap-soft); }

body.aim17-public .formation-page :is(
  .formation-subcard, .formation-status-card, .formation-step-card,
  .formation-summary-card, .formation-parcours-intro
) {
  background: var(--ap-paper) !important;
  border-color: var(--line) !important;
  color: var(--text);
  box-shadow: none;
}

body.aim17-public .formation-page :is(
  .formation-page-head .breadcrumb, .formation-hero-copy, .formation-status-caption,
  .formation-status-card__body, .formation-parcours-intro li, .formation-step-card__meta span,
  .formation-info-body li, .formation-contact-details
) { color: var(--muted); }

body.aim17-public .formation-page :is(
  .formation-kicker, .formation-summary-card__eyebrow, .formation-step-card__phase, .formation-contact-list dt
) { color: var(--ap-link); }

body.aim17-public .formation-page :is(.formation-contact-list dd, .formation-step-card__index) { color: var(--text); }
body.aim17-public .formation-page .formation-module-badge { color: #1e40af; }
body.aim17-public .formation-page .formation-module-badge--vert { color: #166534; }

body.aim17-public .ap-listings {
  background: var(--ap-paper);
  border: 1px solid var(--line);
}

body.aim17-public .ap-listing-photo { background: var(--ap-soft); }
body.aim17-public .ap-listing .ap-listing-meta { color: var(--ap-link); }

body.aim17-public[data-page^="section-"] main :is(.tld-media-tile.is-empty, .tld-media-card.is-empty .tld-media-caption) {
  color: var(--muted);
}

body.aim17-public[data-page^="section-"] main .tld-media-play { background: rgba(22, 22, 22, .85); }

body.aim17-public main :is(.trombi-role, .events-section-kicker) { color: var(--ap-link); }

body.aim17-public main :is(.club-event-tag, .access-pill) {
  background: #fff3f2;
  color: var(--ap-link);
  box-shadow: none;
}

body.aim17-public main .pi-pick.is-active {
  background: var(--ap-link);
  border-color: var(--ap-link);
}

body.aim17-public main .pi-marker { background: #24558d; }
body.aim17-public main .pi-marker.is-multi { background: #16304f; }

/* Donner la place aux contenus de la vitrine. L'accueil garde son gabarit. */
body.aim17-public:not([data-page="index"]) main .page-head {
  padding-block: 12px 4px;
}

body.aim17-public[data-page="contacts"] > main.contacts-page ~ main.contacts-page {
  display: none;
}

body.aim17-public:not([data-page="index"]) .ap-catalog { padding-block: 14px 18px; }
body.aim17-public .ap-catalog > :is(h1, .ap-breadcrumb) { margin-block: 0 8px; }

body.aim17-public[data-page^="section-"] main .section-card {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  padding: clamp(12px, 1.25vw, 22px);
}

body.aim17-public[data-page^="section-"] main .section-body {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  scrollbar-gutter: auto;
  padding: 0;
  flex: 0 0 auto;
}

body.aim17-public[data-page^="section-"] main .section-body-readable {
  line-height: 1.55;
  overflow-wrap: anywhere;
}
body.aim17-public[data-page^="section-"] main .section-body-readable p {
  max-width: 120ch;
  margin-bottom: .7em;
}
body.aim17-public[data-page^="section-"] main .section-body-readable li { margin-bottom: .35em; }
body.aim17-public[data-page^="section-"] main .section-back { margin-bottom: 8px; }
body.aim17-public[data-page^="section-"] main .section-actions { padding-top: 10px; }
body.aim17-public[data-page^="section-"] main .section-head { gap: 10px; margin-bottom: 8px; padding-bottom: 8px; }
body.aim17-public[data-page^="section-"] main .section-contact-wrap { gap: 6px; }
body.aim17-public[data-page^="section-"] main .section-contact { gap: 0; }
body.aim17-public[data-page^="section-"] main .section-contact-line { margin-bottom: 3px !important; }
body.aim17-public[data-page^="section-"] main .section-shortcuts { gap: 6px; }
body.aim17-public[data-page^="section-"] main :is(.section-shortcut-btn, .btn-back) {
  min-height: 36px;
  padding: 6px 10px;
}
body.aim17-public[data-page^="section-"] main .section-photo {
  width: 68px;
  height: 68px;
}
body.aim17-public[data-page^="section-"] main .section-photo img {
  height: 100% !important;
  object-fit: contain;
}

@media (min-width: 901px) and (min-height: 480px), (min-width: 981px) {
  body.aim17-public:not([data-page="index"]) {
    --ap-sidebar-width: clamp(218px, 18vw, 296px);
    --ap-inset: clamp(14px, 1.35vw, 26px);
  }
  body.aim17-public:not([data-page="index"]) .aim17-sidebar .header-inner {
    gap: 14px;
    padding-inline: clamp(14px, 1.45vw, 23px);
  }
  body.aim17-public:not([data-page="index"]) .aim17-sidebar .brand img { width: clamp(54px, 8dvh, 72px); }
  body.aim17-public:not([data-page="index"]) .aim17-sidebar :is(.nav > ul > li > a, .aim17-rubriques > summary) {
    padding-block: 7px;
  }
  body.aim17-public:not([data-page="index"]) .aim17-intro-title { font-size: clamp(19px, 1.55vw, 25px); }

  body.aim17-public[data-page^="section-"] main .section-card:has(> .section-back + .section-head) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-content: start;
  }
  body.aim17-public[data-page^="section-"] main .section-card:has(> .section-back + .section-head) > .section-back {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    margin: 0 0 0 10px;
  }
  body.aim17-public[data-page^="section-"] main .section-card:has(> .section-back + .section-head) > .section-head {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    margin-bottom: 0;
    border-bottom: 0;
  }
  body.aim17-public[data-page^="section-"] main .section-card:has(> .section-back + .section-head) > :not(.section-back, .section-head) {
    grid-column: 1 / -1;
  }
  body.aim17-public[data-page^="section-"] main .section-card:has(> .section-back + .section-head) > .section-body {
    padding-top: 10px;
    border-top: 1px solid var(--line);
  }

  body.aim17-public[data-page^="section-"] main .section-contact-wrap {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 18px;
  }
}

/* Le bandeau et le pied de page restent fixes quand la hauteur le permet. */
@media (min-height: 480px) {
  body.aim17-public {
    display: flex !important;
    flex-direction: column;
    height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body.aim17-public[data-page] > main {
    flex: 1 1 0 !important;
    min-height: 0 !important;
    overflow: auto !important;
    overscroll-behavior-y: contain;
  }

  body.aim17-public > :is(.ticker, .footer) {
    flex: 0 0 auto;
    margin-block: 0;
  }

  body.aim17-public > main > :is(.page-head, h1),
  body.aim17-public > main .trombi-shell > h1,
  body.aim17-public > main.pi-main .pi-toolbar {
    position: sticky;
    top: 0;
    z-index: 5;
    background: #fff;
  }

  body.aim17-public > main:has(> :is(.page-head, h1)) {
    scroll-padding-top: 6rem;
  }

  body.aim17-public[data-page^="section-"] > main.section-page {
    overflow: hidden !important;
  }

  body.aim17-public[data-page^="section-"] main.section-page > .container,
  body.aim17-public[data-page^="section-"] main.section-page .section-card {
    height: 100% !important;
  }

  body.aim17-public[data-page^="section-"] main .section-card:has(> :is(.section-body, .formation-scroll)) {
    grid-template-rows: auto minmax(0, 1fr) auto;
  }

  body.aim17-public[data-page^="section-"] main .section-card > :is(.section-body, .formation-scroll) {
    grid-area: 2 / 1 / 3 / -1;
    min-height: 0;
    overflow: auto !important;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
  }

  body.aim17-public[data-page^="section-"] main .section-card > .section-actions {
    grid-area: 3 / 1 / 4 / -1;
  }

  body.aim17-public .formation-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }

  body.aim17-public .formation-shell > .section-back {
    grid-area: 1 / 2;
    align-self: start;
  }

  body.aim17-public .formation-shell > .formation-page-head { grid-area: 1 / 1; }
}

.aim17-public .formation-scroll {
  display: grid;
  gap: 22px;
  align-content: start;
}


.aim17-public .ap-mobile-intro { display: none; }

@media (max-width: 900px), (max-width: 980px) and (height < 480px) {
  body.aim17-public { --ap-inset: clamp(10px, 3vw, 24px); }

  body.aim17-public > header.aim17-sidebar .header-inner {
    display: flex !important;
    flex-wrap: nowrap;
    gap: 8px;
    padding: 6px var(--ap-inset);
  }

  .aim17-public .aim17-sidebar .aim17-intro,
  .aim17-public .aim17-sidebar .brand .tag { display: none; }

  .aim17-public .aim17-sidebar .brand {
    min-width: 0;
    gap: 8px;
  }

  .aim17-public .aim17-sidebar .brand img {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
  }

  .aim17-public .aim17-sidebar .brand .name {
    font-size: clamp(13px, 3.5vw, 16px);
    overflow-wrap: anywhere;
  }

  .aim17-public .aim17-sidebar .nav-toggle {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 6px 12px;
  }

  .aim17-public .aim17-sidebar .nav {
    position: absolute;
    top: 100%;
    inset-inline: 0;
    width: auto;
    max-height: min(70dvh, calc(100dvh - 68px));
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0 var(--ap-inset) 10px;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 6px 12px rgb(0 0 0 / .12);
  }

  .aim17-public .aim17-sidebar .nav a,
  .aim17-public .aim17-sidebar .aim17-rubriques summary {
    min-height: 44px;
    align-content: center;
  }

  .aim17-public .ap-mobile-intro {
    display: block;
    margin-bottom: 12px;
  }

  .aim17-public .ap-mobile-intro h1 {
    margin: 0 0 4px;
    font-size: clamp(18px, 4.5vw, 24px);
    line-height: 1.15;
  }

  .aim17-public .ap-mobile-intro p { margin: 0; font-size: 14px; line-height: 1.45; }
  .aim17-public .ap-actions a { min-height: 44px; }
  .aim17-public .ap-listing-with-photo { grid-template-columns: clamp(68px, 22vw, 130px) minmax(0, 1fr); }
  .aim17-public .ap-classifieds-controls { flex-wrap: wrap; }
  .aim17-public .ap-classifieds-controls button { min-width: 44px; min-height: 44px; }
  .aim17-public .ap-catalog-categories a { display: flex; align-items: center; min-height: 44px; }
  .aim17-public .ap-catalog-filters :is(input, select, button) { min-height: 44px; font-size: 16px; }

  body.aim17-public > .footer {
    padding-block: 6px;
    padding-bottom: max(6px, env(safe-area-inset-bottom));
    font-size: 12px;
    line-height: 1.35;
  }

  body.aim17-public[data-page^="section-"] main .section-person {
    flex-direction: row;
    min-width: 0;
    align-items: flex-start;
  }

  body.aim17-public[data-page^="section-"] main :is(.section-contact-wrap, .section-contact) {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  body.aim17-public[data-page^="section-"] main .section-contact-line {
    display: flex !important;
    flex-wrap: wrap;
    gap: 2px 8px !important;
    margin-bottom: 2px !important;
    font-size: 14px;
  }

  body.aim17-public[data-page^="section-"] main .section-contact-line :is(.label, span:first-child) {
    min-width: 0 !important;
    white-space: normal !important;
  }

  body.aim17-public[data-page^="section-"] main .section-photo {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
  }

  body.aim17-public[data-page^="section-"] main :is(.section-shortcut-btn, .btn-back, .section-actions .btn) {
    min-height: 44px;
    align-content: center;
    font-size: 14px;
  }
}

@media (max-width: 900px) and (min-height: 480px) {
  body.aim17-public > header.aim17-sidebar { flex: 0 0 auto !important; }

  body.aim17-public[data-page^="section-"] main .section-card:has(> :is(.section-body, .formation-scroll)) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    padding: 8px;
  }

  body.aim17-public[data-page^="section-"] main .section-card > .section-back { grid-area: 1 / 1; }

  body.aim17-public[data-page^="section-"] main .section-card > :is(.section-head, .formation-page-head) {
    grid-area: 2 / 1;
    max-height: 32dvh;
    overflow-y: auto;
  }

  body.aim17-public[data-page^="section-"] main .section-card > :is(.section-body, .formation-scroll) {
    grid-area: 3 / 1;
    padding-inline-end: 4px;
    scrollbar-gutter: auto;
  }

  body.aim17-public[data-page^="section-"] main .section-card > .section-actions {
    grid-area: 4 / 1;
    padding-top: 6px;
  }

  body.aim17-public[data-page^="section-"] main .section-card:has(> .section-actions a[href="sections.php"])
    > .section-back:has(> a[href="sections.php"]) { display: none; }
}


@media (max-width: 900px), (max-width: 980px) and (height < 480px) {
  .aim17-public main :is(.docs-library, .tld-docs-library, .section-docs-wrap) {
    grid-template-columns: minmax(0, 1fr);
  }

  .aim17-public main :is(.docs-subgrid, .tld-docs-subgrid, .section-docs-subgrid) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  }

  .aim17-public main :is(.docs-category, .tld-docs-category, .section-docs-category,
    .docs-subcard, .tld-docs-subcard, .section-docs-subcard) {
    min-width: 0;
    padding: clamp(10px, 3vw, 18px);
    overflow-wrap: anywhere;
  }
}

@media (max-width: 600px) {
  body.aim17-public[data-page^="section-"] main .section-person:has(> .section-contact-wrap) {
    display: grid;
    width: 100%;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 6px 8px;
  }

  body.aim17-public[data-page^="section-"] main .section-person > .section-contact-wrap { display: contents; }
  body.aim17-public[data-page^="section-"] main .section-contact-wrap > .section-contact { grid-column: 2; }
  body.aim17-public[data-page^="section-"] main .section-contact-wrap > .section-shortcuts { grid-column: 1 / -1; }
}
