/* MG Dinamico: movimento e interazione. Tutto si spegne con prefers-reduced-motion. */

/* avanzamento della lettura: filo in cima alla pagina */
.mgd-avanzamento { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 101; background: var(--blue, #0F8B8D); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }

/* apertura: i punti stanno dietro il testo */
.mgd-campo { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
@media (max-width: 899px) { .hero.mgd-hero { padding-bottom: 190px; } }   /* fascia del grafico sotto i pulsanti */

/* voce di menu della sezione in cui ci si trova */
@media (min-width: 769px) {
  .site-nav a:not(.nav-cta) { position: relative; }
  .site-nav a:not(.nav-cta)::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 3px; height: 2px; border-radius: 2px; background: var(--blue, #0F8B8D); transform: scaleX(0); transform-origin: 0 50%; transition: transform .35s cubic-bezier(.4, 0, .2, 1); }
  .site-nav a.mgd-attiva { color: #fff; }
  .site-nav a.mgd-attiva::after { transform: scaleX(1); }
}

/* fascia "Ne parlano" sotto l'apertura */
.mgd-fonti { background: var(--navy, #0d1117); border-top: 1px solid rgba(255, 255, 255, .07); padding: 22px 0; }
.mgd-fonti .container { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 34px; }
.mgd-fonti-titolo { font-size: .85rem; color: rgba(255, 255, 255, .45); }
.mgd-fonti a { font-size: .95rem; font-weight: 500; color: rgba(255, 255, 255, .78); transition: color .2s; }
.mgd-fonti a:hover, .mgd-fonti a:focus-visible { color: #5FC9CB; }

/* metodo in quattro fasi: ogni fase si accende quando ci arrivi */
.framework-step::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--blue, #0F8B8D); transform: scaleX(0); transform-origin: 0 50%; transition: transform .7s cubic-bezier(.4, 0, .2, 1); transition-delay: var(--mgd-attesa, 0s); }
.framework-step.mgd-accesa::before { transform: scaleX(1); }
.framework-step.mgd-accesa .framework-step-num { color: var(--blue, #0F8B8D); transition: color .7s ease; transition-delay: var(--mgd-attesa, 0s); }

/* invito alla call con il primo orario libero */
.mgd-invito { position: fixed; right: 24px; bottom: 24px; z-index: 90; display: flex; align-items: center; gap: 16px; max-width: min(460px, calc(100vw - 32px)); padding: 12px 12px 12px 20px; border-radius: 16px; background: rgba(13, 17, 23, .94); border: 1px solid rgba(95, 201, 203, .28); box-shadow: 0 18px 50px rgba(0, 0, 0, .35); backdrop-filter: blur(14px); color: #fff; transform: translateY(140%); opacity: 0; transition: transform .5s cubic-bezier(.2, .8, .2, 1), opacity .3s; }
.mgd-invito.mgd-visibile { transform: none; opacity: 1; }
.mgd-invito-testo { flex: 1; min-width: 0; line-height: 1.3; }
.mgd-invito-testo small { display: block; font-size: .78rem; color: rgba(255, 255, 255, .55); }
.mgd-invito-testo strong { display: block; font-size: .98rem; font-weight: 600; }
.mgd-invito-vai { flex: none; padding: 10px 18px; border-radius: 100px; background: var(--blue, #0F8B8D); color: var(--navy, #0d1117); font-weight: 700; font-size: .92rem; transition: background .2s; }
.mgd-invito-vai:hover, .mgd-invito-vai:focus-visible { background: #5FC9CB; }
.mgd-invito-chiudi { flex: none; width: 32px; height: 32px; border: 0; border-radius: 50%; background: transparent; color: rgba(255, 255, 255, .55); font-size: 20px; line-height: 1; cursor: pointer; }
.mgd-invito-chiudi:hover, .mgd-invito-chiudi:focus-visible { color: #fff; background: rgba(255, 255, 255, .1); }
.mgd-invito :focus-visible, .mgd-fonti a:focus-visible { outline: 2px solid #5FC9CB; outline-offset: 3px; }
@media (max-width: 600px) {
  .mgd-invito { left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); max-width: none; gap: 10px; padding: 10px 8px 10px 16px; }
  .mgd-fonti .container { gap: 8px 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .mgd-avanzamento { display: none; }
  .mgd-invito, .framework-step::before, .framework-step.mgd-accesa .framework-step-num, .site-nav a:not(.nav-cta)::after { transition: none; }
}
