/* Commandes d'un carrousel (atgf-carousel-nav.js) : indicateur, flèches, pause. Tout se règle par variables posées sur
   la couche `.acn` ; `--acn-k` réduit les tailles sur petit écran (jamais une cible sous 24 px). */
.acn { position: absolute; z-index: 3; pointer-events: none; --acn-k: 1; } /* posée après la boîte, calée sur la zone des images */
.acn[hidden] { display: none; }
.acn.is-small { --acn-k: .78; }
.acn-group { position: absolute; display: flex; align-items: center; gap: calc(var(--acn-agap, 8px) * var(--acn-k)); }
.acn-group.is-col { flex-direction: column; }
.acn-group > * { pointer-events: auto; }
.acn-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------------- indicateur ---------------- */
.acn-pager { position: relative; display: flex; align-items: center; gap: calc(var(--acn-gap, 8px) * var(--acn-k)); }
.acn-pager.is-v { flex-direction: column; }
.acn-pager.has-chip { padding: calc(6px * var(--acn-k)) calc(10px * var(--acn-k)); border-radius: 999px; background: var(--acn-trk); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.acn-pager.is-win { overflow: hidden; padding-block: 8px; width: var(--acn-win); }
.acn-pager.is-win.is-v { padding-block: 0; padding-inline: 8px; width: auto; height: var(--acn-win); }
.acn-strip { position: relative; display: flex; align-items: center; gap: inherit; transition: transform .35s ease; }
.acn-pager.is-v .acn-strip { flex-direction: column; }
.acn-dot { --w: var(--acn-w, var(--acn-size, 10px)); --h: var(--acn-h, var(--acn-size, 10px)); position: relative; flex: none; width: calc(var(--w) * var(--acn-k)); height: calc(var(--h) * var(--acn-k)); margin: 0; padding: 0; border: 0; border-radius: var(--acn-rad, 999px); background: var(--acn-off); cursor: pointer; overflow: visible; transition: background-color .3s, width .35s ease, height .35s ease, transform .3s ease, box-shadow .3s, opacity .3s; }
.acn-sh-bar .acn-dot { --w: var(--acn-w, calc(var(--acn-size, 10px) * 2.4)); --h: var(--acn-h, calc(var(--acn-size, 10px) * .55)); }
.acn-sh-stick .acn-dot { --w: var(--acn-w, calc(var(--acn-size, 10px) * .9)); --h: var(--acn-h, calc(var(--acn-size, 10px) * 2)); }
.acn-dot::before { content: ""; position: absolute; inset: -7px; } /* cible de 24 px au moins */
.acn-dot.is-outline { background: transparent; box-shadow: inset 0 0 0 1.5px var(--acn-off); }
.acn-dot[aria-current="true"] { background: var(--acn-on); box-shadow: none; }
.acn-act-scale .acn-dot[aria-current="true"] { transform: scale(1.45); }
.acn-act-ring .acn-dot[aria-current="true"] { box-shadow: 0 0 0 calc(2px * var(--acn-k)) var(--acn-ring-bg, #fff), 0 0 0 calc(3.5px * var(--acn-k)) var(--acn-on); }
.acn-act-pill .acn-dot[aria-current="true"] { width: calc(var(--w) * var(--acn-x, 3) * var(--acn-k)); }
.acn-act-pill .acn-pager.is-v .acn-dot[aria-current="true"] { width: calc(var(--w) * var(--acn-k)); height: calc(var(--h) * var(--acn-x, 3) * var(--acn-k)); }
.acn-mover .acn-dot[aria-current="true"] { background: var(--acn-off); }
.acn-mover .acn-dot.is-outline[aria-current="true"] { background: transparent; box-shadow: inset 0 0 0 1.5px var(--acn-off); }
.acn .acn-mv { position: absolute; top: 0; left: 0; border-radius: var(--acn-rad, 999px); background: var(--acn-on); pointer-events: none; }
.acn-num { display: grid; place-items: center; width: auto; height: auto; min-width: calc(1.4em * var(--acn-k)); background: none !important; box-shadow: none !important; color: var(--acn-off); font: 700 calc(13px * var(--acn-k))/1 inherit; }
.acn-num[aria-current="true"] { color: var(--acn-on); }
.acn-act-pill .acn-num[aria-current="true"]::after { content: ""; display: block; height: calc(4px * var(--acn-k)); width: calc(26px * var(--acn-k)); margin-left: calc(8px * var(--acn-k)); border-radius: 99px; background: var(--acn-on); }
.acn-act-pill .acn-num[aria-current="true"] { display: inline-flex; align-items: center; width: auto; }
.acn-rail { position: absolute; inset: calc(-4px * var(--acn-k)); border-radius: 999px; background: var(--acn-trk); box-shadow: inset 0 0 0 1px rgba(29, 35, 39, .08); }
.acn-frac { padding: calc(4px * var(--acn-k)) calc(10px * var(--acn-k)); border-radius: 999px; background: rgba(255, 255, 255, .9); color: var(--acn-on); font: 700 calc(12px * var(--acn-k))/1 inherit; font-variant-numeric: tabular-nums; }
.acn-frac i { margin: 0 .35em; font-style: normal; font-weight: 400; opacity: .6; }
.acn-ed { display: flex; align-items: center; gap: .6em; color: var(--acn-on); font: 700 calc(14px * var(--acn-k))/1 inherit; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.acn-ed span { width: calc(36px * var(--acn-k)); height: 1px; background: currentColor; opacity: .5; }
.acn-ed small { font-size: .75em; opacity: .6; }
.acn-prog { width: calc(120px * var(--acn-k)); height: calc(4px * var(--acn-k)); border-radius: 99px; background: var(--acn-off); overflow: hidden; }
.acn-prog b { display: block; height: 100%; background: var(--acn-on); transform: scaleX(0); transform-origin: left; transition: transform .45s ease; }
.acn-seg { position: relative; flex: none; width: calc(28px * var(--acn-k)); height: calc(4px * var(--acn-k)); margin: 0; padding: 0; border: 0; border-radius: var(--acn-rad, 999px); background: var(--acn-off); overflow: hidden; cursor: pointer; }
.acn-seg::before { content: ""; position: absolute; inset: -10px 0; }
.acn-seg.is-done .acn-fill, .acn-seg[aria-current="true"] .acn-fill { transform: scaleX(1); }
.acn-fill { position: absolute; inset: 0; display: block; border-radius: inherit; background: var(--acn-on); transform: scaleX(0); transform-origin: left; }
.acn-dot .acn-fill { background: rgba(255, 255, 255, .55); }
.acn.is-timing .acn-seg[aria-current="true"] .acn-fill:not(.is-run) { transform: scaleX(0); }
.acn-fill.is-run { animation: acn-fill var(--acn-t, 3s) linear forwards; }
@keyframes acn-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.acn-liquid { display: block; height: calc(var(--acn-size, 10px) * 3 * var(--acn-k)); width: auto; margin-block: calc(var(--acn-size, 10px) * -1 * var(--acn-k)); overflow: visible; }
.acn-liquid circle { transition: none; }
.acn-lq-a { transition: cx .55s cubic-bezier(.6, 0, .3, 1) !important; }
.acn-lq-b { transition: cx .6s cubic-bezier(.3, 0, .2, 1) .16s !important; }
.acn-liquid rect { cursor: pointer; }

/* pleine longueur : tout le côté ; barres, bâtons, segments s'étirent, points répartis */
.acn-pager.is-full { align-self: stretch; }
.acn-pager.is-full .acn-strip { flex: 1 1 auto; justify-content: space-between; }
.acn-pager.is-full.is-v .acn-strip { height: 100%; }
.acn-pager.is-full.grow .acn-dot, .acn-pager.is-full .acn-seg { flex: 1 1 0; }
.acn-pager.is-full.grow:not(.is-v) .acn-dot, .acn-pager.is-full:not(.is-v) .acn-seg { width: auto; }
.acn-pager.is-full.grow.is-v .acn-dot { height: auto; }
.acn-pager.is-full .acn-prog, .acn-pager.is-full .acn-ed { flex: 1 1 auto; width: auto; }
.acn-pager.is-full .acn-ed span { flex: 1 1 auto; }
.acn-gp > .acn-pager.is-full { flex: 1 1 auto; }

/* ---------------- flèches et pause ---------------- */
.acn-btn { position: relative; flex: none; display: grid; place-items: center; width: calc(var(--acn-asize, 2.5rem) * var(--acn-k)); height: calc(var(--acn-asize, 2.5rem) * var(--acn-k)); min-width: 24px; min-height: 24px; margin: 0; padding: 0; border: 0; border-radius: var(--acn-arad, 999px); background: var(--acn-abg); color: var(--acn-afg); box-shadow: 0 1px 4px rgba(0, 0, 0, .18); cursor: pointer; line-height: 1; transition: opacity .2s, transform .15s; }
.acn-btn:hover { transform: scale(1.06); }
.acn-btn > svg:not(.acn-ring), .acn-btn > i, .acn-btn > img, .acn-btn > span { width: var(--acn-ais, 46%); height: var(--acn-ais, 46%); font-size: calc(var(--acn-asize, 2.5rem) * var(--acn-k) * .46); }
.acn-btn.is-flip > :not(.acn-ring) { transform: scaleX(-1); }
.acn-y .acn-prev > :not(.acn-ring) { transform: rotate(90deg); }
.acn-y .acn-next > :not(.acn-ring) { transform: rotate(-90deg); }
.acn-btn:disabled { opacity: .35; cursor: default; transform: none; }
.acn-ends-hide .acn-btn:disabled { opacity: 0; pointer-events: none; }
.acn-skin-outline .acn-btn:not(.acn-own) { background: transparent; box-shadow: inset 0 0 0 2px var(--acn-afg); }
.acn-skin-ghost .acn-btn:not(.acn-own) { background: transparent; box-shadow: none; }
.acn-veil .acn-btn:not(.acn-own), .acn-btn.acn-own-veil { background: rgba(255, 255, 255, .35); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5); }
.acn-flat .acn-btn:not(.acn-own), .acn-btn.acn-own-flat { box-shadow: none; }
.acn-btn.acn-own { box-shadow: 0 1px 4px rgba(0, 0, 0, .18); }
.acn-btn.acn-look-outline { background: transparent; box-shadow: inset 0 0 0 2px var(--acn-afg); }
.acn-btn.acn-look-ghost { background: transparent; box-shadow: none; }
.acn-btn.is-discreet { opacity: 0; }
.acn.is-hover .acn-btn.is-discreet, .acn-btn.is-discreet:focus-visible, .acn-btn.is-discreet[aria-pressed="true"] { opacity: 1; }
.acn.is-narrow .acn-hide-m { display: none; }
.acn-ring { position: absolute; inset: -4px; width: calc(100% + 8px); height: calc(100% + 8px); transform: rotate(-90deg); pointer-events: none; }
.acn-ring circle { fill: none; stroke: var(--acn-on); stroke-width: 2.5; stroke-dasharray: 100; stroke-dashoffset: 100; }
.acn-ring.is-run circle { animation: acn-ring var(--acn-t, 3s) linear forwards; }
@keyframes acn-ring { to { stroke-dashoffset: 0; } }

@media (prefers-reduced-motion: reduce) {
    .acn *, .acn-strip { transition-duration: .01ms !important; animation: none !important; }
}
