/* Gestione Corsi — stili frontend v1.1
   Eredita font e colore del testo dal tema; il colore principale si imposta da Corsi > Impostazioni. */
:root { --gc-accento: #2b4acb; }

.gc {
  --gc-bordo: color-mix(in srgb, currentColor 13%, transparent);
  --gc-tenue: color-mix(in srgb, currentColor 4%, transparent);
  --gc-muto: color-mix(in srgb, currentColor 62%, transparent);
  --gc-accento-tenue: color-mix(in srgb, var(--gc-accento) 9%, transparent);
  --gc-accento-scuro: color-mix(in srgb, var(--gc-accento) 82%, #000);
  --gc-ok: #1d7a46;
  --gc-errore: #b42318;
  --gc-wa: #1fa855;
  --gc-r: 14px;
  max-width: 100%;
}
.gc *, .gc *::before, .gc *::after { box-sizing: border-box; }
.gc h2 { margin: 0 0 1rem; font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); line-height: 1.25; letter-spacing: -.01em; }
.gc a { color: inherit; }
.gc-icona { flex: none; }

/* Layout a tutta larghezza: esce dalla colonna del tema restando centrato */
.gc-largo {
  width: min(1180px, 100vw - 40px);
  margin-left: calc(50% - min(590px, 50vw - 20px));
}

/* ---------- Pulsanti ---------- */
.gc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 48px; padding: .75em 1.3em; border: 2px solid transparent; border-radius: 10px;
  font: inherit; font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none !important;
  cursor: pointer; transition: background-color .15s, border-color .15s, color .15s;
}
.gc-btn:focus-visible { outline: 3px solid var(--gc-accento); outline-offset: 3px; }
.gc-btn--pieno { background: var(--gc-accento); color: #fff !important; }
.gc-btn--pieno:hover { background: var(--gc-accento-scuro); }
.gc-btn--contorno { border-color: var(--gc-accento); color: var(--gc-accento) !important; background: transparent; }
.gc-btn--contorno:hover { background: var(--gc-accento-tenue); }
.gc-btn--tenue { background: var(--gc-tenue); border-color: var(--gc-bordo); }
.gc-btn--tenue:hover { border-color: currentColor; }
.gc-btn--wa { background: var(--gc-wa); color: #fff !important; }
.gc-btn--wa:hover { background: #178a45; }
.gc-btn--icona { padding: .7em; min-width: 48px; }
/* compatibilità con i vecchi template personalizzati */
.gc-btn:not([class*="gc-btn--"]) { background: var(--gc-accento); color: #fff !important; }
.gc-btn--secondario { border-color: var(--gc-accento); color: var(--gc-accento) !important; background: transparent; }

/* ---------- Avvisi ---------- */
.gc-avviso { padding: 1em 1.2em; border-radius: 10px; border: 1px solid var(--gc-accento); background: var(--gc-accento-tenue); margin-bottom: 1.5em; }
.gc-avviso--ok { border-color: var(--gc-ok); background: color-mix(in srgb, var(--gc-ok) 9%, transparent); }
.gc-avviso--errore { border-color: var(--gc-errore); background: color-mix(in srgb, var(--gc-errore) 8%, transparent); }
.gc-nota { color: var(--gc-muto); font-size: .92em; margin: .4em 0; }
.gc-centro { text-align: center; }

/* ---------- Hero ---------- */
.gc-hero { margin-bottom: 2rem; }
.gc-hero-img { margin: 0 0 1.25rem; }
.gc-hero-img img { display: block; width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; border-radius: 18px; }
.gc-hero-etichette { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .9rem; }
.gc-lead { font-size: clamp(1.1rem, 1rem + .5vw, 1.35rem); line-height: 1.5; max-width: 62ch; margin: 0; }

.gc-badge { display: inline-flex; align-items: center; padding: .3em .8em; border-radius: 999px; font-size: .85em; font-weight: 600; background: var(--gc-accento-tenue); color: var(--gc-accento); text-decoration: none; }
.gc-badge--live { background: color-mix(in srgb, #b54708 12%, transparent); color: #b54708; }
.gc-badge--misto { background: color-mix(in srgb, #6941c6 12%, transparent); color: #6941c6; }
.gc-badge--neutro { background: var(--gc-tenue); color: inherit; border: 1px solid var(--gc-bordo); font-weight: 500; }

/* ---------- Struttura: contenuto + pannello laterale ---------- */
.gc-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 3rem; align-items: start; }
.gc-principale { grid-column: 1; grid-row: 1; min-width: 0; }
.gc-pannello { grid-column: 2; grid-row: 1; position: sticky; top: 2rem; }
.admin-bar .gc-pannello { top: calc(2rem + 32px); }

.gc-pannello { border: 1px solid var(--gc-bordo); border-radius: var(--gc-r); overflow: hidden; background: var(--gc-sfondo, transparent); }
.gc-pannello-testa { background: var(--gc-accento); color: #fff; padding: 1.4rem 1.5rem; }
.gc-pannello-titolo { margin: 0; font-size: 1.35rem; font-weight: 700; line-height: 1.2; }
.gc-pannello-prezzo { font-size: 2rem; letter-spacing: -.02em; }
.gc-pannello-prezzo del { opacity: .6; font-size: .6em; font-weight: 500; }
.gc-pannello-prezzo ins { text-decoration: none; }
.gc-pannello-sotto { margin: .35rem 0 0; opacity: .9; font-size: .95rem; }
.gc-pannello-corpo { padding: 1.3rem 1.5rem 1.4rem; }
.gc-pannello-azioni { display: grid; gap: .6rem; }
.gc-contatti { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.gc-contatti .gc-btn:only-child { grid-column: 1 / -1; }

.gc-fatti { margin: 1.3rem 0 0; padding: 1.1rem 0 0; border-top: 1px solid var(--gc-bordo); display: grid; gap: .8rem; }
.gc-fatti > div { display: grid; grid-template-columns: 6.5rem 1fr; gap: .8rem; font-size: .95rem; }
.gc-fatti dt { color: var(--gc-muto); margin: 0; }
.gc-fatti dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }

.gc-progresso { height: 8px; border-radius: 99px; background: var(--gc-bordo); overflow: hidden; }
.gc-progresso span { display: block; height: 100%; background: var(--gc-accento); transition: width .3s; }
.gc-progresso--chiaro { background: rgba(255,255,255,.3); margin-top: .8rem; }
.gc-progresso--chiaro span { background: #fff; }

/* ---------- Sezioni ---------- */
.gc-sezione { margin: 0 0 3rem; }
.gc-conta { font-size: .6em; font-weight: 500; color: var(--gc-muto); margin-left: .4em; letter-spacing: 0; }

/* Obiettivi */
.gc-obiettivi-box { padding: 1.6rem 1.7rem; border-radius: var(--gc-r); background: var(--gc-accento-tenue); }
.gc-obiettivi { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1.6rem; }
.gc-obiettivi li { display: flex; gap: .7rem; align-items: flex-start; line-height: 1.45; }
.gc-obiettivi .gc-icona { width: 22px; height: 22px; padding: 3px; border-radius: 50%; background: var(--gc-accento); color: #fff; margin-top: .05em; }

/* Programma */
.gc-lezioni { list-style: none; margin: 0; padding: 0; counter-reset: gc-lez; border: 1px solid var(--gc-bordo); border-radius: var(--gc-r); overflow: hidden; }
.gc-lezione-riga { counter-increment: gc-lez; display: flex; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border-top: 1px solid var(--gc-bordo); }
.gc-lezione-riga:first-child { border-top: 0; }
.gc-lezione-riga::before {
  content: counter(gc-lez); flex: none; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%;
  background: var(--gc-accento-tenue); color: var(--gc-accento); font-weight: 700; font-variant-numeric: tabular-nums;
}
.gc-lezione-riga.is-fatta::before { content: "✓"; background: var(--gc-ok); color: #fff; }
.gc-lezione-testo { flex: 1; min-width: 0; display: grid; gap: .15rem; }
.gc-lezione-testo a, .gc-lezione-titolo { font-weight: 600; text-decoration: none; }
.gc-lezione-testo a:hover { color: var(--gc-accento); }
.gc-lezione-meta { color: var(--gc-muto); font-size: .88rem; }
.gc-etichetta { flex: none; font-size: .82rem; font-weight: 600; padding: .25em .7em; border-radius: 999px; background: var(--gc-accento-tenue); color: var(--gc-accento); }
.gc-etichetta--ok { background: color-mix(in srgb, var(--gc-ok) 12%, transparent); color: var(--gc-ok); }
.gc-lucchetto {
  flex: none; width: 16px; height: 16px; background: currentColor; opacity: .45;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 9V7A5 5 0 0 0 7 7v2H5v13h14V9h-2zM9 7a3 3 0 0 1 6 0v2H9V7z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 9V7A5 5 0 0 0 7 7v2H5v13h14V9h-2zM9 7a3 3 0 0 1 6 0v2H9V7z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Docenti */
.gc-docenti { display: grid; gap: 1rem; }
.gc-docente { display: grid; grid-template-columns: 76px 1fr; gap: 1.1rem; align-items: start; padding: 1.2rem; border: 1px solid var(--gc-bordo); border-radius: var(--gc-r); }
.gc-docente h3 { margin: 0; font-size: 1.1rem; }
.gc-docente h3 a { text-decoration: none; }
.gc-docente-foto { display: grid; place-items: center; width: 76px; height: 76px; border-radius: 50%; overflow: hidden; background: var(--gc-accento-tenue); color: var(--gc-accento); font-size: 1.8rem; font-weight: 700; text-decoration: none; }
.gc-docente-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gc-docente-foto--grande { width: 160px; height: 160px; }
.gc-docente-ruolo { margin: .15rem 0 0; color: var(--gc-accento); font-weight: 600; font-size: .92rem; }
.gc-docente-bio { margin: .5rem 0 0; color: var(--gc-muto); font-size: .95rem; line-height: 1.5; }
.gc-docente-testa { display: flex; gap: 1.5rem; align-items: center; margin-bottom: 2rem; }
.gc-contatti-riga { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: .6rem; }
.gc-contatti-riga a { display: inline-flex; gap: .4em; align-items: center; }

/* Materiali */
.gc-materiali { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.gc-materiali li { display: flex; gap: .7em; align-items: baseline; padding: .8rem 1rem; border: 1px solid var(--gc-bordo); border-radius: 10px; }
.gc-materiali a { font-weight: 600; }
.gc-materiali small { color: var(--gc-muto); margin-left: auto; }
.gc-bloccato { color: var(--gc-muto); }

/* ---------- Modulo ---------- */
.gc-iscrizione { padding: clamp(1.3rem, 3vw, 2.2rem); border: 1px solid var(--gc-bordo); border-radius: var(--gc-r); scroll-margin-top: 2rem; }
.gc-form { display: grid; gap: 1rem; }
.gc-form-titolo { margin: .2rem 0 0; }
.gc-form > .gc-nota { margin-top: -.6rem; }
.gc-segmenti { display: inline-grid; grid-auto-flow: column; justify-self: start; gap: 4px; margin: 0; padding: 4px; border: 0; border-radius: 999px; background: var(--gc-tenue); box-shadow: inset 0 0 0 1px var(--gc-bordo); }
.gc-segmenti label { position: relative; }
.gc-segmenti input { position: absolute; opacity: 0; pointer-events: none; }
.gc-segmenti span { display: block; padding: .55em 1.1em; border-radius: 999px; font-weight: 600; font-size: .95rem; cursor: pointer; }
.gc-segmenti input:checked + span { background: var(--gc-accento); color: #fff; }
.gc-segmenti input:focus-visible + span { outline: 2px solid var(--gc-accento); outline-offset: 2px; }
.gc-campi { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.gc-form label { display: grid; gap: .35em; font-size: .95em; font-weight: 500; }
.gc-form input[type="text"], .gc-form input[type="email"], .gc-form input[type="tel"], .gc-form textarea {
  width: 100%; min-height: 48px; padding: .75em .9em; border: 1px solid var(--gc-bordo); border-radius: 10px; font: inherit; background: transparent; color: inherit;
}
.gc-form input:focus-visible, .gc-form textarea:focus-visible { outline: 2px solid var(--gc-accento); outline-offset: 0; border-color: var(--gc-accento); }
.gc-form .gc-check { display: flex; gap: .6em; align-items: flex-start; font-weight: 400; }
.gc-form .gc-check input { margin-top: .3em; }
.gc-form-piede { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: .3rem; }
.gc-link-wa { display: inline-flex; align-items: center; gap: .4em; color: var(--gc-wa) !important; font-weight: 600; }
.gc-form[data-tipo="iscrizione"] .gc-solo-info,
.gc-form[data-tipo="info"] .gc-solo-iscrizione { display: none; }
.gc-trappola { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Barra fissa su mobile ---------- */
.gc-barra-mobile { display: none; }

/* ---------- Lezione ---------- */
.gc-percorso { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5em; margin-bottom: 1.2em; font-size: .92em; }
.gc-percorso a { font-weight: 600; }
.gc-percorso span { color: var(--gc-muto); }
.gc-player { position: relative; aspect-ratio: 16 / 9; background: #000; border-radius: var(--gc-r); overflow: hidden; margin-bottom: 1.8em; }
.gc-player iframe, .gc-player video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gc-filigrana { position: absolute; z-index: 2; pointer-events: none; color: #fff; opacity: .28; font-size: clamp(11px, 1.6vw, 15px); text-shadow: 0 0 3px #000; transition: top 1.2s, left 1.2s; white-space: nowrap; }
.gc-live { display: grid; gap: 1em; padding: 1.4em 1.6em; border: 1px solid var(--gc-bordo); border-left: 4px solid #b54708; border-radius: var(--gc-r); margin-bottom: 1.8em; }
.gc-info { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1em 1.6em; }
.gc-info dt { font-size: .85em; color: var(--gc-muto); margin: 0 0 .2em; }
.gc-info dd { margin: 0; font-weight: 600; }
.gc-live .gc-btn { justify-self: start; }
.gc-sottotitolo { font-size: 1.1em; }
.gc-completa.is-fatto { border-color: var(--gc-ok); color: var(--gc-ok) !important; }
.gc-navigazione { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; margin-top: 2.5em; }
.gc-navigazione a { display: grid; gap: .2em; padding: 1em 1.2em; border: 1px solid var(--gc-bordo); border-radius: var(--gc-r); text-decoration: none; font-weight: 600; }
.gc-navigazione a:hover { border-color: var(--gc-accento); }
.gc-navigazione small { font-weight: 400; color: var(--gc-muto); }
.gc-nav-succ { grid-column: 2; text-align: right; }
.gc-no-select { -webkit-user-select: none; user-select: none; }
.gc-no-select input, .gc-no-select textarea { -webkit-user-select: text; user-select: text; }

/* ---------- Catalogo ---------- */
.gc-griglia { display: grid; grid-template-columns: repeat(var(--gc-colonne, 3), minmax(0, 1fr)); gap: 1.6rem; }
.gc-card { display: flex; flex-direction: column; border: 1px solid var(--gc-bordo); border-radius: var(--gc-r); overflow: hidden; transition: border-color .15s; }
.gc-card:hover { border-color: var(--gc-accento); }
.gc-card-img { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--gc-accento-tenue); }
.gc-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gc-card-img .gc-badge { position: absolute; left: .8rem; top: .8rem; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.15); }
.gc-card-corpo { display: flex; flex-direction: column; gap: .45rem; padding: 1.1rem 1.25rem 1.3rem; flex: 1; }
.gc-card h3 { margin: 0; font-size: 1.15rem; line-height: 1.3; }
.gc-card h3 a { text-decoration: none; }
.gc-card-quando { margin: 0; font-size: .85rem; font-weight: 600; color: var(--gc-accento); }
.gc-card-testo { margin: 0; font-size: .93rem; color: var(--gc-muto); line-height: 1.5; }
.gc-card-piede { margin-top: auto; padding-top: .9rem; display: flex; align-items: center; justify-content: space-between; gap: .8rem; flex-wrap: wrap; }
.gc-card .gc-prezzo { font-size: 1.15rem; font-weight: 700; }
.gc-link-freccia { font-weight: 600; color: var(--gc-accento) !important; text-decoration: none; }
.gc-link-freccia:hover { text-decoration: underline; }

/* ---------- I miei corsi ---------- */
.gc-miei-corsi { display: grid; gap: 1rem; }
.gc-mio-corso { display: grid; grid-template-columns: 110px 1fr; gap: 1.3rem; align-items: center; padding: 1rem; border: 1px solid var(--gc-bordo); border-radius: var(--gc-r); }
.gc-mio-corso-img { display: block; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: var(--gc-accento-tenue); }
.gc-mio-corso-img img { width: 100%; height: 100%; object-fit: cover; }
.gc-mio-corso h3 { margin: 0 0 .6em; font-size: 1.15em; }
.gc-mio-corso .gc-btn { margin-top: .5em; min-height: 40px; padding: .5em 1.1em; }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .gc-layout { grid-template-columns: 1fr; gap: 2rem; }
  .gc-pannello, .gc-principale { grid-column: 1; grid-row: auto; }
  .gc-pannello { position: static; }
  .gc-griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gc-corso { padding-bottom: 5rem; }
  .gc-barra-mobile {
    display: flex; gap: .5rem; position: fixed; z-index: 999; left: 0; right: 0; bottom: 0;
    padding: .7rem max(1rem, env(safe-area-inset-right)) calc(.7rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
    background: var(--gc-sfondo-barra, #fff); color: #1a1a1a; box-shadow: 0 -2px 12px rgba(0,0,0,.12);
    transform: translateY(110%); transition: transform .25s;
  }
  .gc-barra-mobile .gc-btn--pieno { flex: 1; }
  .gc-barra-mobile.is-visibile { transform: none; }
}
@media (max-width: 640px) {
  .gc-hero-img img { aspect-ratio: 4 / 3; border-radius: 12px; }
  .gc-obiettivi, .gc-campi, .gc-griglia, .gc-info { grid-template-columns: 1fr; }
  .gc-lezione-riga { padding: .9rem 1rem; gap: .8rem; }
  .gc-docente { grid-template-columns: 56px 1fr; }
  .gc-docente-foto { width: 56px; height: 56px; }
  .gc-docente-testa { flex-direction: column; align-items: flex-start; }
  .gc-navigazione { grid-template-columns: 1fr; }
  .gc-nav-succ { grid-column: 1; }
  .gc-segmenti { justify-self: stretch; grid-auto-columns: 1fr; }
  .gc-segmenti span { text-align: center; padding: .55em .6em; }
}
@media (prefers-reduced-motion: reduce) {
  .gc *, .gc-barra-mobile { transition: none !important; }
}
