/* ==========================================================================
   modules/info-circle/info-circle.css — Info-Circle
   Farben und Masse aus dem Bestand, siehe docs/12_GESTALTUNG-2.md §3
   ========================================================================== */

.info-circle {
  --ic-size:        clamp(260px, 42vw, 460px);  /* Aussendurchmesser */
  --ic-icon:        2.75rem;                    /* Icon-Kreis (Bestand: 2em) */
  --ic-ring-color:  var(--color-cream);         /* Rand, aus dem Bestand */
  --ic-face:        var(--color-warm-mid);      /* #746C52 */
  --ic-radius:      calc(var(--ic-size) / 2);

  position: relative;
  width: var(--ic-size);
  height: var(--ic-size);
  margin-inline: auto;
}

/* --- Mittelkreis ---------------------------------------------------------- */

.info-circle__center {
  position: absolute;
  /* Bestand: 80 % Groesse, 10 % Rand ringsum */
  inset: 10%;
  display: grid;
  place-items: center;

  border: 5px solid var(--ic-ring-color);
  border-radius: 50%;
  background: var(--ic-face);
  color: var(--color-white);
  text-align: center;
  padding: clamp(1rem, 4%, 2rem);
  overflow: hidden;
}

.info-circle__panel {
  grid-area: 1 / 1;
  max-width: 90%;
}

.info-circle__panel[hidden] { display: none; }

.info-circle__title {
  margin: 0 0 var(--space-2);
  font-family: var(--font-sans);
  font-size: var(--text-h3);
  font-weight: 400;
  line-height: var(--leading-tight);
  color: inherit;
}

.info-circle__text {
  font-size: var(--text-small);
  line-height: var(--leading-base);
}

.info-circle__text p:last-child { margin-bottom: 0; }

/* Wechsel weich, aber ohne Verschieben — der Kreis darf nicht springen. */
.info-circle__panel.is-active {
  animation: ic-in 300ms ease both;
}

@keyframes ic-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}

/* --- Icons auf der Kreisbahn ---------------------------------------------- */
/* Kein JavaScript: Winkel = 360° / Anzahl * Index, Start oben.
   rotate -> nach aussen schieben -> zurueckdrehen, damit das Icon
   aufrecht steht. */

.info-circle__ring {
  position: absolute;
  inset: 0;
}

.info-circle__icon {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--ic-icon);
  height: var(--ic-icon);
  margin: calc(var(--ic-icon) / -2);

  display: grid;
  place-items: center;
  padding: 0;

  border: 0;
  border-radius: 50%;
  background: var(--color-white);
  color: var(--color-text);
  cursor: pointer;

  --ic-angle: calc(360deg / var(--ic-count) * var(--ic-index) - 90deg);
  transform:
    rotate(var(--ic-angle))
    translate(var(--ic-radius))
    rotate(calc(-1 * var(--ic-angle)));

  transition: background var(--transition-base), color var(--transition-base);
}

.info-circle__icon svg {
  width: 55%;
  height: 55%;
}

.info-circle__icon:hover,
.info-circle__icon[aria-selected="true"] {
  background: var(--color-primary);
  color: var(--color-white);
}

.info-circle__icon:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 3px;
}

/* --- Kleine Bildschirme ---------------------------------------------------- */
/* Unter 480 px wird der Kreis eng. Der Bestand staucht ihn einfach;
   hier stehen die Icons stattdessen als Reihe darueber — gleiche Inhalte,
   nur lesbar. */

@media (max-width: 480px) {
  .info-circle {
    width: 100%;
    height: auto;
    display: grid;
    gap: var(--space-4);
  }

  .info-circle__ring {
    position: static;
    display: flex;
    justify-content: center;
    gap: var(--space-3);
  }

  .info-circle__icon {
    position: static;
    margin: 0;
    transform: none;
  }

  .info-circle__center {
    position: static;
    aspect-ratio: 1;
    width: 100%;
    max-width: 340px;
    margin-inline: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .info-circle__panel.is-active { animation: none; }
  .info-circle__icon { transition: none; }
}
