:root {
  --font-main: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --ink: #20272e;
  --muted: #64717b;
  --line: #dce3e8;
  --paper: #ffffff;
  --soft: #f7f9fa;
  --teal: #0f766e;
  --blue: #1e5a8a;
  --copper: #b35c2e;
  --gold: #c58a22;
  --shadow: 0 18px 45px rgba(28, 39, 48, 0.11);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-main);
}

a {
  color: inherit;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: min(1180px, 100%);
  min-height: 76px;
  margin: 0 auto;
  padding: 12px clamp(18px, 5vw, 70px);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.brand-mark {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 8px;
  color: #ffffff;
  background: var(--teal);
  font-family: var(--font-main);
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
}

.brand-name {
  font-family: var(--font-main);
  font-size: clamp(20px, 4vw, 24px);
  font-weight: 700;
  line-height: 1;
}

.site-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.site-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 12px;
  border-radius: 8px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: background 180ms ease, color 180ms ease;
}

.site-nav a:hover,
.site-nav a:focus-visible {
  color: var(--ink);
  background: var(--soft);
  outline: none;
}

.home {
  width: min(1180px, 100%);
  margin: 0 auto;
  padding: clamp(34px, 7vw, 76px) clamp(18px, 5vw, 70px);
}

.home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: clamp(28px, 5vw, 58px);
  align-items: end;
  padding-bottom: clamp(32px, 5vw, 54px);
  border-bottom: 1px solid var(--line);
}

.eyebrow {
  margin: 0 0 12px;
  color: var(--teal);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.identity {
  max-width: 860px;
  margin: 0;
  color: var(--ink);
  font-family: var(--font-main);
  font-size: clamp(48px, 8vw, 86px);
  font-weight: 700;
  line-height: 0.96;
  text-wrap: balance;
}

.home-lead {
  max-width: 820px;
  margin: 24px 0 0;
  color: var(--muted);
  font-size: clamp(18px, 2.2vw, 21px);
  line-height: 1.68;
}

.home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 10px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.button-primary {
  border-color: var(--teal);
  color: #ffffff;
  background: var(--teal);
}

.button:hover,
.button:focus-visible {
  border-color: #b9c8d1;
  box-shadow: 0 12px 28px rgba(28, 39, 48, 0.12);
  outline: none;
  transform: translateY(-2px);
}

.home-panel {
  padding: 24px;
  border: 1px solid var(--line);
  border-top: 6px solid var(--copper);
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff 0, #f8faf9 100%);
}

.home-panel h2 {
  margin: 0 0 14px;
  font-family: var(--font-main);
  font-size: 32px;
  line-height: 1;
}

.home-panel p {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}

.home-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}

.home-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  font-size: 13px;
  font-weight: 700;
}

.site-visual,
.practice-visual {
  margin: clamp(30px, 5vw, 56px) 0 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
}

.site-visual img,
.practice-visual img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.site-visual figcaption,
.practice-visual figcaption {
  margin: 0;
  padding: 14px 18px;
  color: var(--muted);
  background: #ffffff;
  border-top: 1px solid var(--line);
  font-size: 14px;
  line-height: 1.55;
}

.section {
  margin-top: clamp(44px, 7vw, 78px);
}

.section h2 {
  max-width: 900px;
  margin: 0 0 14px;
  font-family: var(--font-main);
  font-size: clamp(34px, 5vw, 56px);
  line-height: 1;
  text-wrap: balance;
}

.section p {
  max-width: 900px;
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.72;
}

.areas {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 28px);
  margin-top: 24px;
}

.area-card {
  display: grid;
  align-content: start;
  gap: 16px;
  min-height: 260px;
  padding: clamp(22px, 4vw, 34px);
  border: 1px solid var(--line);
  border-top: 6px solid var(--teal);
  border-radius: 8px;
  background: var(--soft);
  box-shadow: var(--shadow);
  text-decoration: none;
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.area-card-accent {
  border-top-color: var(--copper);
}

.area-card b {
  font-family: var(--font-main);
  font-size: clamp(34px, 5vw, 54px);
  line-height: 1;
}

.area-card span {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.65;
}

.area-card small {
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}

.area-card:hover,
.area-card:focus-visible {
  border-color: #b9c8d1;
  box-shadow: 0 22px 54px rgba(28, 39, 48, 0.16);
  outline: none;
  transform: translateY(-3px);
}

.service-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 24px;
}

.service-card {
  display: grid;
  gap: 8px;
  min-height: 150px;
  padding: 18px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--blue);
  border-radius: 8px;
  background: #ffffff;
  text-decoration: none;
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.service-card:nth-child(2n) {
  border-top-color: var(--teal);
}

.service-card:nth-child(3n) {
  border-top-color: var(--copper);
}

.service-card b {
  font-family: var(--font-main);
  font-size: 24px;
  line-height: 1.05;
}

.service-card span {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

a.service-card:hover,
a.service-card:focus-visible {
  border-color: #b9c8d1;
  box-shadow: 0 14px 30px rgba(28, 39, 48, 0.12);
  outline: none;
  transform: translateY(-2px);
}

.note {
  max-width: 900px;
  margin-top: 22px;
  padding: 20px 22px;
  border-left: 5px solid var(--teal);
  background: #f7faf9;
  color: var(--muted);
  line-height: 1.7;
}

.contacts {
  display: grid;
  justify-items: center;
  gap: 22px;
  padding: clamp(24px, 5vw, 42px);
  border: 1px solid var(--line);
  border-top: 6px solid var(--teal);
  border-radius: 8px;
  background: #ffffff;
}

.contacts h2 {
  margin: 0;
  font-family: var(--font-main);
  font-size: clamp(34px, 5vw, 52px);
  line-height: 1;
}

.contacts p {
  max-width: 760px;
  margin: 0;
  text-align: center;
}

.contact-icons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.icon-link {
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #ffffff;
  box-shadow: 0 8px 24px rgba(28, 39, 48, 0.08);
  text-decoration: none;
  transition: border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.icon-link:hover,
.icon-link:focus-visible {
  filter: saturate(1.08) brightness(1.02);
  outline: none;
  transform: translateY(-2px);
}

.icon-phone {
  background: #0f766e;
}

.icon-whatsapp {
  background: #25d366;
}

.icon-email {
  background: #b35c2e;
}

.icon-linkedin {
  background: #0a66c2;
}

.icon-facebook {
  background: #1877f2;
}

.icon-instagram {
  background: linear-gradient(135deg, #f58529, #dd2a7b 48%, #8134af);
}

.icon-link svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.brand-glyph {
  font-family: var(--font-main);
  font-size: 27px;
  font-weight: 700;
  line-height: 1;
}

.site-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 28px;
  min-height: 86px;
  padding: 24px clamp(18px, 5vw, 70px);
  color: var(--muted);
  background: #f1f4f6;
  border-top: 1px solid var(--line);
  font-size: 14px;
  text-align: center;
}

.mobile-contact-bar {
  display: none;
}

.mobile-contact-bar a {
  color: #ffffff;
  text-decoration: none;
}

@media (max-width: 768px) {
  body {
    padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }

  .mobile-contact-bar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 9999;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid rgba(15, 118, 110, 0.22);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 -12px 28px rgba(28, 39, 48, 0.16);
  }

  .mobile-contact-bar a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 46px;
    padding: 10px 8px;
    border-radius: 8px;
    background: #0f766e;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
  }

  .mobile-contact-bar a:nth-child(2) {
    background: #128c7e;
  }

  .mobile-contact-bar a:nth-child(3) {
    background: #1e5a8a;
  }
}

@media (max-width: 950px) {
  .home-hero,
  .areas,
  .service-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .site-header {
    position: static;
  }

  .header-inner {
    display: grid;
    justify-items: center;
    min-height: 140px;
    padding: 20px 18px;
  }

  .site-nav {
    justify-content: center;
  }

  .site-nav a {
    min-height: 38px;
    padding: 7px 10px;
    font-size: 13px;
  }

  .home {
    padding: 30px 18px;
  }

  .identity {
    font-size: 42px;
  }

  .area-card {
    min-height: 220px;
  }
}

/* Pagine servizi professionali */
.practice-page { --ink:#20272e; --muted:#5f6d76; --line:#dce3e8; --soft:#f6f8f8; --paper:#ffffff; --teal:#0f766e; --blue:#1e5a8a; --copper:#b35c2e; --gold:#c58a22; position:relative; left:50%; width:100vw; max-width:100vw; margin:0 0 0 -50vw; overflow-x:clip; color:var(--ink); background:#ffffff; font-family:var(--font-main); container-type:inline-size; }
  .practice-page, .practice-page * { box-sizing:border-box; }
  .practice-page a { color:inherit; }
  .practice-header { border-bottom:1px solid var(--line); background:#ffffff; }
  .practice-header-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; width:min(1180px,100%); min-height:74px; margin:0 auto; padding:12px clamp(18px,5cqw,70px); }
  .practice-brand { display:inline-flex; align-items:center; gap:12px; text-decoration:none; }
  .practice-brand-mark { display:grid; width:46px; height:46px; place-items:center; border-radius:8px; color:#ffffff; background:var(--teal); font-family:var(--font-main); font-size:21px; font-weight:700; }
  .practice-brand-name { font-family:var(--font-main); font-size:clamp(20px,4cqw,24px); font-weight:700; line-height:1; }
  .practice-nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
  .practice-nav a { display:inline-flex; align-items:center; min-height:40px; padding:8px 12px; border-radius:8px; color:var(--muted); font-size:14px; font-weight:700; text-decoration:none; transition:background 180ms ease,color 180ms ease; }
  .practice-nav a:hover, .practice-nav a:focus-visible { background:var(--soft); color:var(--ink); outline:none; }
  .practice-main { width:min(1180px,100%); margin:0 auto; padding:clamp(34px,7cqw,74px) clamp(18px,5cqw,70px); }
  .practice-hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:clamp(28px,5cqw,58px); align-items:end; padding-bottom:clamp(32px,5cqw,54px); border-bottom:1px solid var(--line); }
  .practice-eyebrow { margin:0 0 12px; color:var(--teal); font-size:13px; font-weight:700; letter-spacing:0; text-transform:uppercase; }
  .practice-title { max-width:880px; margin:0; font-family:var(--font-main); font-size:clamp(46px,8cqw,86px); font-weight:700; line-height:.95; text-wrap:balance; }
  .practice-lead { max-width:820px; margin:24px 0 0; color:var(--muted); font-size:clamp(18px,2.3cqw,21px); line-height:1.68; }
  .practice-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
  .practice-button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:10px 16px; border:1px solid var(--line); border-radius:8px; background:#ffffff; color:var(--ink); font-size:14px; font-weight:700; text-decoration:none; transition:border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
  .practice-button-primary { border-color:var(--teal); color:#ffffff; background:var(--teal); }
  .practice-button:hover, .practice-button:focus-visible { border-color:#b9c8d1; box-shadow:0 12px 28px rgba(28,39,48,.12); outline:none; transform:translateY(-2px); }
  .practice-hero-panel { border:1px solid var(--line); border-top:6px solid var(--copper); border-radius:8px; background:linear-gradient(180deg,#ffffff 0,#f8faf9 100%); padding:24px; }
  .practice-hero-panel h2 { margin:0 0 14px; font-family:var(--font-main); font-size:30px; line-height:1; }
  .practice-hero-panel p { margin:0; color:var(--muted); font-size:15px; line-height:1.65; }
  .practice-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
  .practice-tags span { display:inline-flex; align-items:center; min-height:32px; padding:6px 10px; border:1px solid var(--line); border-radius:8px; background:#ffffff; font-size:13px; font-weight:700; }
  .practice-section { margin-top:clamp(44px,7cqw,78px); }
  .practice-section h2 { max-width:900px; margin:0 0 14px; font-family:var(--font-main); font-size:clamp(34px,5cqw,56px); line-height:1; text-wrap:balance; }
  .practice-section p { max-width:900px; margin:0 0 18px; color:var(--muted); font-size:16px; line-height:1.72; }
  .practice-rich-text { max-width:940px; }
  .practice-rich-text p + p { margin-top:14px; }
  .practice-note-link { font-weight:700; }
  .practice-note-link a { color:var(--teal); text-decoration-thickness:2px; text-underline-offset:3px; }
  .practice-band { margin-top:24px; padding:22px 24px; border-left:5px solid var(--teal); background:#f7faf9; color:var(--muted); line-height:1.7; }
  .practice-two { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(22px,4cqw,42px); align-items:start; }
  .practice-check-list { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
  .practice-check-list li { padding:14px 16px; border:1px solid var(--line); border-left:5px solid var(--blue); border-radius:8px; background:#ffffff; color:var(--muted); line-height:1.55; }
  .practice-check-list b { display:block; margin-bottom:4px; color:var(--ink); font-family:var(--font-main); font-size:22px; line-height:1; }
  .practice-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:24px; }
  .practice-service { display:grid; gap:8px; min-height:132px; padding:18px; border:1px solid var(--line); border-top:5px solid var(--teal); border-radius:8px; background:#ffffff; text-decoration:none; transition:border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
  .practice-service:nth-child(3n+1) { border-top-color:var(--blue); }
  .practice-service:nth-child(3n+2) { border-top-color:var(--teal); }
  .practice-service:nth-child(3n) { border-top-color:var(--copper); }
  .practice-service b { font-family:var(--font-main); font-size:25px; line-height:1.05; }
  .practice-service span { color:var(--muted); font-size:14px; line-height:1.55; }
  a.practice-service:hover, a.practice-service:focus-visible { border-color:#b9c8d1; box-shadow:0 14px 30px rgba(28,39,48,.12); outline:none; transform:translateY(-2px); }
  .practice-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:24px; }
  .practice-step { min-height:170px; padding:18px; border:1px solid var(--line); border-radius:8px; background:#ffffff; }
  .practice-step strong { display:grid; width:38px; height:38px; place-items:center; margin-bottom:14px; border-radius:8px; color:#ffffff; background:var(--copper); font-family:var(--font-main); font-size:22px; }
  .practice-step b { display:block; margin-bottom:8px; font-family:var(--font-main); font-size:24px; line-height:1.05; }
  .practice-step span { color:var(--muted); font-size:14px; line-height:1.55; }
  .practice-table { width:100%; margin-top:22px; border-collapse:collapse; border:1px solid var(--line); background:#ffffff; font-size:15px; }
  .practice-table th, .practice-table td { padding:14px 16px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; line-height:1.55; }
  .practice-table th { width:30%; color:var(--ink); background:#f4f7f7; font-family:var(--font-main); font-size:22px; line-height:1; }
  .practice-table td { color:var(--muted); }
  .practice-cta { margin-top:clamp(48px,7cqw,78px); padding:clamp(24px,5cqw,42px); border:1px solid var(--line); border-top:6px solid var(--teal); border-radius:8px; background:#ffffff; }
  .practice-cta h2 { margin:0 0 12px; font-family:var(--font-main); font-size:clamp(32px,5cqw,52px); line-height:1; }
  .practice-cta p { max-width:820px; margin:0 0 22px; color:var(--muted); line-height:1.7; }
  .practice-footer { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 28px; min-height:72px; padding:22px clamp(18px,5cqw,70px); color:var(--muted); background:#f1f4f6; border-top:1px solid var(--line); font-size:14px; text-align:center; }
  @media (max-width:950px) { .practice-hero, .practice-two, .practice-service-grid, .practice-steps { grid-template-columns:1fr; } }
  @media (max-width:640px) { .practice-header-inner { display:grid; justify-items:center; min-height:132px; padding:20px 18px; } .practice-nav { justify-content:center; } .practice-nav a { min-height:38px; padding:7px 10px; font-size:13px; } .practice-main { padding:30px 18px; } .practice-title { font-size:42px; } .practice-table, .practice-table tbody, .practice-table tr, .practice-table th, .practice-table td { display:block; width:100%; } .practice-table th { border-bottom:0; } }

/* Pagine area docente */
.school-detail{--ink:#20272e;--muted:#64717b;--line:#dce3e8;--soft:#f7f9fa;--teal:#0f766e;--blue:#1e5a8a;--copper:#b35c2e;--gold:#c58a22;position:relative;left:50%;width:100vw;max-width:100vw;margin:0 0 0 -50vw;overflow-x:clip;color:var(--ink);background:linear-gradient(180deg,#f7fbfa 0,#fff 380px);container-type:inline-size;font-family:var(--font-main)}.school-detail,.school-detail *{box-sizing:border-box}.school-detail a{color:inherit}.school-header{border-bottom:1px solid var(--line);background:#fff}.school-header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;width:min(1180px,100%);min-height:72px;margin:0 auto;padding:12px clamp(18px,5cqw,70px)}.school-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none}.school-brand-mark{display:grid;width:46px;height:46px;place-items:center;border-radius:8px;color:#fff;background:var(--teal);font-family:var(--font-main);font-size:21px;font-weight:700}.school-brand-name{font-family:var(--font-main);font-size:clamp(20px,4cqw,24px);font-weight:700;line-height:1}.school-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.school-nav a{display:inline-flex;align-items:center;min-height:40px;padding:8px 12px;border-radius:8px;color:var(--muted);font-size:14px;font-weight:700;text-decoration:none;transition:background 180ms ease,color 180ms ease}.school-nav a:hover,.school-nav a:focus-visible{color:var(--ink);background:var(--soft);outline:none}.school-main{width:min(1180px,100%);margin:0 auto;padding:clamp(42px,8cqw,86px) clamp(18px,5cqw,70px)}.school-hero{max-width:930px;padding-left:clamp(18px,3cqw,30px);border-left:6px solid var(--teal)}.school-eyebrow{margin:0 0 12px;color:var(--teal);font-size:13px;font-weight:700;letter-spacing:0;text-transform:uppercase}.school-title{margin:0;font-family:var(--font-main);font-size:clamp(42px,8cqw,78px);font-weight:700;line-height:.98;text-wrap:balance}.school-lead{max-width:830px;margin:22px 0 0;color:var(--muted);font-size:clamp(17px,2.3cqw,20px);line-height:1.65}.school-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.school-button{display:inline-flex;align-items:center;min-height:46px;padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:14px;font-weight:700;text-decoration:none;transition:border-color 180ms ease,transform 180ms ease,box-shadow 180ms ease}.school-button-primary{border-color:var(--teal);color:#fff;background:var(--teal)}.school-button:hover,.school-button:focus-visible{border-color:#b9c8d1;box-shadow:0 12px 28px rgba(28,39,48,.12);outline:none;transform:translateY(-2px)}.school-section{margin-top:clamp(44px,7cqw,78px)}.school-section h2{margin:0 0 12px;font-family:var(--font-main);font-size:clamp(34px,5cqw,54px);line-height:1}.school-section p{max-width:840px;margin:0 0 22px;color:var(--muted);font-size:16px;line-height:1.65}.school-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.school-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.school-card,.school-pill{border:1px solid var(--line);border-top:5px solid var(--teal);border-radius:8px;background:#fff;box-shadow:0 10px 28px rgba(28,39,48,.06)}.school-card{display:grid;align-content:start;gap:12px;min-height:150px;padding:22px}.school-pill{min-height:84px;padding:16px 18px;font-weight:700}.school-card:nth-child(3n+1),.school-pill:nth-child(3n+1),.school-link-card:nth-child(3n+1){border-top-color:var(--blue)}.school-card:nth-child(3n+2),.school-pill:nth-child(3n+2),.school-link-card:nth-child(3n+2){border-top-color:var(--teal)}.school-card:nth-child(3n),.school-pill:nth-child(3n),.school-link-card:nth-child(3n){border-top-color:var(--gold)}.school-card b{font-family:var(--font-main);font-size:25px;line-height:1.08}.school-card span,.school-pill span,.school-link-card span{color:var(--muted);font-size:14px;line-height:1.55}.school-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.school-link-card{display:grid;gap:10px;min-height:118px;padding:18px;border:1px solid var(--line);border-top:5px solid var(--teal);border-radius:8px;background:#fff;text-decoration:none;transition:border-color 180ms ease,transform 180ms ease,box-shadow 180ms ease}.school-link-card b{font-family:var(--font-main);font-size:22px;line-height:1.08}.school-link-card:hover,.school-link-card:focus-visible{border-color:#b9c8d1;box-shadow:0 14px 30px rgba(28,39,48,.12);outline:none;transform:translateY(-2px)}.school-note{max-width:880px;padding:18px 20px;border-left:5px solid var(--teal);background:#fff;color:var(--muted);line-height:1.65;box-shadow:0 10px 26px rgba(28,39,48,.05)}.school-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;min-height:72px;padding:22px clamp(18px,5cqw,70px);color:var(--muted);background:#f1f4f6;border-top:1px solid var(--line);font-size:14px;text-align:center}@media(max-width:900px){.school-grid,.school-grid-4,.school-link-grid{grid-template-columns:1fr}}@media(max-width:640px){.school-header-inner{display:grid;justify-items:center;min-height:132px;padding:20px 18px}.school-nav{justify-content:center}.school-nav a{min-height:38px;padding:7px 10px;font-size:13px}.school-main{padding:34px 18px}.school-title{font-size:42px}}

/* Pagine informative */
.provenzano-detail {
    --detail-ink: #20272e;
    --detail-muted: #64717b;
    --detail-line: #dce3e8;
    --detail-paper: #ffffff;
    --detail-soft: #f7f9fa;
    --detail-teal: #0f766e;
    --detail-blue: #1e5a8a;
    --detail-copper: #b35c2e;
    --detail-gold: #c58a22;
    position: relative;
    left: 50%;
    width: 100vw;
    max-width: 100vw;
    margin: 0 0 0 -50vw;
    overflow-x: clip;
    color: var(--detail-ink);
    background: linear-gradient(180deg, #fff9f5 0, #ffffff 360px), var(--detail-paper);
    container-type: inline-size;
    font-family: var(--font-main);
  }
  .provenzano-detail, .provenzano-detail * { box-sizing: border-box; }
  .provenzano-detail a { color: inherit; }
  .detail-header { border-bottom: 1px solid var(--detail-line); background: #ffffff; }
  .detail-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: min(1180px, 100%); min-height: 72px; margin: 0 auto; padding: 12px clamp(18px, 5cqw, 70px); }
  .detail-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
  .detail-brand-mark { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 8px; color: #ffffff; background: var(--detail-copper); font-family: var(--font-main); font-size: 21px; font-weight: 700; }
  .detail-brand-name { font-family: var(--font-main); font-size: clamp(20px, 4cqw, 24px); font-weight: 700; line-height: 1; }
  .detail-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
  .detail-nav a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 12px; border-radius: 8px; color: var(--detail-muted); font-size: 14px; font-weight: 700; text-decoration: none; transition: background 180ms ease, color 180ms ease; }
  .detail-nav a:hover, .detail-nav a:focus-visible { color: var(--detail-ink); background: var(--detail-soft); outline: none; }
  .detail-main { width: min(1180px, 100%); margin: 0 auto; padding: clamp(42px, 8cqw, 86px) clamp(18px, 5cqw, 70px); }
  .detail-hero { max-width: 920px; padding-left: clamp(18px, 3cqw, 30px); border-left: 6px solid var(--detail-copper); }
  .detail-eyebrow { margin: 0 0 12px; color: var(--detail-copper); font-size: 13px; font-weight: 700; letter-spacing: 0; text-transform: uppercase; }
  .detail-title { margin: 0; font-family: var(--font-main); font-size: clamp(42px, 8cqw, 78px); font-weight: 700; line-height: 0.98; text-wrap: balance; }
  .detail-lead { max-width: 820px; margin: 22px 0 0; color: var(--detail-muted); font-size: clamp(17px, 2.3cqw, 20px); line-height: 1.65; }
  .detail-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
  .detail-button { display: inline-flex; align-items: center; min-height: 46px; padding: 10px 16px; border: 1px solid var(--detail-line); border-radius: 8px; background: #ffffff; color: var(--detail-ink); font-size: 14px; font-weight: 700; text-decoration: none; transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
  .detail-button-primary { border-color: var(--detail-copper); color: #ffffff; background: var(--detail-copper); }
  .detail-button:hover, .detail-button:focus-visible { border-color: #b9c8d1; box-shadow: 0 12px 28px rgba(28, 39, 48, 0.12); outline: none; transform: translateY(-2px); }
  .detail-section { margin-top: clamp(44px, 7cqw, 78px); }
  .detail-section h2 { margin: 0 0 12px; font-family: var(--font-main); font-size: clamp(34px, 5cqw, 54px); line-height: 1; }
  .detail-section p { max-width: 820px; margin: 0 0 22px; color: var(--detail-muted); font-size: 16px; line-height: 1.65; }
  .detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
  .detail-card { display: grid; align-content: start; gap: 12px; min-height: 150px; padding: 22px; border: 1px solid var(--detail-line); border-top: 5px solid var(--detail-copper); border-radius: 8px; background: #ffffff; box-shadow: 0 10px 28px rgba(28, 39, 48, 0.06); }
  .detail-card:nth-child(3n + 1), .detail-link-card:nth-child(3n + 1) { border-top-color: var(--detail-blue); }
  .detail-card:nth-child(3n + 2), .detail-link-card:nth-child(3n + 2) { border-top-color: var(--detail-teal); }
  .detail-card:nth-child(3n), .detail-link-card:nth-child(3n) { border-top-color: var(--detail-gold); }
  .detail-card b { font-family: var(--font-main); font-size: 25px; line-height: 1.08; }
  .detail-card span, .detail-link-card span { color: var(--detail-muted); font-size: 14px; line-height: 1.55; }
  .detail-link-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  .detail-link-card { display: grid; gap: 10px; min-height: 118px; padding: 18px; border: 1px solid var(--detail-line); border-top: 5px solid var(--detail-copper); border-radius: 8px; background: #ffffff; text-decoration: none; transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
  .detail-link-card b { font-family: var(--font-main); font-size: 22px; line-height: 1.08; }
  .detail-link-card:hover, .detail-link-card:focus-visible { border-color: #b9c8d1; box-shadow: 0 14px 30px rgba(28, 39, 48, 0.12); outline: none; transform: translateY(-2px); }
  .detail-note { padding: 18px 20px; border-left: 5px solid var(--detail-copper); background: #ffffff; color: var(--detail-muted); line-height: 1.65; box-shadow: 0 10px 26px rgba(28,39,48,0.05); }
  .detail-footer { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; min-height: 72px; padding: 22px clamp(18px, 5cqw, 70px); color: var(--detail-muted); background: #f1f4f6; border-top: 1px solid var(--detail-line); font-size: 14px; text-align: center; }
  @media (max-width: 900px) { .detail-grid, .detail-link-grid { grid-template-columns: 1fr; } }
  @media (max-width: 640px) { .detail-header-inner { display: grid; justify-items: center; min-height: 132px; padding: 20px 18px; } .detail-nav { justify-content: center; } .detail-nav a { min-height: 38px; padding: 7px 10px; font-size: 13px; } .detail-main { padding: 34px 18px; } .detail-title { font-size: 42px; } }

/* Pagine policy e privacy */
.provenzano-detail { background: #fbfcfb; }
.provenzano-detail .detail-header { background: rgba(255,255,255,0.96); }
.provenzano-detail .detail-main { padding-top: clamp(34px, 6cqw, 66px); }
.provenzano-detail .detail-hero { max-width: 1040px; padding: clamp(24px,4cqw,42px); border: 1px solid var(--detail-line); border-top: 6px solid var(--detail-copper); border-left: 1px solid var(--detail-line); border-radius: 8px; background: #ffffff; box-shadow: 0 18px 44px rgba(28,39,48,0.08); }
.provenzano-detail .detail-title { font-size: clamp(40px, 6.6cqw, 70px); line-height: 1; }
.provenzano-detail .detail-lead { max-width: 900px; color: #53616b; }
.provenzano-detail .detail-section { margin-top: clamp(34px, 5.8cqw, 62px); padding-top: clamp(22px, 4cqw, 34px); border-top: 1px solid #edf1f3; }
.provenzano-detail .detail-section:first-of-type { border-top: 0; }
.provenzano-detail .detail-section h2 { font-size: clamp(30px, 4.3cqw, 46px); }
.provenzano-detail .detail-section p { max-width: 900px; color: #586771; }
.provenzano-detail .detail-grid { grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: 14px; }
.provenzano-detail .detail-grid-4 { grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)); gap: 12px; }
.provenzano-detail .detail-card,
.provenzano-detail .detail-pill,
.provenzano-detail .detail-link-card { border-radius: 8px; box-shadow: none; background: linear-gradient(180deg,#ffffff 0,#fafbfb 100%); }
.provenzano-detail .detail-card { min-height: 132px; padding: 20px; }
.provenzano-detail .detail-card b { font-size: 23px; }
.provenzano-detail .detail-pill { display: flex; align-items: center; min-height: 68px; padding: 14px 16px; }
.provenzano-detail .detail-link-card { min-height: 96px; padding: 16px; }
.provenzano-detail .detail-note { max-width: 940px; border-left-width: 4px; box-shadow: none; background: #f8faf9; }
@media (max-width: 640px) {
  .provenzano-detail .detail-hero { padding: 22px 18px; }
  .provenzano-detail .detail-title { font-size: 39px; }
}

/* Pagina madre area docente */
.docente-page {
  --docente-ink: #20272e;
  --docente-muted: #5b6b76;
  --docente-line: #dce7ea;
  --docente-paper: #ffffff;
  --docente-soft: #f4fbfb;
  --docente-blue: #1e5a8a;
  --docente-teal: #0f766e;
  --docente-green: #3f8f4f;
  --docente-gold: #c58a22;
  --docente-coral: #c46a3a;
  --docente-violet: #7758a6;
  width: min(1180px, 100%);
  margin: 0 auto;
  padding: clamp(34px, 7vw, 78px) clamp(18px, 5vw, 70px);
  color: var(--docente-ink);
  background:
    linear-gradient(180deg, #f1fbfb 0, #ffffff 320px),
    var(--docente-paper);
}

.docente-page a {
  color: inherit;
}

.docente-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
  gap: clamp(24px, 5vw, 54px);
  align-items: end;
  padding-bottom: clamp(34px, 6vw, 62px);
  border-bottom: 1px solid var(--docente-line);
}

.docente-hero-content {
  max-width: 850px;
}

.docente-eyebrow,
.docente-kicker {
  margin: 0 0 10px;
  color: var(--docente-teal);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.docente-hero h1 {
  margin: 0;
  font-family: var(--font-main);
  font-size: clamp(54px, 9vw, 94px);
  font-weight: 700;
  line-height: 0.95;
  text-wrap: balance;
}

.docente-subtitle {
  max-width: 780px;
  margin: 18px 0 0;
  color: var(--docente-blue);
  font-size: clamp(19px, 2.4vw, 24px);
  font-weight: 700;
  line-height: 1.42;
}

.docente-intro {
  max-width: 820px;
  margin: 18px 0 0;
  color: var(--docente-muted);
  font-size: clamp(16px, 2.1vw, 19px);
  line-height: 1.72;
}

.docente-actions,
.docente-final-action {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.docente-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 10px 16px;
  border: 1px solid var(--docente-line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--docente-ink);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.docente-button-primary {
  border-color: var(--docente-teal);
  color: #ffffff;
  background: var(--docente-teal);
}

.docente-button:hover,
.docente-button:focus-visible {
  border-color: #b8cbd0;
  box-shadow: 0 12px 28px rgba(28, 39, 48, 0.12);
  outline: none;
  transform: translateY(-2px);
}

.docente-hero-panel {
  display: grid;
  gap: 12px;
  padding: clamp(22px, 4vw, 30px);
  border: 1px solid var(--docente-line);
  border-top: 6px solid var(--docente-gold);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 42px rgba(28, 39, 48, 0.08);
}

.docente-hero-panel b {
  font-family: var(--font-main);
  font-size: clamp(28px, 4vw, 38px);
  line-height: 1;
}

.docente-hero-panel span {
  color: var(--docente-muted);
  line-height: 1.68;
}

.docente-section {
  margin-top: clamp(46px, 7vw, 82px);
}

.docente-section-heading {
  max-width: 860px;
  margin-bottom: 24px;
}

.docente-section-heading h2,
.docente-callout h2 {
  margin: 0;
  font-family: var(--font-main);
  font-size: clamp(36px, 5.4vw, 58px);
  line-height: 1;
  text-wrap: balance;
}

.docente-section-heading p,
.docente-callout p {
  max-width: 860px;
  margin: 12px 0 0;
  color: var(--docente-muted);
  font-size: 16px;
  line-height: 1.72;
}

.docente-feature-grid,
.docente-choice-grid,
.docente-step-grid,
.docente-project-grid {
  display: grid;
  gap: 16px;
}

.docente-feature-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.docente-choice-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.docente-link-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.docente-feature-card,
.docente-choice-card,
.docente-link-card,
.docente-subject-card,
.docente-mini-card,
.docente-step-card,
.docente-project-card {
  border: 1px solid var(--docente-line);
  border-top: 5px solid var(--docente-teal);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 26px rgba(28, 39, 48, 0.06);
}

.docente-feature-card {
  display: grid;
  gap: 10px;
  min-height: 190px;
  padding: 22px;
}

.docente-feature-card:nth-child(2n),
.docente-choice-card:nth-child(2n),
.docente-mini-card:nth-child(2n),
.docente-project-card:nth-child(2n) {
  border-top-color: var(--docente-blue);
}

.docente-feature-card:nth-child(3n),
.docente-choice-card:nth-child(3n),
.docente-mini-card:nth-child(3n),
.docente-project-card:nth-child(3n) {
  border-top-color: var(--docente-coral);
}

.docente-feature-card:nth-child(4n),
.docente-choice-card:nth-child(4n),
.docente-mini-card:nth-child(4n) {
  border-top-color: var(--docente-violet);
}

.docente-feature-card:nth-child(5n),
.docente-choice-card:nth-child(5n),
.docente-mini-card:nth-child(5n) {
  border-top-color: var(--docente-gold);
}

.docente-card-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  min-height: 32px;
  border-radius: 8px;
  color: #ffffff;
  background: var(--docente-teal);
  font-family: var(--font-main);
  font-size: 18px;
  font-weight: 700;
}

.docente-feature-card:nth-child(2n) .docente-card-label {
  background: var(--docente-blue);
}

.docente-feature-card:nth-child(3n) .docente-card-label {
  background: var(--docente-coral);
}

.docente-feature-card:nth-child(4n) .docente-card-label {
  background: var(--docente-violet);
}

.docente-feature-card h3,
.docente-subject-group h3,
.docente-feature-card p,
.docente-mini-card b,
.docente-step-card b,
.docente-project-card b,
.docente-subject-card b {
  margin: 0;
}

.docente-feature-card h3,
.docente-subject-group h3,
.docente-mini-card b,
.docente-step-card b,
.docente-project-card b,
.docente-subject-card b {
  font-family: var(--font-main);
  line-height: 1.05;
}

.docente-feature-card h3 {
  font-size: 28px;
}

.docente-feature-card p,
.docente-subject-card span,
.docente-mini-card span,
.docente-step-card span,
.docente-project-card span {
  color: var(--docente-muted);
  font-size: 14px;
  line-height: 1.6;
}

.docente-choice-card {
  display: flex;
  align-items: center;
  min-height: 88px;
  padding: 18px 20px;
  color: var(--docente-ink);
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.docente-link-card {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 130px;
  padding: 18px;
  color: var(--docente-ink);
  text-decoration: none;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.docente-link-card:nth-child(2n) {
  border-top-color: var(--docente-blue);
}

.docente-link-card:nth-child(3n) {
  border-top-color: var(--docente-coral);
}

.docente-link-card:nth-child(4n) {
  border-top-color: var(--docente-violet);
}

.docente-link-card b {
  margin: 0;
  font-family: var(--font-main);
  font-size: 24px;
  line-height: 1.05;
}

.docente-link-card span {
  color: var(--docente-muted);
  font-size: 14px;
  line-height: 1.55;
}

.docente-choice-card:hover,
.docente-choice-card:focus-visible,
.docente-link-card:hover,
.docente-link-card:focus-visible,
a.docente-subject-card:hover,
a.docente-subject-card:focus-visible {
  border-color: #b8cbd0;
  box-shadow: 0 14px 30px rgba(28, 39, 48, 0.12);
  outline: none;
  transform: translateY(-2px);
}

.docente-subject-groups {
  display: grid;
  gap: 24px;
}

.docente-subject-group {
  padding: clamp(18px, 3vw, 24px);
  border: 1px solid #e6eef0;
  border-radius: 8px;
  background: #fbfdfd;
}

.docente-subject-group h3 {
  margin-bottom: 16px;
  font-size: clamp(25px, 3.2vw, 34px);
}

.docente-subject-group p {
  max-width: 860px;
  margin: 0 0 16px;
  color: var(--docente-muted);
  font-size: 15px;
  line-height: 1.65;
}

.docente-subject-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.docente-subject-card {
  display: grid;
  gap: 8px;
  min-height: 122px;
  padding: 18px;
  text-decoration: none;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.docente-subject-card:nth-child(2n) {
  border-top-color: var(--docente-green);
}

.docente-subject-card:nth-child(3n) {
  border-top-color: var(--docente-gold);
}

.docente-subject-card:nth-child(4n) {
  border-top-color: var(--docente-violet);
}

.docente-subject-card b {
  font-size: 24px;
}

.docente-subject-card-muted {
  background: #f8fbfb;
  box-shadow: none;
}

.docente-subject-card-muted::after {
  content: "In preparazione";
  align-self: end;
  width: fit-content;
  padding: 5px 8px;
  border-radius: 8px;
  color: #52626b;
  background: #e8f0f2;
  font-size: 12px;
  font-weight: 700;
}

.docente-two-column {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(24px, 5vw, 54px);
  align-items: start;
}

.docente-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.docente-mini-grid-wide {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.docente-mini-card,
.docente-project-card {
  display: grid;
  gap: 8px;
  min-height: 118px;
  padding: 18px;
}

.docente-mini-card b,
.docente-project-card b {
  font-size: 24px;
}

.docente-step-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.docente-step-card {
  display: grid;
  align-content: start;
  gap: 10px;
  min-height: 185px;
  padding: 18px;
}

.docente-step-card strong {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 8px;
  color: #ffffff;
  background: var(--docente-blue);
  font-family: var(--font-main);
  font-size: 22px;
}

.docente-step-card:nth-child(2n) strong {
  background: var(--docente-teal);
}

.docente-step-card:nth-child(3n) strong {
  background: var(--docente-coral);
}

.docente-step-card b {
  font-size: 25px;
}

.docente-accessibility {
  padding: clamp(24px, 4vw, 34px);
  border: 1px solid var(--docente-line);
  border-left: 6px solid var(--docente-teal);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 32px rgba(28, 39, 48, 0.07);
}

.docente-callout {
  max-width: 960px;
}

.docente-project-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.docente-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  max-width: 980px;
}

.docente-chip {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid var(--docente-line);
  border-left: 5px solid var(--docente-teal);
  border-radius: 8px;
  background: #ffffff;
  color: var(--docente-ink);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
  box-shadow: 0 8px 20px rgba(28, 39, 48, 0.05);
}

.docente-chip-grid-strong .docente-chip {
  border-left-color: var(--docente-coral);
  background: #fffdfb;
}

.docente-footer-nav {
  --docente-ink: #20272e;
  --docente-muted: #5b6b76;
  --docente-line: #dce7ea;
  --docente-blue: #1e5a8a;
  --docente-teal: #0f766e;
  --docente-coral: #c46a3a;
  width: min(1180px, 100%);
  margin: clamp(12px, 4vw, 28px) auto 0;
  padding: 0 clamp(18px, 5vw, 70px) clamp(28px, 5vw, 48px);
}

.docente-footer-nav-inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--docente-line);
  border-radius: 8px;
  background: #fbfdfd;
}

.docente-footer-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid var(--docente-line);
  border-left: 5px solid var(--docente-teal);
  border-radius: 8px;
  background: #ffffff;
  color: var(--docente-ink);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.docente-footer-nav a:nth-child(2n) {
  border-left-color: var(--docente-blue);
}

.docente-footer-nav a:nth-child(3n) {
  border-left-color: var(--docente-coral);
}

.docente-footer-nav a:hover,
.docente-footer-nav a:focus-visible {
  border-color: #b8cbd0;
  box-shadow: 0 10px 22px rgba(28, 39, 48, 0.1);
  outline: none;
  transform: translateY(-2px);
}

@media (max-width: 980px) {
  .docente-hero,
  .docente-two-column,
  .docente-feature-grid,
  .docente-choice-grid,
  .docente-link-grid,
  .docente-project-grid {
    grid-template-columns: 1fr;
  }

  .docente-step-grid,
  .docente-subject-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .docente-mini-grid-wide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .docente-footer-nav-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .docente-page {
    padding: 30px 18px;
  }

  .docente-hero h1 {
    font-size: 46px;
  }

  .docente-subtitle {
    font-size: 19px;
  }

  .docente-actions,
  .docente-final-action {
    display: grid;
  }

  .docente-button {
    width: 100%;
  }

  .docente-step-grid,
  .docente-subject-grid,
  .docente-mini-grid,
  .docente-mini-grid-wide {
    grid-template-columns: 1fr;
  }

  .docente-feature-card,
  .docente-subject-card,
  .docente-step-card {
    min-height: auto;
  }

  .docente-footer-nav {
    padding-right: 18px;
    padding-left: 18px;
  }

  .docente-footer-nav-inner {
    grid-template-columns: 1fr;
  }
}

/* Blocco 1 - nuova identita protetta */
:root {
  --font-main: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --color-bg: #f8fafc;
  --color-white: #ffffff;
  --color-text: #1f2933;
  --color-muted: #4b5563;
  --color-border: #e5e7eb;
  --pro-primary: #12395b;
  --pro-dark: #0b2239;
  --pro-accent: #c28a3d;
  --pro-soft: #f3f6f8;
  --pro-text: #1f2933;
  --edu-primary: #6faf8f;
  --edu-dark: #3f7d63;
  --edu-accent: #f2a65a;
  --edu-soft: #fff7e8;
  --edu-info: #dceeff;
  --edu-text: #24302b;
  --radius-lg: 24px;
  --radius-md: 16px;
  --radius-card: 8px;
  --shadow-soft: 0 18px 45px rgba(15, 23, 42, 0.08);
  --shadow-hover: 0 24px 60px rgba(15, 23, 42, 0.12);
  --transition: all 0.25s ease;
}

.new-layout.professional-page {
  --area-primary: var(--pro-primary);
  --area-dark: var(--pro-dark);
  --area-accent: var(--pro-accent);
  --area-soft: var(--pro-soft);
  --area-text: var(--pro-text);
  --area-contrast: #ffffff;
  --area-support: #edf2f5;
}

.new-layout.education-page {
  --area-primary: var(--edu-primary);
  --area-dark: var(--edu-dark);
  --area-accent: var(--edu-accent);
  --area-soft: var(--edu-soft);
  --area-text: var(--edu-text);
  --area-contrast: #ffffff;
  --area-support: var(--edu-info);
}

.new-layout {
  --area-primary: var(--pro-primary);
  --area-dark: var(--pro-dark);
  --area-accent: var(--edu-primary);
  --area-soft: var(--color-bg);
  --area-text: var(--color-text);
  --area-contrast: #ffffff;
  --area-support: #eef6f6;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  color: var(--color-text);
  background:
    linear-gradient(180deg, #f8fafc 0, #ffffff 360px),
    var(--color-bg);
  font-family: var(--font-main);
  line-height: 1.5;
  overflow-x: hidden;
}

.new-layout *,
.new-layout *::before,
.new-layout *::after {
  box-sizing: border-box;
}

.new-layout a {
  color: inherit;
}

.new-layout img {
  max-width: 100%;
}

.new-layout .skip-link {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 10000;
  transform: translateY(-160%);
  padding: 10px 14px;
  border-radius: var(--radius-card);
  color: #ffffff;
  background: var(--area-dark);
  font-weight: 700;
  text-decoration: none;
}

.new-layout .skip-link:focus {
  transform: translateY(0);
  outline: 3px solid var(--area-accent);
  outline-offset: 3px;
}

.new-layout .layout-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid rgba(229, 231, 235, 0.9);
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(16px);
}

.new-layout .layout-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: min(1180px, calc(100% - 36px));
  min-height: 78px;
  margin: 0 auto;
}

.new-layout .layout-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: max-content;
  color: var(--area-dark);
  font-weight: 800;
  text-decoration: none;
}

.new-layout .layout-brand-mark {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: var(--radius-card);
  color: #ffffff;
  background: linear-gradient(135deg, var(--area-dark), var(--area-primary));
  font-size: 1rem;
  font-weight: 900;
}

.new-layout .layout-brand-text {
  font-size: 1.05rem;
  letter-spacing: 0;
}

.new-layout .layout-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.new-layout .layout-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 8px 12px;
  border-radius: var(--radius-card);
  color: var(--color-muted);
  font-size: 0.92rem;
  font-weight: 750;
  text-decoration: none;
  transition: var(--transition);
}

.new-layout .layout-nav a:hover,
.new-layout .layout-nav a:focus-visible,
.new-layout .layout-nav a[aria-current="page"] {
  color: var(--area-dark);
  background: var(--area-support);
  outline: none;
}

.new-layout .layout-nav a:focus-visible,
.new-layout .layout-button:focus-visible,
.new-layout .route-card:focus-visible,
.new-layout .feature-card:focus-visible,
.new-layout .quick-card:focus-visible,
.new-layout .audience-card:focus-visible,
.new-layout .problem-card:focus-visible,
.new-layout .chip-grid a:focus-visible,
.new-layout .compact-links a:focus-visible,
.new-layout .filter-button:focus-visible,
.new-layout .quick-contact-bar a:focus-visible {
  outline: 3px solid var(--area-accent);
  outline-offset: 3px;
}

.new-layout .layout-main {
  width: min(1180px, calc(100% - 36px));
  margin: 0 auto;
  padding: 56px 0 80px;
}

.new-layout .hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
  gap: 42px;
  align-items: center;
  padding: 28px 0 64px;
}

.new-layout .area-hero {
  padding-top: 18px;
}

.new-layout .service-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: clamp(28px, 5vw, 60px);
  align-items: end;
  max-width: 100%;
  padding: clamp(34px, 7vw, 82px) 0 clamp(46px, 7vw, 78px);
  border-bottom: 1px solid var(--color-border);
}

.new-layout .service-hero-copy {
  max-width: 880px;
  min-width: 0;
}

.new-layout .hero-copy {
  max-width: 780px;
  min-width: 0;
}

.new-layout .eyebrow {
  margin: 0 0 12px;
  color: var(--area-primary);
  font-size: 0.82rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.new-layout h1,
.new-layout h2,
.new-layout h3,
.new-layout p {
  margin-top: 0;
}

.new-layout h1,
.new-layout h2,
.new-layout h3 {
  color: var(--area-text);
  letter-spacing: 0;
  overflow-wrap: break-word;
  text-wrap: balance;
}

.new-layout h1 {
  max-width: 900px;
  margin-bottom: 22px;
  font-size: 4.35rem;
  font-weight: 850;
  line-height: 0.98;
}

.new-layout h2 {
  margin-bottom: 14px;
  font-size: 3rem;
  font-weight: 820;
  line-height: 1.04;
}

.new-layout h3 {
  margin-bottom: 10px;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.16;
}

.new-layout .hero-lead {
  max-width: 760px;
  margin-bottom: 0;
  color: var(--color-muted);
  font-size: 1.2rem;
  line-height: 1.75;
}

.new-layout .hero-sublead {
  max-width: 790px;
  margin: 18px 0 0;
  color: var(--color-muted);
  font-size: 1.05rem;
  line-height: 1.75;
}

.new-layout .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.new-layout .layout-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 11px 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  color: var(--area-dark);
  background: #ffffff;
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  transition: var(--transition);
}

.new-layout .layout-button:hover {
  border-color: transparent;
  box-shadow: var(--shadow-hover);
  transform: translateY(-2px);
}

.new-layout .layout-button-pro,
.new-layout.professional-page .layout-button:first-child {
  border-color: var(--pro-primary);
  color: #ffffff;
  background: var(--pro-primary);
}

.new-layout .layout-button-edu,
.new-layout.education-page .layout-button:first-child {
  border-color: var(--edu-dark);
  color: #ffffff;
  background: var(--edu-dark);
}

.new-layout .layout-button-ghost {
  background: transparent;
}

.new-layout .hero-media {
  position: relative;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(18, 57, 91, 0.12), rgba(111, 175, 143, 0.16)),
    #ffffff;
  box-shadow: var(--shadow-soft);
}

.new-layout .hero-media::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(18, 57, 91, 0.14), rgba(194, 138, 61, 0.18)),
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.34) 0 1px, transparent 1px 14px);
}

.new-layout .hero-media img {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 11;
  min-height: 260px;
  background: linear-gradient(135deg, var(--area-support), #ffffff);
  object-fit: cover;
}

.new-layout .hero-media figcaption {
  position: relative;
  margin: 0;
  padding: 14px 18px;
  color: var(--color-muted);
  background: #ffffff;
  border-top: 1px solid var(--color-border);
  font-size: 0.92rem;
  line-height: 1.55;
}

.new-layout .service-summary,
.new-layout .side-panel {
  max-width: 100%;
  min-width: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(243, 248, 250, 0.96));
  box-shadow: var(--shadow-soft);
}

.new-layout .service-summary {
  padding: 24px;
}

.new-layout .summary-kicker {
  margin-bottom: 14px;
  color: var(--area-primary);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.new-layout .service-summary dl {
  display: grid;
  gap: 18px;
  margin: 0;
}

.new-layout .service-summary div {
  padding-top: 16px;
  border-top: 1px solid var(--color-border);
}

.new-layout .service-summary dt {
  margin-bottom: 6px;
  color: var(--area-text);
  font-weight: 850;
}

.new-layout .service-summary dd {
  margin: 0;
  color: var(--color-muted);
  font-size: 0.95rem;
  line-height: 1.55;
}

.new-layout .service-content {
  display: grid;
  grid-template-columns: minmax(0, 780px) minmax(260px, 1fr);
  gap: clamp(34px, 6vw, 74px);
  align-items: start;
  max-width: 100%;
  margin-top: 62px;
}

.new-layout .service-article {
  display: grid;
  gap: 0;
}

.new-layout .content-section {
  padding: 0 0 44px;
  margin-bottom: 44px;
  border-bottom: 1px solid var(--color-border);
}

.new-layout .content-section h2 {
  max-width: 820px;
}

.new-layout .content-section p {
  max-width: 760px;
  color: var(--color-muted);
  font-size: 1.03rem;
  line-height: 1.78;
}

.new-layout .content-section p:last-child {
  margin-bottom: 0;
}

.new-layout .plain-list {
  display: grid;
  gap: 10px;
  max-width: 760px;
  margin: 20px 0 24px;
  padding: 0;
  color: var(--color-muted);
  line-height: 1.65;
  list-style: none;
}

.new-layout .plain-list li {
  position: relative;
  padding-left: 24px;
}

.new-layout .plain-list li::before {
  content: "";
  position: absolute;
  top: 0.72em;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--area-primary);
}

.new-layout .two-columns-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 26px;
}

.new-layout .decision-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.62fr);
  gap: 28px;
  align-items: start;
  padding: 30px;
  margin-bottom: 44px;
  border: 1px solid var(--color-border);
  border-left: 6px solid var(--area-primary);
  border-radius: var(--radius-card);
  background: #ffffff;
  box-shadow: var(--shadow-soft);
}

.new-layout .decision-panel h2 {
  margin-bottom: 12px;
}

.new-layout .decision-panel p {
  color: var(--color-muted);
  line-height: 1.75;
}

.new-layout .decision-note {
  padding: 20px;
  border-radius: var(--radius-card);
  background: var(--area-soft);
}

.new-layout .decision-note b {
  display: block;
  margin-bottom: 8px;
  color: var(--area-text);
  font-size: 1.05rem;
}

.new-layout .decision-note p {
  margin-bottom: 0;
  font-size: 0.96rem;
}

.new-layout .numbered-flow {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 26px;
  max-width: 860px;
  margin: 18px 0 0;
  padding: 0;
  border-top: 1px solid var(--color-border);
  list-style: none;
  counter-reset: service-step;
}

.new-layout .numbered-flow li {
  counter-increment: service-step;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 4px 10px;
  align-items: start;
  padding: 9px 0;
  border-bottom: 1px solid var(--color-border);
  border-top: 0;
}

.new-layout .numbered-flow li::before {
  content: counter(service-step);
  grid-row: 1 / span 2;
  grid-column: 1;
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: var(--radius-card);
  color: #ffffff;
  background: var(--area-primary);
  font-size: 0.82rem;
  font-weight: 900;
}

.new-layout .numbered-flow b {
  grid-column: 2;
  display: block;
  margin-bottom: 0;
  color: var(--area-text);
  font-size: 0.95rem;
}

.new-layout .numbered-flow span {
  grid-column: 2;
  color: var(--color-muted);
  font-size: 0.9rem;
  line-height: 1.35;
}

.new-layout .service-side {
  position: sticky;
  top: 96px;
}

.new-layout .side-panel {
  padding: 22px;
}

.new-layout .side-panel ul {
  display: grid;
  gap: 10px;
  margin: 0 0 20px;
  padding-left: 18px;
  color: var(--color-muted);
  line-height: 1.55;
}

.new-layout .side-panel .layout-button {
  width: 100%;
}

.new-layout .compact-related {
  border-bottom: 0;
}

.new-layout .compact-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  max-width: 780px;
}

.new-layout .compact-links a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 9px 13px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  color: var(--area-dark);
  background: #ffffff;
  font-weight: 850;
  text-decoration: none;
  transition: var(--transition);
}

.new-layout .compact-links a:hover {
  border-color: transparent;
  box-shadow: var(--shadow-soft);
  transform: translateY(-2px);
}

.new-layout .layout-section {
  margin-top: 74px;
}

.new-layout .section-heading {
  max-width: 860px;
  margin-bottom: 26px;
}

.new-layout .section-heading p {
  color: var(--color-muted);
  font-size: 1rem;
  line-height: 1.72;
}

.new-layout .section-band {
  position: relative;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  padding: 64px 0;
  background: linear-gradient(180deg, var(--area-soft) 0, #ffffff 100%);
}

.new-layout .section-band > .section-heading,
.new-layout .section-band > .filter-controls,
.new-layout .section-band > .card-grid,
.new-layout .section-band > .quick-grid {
  width: min(1180px, calc(100% - 36px));
  margin-right: auto;
  margin-left: auto;
}

.new-layout .route-grid,
.new-layout .audience-grid,
.new-layout .card-grid,
.new-layout .quick-grid,
.new-layout .value-grid,
.new-layout .problem-grid,
.new-layout .step-list {
  display: grid;
  gap: 18px;
}

.new-layout .route-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.new-layout .route-card {
  display: grid;
  align-content: start;
  min-height: 360px;
  padding: 30px;
  border: 1px solid var(--color-border);
  border-top: 6px solid var(--area-primary);
  border-radius: var(--radius-card);
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  text-decoration: none;
  transition: var(--transition);
}

.new-layout a.route-card:hover,
.new-layout a.feature-card:hover,
.new-layout a.quick-card:hover,
.new-layout a.audience-card:hover,
.new-layout a.problem-card:hover {
  border-color: transparent;
  box-shadow: var(--shadow-hover);
  transform: translateY(-3px);
}

.new-layout .professional-card {
  border-top-color: var(--pro-primary);
}

.new-layout .education-card {
  border-top-color: var(--edu-dark);
  background: linear-gradient(180deg, #ffffff 0, var(--edu-soft) 100%);
}

.new-layout .card-kicker {
  margin-bottom: 12px;
  color: var(--color-muted);
  font-size: 0.82rem;
  font-weight: 850;
  text-transform: uppercase;
}

.new-layout .route-card h3 {
  font-size: 2.4rem;
}

.new-layout .route-card p,
.new-layout .route-card li,
.new-layout .feature-card p,
.new-layout .quick-card span,
.new-layout .audience-card p,
.new-layout .problem-card span,
.new-layout .value-card p,
.new-layout .step-list p,
.new-layout .final-cta p {
  color: var(--color-muted);
  line-height: 1.65;
}

.new-layout .route-card ul {
  display: grid;
  gap: 8px;
  margin: 14px 0 22px;
  padding-left: 20px;
}

.new-layout .card-action {
  align-self: end;
  justify-self: start;
  min-height: 42px;
  padding: 10px 13px;
  border-radius: var(--radius-card);
  color: #ffffff;
  background: var(--area-dark);
  font-size: 0.92rem;
  font-weight: 800;
}

.new-layout .filter-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 22px;
}

.new-layout .filter-button {
  min-height: 42px;
  padding: 9px 13px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  color: var(--area-dark);
  background: #ffffff;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 800;
  cursor: pointer;
  transition: var(--transition);
}

.new-layout .filter-button:hover,
.new-layout .filter-button.is-active {
  color: #ffffff;
  border-color: var(--area-primary);
  background: var(--area-primary);
}

.new-layout .filter-card[hidden] {
  display: none;
}

.new-layout .card-grid,
.new-layout .quick-grid,
.new-layout .problem-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.new-layout .services-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.new-layout .feature-card,
.new-layout .quick-card,
.new-layout .audience-card,
.new-layout .problem-card,
.new-layout .value-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: #ffffff;
}

.new-layout .feature-card {
  display: grid;
  align-content: start;
  min-height: 238px;
  padding: 22px;
  text-decoration: none;
  transition: var(--transition);
}

.new-layout .feature-icon {
  display: grid;
  width: 42px;
  min-height: 34px;
  place-items: center;
  margin-bottom: 18px;
  border-radius: var(--radius-card);
  color: #ffffff;
  background: var(--area-primary);
  font-weight: 900;
}

.new-layout .feature-card:nth-child(2n) .feature-icon {
  background: var(--area-dark);
}

.new-layout .feature-card:nth-child(3n) .feature-icon {
  background: var(--area-accent);
}

.new-layout .feature-card h3 {
  margin-bottom: 10px;
}

.new-layout .feature-card p {
  margin-bottom: 0;
  font-size: 0.94rem;
}

.new-layout .quick-card,
.new-layout .problem-card {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 136px;
  padding: 20px;
  border-left: 5px solid var(--area-primary);
  text-decoration: none;
  transition: var(--transition);
}

.new-layout .quick-card:nth-child(2n),
.new-layout .problem-card:nth-child(2n) {
  border-left-color: var(--area-accent);
}

.new-layout .quick-card b,
.new-layout .problem-card b {
  color: var(--area-text);
  font-size: 1.05rem;
  line-height: 1.25;
}

.new-layout .quick-card span,
.new-layout .problem-card span {
  font-size: 0.94rem;
}

.new-layout .audience-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.new-layout .three-columns {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.new-layout .audience-card {
  display: grid;
  align-content: start;
  min-height: 178px;
  padding: 22px;
  border-top: 5px solid var(--area-primary);
  text-decoration: none;
  transition: var(--transition);
}

.new-layout .audience-card:nth-child(2n) {
  border-top-color: var(--area-accent);
}

.new-layout .audience-card p {
  margin-bottom: 0;
  font-size: 0.95rem;
}

.new-layout .chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  max-width: 1000px;
}

.new-layout .chip-grid a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 9px 13px;
  border: 1px solid var(--color-border);
  border-left: 5px solid var(--area-primary);
  border-radius: var(--radius-card);
  background: #ffffff;
  color: var(--area-dark);
  font-size: 0.94rem;
  font-weight: 800;
  text-decoration: none;
  transition: var(--transition);
}

.new-layout .chip-grid a:hover {
  border-color: transparent;
  box-shadow: var(--shadow-soft);
  transform: translateY(-2px);
}

.new-layout .value-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.new-layout .value-card {
  min-height: 150px;
  padding: 22px;
  border-top: 5px solid var(--area-primary);
}

.new-layout .value-card:nth-child(2n) {
  border-top-color: var(--area-accent);
}

.new-layout .value-card p {
  margin-bottom: 0;
  font-size: 0.95rem;
}

.new-layout .method-section {
  max-width: 100%;
}

.new-layout .step-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.new-layout .seven-steps {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.new-layout .step-list li {
  min-height: 190px;
  padding: 20px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: #ffffff;
}

.new-layout .step-list span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  margin-bottom: 14px;
  border-radius: var(--radius-card);
  color: #ffffff;
  background: var(--area-primary);
  font-weight: 900;
}

.new-layout .step-list li:nth-child(2n) span {
  background: var(--area-accent);
}

.new-layout .step-list b {
  display: block;
  margin-bottom: 8px;
  color: var(--area-text);
  font-size: 1.05rem;
  line-height: 1.24;
}

.new-layout .step-list p {
  margin-bottom: 0;
  font-size: 0.93rem;
}

.new-layout .final-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
  margin-top: 78px;
  padding: 34px;
  border: 1px solid var(--color-border);
  border-top: 6px solid var(--area-primary);
  border-radius: var(--radius-card);
  background: linear-gradient(180deg, #ffffff 0, var(--area-soft) 100%);
}

.new-layout .final-cta h2 {
  max-width: 820px;
  margin-bottom: 12px;
  font-size: 2.4rem;
}

.new-layout .final-cta p {
  max-width: 780px;
  margin-bottom: 0;
}

.new-layout .layout-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 24px;
  padding: 26px 18px;
  border-top: 1px solid var(--color-border);
  color: var(--color-muted);
  background: #ffffff;
  font-size: 0.92rem;
  text-align: center;
}

.new-layout .layout-footer a {
  color: var(--area-dark);
  font-weight: 800;
}

.new-layout .quick-contact-bar {
  display: none;
}

.new-layout .quick-contact-bar a {
  color: #ffffff;
  text-decoration: none;
}

@media (max-width: 1100px) {
  .new-layout .services-grid,
  .new-layout .seven-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .new-layout .layout-header {
    position: static;
  }

  .new-layout .layout-header-inner {
    display: grid;
    justify-items: center;
    padding: 18px 0;
  }

  .new-layout .layout-nav {
    justify-content: center;
  }

  .new-layout .hero,
  .new-layout .service-hero,
  .new-layout .service-content,
  .new-layout .decision-panel,
  .new-layout .route-grid,
  .new-layout .audience-grid,
  .new-layout .three-columns,
  .new-layout .card-grid,
  .new-layout .quick-grid,
  .new-layout .problem-grid,
  .new-layout .value-grid,
  .new-layout .step-list,
  .new-layout .final-cta {
    grid-template-columns: 1fr;
  }

  .new-layout h1 {
    font-size: 3.2rem;
  }

  .new-layout h2 {
    font-size: 2.35rem;
  }

  .new-layout .final-cta .hero-actions {
    margin-top: 0;
  }

  .new-layout .service-side {
    position: static;
  }
}

@media (max-width: 640px) {
  .new-layout {
    padding-bottom: calc(74px + env(safe-area-inset-bottom, 0px));
  }

  .new-layout .layout-main {
    width: 100%;
    padding: 32px 14px 80px;
  }

  .new-layout .layout-nav {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 8px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, #ffffff 0, var(--area-soft) 100%);
  }

  .new-layout .layout-nav a {
    justify-content: center;
    min-height: 44px;
    padding: 10px 9px;
    border: 1px solid rgba(229, 231, 235, 0.82);
    background: rgba(255, 255, 255, 0.82);
    font-size: 0.86rem;
    line-height: 1.2;
    text-align: center;
  }

  .new-layout .layout-nav a[aria-current="page"] {
    color: #ffffff;
    background: var(--area-primary);
    border-color: var(--area-primary);
  }

  .new-layout h1 {
    font-size: clamp(1.62rem, 6.8vw, 1.9rem);
    line-height: 1.05;
  }

  .new-layout h2,
  .new-layout .final-cta h2 {
    font-size: 2rem;
  }

  .new-layout .hero-lead {
    font-size: 1.05rem;
  }

  .new-layout .hero-sublead,
  .new-layout .content-section p {
    font-size: 1rem;
  }

  .new-layout .service-hero,
  .new-layout .service-hero-copy,
  .new-layout .service-summary,
  .new-layout .service-content,
  .new-layout .service-article,
  .new-layout .content-section,
  .new-layout .decision-panel,
  .new-layout .side-panel {
    width: 100%;
    max-width: calc(100vw - 28px);
    min-width: 0;
  }

  .new-layout .service-hero-copy > *,
  .new-layout .service-summary *,
  .new-layout .content-section *,
  .new-layout .decision-panel *,
  .new-layout .side-panel * {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .new-layout .hero-actions,
  .new-layout .filter-controls {
    display: grid;
  }

  .new-layout .service-summary,
  .new-layout .decision-panel,
  .new-layout .side-panel {
    padding: 20px;
  }

  .new-layout .content-section {
    padding-bottom: 34px;
    margin-bottom: 34px;
  }

  .new-layout .two-columns-list {
    grid-template-columns: 1fr;
  }

  .new-layout .numbered-flow {
    grid-template-columns: 1fr;
  }

  .new-layout .numbered-flow li {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
    padding: 18px 0;
  }

  .new-layout .numbered-flow li::before {
    width: 38px;
    height: 38px;
  }

  .new-layout .layout-button,
  .new-layout .filter-button {
    width: 100%;
  }

  .new-layout .route-card,
  .new-layout .feature-card,
  .new-layout .audience-card,
  .new-layout .problem-card,
  .new-layout .value-card,
  .new-layout .final-cta {
    padding: 20px;
  }

  .new-layout .route-card {
    min-height: auto;
  }

  .new-layout .route-card h3 {
    font-size: 2rem;
  }

  .new-layout .hero-media {
    border-radius: var(--radius-card);
  }

  .new-layout .hero-media img {
    min-height: 0;
    object-fit: contain;
  }

  .new-layout .section-band {
    padding: 46px 0;
  }

  .new-layout .quick-contact-bar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 9999;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid rgba(18, 57, 91, 0.18);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 -12px 28px rgba(15, 23, 42, 0.16);
  }

  .new-layout .quick-contact-bar a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 46px;
    padding: 10px 8px;
    border-radius: var(--radius-card);
    background: var(--area-primary);
    font-size: 0.86rem;
    font-weight: 850;
    line-height: 1;
    text-align: center;
  }

  .new-layout .quick-contact-bar a:nth-child(2) {
    background: var(--area-dark);
  }

  .new-layout .quick-contact-bar a:nth-child(3) {
    background: var(--area-accent);
  }
}

@media (max-width: 380px) {
  .new-layout .layout-nav {
    grid-template-columns: 1fr;
  }
}

/* Componenti comuni: revisione di navigazione, leggibilità e accessibilità. */
body .site-wide-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 24px;
  padding: 30px max(18px, calc((100% - 1180px) / 2));
  border-top: 1px solid #dce3e8;
  color: #46545e;
  background: #fff;
  font: 0.9375rem/1.65 var(--font-main);
  text-align: center;
}
body .site-wide-footer > span:first-child,
body .site-wide-footer nav { flex-basis: 100%; }
body .site-wide-footer nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 24px; }
body .site-wide-footer a { color: #12395b; text-underline-offset: 3px; overflow-wrap: anywhere; }
body .site-wide-footer nav a { display: inline-flex; align-items: center; min-height: 44px; }

body .skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 10000;
  max-width: calc(100% - 24px);
  transform: translateY(-200%);
  padding: 12px 16px;
  border-radius: 8px;
  color: #fff;
  background: #12395b;
  font-weight: 700;
  text-decoration: none;
}
body .skip-link:focus { transform: translateY(0); }
body a:focus-visible,
body button:focus-visible,
body summary:focus-visible {
  outline: 3px solid #12395b !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 4px #fff !important;
}
main:focus { outline: none; }
main [id], main[id] { scroll-margin-top: 110px; }
main, main > *, header > *, main section > *, main aside { min-width: 0; }
.new-layout main { overflow-wrap: anywhere; }
.new-layout .route-grid > *, .new-layout .card-grid > *,
.new-layout .services-grid > *, .new-layout .problem-grid > * { min-width: 0; }
.new-layout .route-card, .new-layout .feature-card { grid-template-columns: minmax(0, 1fr); }
.new-layout .route-card > *, .new-layout .feature-card > * { min-width: 0; }
.new-layout h1, .new-layout h2, .new-layout h3 { overflow-wrap: anywhere; }
h1, h2, h3, a[href^="mailto:"] { overflow-wrap: anywhere; }
img { max-width: 100%; height: auto; }
[hidden] { display: none !important; }

/* Le aree mantengono i propri colori; il testo delle azioni resta leggibile. */
.practice-page .practice-button-primary,
.docente-page .docente-button-primary,
.provenzano-detail .detail-button-primary { color: #fff; }
.mobile-contact-bar a:nth-child(2) { background: #0f766e; }
.new-layout.education-page .filter-button:hover,
.new-layout.education-page .filter-button.is-active,
.new-layout.education-page .feature-icon,
.new-layout.education-page .step-list span,
.new-layout.education-page .numbered-flow li::before { color: #24302b; }
.new-layout.education-page .feature-card:nth-child(2n) .feature-icon,
.new-layout.education-page .step-list li:nth-child(2n) span { color: #fff; }
.new-layout .feature-card:nth-child(3n) .feature-icon,
.new-layout .quick-contact-bar a:nth-child(3) { color: #24302b; }
.new-layout.education-page .quick-contact-bar a:first-child { color: #24302b; }
.new-layout.education-page .layout-brand-mark { background: #3f7d63; }
.filter-status { margin: 0 0 18px; color: #46545e; font-size: 0.9375rem; }
.site-nav a[aria-current="page"],
.practice-nav a[aria-current="page"],
.detail-nav a[aria-current="page"] { color: #12395b; background: #edf3f7; }
.site-nav a, .practice-nav a, .detail-nav a { font-size: 0.9375rem; min-height: 44px; }
.new-layout .service-summary h2, .new-layout .hero-aside h2 { font-size: 1.35rem; line-height: 1.3; }

@media (max-width: 900px) {
  .header-inner, .practice-header-inner, .detail-header-inner {
    display: flex; flex-direction: column; align-items: center; gap: 16px;
  }
  .site-nav, .practice-nav, .detail-nav { justify-content: center; }
  main [id], main[id] { scroll-margin-top: 24px; }
}
@media (max-width: 640px) {
  body, body.new-layout { padding-bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
  .new-layout .layout-brand { min-width: 0; }
  .brand-mark, .practice-brand-mark, .detail-brand-mark, .new-layout .layout-brand-mark { flex-shrink: 0; }
  .brand-name, .practice-brand-name, .detail-brand-name, .new-layout .layout-brand-text { overflow-wrap: anywhere; line-height: 1.25; }
  .practice-title, .detail-title, .school-title { font-size: clamp(2rem, 9vw, 2.625rem); line-height: 1.12; }
  .site-nav, .practice-nav, .detail-nav, .new-layout .layout-nav {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 6px;
  }
  .site-nav a, .practice-nav a, .detail-nav a, .new-layout .layout-nav a {
    justify-content: center; text-align: center; font-size: 0.875rem; min-height: 44px; padding: 8px;
  }
  .practice-table th, .practice-table td { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
