@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --blue-deep:#0E3A66;
  --blue:#1D5EA8;
  --blue-bright:#2E7BDB;
  --blue-tint:#EEF4FC;
  --blue-tint-2:#DCEAFB;
  --white:#FFFFFF;
  --ink:#16273D;
  --gray:#5B6B80;
  --line:rgba(14,58,102,0.12);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  background:var(--white);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{font-family:'Sora',sans-serif;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1160px;margin:0 auto;padding:0 28px;}
img{max-width:100%;display:block;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
}

/* NAV */
header{
  position:sticky;top:0;z-index:50;
  background:var(--white);
  border-bottom:1px solid var(--line);
}
.navbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 28px;max-width:1160px;margin:0 auto;
}
.brand{display:flex;align-items:center;gap:11px;}
.brand-logo{height:46px;width:auto;display:block;}
.brand-mark{
  width:38px;height:38px;border-radius:10px;
  background:linear-gradient(135deg,var(--blue),var(--blue-deep));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-family:'Sora',sans-serif;font-weight:700;font-size:16px;
  flex-shrink:0;
}
.brand-name{font-family:'Sora',sans-serif;font-weight:700;font-size:19px;color:var(--blue-deep);letter-spacing:-0.01em;}
.brand-tag{display:block;font-size:11px;letter-spacing:0.08em;color:var(--gray);text-transform:uppercase;margin-top:1px;}

nav.tabs{display:flex;gap:4px;align-items:center;background:var(--blue-tint);padding:5px;border-radius:12px;}
nav.tabs a{
  color:var(--blue-deep);opacity:0.72;font-size:14px;font-weight:600;
  padding:9px 16px;border-radius:8px;transition:all 0.2s ease;
}
nav.tabs a:hover{opacity:1;background:rgba(255,255,255,0.6);}
nav.tabs a.active{opacity:1;background:var(--white);box-shadow:0 1px 3px rgba(14,58,102,0.15);}

.nav-cta{
  background:var(--blue);color:#fff;
  padding:11px 20px;border-radius:9px;font-weight:600;font-size:13.5px;
  letter-spacing:0.01em;
}
.nav-cta:hover{background:var(--blue-deep);}
.nav-toggle{display:none;background:none;border:none;color:var(--blue-deep);font-size:26px;cursor:pointer;}

.nav-right{display:flex;align-items:center;gap:18px;}

@media (max-width:900px){
  nav.tabs{
    position:fixed;top:69px;left:0;right:0;background:var(--white);
    flex-direction:column;align-items:stretch;gap:2px;border-radius:0;
    max-height:0;overflow:hidden;transition:max-height 0.3s ease;
    border-bottom:1px solid var(--line);padding:0;
  }
  nav.tabs.open{max-height:320px;padding:10px;}
  nav.tabs a{width:100%;padding:14px 16px;}
  .nav-toggle{display:block;}
  .nav-cta{display:none;}
}

/* HERO */
.hero{
  background:linear-gradient(180deg,var(--blue-tint) 0%, var(--white) 100%);
  padding:76px 0 0;
  overflow:hidden;
}
.hero-inner{
  max-width:1160px;margin:0 auto;padding:0 28px 64px;
  display:grid;grid-template-columns:1.1fr 0.9fr;gap:56px;align-items:center;
}
.eyebrow{
  font-size:12.5px;letter-spacing:0.1em;font-weight:700;
  color:var(--blue);text-transform:uppercase;margin-bottom:16px;
}
.hero h1{
  font-size:clamp(36px,5vw,54px);font-weight:800;line-height:1.08;
  letter-spacing:-0.02em;color:var(--blue-deep);
}
.hero h1 span{color:var(--blue-bright);}
.hero p.lede{
  font-size:17px;color:var(--gray);max-width:480px;margin:20px 0 32px;
}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}
.btn{
  display:inline-block;padding:14px 26px;font-size:14.5px;font-weight:600;
  letter-spacing:0.01em;border-radius:10px;cursor:pointer;border:1px solid transparent;
  transition:transform 0.15s ease, background 0.2s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--blue);color:#fff;}
.btn-primary:hover{background:var(--blue-deep);}
.btn-ghost{border-color:var(--line);color:var(--blue-deep);background:#fff;}
.btn-ghost:hover{background:var(--blue-tint);}

.lane-graphic{position:relative;height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;}
.hero-logo{width:170px;height:auto;}
.lane-svg{width:100%;height:190px;}
.lane-path{fill:none;stroke:rgba(14,58,102,0.14);stroke-width:2;stroke-dasharray:6 8;}
.lane-path-active{
  fill:none;stroke:var(--blue-bright);stroke-width:2.5;
  stroke-dasharray:520;stroke-dashoffset:520;
  animation:draw 3s ease forwards 0.3s;
}
@keyframes draw{to{stroke-dashoffset:0;}}
.lane-dot{fill:var(--blue-deep);}
.lane-dot-end{fill:var(--blue-bright);}
.lane-label{font-size:11px;fill:var(--gray);letter-spacing:0.04em;font-family:'Inter',sans-serif;}

.hero-strip{border-top:1px solid var(--line);padding:20px 0;background:var(--white);}
.hero-strip .wrap{
  display:flex;gap:40px;flex-wrap:wrap;justify-content:space-between;
  font-size:12.5px;color:var(--gray);letter-spacing:0.02em;font-weight:600;
}

/* PAGE HEADER (for non-home pages) */
.page-header{
  background:linear-gradient(180deg,var(--blue-tint) 0%, var(--white) 100%);
  padding:56px 0 48px;
}
.page-header .eyebrow{margin-bottom:12px;}
.page-header h1{font-size:clamp(32px,4.2vw,46px);font-weight:800;color:var(--blue-deep);letter-spacing:-0.01em;}
.page-header p.lede{font-size:16px;color:var(--gray);max-width:560px;margin-top:14px;}

/* SECTIONS */
.section{padding:80px 0;}
.section-head{max-width:620px;margin-bottom:44px;}
.section h2{font-size:clamp(26px,3.4vw,36px);font-weight:800;letter-spacing:-0.01em;color:var(--blue-deep);}
.section p.deck{font-size:16px;color:var(--gray);margin-top:14px;}

.who-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.who-copy p{font-size:16px;color:var(--gray);margin-bottom:16px;max-width:480px;}
.who-copy p:last-child{margin-bottom:0;}
.feature-list{display:flex;flex-direction:column;gap:0;}
.feature{display:flex;gap:16px;padding:22px 0;border-top:1px solid var(--line);}
.feature:last-child{border-bottom:1px solid var(--line);}
.feature-icon{
  width:38px;height:38px;border-radius:9px;background:var(--blue-tint);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--blue);
  font-family:'Sora',sans-serif;font-weight:700;font-size:14px;
}
.feature h3{font-size:16.5px;font-weight:700;margin-bottom:5px;color:var(--ink);}
.feature p{font-size:14px;color:var(--gray);}

@media (max-width:900px){
  .who-grid{grid-template-columns:1fr;}
  .hero-inner{grid-template-columns:1fr;}
  .lane-graphic{height:220px;order:-1;}
}

/* TEAM */
.roster{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.roster-card{
  background:var(--white);border:1px solid var(--line);border-radius:16px;
  padding:28px 22px;display:flex;flex-direction:column;align-items:flex-start;gap:14px;
  transition:box-shadow 0.2s ease, transform 0.2s ease;
}
.roster-card:hover{box-shadow:0 10px 30px rgba(14,58,102,0.1);transform:translateY(-2px);}
.avatar{
  width:72px;height:72px;border-radius:50%;
  background:var(--blue-tint);
  display:flex;align-items:center;justify-content:center;
  font-family:'Sora',sans-serif;font-weight:700;font-size:18px;color:var(--blue);
  overflow:hidden;flex-shrink:0;
}
.avatar img{
  width:100%;height:100%;object-fit:cover;border-radius:50%;
}
.roster-card h3{font-size:16.5px;font-weight:700;color:var(--ink);}
.roster-role{font-size:12px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:0.04em;margin-top:2px;}
.roster-card p.bio{font-size:13.5px;color:var(--gray);line-height:1.55;}
.roster-contact{
  display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;
  color:var(--blue);padding-top:12px;border-top:1px solid var(--line);width:100%;
}

@media (max-width:900px){.roster{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.roster{grid-template-columns:1fr;}}

/* LOAD BOARD */
.board-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;margin-bottom:32px;}
.board-note{font-size:12.5px;color:var(--gray);display:flex;align-items:center;gap:8px;font-weight:600;}
.board-note .dot{width:7px;height:7px;border-radius:50%;background:var(--blue-bright);display:inline-block;animation:pulse 1.8s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.3;}}

.board-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.board-table th{
  text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:0.05em;
  color:var(--gray);font-weight:700;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--blue-tint);
}
.board-table td{padding:16px 18px;border-bottom:1px solid var(--line);font-size:14.5px;vertical-align:middle;}
.board-table tr:last-child td{border-bottom:none;}
.lane-cell{font-weight:700;color:var(--ink);}
.lane-cell .arrow{color:var(--blue-bright);margin:0 6px;}
.tag{
  display:inline-block;font-size:12px;font-weight:600;
  padding:4px 10px;border-radius:7px;background:var(--blue-tint);color:var(--blue-deep);
}
.req-btn{
  font-size:13px;font-weight:700;color:var(--blue);
  border:1px solid var(--blue);padding:9px 15px;border-radius:8px;
  background:transparent;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;
}
.req-btn:hover{background:var(--blue);color:#fff;}

@media (max-width:760px){.board-table{display:block;overflow-x:auto;white-space:nowrap;}}

/* CONTACT */
.contact{background:var(--blue-deep);color:#fff;}
.contact .eyebrow{color:var(--blue-bright);}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;}
.contact-info h2{font-size:clamp(26px,3.4vw,34px);margin-bottom:14px;color:#fff;}
.contact-info p{color:rgba(255,255,255,0.75);font-size:15.5px;margin-bottom:24px;max-width:420px;}
.contact-line{display:flex;gap:12px;align-items:center;margin-bottom:12px;font-size:15px;}
.contact-line span.label{font-size:11px;font-weight:700;color:var(--blue-bright);text-transform:uppercase;min-width:74px;letter-spacing:0.04em;}
form.inquiry{display:flex;flex-direction:column;gap:14px;}
form.inquiry input,form.inquiry textarea{
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.2);
  padding:13px 14px;color:#fff;font-family:'Inter',sans-serif;font-size:14px;border-radius:9px;
}
form.inquiry input::placeholder,form.inquiry textarea::placeholder{color:rgba(255,255,255,0.45);}
form.inquiry textarea{resize:vertical;min-height:100px;}
form.inquiry button{
  align-self:flex-start;background:#fff;color:var(--blue-deep);
  border:none;padding:14px 26px;font-weight:700;font-size:14px;border-radius:9px;cursor:pointer;
}
form.inquiry button:hover{background:var(--blue-tint);}

@media (max-width:860px){.contact-grid{grid-template-columns:1fr;}}

footer{background:var(--white);color:var(--gray);padding:26px 0;font-size:13px;border-top:1px solid var(--line);}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.footer-inner{align-items:center;}
.footer-brand{display:flex;align-items:center;gap:12px;}
.footer-logo{height:26px;width:auto;opacity:0.85;}

/* QUOTE FORM */
.quote-form{max-width:900px;}
.quote-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:20px;
}
.quote-field{display:flex;flex-direction:column;gap:7px;}
.quote-field-full{margin-bottom:28px;}
.quote-field label{
  font-size:12.5px;font-weight:700;color:var(--blue-deep);text-transform:uppercase;letter-spacing:0.03em;
}
.quote-field input,.quote-field select,.quote-field textarea{
  background:#fff;border:1px solid var(--line);padding:13px 14px;
  font-family:'Inter',sans-serif;font-size:14.5px;color:var(--ink);border-radius:9px;
}
.quote-field select{cursor:pointer;}
.quote-field textarea{resize:vertical;min-height:100px;}
.quote-field input:focus,.quote-field select:focus,.quote-field textarea:focus{
  outline:2px solid var(--blue-bright);outline-offset:1px;
}

@media (max-width:700px){
  .quote-grid{grid-template-columns:1fr;}
}
