/* ==========================================================================
   Marshal Green — Institutional Renewable Energy Development & Investment
   Shared stylesheet
   ========================================================================== */

:root{
  --navy: #0B1F3A;
  --navy-deep: #071427;
  --navy-mid: #14335C;
  --green: #1F5C46;
  --green-mid: #2E7D57;
  --green-pale: #E7EFEA;
  --gold: #A9884F;
  --white: #FFFFFF;
  --grey-100: #F6F7F6;
  --grey-200: #ECEEED;
  --grey-300: #D8DCDA;
  --text: #16202B;
  --text-muted: #55636E;
  --text-on-dark: #E9EEF2;
  --text-on-dark-muted: #AEBBC7;
  --radius: 2px;
  --max-width: 1180px;
  --serif: 'Source Serif Pro', Georgia, 'Times New Roman', serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--sans);
  color: var(--text);
  background: var(--white);
  line-height: 1.6;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
h1,h2,h3,h4{
  font-family: var(--serif);
  font-weight: 600;
  line-height: 1.25;
  margin: 0 0 0.6em;
  color: var(--navy);
}
p{ margin: 0 0 1.1em; color: var(--text-muted); }
.container{
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 32px;
}
section{ padding: 88px 0; }
.section-tight{ padding: 56px 0; }
.eyebrow{
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--green-mid);
  margin-bottom: 14px;
  display: inline-block;
}
.section-head{ max-width: 720px; margin-bottom: 48px; }
.section-head h2{ font-size: 32px; }
.section-head p.lead{ font-size: 17px; color: var(--text-muted); margin:0; }

/* ---------------- Header / Nav ---------------- */
header.site-header{
  position: sticky; top:0; z-index: 100;
  background: rgba(11,31,58,0.97);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.nav-wrap{
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 32px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  height: 76px;
}
.brand{ display:flex; align-items:center; gap:10px; }
.brand svg{ width:30px; height:30px; }
.brand-plate{
  display:inline-flex;
  align-items:center;
  background: var(--white);
  padding: 7px 14px;
  border-radius: 4px;
}
.brand-logo{ height: 30px; width:auto; display:block; }
.brand-name{
  font-family: var(--serif);
  color: var(--white);
  font-size: 19px;
  letter-spacing: 0.02em;
  font-weight: 600;
}
.brand-name small{
  display:block;
  font-family: var(--sans);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  color: var(--text-on-dark-muted);
  font-weight: 500;
  text-transform: uppercase;
}
nav.main-nav{ display:flex; align-items:center; gap: 2px; }
nav.main-nav > ul{
  display:flex; align-items:center; list-style:none; margin:0; padding:0; gap: 4px;
}
nav.main-nav > ul > li{ position: relative; }
nav.main-nav a.nav-link{
  display:block;
  color: var(--text-on-dark);
  font-size: 13.5px;
  font-weight: 500;
  padding: 12px 13px;
  letter-spacing: 0.01em;
  border-radius: var(--radius);
}
nav.main-nav a.nav-link:hover, nav.main-nav li.active > a.nav-link{ color: var(--white); background: rgba(255,255,255,0.07); }
.has-dropdown > .dropdown{
  display:none;
  position:absolute;
  top: 100%; left:0;
  background: var(--white);
  min-width: 240px;
  box-shadow: 0 18px 40px rgba(7,20,39,0.18);
  border-top: 2px solid var(--green-mid);
  padding: 8px 0;
}
.has-dropdown:hover > .dropdown, .has-dropdown:focus-within > .dropdown{ display:block; }
.dropdown a{
  display:block;
  padding: 11px 20px;
  font-size: 13.5px;
  color: var(--navy);
  font-weight: 500;
}
.dropdown a:hover{ background: var(--grey-100); color: var(--green); }
.cta-header{
  background: var(--green-mid);
  color: var(--white) !important;
  padding: 10px 18px !important;
  margin-left: 10px;
  font-weight: 600 !important;
}
.cta-header:hover{ background: var(--green); color: var(--white) !important; }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:8px; }
.nav-toggle span{ display:block; width:22px; height:2px; background:var(--white); margin:5px 0; }

/* ---------------- Hero ---------------- */
.hero{
  position: relative;
  background: linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 55%, var(--navy-mid) 100%);
  color: var(--white);
  overflow: hidden;
  padding: 120px 0 100px;
}
.hero .container{ position: relative; z-index: 2; }
.hero-graphic{
  position:absolute; inset:0; z-index:1; opacity:0.5;
}
.hero .eyebrow{ color: #8FD6B4; }
.hero h1{
  color: var(--white);
  font-size: 46px;
  max-width: 780px;
  margin-bottom: 22px;
}
.hero p.lead{
  color: var(--text-on-dark-muted);
  font-size: 18px;
  max-width: 600px;
  margin-bottom: 36px;
}
.btn-row{ display:flex; gap:16px; flex-wrap: wrap; }
.btn{
  display:inline-block;
  padding: 14px 26px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: var(--radius);
  border: 1px solid transparent;
  cursor:pointer;
}
.btn-primary{ background: var(--green-mid); color: var(--white); }
.btn-primary:hover{ background: var(--green); }
.btn-outline{ background: transparent; color: var(--white); border-color: rgba(255,255,255,0.45); }
.btn-outline:hover{ border-color: var(--white); }
.btn-dark{ background: var(--navy); color: var(--white); }
.btn-dark:hover{ background: var(--navy-deep); }

/* page (non-home) hero, smaller */
.page-hero{
  background: linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 100%);
  color: var(--white);
  padding: 74px 0 64px;
}
.page-hero .eyebrow{ color:#8FD6B4; }
.page-hero h1{ color: var(--white); font-size: 36px; max-width: 760px; }
.page-hero p.lead{ color: var(--text-on-dark-muted); font-size: 16.5px; max-width: 640px; margin:0; }
.breadcrumb{ font-size: 12.5px; color: var(--text-on-dark-muted); margin-bottom: 18px; }
.breadcrumb a{ color: var(--text-on-dark-muted); }
.breadcrumb a:hover{ color: var(--white); }

/* ---------------- Grids / Cards ---------------- */
.grid{ display:grid; gap: 28px; }
.grid-2{ grid-template-columns: repeat(2, 1fr); }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-4{ grid-template-columns: repeat(4, 1fr); }
.grid-5{ grid-template-columns: repeat(5, 1fr); }

.card{
  background: var(--white);
  border: 1px solid var(--grey-200);
  padding: 30px 26px;
  border-radius: var(--radius);
}
.card h3{ font-size: 18.5px; margin-bottom: 10px; }
.card p{ font-size: 14.5px; margin-bottom: 0; }
.card .num{
  font-family: var(--serif);
  color: var(--green-mid);
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 14px;
  display:block;
}
.card-link{
  display:inline-block; margin-top:14px; font-size:13.5px; font-weight:600; color: var(--green-mid);
  border-bottom: 1px solid currentColor;
}

.bg-alt{ background: var(--grey-100); }
.bg-navy{ background: var(--navy); color: var(--text-on-dark); }
.bg-navy h2, .bg-navy h3, .bg-navy h4{ color: var(--white); }
.bg-navy p{ color: var(--text-on-dark-muted); }

/* Lifecycle */
.lifecycle{
  display:flex;
  overflow-x:auto;
  gap: 0;
  counter-reset: step;
  border-top: 1px solid var(--grey-300);
  border-bottom: 1px solid var(--grey-300);
}
.lifecycle-step{
  flex: 1 0 200px;
  padding: 26px 22px;
  border-right: 1px solid var(--grey-300);
  position: relative;
}
.lifecycle-step:last-child{ border-right:none; }
.lifecycle-step .step-num{
  counter-increment: step;
  font-family: var(--serif);
  color: var(--green-mid);
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 10px;
  display:block;
}
.lifecycle-step .step-num::before{ content: counter(step, decimal-leading-zero) " / "; }
.lifecycle-step h4{ font-size: 15.5px; margin-bottom: 8px; }
.lifecycle-step p{ font-size: 13.5px; margin:0; }

/* Detail lifecycle blocks (development page) */
.detail-step{
  display:grid;
  grid-template-columns: 90px 1fr;
  gap: 28px;
  padding: 34px 0;
  border-bottom: 1px solid var(--grey-200);
}
.detail-step:last-child{ border-bottom:none; }
.detail-step .tag{
  font-family: var(--serif); color: var(--green-mid); font-size: 26px; font-weight:700;
}
.detail-step h3{ font-size: 20px; margin-bottom: 8px; }
.detail-cols{ display:grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 14px; }
.detail-cols h5{
  margin:0 0 8px; font-size: 12px; text-transform:uppercase; letter-spacing:0.08em; color: var(--navy); font-family: var(--sans); font-weight:700;
}
.detail-cols p{ font-size: 14px; margin:0; }

/* Map / markets */
.market-card{
  border: 1px solid var(--grey-200);
  padding: 28px 26px;
}
.market-card h3{ font-size: 19px; margin-bottom: 6px; }
.market-card .role{ font-size: 12.5px; color: var(--green-mid); font-weight:700; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:12px; display:block; }

/* Table-ish list */
.plain-list{ list-style:none; margin:0; padding:0; }
.plain-list li{
  padding: 16px 0; border-bottom: 1px solid var(--grey-200);
  font-size: 15px; color: var(--text-muted);
  display:flex; gap: 14px;
}
.plain-list li strong{ color: var(--navy); min-width: 210px; flex-shrink:0; }

/* Quote / disclaimer strip */
.notice{
  border-left: 3px solid var(--green-mid);
  background: var(--grey-100);
  padding: 20px 24px;
  font-size: 14px;
  color: var(--text-muted);
  margin: 8px 0 0;
}

/* Contact */
.contact-grid{ display:grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items:start; }
.inquiry-list{ display:grid; gap: 14px; margin-bottom: 36px; }
.inquiry-item{
  border: 1px solid var(--grey-200); padding: 18px 20px; border-radius: var(--radius);
}
.inquiry-item h4{ font-size: 15px; margin-bottom:4px; }
.inquiry-item p{ font-size: 13.5px; margin:0; }
form.contact-form{ display:grid; gap:16px; }
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
label{ font-size: 12.5px; font-weight:600; color: var(--navy); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:6px; display:block; }
input, select, textarea{
  width:100%; padding: 12px 14px; border:1px solid var(--grey-300); font-family: var(--sans); font-size: 14.5px; border-radius: var(--radius); background: var(--white); color: var(--text);
}
textarea{ min-height: 120px; resize: vertical; }
input:focus, select:focus, textarea:focus{ outline:none; border-color: var(--green-mid); }
.office-list{ display:grid; gap: 22px; margin-top: 28px; }
.office-item strong{ display:block; color: var(--navy); font-size:15px; margin-bottom:2px; }
.office-item span{ font-size: 13.5px; color: var(--text-muted); }

/* CTA band */
.cta-band{
  background: var(--navy);
  color: var(--white);
  padding: 64px 0;
  text-align:center;
}
.cta-band h2{ color:var(--white); margin-bottom:16px; }
.cta-band p{ color: var(--text-on-dark-muted); max-width: 560px; margin: 0 auto 30px; }
.cta-band .btn-row{ justify-content:center; }

/* Footer */
footer.site-footer{ background: var(--navy-deep); color: var(--text-on-dark-muted); padding: 64px 0 28px; }
.footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 48px; }
.footer-grid h5{ color: var(--white); font-size: 12.5px; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:18px; font-family: var(--sans); font-weight:700; }
.footer-grid ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.footer-grid a{ font-size: 13.5px; color: var(--text-on-dark-muted); }
.footer-grid a:hover{ color: var(--white); }
.footer-brand p{ font-size: 13.5px; color: var(--text-on-dark-muted); max-width: 300px; }
.footer-bottom{
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 24px;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
  font-size: 12.5px; color: #7C8B98;
}
.footer-bottom a{ color:#7C8B98; }
.footer-bottom a:hover{ color:#fff; }

/* Utility */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.mb-0{ margin-bottom:0; }

/* Responsive */
@media (max-width: 980px){
  .grid-4, .grid-5, .grid-3{ grid-template-columns: repeat(2,1fr); }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .contact-grid{ grid-template-columns: 1fr; }
  .detail-cols{ grid-template-columns: 1fr; }
}
@media (max-width: 760px){
  nav.main-nav{
    position: fixed; top:76px; left:0; right:0; bottom:0;
    background: var(--navy-deep);
    flex-direction: column; align-items: stretch;
    padding: 20px; display:none; overflow-y:auto;
  }
  nav.main-nav.open{ display:flex; }
  nav.main-nav > ul{ flex-direction:column; align-items: stretch; gap:0; }
  .has-dropdown > .dropdown{ position:static; box-shadow:none; border-top:none; padding-left: 14px; background:transparent; display:block; }
  .has-dropdown:hover > .dropdown{ display:block; }
  .dropdown a{ color: var(--text-on-dark-muted); }
  .nav-toggle{ display:block; }
  .cta-header{ margin: 12px 0 0; text-align:center; }
  .grid-2, .grid-3, .grid-4, .grid-5{ grid-template-columns: 1fr; }
  .hero h1{ font-size: 32px; }
  .he
/* ---------------- Sponsor / Group branding ---------------- */
.footer-sponsor{
  display:flex; align-items:center; gap:22px; flex-wrap:wrap;
  padding: 24px 0 32px;
  border-top: 1px solid rgba(255,255,255,0.1);
  margin-top: -8px;
}
.footer-sponsor .brand-plate{ padding: 7px 14px; }
.footer-sponsor .sponsor-logo{ height: 20px; width:auto; display:block; }
.footer-sponsor p{ font-size: 13px; max-width: 520px; margin:0; color: var(--text-on-dark-muted); }

.sponsor-card{
  display:flex; align-items:center; justify-content:center; padding: 40px 30px;
}
.sponsor-logo-inline{ height: 20px; width:auto; }

.sponsor-strip{ background: var(--grey-100); border-bottom: 1px solid var(--grey-200); }
.sponsor-strip-inner{
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
}
.sponsor-strip-label{
  font-size: 11.5px; text-transform:uppercase; letter-spacing:0.1em; font-weight:700; color: var(--text-muted);
}
.sponsor-strip-inner img{ height: 20px; width:auto; }
.sponsor-strip-copy{ font-size: 13.5px; color: var(--text-muted); flex:1; min-width:220px; }

@media (max-width: 760px){
  .sponsor-strip-inner{ justify-content:center; text-align:center; }
  .footer-sponsor{ flex-direction:column; align-items:flex-start; }
}
