:root {
  --primary:#1557ff;
  --ink:#103c4c;
  --text:#1f2430;
  --muted:#5f6778;
  --line:#e2e7ef;
  --shadow:0 18px 40px #121f3d0c;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}

body {
  margin:0;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:17px;
  color:var(--text);
  background:linear-gradient(180deg,#fafafb,#f1f3f8);
  line-height:1.7;
}

a {
  color:inherit;
}

a:focus-visible {
  outline:3px solid #de7d2e;
  outline-offset:5px;
}

.wrap {
  width:min(calc(100% - 40px),1180px);
  margin:auto;
}

.topbar {
  position:sticky;
  top:0;
  z-index:10;
  backdrop-filter:blur(14px);
  background:#ffffffed;
  border-bottom:1px solid var(--line);
}

.bar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:15px 0;
}

.brand {
  font-weight:800;
  color:var(--ink);
  font-size:17px;
  text-decoration:none;
  line-height:1.3;
}

.brand span {
  display:block;
  font-size:12px;
  font-weight:500;
  letter-spacing:.06em;
  color:var(--muted);
  margin-top:4px;
}

nav {
  display:flex;
  gap:20px;
}

nav a {
  font-size:14px;
  text-decoration:none;
  color:var(--muted);
  padding:7px 0;
}

nav a:hover {
  color:var(--primary);
}

.hero {
  padding-top:32px;
}

.banner {
  display:block;
  width:100%;
  height:auto;
  border-radius:20px;
  box-shadow:var(--shadow);
}

.hero-bottom {
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:center;
  padding:32px 0 45px;
  border-bottom:1px solid var(--line);
}

.eyebrow,.kicker {
  font-size:12px;
  font-weight:750;
  letter-spacing:.13em;
  color:#0e6767;
}

.eyebrow {
  display:inline-block;
  padding:6px 12px;
  background:#32c8c819;
  border-radius:30px;
  margin-bottom:14px;
}

h1,h2,h3 {
  line-height:1.16;
  letter-spacing:-.03em;
  color:var(--ink);
  margin:0 0 20px;
}

h1 {
  font-size:clamp(1.8rem,3vw,2.45rem);
  margin:0;
}

h2 {
  font-size:clamp(1.9rem,3.5vw,2.65rem);
}

h3 {
  font-size:1.3rem;
}

p {
  margin:0 0 20px;
}

.actions {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:11px 23px;
  text-decoration:none;
  border-radius:99px;
  font-size:15px;
  font-weight:700;
  transition:background .2s,box-shadow .2s;
  text-align:center;
}

.primary {
  background:var(--primary);
  color:white;
}

.primary:hover {
  background:#0f3eb3;
  box-shadow:0 8px 20px #1557ff26;
}

.secondary {
  background:white;
  color:var(--primary);
  border:1px solid #1557ff33;
}

.section {
  padding:65px 0;
}

.section-heading {
  max-width:850px;
  margin-bottom:32px;
}

.kicker {
  display:block;
  margin-bottom:12px;
}

.intro-grid {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:50px;
}

.questions {
  padding:28px 32px;
  background:#eaf1f7;
  border-left:4px solid #32c8c8;
  border-radius:0 18px 18px 0;
}

.questions p {
  font-size:19px;
  color:var(--ink);
  line-height:1.5;
}

.questions p:last-child,.copy p:last-child {
  margin-bottom:0;
}

.topics {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.topics article {
  background:white;
  padding:28px;
  border-radius:20px;
  box-shadow:var(--shadow);
  border:1px solid #e7ebf2;
}

.number {
  display:block;
  color:var(--primary);
  font-family:monospace;
  font-size:14px;
  margin-bottom:24px;
}

.topics h3 {
  margin-bottom:10px;
}

.topics p {
  color:var(--muted);
  font-size:16px;
  margin:0;
}

.section-card {
  background:white;
  padding:44px;
  border-radius:24px;
  box-shadow:var(--shadow);
}

.school {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  margin:20px 0;
}

.school h3 {
  margin-top:8px;
  margin-bottom:12px;
}

.school .btn {
  margin-top:10px;
}

.note {
  border-top:1px solid var(--line);
  padding-top:20px;
  font-size:16px;
  color:#426474;
}

.support-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
}

.support .btn {
  margin-top:4px;
}

.download {
  display:flex;
  justify-content:space-between;
  gap:36px;
  align-items:center;
  border-top:4px solid #32c8c8;
}

.download h2 {
  font-size:1.9rem;
}

.download p {
  margin-bottom:8px;
}

.file-info {
  font-size:14px;
  color:var(--muted);
}

.text-link {
  font-size:14px;
  color:var(--primary);
  text-underline-offset:4px;
}

.contact {
  padding:80px 0;
  text-align:center;
}

.contact h2 {
  margin-bottom:24px;
}

.email {
  font-size:clamp(1.1rem,2.6vw,1.8rem);
  font-weight:700;
  color:var(--primary);
  text-underline-offset:6px;
  overflow-wrap:anywhere;
}

.contact p {
  margin-top:25px;
  font-size:15px;
  color:var(--muted);
}

footer {
  border-top:1px solid var(--line);
  padding:25px 0;
  background:white;
}

.footer-inner {
  display:flex;
  gap:24px;
  justify-content:space-between;
  font-size:13px;
  color:var(--muted);
}

.skip {
  position:absolute;
  top:-100px;
  left:15px;
  background:white;
  padding:12px;
  z-index:30;
}

.skip:focus {
  top:10px;
}

@media(max-width:760px) {
  .bar {
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
    padding:12px 0;
  }
  nav {
    gap:16px;
    flex-wrap:wrap;
  }
  nav a {
    font-size:13px;
    padding:0;
  }
  .hero {
    padding-top:18px;
  }
  .hero-bottom,.download {
    flex-direction:column;
    align-items:flex-start;
  }
  .hero-bottom {
    padding:25px 0 35px;
  }
  .actions {
    width:100%;
  }
  .hero-bottom .actions {
    flex-direction:row;
    flex-wrap:wrap;
  }
  .intro-grid,.school,.support-grid {
    grid-template-columns:1fr;
    gap:24px;
  }
  .topics {
    grid-template-columns:repeat(2,1fr);
  }
  .section {
    padding:42px 0;
  }
  .section-card {
    padding:28px;
  }
  .contact {
    padding:55px 0;
  }
  .footer-inner {
    flex-direction:column;
    gap:9px;
  }
  .banner {
    border-radius:10px;
  }
  .questions {
    padding:24px;
  }
  html {
    scroll-padding-top:130px;
  }
}

@media(max-width:430px) {
  .wrap {
    width:calc(100% - 28px);
  }
  .topics {
    grid-template-columns:1fr;
  }
  .topics article {
    padding:24px;
  }
  .number {
    margin-bottom:12px;
  }
  .btn {
    font-size:14px;
    padding:10px 18px;
  }
  .section-card {
    padding:24px;
  }
  nav {
    gap:13px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  * {
    transition:none!important;
  }
}

/* Immagini dei sei percorsi: intere e proporzionate */
.topics .topic-image {
  display:block;
  width:100%;
  height:180px;
  object-fit:contain;
  background:#f5f6f8;
  border-radius:12px;
  margin-bottom:22px;
}

@media(max-width:430px) {
  .topics .topic-image {
    height:190px;
  }
}

