:root{
  --bg:#ffffff;
  --text:#111827;          /* near-black */
  --muted:#4b5563;         /* gray-600 */
  --line:#e5e7eb;          /* gray-200 */
  --card:#f9fafb;          /* gray-50 */
  --header:#f3f4f6;        /* gray-100 */
  --accent:#1f3a8a;        /* deep navy */
  --accent-2:#991b1b;      /* deep red (optional) */
  --radius:14px;
  --max: 1100px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.45;
}

a{color:inherit;text-decoration:none}
a:hover{color:var(--accent)}

.container{max-width:var(--max); margin:0 auto; padding:0 24px;}
.header{
  background:var(--header);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:18px 0;
}
.brand{
  font-weight:700;
  letter-spacing:.2px;
}
.nav{
  display:flex;
  gap:14px;
  font-size:14px;
  color:var(--muted);
}
.nav a.active{color:var(--text); font-weight:600}
.nav .sep{color:#9ca3af}

.nav a{
  padding:6px 8px;
  border-radius:10px;
}
.nav a:hover{background:rgba(31,58,138,.08)}


.main{padding:34px 0 64px;}
.footer{
  background:var(--header);
  border-top:1px solid var(--line);
  color:var(--muted);
}
.footer-inner{padding:22px 0; font-size:12px;}

h1{font-size:34px; margin:0 0 10px;}
h2{font-size:22px; margin:26px 0 10px;}
p{margin:0 0 12px; color:var(--muted)}
.small{font-size:13px;color:var(--muted)}
.kicker{font-size:14px;color:var(--muted)}

.hero{
  background:var(--line);
  border-radius:var(--radius);
  padding:28px;
}
.hero h1{margin:0 0 10px; font-size:32px;}
.hero p{max-width:70ch}

/* ===== HERO IMAGE (FIXED SIZE WINDOW + CROP) =====
   Use in HTML:
   <div class="hero-media"><img src="images/hero.jpg" alt=""></div>
*/
.hero-media{
  border-radius:14px;
  overflow:hidden;
  margin-bottom:16px;
  background:#e5e7eb;
  border:1px solid rgba(0,0,0,.06);
  height:260px; /* controls visual size */
}
.hero-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;       /* crops instead of stretching */
  object-position:center;
}

/* OPTIONAL: if you used a different wrapper class name, this also works */
.hero-image{
  border-radius:14px;
  overflow:hidden;
  margin-bottom:16px;
  background:#e5e7eb;
  border:1px solid rgba(0,0,0,.06);
  height:260px;
}
.hero-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

.btn{
  display:inline-block;
  margin-top:14px;
  background:var(--accent);
  color:white;
  border:1px solid rgba(0,0,0,.08);
  padding:10px 14px;
  border-radius:10px;
  font-weight:600;
  font-size:14px;
}
.btn:hover{filter:brightness(0.95); color:white}
.btn.secondary{
  background:white;
  color:var(--accent);
  border:1px solid rgba(31,58,138,.25);
}
.btn.secondary:hover{background:#f8fafc}

.credbar{
  margin-top:16px;
  background:var(--card);
  border:1px solid var(--line);
  padding:10px 14px;
  border-radius:12px;
  font-size:13px;
  color:var(--muted);
  text-align:center;
}

.grid-2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:18px;
}
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
}
.card h3{margin:0 0 8px; font-size:18px;}
.card p{margin:0; color:var(--muted)}
.list{margin:0; padding-left:18px; color:var(--muted)}
.list li{margin:6px 0}

.project-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
  margin:14px 0;
}
.project-title{font-weight:700; margin:0 0 6px;}
.project-loc{font-size:13px; color:var(--muted); margin:0 0 10px;}
.project-scope{margin:0;color:var(--muted)}

.form label{display:block; font-size:13px; color:var(--muted); margin:14px 0 6px}
.input, textarea{
  width:100%;
  border:1px solid #d1d5db;
  border-radius:10px;
  padding:10px 12px;
  font-size:14px;
  outline:none;
  background:#fff;
}
textarea{min-height:160px; resize:vertical}
.form .hint{font-size:12px;color:#6b7280;margin-top:10px}
.notice{
  margin-top:12px;
  padding:10px 12px;
  border-radius:12px;
  border:1px dashed rgba(31,58,138,.35);
  color:var(--muted);
  background:#f8fafc;
  font-size:13px;
}

.img-placeholder{
  border:1px dashed #cbd5e1;
  background:#f8fafc;
  border-radius:14px;
  padding:22px;
  color:#64748b;
  font-size:13px;
}
.img-placeholder strong{color:#334155}

@media (max-width: 860px){
  /* FIXED: missing braces in your original */
  .header-inner{flex-direction:column; align-items:flex-start;}
  .nav{flex-wrap:wrap;}
  .nav .sep{display:none;}

  .grid-2{grid-template-columns:1fr}
  h1{font-size:28px}
  .hero h1{font-size:26px}

  /* slightly shorter image window on smaller screens */
  .hero-media, .hero-image{height:220px;}
}

@media (max-width: 520px){
  .container{padding:0 16px}
  .header-inner{padding:14px 0}
  .brand{font-size:18px; line-height:1.2}
  .nav{gap:6px}
  .nav a{padding:6px 10px; font-size:13px}
  .footer-inner{text-align:center; line-height:1.4; padding:18px 0; word-break:break-word}

  /* mobile image window */
  .hero-media, .hero-image{height:190px;}
}

/* large screens slightly taller */
@media (min-width: 1200px){
  .hero-media, .hero-image{height:300px;}
}

/* ==================================================
   BOXED CONTENT SECTIONS (Expertise, Services)
   ================================================== */
.section-box {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 20px;
}

.section-box h2 {
  margin-top: 0;
}

.section-box .list {
  margin-top: 8px;
}

/* ==================================================
   CENTERED "OUR APPROACH" SECTION
   ================================================== */
.approach-box {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  max-width: 720px;
  margin: 32px auto 0;   /* centers horizontally */
  text-align: center;
}

.approach-box h2 {
  margin-top: 0;
}

/* ==================================================
   CREDENTIAL BAR EMPHASIS (NYS / NICET)
   ================================================== */
.credbar {
  font-weight: 700;
  color: var(--accent);
}

/* ===== Mobile header alignment fix ===== */
@media (max-width: 520px){

  /* add breathing room to header content */
  .header .container{
    padding-left: 20px;
    padding-right: 16px;
  }

  /* optional: tiny nudge so brand doesn't hug edge */
  .brand{
    margin-left: 2px;
  }
}

/* ===== Mobile header: center the brand ===== */
@media (max-width: 520px){

  .header-inner{
    align-items: center;
  }

  .brand{
    width: 100%;
    text-align: center;
  }

  .nav{
    justify-content: center;
  }
}

.kicker-highlight {
  display: inline-block;
  margin-top: 6px;
  font-weight: 600;
  color: var(--accent, #1e3a8a);
}

html, body {
  height: 100%;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.main {
  flex: 1;
}

.section-box h2,
.section-box h3 {
  color: #1e3a8a; /* SAME as .btn background */
}

.em-blue {
  color: var(--accent);
  font-weight: 500;
}

.text-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 18px;
}

@media (max-width: 768px) {
  .text-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.flags-wrap {
  margin-bottom: 16px;
}

.flags-wrap img {
  width: 100%;
  max-width: 420px;
  height: auto;
  display: block;
}

/* Center flags image */
.flags-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 14px;
}

/* Center only the main section title */
.section-box > h2 {
  text-align: center;
}
