/* ******************************************* */
/* SCHEDE CORSO: SEZIONI DAL DATABASE          */
/* classi del prototipo degli analisti, valide solo dentro .fz-proto */
/* ******************************************* */

/* token del prototipo */
.fz-proto {
  --bg: #f3f5f8;
  --blue: #315474;
  --blue-accent: #cce0f1;
  --blue-light: #e7f0f8;
  --font-text: "Inter", system-ui, sans-serif;
  --font-title: "Anybody", "Inter", sans-serif;
  --green: #27c06d;
  --green-dark: #0a7a34;
  --green-light: #ddfbea;
  --line: #e3e8ef;
  --muted: #5d7187;
  --navy: #143554;
  --price: var(--blue);
  --radius: 14px;
  --radius-sm: 10px;
  --red: #f6084a;
  --red-dark: #d0003f;
  --red-tint: rgba(246, 8, 74, 0.07);
  --shadow-card: 0 2px 12px rgba(49, 84, 116, 0.09);
  --white: #fff;
}

/* link e ancore */
.fz-proto :where(a:not(.btn)) {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.fz-proto [id] {
  scroll-margin-top: 7rem;
}

/* icone di categoria */
.fz-proto .cat-ico {
  background: var(--blue-light);
  border-radius: 9px;
  color: var(--blue);
  display: inline-grid;
  flex: 0 0 auto;
  font-size: 1.05rem;
  height: 2.1rem;
  place-items: center;
  width: 2.1rem;
}

.fz-proto .cat-ico.is-red {
  background: var(--red-tint);
  color: var(--red-dark);
}

/* testi, note e titoletti */
.fz-proto .link-arrow {
  font-weight: 700;
  text-decoration: none;
}

.fz-proto .link-arrow::after {
  content: " \2192";
}

.fz-proto .source-note {
  color: var(--muted);
  font-size: .8rem;
}

.fz-proto .ph {
  background: #fff4e5;
  border-radius: 4px;
  color: #8a4b00;
  font-weight: 600;
  padding: 0 .3rem;
  white-space: nowrap;
}

.fz-proto .sub-h {
  color: var(--navy);
  font-size: 1.05rem;
  margin: 2rem 0 .75rem;
}

.fz-proto .label-caps {
  color: var(--muted);
  font-family: var(--font-text);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  margin: 0 0 .45rem;
  text-transform: uppercase;
}

.fz-proto .note-line {
  background: var(--blue-light);
  border-left: 4px solid var(--blue);
  border-radius: 8px;
  font-size: .88rem;
  margin: .8rem 0 0;
  padding: .55rem .85rem;
}

.fz-proto .note-line a {
  font-weight: 700;
}

.fz-proto .intro {
  color: var(--navy);
  margin-bottom: 1rem;
}

.fz-proto h3.sub {
  font-size: 1.05rem;
  margin: 1.2rem 0 .5rem;
}

.fz-proto .info-line {
  align-items: flex-start;
  color: var(--muted);
  display: flex;
  font-size: .86rem;
  gap: .5rem;
  margin: .65rem 0 0;
}

.fz-proto .info-line .bi {
  color: var(--blue);
  line-height: 1.45;
}

@media (max-width: 575.98px) {
  .fz-proto .source-note {
    font-size: .84rem;
  }
}

/* piano degli esami */
.fz-proto .ex {
  display: grid;
  gap: .8rem;
}

.fz-proto .ex-block {
  background: var(--white);
  border-radius: 18px;
  box-shadow: var(--shadow-card);
  padding: 1rem 1.1rem;
}

.fz-proto .ex-h {
  align-items: center;
  color: var(--navy);
  display: flex;
  font-size: 1.12rem;
  gap: .6rem;
  margin: 0 0 .6rem;
}

.fz-proto .ex-num {
  background: var(--navy);
  border-radius: 50%;
  color: #fff;
  display: grid;
  flex: 0 0 auto;
  font-size: .9rem;
  height: 1.9rem;
  place-items: center;
  width: 1.9rem;
}

.fz-proto .ex-tot {
  background: var(--blue-light);
  border-radius: 999px;
  color: var(--navy);
  font-family: var(--font-text);
  font-size: .82rem;
  font-weight: 800;
  margin-left: auto;
  padding: .2rem .7rem;
  white-space: nowrap;
}

.fz-proto .ex-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.fz-proto .ex-list li {
  align-items: center;
  border-top: 1px solid var(--line);
  display: grid;
  font-size: .93rem;
  gap: .6rem;
  grid-template-columns: 5.6rem minmax(0, 1fr) auto;
  padding: .55rem 0;
}

.fz-proto .ex-list li:first-child {
  border-top: 0;
}

.fz-proto .ex-ssd {
  background: var(--blue-light);
  border-radius: 6px;
  color: var(--blue);
  font-size: .72rem;
  font-weight: 800;
  justify-self: start;
  padding: .15rem .4rem;
  white-space: nowrap;
}

.fz-proto .ex-name {
  color: var(--navy);
  font-weight: 600;
  min-width: 0;
}

.fz-proto .ex-c {
  color: var(--navy);
  font-size: .88rem;
  font-weight: 800;
  white-space: nowrap;
}

.fz-proto .ex-list.ex-plain li {
  grid-template-columns: 5.6rem minmax(0, 1fr);
}

.fz-proto .ex-list.ex-plain .ex-name small {
  color: var(--muted);
  display: block;
  font-size: .84rem;
  font-weight: 500;
  margin-top: .1rem;
}

.fz-proto .ex-final .ex-h {
  margin: 0;
}

.fz-proto .ex-sum {
  align-items: center;
  background: var(--navy);
  border-radius: 16px;
  color: #fff;
  display: flex;
  font-weight: 700;
  gap: .6rem;
  padding: .85rem 1.1rem;
}

.fz-proto .ex-sum .bi {
  font-size: 1.2rem;
}

.fz-proto .ex-sum b {
  margin-left: auto;
  white-space: nowrap;
}

.fz-proto .ex-note {
  color: var(--muted);
  font-size: .92rem;
  margin: 0 0 .7rem;
}

.fz-proto .ex-final .ex-note {
  margin: .5rem 0 0;
}

.fz-proto .ex-lang {
  background: #fbfcfe;
  border: 1px solid var(--line);
  border-radius: 14px;
  margin-top: .5rem;
}

.fz-proto .ex-lang summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  list-style: none;
  padding: .7rem .9rem;
  row-gap: .1rem;
}

.fz-proto .ex-lang summary::-webkit-details-marker {
  display: none;
}

.fz-proto .ex-lang-n {
  color: var(--navy);
  font-family: var(--font-title);
  font-size: 1.02rem;
  font-weight: 800;
  min-width: 0;
  overflow-wrap: break-word;
}

.fz-proto .ex-lang-m {
  color: var(--muted);
  font-size: .8rem;
}

.fz-proto .ex-lang summary .bi {
  color: var(--blue);
  margin-left: auto;
  order: 3;
  transition: transform .2s ease;
}

.fz-proto .ex-lang[open] summary .bi {
  transform: rotate(180deg);
}

.fz-proto .ex-lang[open] {
  background: var(--white);
  border-color: var(--blue-accent);
}

.fz-proto .ex-lang .ex-list {
  padding: 0 .9rem .5rem;
}

.fz-proto .ex-sub {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .05em;
  margin: .7rem 0 .35rem;
  text-transform: uppercase;
}

.fz-proto .dl-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.4rem;
}

@media (max-width: 575.98px) {
  .fz-proto .ex-block {
    border-radius: 16px;
    padding: .85rem .85rem;
  }

  .fz-proto .ex-list li {
    grid-template-areas: "ssd c" "nm c";
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: .2rem;
  }

  .fz-proto .ex-ssd {
    grid-area: ssd;
  }

  .fz-proto .ex-name {
    grid-area: nm;
  }

  .fz-proto .ex-c {
    grid-area: c;
  }

  .fz-proto .ex-h {
    font-size: 1.02rem;
  }

  .fz-proto .ex-list.ex-plain li {
    grid-template-areas: "ssd" "nm";
    grid-template-columns: minmax(0, 1fr);
  }

  .fz-proto .ex-lang summary {
    column-gap: .6rem;
    display: grid;
    grid-template-areas: "n go" "m go";
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: 0;
  }

  .fz-proto .ex-lang-n {
    grid-area: n;
  }

  .fz-proto .ex-lang-m {
    grid-area: m;
  }

  .fz-proto .ex-lang summary .bi {
    grid-area: go;
    margin: 0;
  }
}

/* etichette */
.fz-proto .chip {
  align-items: center;
  background: var(--blue-light);
  border-radius: 999px;
  color: var(--blue);
  display: inline-flex;
  font-size: .75rem;
  font-weight: 600;
  gap: .3rem;
  padding: .2rem .6rem;
  white-space: nowrap;
}

.fz-proto .chip-value {
  background: var(--green-light);
  color: var(--green-dark);
}

.fz-proto .chip-cat {
  background: transparent;
  border: 1px solid var(--blue-accent);
}

@media (max-width: 575.98px) {
  .fz-proto .chip {
    font-size: .8rem;
  }
}

/* docenti e ata */
.fz-proto .aud {
  align-items: center;
  border-radius: 6px;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: .7rem;
  font-weight: 800;
  gap: .3rem;
  letter-spacing: .04em;
  line-height: 1.3;
  padding: .16rem .5rem;
  text-transform: uppercase;
  white-space: nowrap;
}

.fz-proto .aud .bi {
  font-size: .82rem;
}

.fz-proto .aud-doc {
  background: var(--navy);
  color: #fff;
}

.fz-proto .aud-ata {
  background: #0f6b5c;
  color: #fff;
}

.fz-proto .aud-split {
  display: grid;
  gap: .6rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fz-proto .aud-split > div {
  background: var(--white);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  min-width: 0;
  padding: .85rem 1rem;
}

.fz-proto .aud-split ul {
  font-size: .9rem;
  margin: 0;
  padding-left: 1.1rem;
}

.fz-proto .aud-split li {
  margin: .15rem 0;
}

.fz-proto .aud-split .big {
  color: var(--green-dark);
  font-family: var(--font-title);
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.1;
  margin: .45rem 0 .1rem;
}

@media (max-width: 767.98px) {
  .fz-proto .aud-split {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 575.98px) {
  .fz-proto .aud {
    font-size: .8rem;
  }
}

/* tabella di confronto */
.fz-proto .vs {
  background: var(--white);
  border-collapse: separate;
  border-radius: var(--radius);
  border-spacing: 0;
  box-shadow: var(--shadow-card);
  font-size: .9rem;
  overflow: hidden;
  width: 100%;
}

.fz-proto .vs th,
.fz-proto .vs td {
  border-top: 1px solid var(--line);
  padding: .6rem .8rem;
  text-align: left;
  vertical-align: top;
}

.fz-proto .vs thead th {
  background: #f6f8fb;
  border-top: 0;
  font-size: .84rem;
}

.fz-proto .vs td.is-mine {
  background: #fff9fb;
  color: var(--navy);
  font-weight: 700;
}

.fz-proto .vs tbody th {
  color: var(--muted);
  font-size: .84rem;
  font-weight: 700;
  width: 28%;
}

.fz-proto .vs thead th.is-mine {
  background: #fff4f7;
  color: var(--red-dark);
}

.fz-proto .vs .go {
  font-weight: 700;
  text-decoration: none;
}

.fz-proto .vs td.n {
  color: var(--navy);
  font-family: var(--font-title);
  font-weight: 800;
  white-space: nowrap;
}

.fz-proto .vs tfoot td,
.fz-proto .vs tfoot th {
  background: #f6f8fb;
  color: var(--navy);
  font-weight: 800;
}

@media (max-width: 767.98px) {
  .fz-proto .vs th,
  .fz-proto .vs td {
    font-size: .84rem;
    padding: .5rem .55rem;
  }
}

@media (max-width: 359.98px) {
  .fz-proto .vs th,
  .fz-proto .vs td {
    font-size: .76rem;
    padding: .45rem .4rem;
  }

  .fz-proto table.vs th,
  .fz-proto table.vs td {
    font-size: .74rem;
    hyphens: auto;
    overflow-wrap: break-word;
    padding: .4rem .35rem;
  }

  .fz-proto table.vs {
    table-layout: fixed;
  }
}

/* pulsanti */
.fz-proto .btn {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  font-weight: 700;
  justify-content: center;
  min-height: 44px;
}

.fz-proto .btn-brand {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}

.fz-proto .btn-brand:hover {
  background: var(--red-dark);
  border-color: var(--red-dark);
  color: #fff;
}

.fz-proto .btn-ghost {
  background: transparent;
  border: 1.5px solid var(--blue-accent);
  color: var(--navy);
}

.fz-proto .btn-ghost:hover {
  background: var(--blue-light);
  color: var(--navy);
}

.fz-proto a.btn[href^="richiesta_informazioni"]:not([href*="lista=attesa"]) {
  background: linear-gradient(135deg, #0b5a4d 0%, #14806d 100%);
  border: 0;
  box-shadow: 0 8px 20px rgba(11, 90, 77, .28);
  color: #fff;
  font-weight: 800;
}

.fz-proto a.btn[href^="richiesta_informazioni"]:not([href*="lista=attesa"]):hover,
.fz-proto a.btn[href^="richiesta_informazioni"]:not([href*="lista=attesa"]):focus-visible {
  box-shadow: 0 12px 26px rgba(11, 90, 77, .36);
  color: #fff;
  filter: brightness(1.08);
}

.fz-proto a.btn[href^="richiesta_informazioni"]:not([href*="lista=attesa"]):focus-visible {
  outline: 3px solid #17917c;
  outline-offset: 3px;
}

/* versioni del corso */
.fz-proto .price {
  color: var(--price);
  font-family: var(--font-title);
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.fz-proto .vcards {
  display: grid;
  gap: .65rem;
}

.fz-proto .vcard {
  background: var(--white);
  border: 1.5px solid transparent;
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  padding: .95rem 1.1rem 1rem;
  transition: border-color .15s;
}

.fz-proto .vc-head {
  align-items: flex-start;
  display: flex;
  gap: .4rem 1rem;
  justify-content: space-between;
}

.fz-proto .vc-head h3 {
  color: var(--navy);
  font-size: 1.12rem;
  margin: 0;
}

.fz-proto .vc-head .vc-sub {
  color: var(--muted);
  font-size: .84rem;
  margin: .1rem 0 0;
}

.fz-proto .vc-head .price {
  font-size: 1.45rem;
}

.fz-proto .vc-list {
  display: grid;
  font-size: .88rem;
  gap: .25rem 1.25rem;
  list-style: none;
  margin: .65rem 0 .8rem;
  padding: 0;
}

.fz-proto .vc-list li {
  align-items: flex-start;
  display: flex;
  gap: .45rem;
  line-height: 1.4;
}

.fz-proto .vc-list .bi {
  color: var(--green-dark);
  flex: 0 0 auto;
}

.fz-proto .vc-cta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
}

.fz-proto .vc-tag {
  background: var(--red-tint);
  border-radius: 999px;
  color: var(--red-dark);
  display: none;
  font-family: var(--font-text);
  font-size: .7rem;
  font-weight: 700;
  margin-left: .35rem;
  padding: .1rem .5rem;
  vertical-align: 2px;
}

@media (max-width: 767.98px) {
  .fz-proto .vcard {
    padding: .85rem .95rem .9rem;
  }

  .fz-proto .vc-list {
    font-size: .86rem;
  }
}

@media (min-width: 768px) {
  .fz-proto .vc-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* riquadro del manuale */
.fz-proto .box-soft {
  background: var(--blue-light);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
}

.fz-proto .own-book {
  margin-top: 1rem;
}

.fz-proto .own-book h3 {
  color: var(--navy);
  font-family: var(--font-text);
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 .35rem;
}

.fz-proto .own-book ol {
  font-size: .9rem;
  margin: 0 0 .4rem;
  padding-left: 1.2rem;
}

.fz-proto .own-book p {
  font-size: .9rem;
  margin: 0;
}

@media (max-width: 767.98px) {
  .fz-proto .own-book {
    padding: .85rem 1rem;
  }
}

/* servizio di valutazione */
.fz-proto .svc-box {
  align-items: center;
  background: var(--white);
  border: 1.5px dashed var(--blue-accent);
  border-radius: var(--radius-sm);
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
  margin-top: 1rem;
  padding: .75rem .95rem;
}

.fz-proto .svc-box h3 {
  color: var(--navy);
  font-family: var(--font-text);
  font-size: .95rem;
  font-weight: 700;
  margin: 0 0 .15rem;
}

.fz-proto .svc-box p {
  color: var(--muted);
  font-size: .82rem;
  margin: 0 0 .35rem;
}

.fz-proto .svc-box .svc-ico {
  color: var(--red-dark);
  font-size: 1.5rem;
  line-height: 1;
}

.fz-proto .svc-box .svc-txt {
  flex: 1 1 16rem;
  min-width: 0;
}

.fz-proto .svc-box .svc-txt p {
  margin: 0;
}

/* fa per te e altri percorsi */
.fz-proto .fit-grid {
  display: grid;
  gap: .6rem;
  grid-template-columns: minmax(0, 1fr);
}

.fz-proto .fit,
.fz-proto .notyours {
  background: var(--white);
  border-radius: var(--radius-sm);
  padding: .8rem .95rem .85rem;
}

.fz-proto .fit {
  border-left: 4px solid var(--green);
  box-shadow: var(--shadow-card);
}

.fz-proto .notyours {
  border: 1.5px dashed var(--blue-accent);
}

.fz-proto .fit h2,
.fz-proto .notyours h2 {
  color: var(--muted);
  font-family: var(--font-text);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  margin: 0 0 .45rem;
  text-transform: uppercase;
}

.fz-proto .fit ul {
  display: grid;
  font-size: .9rem;
  gap: .35rem;
  line-height: 1.35;
  list-style: none;
  margin: 0;
  padding: 0;
}

.fz-proto .fit li {
  align-items: flex-start;
  display: flex;
  gap: .5rem;
}

.fz-proto .fit li .bi {
  color: var(--green-dark);
  flex: 0 0 auto;
  font-size: 1rem;
  line-height: 1.3;
}

.fz-proto .notyours ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.fz-proto .notyours li + li {
  border-top: 1px solid var(--line);
}

.fz-proto .notyours a {
  align-items: center;
  color: var(--navy);
  display: flex;
  gap: .6rem;
  padding: .4rem 0;
  text-decoration: none;
}

.fz-proto .notyours a:hover .ny-t {
  color: var(--red-dark);
  text-decoration: underline;
}

.fz-proto .notyours .ny-w {
  color: var(--muted);
  display: block;
  font-size: .76rem;
  line-height: 1.25;
}

.fz-proto .notyours .ny-t {
  display: block;
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.25;
}

.fz-proto .notyours .bi-chevron-right {
  color: #9aabbd;
  flex: 0 0 auto;
  margin-left: auto;
}

@media (min-width: 768px) {
  .fz-proto .fit-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}

/* requisiti */
.fz-proto .checks {
  display: grid;
  gap: .6rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.fz-proto .checks li {
  align-items: flex-start;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  display: flex;
  font-size: .94rem;
  gap: .65rem;
  padding: .75rem 1rem;
}

.fz-proto .checks .bi {
  flex: 0 0 auto;
  font-size: 1.1rem;
  line-height: 1.35;
}

.fz-proto .checks .ok .bi {
  color: var(--green-dark);
}

.fz-proto .checks .no {
  background: #fbfcfe;
  border-style: dashed;
}

.fz-proto .checks .no .bi {
  color: var(--red-dark);
}

.fz-proto .unsure {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-size: .92rem;
  gap: .4rem .9rem;
  margin-top: 1rem;
}

.fz-proto .cfu-note {
  align-items: flex-start;
  color: var(--muted);
  display: flex;
  font-size: .86rem;
  gap: .5rem;
  margin: .75rem 0 0;
}

.fz-proto .cfu-note .bi {
  color: var(--blue);
  line-height: 1.45;
}

.fz-proto .checks .alt {
  background: #fbfcfe;
  border-style: dashed;
}

.fz-proto .checks .alt .bi {
  color: var(--blue);
}

.fz-proto .checks + .label-caps {
  margin-top: 1rem;
}

.fz-proto .checks.two li {
  font-size: .9rem;
}

.fz-proto .checks.two .bi {
  color: var(--green-dark);
}

@media (max-width: 767.98px) {
  .fz-proto .checks li {
    font-size: .9rem;
  }

  .fz-proto .checks.two li {
    font-size: .86rem;
    gap: .55rem;
    padding: .5rem .75rem;
  }
}

@media (min-width: 1200px) {
  .fz-proto .checks.two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* cosa ottieni */
.fz-proto .gains {
  display: grid;
  gap: .75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.fz-proto .gains li {
  background: var(--white);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  display: grid;
  gap: .1rem .75rem;
  grid-template-columns: 2.1rem minmax(0, 1fr);
  padding: 1rem 1.15rem;
}

.fz-proto .gains h3 {
  color: var(--navy);
  font-family: var(--font-text);
  font-size: .98rem;
  margin: .1rem 0 .1rem;
}

.fz-proto .gains p {
  color: var(--muted);
  font-size: .88rem;
  grid-column: 2;
  margin: 0;
}

@media (max-width: 767.98px) {
  .fz-proto .gains li {
    align-items: center;
    grid-template-columns: 2.1rem minmax(0, 1fr);
    padding: .7rem .85rem;
  }

  .fz-proto .gains p {
    grid-column: 1 / -1;
    margin-top: .3rem;
  }
}

/* prova finale */
.fz-proto .exam {
  align-items: flex-start;
  display: flex;
  font-size: .9rem;
  gap: .65rem;
}

.fz-proto .exam .bi {
  color: var(--blue);
  font-size: 1.15rem;
  line-height: 1.3;
}

.fz-proto .exam:has(+ .dl-row) {
  margin-bottom: .5rem;
}

.fz-proto .exam + .dl-row {
  gap: .4rem 1.4rem;
  margin-top: .6rem;
}

/* costi e rate */
.fz-proto .costs {
  background: var(--white);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  margin: 0 0 .9rem;
  overflow: hidden;
}

.fz-proto .costs > div {
  border-top: 1px solid var(--line);
  display: grid;
  gap: .15rem 1rem;
  grid-template-columns: 10rem minmax(0, 1fr);
  padding: .7rem 1rem;
}

.fz-proto .costs > div:first-child {
  border-top: 0;
}

.fz-proto .costs > div.is-tot {
  background: var(--blue-light);
}

.fz-proto .costs dt {
  font-size: .92rem;
  font-weight: 700;
}

.fz-proto .costs dd {
  color: var(--muted);
  font-size: .86rem;
  margin: 0;
}

.fz-proto .costs dd b {
  color: var(--navy);
  display: block;
  font-size: 1rem;
}

.fz-proto .costs dd b.cp {
  color: var(--red-dark);
  font-family: var(--font-title);
  font-size: 1.15rem;
  font-weight: 800;
}

/* bando chiuso: data-bando="chiuso" sulla sezione */
.fz-proto:not([data-bando="chiuso"]) .costs > .is-closed,
.fz-proto[data-bando="chiuso"] .costs > .is-open {
  display: none;
}

@media (max-width: 767.98px) {
  .fz-proto .costs > div {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* obiettivi */
.fz-proto .aims {
  font-size: .9rem;
  margin: .2rem 0 .8rem;
  padding-left: 1.1rem;
}

.fz-proto .aims li {
  margin-bottom: .2rem;
}

/* ricerca della classe di concorso */
.fz-proto .cls-search {
  background: var(--white);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  margin: .8rem 0 .9rem;
  padding: .8rem .95rem;
}

.fz-proto .cls-search label {
  display: block;
  font-size: .92rem;
  font-weight: 700;
  margin-bottom: .35rem;
}

.fz-proto .cls-search .input-group-text {
  background: var(--white);
  border-color: var(--line);
  color: var(--muted);
}

.fz-proto .cls-search .form-control {
  border-color: var(--line);
  font-size: 1rem;
  min-height: 44px;
}

.fz-proto .cls-search .form-control:focus {
  border-color: var(--blue-accent);
  box-shadow: 0 0 0 .2rem rgba(49,84,116,.12);
}

.fz-proto .cls-count {
  color: var(--muted);
  font-size: .8rem;
  margin: .4rem 0 0;
  min-height: 1.2em;
}

.fz-proto .cls-group {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  margin-bottom: .6rem;
  padding: .8rem .95rem .9rem;
}

.fz-proto .cls-head {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: .1rem .75rem;
  justify-content: space-between;
  margin-bottom: .5rem;
}

.fz-proto .cls-head h3 {
  color: var(--navy);
  font-size: 1.05rem;
  margin: 0;
}

.fz-proto .cls-head .n {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
}

.fz-proto .cls-list {
  column-gap: 1.5rem;
  columns: 2 16rem;
  font-size: .85rem;
  line-height: 1.28;
  list-style: none;
  margin: 0;
  padding: 0;
}

.fz-proto .cls-list li {
  break-inside: avoid;
  padding: .15rem 0 .15rem 3.4rem;
  text-indent: -3.4rem;
}

.fz-proto .cls-more {
  display: none;
  font-size: .84rem;
  margin-top: .45rem;
  padding: .3rem .8rem;
}

.fz-proto .cls-list li b {
  color: var(--blue);
  display: inline-block;
  font-variant-numeric: tabular-nums;
  margin-right: .3rem;
  text-indent: 0;
  width: 3.1rem;
}

.fz-proto .cls-list li small {
  color: var(--muted);
  text-indent: 0;
}

.fz-proto .cls-list li mark {
  background: #fff1a8;
  color: inherit;
  padding: 0;
}

.fz-proto .cls-empty {
  background: var(--white);
  border: 1.5px dashed var(--blue-accent);
  border-radius: var(--radius-sm);
  font-size: .9rem;
  margin: 0 0 .6rem;
  padding: .8rem .95rem;
}

@media (max-width: 767.98px) {
  .fz-proto .cls-list {
    columns: 1;
    font-size: .85rem;
  }

  .fz-proto .cls-list li {
    padding-bottom: .18rem;
    padding-top: .18rem;
  }

  .fz-proto .cls-group.is-collapsed .cls-list li:nth-child(n+7) {
    display: none;
  }

  .fz-proto .cls-group.is-collapsed .cls-more {
    display: inline-flex;
  }
}

/* tabella dei cfu */
.fz-proto .cfu-sum {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: 0 0 .75rem;
}

.fz-proto .cfu-sum .chip {
  font-size: .8rem;
  padding: .25rem .7rem;
}

.fz-proto .cfu-tab {
  background: var(--white);
  border-collapse: separate;
  border-radius: var(--radius);
  border-spacing: 0;
  box-shadow: var(--shadow-card);
  font-size: .92rem;
  margin: 0 0 .9rem;
  overflow: hidden;
  width: 100%;
}

.fz-proto .cfu-tab thead th {
  background: var(--blue-light);
  color: var(--blue);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .04em;
  padding: .6rem .9rem;
  text-align: left;
  text-transform: uppercase;
}

.fz-proto .cfu-tab thead th.c-n {
  text-align: right;
}

.fz-proto .cfu-tab td {
  border-top: 1px solid var(--line);
  padding: .62rem .9rem;
  vertical-align: middle;
}

.fz-proto .cfu-tab .grp th {
  background: #fbfcfe;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .05em;
  padding: .5rem .9rem;
  text-align: left;
  text-transform: uppercase;
}

.fz-proto .cfu-tab .grp th span {
  color: var(--navy);
}

.fz-proto .cfu-tab .c-name {
  line-height: 1.3;
}

.fz-proto .cfu-tab .c-name small {
  color: var(--muted);
  display: block;
  font-size: .78rem;
  margin-top: .1rem;
}

.fz-proto .cfu-tab .c-bar {
  width: 32%;
}

.fz-proto .cfu-tab .c-n {
  color: var(--navy);
  font-weight: 800;
  text-align: right;
  white-space: nowrap;
  width: 5.5rem;
}

.fz-proto .cfu-tab .c-n small {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 600;
}

.fz-proto .bar {
  background: var(--bg);
  border-radius: 999px;
  display: block;
  height: .5rem;
  overflow: hidden;
}

.fz-proto .bar > span {
  background: var(--blue);
  border-radius: 999px;
  display: block;
  height: 100%;
  width: var(--w);
}

.fz-proto .is-tir .bar > span {
  background: var(--green-dark);
}

.fz-proto .cfu-tab tfoot td {
  background: var(--blue-light);
  border-top: 1px solid var(--blue-accent);
  font-weight: 800;
}

@media (max-width: 991.98px) {
  .fz-proto .cfu-tab,
  .fz-proto .cfu-tab tbody,
  .fz-proto .cfu-tab tfoot {
    display: block;
    width: 100%;
  }

  .fz-proto .cfu-tab thead {
    display: none;
  }

  .fz-proto .cfu-tab tr {
    align-items: center;
    border-top: 1px solid var(--line);
    display: grid;
    gap: .35rem .9rem;
    grid-template-areas: "name n" "bar bar";
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .6rem .9rem;
  }

  .fz-proto .cfu-tab tbody:first-of-type tr.grp {
    border-top: 0;
  }

  .fz-proto .cfu-tab td,
  .fz-proto .cfu-tab th {
    border: 0;
    display: block;
    padding: 0;
    width: auto;
  }

  .fz-proto .cfu-tab .c-name {
    grid-area: name;
    min-width: 0;
  }

  .fz-proto .cfu-tab .c-n {
    grid-area: n;
  }

  .fz-proto .cfu-tab .c-bar {
    grid-area: bar;
    width: auto;
  }

  .fz-proto .cfu-tab tr.grp {
    background: #fbfcfe;
    display: block;
    padding: .45rem .9rem;
  }

  .fz-proto .cfu-tab .grp th {
    background: none;
    border: 0;
    padding: 0;
  }

  .fz-proto .cfu-tab tfoot tr {
    background: var(--blue-light);
    border-top: 1px solid var(--blue-accent);
    grid-template-areas: "name n";
  }

  .fz-proto .cfu-tab tfoot td {
    background: none;
    border: 0;
  }
}

/* avviso sull'esame */
.fz-proto .exam-warn {
  align-items: flex-start;
  background: #fff4e5;
  border: 1px solid #f5d3a6;
  border-radius: var(--radius-sm);
  color: #6b3a00;
  display: flex;
  font-size: .9rem;
  gap: .65rem;
  line-height: 1.45;
  margin-top: .85rem;
  padding: .7rem .9rem;
}

.fz-proto .exam-warn .bi {
  color: #b45f00;
  flex: 0 0 auto;
  font-size: 1.15rem;
  line-height: 1.25;
}

.fz-proto .exam-warn b {
  color: #5a3000;
}

.fz-proto .exam-warn a {
  color: #6b3a00;
  font-weight: 700;
}

/* punti gps */
.fz-proto .pts {
  display: grid;
  gap: .5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0 0 .9rem;
}

.fz-proto .pts > div {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  min-width: 0;
  padding: .75rem .9rem;
}

.fz-proto .pts .v {
  color: var(--green-dark);
  font-family: var(--font-title);
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.05;
}

.fz-proto .pts .v small {
  font-size: .9rem;
}

.fz-proto .pts .l {
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.35;
  margin-top: .2rem;
}

.fz-proto .pts > div.is-main {
  background: #f4fdf8;
  border-color: rgba(10,122,52,.35);
}

.fz-proto .pts .v.is-navy {
  color: var(--navy);
}

@media (max-width: 767.98px) {
  .fz-proto .pts {
    grid-template-columns: minmax(0, 1fr);
  }

  .fz-proto .pts > div {
    align-items: baseline;
    display: flex;
    gap: .7rem;
    padding: .6rem .85rem;
  }

  .fz-proto .pts .v {
    flex: 0 0 4.6rem;
    font-size: 1.35rem;
  }

  .fz-proto .pts .l {
    margin: 0;
  }
}

/* livelli linguistici */
.fz-proto .ladder {
  display: grid;
  gap: .3rem;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  list-style: none;
  margin: 0 0 .9rem;
  padding: 0;
}

.fz-proto .ladder li {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  min-width: 0;
  padding: .45rem .3rem .4rem;
  text-align: center;
}

.fz-proto .ladder .lv {
  color: var(--muted);
  display: block;
  font-family: var(--font-title);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.1;
}

.fz-proto .ladder .pt {
  color: var(--muted);
  display: block;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.2;
  margin-top: .15rem;
}

.fz-proto .ladder li.has-pts .lv {
  color: var(--navy);
}

.fz-proto .ladder li.has-pts .pt {
  color: var(--green-dark);
}

.fz-proto .ladder li.is-cur {
  background: var(--red);
  border-color: var(--red);
}

.fz-proto .ladder li.is-cur .lv,
.fz-proto .ladder li.is-cur .pt {
  color: #fff;
}

.fz-proto .ladder-key {
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: .76rem;
  gap: .2rem 1rem;
  justify-content: space-between;
  margin: -.55rem 0 .9rem;
}

.fz-proto .lvl-name {
  font-size: .95rem;
  margin: 0 0 .7rem;
}

.fz-proto .lvl-name b {
  color: var(--red-dark);
}

@media (max-width: 575.98px) {
  .fz-proto .ladder {
    gap: .2rem;
  }

  .fz-proto .ladder li {
    padding: .4rem .1rem .35rem;
  }

  .fz-proto .ladder .lv {
    font-size: .95rem;
  }

  .fz-proto .ladder .pt {
    font-size: .64rem;
  }
}

/* cosa saprai fare */
.fz-proto .can {
  display: grid;
  gap: .5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.fz-proto .can li {
  background: var(--white);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  min-width: 0;
  padding: .8rem .9rem;
}

.fz-proto .can h3 {
  align-items: center;
  color: var(--navy);
  display: flex;
  font-family: var(--font-text);
  font-size: .95rem;
  gap: .45rem;
  margin: 0 0 .25rem;
}

.fz-proto .can h3 .bi {
  color: var(--blue);
}

.fz-proto .can p {
  color: var(--muted);
  font-size: .87rem;
  margin: 0;
}

@media (max-width: 991.98px) {
  .fz-proto .can {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* riquadro clil */
.fz-proto .clil-box {
  align-items: start;
  background: var(--white);
  border: 1.5px solid rgba(246,8,74,.4);
  border-radius: var(--radius);
  display: grid;
  gap: .2rem .85rem;
  grid-template-columns: auto minmax(0, 1fr);
  margin-top: .9rem;
  padding: .95rem 1.1rem;
}

.fz-proto .clil-box h3 {
  font-size: 1.1rem;
  margin: .1rem 0 .25rem;
}

.fz-proto .clil-box p {
  font-size: .9rem;
  margin: 0 0 .4rem;
}

.fz-proto .clil-sum {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-size: .84rem;
  font-weight: 700;
  gap: .3rem .45rem;
  margin: 0 0 .5rem;
}

.fz-proto .clil-sum .chip {
  font-size: .8rem;
}

.fz-proto .clil-sum .op {
  color: var(--muted);
}

@media (max-width: 767.98px) {
  .fz-proto .clil-box {
    grid-template-columns: minmax(0, 1fr);
    padding: .85rem .95rem;
  }

  .fz-proto .clil-box .cat-ico {
    display: none;
  }
}

/* certificazioni per english for schools */
.fz-proto .gps-hint {
  background: linear-gradient(135deg, #eef4fb 0%, #f7f9fc 60%, #fdf1f3 100%);
  border: 1px solid #dbe5f1;
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(20, 53, 84, .07);
  margin-top: 1rem;
  overflow: hidden;
  padding: 1rem 1.05rem .9rem;
  position: relative;
}

.fz-proto .gps-hint::after {
  background: radial-gradient(circle, rgba(200, 16, 46, .1), transparent 70%);
  border-radius: 50%;
  content: "";
  height: 130px;
  pointer-events: none;
  position: absolute;
  right: -40px;
  top: -40px;
  width: 130px;
}

.fz-proto .gh-head {
  align-items: flex-start;
  display: flex;
  gap: .75rem;
}

.fz-proto .gh-ico {
  background: linear-gradient(140deg, #143554, #2d5c8a);
  border-radius: 13px;
  box-shadow: 0 6px 14px rgba(20, 53, 84, .22);
  color: #ffd56b;
  display: grid;
  flex: 0 0 auto;
  font-size: 1.1rem;
  height: 2.5rem;
  place-items: center;
  width: 2.5rem;
}

.fz-proto .gh-t {
  color: var(--navy);
  font-family: "Anybody", sans-serif;
  font-size: 1.12rem;
  font-weight: 800;
  line-height: 1.2;
  margin: 0;
}

.fz-proto .gh-s {
  color: #43566b;
  font-size: .9rem;
  line-height: 1.45;
  margin: .25rem 0 0;
}

.fz-proto .gh-s a {
  color: var(--navy);
  font-weight: 700;
}

.fz-proto .gh-lvs {
  display: grid;
  gap: .5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: .85rem;
}

.fz-proto .gh-lv {
  align-items: center;
  background: #fff;
  border: 1px solid #dbe5f1;
  border-radius: 14px;
  color: var(--navy);
  display: grid;
  gap: .15rem .45rem;
  grid-template-areas: "f l a" "p p p";
  grid-template-columns: auto 1fr auto;
  min-width: 0;
  padding: .6rem .7rem;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.fz-proto .gh-lv:hover {
  border-color: #012169;
  box-shadow: 0 10px 20px rgba(1, 33, 105, .12);
  color: var(--navy);
  transform: translateY(-2px);
}

.fz-proto .gh-flag {
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(0,0,0,.08);
  grid-area: f;
  height: .95rem;
  width: 1.7rem;
}

.fz-proto .gh-l {
  font-family: "Anybody", sans-serif;
  font-size: 1.15rem;
  font-weight: 900;
  grid-area: l;
  line-height: 1;
}

.fz-proto .gh-lv > .bi {
  color: #C8102E;
  font-size: .85rem;
  grid-area: a;
  transition: transform .15s ease;
}

.fz-proto .gh-lv:hover > .bi {
  transform: translateX(3px);
}

.fz-proto .gh-p {
  color: #0b5a4d;
  font-size: .8rem;
  font-weight: 800;
  grid-area: p;
}

@media (max-width: 419.98px) {
  .fz-proto .gh-lv {
    grid-template-areas: "f l" "p p";
    grid-template-columns: auto 1fr;
    padding: .55rem .6rem;
  }

  .fz-proto .gh-lv > .bi {
    display: none;
  }
}

@media (max-width: 359.98px) {
  .fz-proto .gh-lvs {
    grid-template-columns: 1fr;
  }

  .fz-proto .gh-lv {
    grid-template-areas: "f l p a";
    grid-template-columns: auto auto 1fr auto;
  }

  .fz-proto .gh-p {
    justify-self: end;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fz-proto .gh-lv,
  .fz-proto .gh-lv > .bi {
    transition: none;
  }

  .fz-proto .gh-lv:hover {
    transform: none;
  }
}

/* piattaforma di esercitazione */
.fz-proto .pf-strip {
  display: grid;
  gap: .5rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: .75rem;
}

.fz-proto .pf-strip > div {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  min-width: 0;
  padding: .65rem .8rem;
}

.fz-proto .pf-strip .v {
  color: var(--green-dark);
  display: block;
  font-family: var(--font-title);
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.1;
}

.fz-proto .pf-strip .l {
  color: var(--muted);
  display: block;
  font-size: .78rem;
  line-height: 1.3;
}

@media (max-width: 767.98px) {
  .fz-proto .pf-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* contenuti del manuale */
.fz-proto .ctab {
  background: var(--white);
  border-collapse: separate;
  border-radius: var(--radius);
  border-spacing: 0;
  box-shadow: var(--shadow-card);
  font-size: .9rem;
  overflow: hidden;
  width: 100%;
}

.fz-proto .ctab th {
  background: var(--blue-light);
  color: var(--blue);
  font-size: .72rem;
  letter-spacing: .04em;
  line-height: 1.25;
  padding: .55rem .75rem;
  text-align: left;
  text-transform: uppercase;
  vertical-align: bottom;
}

.fz-proto .ctab td {
  border-top: 1px solid var(--line);
  overflow-wrap: anywhere;
  padding: .55rem .75rem;
  vertical-align: middle;
}

.fz-proto .ctab th.c,
.fz-proto .ctab td.c {
  text-align: center;
  width: 5rem;
}

.fz-proto .ctab td.a {
  font-weight: 700;
  width: 27%;
}

.fz-proto .ctab td.d {
  color: var(--muted);
  font-size: .86rem;
}

.fz-proto .ctab .yes {
  color: var(--green-dark);
  font-size: 1.15rem;
  line-height: 1;
}

.fz-proto .ctab .dash {
  color: #9aabbd;
}

.fz-proto .ctab .num {
  font-weight: 800;
}

.fz-proto .ctab .incl {
  background: var(--green-light);
  border-radius: 999px;
  color: var(--green-dark);
  font-size: .74rem;
  font-weight: 700;
  padding: .12rem .55rem;
  white-space: nowrap;
}

.fz-proto .ctab .lbl {
  display: none;
}

@media (max-width: 991.98px) {
  .fz-proto .ctab,
  .fz-proto .ctab tbody,
  .fz-proto .ctab tr,
  .fz-proto .ctab td {
    display: block;
    width: auto;
  }

  .fz-proto .ctab thead {
    display: none;
  }

  .fz-proto .ctab tr {
    align-items: center;
    border-top: 1px solid var(--line);
    display: grid;
    gap: .1rem .6rem;
    grid-template-columns: minmax(0, 1fr) auto auto;
    padding: .55rem .85rem;
  }

  .fz-proto .ctab tr:first-child {
    border-top: 0;
  }

  .fz-proto .ctab td,
  .fz-proto .ctab th.c,
  .fz-proto .ctab td.c,
  .fz-proto .ctab td.a {
    border: 0;
    padding: 0;
    width: auto;
  }

  .fz-proto .ctab td.a {
    grid-column: 1;
    grid-row: 1;
    line-height: 1.25;
  }

  .fz-proto .ctab td.d {
    font-size: .82rem;
    grid-column: 1 / -1;
    grid-row: 2;
    line-height: 1.35;
  }

  .fz-proto .ctab td.c {
    font-size: .8rem;
    grid-row: 1;
    text-align: right;
    white-space: nowrap;
  }

  .fz-proto .ctab td.c.both {
    grid-column: 2 / 4;
  }

  .fz-proto .ctab .lbl {
    color: var(--muted);
    display: inline;
    font-size: .74rem;
    font-weight: 600;
    margin-right: .2rem;
  }

  .fz-proto .ctab .yes {
    font-size: 1rem;
    vertical-align: -1px;
  }
}

/* normativa */
.fz-proto .norms {
  display: grid;
  font-size: .9rem;
  gap: .3rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.fz-proto .norms li {
  align-items: flex-start;
  display: flex;
  gap: .55rem;
}

.fz-proto .norms .bi {
  color: var(--blue);
  flex: 0 0 auto;
  line-height: 1.5;
}

/* classi di concorso del master */
.fz-proto .cls {
  display: grid;
  gap: .45rem;
  list-style: none;
  margin: 0 0 .9rem;
  padding: 0;
}

.fz-proto .cls li {
  align-items: center;
  background: var(--white);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  display: grid;
  gap: .1rem .8rem;
  grid-template-columns: auto minmax(0, 1fr);
  padding: .65rem .9rem;
}

.fz-proto .cls .code {
  background: var(--blue-light);
  border-radius: 8px;
  color: var(--navy);
  font-family: var(--font-title);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1;
  padding: .3rem .55rem;
  white-space: nowrap;
}

.fz-proto .cls .nm {
  color: var(--navy);
  display: block;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.3;
}

.fz-proto .cls .gr {
  color: var(--muted);
  display: block;
  font-size: .8rem;
}

.fz-proto .newcls {
  align-items: center;
  background: #fff7e8;
  border: 1.5px solid #f3c77a;
  border-radius: 16px;
  display: grid;
  gap: .2rem .8rem;
  grid-template-columns: auto minmax(0, 1fr);
  margin: 0 0 1rem;
  padding: .85rem 1rem;
}

.fz-proto .newcls .tag {
  background: #d9861a;
  border-radius: 12px;
  color: #fff;
  font-family: var(--font-title);
  font-size: 1.15rem;
  font-weight: 800;
  grid-row: span 2;
  line-height: 1;
  padding: .5rem .6rem;
  white-space: nowrap;
}

.fz-proto .newcls b {
  color: #6b3a00;
  font-size: .95rem;
  line-height: 1.3;
}

.fz-proto .newcls span.t {
  color: #6b4a1f;
  font-size: .85rem;
  line-height: 1.4;
}

/* master lingue straniere */
.fz-proto .mx-cls {
  display: grid;
  gap: .7rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}

.fz-proto .mx-cls li {
  align-items: center;
  background: linear-gradient(160deg, #e9f1fa 0%, #fff 70%);
  border: 1px solid #d6e4f2;
  border-radius: 18px;
  display: grid;
  gap: .1rem .8rem;
  grid-template-areas: "code nm" "code gr";
  grid-template-columns: auto minmax(0, 1fr);
  padding: .9rem 1rem;
}

.fz-proto .mx-cls .code {
  background: var(--navy);
  border-radius: 12px;
  color: #fff;
  font-family: var(--font-title);
  font-size: 1.15rem;
  font-weight: 800;
  grid-area: code;
  line-height: 1;
  padding: .55rem .6rem;
}

.fz-proto .mx-cls .nm {
  color: var(--navy);
  font-weight: 800;
  grid-area: nm;
  line-height: 1.25;
}

.fz-proto .mx-cls .gr {
  color: var(--muted);
  font-size: .82rem;
  grid-area: gr;
}

.fz-proto .mx-gain {
  display: grid;
  gap: .7rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}

.fz-proto .mx-gain li {
  background: var(--white);
  border-radius: 18px;
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  gap: .2rem;
  padding: 1rem;
}

.fz-proto .mx-gain b {
  color: var(--navy);
  font-size: 1rem;
  margin-top: .45rem;
}

.fz-proto .mx-gain li > span:last-child {
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.4;
}

.fz-proto .mx-ico {
  background: var(--blue-light);
  border-radius: 13px;
  color: var(--blue);
  display: grid;
  flex: 0 0 auto;
  font-size: 1.2rem;
  height: 2.6rem;
  place-items: center;
  width: 2.6rem;
}

.fz-proto .mx-ico.is-red {
  background: var(--red-tint);
  color: var(--red-dark);
}

.fz-proto .mx-ico.is-g {
  background: var(--green-light);
  color: var(--green-dark);
}

.fz-proto .mx-fit {
  display: grid;
  gap: .45rem;
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}

.fz-proto .mx-fit li {
  align-items: flex-start;
  display: flex;
  font-size: .94rem;
  gap: .55rem;
  line-height: 1.45;
}

.fz-proto .mx-fit .ok .bi {
  color: var(--green);
  margin-top: .15rem;
}

.fz-proto .mx-fit .no .bi {
  color: var(--red);
  margin-top: .15rem;
}

.fz-proto .mx-check {
  align-items: center;
  background: var(--navy);
  border-radius: 16px;
  color: #fff;
  display: flex;
  font-size: .92rem;
  gap: .75rem;
  padding: .85rem 1rem;
  text-decoration: none;
}

.fz-proto .mx-check:hover {
  background: #0f2a45;
  color: #fff;
}

.fz-proto .mx-check > .bi:first-child {
  background: rgba(255,255,255,.14);
  border-radius: 11px;
  display: grid;
  flex: 0 0 auto;
  height: 2.2rem;
  place-items: center;
  width: 2.2rem;
}

.fz-proto .mx-check span {
  flex: 1 1 auto;
  min-width: 0;
}

.fz-proto .mx-cost {
  align-items: stretch;
  display: grid;
  gap: .8rem;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
}

.fz-proto .mx-price {
  background: linear-gradient(150deg, #143554 0%, #2d5c8a 100%);
  border-radius: 18px;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: .1rem;
  justify-content: center;
  padding: 1.1rem 1.2rem;
}

.fz-proto .mx-price span {
  font-size: .82rem;
  font-weight: 700;
  opacity: .85;
}

.fz-proto .mx-price b {
  font-family: var(--font-title);
  font-size: 2.1rem;
  font-weight: 800;
  line-height: 1.1;
}

.fz-proto .mx-price small {
  font-size: .8rem;
  opacity: .8;
}

.fz-proto .mx-pay {
  display: grid;
  gap: .5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.fz-proto .mx-pay li {
  align-items: center;
  background: var(--white);
  border-radius: 14px;
  box-shadow: var(--shadow-card);
  color: var(--muted);
  display: flex;
  font-size: .92rem;
  gap: .7rem;
  padding: .75rem .9rem;
}

.fz-proto .mx-pay b {
  color: var(--navy);
}

.fz-proto .mx-pay .bi {
  color: var(--blue);
  font-size: 1.15rem;
}

.fz-proto .lgcodes {
  display: grid;
  gap: .45rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}

.fz-proto .lgcodes li {
  background: var(--white);
  border-radius: 12px;
  box-shadow: var(--shadow-card);
  color: var(--muted);
  font-size: .82rem;
  padding: .55rem .7rem;
}

.fz-proto .lgcodes b {
  color: var(--navy);
  display: block;
  font-size: .92rem;
}

@media (max-width: 767.98px) {
  .fz-proto .mx-cls,
  .fz-proto .mx-gain,
  .fz-proto .mx-cost {
    gap: .55rem;
    grid-template-columns: minmax(0, 1fr);
  }

  .fz-proto .mx-gain li {
    align-items: center;
    column-gap: .8rem;
    display: grid;
    grid-template-areas: "ico b" "ico t";
    grid-template-columns: auto minmax(0, 1fr);
    padding: .85rem .9rem;
    row-gap: .1rem;
  }

  .fz-proto .mx-gain .mx-ico {
    grid-area: ico;
  }

  .fz-proto .mx-gain b {
    grid-area: b;
    margin: 0;
  }

  .fz-proto .mx-gain li > span:last-child {
    grid-area: t;
  }

  .fz-proto .mx-price b {
    font-size: 1.8rem;
  }
}

@media (max-width: 575.98px) {
  .fz-proto .lgcodes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* icone assenti nel Bootstrap Icons del sito, piu' vecchio del prototipo */
.fz-proto .bi-mortarboard::before {
  content: "\f194";
}

.fz-proto .bi-person-workspace::before {
  content: "\f310";
}
