/* CRM ML - Porte aperte: pagina pubblica /porte-aperte/ (CRMLMS_PA_Public).
   Tutto sotto .crmlms-pa, font di sistema, nessuna risorsa esterna.
   Mobile first: a 375px nessuno scorrimento orizzontale. */

.crmlms-pa {
  --pa-brand: #7a1f4b;
  --pa-brand-2: #a03c6e;
  --pa-soft: #f7eef2;
  --pa-ink: #1f2937;
  --pa-muted: #5b6170;
  --pa-line: #e7e1e5;
  --pa-ok: #1f7a4f;
  --pa-ok-bg: #e3f5ec;
  --pa-err: #b3261e;
  --pa-err-bg: #fdecea;
  max-width: 820px;
  margin: 0 auto;
  padding: 8px 16px 40px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--pa-ink);
  line-height: 1.55;
  box-sizing: border-box;
  overflow-wrap: anywhere;
}
.crmlms-pa *, .crmlms-pa *::before, .crmlms-pa *::after { box-sizing: border-box; }

.crmlms-pa-hero {
  background: linear-gradient(160deg, #fff 0%, var(--pa-soft) 100%);
  border: 1px solid var(--pa-line);
  border-radius: 20px;
  padding: 22px 18px;
  margin: 0 0 20px;
}
.crmlms-pa-eyebrow {
  display: inline-block; margin: 0 0 8px; padding: 4px 12px;
  border-radius: 999px; background: #fff; border: 1px solid var(--pa-line);
  color: var(--pa-brand); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
}
.crmlms-pa .crmlms-pa-title { font-size: clamp(26px, 6vw, 38px); line-height: 1.15; margin: 0 0 6px; color: var(--pa-brand); }
.crmlms-pa-range { font-size: 18px; font-weight: 700; margin: 0 0 10px; }
.crmlms-pa-lead { font-size: 16px; margin: 0 0 12px; color: var(--pa-muted); }
.crmlms-pa-prog { margin: 0 0 14px; padding-left: 20px; }
.crmlms-pa-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.crmlms-pa-facts li { background: #fff; border: 1px solid var(--pa-line); border-radius: 14px; padding: 10px 12px; }
.crmlms-pa-facts strong { display: block; color: var(--pa-brand); }
.crmlms-pa-facts span { font-size: 14px; color: var(--pa-muted); }

.crmlms-pa-form fieldset {
  border: 1px solid var(--pa-line); border-radius: 18px; padding: 14px 14px 6px;
  margin: 0 0 16px; background: #fff; min-width: 0;
}
.crmlms-pa-form legend { font-weight: 800; font-size: 17px; padding: 0 6px; color: var(--pa-brand); }

.crmlms-pa-day { margin: 0 0 14px; }
.crmlms-pa-day-h { font-weight: 700; margin: 0 0 8px; }
.crmlms-pa-slots { display: flex; flex-wrap: wrap; gap: 8px; }
.crmlms-pa-slot {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 92px; min-height: 58px; padding: 8px 12px;
  border: 2px solid var(--pa-line); border-radius: 14px; cursor: pointer; background: #fff; text-align: center;
}
.crmlms-pa-slot input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.crmlms-pa-slot-t { font-size: 18px; font-weight: 800; }
.crmlms-pa-slot-n { font-size: 12px; color: var(--pa-muted); min-height: 1em; }
.crmlms-pa-slot:hover { border-color: var(--pa-brand-2); }
.crmlms-pa-slot.is-sel { border-color: var(--pa-brand); background: var(--pa-soft); box-shadow: 0 0 0 3px rgba(122, 31, 75, .15); }
.crmlms-pa-slot:focus-within { outline: 2px solid var(--pa-brand); outline-offset: 2px; }
.crmlms-pa-slot.is-off { cursor: not-allowed; opacity: .55; background: #f6f6f7; }
.crmlms-pa-slot.is-off:hover { border-color: var(--pa-line); }

.crmlms-pa-row { display: grid; grid-template-columns: 1fr; gap: 0 14px; }
.crmlms-pa-field { margin: 0 0 12px; min-width: 0; }
.crmlms-pa-field label, .crmlms-pa-label { display: block; font-weight: 700; margin: 0 0 4px; font-size: 15px; }
.crmlms-pa .crmlms-pa-field input[type="text"],
.crmlms-pa .crmlms-pa-field input[type="email"],
.crmlms-pa .crmlms-pa-field input[type="tel"],
.crmlms-pa .crmlms-pa-field input[type="number"] {
  width: 100%; max-width: 100%; padding: 12px; border: 1px solid #cfc8cd; border-radius: 10px;
  font-size: 16px; background: #fff; color: var(--pa-ink); margin: 0;
}
.crmlms-pa .crmlms-pa-field input:focus { outline: 2px solid var(--pa-brand); outline-offset: 1px; border-color: var(--pa-brand); }
.crmlms-pa .crmlms-pa-field input[aria-invalid="true"] { border-color: var(--pa-err); background: var(--pa-err-bg); }
.crmlms-pa-stepper { display: flex; align-items: stretch; gap: 6px; max-width: 230px; }
.crmlms-pa .crmlms-pa-stepper input[type="number"] { text-align: center; -moz-appearance: textfield; appearance: textfield; }
.crmlms-pa-stepper input::-webkit-outer-spin-button,
.crmlms-pa-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.crmlms-pa-step {
  flex: 0 0 48px; border: 1px solid #cfc8cd; border-radius: 10px; background: #fff;
  font-size: 22px; font-weight: 700; color: var(--pa-brand); cursor: pointer; padding: 0;
}
.crmlms-pa-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.crmlms-pa-chip {
  display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px;
  border: 1px solid var(--pa-line); border-radius: 999px; cursor: pointer; background: #fff; font-size: 15px;
}
.crmlms-pa-chip input { margin: 0; }
.crmlms-pa-hint { font-size: 13px; color: var(--pa-muted); margin: 4px 0 0; }
.crmlms-pa-err { font-size: 13px; color: var(--pa-err); margin: 4px 0 0; font-weight: 600; }
.crmlms-pa-err:empty { display: none; }
.crmlms-pa-info {
  font-size: 13px; color: var(--pa-muted); background: #fafafa; border: 1px solid var(--pa-line);
  border-radius: 12px; padding: 10px 12px; margin: 0 0 12px;
}
.crmlms-pa-check { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 10px; font-size: 15px; cursor: pointer; }
.crmlms-pa-check input { margin: 4px 0 0; flex: 0 0 auto; width: 18px; height: 18px; }

.crmlms-pa-btn {
  display: block; width: 100%; padding: 15px; border: 0; border-radius: 14px;
  background: var(--pa-brand); color: #fff; font-size: 17px; font-weight: 800; cursor: pointer;
}
.crmlms-pa-btn:hover { background: var(--pa-brand-2); }
.crmlms-pa-btn[disabled] { opacity: .6; cursor: wait; }
.crmlms-pa .crmlms-pa-btn2 {
  display: inline-block; padding: 10px 16px; border-radius: 12px; border: 2px solid var(--pa-brand);
  color: var(--pa-brand); font-weight: 700; text-decoration: none; background: #fff;
}

.crmlms-pa-banner:empty { display: none; }
.crmlms-pa-banner, .crmlms-pa-alert {
  margin: 0 0 14px; padding: 12px 14px; border-radius: 12px;
  background: var(--pa-err-bg); color: var(--pa-err); border: 1px solid #f3c3bf; font-weight: 600;
}
.crmlms-pa-ok { background: var(--pa-ok-bg); border: 1px solid #b7e2cb; border-radius: 18px; padding: 22px 18px; margin: 0 0 20px; }
.crmlms-pa-ok h2 { margin: 0 0 8px; color: var(--pa-ok); }
.crmlms-pa-ok:focus { outline: none; }
.crmlms-pa-preview {
  margin: 0 0 14px; padding: 10px 14px; border-radius: 12px;
  background: #fdf0d5; color: #7a5a0c; border: 1px solid #f0d9a3; font-size: 14px;
}

.crmlms-pa-more { margin: 24px 0 0; }
.crmlms-pa-more h2 { font-size: 20px; color: var(--pa-brand); margin: 18px 0 8px; }
.crmlms-pa-faq dt { font-weight: 700; margin: 10px 0 2px; }
.crmlms-pa-faq dd { margin: 0; color: var(--pa-muted); }

/* Il tema Kubio impone ai <button> e agli <h2> colore, raggio e corpo propri
   (pulsante blu 4px, titoli 48px): qui si riallinea allo stile del sito,
   stesso gradiente del pulsante "Lezione prova gratuita" dell'header. */
html body[class] .crmlms-pa .crmlms-pa-btn {
  background: linear-gradient(135deg, #be185d, #ec4899); background-color: #be185d;
  color: #fff; border: 0; border-radius: 14px; padding: 16px; font-size: 18px; font-weight: 800;
  box-shadow: 0 8px 20px rgba(190, 24, 93, .25); text-transform: none; letter-spacing: 0;
}
html body[class] .crmlms-pa .crmlms-pa-btn:hover { background: linear-gradient(135deg, #9d174d, #db2777); }
html body[class] .crmlms-pa .crmlms-pa-btn[disabled] { opacity: .6; }
html body[class] .crmlms-pa .crmlms-pa-more h2 { font-size: 22px; line-height: 1.25; color: var(--pa-brand); margin: 22px 0 8px; }
html body[class] .crmlms-pa .crmlms-pa-ok h2 { font-size: 28px; line-height: 1.2; color: var(--pa-ok); }

@media (min-width: 600px) {
  .crmlms-pa-row { grid-template-columns: 1fr 1fr; }
  .crmlms-pa-hero { padding: 30px 28px; }
  .crmlms-pa-form fieldset { padding: 18px 20px 8px; }
}

/* ── Modo "prova" (strada B): richiesta di lezioni di prova ──
   [hidden] deve vincere anche sulle regole con display proprio (.crmlms-pa-check e flex). */
.crmlms-pa [hidden] { display: none !important; }
.crmlms-pa-sub { font-weight: 800; margin: 4px 0 6px; color: var(--pa-ink); }
.crmlms-pa-note {
  font-size: 14px; color: var(--pa-muted); background: var(--pa-soft);
  border: 1px solid var(--pa-line); border-radius: 12px; padding: 10px 12px; margin: 0 0 14px;
}
.crmlms-pa-allievo {
  border: 1px dashed #d9cdd4; border-radius: 14px; padding: 12px 12px 2px; margin: 0 0 12px; background: #fff;
}
.crmlms-pa-allievo-h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 8px; }
.crmlms-pa-allievo-n { font-weight: 800; color: var(--pa-brand); }
.crmlms-pa-allievo-opt { font-size: 13px; color: var(--pa-muted); }
.crmlms-pa-rm { margin-left: auto; cursor: pointer; }
.crmlms-pa-chi { margin: 0 0 6px; }
.crmlms-pa-chip input[type="radio"], .crmlms-pa-chip input[type="checkbox"] { margin: 0; flex: 0 0 auto; }
.crmlms-pa-chip:has(input:checked) { border-color: var(--pa-brand); background: var(--pa-soft); }
.crmlms-pa-chip:focus-within { outline: 2px solid var(--pa-brand); outline-offset: 1px; }
.crmlms-pa-chip.is-off { opacity: .5; cursor: not-allowed; }
.crmlms-pa-chip--any { border-style: dashed; }
.crmlms-pa-quando .crmlms-pa-chips { margin: 0 0 12px; }
.crmlms-pa .crmlms-pa-field select,
.crmlms-pa .crmlms-pa-field textarea {
  width: 100%; max-width: 100%; padding: 12px; border: 1px solid #cfc8cd; border-radius: 10px;
  font-size: 16px; background: #fff; color: var(--pa-ink); margin: 0; font-family: inherit;
}
.crmlms-pa .crmlms-pa-field select:focus,
.crmlms-pa .crmlms-pa-field textarea:focus { outline: 2px solid var(--pa-brand); outline-offset: 1px; border-color: var(--pa-brand); }
.crmlms-pa .crmlms-pa-field select[aria-invalid="true"],
.crmlms-pa .crmlms-pa-field textarea[aria-invalid="true"] { border-color: var(--pa-err); background: var(--pa-err-bg); }
.crmlms-pa-add { margin: 0 0 12px; cursor: pointer; }
.crmlms-pa-insieme { margin-top: 4px; }
.crmlms-pa a.crmlms-pa-btn { text-align: center; text-decoration: none; }
.crmlms-pa-gruppo {
  background: #fff; border: 1px solid var(--pa-line); border-radius: 18px; padding: 18px; margin: 0 0 20px;
}
.crmlms-pa-copy { display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; }
.crmlms-pa .crmlms-pa-copy input {
  flex: 1 1 220px; min-width: 0; padding: 10px 12px; border: 1px solid #cfc8cd; border-radius: 10px;
  font-size: 15px; background: #fafafa; color: var(--pa-ink); margin: 0;
}

/* Tema Kubio: pulsanti secondari, select e titoli delle nuove sezioni (stessa tecnica di sopra) */
html body[class] .crmlms-pa a.crmlms-pa-btn { display: block; color: #fff; text-decoration: none; }
html body[class] .crmlms-pa button.crmlms-pa-btn2 {
  background: #fff; color: var(--pa-brand); border: 2px solid var(--pa-brand); border-radius: 12px;
  padding: 10px 16px; font-size: 15px; font-weight: 700; line-height: 1.3;
  text-transform: none; letter-spacing: 0; box-shadow: none; width: auto; height: auto;
}
html body[class] .crmlms-pa button.crmlms-pa-btn2:hover { background: var(--pa-soft); color: var(--pa-brand); }
html body[class] .crmlms-pa button.crmlms-pa-rm {
  background: transparent; color: var(--pa-muted); border: 1px solid var(--pa-line); border-radius: 999px;
  padding: 4px 12px; font-size: 13px; font-weight: 700; line-height: 1.3;
  text-transform: none; letter-spacing: 0; box-shadow: none; width: auto; height: auto;
}
html body[class] .crmlms-pa .crmlms-pa-field select { height: auto; min-height: 48px; line-height: 1.3; }
html body[class] .crmlms-pa .crmlms-pa-gruppo h2 { font-size: 22px; line-height: 1.25; color: var(--pa-brand); margin: 0 0 8px; }
