:root{
  /* Palette (provided) */
  --c-white:#FFFFFF;
  --c-gray-100:#EBEBEB;
  --c-black:#000000;
  --c-blue-900:#003A70;
  --c-gray-700:#707070;
  --c-blue-50:#E5F1FA;
  --c-blue-500:#0077C8;
  --c-blue-500b:#0078C8;

  /* Derived */
  --c-text:var(--c-black);
  --c-muted:var(--c-gray-700);
  --c-border:rgba(0,58,112,.18);
  --shadow:0 8px 28px rgba(0,0,0,.08);

  /* Bootstrap 5 overrides (CSS variables) */
  --bs-body-bg: var(--c-white);
  --bs-body-color: var(--c-text);

  --bs-primary: var(--c-blue-500);
  --bs-primary-rgb: 0,119,200;
  --bs-link-color: var(--c-blue-500);
  --bs-link-hover-color: var(--c-blue-500b);

  /* Used by the old IT pages' Formstack button */
  --bs-success: #8bb174;
  --bs-success-rgb: 139,177,116;

  --nav-h: 5rem;
}

html,body{height:100%;}
body{
  padding-top:0;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
@import url(http://fonts.googleapis.com/css?family=Luiss Sans:300,400,500,700,900);
*, body {font-family: 'Luiss Sans', sans-serif!important;}

/* Typography */
html {font-size: 95%;}/* Regolare la dimensione di tutti i font in % */


/* Match mock container width (1128px) */
@media (min-width: 1200px){
  .container{max-width:1128px;}
}

/* -----------------------------
   Navbar (Bootstrap 5 friendly)
--------------------------------*/
.site-navbar{
  background-color: rgba(255,255,255,1);
  transition: background-color .2s ease, box-shadow .2s ease, backdrop-filter .2s ease;
}

.site-navbar.scrolled{
  background-color: rgba(255,255,255,.92); /* leggera trasparenza */
  /* box-shadow: 0 0.625rem 1.625rem rgba(0,0,0,.08); */ /* 10px 26px */
  backdrop-filter: saturate(140%) blur(0.5rem);          /* 8px */
  -webkit-backdrop-filter: saturate(140%) blur(0.5rem);  /* 8px */
}

.site-brand__logo{
  display:block;
  height:4rem; /* 56px */
  width:auto;
}

.navbar .btn {
  min-width: 150px;
  line-height: 30px;
}
@media (max-width: 47.99875rem){ /* 767.98px */
  :root{ --nav-h: 4.5rem; }
  body{padding-top:4.5rem;}
  .site-brand__logo{height:2.875rem;} /* 46px */
}

/* -----------------------------
   Hero
--------------------------------*/
/* la hero parte sotto la navbar */
header.hero{
  padding-top: var(--nav-h);
  margin-top:1.875rem; /* 30px */
}

.hero-media{
  position:relative;
  overflow:hidden;
}
.hero-media img{
  display:block;
  width:100%;
  height:25rem; /* 400px */
  object-fit:cover;
}
.hero-title{
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  background:var(--c-white);
  padding:1.5rem 1.625rem; /* 24px 26px */
  max-width:26.25rem; /* 420px */
  box-shadow:var(--shadow);
}
.hero-title:after{
  content:"";
  position:absolute;
  right:-2.5rem; /* -40px */
  top:0;
  width:2.5rem; /* 40px */
  height:100%;
  background:var(--c-blue-900);
}
.hero-title h1{
  margin:0;
  color:var(--c-blue-900);
  font-weight:700;
  font-size:2.5rem; /* 40px */
  line-height:1.50;
}

.hero .container{
  border-top:0.0625rem solid var(--c-blue-900); /* 1px */
  padding-top:3.125rem; /* 50px */
  padding-left:0;
  padding-right:0;
}

/* -----------------------------
   Programs / cards
--------------------------------*/
img.card-img-top{
  height:13.75rem; /* 220px */
  object-fit:cover;
  width:100%;
}

.programs-wrap{
  background:var(--c-gray-100);
  padding:1.625rem 0 2.5rem; /* 26px 0 40px */
}
.section-kicker{
  color:var(--c-blue-900);
  font-weight:700;
  margin:1.125rem 0 1.875rem; /* 18px 0 30px */
  font-size:2.5rem; /* 40px */
}
.program-card{
  border-radius:0;
  overflow:hidden;
}
.program-card__title{
  color:var(--c-blue-900);
  font-size:1.5rem; /* 24px */
}
.program-card__title a{color:inherit; text-decoration:none;}
.program-card__title a:hover{text-decoration:underline;}

.program-card__desc{font-size:1.25rem; line-height:1.375rem;} /* 20px / 22px */

.keyfacts-title{
  font-size:1.5rem;     /* 24px */
  line-height:1.625rem; /* 26px */
  color: var(--c-blue-900);
  font-weight: bold;
}

.keyfacts{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:0.625rem; /* 10px */
}
.keyfacts li{
  display:flex;
  align-items:flex-start;
  gap:0.625rem; /* 10px */
  font-size:1.25rem; /* 20px */
  padding:0.3125rem 0; /* 5px 0 */
}
.kf-ico{
  flex:0 0 1.125rem; /* 18px */
  color:var(--c-blue-900);
  margin-top:0.125rem; /* 2px */
}
.keyfacts li span{
  margin-top:auto !important;
  margin-bottom:auto !important;
}

.keyfacts li span img {height: 30px;}

.kf-ico svg{display:block; width:1.125rem; height:1.125rem;} /* 18px */

/* BOTTONE More information e Apply Now */
.program-card__actions .btn-vuoto{
  position: relative;
  overflow: hidden;
  border: 0.0625rem solid var(--c-blue-900); /* 1px */
  border-radius: 0;
  background: transparent;
  color: var(--c-blue-900);
  z-index: 0;
  transition: border-color .35s ease, box-shadow .35s ease, transform .15s ease, color .35s ease;
  line-height: 30px;
  font-size: 1.2rem!important;
}

/* fill hover (azzurro chiaro) */
.program-card__actions .btn-vuoto::before{
  content:"";
  position:absolute;
  inset:0;
  background: var(--c-blue-50);
  z-index:-1;
  transform: translateX(-101%);
  transition: transform .45s ease;
  will-change: transform;
}

.program-card__actions .btn-vuoto:hover,
.program-card__actions .btn-vuoto:focus{
  color: var(--c-blue-900);
  border-color: var(--c-blue-900);
  box-shadow: 0 0.625rem 1.625rem rgba(0,0,0,.08); /* 10px 26px */
}

.program-card__actions .btn-vuoto:hover::before,
.program-card__actions .btn-vuoto:focus::before{
  transform: translateX(0);
}

.program-card__actions .btn-vuoto:active{
  transform: translateY(0.0625rem); /* 1px */
  box-shadow: 0 0.375rem 1rem rgba(0,0,0,.10); /* 6px 16px */
}

.program-card__actions .btn-vuoto:focus-visible{
  outline: none;
}

/* BOTTONE CONTACT */
.btn-pieno{
  position: relative;
  overflow: hidden;
  border: 0.0625rem solid var(--c-blue-900); /* 1px */
  border-radius: 0;
  background: transparent;
  color: var(--c-white);
  z-index: 0;
  transition: border-color .35s ease, box-shadow .35s ease, transform .15s ease;
  font-size: 1.2rem!important;
}

.btn-pieno::after{
  content:"";
  position:absolute;
  inset:0;
  background: var(--c-blue-900);
  z-index:-2;
}

.btn-pieno::before{
  content:"";
  position:absolute;
  inset:0;
  background: var(--c-blue-500);
  z-index:-1;
  transform: translateX(-101%);
  transition: transform .45s ease;
  will-change: transform;
}

.btn-pieno:hover,
.btn-pieno:focus{
  color: var(--c-white);
  border-color: var(--c-blue-500);
  box-shadow: 0 0.625rem 1.625rem rgba(0,0,0,.10); /* 10px 26px */
}

.btn-pieno:hover::before,
.btn-pieno:focus::before{
  transform: translateX(0);
}

.btn-pieno:active{
  transform: translateY(0.0625rem); /* 1px */
  box-shadow: 0 0.375rem 1rem rgba(0,0,0,.12); /* 6px 16px */
}

.btn-pieno:focus-visible{
  outline: none;
}

/* -----------------------------
   Footer
--------------------------------*/
.site-footer-new{
  background:var(--c-blue-900);
  color:var(--c-white);
}
.site-footer-new a{color:var(--c-white); text-decoration:none;}
.site-footer-new a:hover{text-decoration:underline;}
.footer-brand__luiss{font-weight:700; font-size:2.125rem; line-height:1;} /* 34px */
.footer-brand__mark{height:5.625rem; width:auto;} /* 90px */

/* Small tweaks */
.hero-text p{
  max-width:53.75rem; /* 860px */
  margin:0 auto 1rem; /* 16px */
  line-height:1.625rem; /* 26px */
  font-size:1.5rem; /* 24px */
}

@media (max-width: 47.99875rem){ /* 767.98px */
  .hero-title{max-width:78%; padding:1rem;} /* 16px */
  .hero-title h1{font-size:1.375rem;} /* 22px */
}

/* FORMSTACK submit = versione chiara (come .btn-vuoto) */
.contact-form-wrap .fsSubmitButton,
.contact-form-wrap button.fsSubmitButton,
.contact-form-wrap .fsSubmitButton[type="submit"]{
  position: relative !important;
  overflow: hidden !important;
  border: 0.0625rem solid var(--c-blue-900) !important; /* 1px */
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--c-blue-900) !important;
  z-index: 0;
  transition: border-color .35s ease, box-shadow .35s ease, transform .15s ease, color .35s ease;
  font-size: 1.2rem!important;
}

.contact-form-wrap .fsSubmitButton::before{
  content:"";
  position:absolute;
  inset:0;
  background: var(--c-blue-50);
  z-index:-1;
  transform: translateX(-101%);
  transition: transform .45s ease;
  will-change: transform;
}

.contact-form-wrap .fsSubmitButton:hover,
.contact-form-wrap .fsSubmitButton:focus{
  color: var(--c-blue-900) !important;
  border-color: var(--c-blue-900) !important;
  box-shadow: 0 0.625rem 1.625rem rgba(0,0,0,.08); /* 10px 26px */
}

.contact-form-wrap .fsSubmitButton:hover::before,
.contact-form-wrap .fsSubmitButton:focus::before{
  transform: translateX(0);
}

.contact-form-wrap .fsSubmitButton:active{
  transform: translateY(0.0625rem); /* 1px */
  box-shadow: 0 0.375rem 1rem rgba(0,0,0,.10); /* 6px 16px */
}

.contact-form-wrap .fsSubmitButton:focus-visible{
  outline: none;
}

.program-card__divider{
  height:0.0625rem; /* 1px */
  background: var(--c-blue-900);
}

.fsSubmitButton {line-height: 30px!important;}
