/* Keep desktop navigation labels on a single line. The flexible gap lets the
   complete menu fit at tablet and small-laptop widths. */
nav.container > div > ul {
  gap: clamp(0.75rem, 2vw, 2.5rem);
}

nav.container > div > ul a,
nav.container > a {
  white-space: nowrap;
}

nav.container > div > ul a.is-active {
  color: #facc15;
  position: relative;
}

nav.container > div > ul a.is-active::after {
  background: currentColor;
  border-radius: 999px;
  bottom: -0.2rem;
  content: "";
  height: 2px;
  left: 0;
  position: absolute;
  right: 0;
}

.contact-map-section {
  background: #f8fafc;
  padding: 4rem max(1.5rem, calc((100vw - 1280px) / 2));
}

.contact-map-heading {
  margin: 0 auto 2rem;
  max-width: 1280px;
}

.contact-map-heading span {
  color: #0f766e;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.contact-map-heading h2 {
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  margin: 0.5rem 0;
}

.contact-map-heading p {
  color: #475569;
}

.contact-map-section iframe {
  border: 0;
  border-radius: 0.75rem;
  box-shadow: 0 14px 35px rgb(15 23 42 / 12%);
  display: block;
  height: 450px;
  margin: 0 auto;
  max-width: 1280px;
  width: 100%;
}

@media (max-width: 640px) {
  .contact-map-section {
    padding-bottom: 2.5rem;
    padding-top: 2.5rem;
  }

  .contact-map-section iframe {
    height: 340px;
  }
}

.managed-services {
  background: #f8fafc;
  padding: 5rem max(1.5rem, calc((100vw - 1280px) / 2));
}

.managed-services-heading {
  margin-bottom: 2.5rem;
  max-width: 680px;
}

.managed-services-heading > span {
  color: #0f766e;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.managed-services-heading h2 {
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 700;
  margin: 0.5rem 0;
}

.managed-services-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.managed-service-card {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 0.75rem;
  display: flex;
  flex-direction: column;
  padding: 2rem;
}

.managed-service-icon {
  align-items: center;
  background: #ccfbf1;
  border-radius: 0.5rem;
  display: flex;
  font-size: 1.5rem;
  height: 3rem;
  justify-content: center;
  margin-bottom: 1.5rem;
  width: 3rem;
}

.managed-service-card h3 { font-size: 1.25rem; font-weight: 700; }
.managed-service-card p { color: #64748b; flex: 1; margin: 0.75rem 0 1.5rem; }
.managed-service-card a { color: #0f766e; font-weight: 700; }

@media (max-width: 900px) {
  .managed-services-grid { grid-template-columns: 1fr; }
}

.program-cms-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.program-cms-card {
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 8px 25px rgb(15 23 42 / 9%);
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
  transition: transform .2s, box-shadow .2s;
}

.program-cms-card:hover { box-shadow: 0 14px 35px rgb(15 23 42 / 16%); transform: translateY(-3px); }
.program-cms-flag { font-size: 2.5rem; }
.program-cms-card small { color: #0f766e; font-weight: 800; letter-spacing: .08em; margin-top: .75rem; text-transform: uppercase; }
.program-cms-card h3 { font-size: 1.15rem; font-weight: 700; margin: .45rem 0; }
.program-cms-card > p { color: #64748b; flex: 1; font-size: .875rem; }
.program-cms-card dl { border-bottom: 1px solid #e2e8f0; border-top: 1px solid #e2e8f0; margin: 1rem 0; padding: .75rem 0; }
.program-cms-card dl div { display: flex; font-size: .8rem; justify-content: space-between; }
.program-cms-card dt { color: #64748b; }
.program-cms-card dd { font-weight: 700; margin-left: 1rem; text-align: right; }
.program-cms-card strong { color: #0f766e; }

@media (max-width: 900px) { .program-cms-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) { .program-cms-grid { grid-template-columns: 1fr; } }

.program-detail-page { background:#f8fafc; color:#172033; }
.program-detail-hero { background:linear-gradient(135deg,#134e4a,#0f766e); color:#fff; padding:6rem max(1.5rem,calc((100vw - 1100px)/2)); }
.program-detail-hero>div { max-width:850px; }
.program-detail-hero a:first-child { display:block; font-weight:700; margin-bottom:2.5rem; }
.program-detail-hero span { color:#fde047; display:block; font-size:.8rem; font-weight:800; letter-spacing:.12em; margin-bottom:1rem; text-transform:uppercase; }
.program-detail-hero h1 { font-size:clamp(2.3rem,6vw,4.5rem); font-weight:800; line-height:1.06; }
.program-detail-hero p { color:#d5f5ed; font-size:1.15rem; max-width:740px; }
.program-detail-cta { background:#fff; border-radius:.4rem; color:#115e59; display:inline-block; font-weight:800; margin-top:1.5rem; padding:.9rem 1.25rem; }
.program-detail-facts { display:grid; gap:1px; grid-template-columns:repeat(3,1fr); margin:0 auto; max-width:1100px; transform:translateY(-1.5rem); }
.program-detail-facts article { background:#fff; box-shadow:0 8px 25px rgb(15 23 42 / 8%); padding:1.5rem; }
.program-detail-facts small { color:#64748b; display:block; font-weight:800; letter-spacing:.1em; }
.program-detail-facts strong { display:block; font-size:1.15rem; margin-top:.4rem; }
.program-detail-body { display:grid; gap:4rem; grid-template-columns:1.5fr .75fr; margin:0 auto; max-width:1100px; padding:4rem 1.5rem 6rem; }
.program-detail-body>div>span { color:#0f766e; font-size:.75rem; font-weight:800; letter-spacing:.14em; }
.program-detail-body h2 { font-size:clamp(2rem,4vw,3rem); font-weight:800; margin:.75rem 0 1.25rem; }
.program-detail-body>div p { color:#475569; font-size:1.1rem; }
.program-detail-body aside { background:#fff; border-top:4px solid #0f766e; box-shadow:0 10px 30px rgb(15 23 42 / 10%); padding:2rem; }
.program-detail-body aside h3 { font-size:1.3rem; font-weight:800; }
.program-detail-body aside a { color:#0f766e; font-weight:800; }
.program-detail-error { min-height:60vh; padding:8rem 2rem; text-align:center; }
.program-detail-error h1 { font-size:2.5rem; font-weight:800; }
.program-detail-error a { color:#0f766e; font-weight:800; }
@media(max-width:700px){.program-detail-facts,.program-detail-body{grid-template-columns:1fr}.program-detail-facts{margin:0 1.5rem}.program-detail-body{gap:2rem}.program-detail-hero{padding-top:4rem}}

.portal-page{background:#f8fafc;min-height:75vh;padding:4rem max(1.25rem,calc((100vw - 1200px)/2));color:#172033}.portal-card{background:#fff;border-radius:1rem;box-shadow:0 15px 45px #0f172a12;display:grid;gap:4rem;grid-template-columns:.75fr 1.25fr;padding:3rem}.portal-card>div>span,.portal-login span,.dashboard-head span{color:#0f766e;font-size:.75rem;font-weight:800;letter-spacing:.14em}.portal-card h1,.portal-login h1,.dashboard-head h1{font-size:clamp(2rem,5vw,3.5rem);font-weight:800;line-height:1.05;margin:.75rem 0}.portal-card>div>a{color:#0f766e;font-weight:800}.portal-fields{display:grid;gap:1rem;grid-template-columns:1fr 1fr}.portal-page label{display:flex;flex-direction:column;font-size:.8rem;font-weight:800;gap:.4rem;margin-bottom:1rem}.portal-page input,.portal-page select{border:1px solid #cbd5e1;border-radius:.35rem;padding:.8rem}.portal-page button{background:#0f766e;border:0;border-radius:.35rem;color:#fff;cursor:pointer;font-weight:800;padding:.85rem 1.2rem}.passport-preview{align-items:center;background:#f1f5f9;border:2px dashed #cbd5e1;border-radius:.5rem;color:#64748b;display:flex;gap:1rem;justify-content:center;margin:1rem 0;min-height:170px;padding:1rem}.passport-preview img{border-radius:.35rem;height:150px;object-fit:cover;width:120px}.passport-preview strong{color:#334155}.portal-message{color:#0f766e;font-weight:700}.portal-message.error{color:#b42318}.portal-login{display:grid;min-height:60vh;place-items:center}.portal-login form{background:#fff;border-radius:1rem;box-shadow:0 15px 45px #0f172a12;max-width:460px;padding:2.5rem;width:100%}.portal-login form>p:last-child{text-align:center}.portal-login a{color:#0f766e;font-weight:800}.dashboard-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:2.5rem}.dashboard-head p{color:#64748b}.dashboard-head button,.document-list button{background:#334155}.dashboard-grid{display:grid;gap:2rem;grid-template-columns:1.5fr .8fr}.dashboard-grid>div,.dashboard-grid>aside{background:#fff;border-radius:.75rem;box-shadow:0 8px 30px #0f172a0d;padding:2rem}.dashboard-grid h2{font-size:1.4rem;font-weight:800;margin-bottom:1.5rem}.application-card{border:1px solid #e2e8f0;border-radius:.5rem;margin-bottom:1rem;padding:1.5rem;position:relative}.application-card small{color:#64748b;font-weight:800}.application-card h3{font-size:1.15rem;font-weight:800;margin:.35rem 0}.application-card .status{background:#ccfbf1;border-radius:2rem;color:#115e59;padding:.4rem .7rem;position:absolute;right:1rem;top:1rem}.progress{background:#e2e8f0;border-radius:1rem;height:.5rem;margin-top:1rem;overflow:hidden}.progress i{background:#0f766e;display:block;height:100%}.admin-note{background:#f8fafc;border-left:3px solid #0f766e;padding:.75rem}.document-list{border-top:1px solid #e2e8f0;margin-top:1.5rem;padding-top:1rem}.document-list>div{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin:.75rem 0}.document-list span{display:flex;flex-direction:column}.document-list small{color:#64748b}.document-list button{font-size:.7rem;padding:.45rem}.portal-loading{text-align:center}.portal-page input[type=file]{background:#fff}
@media(max-width:800px){.portal-card,.dashboard-grid{grid-template-columns:1fr}.portal-card{gap:2rem;padding:1.5rem}.portal-fields{grid-template-columns:1fr}.dashboard-head{align-items:flex-start;gap:1rem}.application-card .status{display:inline-block;margin:.5rem 0;position:static}}
.portal-page input[readonly]{background:#e9eef2;color:#475569;cursor:not-allowed}
.password-field{position:relative;width:100%}.password-field input{padding-right:3rem;width:100%}.portal-page .password-reveal{align-items:center;background:transparent;border:0;color:#475569;display:flex;font-size:1.15rem;height:100%;justify-content:center;padding:0;position:absolute;right:.85rem;top:0;width:1.75rem}.portal-page .password-reveal:hover,.portal-page .password-reveal:focus{background:transparent;color:#0f766e}.password-reveal.revealed{opacity:.65}
.portal-upload-grid{display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-top:1rem}.portal-upload-grid label{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;padding:1rem}.portal-upload-grid small{color:#64748b;font-weight:500}
@media(max-width:640px){.portal-upload-grid{grid-template-columns:1fr}}
.program-cms-card[hidden]{display:none}.program-search-result{color:#0f766e;font-size:.9rem;font-weight:700;margin:-1rem 0 1.25rem;text-align:center}.program-search-result.empty{color:#b42318}
.program-hide-active{background:#0f766e!important;border-radius:999px!important;color:#fff!important;padding:.55rem 1rem!important;text-decoration:none!important}
.rich-program-content{line-height:1.7}.rich-program-content h2,.rich-program-content h3,.rich-program-content h4{font-weight:700;margin:1.25rem 0 .5rem}.rich-program-content h2{font-size:1.35rem}.rich-program-content h3{font-size:1.1rem}.rich-program-content p{margin:.55rem 0}.rich-program-content ul,.rich-program-content ol{margin:.55rem 0;padding-left:1.5rem}.rich-program-content ul{list-style:disc}.rich-program-content ol{list-style:decimal}.rich-program-content blockquote{border-left:3px solid #0f766e;color:#475569;margin:1rem 0;padding:.5rem 1rem}.rich-program-content a{color:#0f766e;text-decoration:underline}
.portal-site-header{align-items:center;background:linear-gradient(90deg,#0f766e,#134e4a);color:#fff;display:flex;min-height:70px;padding:0 max(1.5rem,calc((100vw - 1200px)/2));position:relative;z-index:10}.portal-brand{font-size:1.6rem;font-weight:700;margin-right:auto;white-space:nowrap}.portal-brand span{color:#fde047}.portal-site-header nav{display:flex;gap:clamp(1rem,2.4vw,2.5rem)}.portal-site-header nav a{font-size:.9rem;font-weight:700;white-space:nowrap}.portal-site-footer{background:linear-gradient(90deg,#0f766e,#134e4a);color:#fff;display:grid;gap:2rem;grid-template-columns:1fr 1fr;padding:2.5rem max(1.5rem,calc((100vw - 1200px)/2))}.portal-site-footer>div:last-child{text-align:right}.portal-site-footer p{color:#d5f5ed}.portal-site-footer a{color:#fff}@media(max-width:760px){.portal-site-header{align-items:flex-start;flex-direction:column;padding-bottom:1rem;padding-top:1rem}.portal-site-header nav{gap:.7rem;max-width:100%;overflow-x:auto;padding-top:.8rem}.portal-site-footer{grid-template-columns:1fr}.portal-site-footer>div:last-child{text-align:left}}
