/* <picture> wrapper must not affect layout (WebP + fallback) */
picture{display:contents}

:root{
  --navy:#062757;
  --blue:#0b55b7;
  --light-blue:#eaf6ff;
  --red:#ed2745;
  --green:#24b34b;
  --yellow:#ffc429;
  --purple:#9d35e8;
  --teal:#03a9bb;
  --ink:#16233b;
  --muted:#5f718d;
  --card:#ffffff;
  --shadow:0 20px 45px rgba(6,39,87,.13);
  --radius:30px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(1180px,calc(100% - 40px));margin:auto}
.skip-link{position:absolute;left:-999px;top:8px;background:#fff;padding:10px;z-index:99}
.skip-link:focus{left:8px}
.top-bar{background:#061d42;color:#fff;font-weight:800;font-size:.9rem}
.top-inner{width:min(1280px,calc(100% - 40px));margin:auto;display:flex;gap:34px;align-items:center;justify-content:space-between;padding:12px 0;white-space:nowrap}
.socials{letter-spacing:.5rem}
.navbar{height:126px;width:min(1280px,calc(100% - 40px));margin:auto;display:flex;align-items:center;gap:28px;background:#fff}
.brand img{width:270px;height:98px;object-fit:contain}
.menu{display:flex;align-items:center;gap:25px;margin-left:auto;font-size:.92rem;font-weight:900;text-transform:uppercase;color:#0b1d41}
.menu a{position:relative;padding:14px 0}
.menu a.active,.menu a:hover{color:var(--red)}
.menu a.active:after{content:"";position:absolute;left:50%;bottom:2px;transform:translateX(-50%);width:26px;height:4px;border-radius:999px;background:var(--red)}
.header-cta{background:var(--red);color:#fff;border-radius:999px;padding:16px 26px;text-transform:uppercase;font-weight:950;box-shadow:0 12px 28px rgba(237,39,69,.25);white-space:nowrap}
.header-cta span,.btn span{display:inline-grid;place-items:center;margin-left:10px;background:#fff;color:var(--red);width:26px;height:26px;border-radius:50%}
.menu-toggle{display:none}
.hero{position:relative;overflow:hidden;background:linear-gradient(105deg,#e8f5ff 0%,#f7fbff 45%,#dff6ec 100%);padding:46px 0 0}
.hero-bg-pattern{position:absolute;inset:0;background-image:radial-gradient(circle at 18px 18px,rgba(11,85,183,.10) 2px,transparent 3px);background-size:36px 36px;opacity:.45}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr .95fr;gap:55px;align-items:start}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:950;color:var(--blue);margin:0 0 12px}
.red-text{color:var(--red)}
.light{color:#fff}
.hero h1{margin:0;text-transform:uppercase;letter-spacing:-.05em;line-height:.9}
.hero h1 span{display:block;font-size:clamp(3.2rem,6vw,5.7rem);color:var(--navy);font-weight:950}
.hero h1 strong{display:block;font-size:clamp(3rem,5.5vw,5.4rem);color:var(--red);font-weight:950}
.hero h2{font-size:clamp(1.45rem,2.4vw,2.35rem);text-transform:uppercase;line-height:1.15;color:var(--navy);max-width:720px;margin:18px 0}
.lead{border-left:4px solid var(--blue);padding-left:18px;color:#243b5e;font-size:1.1rem;font-weight:720;max-width:610px}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:30px}
.btn{border:2px solid transparent;border-radius:999px;padding:15px 24px;text-transform:uppercase;font-weight:950;display:inline-flex;align-items:center;justify-content:center}
.btn-blue{background:linear-gradient(135deg,var(--blue),#05377d);color:#fff;box-shadow:0 16px 30px rgba(11,85,183,.22)}
.btn-outline{background:#fff;color:var(--navy);border-color:var(--blue)}
.btn-outline span{background:var(--blue);color:#fff}
.btn-light{background:#fff;color:var(--red)}
.hero-panel{position:relative}
.logos-card{background:rgba(255,255,255,.9);border-radius:34px;padding:22px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:center}
.logo-box{text-align:center}
.logo-box img{height:74px;margin:auto;object-fit:contain}
.logo-box p{text-transform:uppercase;color:#0a2755;font-weight:900;font-size:.78rem;line-height:1.3;margin:10px 0 0}
.hero-panel blockquote{font-family:Georgia,serif;font-style:italic;font-size:clamp(2rem,3vw,3.1rem);color:#0a2755;text-align:center;margin:44px auto 0;line-height:1.18;transform:rotate(-4deg)}
.hero-panel blockquote:after{content:"";display:block;width:520px;max-width:100%;height:56px;margin:12px auto 0;background:url("assets/img/brush-underline-red.svg") center/contain no-repeat}
.skyline-stage{position:relative;z-index:1;width:100%;height:210px;margin-top:-5px;overflow:hidden;display:flex;align-items:flex-end}
.skyline-stage img{width:100%;height:100%;object-fit:cover;object-position:center bottom;filter:contrast(1.08) saturate(1.03)}
.hero-cards{position:relative;z-index:5;display:grid;grid-template-columns:repeat(6,1fr);gap:18px;margin-top:-25px;padding-bottom:44px}
.quick-card{background:#fff;border-radius:22px;box-shadow:0 16px 36px rgba(6,39,87,.14);padding:24px 18px;text-align:center;min-height:235px;border:1px solid rgba(6,39,87,.06)}
.quick-card .icon{width:58px;height:58px;border-radius:50%;margin:-48px auto 16px;display:grid;place-items:center;color:#fff;box-shadow:0 14px 24px rgba(0,0,0,.12)}
.quick-card .icon svg{width:30px;height:30px;display:block;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.quick-card h3{text-transform:uppercase;font-size:1.02rem;line-height:1.25;margin:0 0 14px;font-weight:950}
.quick-card p{font-size:.92rem;line-height:1.45;color:#253a5c}
.quick-card a{font-size:.82rem;text-transform:uppercase;font-weight:950}
.quick-card.blue .icon,.quick-card.blue a{background:#1157bf;color:#1157bf}.quick-card.blue .icon{color:#fff}.quick-card.blue h3{color:#1157bf}
.quick-card.red .icon,.quick-card.red a{background:var(--red);color:var(--red)}.quick-card.red .icon{color:#fff}.quick-card.red h3{color:var(--red)}
.quick-card.yellow .icon,.quick-card.yellow a{background:#ffb300;color:#ffb300}.quick-card.yellow .icon{color:#fff}.quick-card.yellow h3{color:#ffb300}
.quick-card.green .icon,.quick-card.green a{background:var(--green);color:var(--green)}.quick-card.green .icon{color:#fff}.quick-card.green h3{color:var(--green)}
.quick-card.purple .icon,.quick-card.purple a{background:var(--purple);color:var(--purple)}.quick-card.purple .icon{color:#fff}.quick-card.purple h3{color:var(--purple)}
.quick-card.teal .icon,.quick-card.teal a{background:var(--teal);color:var(--teal)}.quick-card.teal .icon{color:#fff}.quick-card.teal h3{color:var(--teal)}
.section{padding:92px 0}
.split{display:grid;grid-template-columns:.95fr 1.05fr;gap:52px;align-items:center}
.section h2{font-size:clamp(2.1rem,4.5vw,4rem);line-height:1.02;letter-spacing:-.055em;color:var(--navy);margin:0 0 22px}
.glass-card,.cert-card,.steps div,.contact-card{background:#fff;border:1px solid #e0edf9;border-radius:var(--radius);box-shadow:var(--shadow);padding:34px}
.glass-card p{font-size:1.08rem;line-height:1.7}
.cert-section{background:linear-gradient(135deg,#062757,#0b55b7);color:#fff}
.cert-section h2,.cert-section .section-title p{color:#fff}
.section-title{max-width:850px;margin:0 auto 42px}
.center{text-align:center}
.section-title p{font-size:1.08rem;color:#52637a}
.cert-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.cert-card{color:var(--ink)}
.cert-card-link{
  display:block;
  color:var(--ink);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.cert-card-link:hover,
.cert-card-link:focus-visible{
  transform:translateY(-8px);
  border-color:rgba(11,85,183,.34);
  box-shadow:
    0 22px 54px rgba(6,39,87,.16),
    0 0 36px rgba(11,85,183,.22);
  outline:0;
}

.cert-card-link:hover .cert-logo,
.cert-card-link:focus-visible .cert-logo{
  border-color:rgba(11,85,183,.45);
  background:#eef7ff;
}

.cert-logo{height:125px;display:grid;place-items:center;background:#f6fbff;border:1px dashed #c8dbef;border-radius:22px;margin-bottom:20px}
.cert-logo img{height:94px;object-fit:contain}
.cert-card h3{color:var(--navy);font-size:1.6rem;margin:0 0 12px}
.cert-card li{margin:10px 0}
.international{background:#f7fbff}
.image-placeholder{min-height:440px;border-radius:40px;background:linear-gradient(135deg,#eaf7ff,#fff,#dff8ed);border:2px dashed #bed5ed;display:grid;place-items:center;text-align:center;padding:30px;color:var(--navy);box-shadow:var(--shadow)}
.image-placeholder strong{display:block;font-size:2rem}
.image-placeholder span{display:block;color:var(--muted);margin-top:10px}
.steps{display:grid;gap:16px;margin-top:24px}
.steps div strong{display:inline-grid;place-items:center;background:var(--red);color:#fff;width:48px;height:48px;border-radius:50%;margin-bottom:14px}
.paths{background:#fff}
.path-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:stretch}
.path-card{display:flex;flex-direction:column;min-height:420px;background:linear-gradient(180deg,#fff,#f7fbff);border:1px solid #deebf8;border-radius:32px;overflow:hidden;box-shadow:0 18px 48px rgba(8,33,89,.08)}
.path-media{position:relative;height:190px;background-size:cover;background-repeat:no-repeat;border-bottom:1px solid #e8f1fb}
.path-media::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(6,28,76,.10))}
.path-badge{position:absolute;top:16px;right:16px;z-index:1;width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.96);box-shadow:0 10px 24px rgba(8,33,89,.14);display:flex;align-items:center;justify-content:center;padding:7px}
.path-badge img{width:100%;height:100%;object-fit:contain;border-radius:50%}
.path-content{padding:24px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.path-content::before{content:"";display:block;width:56px;height:4px;border-radius:999px;background:linear-gradient(90deg,var(--red),#ff728d);margin-bottom:2px}
.path-grid h3{color:var(--blue);font-size:1.45rem;line-height:1.05;margin:0}
.path-grid h4{margin:0;color:var(--red);font-size:1rem}
.path-grid p{margin:4px 0 0;color:#24385f;line-height:1.55;font-size:1.02rem}
.gse{background:linear-gradient(135deg,#f8fcff,#eef8ff)}
.stairs{height:390px;border-radius:36px;background:#fff;box-shadow:var(--shadow);padding:28px;display:flex;gap:12px;align-items:flex-end}
.stairs div{flex:1;border-radius:16px 16px 7px 7px;background:linear-gradient(180deg,#0b55b7,#062757);color:#fff;font-weight:950;display:grid;place-items:center;min-height:55px}
.dm219{background:linear-gradient(135deg,#ed2745,#79162b);color:#fff;position:relative;overflow:hidden}
.dm219:before{content:"AI";position:absolute;right:-30px;top:-80px;font-size:18rem;font-weight:950;opacity:.09}
.dm219 h2{color:#fff}
.dm219 p{color:#ffeaf0}
.dm-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:center;position:relative;z-index:1}
.dm-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.dm-cards article{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:24px;padding:22px;backdrop-filter:blur(10px)}
.dm-cards article:last-child{grid-column:1 / -1}
.dm-cards h3{margin:0 0 8px;color:#fff}
.projects{background:#fff}
.project-arrows{display:grid;gap:18px}
.project-arrows article{clip-path:polygon(0 0,94% 0,100% 50%,94% 100%,0 100%);border-radius:24px;color:#fff;padding:28px 60px 28px 30px;display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:center;box-shadow:var(--shadow)}
.project-arrows h3{font-size:2rem;text-transform:uppercase;margin:0}
.project-arrows p{font-size:1.05rem;font-weight:760}
.project-arrows .green{background:#35b836}.project-arrows .yellow{background:#ffd83d;color:#1d2540}.project-arrows .red{background:#ff3030}.project-arrows .blue{background:#2014b8}
.carousel-section{background:#f8fbff}
.carousel{position:relative;max-width:980px;margin:auto}
.carousel-window{overflow:hidden;border-radius:34px;box-shadow:var(--shadow);background:#fff}
.slide{display:none;margin:0}
.slide.active{display:block}
.slide img{width:100%;aspect-ratio:16/9;object-fit:cover}
.slide figcaption{text-align:center;padding:16px;font-weight:950;color:var(--navy)}
.carousel button{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:48px;height:48px;border-radius:50%;border:0;background:#062757;color:#fff;font-size:2rem;cursor:pointer}
.carousel .prev{left:-20px}.carousel .next{right:-20px}
.contact{background:linear-gradient(135deg,#062757,#0b55b7);color:#fff}
.contact-card{display:grid;grid-template-columns:1fr 1fr;gap:30px;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22)}
.contact h2{color:#fff}.contact h2 span{font-size:.6em;color:#bde0ff}
.contact-list{display:grid;gap:12px}
.contact-list a,.contact-list span{background:#fff;color:var(--navy);border-radius:17px;padding:14px 16px;font-weight:900}
@media(max-width:1100px){
  .top-inner{gap:16px;font-size:.78rem}
  .navbar{height:auto;padding:18px 0;flex-wrap:wrap}
  .menu{order:3;width:100%;justify-content:center;flex-wrap:wrap;margin-left:0}
  .hero-grid,.split,.dm-grid,.contact-card{grid-template-columns:1fr}
  .hero-cards{grid-template-columns:repeat(3,1fr);margin-top:10px}
  .path-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .top-inner{display:none}
  .menu-toggle{display:block;margin-left:auto;background:var(--navy);color:#fff;border:0;border-radius:999px;padding:12px 18px;font-weight:900}
  .menu{display:none;flex-direction:column;background:#fff;border:1px solid #dbe8f7;border-radius:24px;padding:18px}
  .menu.open{display:flex}
  .header-cta{display:none}
  .brand img{width:210px}
  .hero{padding-top:25px}
  .hero-grid{gap:22px}
  .logos-card{grid-template-columns:repeat(2,1fr)}
  .hero-panel blockquote{text-align:left;margin-left:0}
  .skyline-stage{height:150px}
  .hero-cards,.cert-grid,.dm-cards{grid-template-columns:1fr}
  .path-grid{grid-template-columns:1fr}
  .quick-card .icon{margin-top:0}
  .quick-card{min-height:auto}
  .project-arrows article{clip-path:none;grid-template-columns:1fr;padding:24px}
  .section{padding:66px 0}
}


/* === V6 FIX: header alignment, real transparent logo, clean skyline === */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:#fff;
  box-shadow:0 8px 24px rgba(6,39,87,.08);
}
.top-bar{
  background:#061d42;
  color:#fff;
  font-weight:800;
  font-size:.88rem;
}
.top-inner{
  width:min(1280px,calc(100% - 48px));
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:10px 0;
}
.top-left,.top-right{
  display:flex;
  align-items:center;
  gap:28px;
  min-width:0;
}
.top-inner a,.top-inner span{
  white-space:nowrap;
}
.navbar{
  width:min(1280px,calc(100% - 48px));
  height:104px;
  margin:auto;
  display:grid;
  grid-template-columns:270px 1fr auto;
  align-items:center;
  gap:28px;
  background:#fff;
}
.brand{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-width:0;
}
.brand img{
  width:248px;
  height:86px;
  object-fit:contain;
  background:transparent !important;
}
.menu{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  margin:0;
  min-width:0;
  font-size:.88rem;
  font-weight:900;
  text-transform:uppercase;
  color:#0b1d41;
}
.menu a{
  padding:12px 0;
  white-space:nowrap;
}
.header-cta{
  justify-self:end;
  background:var(--red);
  color:#fff;
  border-radius:999px;
  padding:14px 22px;
  text-transform:uppercase;
  font-weight:950;
  box-shadow:0 12px 28px rgba(237,39,69,.25);
  white-space:nowrap;
}
.logos-card{
  align-items:stretch;
}
.logo-box{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:132px;
}
.logo-box img{
  max-width:100%;
  width:100%;
  height:76px;
  object-fit:contain;
}
.skyline-stage{
  position:relative;
  z-index:1;
  width:100%;
  height:210px;
  margin-top:-4px;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  background:transparent;
}
.skyline-stage img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
  image-rendering:auto;
  filter:drop-shadow(0 10px 14px rgba(6,39,87,.12));
}
@media(max-width:1100px){
  .navbar{
    grid-template-columns:240px auto;
    height:auto;
    padding:16px 0;
  }
  .brand img{
    width:225px;
    height:78px;
  }
  .menu{
    grid-column:1 / -1;
    order:3;
    width:100%;
    justify-content:center;
    flex-wrap:wrap;
    gap:18px;
  }
  .header-cta{
    justify-self:end;
  }
}

/* === V80 IMPECCABLE: accorpamento DM + progetti, contrasto istituzionale === */
.planning-section{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(180deg,oklch(97% .013 247) 0%,oklch(99% .006 247) 56%,oklch(96% .018 247) 100%) !important;
  color:var(--evo-ink);
}

.planning-section::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:10px;
  background:linear-gradient(90deg,var(--red),var(--blue));
  opacity:.95;
}

.section-anchor{
  position:absolute;
  top:0;
  left:0;
  width:1px;
  height:1px;
  pointer-events:none;
}

.planning-layout{
  display:grid;
  grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);
  grid-template-areas:
    "intro dm"
    "projects projects";
  gap:clamp(24px,3.2vw,42px);
  align-items:stretch;
}

.planning-intro{
  grid-area:intro;
  align-self:center;
}

.planning-intro h2{
  margin:0;
  color:var(--navy);
  font-size:clamp(2.2rem,4.5vw,4.1rem);
  line-height:.96;
  letter-spacing:-.025em;
  text-wrap:balance;
}

.planning-intro > p:not(.eyebrow){
  max-width:62ch;
  margin:18px 0 0;
  color:#415572;
  font-size:1.04rem;
  line-height:1.62;
}

.planning-cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:26px;
  padding:13px 18px;
  border:1px solid var(--blue);
  border-radius:999px;
  color:var(--navy);
  background:rgba(255,255,255,.72);
  font-size:.82rem;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
  box-shadow:0 12px 26px rgba(6,39,87,.07);
}

.planning-cta span{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:50%;
  background:var(--blue);
  color:#f8fbff;
}

.dm-programme-card{
  grid-area:dm;
  position:relative;
  overflow:hidden;
  display:grid;
  gap:24px;
  padding:clamp(26px,3.4vw,42px);
  border-radius:18px;
  border:1px solid rgba(255,255,255,.2);
  background:
    linear-gradient(135deg,oklch(25% .105 258),oklch(33% .12 253));
  box-shadow:0 28px 64px rgba(6,39,87,.22);
  color:#f7fbff;
}

.dm-programme-card::after{
  content:"DM";
  position:absolute;
  right:clamp(16px,4vw,40px);
  top:clamp(10px,2vw,22px);
  color:rgba(255,255,255,.08);
  font-size:clamp(5rem,10vw,9rem);
  line-height:.8;
  font-weight:950;
  letter-spacing:-.08em;
  pointer-events:none;
}

.dm-programme-card__head,
.dm-programme-grid{
  position:relative;
  z-index:1;
}

.dm-programme-card__head h3{
  max-width:720px;
  margin:0;
  color:#fbfdff;
  font-size:clamp(2rem,3.6vw,3.6rem);
  line-height:.98;
  letter-spacing:-.025em;
}

.dm-programme-card__head p:not(.eyebrow){
  max-width:62ch;
  margin:14px 0 0;
  color:rgba(247,251,255,.84);
  font-size:1rem;
  line-height:1.58;
}

.dm-programme-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.dm-programme-grid div{
  min-height:106px;
  padding:16px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
}

.dm-programme-grid strong{
  display:block;
  margin-bottom:7px;
  color:#ffffff;
  font-size:.98rem;
  line-height:1.2;
}

.dm-programme-grid span{
  display:block;
  color:rgba(247,251,255,.78);
  font-size:.9rem;
  line-height:1.38;
}

.planning-section .project-arrows{
  grid-area:projects;
  counter-reset:project;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0 !important;
  border:1px solid var(--evo-line);
  border-radius:18px;
  background:rgba(255,255,255,.74);
  box-shadow:0 22px 56px rgba(6,39,87,.09);
  overflow:hidden;
}

.planning-section .project-arrows article{
  --project-accent:var(--blue);
  --project-surface:oklch(98% .012 247);
  --project-surface-strong:oklch(95% .025 247);
  --project-border:var(--evo-line);
  counter-increment:project;
  clip-path:none !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  align-content:start;
  gap:14px !important;
  min-height:214px;
  padding:28px 24px !important;
  border-radius:0 !important;
  border-right:1px solid var(--project-border);
  background:
    linear-gradient(180deg,var(--project-surface),var(--project-surface-strong)) !important;
  color:var(--evo-ink) !important;
  box-shadow:none !important;
}

.planning-section .project-arrows article:last-child{
  border-right:0;
}

.planning-section .project-arrows article::before{
  content:"0" counter(project);
  width:max-content;
  min-width:34px;
  padding-bottom:8px;
  border-bottom:2px solid var(--project-accent);
  color:var(--project-accent);
  font-size:1.24rem;
  line-height:1;
  font-weight:950;
  letter-spacing:.02em;
}

.planning-section .project-arrows .green{
  --project-accent:#147a35;
  --project-surface:oklch(97% .035 148);
  --project-surface-strong:oklch(93% .06 148);
  --project-border:oklch(80% .08 148);
}

.planning-section .project-arrows .yellow{
  --project-accent:#7a5600;
  --project-surface:oklch(98% .055 88);
  --project-surface-strong:oklch(94% .09 88);
  --project-border:oklch(82% .11 88);
}

.planning-section .project-arrows .red{
  --project-accent:var(--red);
  --project-surface:oklch(97% .035 22);
  --project-surface-strong:oklch(94% .06 22);
  --project-border:oklch(80% .1 22);
}

.planning-section .project-arrows .blue{
  --project-accent:var(--blue);
  --project-surface:oklch(97% .03 255);
  --project-surface-strong:oklch(93% .055 255);
  --project-border:oklch(80% .08 255);
}

.planning-section .project-arrows h3{
  margin:0;
  color:var(--project-accent) !important;
  font-size:clamp(1.08rem,1.6vw,1.34rem) !important;
  line-height:1.16 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

.planning-section .project-arrows p{
  margin:0;
  color:#233a59 !important;
  font-size:.98rem !important;
  line-height:1.55 !important;
  font-weight:650 !important;
}

.planning-section + .carousel-section{
  background:linear-gradient(180deg,oklch(96% .018 247),oklch(98% .01 247)) !important;
}

@media(hover:hover){
  .planning-cta:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 34px rgba(6,39,87,.12);
  }

  .planning-section .project-arrows article:hover{
    background:
      linear-gradient(180deg,oklch(99% .008 247),var(--project-surface)) !important;
  }
}

@media(max-width:1050px){
  .planning-layout{
    grid-template-columns:1fr;
    grid-template-areas:
      "intro"
      "dm"
      "projects";
  }

  .planning-intro{
    text-align:center;
  }

  .planning-intro > p:not(.eyebrow){
    margin-inline:auto;
  }

  .planning-section .project-arrows{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .planning-section .project-arrows article:nth-child(2){
    border-right:0;
  }

  .planning-section .project-arrows article:nth-child(-n+2){
    border-bottom:1px solid var(--evo-line);
  }
}

@media(max-width:700px){
  .planning-layout{
    gap:24px;
  }

  .planning-intro{
    text-align:left;
  }

  .planning-cta{
    width:100%;
    justify-content:center;
  }

  .dm-programme-grid,
  .planning-section .project-arrows{
    grid-template-columns:1fr;
  }

  .dm-programme-grid div{
    min-height:0;
  }

  .planning-section .project-arrows article,
  .planning-section .project-arrows article:nth-child(2){
    min-height:0;
    border-right:0;
    border-bottom:1px solid var(--evo-line);
    padding:22px !important;
  }

  .planning-section .project-arrows article:last-child{
    border-bottom:0;
  }
}

/* === V81 IMPECCABLE: offerte Evolution CTA, no slides === */
.offers-link-panel{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(20px,4vw,46px);
  align-items:center;
  max-width:980px;
  margin:0 auto;
  padding:clamp(28px,4vw,44px);
  border:1px solid var(--evo-line);
  border-radius:18px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.94),rgba(239,247,255,.9));
  box-shadow:0 22px 56px rgba(6,39,87,.10);
}

.offers-link-panel::after{
  content:"";
  position:absolute;
  right:-72px;
  top:-86px;
  width:260px;
  height:260px;
  border-radius:50%;
  border:34px solid rgba(11,85,183,.06);
  pointer-events:none;
}

.offers-link-panel__copy{
  position:relative;
  z-index:1;
}

.offers-kicker{
  margin:0 0 10px;
  color:var(--red);
  font-size:.78rem;
  font-weight:950;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.offers-link-panel h3{
  max-width:620px;
  margin:0;
  color:var(--navy);
  font-size:clamp(1.55rem,2.6vw,2.55rem);
  line-height:1.04;
  letter-spacing:-.015em;
}

.offers-link-panel p:not(.offers-kicker){
  max-width:60ch;
  margin:12px 0 0;
  color:#415572;
  font-size:1rem;
  line-height:1.6;
}

.offers-link-button{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:56px;
  padding:15px 22px;
  border-radius:999px;
  background:var(--red);
  color:#fbfdff;
  font-size:.86rem;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
  box-shadow:0 16px 34px rgba(201,21,50,.24);
  white-space:nowrap;
}

.offers-link-button span{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#fbfdff;
  color:var(--red);
}

@media(hover:hover){
  .offers-link-button:hover{
    transform:translateY(-2px);
    box-shadow:0 20px 42px rgba(201,21,50,.28);
  }
}

@media(max-width:760px){
  .offers-link-panel{
    grid-template-columns:1fr;
    padding:24px;
  }

  .offers-link-button{
    width:100%;
    white-space:normal;
    text-align:center;
  }
}
@media(max-width:760px){
  .top-inner{display:none}
  .navbar{
    width:min(100% - 30px,1280px);
    grid-template-columns:1fr auto;
    gap:14px;
  }
  .brand img{
    width:205px;
    height:74px;
  }
  .menu-toggle{
    display:block;
    justify-self:end;
  }
  .menu{
    display:none;
    grid-column:1 / -1;
    flex-direction:column;
    align-items:stretch;
    background:#fff;
    border:1px solid #dbe8f7;
    border-radius:24px;
    padding:16px;
  }
  .menu.open{display:flex}
  .menu a{text-align:center}
  .header-cta{display:none}
  .skyline-stage{
    height:145px;
  }
  .skyline-stage img{
    object-fit:cover;
  }
}


/* === V8 FIX: skyline positioned between hero buttons and service cards === */
.skyline-stage{
  position:relative !important;
  z-index:2 !important;
  width:100% !important;
  height:180px !important;
  margin-top:30px !important;
  margin-bottom:-60px !important;
  overflow:hidden !important;
  display:flex !important;
  align-items:flex-end !important;
}

.skyline-stage img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center bottom !important;
  image-rendering:auto !important;
  filter:none !important;
}

.hero-cards{
  position:relative !important;
  z-index:5 !important;
  margin-top:0 !important;
  padding-top:32px !important;
}

@media(max-width:760px){
  .skyline-stage{
    height:130px !important;
    margin-top:22px !important;
    margin-bottom:-36px !important;
  }

  .hero-cards{
    padding-top:24px !important;
  }
}


/* === V9 FIX DEFINITIVO: skyline alzata tra pulsanti hero e card servizi === */
.hero{
  position:relative !important;
}

.skyline-stage{
  position:relative !important;
  z-index:3 !important;
  width:100% !important;
  height:190px !important;

  /* Valore negativo perché la skyline nel DOM viene dopo il blocco hero:
     così sale visivamente subito sotto i pulsanti. */
  margin-top:-118px !important;
  margin-bottom:-42px !important;

  overflow:hidden !important;
  display:flex !important;
  align-items:flex-end !important;
  pointer-events:none !important;
}

.skyline-stage img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center bottom !important;
  filter:none !important;
  image-rendering:auto !important;
}

.hero-cards{
  position:relative !important;
  z-index:6 !important;
  margin-top:0 !important;
  padding-top:22px !important;
}

@media(max-width:1100px){
  .skyline-stage{
    height:165px !important;
    margin-top:-60px !important;
    margin-bottom:-36px !important;
  }
}

@media(max-width:760px){
  .skyline-stage{
    height:125px !important;
    margin-top:8px !important;
    margin-bottom:-28px !important;
  }

  .hero-cards{
    padding-top:18px !important;
  }
}


/* === V10 FIX: skyline totalmente visibile, box abbassati === */
.skyline-stage{
  position:relative !important;
  z-index:3 !important;
  width:100% !important;
  height:210px !important;
  margin-top:-70px !important;
  margin-bottom:0 !important;
  overflow:visible !important;
  display:flex !important;
  align-items:flex-end !important;
  pointer-events:none !important;
}

.skyline-stage img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center bottom !important;
  filter:none !important;
  image-rendering:auto !important;
}

/* Le card vengono abbassate: non coprono più lo skyline */
.hero-cards{
  position:relative !important;
  z-index:4 !important;
  margin-top:48px !important;
  padding-top:0 !important;
}

/* Le icone non devono invadere lo skyline */
.quick-card .icon{
  margin:-42px auto 16px !important;
}

@media(max-width:1100px){
  .skyline-stage{
    height:180px !important;
    margin-top:-30px !important;
    margin-bottom:0 !important;
  }

  .hero-cards{
    margin-top:42px !important;
  }
}

@media(max-width:760px){
  .skyline-stage{
    height:135px !important;
    margin-top:20px !important;
    margin-bottom:0 !important;
    overflow:hidden !important;
  }

  .hero-cards{
    margin-top:32px !important;
  }

  .quick-card .icon{
    margin:0 auto 16px !important;
  }
}


/* === V11 FIX: perfetta simmetria box === */

.hero-cards{
  display:grid !important;
  grid-template-columns: repeat(6, 1fr) !important;
  align-items:stretch !important;
  gap:20px !important;
}

/* tutte le card identiche */
.quick-card{
  display:flex !important;
  flex-direction:column !important;
  justify-content:space-between !important;
  align-items:center !important;
  height:100% !important;
  padding:28px 18px !important;
  text-align:center !important;
}

/* titolo allineato */
.quick-card h3{
  min-height:60px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}

/* testo allineato */
.quick-card p{
  min-height:90px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}

/* linea colorata PERFETTAMENTE uguale */
.quick-card::after{
  content:"";
  width:70%;
  height:8px;
  border-radius:4px;
  margin-top:18px;
}

/* colori linee */
.quick-card.blue::after{background:#1157bf;}
.quick-card.red::after{background:#ed2745;}
.quick-card.yellow::after{background:#ffb300;}
.quick-card.green::after{background:#24b34b;}
.quick-card.purple::after{background:#9d35e8;}
.quick-card.teal::after{background:#03a9bb;}

/* rimuovo eventuali linee vecchie */
.quick-card hr{
  display:none !important;
}

/* icone allineate */
.quick-card .icon{
  margin-bottom:12px !important;
}

/* link sempre in basso */
.quick-card a{
  margin-top:10px !important;
}

/* mobile */
@media(max-width:1100px){
  .hero-cards{
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media(max-width:760px){
  .hero-cards{
    grid-template-columns: 1fr !important;
  }
}


/* === V12 SOCIAL BUTTONS UNDER HERO QUOTE === */
.hero-panel{
  display:flex;
  flex-direction:column;
  align-items:center;
}

.hero-social{
  display:flex;
  gap:14px;
  margin-top:18px;
}

.social-btn{
  width:46px;
  height:46px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  text-transform:uppercase;
  color:#fff;
  text-decoration:none;
  font-size:1rem;
  box-shadow:0 10px 20px rgba(0,0,0,.15);
  transition:.2s ease;
}

.social-btn.fb{
  background:#1877f2;
}

.social-btn.ig{
  background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af,#515bd4);
}

.social-btn:hover{
  transform:translateY(-3px) scale(1.05);
}


/* === V13 SOCIAL ICONS UPDATE === */

.hero-social{
  margin-top:32px; /* più in basso */
}

.social-btn{
  background:#fff;
  width:54px;
  height:54px;
}

.social-btn img{
  width:26px;
  height:26px;
}

.social-btn.fb{
  border:2px solid #1877f2;
}

.social-btn.ig{
  border:2px solid #dd2a7b;
}

.social-btn:hover{
  transform:translateY(-2px) scale(1.05);
}


/* === V14 PEARSON LOGO FIX === */
.logo-box img{
  max-width:140px;
  height:auto;
  object-fit:contain;
}


/* === V15 CAMBRIDGE LOGO FIX === */
.logo-box img{
  max-width:150px;
  height:auto;
  object-fit:contain;
}


/* === V16 LOGOS SECTION: ONLY PEARSON + CAMBRIDGE === */
.logos-card{
  display:grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap:32px !important;
  justify-items:center !important;
  align-items:center !important;
  padding:26px !important;
}

.logo-box{
  width:100%;
  max-width:260px;
  text-align:center;
}

.logo-box img{
  width:100%;
  height:80px;
  object-fit:contain;
}

.logo-box p{
  margin-top:10px;
  font-weight:900;
  text-transform:uppercase;
  color:#0a2755;
}

@media(max-width:760px){
  .logos-card{
    grid-template-columns:1fr !important;
  }
}

/* === V25 CONTACT FORM - SOSTITUZIONE REALE SEZIONE CONTATTI === */
.contact-form-section{
  background:linear-gradient(135deg,#061d42 0%,#0b55b7 100%) !important;
  color:#ffffff !important;
  padding:90px 0 !important;
}

.contact-form-card{
  background:rgba(255,255,255,.09) !important;
  border:1px solid rgba(255,255,255,.22) !important;
  border-radius:42px !important;
  padding:48px !important;
  display:grid !important;
  grid-template-columns:.9fr 1.35fr !important;
  gap:46px !important;
  box-shadow:0 28px 60px rgba(0,0,0,.22) !important;
  backdrop-filter:blur(10px);
}

.contact-info-panel{
  padding-right:38px;
  border-right:1px solid rgba(255,255,255,.24);
}

.contact-info-panel .eyebrow{
  margin-bottom:18px;
  color:#ffffff !important;
}

.contact-info-panel h2{
  color:#ffffff !important;
  font-size:clamp(3rem,6vw,5.4rem);
  line-height:.9;
  letter-spacing:-.06em;
  margin:0 0 18px;
}

.contact-info-panel h3{
  color:var(--red) !important;
  font-size:clamp(1.7rem,3vw,3rem);
  line-height:1;
  letter-spacing:-.06em;
  margin:0 0 30px;
  font-weight:950;
}

.contact-intro{
  color:#ffffff;
  font-size:1.08rem;
  line-height:1.5;
  max-width:520px;
  margin-bottom:30px;
}

.contact-details{
  display:grid;
  gap:0;
}

.contact-details p{
  display:grid;
  grid-template-columns:34px 1fr;
  gap:12px;
  align-items:start;
  margin:0;
  padding:12px 0;
  color:#ffffff;
  font-weight:850;
  border-bottom:1px solid rgba(255,255,255,.16);
}

.contact-details p:last-child{
  border-bottom:0;
}

.contact-details span{
  color:#ff4b6b;
  font-weight:950;
  text-align:center;
}

.contact-details a{
  color:#ffffff !important;
  text-decoration:none;
}

.contact-form{
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.form-heading{
  margin-bottom:28px;
}

.form-heading h2{
  margin:0 0 8px;
  color:#ffffff !important;
  font-size:clamp(2rem,3vw,2.8rem);
  letter-spacing:-.04em;
}

.form-heading p{
  margin:0;
  color:#e6f0ff;
  font-size:1rem;
}

.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.contact-form label{
  display:block;
}

.contact-form label span{
  display:block;
  margin-bottom:8px;
  color:#ffffff;
  font-weight:900;
}

.contact-form input,
.contact-form textarea{
  width:100%;
  border:0;
  border-radius:16px;
  padding:18px 20px;
  background:#ffffff;
  color:#062757;
  font:inherit;
  font-weight:700;
  box-shadow:inset 0 0 0 1px rgba(6,39,87,.08), 0 10px 24px rgba(0,0,0,.08);
  outline:none;
}

.contact-form textarea{
  resize:vertical;
  min-height:170px;
}

.contact-form input:focus,
.contact-form textarea:focus{
  box-shadow:inset 0 0 0 3px rgba(237,39,69,.35), 0 12px 28px rgba(0,0,0,.12);
}

.form-grid .full{
  grid-column:1 / -1;
}

.privacy-check{
  display:flex !important;
  align-items:center;
  gap:12px;
  margin:24px 0 22px;
  color:#ffffff;
}

.privacy-check input{
  width:22px;
  height:22px;
  border-radius:6px;
  box-shadow:none;
  flex:0 0 auto;
}

.privacy-check span{
  color:#ffffff !important;
  margin:0 !important;
  font-weight:650 !important;
  line-height:1.4;
}

.form-submit{
  border:0;
  border-radius:18px;
  padding:20px 28px;
  background:linear-gradient(135deg,#ff4b6b,#ed2745);
  color:#ffffff;
  text-transform:uppercase;
  font-weight:950;
  letter-spacing:.08em;
  font-size:1rem;
  cursor:pointer;
  box-shadow:0 18px 34px rgba(237,39,69,.3);
  transition:.2s ease;
}

.form-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 42px rgba(237,39,69,.38);
}

.form-submit span{
  margin-left:14px;
  font-size:1.25rem;
}

@media(max-width:1050px){
  .contact-form-card{
    grid-template-columns:1fr !important;
    gap:36px !important;
  }

  .contact-info-panel{
    padding-right:0;
    padding-bottom:34px;
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.24);
  }
}

@media(max-width:760px){
  .contact-form-section{
    padding:60px 0 !important;
  }

  .contact-form-card{
    padding:28px !important;
    border-radius:30px !important;
  }

  .form-grid{
    grid-template-columns:1fr;
  }

  .contact-info-panel h2{
    font-size:3.4rem;
  }

  .contact-info-panel h3{
    font-size:2rem;
  }
}


/* === V26 CONTACT TEXT ALIGNMENT & NO WRAP === */
.contact-details{
  gap:6px;
}

.contact-details p{
  grid-template-columns: 28px 1fr !important;
  align-items:center !important;
  padding:10px 0 !important;
  white-space:nowrap; /* evita andare a capo */
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:.95rem; /* leggermente più piccolo */
}

.contact-details span{
  font-size:1rem;
}

.contact-info-panel{
  max-width:520px;
}

/* Riduco leggermente testo introduttivo */
.contact-intro{
  font-size:1rem !important;
}

/* Mobile: permetto capo solo lì */
@media(max-width:760px){
  .contact-details p{
    white-space:normal;
  }
}


/* === V27 FIX REALE: righe contatti ordinate e allineate === */

/* do più spazio alla colonna sinistra */
.contact-form-card{
  grid-template-columns: 1.05fr 1.15fr !important;
  gap:42px !important;
}

/* rendo la colonna contatti più ordinata */
.contact-info-panel{
  max-width:none !important;
  padding-right:32px !important;
}

.contact-info-panel h2{
  font-size:clamp(3rem,4.6vw,4.4rem) !important;
}

.contact-info-panel h3{
  font-size:clamp(1.7rem,2.5vw,2.45rem) !important;
}

.contact-intro{
  font-size:.95rem !important;
  line-height:1.45 !important;
  max-width:560px !important;
}

/* trasformo ogni contatto in una riga vera: icona + testo allineati */
.contact-details{
  width:100% !important;
  display:grid !important;
  gap:8px !important;
}

.contact-details p{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  width:100% !important;
  margin:0 !important;
  padding:9px 0 !important;
  border-bottom:1px solid rgba(255,255,255,.16) !important;
  color:#ffffff !important;
  font-size:.82rem !important;
  line-height:1.15 !important;
  font-weight:800 !important;
  white-space:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
}

.contact-details p span{
  flex:0 0 24px !important;
  width:24px !important;
  min-width:24px !important;
  text-align:center !important;
  font-size:.95rem !important;
  line-height:1 !important;
}

.contact-details p a,
.contact-details p{
  letter-spacing:-.01em;
}

.contact-details a{
  white-space:nowrap !important;
}

/* la PEC non deve andare su due righe */
.contact-details p:last-child{
  display:flex !important;
  align-items:center !important;
}

/* tablet */
@media(max-width:1050px){
  .contact-form-card{
    grid-template-columns:1fr !important;
  }

  .contact-details p{
    font-size:.95rem !important;
  }
}

/* mobile: qui è meglio permettere il capo per non uscire dallo schermo */
@media(max-width:760px){
  .contact-details p{
    white-space:normal !important;
    align-items:flex-start !important;
    font-size:.9rem !important;
    line-height:1.35 !important;
  }
}


/* =========================================================
   V28 RESPONSIVE TOP: mobile/tablet/desktop refinement
   ========================================================= */

/* Base responsive safety */
html, body{
  max-width:100%;
  overflow-x:hidden;
}

img, svg, video{
  max-width:100%;
  height:auto;
}

.container{
  width:min(1180px, calc(100% - clamp(28px, 5vw, 64px))) !important;
}

/* Typography fluid and safer */
.hero h1 span{
  font-size:clamp(2.9rem, 7vw, 5.7rem) !important;
}

.hero h1 strong{
  font-size:clamp(2.8rem, 6.4vw, 5.4rem) !important;
}

.hero h2{
  font-size:clamp(1.25rem, 2.2vw, 2.35rem) !important;
}

.section h2{
  font-size:clamp(2rem, 4.2vw, 4rem) !important;
}

/* Header premium responsive */
.navbar{
  position:relative;
}

.menu-toggle{
  width:48px;
  height:48px;
  border:0;
  border-radius:50%;
  background:#062757;
  color:#fff;
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(6,39,87,.2);
}

.menu-toggle span{
  width:22px;
  height:2px;
  background:#fff;
  border-radius:99px;
  display:block;
}

/* Header: tablet balance */
@media(max-width:1180px){
  .navbar{
    grid-template-columns:230px 1fr auto !important;
    gap:18px !important;
  }

  .brand img{
    width:220px !important;
    height:78px !important;
  }

  .menu{
    gap:16px !important;
    font-size:.8rem !important;
  }

  .header-cta{
    padding:12px 17px !important;
    font-size:.82rem !important;
  }

  .top-inner{
    font-size:.8rem !important;
  }
}

/* True mobile header */
@media(max-width:880px){
  .site-header{
    position:sticky;
    top:0;
    z-index:1000;
  }

  .top-bar{
    display:none;
  }

  .navbar{
    width:min(100% - 28px, 1280px) !important;
    min-height:82px !important;
    height:auto !important;
    display:grid !important;
    grid-template-columns:1fr auto !important;
    padding:10px 0 !important;
  }

  .brand img{
    width:185px !important;
    height:68px !important;
  }

  .menu-toggle{
    display:flex !important;
  }

  .header-cta{
    display:none !important;
  }

  .menu{
    position:absolute !important;
    top:calc(100% + 10px);
    left:0;
    right:0;
    display:none !important;
    width:100%;
    background:rgba(255,255,255,.98);
    border:1px solid #dbe8f7;
    border-radius:24px;
    box-shadow:0 24px 60px rgba(6,39,87,.18);
    padding:16px;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
    z-index:1001;
  }

  .menu.open{
    display:flex !important;
  }

  .menu a{
    text-align:center;
    padding:14px 10px !important;
    border-bottom:1px solid #edf3fb;
  }

  .menu a:last-child{
    border-bottom:0;
  }

  .menu a.active:after{
    display:none;
  }
}

/* Hero responsive refinement */
@media(max-width:1050px){
  .hero{
    padding-top:34px !important;
  }

  .hero-grid{
    grid-template-columns:1fr !important;
    gap:34px !important;
  }

  .hero-copy{
    text-align:center;
  }

  .lead{
    margin-inline:auto;
    text-align:left;
  }

  .hero-actions{
    justify-content:center;
  }

  .hero-panel blockquote{
    margin-top:28px !important;
  }

  .logos-card{
    max-width:680px;
    margin-inline:auto;
  }
}

@media(max-width:680px){
  .hero-copy{
    text-align:left;
  }

  .hero-actions{
    justify-content:flex-start;
  }

  .btn{
    width:100%;
  }

  .logos-card{
    grid-template-columns:1fr !important;
    gap:20px !important;
  }

  .hero-panel blockquote{
    font-size:2rem !important;
    text-align:center;
  }

  .hero-panel blockquote:after{
    width:230px !important;
  }
}

/* Skyline and cards responsive */
@media(max-width:1180px){
  .hero-cards{
    grid-template-columns:repeat(3, 1fr) !important;
    gap:22px !important;
  }
}

@media(max-width:760px){
  .skyline-stage{
    height:130px !important;
    margin-top:20px !important;
    margin-bottom:20px !important;
  }

  .hero-cards{
    grid-template-columns:1fr !important;
    margin-top:20px !important;
    gap:20px !important;
  }

  .quick-card{
    min-height:auto !important;
    padding:26px 22px !important;
  }

  .quick-card h3,
  .quick-card p{
    min-height:auto !important;
  }
}

/* General section grid safety */
@media(max-width:980px){
  .split,
  .dm-grid,
  .contact-form-card{
    grid-template-columns:1fr !important;
  }

  .cert-grid,
  .path-grid{
    grid-template-columns:1fr 1fr !important;
  }

  .project-arrows article{
    grid-template-columns:1fr !important;
    clip-path:none !important;
  }
}

@media(max-width:680px){
  .section{
    padding:62px 0 !important;
  }

  .cert-grid,
  .path-grid,
  .dm-cards{
    grid-template-columns:1fr !important;
  }

  .project-arrows h3{
    font-size:1.35rem !important;
  }
}

/* Contact section: desktop clean + mobile safe */
.contact-form-card{
  align-items:start !important;
}

.contact-info-panel{
  min-width:0 !important;
}

.contact-details p{
  overflow:visible !important;
  text-overflow:clip !important;
}

.contact-details a{
  overflow-wrap:anywhere;
}

@media(max-width:1050px){
  .contact-form-card{
    padding:40px !important;
  }

  .contact-info-panel{
    border-right:0 !important;
    border-bottom:1px solid rgba(255,255,255,.24) !important;
    padding-right:0 !important;
    padding-bottom:28px !important;
  }

  .contact-details{
    max-width:720px;
  }

  .contact-details p{
    white-space:normal !important;
    font-size:.98rem !important;
    line-height:1.35 !important;
  }
}

@media(max-width:680px){
  .contact-form-card{
    padding:24px !important;
    border-radius:28px !important;
  }

  .contact-info-panel h2{
    font-size:clamp(2.8rem, 16vw, 4rem) !important;
  }

  .contact-info-panel h3{
    font-size:clamp(1.8rem, 9vw, 2.3rem) !important;
  }

  .contact-details p{
    display:grid !important;
    grid-template-columns:28px 1fr !important;
    white-space:normal !important;
    align-items:start !important;
    font-size:.92rem !important;
  }

  .form-grid{
    grid-template-columns:1fr !important;
  }

  .contact-form input,
  .contact-form textarea{
    padding:16px !important;
  }

  .privacy-check{
    align-items:flex-start !important;
  }
}

/* === V29 HERO CERTIFICATION CENTERS: 4 LOGHI SIMMETRICI === */
.cert-centers-card{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:0 !important;
  align-items:stretch !important;
  justify-items:stretch !important;
  max-width:960px !important;
  margin-inline:auto !important;
  padding:34px 34px 30px !important;
  border-radius:38px !important;
  background:rgba(255,255,255,.94) !important;
  box-shadow:0 22px 54px rgba(6,39,87,.12) !important;
}

.cert-title{
  grid-column:1 / -1;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:#062757;
  font-weight:950;
  font-size:.98rem;
  margin:0 0 26px;
  position:relative;
}

.cert-title::before,
.cert-title::after{
  content:"";
  display:inline-block;
  width:110px;
  height:1px;
  background:#b9cde5;
  vertical-align:middle;
  margin:0 18px;
}

.cert-logo-box{
  min-width:0;
  display:grid !important;
  grid-template-rows:105px 22px auto !important;
  align-items:center !important;
  justify-items:center !important;
  text-align:center !important;
  padding:0 22px !important;
  border-right:1px solid #dbe6f2;
}

.cert-logo-box:last-child{
  border-right:0;
}

.cert-logo-wrap{
  width:100%;
  height:105px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.cert-logo-wrap img{
  max-width:100%;
  max-height:84px;
  width:auto !important;
  height:auto !important;
  object-fit:contain !important;
}

.cert-divider{
  width:100%;
  max-width:155px;
  height:1px;
  background:#b9cde5;
  position:relative;
}

.cert-divider::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:8px;
  height:8px;
  background:#0b55b7;
  border-radius:50%;
  transform:translate(-50%, -50%);
}

.cert-logo-box p{
  min-height:58px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  margin:14px 0 0 !important;
  color:#062757 !important;
  text-transform:uppercase;
  font-size:.82rem !important;
  line-height:1.24 !important;
  letter-spacing:.04em;
  font-weight:950 !important;
}

.cert-logo-box strong{
  font-size:1rem;
}

.hero-panel blockquote{
  margin-top:34px !important;
}

/* Tablet */
@media(max-width:1050px){
  .cert-centers-card{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    max-width:760px !important;
    padding:30px !important;
    row-gap:28px !important;
  }

  .cert-logo-box{
    border-right:0;
  }

  .cert-logo-box:nth-of-type(3),
  .cert-logo-box:nth-of-type(5){
    border-left:1px solid #dbe6f2;
  }
}

/* Mobile */
@media(max-width:680px){
  .cert-centers-card{
    grid-template-columns:1fr !important;
    padding:26px 22px !important;
    border-radius:30px !important;
    row-gap:24px !important;
  }

  .cert-title{
    font-size:.82rem;
    letter-spacing:.12em;
    margin-bottom:10px;
  }

  .cert-title::before,
  .cert-title::after{
    display:none;
  }

  .cert-logo-box{
    border-right:0 !important;
    border-left:0 !important;
    border-bottom:1px solid #dbe6f2;
    padding:0 0 22px !important;
  }

  .cert-logo-box:last-child{
    border-bottom:0;
    padding-bottom:0 !important;
  }

  .cert-logo-wrap{
    height:90px;
  }

  .cert-logo-wrap img{
    max-height:76px;
  }
}


/* === V30 FIX CERTIFICATION BOX: simmetria reale, niente sovrapposizioni === */
.cert-centers-card{
  max-width:1120px !important;
  padding:38px 42px 36px !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  column-gap:0 !important;
  row-gap:0 !important;
}

.cert-title{
  margin-bottom:34px !important;
  line-height:1.2 !important;
}

/* Ogni colonna ha una struttura identica e più ariosa */
.cert-logo-box{
  grid-template-rows:118px 28px 74px !important;
  min-height:230px !important;
  padding:0 26px !important;
  align-content:start !important;
  overflow:visible !important;
}

/* Area logo uniforme */
.cert-logo-wrap{
  height:118px !important;
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 4px !important;
}

.cert-logo-wrap img{
  max-height:82px !important;
  max-width:100% !important;
  object-fit:contain !important;
}

/* Cambridge e FIDEF sono più larghi: li limito otticamente */
.cert-logo-box:nth-child(3) .cert-logo-wrap img,
.cert-logo-box:nth-child(5) .cert-logo-wrap img{
  max-height:76px !important;
  max-width:96% !important;
}

/* Linea sempre alla stessa altezza e separata dal testo */
.cert-divider{
  align-self:center !important;
  width:82% !important;
  max-width:160px !important;
  margin:0 auto !important;
}

/* Testi sotto le linee: altezza fissa e centratura */
.cert-logo-box p{
  min-height:74px !important;
  height:74px !important;
  margin:0 !important;
  padding-top:14px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  align-items:center !important;
  text-align:center !important;
  color:#062757 !important;
  font-size:.78rem !important;
  line-height:1.28 !important;
  letter-spacing:.035em !important;
  font-weight:950 !important;
  overflow:visible !important;
}

.cert-logo-box strong{
  display:block !important;
  margin-top:4px !important;
  font-size:.93rem !important;
  line-height:1.15 !important;
}

/* separatori verticali più ordinati */
.cert-logo-box{
  border-right:1px solid #dbe6f2 !important;
}

.cert-logo-box:last-child{
  border-right:0 !important;
}

/* Tablet: due colonne ordinate senza sovrapposizioni */
@media(max-width:1050px){
  .cert-centers-card{
    max-width:780px !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    padding:34px 34px 32px !important;
    row-gap:34px !important;
  }

  .cert-logo-box{
    min-height:218px !important;
    grid-template-rows:108px 28px 72px !important;
    border-right:0 !important;
    padding:0 24px !important;
  }

  .cert-logo-box:nth-child(2),
  .cert-logo-box:nth-child(4){
    border-right:1px solid #dbe6f2 !important;
  }

  .cert-logo-box:nth-child(4),
  .cert-logo-box:nth-child(5){
    border-top:1px solid #dbe6f2 !important;
    padding-top:26px !important;
  }
}

/* Mobile: una colonna, tutto leggibile */
@media(max-width:680px){
  .cert-centers-card{
    grid-template-columns:1fr !important;
    padding:28px 24px !important;
  }

  .cert-logo-box{
    min-height:auto !important;
    grid-template-rows:auto 26px auto !important;
    border-right:0 !important;
    border-top:0 !important;
    border-bottom:1px solid #dbe6f2 !important;
    padding:0 0 24px !important;
  }

  .cert-logo-box:last-child{
    border-bottom:0 !important;
    padding-bottom:0 !important;
  }

  .cert-logo-wrap{
    height:92px !important;
  }

  .cert-logo-box p{
    height:auto !important;
    min-height:auto !important;
    padding-top:12px !important;
  }
}


/* === V31 REDESIGN COMPLETO BOX CERTIFICAZIONI (PULITO E SIMMETRICO) === */

.cert-centers-card{
  display:grid !important;
  grid-template-columns:repeat(4, 1fr) !important;
  gap:0 !important;
  max-width:1100px !important;
  margin:auto !important;
  padding:40px !important;
  background:#ffffff !important;
  border-radius:30px !important;
  box-shadow:0 20px 50px rgba(0,0,0,0.08) !important;
}

/* titolo più semplice */
.cert-title{
  grid-column:1 / -1;
  text-align:center;
  font-weight:900;
  font-size:1rem;
  letter-spacing:.2em;
  color:#062757;
  margin-bottom:30px;
}

/* ogni colonna IDENTICA */
.cert-logo-box{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:center !important;
  padding:20px 10px !important;
  border-right:1px solid #e5edf6 !important;
}

/* tolgo bordi ultimo */
.cert-logo-box:last-child{
  border-right:none !important;
}

/* logo area */
.cert-logo-wrap{
  height:90px !important;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:16px;
}

.cert-logo-wrap img{
  max-height:70px !important;
  max-width:100% !important;
  object-fit:contain !important;
}

/* linea DISTACCATA dal testo */
.cert-divider{
  width:60px !important;
  height:2px !important;
  background:#0b55b7 !important;
  margin:14px auto 18px auto !important;
}

/* testo completamente separato */
.cert-logo-box p{
  margin:0 !important;
  font-size:.85rem !important;
  line-height:1.3 !important;
  font-weight:800 !important;
  color:#062757 !important;
}

.cert-logo-box strong{
  display:block;
  margin-top:6px;
  font-size:.95rem !important;
}

/* RESPONSIVE */

/* tablet */
@media(max-width:1000px){
  .cert-centers-card{
    grid-template-columns:repeat(2,1fr) !important;
    gap:20px !important;
  }

  .cert-logo-box{
    border-right:none !important;
    border-bottom:1px solid #e5edf6 !important;
  }

  .cert-logo-box:last-child{
    border-bottom:none !important;
  }
}

/* mobile */
@media(max-width:600px){
  .cert-centers-card{
    grid-template-columns:1fr !important;
  }

  .cert-logo-box{
    border-bottom:1px solid #e5edf6 !important;
  }

  .cert-logo-box:last-child{
    border-bottom:none !important;
  }
}


/* === V32 INTERNATIONAL SCHOOL REDESIGN - UK, DINAMICO, SIMMETRICO === */
.international-uk{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 22%, rgba(11,85,183,.10), transparent 32%),
    radial-gradient(circle at 20% 78%, rgba(237,39,69,.08), transparent 30%),
    linear-gradient(135deg,#f7fbff 0%,#eef7ff 52%,#f2fff9 100%) !important;
  padding:104px 0 !important;
}

.international-uk::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(circle at 18px 18px, rgba(11,85,183,.08) 2px, transparent 3px);
  background-size:38px 38px;
  opacity:.55;
}

.uk-bg-elements{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  opacity:.42;
}

.uk-bigben{
  position:absolute;
  left:3%;
  bottom:18%;
  font-size:4.6rem;
  line-height:.76;
  letter-spacing:-.08em;
  color:#0b55b7;
  font-weight:950;
  opacity:.10;
  transform:rotate(-6deg);
}

.uk-eye{
  position:absolute;
  right:6%;
  top:18%;
  color:#0b55b7;
  font-size:18rem;
  line-height:1;
  opacity:.08;
}

.uk-ribbon{
  position:absolute;
  left:-10%;
  right:-10%;
  bottom:-44px;
  height:120px;
  background:
    linear-gradient(18deg, transparent 0 22%, #062757 22% 42%, #ffffff 42% 49%, #ed2745 49% 58%, #ffffff 58% 64%, #062757 64% 82%, transparent 82% 100%);
  opacity:.20;
}

.international-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns: minmax(360px, .95fr) minmax(0, 1.05fr);
  gap:56px;
  align-items:center;
}

.international-media{
  min-height:530px;
  border-radius:38px;
  padding:18px;
  background:rgba(255,255,255,.48);
  border:2px dashed rgba(11,85,183,.28);
  box-shadow:0 24px 70px rgba(6,39,87,.10);
  display:flex;
  align-items:center;
  justify-content:center;
}

.media-inner{
  width:100%;
  height:100%;
  min-height:490px;
  border-radius:30px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.72), rgba(255,255,255,.34)),
    radial-gradient(circle at 82% 78%, rgba(36,179,75,.12), transparent 32%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:42px;
}

.media-icon{
  width:72px;
  height:72px;
  border-radius:22px;
  display:grid;
  place-items:center;
  background:#eef6ff;
  border:2px solid rgba(11,85,183,.25);
  color:#062757;
  font-size:2rem;
  margin-bottom:22px;
}

.media-inner h3{
  margin:0 0 12px;
  color:#062757;
  font-size:1.75rem;
  line-height:1.1;
  letter-spacing:-.035em;
}

.media-inner p{
  max-width:420px;
  margin:0;
  color:#526884;
  font-size:1rem;
  line-height:1.45;
}

.international-content{
  min-width:0;
}

.international-content .eyebrow{
  margin-bottom:14px;
  position:relative;
  display:inline-block;
}

.international-content .eyebrow::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-10px;
  width:72px;
  height:4px;
  border-radius:999px;
  background:#ed2745;
}

.international-content h2{
  margin:22px 0 20px !important;
  color:#062757 !important;
  font-size:clamp(2.8rem, 5vw, 5rem) !important;
  line-height:.98 !important;
  letter-spacing:-.07em !important;
}

.international-lead{
  max-width:680px;
  margin:0 0 30px;
  color:#16233b;
  font-size:1.08rem;
  line-height:1.45;
  font-weight:650;
}

.international-steps{
  display:grid;
  gap:20px;
}

.uk-step-card{
  display:grid;
  grid-template-columns:82px minmax(0,1fr) 84px;
  gap:24px;
  align-items:center;
  min-height:172px;
  padding:26px 28px;
  background:rgba(255,255,255,.92);
  border:1px solid #dfeaf7;
  border-radius:30px;
  box-shadow:0 18px 48px rgba(6,39,87,.10);
  position:relative;
  overflow:hidden;
}

.uk-step-card::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:72px;
  height:72px;
  background:linear-gradient(135deg,#ed2745 0 50%, transparent 50% 100%);
  opacity:.92;
}

.step-number{
  width:60px;
  height:60px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#ed2745;
  color:#fff;
  font-weight:950;
  font-size:1.05rem;
  border:4px solid #fff;
  box-shadow:0 0 0 2px rgba(237,39,69,.18);
  justify-self:center;
}

.step-text{
  min-width:0;
}

.step-text h3{
  margin:0 0 8px;
  color:#062757;
  font-size:1.16rem;
  line-height:1.15;
  font-weight:950;
}

.step-text p{
  margin:0;
  color:#172742;
  font-size:.98rem;
  line-height:1.42;
  font-weight:650;
}

.step-icon{
  width:72px;
  height:72px;
  border-radius:20px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#f4f9ff,#ffffff);
  color:#062757;
  font-size:2rem;
  border:1px solid #e2edf8;
  justify-self:end;
}

/* Tablet */
@media(max-width:1050px){
  .international-grid{
    grid-template-columns:1fr;
    gap:38px;
  }

  .international-media{
    min-height:360px;
    order:2;
  }

  .media-inner{
    min-height:320px;
  }

  .international-content{
    order:1;
    text-align:center;
  }

  .international-content .eyebrow::after{
    left:50%;
    transform:translateX(-50%);
  }

  .international-lead{
    margin-inline:auto;
  }
}

/* Mobile */
@media(max-width:680px){
  .international-uk{
    padding:70px 0 !important;
  }

  .international-content{
    text-align:left;
  }

  .international-content .eyebrow::after{
    left:0;
    transform:none;
  }

  .international-content h2{
    font-size:clamp(2.3rem, 13vw, 3.4rem) !important;
  }

  .international-media{
    min-height:300px;
    border-radius:30px;
  }

  .media-inner{
    min-height:270px;
    padding:28px;
  }

  .uk-step-card{
    grid-template-columns:58px 1fr;
    gap:18px;
    min-height:auto;
    padding:24px;
  }

  .step-number{
    width:52px;
    height:52px;
  }

  .step-icon{
    grid-column:1 / -1;
    justify-self:start;
    width:58px;
    height:58px;
    font-size:1.55rem;
  }

  .step-text h3{
    font-size:1.05rem;
  }

  .step-text p{
    font-size:.92rem;
  }
}


/* === V33 INTERNATIONAL SCHOOL: SFONDO LONDRA REALE INSERITO === */
.international-uk{
  position:relative !important;
  overflow:hidden !important;
  background:
    linear-gradient(90deg, rgba(247,251,255,.88) 0%, rgba(247,251,255,.80) 52%, rgba(247,251,255,.88) 100%),
    url("assets/bg/international-london-clean-bg.png") !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}

/* abbasso leggermente la grafica CSS precedente per non sporcare lo sfondo */
.international-uk::before{
  opacity:.18 !important;
}

.uk-bg-elements{
  display:none !important;
}

/* rendo box e card più leggibili sopra lo sfondo */
.international-media{
  background:rgba(255,255,255,.70) !important;
  backdrop-filter:blur(8px);
  border:2px dashed rgba(11,85,183,.35) !important;
}

.media-inner{
  background:rgba(255,255,255,.58) !important;
}

.uk-step-card{
  background:rgba(255,255,255,.93) !important;
  backdrop-filter:blur(8px);
}

/* simmetria e distacco visivo */
.international-content h2,
.international-content .eyebrow,
.international-lead{
  text-shadow:0 2px 18px rgba(255,255,255,.75);
}

@media(max-width:760px){
  .international-uk{
    background-position:center top !important;
  }
}


/* === V34 INTERNATIONAL SCHOOL: sfondo Londra pulito senza testi/box === */
.international-uk{
  background:
    linear-gradient(90deg, rgba(247,251,255,.84) 0%, rgba(247,251,255,.76) 50%, rgba(247,251,255,.84) 100%),
    url("assets/bg/international-london-clean-bg.png") !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}

/* pulizia: nessun elemento grafico sovrapposto extra */
.uk-bg-elements{
  display:none !important;
}

.international-uk::before{
  opacity:.10 !important;
}

/* box più leggibili sul nuovo sfondo pulito */
.international-media{
  background:rgba(255,255,255,.72) !important;
  border-color:rgba(11,85,183,.32) !important;
}

.media-inner{
  background:rgba(255,255,255,.62) !important;
}

.uk-step-card{
  background:rgba(255,255,255,.94) !important;
}


/* === V35 INTERNATIONAL SCHOOL: CAROSELLO IMMAGINI REALI === */
.international-carousel-box{
  min-height:530px !important;
  padding:16px !important;
  background:rgba(255,255,255,.74) !important;
  border:2px dashed rgba(11,85,183,.32) !important;
  border-radius:38px !important;
  box-shadow:0 24px 70px rgba(6,39,87,.10);
  backdrop-filter:blur(8px);
}

.international-carousel{
  position:relative;
  width:100%;
  height:100%;
  min-height:498px;
  border-radius:30px;
  overflow:hidden;
  background:#ffffff;
  box-shadow:0 18px 44px rgba(6,39,87,.12);
}

.intl-carousel-window{
  width:100%;
  height:100%;
  min-height:498px;
  position:relative;
}

.intl-slide{
  display:none;
  margin:0;
  width:100%;
  height:100%;
  min-height:498px;
}

.intl-slide.active{
  display:block;
}

.intl-slide img{
  width:100%;
  height:100%;
  min-height:498px;
  object-fit:cover;
  object-position:center;
  display:block;
}

.intl-carousel-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:46px;
  height:46px;
  border-radius:50%;
  border:0;
  background:rgba(6,39,87,.88);
  color:#ffffff;
  font-size:2rem;
  line-height:1;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 12px 28px rgba(6,39,87,.24);
  transition:.2s ease;
}

.intl-carousel-btn:hover{
  background:#ed2745;
  transform:translateY(-50%) scale(1.06);
}

.intl-prev{
  left:14px;
}

.intl-next{
  right:14px;
}

.intl-carousel-dots{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:6;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(8px);
}

.intl-carousel-dots button{
  width:10px;
  height:10px;
  border-radius:50%;
  border:0;
  padding:0;
  background:#b8cce5;
  cursor:pointer;
}

.intl-carousel-dots button.active{
  background:#0b55b7;
}

/* Tablet */
@media(max-width:1050px){
  .international-carousel-box{
    min-height:390px !important;
  }

  .international-carousel,
  .intl-carousel-window,
  .intl-slide,
  .intl-slide img{
    min-height:360px;
  }
}

/* Mobile */
@media(max-width:680px){
  .international-carousel-box{
    min-height:300px !important;
    border-radius:30px !important;
    padding:12px !important;
  }

  .international-carousel,
  .intl-carousel-window,
  .intl-slide,
  .intl-slide img{
    min-height:280px;
    border-radius:22px;
  }

  .intl-carousel-btn{
    width:38px;
    height:38px;
    font-size:1.6rem;
  }
}


/* === V37 DM 219 / AI: nuova palette più coerente con Intelligenza Artificiale === */
/* Passaggio da rosso pieno a gradiente AI: blu notte, viola, ciano */
.dm219{
  background:
    radial-gradient(circle at 88% 16%, rgba(56,189,248,.28), transparent 28%),
    radial-gradient(circle at 62% 78%, rgba(168,85,247,.32), transparent 30%),
    linear-gradient(135deg,#061d42 0%,#123c8c 45%,#5b21b6 100%) !important;
  color:#ffffff !important;
}

.dm219::before{
  display:none !important;
  content:none !important;
  opacity:0 !important;
}

.dm219 .eyebrow{
  color:#7dd3fc !important;
}

.dm219 h2{
  color:#ffffff !important;
  text-shadow:0 10px 36px rgba(0,0,0,.16);
}

.dm219 p{
  color:#eaf6ff !important;
}

.dm219 .btn-light{
  background:linear-gradient(135deg,#ffffff,#e0f2fe) !important;
  color:#123c8c !important;
  box-shadow:0 18px 36px rgba(56,189,248,.22) !important;
}

.dm219 .btn-light:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 46px rgba(168,85,247,.26) !important;
}

/* Card dei moduli AI */
.dm-cards article{
  background:rgba(255,255,255,.12) !important;
  border:1px solid rgba(125,211,252,.32) !important;
  box-shadow:0 18px 42px rgba(6,29,66,.18);
  backdrop-filter:blur(12px);
}

.dm-cards article:hover{
  transform:translateY(-3px);
  border-color:rgba(216,180,254,.58) !important;
  background:rgba(255,255,255,.16) !important;
}

.dm-cards h3{
  color:#ffffff !important;
}

.dm-cards p{
  color:#dbeafe !important;
}

/* Accento grafico AI: micro glow sui box */
.dm-cards article::after{
  content:"";
  position:absolute;
  inset:auto 18px 14px 18px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,#38bdf8,#a855f7,#22d3ee);
  opacity:.72;
}

.dm-cards article{
  position:relative;
  overflow:hidden;
}

/* === V43 LIVELLI INGLESE: alternanza blu/rosso British === */
/* Questa sezione aggiorna il grafico Pre A1 > C2 con palette British elegante. */

.level-bars .bar:nth-child(odd),
.level-chart .bar:nth-child(odd),
.cefr-bars .bar:nth-child(odd),
.levels-bars .bar:nth-child(odd){
  background:linear-gradient(180deg,#1459c9 0%,#06336f 100%) !important;
  box-shadow:0 14px 28px rgba(6,51,111,.18) !important;
}

.level-bars .bar:nth-child(even),
.level-chart .bar:nth-child(even),
.cefr-bars .bar:nth-child(even),
.levels-bars .bar:nth-child(even){
  background:linear-gradient(180deg,#e41d35 0%,#9d0b1f 100%) !important;
  box-shadow:0 14px 28px rgba(157,11,31,.18) !important;
}

/* Fallback se le barre non usano una classe figlia .bar */
.level-bars > *:nth-child(odd),
.level-chart > *:nth-child(odd),
.cefr-bars > *:nth-child(odd),
.levels-bars > *:nth-child(odd){
  background:linear-gradient(180deg,#1459c9 0%,#06336f 100%) !important;
}

.level-bars > *:nth-child(even),
.level-chart > *:nth-child(even),
.cefr-bars > *:nth-child(even),
.levels-bars > *:nth-child(even){
  background:linear-gradient(180deg,#e41d35 0%,#9d0b1f 100%) !important;
}

/* Mantengo testi leggibili e coerenti */
.level-bars .bar,
.level-chart .bar,
.cefr-bars .bar,
.levels-bars .bar,
.level-bars > *,
.level-chart > *,
.cefr-bars > *,
.levels-bars > *{
  color:#ffffff !important;
}

/* Effetto più morbido e premium */
.level-bars,
.level-chart,
.cefr-bars,
.levels-bars{
  background:#ffffff !important;
  border-radius:34px !important;
}


/* === V44 FIX GRAFICO GSE: barre alternate blu/rosso British === */
.stairs{
  height:390px;
  border-radius:36px;
  background:#f7f8fb;
  box-shadow:var(--shadow);
  padding:28px;
  display:flex;
  gap:22px;
  align-items:flex-end;
}

.stairs div{
  flex:1;
  border-radius:18px 18px 9px 9px;
  color:#ffffff;
  font-weight:950;
  font-size:clamp(1rem,1.7vw,1.5rem);
  display:grid;
  place-items:center;
  min-height:55px;
  text-align:center;
  box-shadow:0 14px 26px rgba(6,39,87,.14);
}

.stairs div:nth-child(odd){
  background:linear-gradient(180deg,#2563d9 0%, #0a2d72 100%);
}

.stairs div:nth-child(even){
  background:linear-gradient(180deg,#e53950 0%, #a10d23 100%);
}


/* === V45 INTERNATIONAL SCHOOL: sfondo Londra più vivido, ma leggibile === */
/* Ridotta la copertura bianca dell'overlay per rendere l'asset di sfondo più presente. */
.international-uk{
  background:
    linear-gradient(90deg, rgba(247,251,255,.68) 0%, rgba(247,251,255,.58) 50%, rgba(247,251,255,.68) 100%),
    url("assets/bg/international-london-clean-bg.png") !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}

/* Mantengo un leggero filtro chiaro sopra lo sfondo per non perdere leggibilità. */
.international-uk::before{
  opacity:.06 !important;
}

/* Box e testi restano ben leggibili sopra lo sfondo più visibile. */
.international-carousel-box,
.international-media{
  background:rgba(255,255,255,.78) !important;
  backdrop-filter:blur(8px);
}

.uk-step-card{
  background:rgba(255,255,255,.95) !important;
  box-shadow:0 20px 48px rgba(6,39,87,.12) !important;
}

.international-content h2,
.international-lead{
  text-shadow:0 3px 22px rgba(255,255,255,.78);
}

@media(max-width:760px){
  .international-uk{
    background:
      linear-gradient(180deg, rgba(247,251,255,.74) 0%, rgba(247,251,255,.64) 52%, rgba(247,251,255,.76) 100%),
      url("assets/bg/international-london-clean-bg.png") !important;
    background-position:center top !important;
  }
}


/* === V46 INTERNATIONAL SCHOOL: overlay ancora più leggero === */
/* Sfondo Londra più visibile rispetto alla v45 */
.international-uk{
  background:
    linear-gradient(90deg, rgba(247,251,255,.52) 0%, rgba(247,251,255,.40) 50%, rgba(247,251,255,.52) 100%),
    url("assets/bg/international-london-clean-bg.png") !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}

.international-uk::before{
  opacity:.025 !important;
}

/* Manteniamo leggibilità dei contenuti */
.international-carousel-box,
.international-media{
  background:rgba(255,255,255,.74) !important;
  backdrop-filter:blur(7px);
}

.uk-step-card{
  background:rgba(255,255,255,.93) !important;
  box-shadow:0 18px 42px rgba(6,39,87,.11) !important;
}

.international-content h2,
.international-lead{
  text-shadow:0 2px 18px rgba(255,255,255,.70);
}

@media(max-width:760px){
  .international-uk{
    background:
      linear-gradient(180deg, rgba(247,251,255,.58) 0%, rgba(247,251,255,.46) 52%, rgba(247,251,255,.60) 100%),
      url("assets/bg/international-london-clean-bg.png") !important;
    background-position:center top !important;
  }
}


/* =========================================================
   V47 POWER ENGLISH / HERO
   sfondo con bandiera britannica trasparente
   ========================================================= */

.hero{
  position:relative !important;
  isolation:isolate;
  background:linear-gradient(105deg,#eef5ff 0%, #f7fbff 54%, #eef8f3 100%) !important;
  overflow:hidden !important;
}

.hero-bg-pattern{
  z-index:1 !important;
  opacity:.16 !important;
}

.hero .container,
.hero-grid,
.skyline-stage,
.hero-cards{
  position:relative;
  z-index:2;
}

/* piccola rifinitura per mantenere il testo molto leggibile */
.hero-copy,
.hero-panel,
.hero-cards{
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.18));
}

.hero{
  background:linear-gradient(105deg,#e8f5ff 0%,#f7fbff 45%,#dff6ec 100%) !important;
}


/* === V50 HEADER QUOTE: bandiera britannica sventolante a sinistra === */
.hero-quote-wrap{
  position:relative;
  width:100%;
  max-width:760px;
  margin:34px auto 0;
  min-height:185px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.hero-quote-wrap blockquote{
  position:relative;
  z-index:2;
  margin:0 auto !important;
}

.quote-flag-left{
  position:absolute;
  z-index:1;
  left:-118px;
  top:50%;
  width:170px;
  height:auto;
  transform:translateY(-48%) rotate(-5deg);
  filter:drop-shadow(0 16px 24px rgba(6,39,87,.18));
  pointer-events:none;
}

/* Mantiene il tratto rosso sotto la citazione nella posizione corretta */
.hero-quote-wrap blockquote::after,
.hero-panel blockquote::after{
  margin-top:10px !important;
}

/* Tablet */
@media(max-width:1050px){
  .hero-quote-wrap{
    max-width:680px;
    min-height:165px;
  }

  .quote-flag-left{
    left:-64px;
    width:135px;
  }
}

/* Mobile: bandiera sopra/sinistra senza schiacciare la frase */
@media(max-width:680px){
  .hero-quote-wrap{
    min-height:0;
    margin-top:28px;
    padding-left:0;
    padding-top:62px;
  }

  .quote-flag-left{
    left:50%;
    top:0;
    width:112px;
    transform:translateX(-170%) rotate(-5deg);
  }

  .hero-quote-wrap blockquote{
    text-align:center !important;
  }
}

/* === V51 HEADER QUOTE: usa esattamente la bandiera dell'anteprima e riposiziona con precisione === */
.hero-quote-wrap{
  position:relative;
  width:100%;
  max-width:760px;
  margin:30px auto 0;
  min-height:190px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.hero-quote-wrap blockquote{
  position:relative;
  z-index:2;
  margin:0 auto !important;
  max-width:560px;
}

.quote-flag-left{
  position:absolute;
  z-index:1;
  left:68px;
  top:16px;
  width:148px;
  height:auto;
  transform:rotate(-7deg);
  transform-origin:center;
  filter:drop-shadow(0 12px 22px rgba(6,39,87,.18));
  pointer-events:none;
}

.hero-quote-wrap blockquote::after,
.hero-panel blockquote::after{
  margin-top:10px !important;
}

@media (max-width: 1200px){
  .quote-flag-left{
    left:48px;
    top:22px;
    width:134px;
  }
}

@media (max-width:1050px){
  .hero-quote-wrap{
    max-width:680px;
    min-height:168px;
  }

  .quote-flag-left{
    left:30px;
    top:18px;
    width:120px;
  }
}

@media (max-width:680px){
  .hero-quote-wrap{
    min-height:0;
    margin-top:28px;
    padding-top:72px;
  }

  .quote-flag-left{
    left:50%;
    top:-4px;
    width:108px;
    transform:translateX(-150%) rotate(-7deg);
  }

  .hero-quote-wrap blockquote{
    text-align:center !important;
  }
}

/* === V52 FIX FINALE: bandiera completa, senza tagli e senza sovrapposizione alla scritta === */
.hero-panel .hero-quote-wrap{
  position: relative;
  width: 100%;
  max-width: 760px;
  min-height: 190px;
  margin: 30px auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

.hero-panel .hero-quote-wrap blockquote{
  position: relative;
  z-index: 2;
  margin: 0 auto !important;
  max-width: 520px;
}

.hero-panel .hero-quote-wrap .quote-flag-left{
  position: absolute;
  z-index: 1;
  left: -52px;
  top: 18px;
  width: 162px;
  height: auto;
  transform: rotate(-7deg);
  transform-origin: center;
  filter: drop-shadow(0 12px 22px rgba(6,39,87,.18));
  pointer-events: none;
}

.hero-panel .hero-quote-wrap blockquote::after,
.hero-panel blockquote::after{
  margin-top: 10px !important;
}

@media (max-width: 1200px){
  .hero-panel .hero-quote-wrap blockquote{
    max-width: 500px;
  }
  .hero-panel .hero-quote-wrap .quote-flag-left{
    left: -30px;
    top: 22px;
    width: 148px;
  }
}

@media (max-width: 1050px){
  .hero-panel .hero-quote-wrap{
    max-width: 680px;
    min-height: 170px;
  }

  .hero-panel .hero-quote-wrap blockquote{
    max-width: 470px;
  }

  .hero-panel .hero-quote-wrap .quote-flag-left{
    left: -12px;
    top: 18px;
    width: 128px;
  }
}

@media (max-width: 680px){
  .hero-panel .hero-quote-wrap{
    min-height: 0;
    margin-top: 28px;
    padding-top: 82px;
  }

  .hero-panel .hero-quote-wrap .quote-flag-left{
    left: 50%;
    top: -2px;
    width: 112px;
    transform: translateX(-155%) rotate(-7deg);
  }

  .hero-panel .hero-quote-wrap blockquote{
    max-width: 100%;
    text-align: center !important;
  }
}


/* === V54 HEADER QUOTE: bandiera approvata, posizione precisa e non invasiva === */
/* Usa la bandiera dell'ultima anteprima approvata, mantenendo lo stesso punto della sezione. */
.hero-panel .hero-quote-wrap{
  position:relative !important;
  width:100% !important;
  max-width:760px !important;
  min-height:190px !important;
  margin:30px auto 0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:visible !important;
}

.hero-panel .hero-quote-wrap blockquote{
  position:relative !important;
  z-index:2 !important;
  margin:0 auto !important;
  max-width:520px !important;
}

.hero-panel .hero-quote-wrap .quote-flag-left{
  position:absolute !important;
  z-index:1 !important;
  left:-52px !important;
  top:18px !important;
  width:162px !important;
  height:auto !important;
  transform:rotate(-7deg) !important;
  transform-origin:center !important;
  filter:drop-shadow(0 12px 22px rgba(6,39,87,.18)) !important;
  pointer-events:none !important;
  border:0 !important;
  background:transparent !important;
}

@media (max-width:1200px){
  .hero-panel .hero-quote-wrap .quote-flag-left{
    left:-30px !important;
    top:22px !important;
    width:148px !important;
  }
}

@media (max-width:1050px){
  .hero-panel .hero-quote-wrap{
    max-width:680px !important;
    min-height:170px !important;
  }
  .hero-panel .hero-quote-wrap .quote-flag-left{
    left:-12px !important;
    top:18px !important;
    width:128px !important;
  }
}

@media (max-width:680px){
  .hero-panel .hero-quote-wrap{
    min-height:0 !important;
    margin-top:28px !important;
    padding-top:82px !important;
  }
  .hero-panel .hero-quote-wrap .quote-flag-left{
    left:50% !important;
    top:-2px !important;
    width:112px !important;
    transform:translateX(-155%) rotate(-7deg) !important;
  }
}


/* v56 - underline a pennellata */
.quote-underline {
  display: none !important;
}

.quote-underline-brush {
  display: block;
  width: 100%;
  max-width: 520px;
  height: auto;
  margin: 10px auto 0;
  pointer-events: none;
  user-select: none;
}


/* v57 - pennellata più naturale e della lunghezza della scritta */
.hero-panel blockquote::after{
  content:"" !important;
  display:block !important;
  width:420px !important;
  max-width:84% !important;
  height:30px !important;
  margin:10px auto 0 !important;
  background:url("assets/img/brush-underline-red.svg") center/100% 100% no-repeat !important;
}
@media (max-width: 991px){
  .hero-panel blockquote::after{
    width:360px !important;
    max-width:82% !important;
    height:28px !important;
  }
}
@media (max-width: 767px){
  .hero-panel blockquote::after{
    width:290px !important;
    max-width:80% !important;
    height:24px !important;
    margin-top:8px !important;
  }
}


/* === V59: percorso cards con immagini dedicate integrate === */
.path-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:28px;
  align-items:stretch;
}
.path-card{
  min-height:500px;
  border-radius:30px;
  overflow:hidden;
  background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);
  border:1px solid #dbe8f8;
  box-shadow:0 18px 46px rgba(8,33,89,.08);
}
.path-media{
  height:230px;
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center;
  border-bottom:1px solid #e7eef9;
}
.path-media::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(5,28,79,.10));
}
.path-badge{display:none !important;}
.path-content{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:24px 24px 28px;
}
.path-grid h3{
  color:var(--blue);
  font-size:1.55rem;
  line-height:1.05;
  margin:0;
}
.path-grid h4{
  margin:0;
  color:var(--red);
  font-size:1.02rem;
}
.path-grid p{
  margin:2px 0 0;
  color:#24385f;
  line-height:1.56;
  font-size:1.02rem;
}
@media(max-width:1200px){
  .path-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:720px){
  .path-grid{grid-template-columns:1fr;}
  .path-card{min-height:auto;}
  .path-media{height:220px;}
}


/* === V60: nuove immagini dedicate nei box, logo solo integrato nel contesto === */
.path-badge{
  display:none !important;
}

.path-media{
  height:230px !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}

.path-card{
  min-height:500px !important;
}


/* === V61: ombre colorate al passaggio del mouse sui box Percorsi === */
.path-card{
  position:relative !important;
  z-index:1 !important;
  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease !important;
}

.path-card::after{
  content:"";
  position:absolute;
  inset:-14px;
  z-index:-1;
  border-radius:38px;
  opacity:0;
  filter:blur(20px);
  transition:opacity .28s ease, transform .28s ease;
  transform:scale(.96);
  pointer-events:none;
}

/* Alternanza: rosso, blu, rosso, blu */
.path-grid .path-card:nth-child(1)::after,
.path-grid .path-card:nth-child(3)::after{
  background:
    radial-gradient(circle at 50% 50%,
      rgba(237,39,69,.42) 0%,
      rgba(237,39,69,.24) 38%,
      rgba(237,39,69,0) 72%);
}

.path-grid .path-card:nth-child(2)::after,
.path-grid .path-card:nth-child(4)::after{
  background:
    radial-gradient(circle at 50% 50%,
      rgba(11,85,183,.42) 0%,
      rgba(11,85,183,.24) 38%,
      rgba(11,85,183,0) 72%);
}

.path-card:hover{
  transform:translateY(-8px);
  box-shadow:0 24px 58px rgba(8,33,89,.13) !important;
}

.path-card:hover::after{
  opacity:1;
  transform:scale(1);
}

.path-grid .path-card:nth-child(1):hover,
.path-grid .path-card:nth-child(3):hover{
  border-color:rgba(237,39,69,.28) !important;
}

.path-grid .path-card:nth-child(2):hover,
.path-grid .path-card:nth-child(4):hover{
  border-color:rgba(11,85,183,.28) !important;
}

@media (hover:none){
  .path-card:hover{
    transform:none;
  }
  .path-card:hover::after{
    opacity:0;
  }
}


/* === V62: ombre hover solo ESTERNE ai box, non dentro === */
.path-grid{
  overflow:visible !important;
  padding:18px 12px 28px !important;
}

.path-card{
  position:relative !important;
  overflow:hidden !important;
  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease !important;
}

/* Disattivo la vecchia aura interna/retrobox della V61 */
.path-card::after{
  display:none !important;
  content:none !important;
}

/* Base pulita */
.path-card{
  box-shadow:0 18px 46px rgba(8,33,89,.08) !important;
}

/* Ombra esterna alternata: rosso, blu, rosso, blu */
.path-grid .path-card:nth-child(1):hover,
.path-grid .path-card:nth-child(3):hover{
  transform:translateY(-8px);
  border-color:rgba(237,39,69,.32) !important;
  box-shadow:
    0 24px 52px rgba(8,33,89,.12),
    0 0 42px 12px rgba(237,39,69,.34),
    0 0 86px 24px rgba(237,39,69,.16) !important;
}

.path-grid .path-card:nth-child(2):hover,
.path-grid .path-card:nth-child(4):hover{
  transform:translateY(-8px);
  border-color:rgba(11,85,183,.32) !important;
  box-shadow:
    0 24px 52px rgba(8,33,89,.12),
    0 0 42px 12px rgba(11,85,183,.34),
    0 0 86px 24px rgba(11,85,183,.16) !important;
}

@media (hover:none){
  .path-card:hover{
    transform:none !important;
    box-shadow:0 18px 46px rgba(8,33,89,.08) !important;
  }
}


/* === V63: titoli e sottotitoli dei box perfettamente simmetrici === */
.path-content{
  text-align:center !important;
  align-items:center !important;
  justify-content:flex-start !important;
  padding:26px 24px 30px !important;
}

.path-content::before{
  margin-left:auto !important;
  margin-right:auto !important;
  margin-bottom:4px !important;
}

.path-grid h3{
  width:100% !important;
  min-height:58px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  margin:0 !important;
  line-height:1.08 !important;
}

.path-grid h4{
  width:100% !important;
  min-height:28px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  margin:0 !important;
  line-height:1.15 !important;
}

.path-grid p{
  width:100% !important;
  max-width:245px !important;
  margin:8px auto 0 !important;
  text-align:center !important;
  line-height:1.52 !important;
}

/* Mantiene la stessa altezza visiva dei testi anche quando il titolo va su due righe */
.path-card{
  display:flex !important;
  flex-direction:column !important;
}

.path-media{
  flex:0 0 230px !important;
}

.path-content{
  flex:1 !important;
}

@media(max-width:1200px){
  .path-grid p{
    max-width:330px !important;
  }
}

@media(max-width:720px){
  .path-grid h3{
    min-height:auto !important;
  }

  .path-grid h4{
    min-height:auto !important;
  }

  .path-grid p{
    max-width:92% !important;
  }
}


/* === V64: sezione DM 219 divisa in due box === */
.dm-boxes{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  align-items:stretch;
  width:min(1240px,calc(100% - 40px));
}

.dm-box{
  position:relative;
  min-height:380px;
  border:1px solid rgba(125,211,252,.28);
  border-radius:28px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.06));
  box-shadow:0 24px 58px rgba(6,29,66,.20);
  backdrop-filter:blur(16px);
  overflow:hidden;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.dm-box:hover{
  transform:translateY(-8px);
  border-color:rgba(237,39,69,.42);
  box-shadow:
    0 24px 58px rgba(6,29,66,.20),
    0 0 42px 10px rgba(237,39,69,.34),
    0 0 88px 20px rgba(237,39,69,.18);
}

.dm-box-primary,
.dm-box-secondary{
  display:flex;
  flex-direction:column;
  padding:30px;
}

.dm-box-secondary{
  position:relative;
  background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.045));
}

.dm-box::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 84% 18%,rgba(56,189,248,.16),transparent 28%),
    radial-gradient(circle at 16% 84%,rgba(168,85,247,.18),transparent 32%);
  pointer-events:none;
}

.dm-box::after{
  content:"";
  position:absolute;
  left:34px;
  right:34px;
  bottom:28px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,#38bdf8,#a855f7,#22d3ee);
  opacity:.72;
}

.dm-card-head,
.dm-path-list,
.dm-inline-link{
  position:relative;
  z-index:1;
}

.dm-card-head{
  max-width:560px;
  min-height:132px;
}

.dm-card-head .eyebrow{
  margin-bottom:10px;
}

.dm-card-head h2{
  max-width:520px;
  margin:0 0 12px;
  font-size:clamp(2.35rem,4vw,4rem);
  line-height:.92;
  letter-spacing:-.045em;
}

.dm-card-head p{
  max-width:520px;
  margin:0;
  font-size:1.02rem;
  line-height:1.45;
}

.dm-path-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:22px 0 24px;
}

.dm-path-list div{
  min-height:78px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:14px 16px;
  border-radius:16px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(125,211,252,.24);
}

.dm-path-list strong{
  display:block;
  margin-bottom:5px;
  color:#ffffff;
  font-size:1rem;
  line-height:1.15;
}

.dm-path-list span{
  display:block;
  color:#dbeafe;
  font-size:.88rem;
  line-height:1.35;
}

.dm-inline-link{
  align-self:flex-start;
  justify-self:flex-start;
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  color:#e0f2fe;
  font-size:.88rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.dm-inline-link span{
  display:inline-flex;
  transform:translateY(-1px);
}

.dm-inline-link:hover{
  color:#ffffff;
}

@media(max-width:1180px){
  .dm-boxes{
    grid-template-columns:1fr;
  }

  .dm-box{
    min-height:380px;
  }

  .dm-box-secondary{
    min-height:380px;
  }
}

@media(max-width:760px){
  .dm-boxes{
    width:min(100% - 32px,1180px);
    gap:18px;
  }

  .dm-box-primary,
  .dm-box-secondary{
    display:flex;
    flex-direction:column;
    padding:24px;
    border-radius:24px;
  }

  .dm-box-secondary{
    min-height:260px;
  }

  .dm-box{
    min-height:auto;
  }

  .dm-card-head{
    min-height:auto;
  }

  .dm-path-list{
    grid-template-columns:1fr;
    margin:22px 0 24px;
  }

  .dm-path-list div{
    min-height:auto;
  }
}


/* === V70: footer a pannello professionale === */
.british-footer{
  background:#061d42;
  color:#ffffff;
  padding:34px 0 20px;
  border-top:6px solid #c8102e;
}

.british-footer__inner{
  width:min(1240px,calc(100% - 48px));
  max-width:none;
}

.british-footer__panel{
  display:grid;
  grid-template-columns:280px 1fr;
  overflow:hidden;
  border-radius:18px;
  background:linear-gradient(135deg,#012169 0%,#072a5f 56%,#00143a 100%);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 24px 58px rgba(0,0,0,.20);
}

.british-footer__identity{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:16px;
  padding:28px;
  background:rgba(0,20,58,.34);
  border-right:1px solid rgba(255,255,255,.16);
}

.british-footer__identity img{
  width:92px;
  height:92px;
  border-radius:50%;
  background:#ffffff;
  object-fit:contain;
  box-shadow:0 14px 30px rgba(0,0,0,.22);
}

.british-footer__identity strong{
  display:block;
  color:#ffffff;
  font-size:1.55rem;
  line-height:1.05;
  font-weight:950;
}

.british-footer__identity span{
  display:block;
  margin-top:8px;
  color:#d8e6fa;
  font-size:.96rem;
  line-height:1.3;
  font-weight:750;
}

.british-footer__directory{
  display:grid;
  grid-template-rows:auto 1fr;
  gap:22px;
  padding:26px 28px;
}

.british-footer__intro{
  display:flex;
  align-items:center;
  justify-content:center;
  padding-bottom:18px;
  border-bottom:1px solid rgba(255,255,255,.16);
}

.british-footer__intro p{
  width:100%;
  max-width:none;
  margin:0;
  color:#ffffff;
  font-size:1.02rem;
  line-height:1.4;
  font-weight:850;
  text-align:center;
}

.british-footer__details{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px 22px;
  margin:0;
}

.british-footer__details div{
  min-width:0;
  padding-left:14px;
  border-left:3px solid rgba(200,16,46,.86);
}

.british-footer__details dt{
  margin:0 0 5px;
  color:#ffffff;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  line-height:1.2;
  font-weight:950;
}

.british-footer__details dd{
  margin:0;
  color:#d8e6fa;
  font-size:.9rem;
  line-height:1.42;
  font-weight:650;
  overflow-wrap:anywhere;
}

.british-footer__details a{
  color:#d8e6fa;
  text-decoration:none;
}

.british-footer__legal{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:12px 24px;
  padding-top:16px;
  color:#cbd9ed;
  font-size:.84rem;
  line-height:1.25;
  font-weight:700;
  text-align:center;
}

.british-footer__legal nav{
  display:flex;
  gap:18px;
}

.british-footer__legal a{
  color:#e8f1ff;
  text-decoration:none;
}

.british-footer__legal a:hover,
.british-footer__details a:hover{
  color:#ffffff;
}

@media(max-width:980px){
  .british-footer__panel{
    grid-template-columns:1fr;
  }

  .british-footer__identity{
    flex-direction:row;
    align-items:center;
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.16);
  }

  .british-footer__intro{
    flex-direction:column;
  }

  .british-footer__details{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:640px){
  .british-footer{
    padding:28px 0 18px;
  }

  .british-footer__inner{
    width:min(100% - 32px,1240px);
  }

  .british-footer__identity,
  .british-footer__directory{
    padding:20px;
  }

  .british-footer__identity{
    align-items:flex-start;
  }

  .british-footer__identity img{
    width:62px;
    height:62px;
  }

  .british-footer__details{
    grid-template-columns:1fr;
  }

  .british-footer__legal{
    flex-direction:column;
    gap:8px;
  }
}

/* === V71 IMPECCABLE: professional brand polish === */
:root{
  --surface-warm:#fbfdff;
  --surface-blue:#eef7ff;
  --line-soft:#d7e6f5;
  --focus-ring:#f4b000;
  --elev-sm:0 10px 26px rgba(6,39,87,.08);
  --elev-md:0 18px 44px rgba(6,39,87,.12);
  --elev-lg:0 28px 68px rgba(6,39,87,.16);
}

body{
  background:linear-gradient(180deg,#fbfdff 0%,#f6fbff 46%,#fbfdff 100%);
  font-kerning:normal;
  text-rendering:optimizeLegibility;
}

h1,
h2,
h3{
  text-wrap:balance;
}

p,
li{
  text-wrap:pretty;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible{
  outline:3px solid var(--focus-ring);
  outline-offset:4px;
}

.site-header{
  box-shadow:0 10px 30px rgba(6,39,87,.08);
}

.top-bar{
  background:#071f47;
}

.top-inner{
  gap:20px;
}

.top-left,
.top-right{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.top-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
  color:#eef6ff;
  letter-spacing:0;
}

.top-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:22px;
  padding:0 8px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#ffffff;
  font-size:.68rem;
  line-height:1;
  font-weight:950;
  text-transform:uppercase;
}

.navbar{
  height:112px;
}

.menu{
  gap:20px;
  letter-spacing:0;
}

.header-cta,
.btn,
.form-submit,
.dm-inline-link{
  transition:transform .24s ease, box-shadow .24s ease, background-color .24s ease, border-color .24s ease;
}

@media(hover:hover){
  .header-cta:hover,
  .btn:hover,
  .form-submit:hover,
  .dm-inline-link:hover{
    transform:translateY(-2px);
  }
}

.hero{
  background:
    linear-gradient(115deg,rgba(234,246,255,.98) 0%,rgba(249,253,255,.96) 48%,rgba(225,247,238,.98) 100%);
}

.hero-bg-pattern{
  opacity:.32;
}

.hero-grid{
  align-items:center;
  padding-top:14px;
}

.hero h1{
  letter-spacing:0;
  max-width:760px;
}

.hero h1 span,
.hero h1 strong{
  letter-spacing:0;
}

.hero h2{
  letter-spacing:0;
  max-width:650px;
}

.lead{
  max-width:620px;
  background:rgba(255,255,255,.54);
  border-left:0;
  border-radius:8px;
  padding:18px 20px;
  box-shadow:inset 4px 0 0 var(--blue);
}

.cert-centers-card{
  border-radius:18px !important;
  border:1px solid rgba(6,39,87,.10);
  box-shadow:var(--elev-lg) !important;
}

.cert-title{
  letter-spacing:.18em !important;
}

.hero-panel .hero-quote-wrap blockquote{
  color:#08234f;
}

.hero-cards{
  gap:22px !important;
}

.quick-card{
  position:relative;
  border-radius:12px !important;
  border:1px solid rgba(6,39,87,.09) !important;
  box-shadow:var(--elev-sm) !important;
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.quick-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  border-radius:12px 12px 0 0;
  background:currentColor;
  opacity:.95;
}

.quick-card .icon{
  box-shadow:0 12px 26px rgba(6,39,87,.18) !important;
}

.quick-card h3{
  letter-spacing:0;
}

.quick-card p{
  color:#233956;
}

.quick-card a{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 14px;
  border-radius:999px;
  background:transparent !important;
  border:1px solid currentColor;
  line-height:1;
}

.quick-card.blue{color:#1157bf}
.quick-card.red{color:var(--red)}
.quick-card.yellow{color:#d99100}
.quick-card.green{color:var(--green)}
.quick-card.purple{color:var(--purple)}
.quick-card.teal{color:#048f9f}

.quick-card.blue a{color:#1157bf !important}
.quick-card.red a{color:var(--red) !important}
.quick-card.yellow a{color:#9b6900 !important}
.quick-card.green a{color:var(--green) !important}
.quick-card.purple a{color:var(--purple) !important}
.quick-card.teal a{color:#048f9f !important}

@media(hover:hover){
  .quick-card:hover,
  .cert-card-link:hover,
  .path-card:hover,
  .dm-box:hover{
    transform:translateY(-6px);
    box-shadow:var(--elev-md) !important;
  }
}

.section{
  padding:clamp(68px,8vw,108px) 0;
}

.section-title{
  max-width:900px;
}

.section-title h2,
.split h2{
  letter-spacing:0;
}

.section-title p{
  max-width:68ch;
  margin-left:auto;
  margin-right:auto;
}

.glass-card,
.cert-card,
.path-card,
.contact-form-card{
  border-radius:14px !important;
}

.cert-section{
  background:
    linear-gradient(135deg,#061d42 0%,#0b55b7 58%,#07346d 100%);
}

.cert-card{
  box-shadow:0 18px 44px rgba(2,13,38,.16) !important;
}

.international-uk{
  background:#fbfdff;
}

.step-icon{
  display:grid;
  place-items:center;
  color:#ffffff;
}

.step-icon svg{
  width:28px;
  height:28px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.85;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.path-grid{
  gap:24px;
}

.path-card{
  box-shadow:var(--elev-sm) !important;
}

.path-content h3,
.path-content h4{
  letter-spacing:0;
}

.dm-box{
  border-radius:14px !important;
}

.dm-card-head h2{
  letter-spacing:0;
}

.project-arrows{
  gap:14px;
}

.project-arrows article{
  clip-path:none !important;
  border-radius:12px !important;
  grid-template-columns:minmax(220px,320px) 1fr;
}

.project-arrows h3{
  letter-spacing:0;
}

.carousel-window{
  border-radius:14px !important;
  border:1px solid var(--line-soft);
}

.carousel button,
.intl-carousel-btn{
  min-width:48px;
  min-height:48px;
}

.contact-form-card{
  box-shadow:var(--elev-lg) !important;
}

.contact-details p{
  align-items:flex-start;
}

.contact-details p span{
  flex:0 0 auto;
  min-width:46px;
  height:26px;
  border-radius:999px;
  font-size:.66rem;
  letter-spacing:.06em;
}

.contact-form input,
.contact-form textarea{
  font-size:1rem;
}

.british-footer__panel{
  border-radius:14px;
}

@media(max-width:1100px){
  .navbar{
    height:auto;
    min-height:96px;
  }

  .hero-grid{
    grid-template-columns:1fr !important;
  }

  .hero-panel{
    width:100%;
  }

  .cert-centers-card{
    max-width:760px;
    margin-inline:auto;
  }

  .project-arrows article{
    grid-template-columns:1fr;
    gap:8px;
  }
}

@media(max-width:760px){
  .top-left,
  .top-right{
    display:none;
  }

  .menu-toggle{
    min-width:48px;
    min-height:48px;
  }

  .menu.open{
    position:absolute;
    left:20px;
    right:20px;
    top:calc(100% + 8px);
    z-index:60;
    border-radius:14px;
    box-shadow:var(--elev-md);
  }

  .hero h1 span,
  .hero h1 strong{
    font-size:clamp(2.65rem,15vw,4.4rem);
  }

  .hero-actions .btn{
    width:100%;
  }

  .quick-card{
    padding:26px 18px !important;
  }

  .quick-card::before{
    border-radius:12px 12px 0 0;
  }

  .section-title{
    margin-bottom:30px;
  }
}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.001ms !important;
  }
}

/* === V72 IMPECCABLE: mobile density and CTA legibility === */
.quick-card a{
  white-space:nowrap;
  font-size:.74rem !important;
}

@media(max-width:680px){
  .cert-centers-card{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:0 !important;
    padding:24px 18px !important;
  }

  .cert-title{
    grid-column:1 / -1;
    margin-bottom:18px !important;
    font-size:.76rem !important;
    letter-spacing:.14em !important;
  }

  .cert-logo-box{
    min-height:0 !important;
    padding:14px 10px !important;
    border-bottom:1px solid #e5edf6 !important;
    border-right:1px solid #e5edf6 !important;
  }

  .cert-logo-box:nth-child(3),
  .cert-logo-box:nth-child(5){
    border-right:0 !important;
  }

  .cert-logo-box:nth-child(4),
  .cert-logo-box:nth-child(5){
    border-bottom:0 !important;
  }

  .cert-logo-wrap{
    height:58px !important;
    margin-bottom:8px !important;
  }

  .cert-logo-wrap img{
    max-height:42px !important;
    max-width:96% !important;
  }

  .cert-divider{
    width:44px !important;
    margin:8px auto 10px !important;
  }

  .cert-divider::after{
    width:7px;
    height:7px;
  }

  .cert-logo-box p{
    font-size:.68rem !important;
    line-height:1.25 !important;
    letter-spacing:.03em !important;
  }

  .cert-logo-box strong{
    font-size:.78rem !important;
  }
}

/* === V73 IMPECCABLE: quick cards without floating dots === */
.quick-card{
  --card-accent:#1157bf;
  padding:26px 18px 24px !important;
  overflow:hidden;
}

.quick-card.blue{--card-accent:#1157bf}
.quick-card.red{--card-accent:var(--red)}
.quick-card.yellow{--card-accent:#e09a00}
.quick-card.green{--card-accent:var(--green)}
.quick-card.purple{--card-accent:var(--purple)}
.quick-card.teal{--card-accent:#0496a8}

.quick-card::before{
  height:6px !important;
  background:var(--card-accent) !important;
  opacity:1 !important;
}

.quick-card .icon{
  width:54px !important;
  height:44px !important;
  margin:4px auto 18px !important;
  border-radius:12px !important;
  background:var(--card-accent) !important;
  color:#ffffff !important;
  box-shadow:0 10px 22px rgba(6,39,87,.12) !important;
}

.quick-card .icon svg{
  width:26px !important;
  height:26px !important;
  stroke-width:1.9;
}

.quick-card h3{
  min-height:58px !important;
  margin-bottom:12px !important;
}

.quick-card p{
  min-height:96px !important;
  margin-top:0;
}

.quick-card::after{
  width:58% !important;
  height:6px !important;
  border-radius:999px !important;
  background:var(--card-accent) !important;
  opacity:1;
}

.quick-card a{
  border-color:color-mix(in srgb,var(--card-accent),#08234f 16%) !important;
}

@media(hover:hover){
  .quick-card:hover .icon{
    transform:translateY(-2px);
  }
}

@media(max-width:760px){
  .quick-card .icon{
    margin:0 auto 16px !important;
  }

  .quick-card p{
    min-height:auto !important;
  }
}

/* === V74 IMPECCABLE: keep hero secondary CTA clear of skyline === */
.hero-actions{
  align-items:center;
  margin-bottom:22px;
}

.hero-actions .btn-outline{
  min-height:48px;
  padding:11px 18px;
  font-size:.9rem;
  line-height:1;
  box-shadow:0 10px 22px rgba(6,39,87,.08);
}

.hero-actions .btn-outline span{
  width:24px;
  height:24px;
  margin-left:9px;
}

.skyline-stage{
  margin-top:-20px !important;
}

@media(max-width:1100px){
  .skyline-stage{
    margin-top:-10px !important;
  }
}

@media(max-width:760px){
  .hero-actions{
    gap:12px;
    margin-bottom:30px;
  }

  .hero-actions .btn{
    width:min(100%,348px) !important;
    min-height:54px;
    margin-inline:auto;
  }

  .hero-actions .btn-outline{
    width:min(100%,280px) !important;
    min-height:46px;
    padding:10px 16px;
    font-size:.86rem;
  }

  .skyline-stage{
    height:128px !important;
    margin-top:28px !important;
  }
}

/* === V75 IMPECCABLE: clean contact detail rows === */
.contact-details{
  gap:0 !important;
}

.contact-details p{
  display:grid !important;
  grid-template-columns:minmax(58px,auto) minmax(0,1fr) !important;
  align-items:center !important;
  column-gap:16px !important;
  padding:13px 0 !important;
  white-space:normal !important;
  overflow:visible !important;
  font-size:.95rem !important;
  line-height:1.35 !important;
  letter-spacing:0 !important;
}

.contact-details p span{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:auto !important;
  min-width:58px !important;
  flex:0 0 auto !important;
  height:auto !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#ff4b6b !important;
  font-size:.9rem !important;
  line-height:1 !important;
  letter-spacing:.02em !important;
  text-align:left !important;
}

.contact-details p a,
.contact-details p{
  overflow-wrap:anywhere !important;
  word-break:normal !important;
}

.contact-details a{
  white-space:normal !important;
}

@media(max-width:680px){
  .contact-details p{
    grid-template-columns:1fr !important;
    row-gap:7px !important;
    align-items:start !important;
  }

  .contact-details p span{
    min-width:0 !important;
  }
}

/* === V76 IMPECCABLE: distill hero, restrained service system, contrast pass === */
:root{
  --red:#c91532;
  --green:#147a35;
  --yellow:#d19a00;
  --purple:#173f91;
  --teal:#087785;
  --red-accessible:#c91532;
  --green-accessible:#147a35;
  --yellow-accessible:#7a5600;
  --teal-accessible:#087785;
  --purple-accessible:#173f91;
}

.hero{
  padding-bottom:0 !important;
}

.hero-kicker{
  margin:0 0 14px;
  color:#174477;
  font-size:.92rem;
  line-height:1.25;
  font-weight:850;
  letter-spacing:.02em;
}

.hero-grid{
  padding-bottom:clamp(24px,4vw,46px);
}

.hero-panel .hero-quote-wrap,
.hero-social{
  display:none !important;
}

.lead{
  box-shadow:none !important;
  border-left:1px solid rgba(11,85,183,.16) !important;
  padding-left:20px !important;
  border:1px solid rgba(11,85,183,.16);
}

.skyline-stage{
  height:clamp(120px,14vw,178px) !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  overflow:hidden !important;
}

.services-section{
  background:linear-gradient(180deg,#f7fbff 0%,#ffffff 52%,#eef8f6 100%);
  padding-top:clamp(64px,7vw,92px) !important;
}

.services-heading{
  margin-bottom:30px !important;
}

.services-heading h2{
  max-width:780px;
  margin-inline:auto;
}

.services-heading p:not(.eyebrow){
  max-width:700px;
}

.hero-cards{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:18px 20px !important;
  margin-top:0 !important;
  padding-bottom:0 !important;
}

.quick-card{
  display:grid !important;
  grid-template-columns:46px minmax(0,1fr);
  grid-template-areas:
    "icon title"
    ". text"
    ". action";
  align-items:start !important;
  min-height:0 !important;
  padding:24px !important;
  text-align:left !important;
  border-radius:10px !important;
  box-shadow:0 12px 28px rgba(6,39,87,.08) !important;
  background:rgba(255,255,255,.94) !important;
}

.quick-card::before{
  height:3px !important;
}

.quick-card .icon{
  grid-area:icon;
  width:36px !important;
  height:36px !important;
  margin:0 !important;
  border-radius:9px !important;
  box-shadow:none !important;
}

.quick-card .icon svg{
  width:21px !important;
  height:21px !important;
}

.quick-card h3{
  grid-area:title;
  min-height:0 !important;
  justify-content:flex-start !important;
  align-items:flex-start !important;
  text-align:left !important;
  font-size:.98rem !important;
  line-height:1.22 !important;
  margin:0 0 10px !important;
}

.quick-card p{
  grid-area:text;
  min-height:0 !important;
  justify-content:flex-start !important;
  align-items:flex-start !important;
  text-align:left !important;
  margin:0 0 18px !important;
  font-size:.95rem !important;
  line-height:1.48 !important;
}

.quick-card a{
  grid-area:action;
  justify-self:start;
  min-height:34px !important;
  padding:7px 12px !important;
}

.quick-card::after{
  display:none !important;
}

.quick-card.red{--card-accent:var(--red-accessible) !important;color:var(--red-accessible) !important}
.quick-card.yellow{--card-accent:var(--yellow-accessible) !important;color:var(--yellow-accessible) !important}
.quick-card.green{--card-accent:var(--green-accessible) !important;color:var(--green-accessible) !important}
.quick-card.purple{--card-accent:var(--purple-accessible) !important;color:var(--purple-accessible) !important}
.quick-card.teal{--card-accent:var(--teal-accessible) !important;color:var(--teal-accessible) !important}

.quick-card.red h3,
.quick-card.red a{color:var(--red-accessible) !important}
.quick-card.yellow h3,
.quick-card.yellow a{color:var(--yellow-accessible) !important}
.quick-card.green h3,
.quick-card.green a{color:var(--green-accessible) !important}
.quick-card.purple h3,
.quick-card.purple a{color:var(--purple-accessible) !important}
.quick-card.teal h3,
.quick-card.teal a{color:var(--teal-accessible) !important}

.red-text{
  color:var(--red-accessible) !important;
}

.contact-info-panel h3{
  color:var(--red) !important;
}

.header-cta,
.form-submit,
.project-arrows .red{
  background:#c91532 !important;
}

.project-arrows .green{
  background:#1d7f3f !important;
}

.project-arrows .red{
  background:#c91532 !important;
}

.project-arrows .blue{
  background:#173f91 !important;
}

.project-arrows .yellow{
  background:#f0c94b !important;
  color:#16233b !important;
}

.eyebrow{
  letter-spacing:.11em !important;
}

.hero h2{
  text-transform:none !important;
}

.about .eyebrow,
.gse .eyebrow,
.contact-info-panel .eyebrow{
  letter-spacing:.08em !important;
}

.british-footer__details div{
  border-left:1px solid rgba(255,255,255,.22) !important;
}

.contact-details p span{
  color:#ff6f86 !important;
}

@media(max-width:980px){
  .hero-cards{
    grid-template-columns:1fr !important;
  }
}

@media(max-width:760px){
  .hero{
    padding-bottom:0 !important;
  }

  .hero-panel{
    display:none !important;
  }

  .hero-grid{
    padding-bottom:24px;
  }

  .skyline-stage{
    height:112px !important;
    margin-top:0 !important;
  }

  .services-section{
    padding-top:54px !important;
  }

  .quick-card{
    grid-template-columns:42px minmax(0,1fr);
    padding:22px !important;
  }
}

/* === V77 IMPECCABLE: services as institutional programme directory === */
.services-section{
  background:
    linear-gradient(180deg,#f7fbff 0%,#ffffff 46%,#eef8f6 100%) !important;
}

.hero-cards{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:0 !important;
  border-top:1px solid #c9dceb;
  border-bottom:1px solid #c9dceb;
}

.quick-card{
  display:grid !important;
  grid-template-columns:18px minmax(0,1fr);
  grid-template-areas:
    "marker title"
    "marker text"
    "marker action";
  gap:8px 18px !important;
  min-height:0 !important;
  padding:26px 30px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  text-align:left !important;
  color:#10284f !important;
}

.quick-card:nth-child(odd):not(:last-child){
  border-right:1px solid #c9dceb !important;
}

.quick-card:not(:last-child){
  border-bottom:1px solid #c9dceb !important;
}

.quick-card::before{
  content:"";
  grid-area:marker;
  position:static !important;
  width:10px;
  height:10px !important;
  margin-top:.28rem;
  border-radius:50% !important;
  background:var(--card-accent) !important;
  opacity:1 !important;
}

.quick-card:last-child{
  grid-column:1 / -1;
  width:50%;
  justify-self:center;
  border-right:1px solid #c9dceb !important;
  border-left:1px solid #c9dceb !important;
  border-bottom:0 !important;
}

.quick-card.eipass{
  --card-accent:#0078b6 !important;
}

.quick-card::after{
  display:none !important;
}

.quick-card .icon{
  display:none !important;
}

.quick-card h3{
  grid-area:title;
  min-height:0 !important;
  display:block !important;
  margin:0 !important;
  color:#10284f !important;
  font-size:1.05rem !important;
  line-height:1.18 !important;
  letter-spacing:.01em !important;
  text-align:left !important;
}

.quick-card p{
  grid-area:text;
  min-height:0 !important;
  display:block !important;
  margin:0 !important;
  color:#324563 !important;
  font-size:.98rem !important;
  line-height:1.55 !important;
  text-align:left !important;
  max-width:48ch;
}

.quick-card a{
  grid-area:action;
  justify-self:start;
  min-height:auto !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--card-accent) !important;
  font-size:.78rem !important;
  line-height:1.25 !important;
  letter-spacing:.04em !important;
  text-transform:uppercase;
  box-shadow:none !important;
}

.quick-card a::after{
  content:"";
  display:block;
  width:100%;
  height:1px;
  margin-top:4px;
  background:currentColor;
  transform-origin:left;
  transform:scaleX(.45);
  transition:transform .22s ease;
}

@media(hover:hover){
  .quick-card:hover{
    transform:none !important;
    box-shadow:none !important;
    background:rgba(255,255,255,.58) !important;
  }

  .quick-card:hover a::after{
    transform:scaleX(1);
  }
}

@media(max-width:760px){
  .hero-cards{
    grid-template-columns:1fr !important;
  }

  .quick-card,
  .quick-card:nth-child(odd){
    grid-template-columns:18px minmax(0,1fr);
    border-right:0 !important;
    border-bottom:1px solid #c9dceb !important;
    padding:22px 0 !important;
  }

  .quick-card:last-child{
    grid-column:auto;
    width:100%;
    border-left:0 !important;
    border-right:0 !important;
    border-bottom:0 !important;
  }

  .quick-card::before{
    width:10px;
  }
}

/* === V78 IMPECCABLE: restore British flag signature in hero === */
.hero-panel .hero-quote-wrap{
  display:grid !important;
  place-items:center;
  margin-top:24px !important;
}

.hero-panel .hero-quote-wrap blockquote{
  display:block !important;
  margin:0 auto !important;
  color:#08234f !important;
  font-family:Georgia,serif;
  font-size:clamp(1.75rem,2.5vw,2.7rem) !important;
  line-height:1.08 !important;
  text-align:center !important;
  transform:rotate(-3deg) !important;
}

.hero-panel .hero-quote-wrap .quote-flag-left{
  display:block !important;
  width:min(190px,42vw) !important;
  height:auto !important;
  margin:0 auto -8px !important;
  transform:rotate(-7deg) translateX(-16px) !important;
}

.hero-panel .hero-quote-wrap blockquote::after,
.hero-panel blockquote::after{
  display:block !important;
  width:min(310px,70vw) !important;
  height:38px !important;
  margin:8px auto 0 !important;
  background:url("assets/img/brush-underline-red.svg") center/contain no-repeat !important;
  content:"" !important;
}

.hero-signature-mobile{
  display:none;
}

.hero-social{
  display:none !important;
}

@media(min-width:761px){
  .hero-panel .hero-quote-wrap{
    transform:translateX(clamp(58px,5.8vw,88px));
  }
}

/* === EIPASS: certification section === */
.eipass-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 18%,rgba(3,169,187,.12),transparent 26%),
    linear-gradient(135deg,#edf8ff 0%,#f8fcff 50%,#eef6ff 100%);
  border-top:1px solid #d7e6f5;
  border-bottom:1px solid #d7e6f5;
}

.eipass-section::after{
  content:"EIPASS";
  position:absolute;
  right:-22px;
  bottom:-32px;
  color:rgba(11,85,183,.045);
  font-size:clamp(6rem,16vw,14rem);
  font-weight:950;
  line-height:.8;
  letter-spacing:-.08em;
  pointer-events:none;
}

.eipass-layout{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);
  gap:clamp(48px,7vw,92px);
  align-items:center;
}

.eipass-identity{
  position:relative;
  padding:clamp(34px,4vw,52px);
  border:1px solid rgba(11,85,183,.16);
  border-radius:22px;
  background:#fbfdff;
  box-shadow:0 26px 64px rgba(6,39,87,.13);
}

.eipass-identity::before{
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(3,169,187,.18);
  border-radius:15px;
  pointer-events:none;
}

.eipass-logo{
  position:relative;
  display:block;
  width:min(100%,340px);
  height:auto;
  margin:0 auto 32px;
}

.eipass-proof{
  position:relative;
  margin:0;
  padding-top:24px;
  border-top:1px solid #d7e6f5;
  color:var(--navy);
  text-align:center;
  font-size:.82rem;
  font-weight:950;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.eipass-proof span{
  display:block;
  margin-top:6px;
  color:#087dbb;
  font-size:1.2rem;
  letter-spacing:.03em;
}

.eipass-content h2{
  max-width:760px;
  margin-bottom:24px;
  font-size:clamp(2.7rem,5.2vw,5.4rem) !important;
  line-height:.96 !important;
}

.eipass-content h2 strong{
  color:#087dbb;
  font-weight:950;
}

.eipass-lead{
  max-width:67ch;
  margin:0 0 30px;
  color:#344d70;
  font-size:clamp(1.05rem,1.5vw,1.25rem);
  line-height:1.68;
}

.eipass-lead strong{
  color:var(--navy);
}

.eipass-points{
  display:grid;
  gap:0;
  margin:0 0 34px;
  padding:0;
  border-top:1px solid #d7e6f5;
  list-style:none;
}

.eipass-points li{
  display:grid;
  grid-template-columns:34px 1fr;
  gap:14px;
  align-items:start;
  padding:17px 0;
  border-bottom:1px solid #d7e6f5;
  color:#2e4668;
  font-weight:800;
  line-height:1.45;
}

.eipass-points li > span{
  width:28px;
  height:28px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#f8fcff;
  background:#087dbb;
  font-size:.82rem;
  font-weight:950;
}

.eipass-actions{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}

.eipass-cta{
  min-height:50px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:14px 22px;
  border-radius:10px;
  color:#f8fbff;
  background:var(--blue);
  box-shadow:0 14px 28px rgba(11,85,183,.2);
  font-size:.9rem;
  font-weight:950;
  text-decoration:none;
  transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s cubic-bezier(.22,1,.36,1);
}

.eipass-cta:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 34px rgba(11,85,183,.26);
}

.eipass-actions p{
  margin:0;
  color:var(--muted);
  font-size:.86rem;
  font-weight:800;
}

@media(max-width:880px){
  .eipass-layout{
    grid-template-columns:1fr;
    gap:46px;
  }

  .eipass-identity{
    width:min(100%,430px);
    margin:0 auto;
  }

  .eipass-content h2{
    font-size:clamp(2.6rem,12vw,4.25rem) !important;
  }

  .eipass-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .eipass-cta{
    width:100%;
  }

  .eipass-actions p{
    text-align:center;
  }
}

@media(max-width:760px){
  .hero-panel{
    display:block !important;
    width:100%;
  }

  .hero-panel .cert-centers-card{
    display:none !important;
  }

  .hero-panel .hero-quote-wrap{
    display:none !important;
  }

  .hero-signature-mobile{
    display:grid;
    justify-items:center;
    width:100%;
    margin:16px 0 18px;
  }

  .hero-signature-mobile img{
    width:min(150px,42vw);
    margin-bottom:-10px;
    transform:rotate(-7deg) translateX(-14px);
  }

  .hero-signature-mobile p{
    margin:0;
    color:#08234f;
    font-family:Georgia,serif;
    font-size:clamp(1.55rem,7vw,2rem);
    font-style:italic;
    line-height:1.08;
    text-align:center;
    transform:rotate(-3deg);
  }

  .hero-signature-mobile::after{
    content:"";
    width:min(240px,66vw);
    height:30px;
    margin-top:6px;
    background:url("assets/img/brush-underline-red.svg") center/contain no-repeat;
  }

  .hero-panel .hero-quote-wrap{
    padding-bottom:8px;
  }

  .hero-panel .hero-quote-wrap blockquote{
    font-size:clamp(1.65rem,8vw,2.2rem) !important;
  }
}

/* === V79 IMPECCABLE: final non-hero polish, copy support, form hardening === */
:root{
  --evo-ink:oklch(24% .064 257);
  --evo-muted:oklch(43% .045 257);
  --evo-line:oklch(88% .027 247);
  --evo-panel:oklch(98% .009 247);
  --evo-soft-blue:oklch(96% .025 247);
  --evo-deep:oklch(25% .102 258);
  --evo-red:oklch(49% .19 21);
}

.about,
.cert-section,
.international,
.paths,
.gse,
.dm219,
.projects,
.carousel-section,
.contact-form-section{
  scroll-margin-top:108px;
}

.section-title h2{
  text-wrap:balance;
}

.section-title p,
.glass-card p,
.international-lead,
.path-content p,
.gse p,
.dm-card-head p,
.project-arrows p,
.contact-intro,
.form-heading p{
  text-wrap:pretty;
}

.about{
  background:
    linear-gradient(180deg,oklch(98% .01 247),oklch(96% .02 247));
}

.about .split{
  gap:clamp(28px,5vw,74px);
  align-items:center;
}

.about .glass-card{
  border:1px solid var(--evo-line) !important;
  border-radius:12px !important;
  background:linear-gradient(180deg,oklch(99% .006 247),oklch(97% .014 247)) !important;
  box-shadow:0 18px 46px rgba(6,39,87,.08) !important;
}

.about .glass-card p{
  color:var(--evo-ink);
  font-size:1rem;
  line-height:1.68;
}

.cert-section{
  background:
    linear-gradient(135deg,oklch(27% .11 258),oklch(34% .13 252)) !important;
}

.cert-grid{
  gap:clamp(18px,3vw,30px) !important;
}

.cert-card{
  border-radius:14px !important;
  border-color:rgba(255,255,255,.18) !important;
  box-shadow:0 20px 54px rgba(1,17,42,.18) !important;
}

.cert-card h3{
  text-wrap:balance;
}

.cert-card ul{
  padding-left:1.15rem;
}

.international.international-uk{
  background-image:
    linear-gradient(90deg,rgba(247,251,255,.52) 0%,rgba(247,251,255,.40) 50%,rgba(247,251,255,.52) 100%),
    url("assets/bg/international-london-clean-bg.png") !important;
  background-image:
    linear-gradient(90deg,rgba(247,251,255,.52) 0%,rgba(247,251,255,.40) 50%,rgba(247,251,255,.52) 100%),
    image-set(
      url("assets/bg/international-london-clean-bg.webp") type("image/webp"),
      url("assets/bg/international-london-clean-bg.png") type("image/png")
    ) !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}

@media(max-width:760px){
  .international.international-uk{
    background-position:center top !important;
  }
}

.international-content{
  align-self:center;
}

.international-lead{
  max-width:62ch;
  color:var(--evo-muted) !important;
}

.uk-step-card{
  border-radius:12px !important;
  box-shadow:0 16px 38px rgba(6,39,87,.08) !important;
}

.paths{
  background:oklch(98% .01 247) !important;
}

.path-grid{
  gap:clamp(18px,2.6vw,28px) !important;
}

.path-card{
  border:1px solid var(--evo-line) !important;
  border-radius:14px !important;
  box-shadow:0 18px 42px rgba(6,39,87,.09) !important;
  overflow:hidden;
}

.path-content{
  min-height:248px;
}

.path-content::before{
  width:42px !important;
  background:var(--red) !important;
}

.path-grid h3,
.path-grid h4,
.path-grid p{
  max-width:none !important;
}

.gse{
  background:
    linear-gradient(180deg,oklch(99% .006 247),oklch(96% .018 247)) !important;
}

.gse .split{
  gap:clamp(28px,5vw,72px);
  align-items:center;
}

.gse p{
  max-width:68ch;
  color:var(--evo-muted);
}

.stairs{
  border:1px solid var(--evo-line) !important;
  border-radius:14px !important;
  background:oklch(99% .006 247) !important;
  box-shadow:0 18px 46px rgba(6,39,87,.08) !important;
}

.dm219{
  background:
    linear-gradient(135deg,oklch(24% .1 258),oklch(30% .12 255)) !important;
}

.dm219::before{
  content:"DM";
  top:-34px !important;
  right:clamp(18px,6vw,88px) !important;
  color:rgba(255,255,255,.14);
  opacity:1 !important;
  font-size:clamp(8rem,18vw,16rem) !important;
  letter-spacing:-.08em;
}

.dm-boxes{
  gap:clamp(18px,2.6vw,30px) !important;
}

.dm-box{
  min-height:auto !important;
  border-radius:16px !important;
  border:1px solid rgba(255,255,255,.18) !important;
  background:rgba(255,255,255,.095) !important;
  backdrop-filter:none !important;
  box-shadow:0 24px 48px rgba(1,17,42,.20) !important;
}

.dm-box:hover{
  transform:translateY(-3px) !important;
  border-color:rgba(255,255,255,.32) !important;
  box-shadow:0 28px 58px rgba(1,17,42,.26) !important;
}

.dm-box-primary,
.dm-box-secondary{
  padding:clamp(24px,3.2vw,36px) !important;
}

.dm-box::before{
  background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 42%) !important;
}

.dm-box::after{
  left:clamp(24px,3.2vw,36px) !important;
  right:clamp(24px,3.2vw,36px) !important;
  bottom:24px !important;
  height:2px !important;
  background:linear-gradient(90deg,var(--red),rgba(255,255,255,.48)) !important;
}

.dm-card-head{
  min-height:154px !important;
}

.dm-card-head h2{
  letter-spacing:-.035em !important;
}

.dm-path-list{
  gap:10px !important;
}

.dm-path-list div{
  min-height:92px !important;
  border-radius:10px !important;
  background:rgba(255,255,255,.105) !important;
  border-color:rgba(255,255,255,.16) !important;
}

.dm-path-list strong{
  font-size:.97rem !important;
}

.dm-path-list span{
  color:rgba(255,255,255,.82) !important;
}

.dm-inline-link{
  color:#f5fbff !important;
}

.projects{
  background:oklch(98% .01 247) !important;
}

.project-arrows{
  counter-reset:project;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0 !important;
  border-block:1px solid var(--evo-line);
}

.project-arrows article{
  --project-accent:var(--blue);
  counter-increment:project;
  clip-path:none !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  align-content:start;
  gap:14px !important;
  min-height:220px;
  padding:26px 24px !important;
  border-radius:0 !important;
  border-right:1px solid var(--evo-line);
  background:transparent !important;
  color:var(--evo-ink) !important;
  box-shadow:none !important;
}

.project-arrows article:last-child{
  border-right:0;
}

.project-arrows article::before{
  content:"0" counter(project);
  width:max-content;
  padding-bottom:8px;
  border-bottom:2px solid var(--project-accent);
  color:var(--project-accent);
  font-size:1.25rem;
  line-height:1;
  font-weight:950;
}

.project-arrows .green{--project-accent:var(--green-accessible)}
.project-arrows .yellow{--project-accent:var(--yellow-accessible)}
.project-arrows .red{--project-accent:var(--red)}
.project-arrows .blue{--project-accent:var(--blue)}

.project-arrows h3{
  color:var(--evo-ink) !important;
  font-size:clamp(1.05rem,1.6vw,1.32rem) !important;
  line-height:1.14 !important;
  letter-spacing:.01em !important;
  text-transform:none !important;
}

.project-arrows p{
  margin:0;
  color:var(--evo-muted) !important;
  font-size:.98rem !important;
  line-height:1.55 !important;
  font-weight:650 !important;
}

.carousel-section{
  background:linear-gradient(180deg,oklch(98% .01 247),oklch(96% .018 247)) !important;
}

.carousel-window{
  border-radius:16px !important;
  border:1px solid var(--evo-line);
  box-shadow:0 18px 46px rgba(6,39,87,.10) !important;
}

.carousel button{
  background:var(--navy) !important;
}

.contact-form-section{
  background:linear-gradient(135deg,oklch(25% .1 258),oklch(32% .12 254)) !important;
}

.contact-form-card{
  border-radius:18px !important;
  border:1px solid rgba(255,255,255,.18) !important;
  box-shadow:0 24px 58px rgba(1,17,42,.22) !important;
}

.contact-form select,
.contact-form input,
.contact-form textarea{
  width:100%;
  min-height:52px;
}

.contact-form select{
  appearance:none;
  padding:17px 44px 17px 18px !important;
  border:1px solid #dbe8f5;
  border-radius:14px;
  background:
    linear-gradient(45deg,transparent 50%,#59708e 50%) calc(100% - 24px) 50% / 7px 7px no-repeat,
    linear-gradient(135deg,#59708e 50%,transparent 50%) calc(100% - 18px) 50% / 7px 7px no-repeat,
    #ffffff;
  color:var(--navy);
  font:inherit;
  font-weight:800;
}

.contact-form select:focus{
  outline:none;
  border-color:var(--blue);
  box-shadow:0 0 0 4px rgba(11,85,183,.13);
}

.form-honey{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
}

.form-note{
  margin:14px 0 0;
  color:#5f718d;
  font-size:.85rem;
  line-height:1.45;
}

.privacy-check{
  display:grid !important;
  grid-template-columns:20px minmax(0,1fr);
  align-items:start !important;
  gap:10px !important;
}

.privacy-check span{
  min-width:0 !important;
  overflow-wrap:anywhere;
}

.form-status{
  min-height:1.35em;
  margin:12px 0 0;
  font-size:.92rem;
  line-height:1.4;
  font-weight:850;
}

.form-status[data-state="pending"]{
  color:#174477;
}

.form-status[data-state="success"]{
  color:var(--green-accessible);
}

.form-status[data-state="error"]{
  color:var(--red);
}

.form-submit:disabled{
  cursor:progress;
  opacity:.75;
}

.british-footer__panel{
  border-radius:16px !important;
}

@media(max-width:1120px){
  .project-arrows{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .project-arrows article:nth-child(2){
    border-right:0;
  }

  .project-arrows article:nth-child(-n+2){
    border-bottom:1px solid var(--evo-line);
  }
}

@media(max-width:760px){
  .about,
  .cert-section,
  .international,
  .paths,
  .gse,
  .dm219,
  .projects,
  .carousel-section,
  .contact-form-section{
    scroll-margin-top:84px;
    max-width:100vw;
    overflow-x:hidden;
  }

  .section:not(.hero) .container,
  .british-footer .container{
    width:calc(100% - 28px) !important;
    max-width:calc(100% - 28px) !important;
    min-width:0 !important;
  }

  .section:not(.hero) .section-title,
  .section:not(.hero) .section-title h2,
  .section:not(.hero) .section-title p,
  .services-section .quick-card,
  .services-section .quick-card h3,
  .services-section .quick-card p,
  .services-section .quick-card a,
  .project-arrows article,
  .dm-path-list div,
  .contact-details p{
    max-width:100% !important;
    min-width:0 !important;
    overflow-wrap:anywhere;
    word-break:normal;
  }

  .about .split,
  .gse .split{
    gap:26px;
  }

  .path-content{
    min-height:auto;
  }

  .dm-card-head{
    min-height:auto !important;
  }

  .dm-path-list{
    grid-template-columns:1fr !important;
  }

  .dm-path-list div{
    min-height:0 !important;
  }

  .project-arrows{
    grid-template-columns:1fr;
  }

  .project-arrows article,
  .project-arrows article:nth-child(2){
    min-height:0;
    border-right:0;
    border-bottom:1px solid var(--evo-line);
    padding:22px 0 !important;
  }

  .project-arrows article:last-child{
    border-bottom:0;
  }

  .carousel button{
    width:42px !important;
    height:42px !important;
  }

  .carousel .prev{
    left:8px !important;
  }

  .carousel .next{
    right:8px !important;
  }

  .form-note{
    font-size:.82rem;
  }
}

/* === CERTIFICATION CENTERS: balanced 3 + 3 grid === */
@media(min-width:761px){
  .cert-centers-card{
    grid-template-columns:repeat(6,minmax(0,1fr)) !important;
  }

  .cert-centers-card > .cert-logo-box{
    grid-column:span 2;
    border-right:1px solid #e5edf6 !important;
    border-bottom:0 !important;
  }

  .cert-centers-card > .cert-logo-box:nth-child(4){
    border-right:0 !important;
  }

  .cert-centers-card > .cert-logo-box:nth-child(5),
  .cert-centers-card > .cert-logo-box:nth-child(6),
  .cert-centers-card > .cert-logo-box:nth-child(7){
    border-top:1px solid #e5edf6 !important;
    padding-top:24px !important;
  }

  .cert-centers-card > .cert-logo-box:nth-child(7){
    border-right:0 !important;
  }

  .cert-logo-box--audiso .cert-logo-wrap img{
    max-width:96% !important;
    max-height:64px !important;
  }

  .cert-logo-box--eipass .cert-logo-wrap img{
    max-width:94% !important;
    max-height:68px !important;
  }
}

/* === HERO NEWS CTA === */
.hero-news-row{
  flex:0 0 100%;
  display:flex;
  justify-content:flex-start;
  margin-top:2px;
}

.news-pulse-btn{
  min-width:150px;
  min-height:52px;
  padding:13px 30px;
  background:linear-gradient(135deg,#ed2745 0%,#bd102b 100%);
  color:#fff;
  border-color:rgba(255,255,255,.5);
  box-shadow:0 12px 28px rgba(201,21,50,.32);
  letter-spacing:.08em;
  animation:evolution-news-pulse 1.9s ease-in-out infinite;
}

@keyframes evolution-news-pulse{
  0%,100%{
    transform:scale(1);
    box-shadow:0 12px 28px rgba(201,21,50,.30),0 0 0 0 rgba(237,39,69,.32);
  }
  50%{
    transform:scale(1.045);
    box-shadow:0 16px 34px rgba(201,21,50,.40),0 0 0 12px rgba(237,39,69,0);
  }
}

@media(max-width:1050px){
  .hero-news-row{
    justify-content:center;
  }
}

@media(prefers-reduced-motion:reduce){
  .news-pulse-btn{
    animation:none !important;
  }
}

/* === RESPONSIVE MEDIA LOADING === */
.path-media{
  overflow:hidden;
}

.path-media picture{
  position:absolute;
  inset:0;
  display:block;
}

.path-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.path-media::before{
  z-index:1;
  pointer-events:none;
}

.privacy-check a{
  color:inherit;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}

.privacy-check a:hover{
  color:var(--blue);
}

.contact-form .form-note{
  color:#d8e6fa !important;
}

.gse-level--pre-a1{height:25%}
.gse-level--a1{height:38%}
.gse-level--a2{height:50%}
.gse-level--b1{height:63%}
.gse-level--b2{height:76%}
.gse-level--c1{height:88%}
.gse-level--c2{height:100%}

/* === V81: compact one-page rhythm and loading polish === */
.section{
  padding-block:clamp(58px,5.5vw,76px) !important;
}

.section-title,
.services-heading{
  margin-bottom:24px !important;
}

.services-section{
  padding-top:clamp(54px,5.5vw,72px) !important;
}

.about .glass-card,
.cert-card{
  padding:28px !important;
}

.international.international-uk{
  padding-block:clamp(58px,5.5vw,76px) !important;
}

.international-grid{
  gap:clamp(28px,4vw,48px) !important;
}

.international-steps{
  gap:14px !important;
}

.uk-step-card{
  padding:20px 22px !important;
}

.path-card{
  min-height:460px !important;
}

.path-media{
  height:205px !important;
}

.path-content{
  min-height:0 !important;
  padding:22px 24px 24px !important;
}

.planning-layout{
  gap:clamp(24px,3vw,36px) !important;
}

.dm-programme-card__head,
.dm-programme-grid{
  padding:clamp(22px,2.6vw,30px) !important;
}

.project-arrows article{
  min-height:196px;
  padding:22px !important;
}

.eipass-layout{
  gap:clamp(34px,5vw,64px);
}

.eipass-identity{
  padding:clamp(28px,3vw,40px);
}

.eipass-logo{
  margin-bottom:24px;
}

.eipass-proof{
  padding-top:18px;
}

.eipass-content h2{
  margin-bottom:18px;
}

.eipass-lead{
  margin-bottom:22px;
  line-height:1.58;
}

.eipass-points{
  margin-bottom:26px;
}

.eipass-points li{
  padding-block:13px;
}

.contact-form-section{
  padding-block:clamp(58px,5.5vw,76px) !important;
}

.contact-form-card{
  gap:clamp(28px,4vw,48px) !important;
  padding:clamp(26px,3.4vw,42px) !important;
}

.contact-info-panel{
  padding-bottom:20px;
}

.form-heading{
  margin-bottom:22px !important;
}

.form-grid{
  gap:14px 18px !important;
}

.contact-form select,
.contact-form input,
.contact-form textarea{
  min-height:48px;
}

.contact-form input,
.contact-form textarea{
  padding-block:13px !important;
}

.contact-form select{
  padding-block:14px !important;
}

.contact-form textarea{
  min-height:118px;
}

.privacy-check{
  margin-block:18px 16px !important;
}

.form-note{
  margin-top:10px;
}

@media(min-width:761px){
  .hero-actions{
    gap:12px !important;
    margin-block:20px 12px !important;
  }

  .cert-centers-card{
    padding:28px 32px 26px !important;
  }

  .cert-title{
    margin-bottom:22px !important;
  }

  .cert-centers-card > .cert-logo-box{
    grid-template-rows:78px 20px 58px !important;
    min-height:0 !important;
    padding:14px 18px !important;
  }

  .cert-centers-card > .cert-logo-box:nth-child(5),
  .cert-centers-card > .cert-logo-box:nth-child(6),
  .cert-centers-card > .cert-logo-box:nth-child(7){
    padding-top:18px !important;
  }

  .cert-logo-wrap{
    height:78px !important;
  }

  .cert-logo-wrap img,
  .cert-logo-box--audiso .cert-logo-wrap img,
  .cert-logo-box--eipass .cert-logo-wrap img{
    max-height:58px !important;
  }

  .cert-logo-box p{
    min-height:58px !important;
    height:58px !important;
    padding-top:10px !important;
  }

  .hero-panel .hero-quote-wrap{
    margin-top:18px !important;
  }

  .hero-panel .hero-quote-wrap .quote-flag-left{
    width:min(150px,36vw) !important;
  }

  .hero-panel .hero-quote-wrap blockquote{
    font-size:clamp(1.65rem,2.1vw,2rem) !important;
  }

  .hero-panel .hero-quote-wrap blockquote::after,
  .hero-panel blockquote::after{
    height:28px !important;
    margin-top:4px !important;
  }

  .skyline-stage{
    height:150px !important;
  }
}

@media(max-width:760px){
  .section{
    padding-block:46px !important;
  }

  .services-section{
    padding-top:46px !important;
  }

  .hero-grid{
    gap:22px !important;
    padding-bottom:18px;
  }

  .hero h2{
    margin-block:14px !important;
  }

  .lead{
    margin-block:14px !important;
    padding:14px 16px !important;
    font-size:1.03rem !important;
    line-height:1.48 !important;
  }

  .hero-actions{
    gap:10px !important;
    margin-block:20px !important;
  }

  .hero-actions .btn{
    min-height:52px !important;
    padding-block:12px !important;
  }

  .hero-signature-mobile{
    margin-block:10px 12px;
  }

  .hero-signature-mobile img{
    width:min(124px,34vw);
  }

  .hero-signature-mobile p{
    font-size:clamp(1.4rem,6vw,1.75rem);
  }

  .hero-signature-mobile::after{
    height:24px;
  }

  .skyline-stage{
    height:92px !important;
  }

  .services-heading,
  .section-title{
    margin-bottom:20px !important;
  }

  .quick-card,
  .quick-card:nth-child(odd){
    gap:6px 14px !important;
    padding:18px 0 !important;
  }

  .about .glass-card,
  .cert-card{
    padding:26px 22px !important;
  }

  .international.international-uk{
    padding-block:50px !important;
  }

  .international-grid{
    gap:28px !important;
  }

  .uk-step-card{
    padding:19px 18px !important;
  }

  .path-grid{
    gap:14px !important;
    padding-block:12px 20px !important;
  }

  .path-card{
    min-height:440px !important;
  }

  .path-media{
    height:190px !important;
  }

  .path-content{
    padding:21px 20px 23px !important;
  }

  .stairs{
    padding:22px !important;
  }

  .dm-programme-card__head,
  .dm-programme-grid{
    padding:22px 18px !important;
  }

  .planning-section .project-arrows article,
  .planning-section .project-arrows article:nth-child(2){
    padding:18px 0 !important;
  }

  .eipass-layout{
    gap:30px;
  }

  .eipass-identity{
    padding:26px;
  }

  .eipass-logo{
    width:min(100%,280px);
    margin-bottom:20px;
  }

  .eipass-content h2{
    font-size:clamp(2.3rem,10.5vw,3.6rem) !important;
  }

  .eipass-points li{
    padding-block:12px;
  }

  .contact-form-section{
    padding-block:46px !important;
  }

  .contact-form-card{
    gap:28px !important;
    padding:22px 18px !important;
  }

  .contact-info-panel{
    padding-bottom:18px;
  }

  .form-heading{
    margin-bottom:20px !important;
  }

  .form-grid{
    gap:13px !important;
  }

  .contact-form textarea{
    min-height:108px;
  }
}

/* === V82: social links integrated beside the header logo === */
.navbar{
  grid-template-columns:340px minmax(0,1fr) auto;
}

.brand-cluster{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}

.header-socials{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}

.header-social-link{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid rgba(6,39,87,.13);
  border-radius:50%;
  background:#f8fbff;
  box-shadow:0 7px 16px rgba(6,39,87,.08);
  transition:transform .2s cubic-bezier(.22,1,.36,1),border-color .2s ease,box-shadow .2s ease;
}

.header-social-link img{
  width:20px;
  height:20px;
  object-fit:contain;
}

@media(hover:hover){
  .header-social-link:hover{
    transform:translateY(-2px);
    border-color:rgba(11,85,183,.34);
    box-shadow:0 10px 20px rgba(6,39,87,.13);
  }
}

@media(max-width:1180px) and (min-width:881px){
  .navbar{
    grid-template-columns:300px minmax(0,1fr) auto !important;
    gap:14px !important;
  }

  .brand-cluster{
    gap:8px;
  }

  .header-social-link{
    width:32px;
    height:32px;
  }

  .header-social-link img{
    width:18px;
    height:18px;
  }
}

@media(max-width:880px){
  .brand-cluster{
    gap:8px;
  }

  .header-socials{
    gap:6px;
  }

  .header-social-link{
    width:32px;
    height:32px;
  }

  .header-social-link img{
    width:18px;
    height:18px;
  }
}

@media(max-width:360px){
  .navbar{
    gap:12px !important;
  }

  .brand-cluster .brand img{
    width:140px !important;
  }

  .header-social-link{
    width:28px;
    height:28px;
  }

  .header-social-link img{
    width:16px;
    height:16px;
  }
}

/* === V83: mobile certification panel and privacy checkbox fix === */
@media(max-width:760px){
  .privacy-check{
    grid-template-columns:24px minmax(0,1fr) !important;
    gap:12px !important;
    align-items:start !important;
  }

  .contact-form .privacy-check input[type="checkbox"]{
    width:22px !important;
    height:22px !important;
    min-height:22px !important;
    margin:2px 0 0 !important;
    padding:0 !important;
    box-shadow:none !important;
    flex:none !important;
  }

  .privacy-check span{
    display:block !important;
    min-width:0 !important;
    line-height:1.45 !important;
  }

  .hero-panel .cert-centers-card{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    width:100% !important;
    margin:10px auto 20px !important;
    padding:20px 14px 16px !important;
    border-radius:16px !important;
    overflow:hidden !important;
  }

  .hero-panel .cert-title{
    grid-column:1 / -1 !important;
    margin:0 0 12px !important;
    font-size:.72rem !important;
    line-height:1.3 !important;
    letter-spacing:.12em !important;
  }

  .hero-panel .cert-title::before,
  .hero-panel .cert-title::after{
    width:24px !important;
  }

  .hero-panel .cert-logo-box{
    grid-template-rows:62px 16px auto !important;
    min-height:146px !important;
    padding:12px 8px !important;
    border-top:0 !important;
    border-right:0 !important;
    border-bottom:1px solid #dbe6f2 !important;
    align-content:start !important;
  }

  .hero-panel .cert-logo-box:nth-child(2),
  .hero-panel .cert-logo-box:nth-child(4),
  .hero-panel .cert-logo-box:nth-child(6){
    border-right:1px solid #dbe6f2 !important;
  }

  .hero-panel .cert-logo-box:nth-child(6),
  .hero-panel .cert-logo-box:nth-child(7){
    border-bottom:0 !important;
  }

  .hero-panel .cert-logo-wrap{
    width:100% !important;
    height:62px !important;
    padding:0 4px !important;
  }

  .hero-panel .cert-logo-wrap img,
  .hero-panel .cert-logo-box--audiso .cert-logo-wrap img,
  .hero-panel .cert-logo-box--eipass .cert-logo-wrap img{
    max-width:92% !important;
    max-height:48px !important;
  }

  .hero-panel .cert-divider{
    width:52% !important;
    margin:auto !important;
  }

  .hero-panel .cert-logo-box p{
    width:100% !important;
    min-height:0 !important;
    height:auto !important;
    margin:0 !important;
    padding-top:6px !important;
    font-size:.67rem !important;
    line-height:1.25 !important;
    letter-spacing:.02em !important;
  }

  .hero-panel .cert-logo-box strong{
    margin-top:3px !important;
    font-size:.78rem !important;
  }
}
