/* La pelle della vetrina: viene dal mockup, intatta.
   ⚠️ Sta in /public e si aggancia con <link> invece di essere importata:
   il CSS globale di Next vale per tutta l'app, e queste regole toccano
   selettori comuni (.wrap, .card, h1) che nel portale esistono già.
   Legata alla sola pagina, non può sporcare nient'altro. */

:root{--navy:#06172f;--blue:#122e3f;--coral:#f26343;--cream:#f8f7f3;--muted:#4a5d71;--line:#d8dddc;--photos:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--cream);color:var(--navy);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #237aaa;outline-offset:5px}.wrap{width:86.5%;max-width:1250px;margin:auto}.topline{font-size:11px;padding-top:11px}.header{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:26px}.logo{display:inline-flex;flex-direction:column;flex-shrink:0}.wordmark{font-size:37px;letter-spacing:-1.6px;font-weight:800;line-height:1.05}.arrow{color:var(--coral);font-weight:500}.wordmark .arrow{font-size:47px;line-height:.7;vertical-align:-2px}.logo small{font-size:9px;letter-spacing:3.2px;font-weight:bold;margin-top:6px}.nav{display:flex;gap:34px;align-items:center;margin-left:auto;margin-right:auto;padding-left:65px;font-size:13px;font-weight:600}.nav a:hover{color:var(--coral)}.button{display:inline-flex;align-items:center;justify-content:center;gap:15px;padding:15px 29px;min-height:46px;border:1px solid #ed765a;border-radius:4px;background:var(--coral);color:white;font-weight:700;font-size:15px;box-shadow:inset 0 0 12px #ffffff12;transition:background .15s}.button:hover{background:#da4e31}.button .arr{font-size:24px;line-height:16px;font-weight:400}.button.small{font-size:13px;padding:11px 22px;min-height:36px}.hero{display:grid;grid-template-columns:47.4% 52.6%;border-top:1px solid var(--line);max-width:1600px;margin:auto}.hero-copy{padding:36px 32px 25px max(6.75vw,calc((100vw - 1250px)/2));display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:10px;letter-spacing:2.2px;font-weight:700;margin:0 0 17px}.hero h1{font-size:clamp(36px,5.55vw,78px);letter-spacing:-2.7px;line-height:.98;margin:0 0 19px;font-weight:800}.hero p.description{font-size:20px;line-height:1.2;color:var(--muted);margin:0;max-width:490px}.hero-actions{display:flex;align-items:center;gap:32px;margin-top:24px;flex-wrap:wrap}.text-link{font-size:14px;font-weight:600;border-bottom:1px solid #71838c;padding-bottom:4px;white-space:nowrap}.text-link:hover{color:var(--coral)}.hero-copy .footnote{font-size:11px;letter-spacing:1.5px;color:var(--muted);margin:29px 0 0}.photo{background-image:var(--photos);background-repeat:no-repeat;background-color:#ddd6c9}.hero-photo{min-height:434px;background-size:190.17% auto;background-position:100% 9.70%;position:relative;aspect-ratio:590/433}.hero-photo figcaption{position:absolute;bottom:15px;right:28px;color:white;font-size:11px;text-shadow:0 1px 5px #000;background:#11233244;padding:3px 5px}figure{margin:0}.proof{background:var(--blue);color:white}.proof-inner{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;min-height:64px}.proof p{text-align:center;font-weight:700;font-size:20px;border-right:1px solid #718391;margin:0;padding:5px 18px}.proof p:last-child{border:0}.masters{padding:31px 0 24px}.masters .eyebrow{margin-bottom:8px}.masters h2{font-size:39px;letter-spacing:-1.5px;line-height:1.1;margin:0 0 4px}.intro{font-size:19px;color:var(--muted);margin:0 0 18px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card{border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;background:var(--cream);transition:transform .18s,box-shadow .18s}.card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #142c4014}.card-image{width:100%;aspect-ratio:315/105;flex-shrink:0}.hotel{background-size:357.32% auto;background-position:9.14% 55.79%}.tourism{background-size:357.32% auto;background-position:50.31% 55.79%}.communication{background-size:357.32% auto;background-position:91.22% 55.79%}.event{background-size:357.32% auto;background-position:9.14% 72.17%}.hr{background-size:357.32% auto;background-position:50.31% 72.17%}.card-body{padding:10px 17px 11px;display:flex;flex-direction:column;flex:1}.label{font-size:9px;letter-spacing:1.5px;color:#866746;margin:0 0 3px}.card h3{font-size:16px;line-height:1.2;margin:0 0 5px;letter-spacing:-.3px}.card-body>p:not(.label){font-size:12px;color:var(--muted);margin:0 0 9px}.course-link{font-size:13px;color:#e95636;font-weight:700;margin-top:auto;display:inline-flex;gap:13px;align-items:center}.course-link span{font-size:20px;line-height:12px;font-weight:400}.orientation{background:var(--blue);color:white;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:17px 15px 20px}.orientation>.arrow{font-size:52px;line-height:1;margin-bottom:12px}.orientation h3{font-size:24px;letter-spacing:-.6px;margin:0 0 8px}.orientation p{font-size:14px;margin:0 0 17px}.orientation .button{font-size:13px;padding:12px 25px;min-height:41px}.method{border-top:1px solid var(--line);padding:17px 0 22px}.method h2{font-size:35px;letter-spacing:-1.3px;margin:0 0 19px}.benefits{display:grid;grid-template-columns:repeat(3,1fr)}.benefit{display:flex;align-items:flex-start;gap:23px;padding:0 28px 0 0;margin-right:28px;border-right:1px solid #c8cfd1}.benefit:last-child{border:0;margin:0;padding:0}.benefit svg{width:46px;height:46px;flex-shrink:0;stroke:var(--navy);stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}.benefit h3{font-size:14px;margin:0 0 7px;line-height:1.2}.benefit p{font-size:13px;line-height:1.3;color:var(--muted);margin:0}.cta{background:var(--blue);color:white;padding:23px 0 28px}.cta-inner{display:flex;gap:30px;justify-content:space-between;align-items:center}.cta h2{font-size:24px;letter-spacing:-.4px;margin:0;font-weight:500}.cta .button{font-size:14px;padding:12px 27px;min-height:44px;flex-shrink:0}.concept{text-align:right;font-size:8px;color:#a3b4be;margin:0 2.8% 0 0;padding-top:0;background:var(--blue)}.footerline{background:var(--blue);padding-bottom:18px}.skip{position:fixed;top:-70px;left:12px;background:white;padding:12px;z-index:100}.skip:focus{top:10px}@media(min-width:1500px){.hero-copy{padding-left:90px}.hero h1{font-size:76px}}@media(max-width:1000px){.nav{gap:20px;padding-left:15px}.hero-copy{padding-right:22px}.hero h1{letter-spacing:-2px}.hero p.description{font-size:17px}.hero-actions{gap:17px}.hero-actions .button{padding:14px 20px}.text-link{font-size:12px}.proof p{font-size:17px}.masters h2{font-size:33px}.benefit{gap:14px;margin-right:18px;padding-right:18px}.benefit svg{width:34px}.cta h2{font-size:21px}.hero-photo{min-height:400px}}@media(max-width:760px){.wrap{width:90%}.topline{padding-top:13px}.header{flex-wrap:wrap;padding:14px 0;gap:16px}.wordmark{font-size:31px}.wordmark .arrow{font-size:38px}.logo small{font-size:7px}.nav{order:3;width:100%;padding:5px 0 0;justify-content:space-between;margin:0;gap:10px}.hero{grid-template-columns:1fr}.hero-copy{padding:32px 5%}.hero h1{font-size:clamp(38px,9vw,60px);letter-spacing:-1.8px;line-height:1.02}.hero p.description{font-size:18px;max-width:500px}.hero-actions{gap:24px}.text-link{font-size:14px}.hero-photo{min-height:0;aspect-ratio:590/433}.proof-inner{width:100%;min-height:78px}.proof p{font-size:14px;padding:7px 12px;line-height:1.3}.masters{padding-top:30px}.masters h2{font-size:31px}.intro{font-size:17px;line-height:1.4}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.orientation h3{font-size:20px}.orientation p{font-size:13px}.orientation>.arrow{font-size:40px;margin-bottom:7px}.orientation .button{padding:11px 15px}.method{padding-block:25px}.method h2{font-size:29px}.benefits{grid-template-columns:1fr;gap:23px}.benefit{border:0;padding:0;margin:0;gap:20px}.benefit svg{width:42px}.benefit h3{font-size:16px}.benefit p{font-size:14px}.cta-inner{align-items:flex-start;flex-direction:column;gap:20px}.cta h2{font-size:25px;line-height:1.2}.concept{text-align:left;margin-left:5%;font-size:9px}}@media(max-width:450px){.grid{grid-template-columns:1fr}.card h3{font-size:18px}.card-body{padding:14px 17px}.card-body>p:not(.label),.course-link{font-size:14px}.orientation{min-height:220px}.orientation h3{font-size:25px}.proof p{font-size:12px}.header>.button{padding:10px 14px}.hero-actions{gap:18px}.masters h2{font-size:28px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card,.button{transition:none}}@media print{body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.card,.benefit,.proof{break-inside:avoid}.wrap{width:90%}.hero-copy{padding-left:5%}a{color:inherit}}
.photo{background-image:none!important;position:relative;overflow:hidden}.photo-crop{display:block;position:absolute;inset:0;width:100%;height:100%}

/* Il marchio nell'intestazione: altezza fissa, larghezza a seguire.
   ⚠️ L'altezza la decide la riga, non il file: un logo che cresce col
   contenitore fa ballare l'intestazione da una pagina all'altra.
   L'header è alto 72px: a 38px il logo (full-bleed, nessun margine nel PNG)
   restava sottodimensionato. Portato a 50px desktop / 34px mobile, coerente
   con l'altezza dell'intestazione, proporzioni e allineamento invariati. */
.header .marchio{height:50px;width:auto;display:block}
@media (max-width:640px){.header .marchio{height:34px}}

/* Le due bandiere nel menu.
   ⚠️ Quella corrente è ACCESA, l'altra è spenta: il contrario — segnare quella
   dove andresti — sembra dire «sei qui» e manda via chi voleva restare. */
.lingue{display:inline-flex;align-items:center;gap:9px}
.lingue a{display:inline-flex;line-height:0;border-radius:2px;overflow:hidden;
  box-shadow:0 0 0 1px #00000026;opacity:.42;transition:opacity .15s}
.lingue a:hover{opacity:1}
.lingue a[aria-current]{opacity:1;box-shadow:0 0 0 2px var(--coral)}
.lingue svg{display:block;width:25px;height:17px}
@media (max-width:760px){.lingue svg{width:23px;height:15px}}

/* La fascia della scheda: stessa forma per tutte, con o senza foto.
   ⚠️ `object-fit:cover` anche se l'immagine arriva già ritagliata — se un
   giorno ne arrivasse una di forma diversa, si taglierebbe invece di
   schiacciarsi, che è l'unico errore che si nota a colpo d'occhio. */
.card-image{display:block;width:100%;aspect-ratio:3/1;object-fit:cover;flex-shrink:0}
.card-image-vuota{
  background:linear-gradient(135deg,var(--blue) 0%,#1d4257 58%,#2a5668 100%);
  position:relative}
.card-image-vuota::after{
  content:"↗";position:absolute;right:14px;bottom:4px;
  color:#ffffff2e;font-size:40px;line-height:1}

/* Un ingresso all'area internazionale, distinto dai webinar acquistabili. */
.international-entry{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center;background:#e7edf4;padding:32px!important;border-radius:10px;margin-top:42px!important;margin-bottom:10px!important}
.international-entry h2{font-size:clamp(27px,3vw,40px);line-height:1.1;margin:0 0 14px}
.international-entry p{max-width:680px;font-size:16px;line-height:1.5;margin-bottom:0}
.international-entry .eyebrow{margin-bottom:12px}
.international-entry-actions{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.international-entry-actions>span{font-size:12px;font-weight:600}
@media(max-width:850px){.international-entry{grid-template-columns:1fr;padding:24px!important;gap:22px}.international-entry .button{font-size:14px}}

/* La navigazione vera è condivisa con l'International School e vive nel suo
   CSS module. Qui restano soltanto le azioni desktop della testata: su mobile
   lingua e accesso entrano nel pannello laterale, così la riga contiene logo e
   un solo pulsante Menu. */
.nav-lingue{display:flex;align-items:center;margin:0;padding:0}

/* ── COMPATIBILITÀ DURANTE IL RICAMBIO DELLA HOME ────────────────────────────
   Azure sostituisce pagina e risorse statiche in momenti distinti. Per alcuni
   secondi una scheda già aperta può quindi ricevere il vecchio markup insieme
   al foglio nuovo. Queste regole non sono usate dalla nuova navigazione, ma
   tengono composta quella precedente finché anche la pagina è stata sostituita:
   senza, checkbox, hamburger e nove link compaiono tutti sulla stessa riga. */
.menu-spunta{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.menu-toggle{display:none}
.nav-tendina{position:relative;display:inline-block}
.nav-tendina>a{display:inline-flex;align-items:center;gap:6px}
.tendina{position:absolute;top:100%;left:0;z-index:30;display:none;min-width:230px;
  background:#fff;border:1px solid #e3e1d8;border-radius:10px;padding:10px 0;
  box-shadow:0 18px 40px rgba(18,33,46,.14)}
.tendina a{display:block;padding:9px 18px;white-space:nowrap}
.tendina a:hover{background:#f4f2ea}
.nav-tendina:hover>.tendina,.nav-tendina:focus-within>.tendina{display:block}

@media(max-width:900px){
  .header{flex-wrap:nowrap}
  .header .nav-lingue,.header>.button{display:none}
  .menu-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;
    padding:10px 0;font-size:14px;font-weight:700;order:2}
  .menu-spunta:focus-visible+.menu-toggle{outline:3px solid #cf691e;outline-offset:4px}
  .header>.nav:not(.nav-lingue){display:none}
  .menu-spunta:checked~nav.nav{display:flex!important;flex-direction:column;align-items:flex-start;
    gap:14px;padding:8px 0 16px;width:100%;order:4}
  .nav-tendina{display:block;width:100%}
  .tendina{position:static;display:block;border:0;box-shadow:none;background:transparent;
    padding:6px 0 0 16px;min-width:0}
  .tendina a{padding:7px 0;font-weight:600}
  .nav-tendina>a>span[aria-hidden]{display:none}
}

/* Recensioni Google: i numeri e le testimonianze arrivano dall'endpoint
   pubblico di uplevel.it. Tre schede in riga sul desktop, scorrimento sul
   telefono, senza incorporare il vecchio widget esterno. */
.home-reviews{border-top:1px solid var(--line);background:#eef3f9;padding:42px 0 38px}
.home-reviews-inner{text-align:center}
.home-reviews .eyebrow{margin-bottom:9px;color:#0a66c2}
.home-reviews h2{font-size:35px;letter-spacing:-1.3px;line-height:1.1;margin:0}
.home-reviews-intro{color:var(--muted);font-size:15px;line-height:1.45;margin:10px auto 24px;max-width:650px}
.home-reviews-summary{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #d7e2ee;border-radius:12px;padding:15px 20px;margin-bottom:18px;box-shadow:0 6px 22px rgba(6,23,47,.045)}
.home-google-mark{display:grid;place-items:center;width:27px;height:27px;border:1px solid #d7e2ee;border-radius:50%;color:#4285f4;background:#fff;font-weight:800}
.home-reviews-summary>strong{font-size:24px}
.home-review-stars,.home-review-card-stars{color:#f7b500;letter-spacing:1px}
.home-review-locations{display:flex;gap:8px;list-style:none;margin:0 0 0 10px;padding:0}
.home-review-locations li{border-left:1px solid #d7e2ee;padding-left:10px;font-size:12px;color:var(--muted)}
.home-review-row{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 14px;text-align:left}
.home-review-card{display:flex;flex:1 1 0;flex-direction:column;min-width:0;background:#fff;border:1px solid #d7e2ee;border-radius:12px;padding:18px;scroll-snap-align:start;color:inherit;text-decoration:none;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}
.home-review-card:hover{border-color:#9fc5ee;transform:translateY(-2px);box-shadow:0 10px 28px rgba(6,23,47,.08)}
.home-review-card header{display:flex;align-items:center;gap:11px}
.home-review-avatar{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;background:var(--blue);color:#fff;font-size:13px;font-weight:800;object-fit:cover}
.home-review-card header div{display:flex;min-width:0;flex-direction:column;gap:3px}
.home-review-card header strong{font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-review-card header span{font-size:11px;color:var(--muted)}
.home-review-card header b{display:inline-grid;place-items:center;width:16px;height:16px;margin-right:3px;border:1px solid #d7e2ee;border-radius:50%;color:#4285f4;background:#fff}
.home-review-card-stars{font-size:14px;margin:13px 0 8px}
.home-review-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;margin:0;color:#263d55;font-size:13px;line-height:1.5}
.home-review-profile-links{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:7px}
.home-review-profile-links a{display:inline-flex;align-items:center;gap:7px;border:1px solid #cbdbea;border-radius:999px;background:#fff;padding:8px 13px;color:#0a66c2;font-size:13px;font-weight:700;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}
.home-review-profile-links a:hover{border-color:#8bb9e8;transform:translateY(-1px);box-shadow:0 6px 18px rgba(6,23,47,.07)}
.home-review-profile-links .home-google-mark{width:20px;height:20px;font-size:11px}
@media(max-width:760px){.home-reviews{padding:34px 0 30px}.home-reviews h2{font-size:29px}.home-reviews-intro{font-size:14px}.home-reviews-summary{justify-content:flex-start;text-align:left}.home-review-locations{width:100%;margin:4px 0 0;overflow-x:auto}.home-review-locations li:first-child{border-left:0;padding-left:0}.home-review-card{flex:0 0 84%}.home-review-profile-links{gap:7px}.home-review-profile-links a{padding:7px 10px;font-size:12px}}

/* Alumni: una sola riga di profili pubblici verificati, fra il metodo e il
   contatto. Su schermi stretti la riga scorre: i profili non vanno mai a capo. */
.home-alumni{border-top:1px solid var(--line);background:#fff;padding:42px 0 38px}
.home-alumni-inner{text-align:center}
.home-alumni .eyebrow{margin-bottom:9px}
.home-alumni h2{font-size:35px;letter-spacing:-1.3px;line-height:1.1;margin:0}
.home-alumni-intro{color:var(--muted);font-size:15px;line-height:1.45;margin:10px auto 28px;max-width:620px}
.home-alumni-row{display:flex;align-items:flex-start;justify-content:center;flex-wrap:nowrap;gap:26px;overflow-x:auto;padding:5px 4px 15px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.home-alumnus{position:relative;flex:0 0 112px;width:112px;color:var(--navy);text-align:center;scroll-snap-align:start;transition:transform .18s,color .18s}
.home-alumnus:hover{color:#0a66c2;transform:translateY(-3px)}
.home-alumnus-photo{position:relative;display:block;width:96px;height:96px;margin:0 auto 10px}
.home-alumnus-photo img{display:block;width:96px;height:96px;object-fit:cover;border:4px solid #fff;border-radius:50%;box-shadow:0 8px 24px rgba(6,23,47,.16)}
.home-alumnus-linkedin{position:absolute;right:-2px;bottom:0;display:grid;place-items:center;width:24px;height:24px;border:2px solid #fff;border-radius:5px;background:#0a66c2;color:#fff;font-family:Arial,sans-serif;font-size:15px;font-weight:700;line-height:1;box-shadow:0 3px 8px rgba(6,23,47,.22)}
.home-alumnus-name{display:block;font-size:13px;font-weight:700;line-height:1.25}
.home-alumni-all{display:inline-flex;align-items:center;gap:8px;margin-top:7px;color:#0a66c2;font-size:14px;font-weight:700;border-bottom:1px solid transparent}
.home-alumni-all:hover{border-bottom-color:currentColor}
@media(max-width:900px){.home-alumni-row{justify-content:flex-start}}
@media(max-width:760px){.home-alumni{padding:34px 0 30px}.home-alumni h2{font-size:29px}.home-alumni-intro{font-size:14px;margin-bottom:22px}.home-alumni-row{gap:14px;padding-inline:2px}.home-alumnus{flex-basis:86px;width:86px}.home-alumnus-photo,.home-alumnus-photo img{width:76px;height:76px}.home-alumnus-name{font-size:12px}}
