/* mod_accordionmenu – tutte le variabili sono impostate dal pannello del modulo */

.am-accordion {
  --am-iw: calc(var(--am-fs, 16px) * 2.5); /* larghezza box icona */
  font-family: var(--am-font, inherit);
  background: var(--am-bg);
  border: var(--am-bw) solid var(--am-border);
  border-radius: var(--am-radius);
  overflow: hidden;
}

.am-accordion ul,
.am-accordion li {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ---------- Righe ---------- */

.am-row {
  position: relative;
  display: flex;
  align-items: stretch;
  padding-inline-start: calc(var(--am-indent) * var(--am-d, 0));
  transition: background-color var(--am-hdur) ease;
}

.am-link {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  margin: 0;
  padding: var(--am-pad-y) var(--am-pad-x);
  border: 0;
  background: none;
  color: var(--am-color);
  font: inherit;
  font-size: var(--am-fs);
  font-weight: var(--am-fw);
  line-height: 1.35;
  letter-spacing: var(--am-ls);
  text-transform: var(--am-tt);
  text-align: start;
  text-decoration: none;
  cursor: pointer;
  transition: color var(--am-hdur) ease, text-shadow var(--am-hdur) ease;
}

.am-link--static { cursor: default; }

.am-text {
  display: inline-block;
  transition: transform var(--am-hdur) ease, background-size var(--am-hdur) ease;
  overflow-wrap: anywhere;
}

.am-mi { margin-inline-end: .5em; }

/* Sottolivelli */
.am-panel { background: var(--am-sub-bg); }

.am-panel .am-link {
  color: var(--am-sub-color);
  font-size: var(--am-fs-sub);
  font-weight: var(--am-fw-sub);
}

/* Separatori */
.am-accordion[data-separators="1"] .am-item + .am-item,
.am-accordion[data-separators="1"] .am-panel-inner > .am-list {
  border-top: var(--am-bw) solid var(--am-border);
}

/* ---------- Pulsante / icona ---------- */

.am-ibox {
  position: relative;
  z-index: 1;
  flex: 0 0 var(--am-iw);
  display: grid;
  place-items: center;
  align-self: stretch;
  color: var(--am-icon-color);
  transition: color var(--am-hdur) ease;
}

button.am-toggle {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font-size: var(--am-fs);
}

.am-link--toggle .am-ibox { margin-inline-start: auto; margin-block: calc(var(--am-pad-y) * -1); }
.am-accordion[data-icon-pos="right"] .am-link--toggle { padding-inline-end: 0; }

/* Icona a sinistra: il box va prima del testo e le foglie restano allineate */
.am-accordion[data-icon-pos="left"] .am-ibox { order: -1; margin-inline-start: 0; }
.am-accordion[data-icon-pos="left"] .has-children > .am-row > .am-link { padding-inline-start: 0; }
.am-accordion[data-icon-pos="left"] .am-item:not(.has-children) > .am-row > .am-link { padding-inline-start: var(--am-iw); }

.am-icon {
  position: relative;
  display: block;
  width: .75em;
  height: .75em;
  transition: transform var(--am-dur) var(--am-ease);
}

.am-icon::before,
.am-icon::after {
  content: "";
  position: absolute;
  transition: transform var(--am-dur) var(--am-ease), opacity var(--am-dur) ease;
}

/* chevron: giù → su */
[data-icon="chevron"] .am-icon::before {
  inset: 0;
  margin: auto;
  width: .45em;
  height: .45em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-20%) rotate(45deg);
}
[data-icon="chevron"] .is-open > .am-row .am-icon { transform: rotate(180deg); }

/* arrow: destra → giù */
[data-icon="arrow"] .am-icon::before {
  inset: 0;
  margin: auto;
  width: .45em;
  height: .45em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateX(-20%) rotate(-45deg);
}
[data-icon="arrow"] .is-open > .am-row .am-icon { transform: rotate(90deg); }

/* plus: + → − */
[data-icon="plus"] .am-icon::before,
[data-icon="plus"] .am-icon::after {
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  margin-top: -1px;
  background: currentColor;
  border-radius: 1px;
}
[data-icon="plus"] .am-icon::after { transform: rotate(90deg); }
[data-icon="plus"] .is-open > .am-row .am-icon::after { transform: rotate(0); opacity: 0; }

/* caret: triangolo pieno */
[data-icon="caret"] .am-icon::before {
  inset: 0;
  margin: auto;
  width: 0;
  height: 0;
  border-left: .3em solid transparent;
  border-right: .3em solid transparent;
  border-top: .38em solid currentColor;
}
[data-icon="caret"] .is-open > .am-row .am-icon { transform: rotate(180deg); }

[data-icon="none"] .am-ibox { display: none; }

/* ---------- Voce attiva ---------- */

.am-item.is-current > .am-row { background: var(--am-active-bg); }

.am-item.is-active > .am-row .am-link,
.am-item.is-current > .am-row .am-ibox { color: var(--am-active-color); }

/* ---------- Hover: colori comuni a tutti gli effetti ---------- */

.am-accordion .am-row:hover .am-link,
.am-accordion .am-row:hover .am-ibox,
.am-accordion .am-row:focus-within .am-link,
.am-accordion .am-row:focus-within .am-ibox { color: var(--am-hover-color); }

.am-accordion:not([data-hover="fill"]) .am-row:hover,
.am-accordion:not([data-hover="fill"]) .am-row:focus-within { background: var(--am-hover-bg); }

/* fill: lo sfondo scorre da sinistra */
[data-hover="fill"] .am-row::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--am-hover-bg);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--am-hdur) var(--am-ease);
}
[data-hover="fill"] .am-row:hover::before,
[data-hover="fill"] .am-row:focus-within::before { transform: scaleX(1); }

/* slide: il testo si sposta */
[data-hover="slide"] .am-row:hover .am-text,
[data-hover="slide"] .am-row:focus-within .am-text { transform: translateX(.45em); }

/* bar: barra laterale colorata (visibile anche sulla voce corrente) */
[data-hover="bar"] .am-row::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset-block: 0;
  inset-inline-start: 0;
  width: 4px;
  background: var(--am-accent);
  transform: scaleY(0);
  transition: transform var(--am-hdur) var(--am-ease);
}
[data-hover="bar"] .am-row:hover::after,
[data-hover="bar"] .am-row:focus-within::after,
[data-hover="bar"] .is-current > .am-row::after { transform: scaleY(1); }

/* underline: sottolineatura che si allunga */
[data-hover="underline"] .am-text {
  background: linear-gradient(var(--am-accent), var(--am-accent)) no-repeat left bottom / 0 2px;
  padding-bottom: 2px;
}
[data-hover="underline"] .am-row:hover .am-text,
[data-hover="underline"] .am-row:focus-within .am-text,
[data-hover="underline"] .is-current > .am-row .am-text { background-size: 100% 2px; }

/* glow: alone luminoso */
[data-hover="glow"] .am-row:hover .am-link,
[data-hover="glow"] .am-row:focus-within .am-link { text-shadow: 0 0 .7em var(--am-accent); }

/* scale: leggero ingrandimento */
[data-hover="scale"] .am-text { transform-origin: left center; }
[data-hover="scale"] .am-row:hover .am-text,
[data-hover="scale"] .am-row:focus-within .am-text { transform: scale(1.06); }

/* ---------- Focus da tastiera ---------- */

.am-link:focus-visible,
.am-toggle:focus-visible {
  outline: 2px solid var(--am-accent);
  outline-offset: -3px;
}

/* ---------- Apertura / chiusura ---------- */

.am-panel {
  display: grid;
  grid-template-rows: 0fr;
  visibility: hidden;
  transition:
    grid-template-rows var(--am-dur) var(--am-ease),
    visibility 0s linear var(--am-dur);
}

.am-item.is-open > .am-panel {
  grid-template-rows: 1fr;
  visibility: visible;
  transition:
    grid-template-rows var(--am-dur) var(--am-ease),
    visibility 0s linear 0s;
}

.am-panel-inner {
  min-height: 0;
  overflow: hidden;
  transition: opacity var(--am-dur) var(--am-ease), transform var(--am-dur) var(--am-ease);
}

/* slide + dissolvenza */
[data-effect="slidefade"] .am-panel-inner { opacity: 0; }
[data-effect="slidefade"] .is-open > .am-panel > .am-panel-inner { opacity: 1; }

/* solo dissolvenza: l'altezza cambia subito, il contenuto sfuma */
[data-effect="fade"] .am-panel {
  transition:
    grid-template-rows 0s linear var(--am-dur),
    visibility 0s linear var(--am-dur);
}
[data-effect="fade"] .am-item.is-open > .am-panel {
  transition: grid-template-rows 0s, visibility 0s;
}
[data-effect="fade"] .am-panel-inner { opacity: 0; }
[data-effect="fade"] .is-open > .am-panel > .am-panel-inner { opacity: 1; }

/* zoom */
[data-effect="zoom"] .am-panel-inner {
  opacity: 0;
  transform: scale(.94) translateY(-.4em);
  transform-origin: top center;
}
[data-effect="zoom"] .is-open > .am-panel > .am-panel-inner {
  opacity: 1;
  transform: none;
}

/* nessun effetto, ripristino da sessione, movimento ridotto */
[data-effect="none"] *,
.am-accordion.am-no-anim * { transition: none !important; }

@media (prefers-reduced-motion: reduce) {
  .am-accordion * {
    transition-duration: 0s !important;
    transition-delay: 0s !important;
  }
}
