/* ============================================================
   TCT Holdings — Shared Stylesheet
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,480;0,9..144,560;0,9..144,650;1,9..144,480&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --navy:#0E1626;
  --navy-2:#16213A;
  --navy-line:#2A3750;
  --warm-white:#F7F3EA;
  --paper:#FDFBF6;
  --ink:#13181F;
  --ink-soft:#545E6B;
  --fog:#C9D2DE;
  --gold:#C6A15B;
  --gold-deep:#8C6D2F;
  --gold-soft:#E4D3AC;
  --tint:#F2EBDA;
  --tint-line:rgba(19,24,31,.10);

  --font-display:'Fraunces', serif;
  --font-body:'IBM Plex Sans', -apple-system, sans-serif;
  --font-mono:'IBM Plex Mono', ui-monospace, monospace;

  --max-w:1180px;
  --radius:4px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--gold); outline-offset:2px;
}
body{
  margin:0;
  background:var(--warm-white);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block;}
a{color:inherit;}

.wrap{max-width:var(--max-w); margin:0 auto; padding:0 24px;}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:560;
  line-height:1.12;
  margin:0 0 .5em;
  color:inherit;
}
h1{font-size:clamp(2.4rem, 5vw, 4.1rem); letter-spacing:-0.01em;}
h2{font-size:clamp(1.7rem, 3.2vw, 2.5rem); letter-spacing:-0.01em;}
h3{font-size:1.3rem;}
p{margin:0 0 1em;}
em{font-style:italic; color:var(--gold-deep);}
.on-dark em{color:var(--gold);}

.eyebrow{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold-deep);
  display:inline-flex;
  align-items:center;
  gap:.5em;
  margin-bottom:1.1em;
  font-weight:500;
}
.on-dark .eyebrow{color:var(--gold);}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-family:var(--font-mono);
  font-size:.82rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none;
  padding:.9em 1.5em;
  border-radius:var(--radius);
  border:1px solid transparent;
  cursor:pointer;
  transition:all .15s ease;
  font-weight:500;
}
.btn-gold{background:var(--gold); color:var(--navy); border-color:var(--gold);}
.btn-gold:hover{background:var(--gold-deep); border-color:var(--gold-deep); color:var(--warm-white);}
.btn-outline{background:transparent; color:var(--ink); border-color:var(--ink-soft);}
.btn-outline:hover{border-color:var(--ink); background:rgba(19,24,31,.04);}
.btn-outline-dark{background:transparent; color:var(--warm-white); border-color:var(--navy-line);}
.btn-outline-dark:hover{border-color:var(--gold); color:var(--gold);}
.btn-row{display:flex; flex-wrap:wrap; gap:.9em; margin-top:1.6em;}

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(14,22,38,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--navy-line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 24px; max-width:var(--max-w); margin:0 auto;
}
.logo-link{display:inline-flex; align-items:center; text-decoration:none;}
.logo-img{height:40px; width:auto; display:block;}
@media (max-width:500px){.logo-img{height:34px;}}
.logo{
  font-family:var(--font-display);
  font-weight:650;
  font-size:1.25rem;
  color:var(--warm-white);
  text-decoration:none;
  letter-spacing:-.01em;
}
.logo span{color:var(--gold);}
.nav-links{
  display:flex; gap:1.7em; list-style:none; margin:0; padding:0;
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.03em;
}
.nav-links a{
  text-decoration:none; color:var(--fog); text-transform:uppercase;
  padding:.4em 0; border-bottom:1px solid transparent; transition:all .15s ease;
}
.nav-links a:hover, .nav-links a.active{color:var(--gold); border-bottom-color:var(--gold);}
.has-submenu.open-active > .submenu-trigger{color:var(--gold); border-bottom-color:var(--gold);}
.header-cta{display:flex; align-items:center; gap:1.4em;}
.nav-toggle{display:none; background:none; border:none; color:var(--warm-white); font-size:1.6rem; cursor:pointer; min-width:44px; min-height:44px;}

/* Veteran Workforce submenu */
.has-submenu{position:relative;}
.submenu-trigger .caret{font-size:.6rem; margin-left:.2em;}
.submenu{
  list-style:none; margin:0; padding:.5em 0;
  position:absolute; top:100%; left:0; min-width:200px;
  background:var(--navy-2); border:1px solid var(--navy-line); border-radius:var(--radius);
  box-shadow:0 12px 24px rgba(0,0,0,.35);
  opacity:0; visibility:hidden; transform:translateY(4px);
  transition:opacity .15s ease, transform .15s ease, visibility .15s;
  z-index:200;
}
.has-submenu:hover .submenu,
.has-submenu:focus-within .submenu,
.has-submenu.open .submenu{
  opacity:1; visibility:visible; transform:translateY(0);
}
.submenu li{width:100%;}
.submenu a{
  display:block; padding:.7em 1.1em; color:var(--fog); text-decoration:none;
  font-family:var(--font-mono); font-size:.76rem; text-transform:uppercase; letter-spacing:.03em;
  border-bottom:none;
}
.submenu a:hover, .submenu a.active{color:var(--gold); background:rgba(198,161,91,.08);}
.submenu-toggle{display:none;}

@media (max-width:900px){
  .submenu{
    position:static; opacity:1; visibility:visible; transform:none; box-shadow:none;
    background:transparent; border:none; border-radius:0; padding:0; display:none;
  }
  .has-submenu.open .submenu{display:block;}
  .submenu a{padding:.8em 24px .8em 40px; border-bottom:1px solid var(--navy-line);}
}

@media (max-width:900px){
  .nav-links{
    display:none; position:absolute; top:100%; left:0; right:0;
    background:var(--navy-2); flex-direction:column; gap:0;
    border-bottom:1px solid var(--navy-line);
  }
  .nav-links.open{display:flex;}
  .nav-links a{padding:1em 24px; width:100%; border-bottom:1px solid var(--navy-line);}
  .nav-toggle{display:block;}
  .header-cta .btn-gold{display:none;}
  .header-cta.mobile-show .btn-gold{display:inline-flex;}
  .has-submenu{display:flex; flex-direction:column;}
  .submenu-trigger{border-bottom:1px solid var(--navy-line) !important;}
  .submenu-toggle{
    position:absolute; right:0; top:0; height:52px; width:56px;
    background:none; border:none; color:var(--fog); font-size:1rem; cursor:pointer;
    display:block;
  }
}

/* ---------- Hero (dark) ---------- */
.hero{
  background:linear-gradient(180deg, var(--navy) 0%, #101a2c 100%);
  color:var(--warm-white);
  padding:88px 0 64px;
}
.hero .wrap{max-width:900px;}
.hero p.lede{font-size:1.15rem; color:var(--fog); max-width:640px;}

/* ---------- Status Track (signature element) ---------- */
.status-track{
  margin-top:2.4em;
  padding-top:1.8em;
  border-top:1px solid var(--navy-line);
}
.status-track .label{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--fog); margin-bottom:1em;
}
.status-steps{display:flex; align-items:center; width:100%;}
.status-step{display:flex; flex-direction:column; align-items:flex-start; flex:1; position:relative;}
.status-step .node{
  width:12px; height:12px; border-radius:50%;
  background:var(--navy-2); border:2px solid var(--navy-line);
  margin-bottom:.6em;
}
.status-step.done .node, .status-step.active .node{background:var(--gold); border-color:var(--gold);}
.status-step .connector{
  position:absolute; top:5px; left:50%; width:100%; height:2px; background:var(--navy-line); z-index:0;
}
.status-step.done .connector{background:var(--gold);}
.status-step:last-child .connector{display:none;}
.status-step .node{z-index:1;}
.status-step .step-label{font-family:var(--font-mono); font-size:.72rem; color:var(--fog); letter-spacing:.02em;}
.status-step.active .step-label{color:var(--gold); font-weight:500;}
.status-track.compact{margin-top:1.6em; padding-top:1.2em;}

@media (max-width:640px){
  .status-steps{flex-direction:column; align-items:flex-start; gap:1.2em;}
  .status-step .connector{display:none;}
}

/* ---------- Sections ---------- */
section{padding:72px 0;}
section.tight{padding:48px 0;}
.section-head{max-width:680px; margin-bottom:2.6em;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

.on-navy{background:var(--navy); color:var(--warm-white);}
.on-navy .ink-soft, .on-navy p{color:var(--fog);}
.on-panel{background:var(--navy-2); color:var(--warm-white);}
.on-paper{background:var(--paper);}
.on-tint{background:var(--tint);}

.ink-soft{color:var(--ink-soft);}

/* ---------- Grid / Cards ---------- */
.grid{display:grid; gap:1.6em;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:900px){ .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;} }

.card{
  background:var(--paper);
  border:1px solid rgba(19,24,31,.09);
  border-radius:var(--radius);
  padding:1.8em;
}
.card.on-navy-card{background:var(--navy-2); border-color:var(--navy-line);}
.card h3{margin-bottom:.4em;}
.card .tag, .pathway-card .tag, .founding-panel .tag{
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gold-deep); margin-bottom:.8em; display:inline-block;
}
.on-navy-card .tag{color:var(--gold);}


/* ---------- Event card ---------- */
.event-card{
  background:var(--navy-2); border:1px solid var(--navy-line); border-radius:var(--radius);
  padding:2em; color:var(--warm-white);
}
.event-fields{display:grid; grid-template-columns:1fr 1fr; gap:1em 2em; margin:1.4em 0;}
.event-field .k{font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--fog);}
.event-field .v{margin-top:.3em; font-size:1rem;}
.placeholder{color:var(--gold-soft); font-style:italic;}
@media (max-width:560px){.event-fields{grid-template-columns:1fr;}}

/* ---------- FAQ accordion ---------- */
.faq-item{border-bottom:1px solid rgba(19,24,31,.12); padding:1.2em 0;}
.faq-item summary{
  cursor:pointer; font-family:var(--font-body); font-weight:600; font-size:1rem;
  display:flex; justify-content:space-between; align-items:center; list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+'; font-family:var(--font-mono); font-size:1.3rem; color:var(--gold-deep); transition:transform .15s ease;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item .a{margin-top:.8em; color:var(--ink-soft);}
.coming-soon{font-family:var(--font-mono); font-size:.8rem; color:var(--gold-deep); font-style:normal;}

/* ---------- Forms ---------- */
form{max-width:640px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.2em;}
.form-grid .full{grid-column:1/-1;}
@media (max-width:640px){.form-grid{grid-template-columns:1fr;}}
label{
  display:block; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-soft); margin-bottom:.5em;
}
input, select, textarea{
  width:100%; font-family:var(--font-body); font-size:.95rem; padding:.8em .9em;
  border:1px solid rgba(19,24,31,.2); border-radius:var(--radius); background:var(--paper); color:var(--ink);
}
.on-navy input, .on-navy select, .on-navy textarea{background:var(--navy); border-color:var(--navy-line); color:var(--warm-white);}
input:focus, select:focus, textarea:focus{outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold);}
.field{margin-bottom:1.2em;}
.form-note{font-size:.82rem; color:var(--ink-soft); margin-top:1.4em;}
.on-navy .form-note{color:var(--fog);}
.form-success{
  display:none; background:var(--gold-soft); color:var(--navy); padding:1.2em 1.4em;
  border-radius:var(--radius); font-size:.92rem; margin-top:1.2em;
}
.form-success.show{display:block;}
fieldset{border:none; padding:0; margin:0 0 1.2em;}
legend{font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.6em; padding:0;}
.radio-row, .check-row{display:flex; flex-wrap:wrap; gap:.6em;}
.radio-row label, .check-row label{
  display:flex; align-items:center; gap:.5em; font-family:var(--font-body); text-transform:none;
  letter-spacing:0; font-size:.88rem; background:rgba(19,24,31,.04); padding:.5em .9em; border-radius:20px;
  border:1px solid rgba(19,24,31,.14); cursor:pointer;
}
.on-navy .radio-row label, .on-navy .check-row label{background:var(--navy); border-color:var(--navy-line); color:var(--fog);}
.radio-row input, .check-row input{width:auto;}

/* ---------- Portfolio / conversion panels ---------- */
.panel-3{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4em;}
@media (max-width:960px){.panel-3{grid-template-columns:1fr;}}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy); color:var(--fog); padding:56px 0 28px; border-top:1px solid var(--navy-line);}
.footer-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:2.4em; margin-bottom:2.4em;}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.footer-grid{grid-template-columns:1fr; gap:1.8em;}}
.footer-grid h4{color:var(--warm-white); font-family:var(--font-mono); font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:1em;}
.footer-grid ul{list-style:none; margin:0; padding:0;}
.footer-grid li{margin-bottom:.6em;}
.footer-grid a{text-decoration:none; color:var(--fog); font-size:.9rem;}
.footer-grid a:hover{color:var(--gold);}
.footer-bottom{
  border-top:1px solid var(--navy-line); padding-top:1.6em; display:flex; justify-content:space-between;
  flex-wrap:wrap; gap:1em; font-size:.78rem; font-family:var(--font-mono); color:#7C8AA0;
}
.footer-bottom a{color:#7C8AA0; text-decoration:underline;}

/* ---------- Utility ---------- */
.mt-0{margin-top:0;}
.divider{border:none; border-top:1px solid rgba(19,24,31,.12); margin:2.6em 0;}
.on-navy .divider{border-top-color:var(--navy-line);}
.pill{
  display:inline-block; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.06em;
  text-transform:uppercase; background:rgba(198,161,91,.15); color:var(--gold-deep);
  padding:.35em .8em; border-radius:20px; margin:.2em .3em .2em 0;
}
.on-navy .pill{background:rgba(198,161,91,.14); color:var(--gold);}
.list-check{list-style:none; padding:0; margin:0;}
.list-check li{padding-left:1.6em; position:relative; margin-bottom:.9em;}
.list-check li::before{content:'—'; position:absolute; left:0; color:var(--gold-deep); font-family:var(--font-mono);}
.on-navy .list-check li::before{color:var(--gold);}

ol.pathway{counter-reset:step; list-style:none; padding:0; margin:0;}
ol.pathway li{
  counter-increment:step; position:relative; padding-left:3.2em; margin-bottom:1.6em; min-height:2em;
}
ol.pathway li::before{
  content:counter(step); position:absolute; left:0; top:-.1em; font-family:var(--font-mono);
  font-size:.85rem; color:var(--navy); background:var(--gold); width:2.2em; height:2.2em; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-weight:600;
}

.breadcrumb{font-family:var(--font-mono); font-size:.75rem; color:var(--gold); text-transform:uppercase; letter-spacing:.06em; margin-bottom:1em; display:block;}

.two-col{display:grid; grid-template-columns:1fr 1fr; gap:3em; align-items:start;}
@media (max-width:860px){.two-col{grid-template-columns:1fr;}}

/* ---------- Key Events calendar ---------- */
.events-layout{display:grid; grid-template-columns:1fr 1.1fr; gap:2.4em; align-items:start;}
@media (max-width:860px){.events-layout{grid-template-columns:1fr;}}

.cal-card{background:var(--navy-2); border:1px solid var(--navy-line); border-radius:var(--radius); padding:1.8em;}
.cal-month{
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.2em;
}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px; text-align:center;}
.cal-weekday{font-family:var(--font-mono); font-size:.62rem; letter-spacing:.05em; color:var(--fog); padding-bottom:.4em; text-transform:uppercase;}
.cal-cell{
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:.82rem; color:var(--fog); border-radius:50%;
  position:relative;
}
.cal-cell.empty{visibility:hidden;}
.cal-cell.target{
  background:transparent; color:var(--gold); font-weight:600;
  border:2px dashed var(--gold);
}
.cal-legend{margin-top:1.2em; font-family:var(--font-mono); font-size:.72rem; color:var(--fog); display:flex; align-items:center; gap:.6em;}
.cal-legend .swatch{width:14px; height:14px; border-radius:50%; border:2px dashed var(--gold); display:inline-block;}

.events-list{list-style:none; margin:0; padding:0;}
.event-list-item{
  display:flex; gap:1.2em; padding:1.2em 0; border-bottom:1px solid var(--navy-line);
}
.event-list-item:last-child{border-bottom:none;}
.event-list-item .when{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.05em; text-transform:uppercase;
  color:var(--gold); min-width:9em; flex-shrink:0; padding-top:.2em;
}
.event-list-item.pending .when{color:var(--fog);}
.event-list-item h4{margin:0 0 .3em; font-family:var(--font-body); font-weight:600; font-size:1rem; color:var(--warm-white);}
.event-list-item p{margin:0; font-size:.88rem; color:var(--fog);}

/* ---------- Founder note ---------- */
.founder-note{
  background:var(--navy-2); border:1px solid var(--navy-line); border-radius:var(--radius);
  padding:2.6em; position:relative;
}
.founder-note .mark{
  font-family:var(--font-display); font-size:4rem; line-height:1; color:var(--gold);
  opacity:.5; margin-bottom:-.3em; display:block;
}
.founder-note blockquote{
  margin:0; font-family:var(--font-display); font-style:italic; font-weight:480;
  font-size:1.25rem; line-height:1.5; color:var(--warm-white);
}
.founder-note .sig{
  margin-top:1.6em; font-family:var(--font-mono); font-size:.78rem; letter-spacing:.04em;
  color:var(--gold); text-transform:uppercase;
}

.img-frame{
  background:var(--navy-2); border:1px dashed var(--navy-line); border-radius:var(--radius);
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; color:var(--fog);
  font-family:var(--font-mono); font-size:.78rem; text-align:center; padding:1em;
}
.img-frame.light{background:#EDE7D8; border-color:rgba(19,24,31,.15); color:var(--ink-soft);}

/* ---------- Value chain panel (replaces homepage photo placeholder) ---------- */
.value-chain{
  background:var(--navy); border-radius:var(--radius); padding:2.4em 2em;
  display:flex; flex-direction:column; gap:0;
}
.value-chain-item{
  display:flex; gap:1.1em; align-items:flex-start; position:relative; padding-bottom:1.8em;
}
.value-chain-item:last-child{padding-bottom:0;}
.value-chain-item .node-col{display:flex; flex-direction:column; align-items:center;}
.value-chain-item .node{width:12px; height:12px; border-radius:50%; background:var(--gold); flex-shrink:0;}
.value-chain-item .line{width:2px; flex:1; background:var(--navy-line); margin-top:.3em;}
.value-chain-item:last-child .line{display:none;}
.value-chain-item h4{
  margin:0 0 .3em; font-family:var(--font-mono); font-size:.78rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold);
}
.value-chain-item p{margin:0; font-size:.9rem; color:var(--fog); line-height:1.5;}

.brand-lockup{
  background:#000;
  border:1px solid var(--gold-soft);
  border-radius:var(--radius);
  padding:2.2em;
  display:flex;
  align-items:center;
  justify-content:center;
}
.brand-lockup img{width:100%; max-width:340px; height:auto; display:block;}

/* ---------- TCT Opportunity Engine (connected-system diagram) ---------- */
.engine-wrap{max-width:900px; margin:0 auto;}
.engine-grid{
  display:grid;
  grid-template-columns: 1fr 44px 1.15fr 44px 1fr;
  grid-template-rows: auto 44px auto 44px auto;
  grid-template-areas:
    ".    .    top    .    ."
    ".    .    connTop .   ."
    "left connLeft hub connRight right"
    ".    .    connBottom . ."
    ".    .    bottom .    .";
  align-items:center;
  gap:0;
}
.engine-node{
  background:var(--paper);
  border:1px solid rgba(19,24,31,.10);
  border-radius:var(--radius);
  padding:1.3em 1.4em;
  text-align:center;
}
.engine-node h4{
  font-family:var(--font-mono); font-size:.76rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gold-deep); margin:0 0 .5em;
}
.engine-node p{margin:0; font-size:.85rem; color:var(--ink-soft); line-height:1.5;}
.engine-top{grid-area:top;}
.engine-right{grid-area:right;}
.engine-bottom{grid-area:bottom;}
.engine-left{grid-area:left;}

.engine-hub{
  grid-area:hub;
  background:var(--navy);
  border-radius:50%;
  aspect-ratio:1;
  width:100%;
  max-width:190px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:1em;
  border:2px solid var(--gold);
  box-shadow:0 0 0 6px rgba(198,161,91,.10);
}
.engine-hub .hub-label{
  font-family:var(--font-display); font-weight:600; font-size:1.15rem; color:var(--warm-white); line-height:1.15;
}
.engine-hub .hub-sub{
  font-family:var(--font-mono); font-size:.66rem; letter-spacing:.04em; color:var(--gold);
  margin-top:.5em; line-height:1.4;
}

.engine-connector-top{grid-area:connTop; width:2px; height:100%; background:var(--gold-soft); justify-self:center;}
.engine-connector-bottom{grid-area:connBottom; width:2px; height:100%; background:var(--gold-soft); justify-self:center;}
.engine-connector-left{grid-area:connLeft; height:2px; width:100%; background:var(--gold-soft); align-self:center;}
.engine-connector-right{grid-area:connRight; height:2px; width:100%; background:var(--gold-soft); align-self:center;}

@media (max-width:820px){
  .engine-grid{
    grid-template-columns:1fr; grid-template-rows:none; gap:0;
    grid-template-areas: none;
    display:flex; flex-direction:column; align-items:center;
  }
  .engine-hub{order:0; margin-bottom:.4em;}
  .engine-connector-top, .engine-connector-bottom, .engine-connector-left, .engine-connector-right{display:none;}
  .engine-mobile-line{
    width:2px; height:28px; background:var(--gold-soft); margin:0 auto;
  }
  .engine-node{width:100%; max-width:420px; text-align:left;}
}

.engine-pathways{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4em; margin-top:2.6em;}
@media (max-width:860px){.engine-pathways{grid-template-columns:1fr;}}
.pathway-card{
  background:var(--paper); border:1px solid rgba(19,24,31,.10); border-radius:var(--radius); padding:1.6em;
}
.pathway-card.active{border-color:var(--gold); border-width:2px;}
.pathway-card .tag{margin-bottom:.7em;}
.pathway-card h3{margin-bottom:.4em; font-size:1.1rem;}
.pathway-card p{margin:0; font-size:.88rem; color:var(--ink-soft); line-height:1.55;}

/* ---------- Sponsor benefits & founding-sponsor panel ---------- */
.benefits-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:.9em 2em;}
@media (max-width:640px){.benefits-list{grid-template-columns:1fr;}}
.benefits-list li{padding-left:1.6em; position:relative; font-size:.92rem; color:var(--fog);}
.benefits-list li::before{content:'—'; position:absolute; left:0; color:var(--gold); font-family:var(--font-mono);}

.founding-panel{
  background:var(--navy-2); border:1px solid var(--gold); border-radius:var(--radius);
  padding:2em; margin-top:2em;
}
.founding-panel .tag{color:var(--gold);}

/* ---------- Three equal portfolio cards (homepage) ---------- */
.portfolio-trio{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6em;}
@media (max-width:900px){.portfolio-trio{grid-template-columns:1fr;}}
.trio-card{
  background:var(--paper); border:1px solid rgba(19,24,31,.10); border-radius:var(--radius);
  padding:2em; display:flex; flex-direction:column; height:100%;
}
.trio-card .tag{margin-bottom:.8em;}
.trio-card h3{margin-bottom:.6em;}
.trio-card p.desc{margin:0 0 1.2em; font-size:.92rem; color:var(--ink-soft); line-height:1.6;}
.trio-card .trio-meta{font-size:.82rem; color:var(--ink-soft); margin-bottom:.4em;}
.trio-card .trio-meta strong{color:var(--ink); font-weight:600;}
.trio-card ul.trio-examples{list-style:none; margin:0 0 1.6em; padding:0;}
.trio-card ul.trio-examples li{
  font-size:.85rem; color:var(--ink-soft); padding-left:1.3em; position:relative; margin-bottom:.4em;
}
.trio-card ul.trio-examples li::before{content:'—'; position:absolute; left:0; color:var(--gold-deep); font-family:var(--font-mono);}
.trio-card .btn{margin-top:auto;}

/* ---------- Partnership pathway trio ---------- */
.partner-trio{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4em; margin-top:2.2em;}
@media (max-width:900px){.partner-trio{grid-template-columns:1fr;}}
.partner-card{
  background:var(--navy-2); border:1px solid var(--navy-line); border-radius:var(--radius);
  padding:1.8em; text-align:center;
}
.partner-card h3{color:var(--warm-white); font-size:1.05rem; margin-bottom:.6em;}
.partner-card p{font-size:.85rem; color:var(--fog); margin-bottom:1.4em;}

/* ---------- TCT Talent Opportunity Cycle (7-stage circular diagram) ---------- */
.cycle-wrap{max-width:640px; margin:0 auto;}
.cycle-diagram{
  position:relative; width:100%; aspect-ratio:1; margin:0 auto;
}
.cycle-ring{
  position:absolute; top:50%; left:50%; width:74%; height:74%;
  transform:translate(-50%,-50%); border-radius:50%;
  border:2px dashed var(--gold-soft);
}
.cycle-loop-arrow{
  position:absolute; transform:translate(-50%,-50%);
  font-size:1.3rem; color:var(--gold); line-height:1;
}
.cycle-node{
  position:absolute; transform:translate(-50%,-50%);
  width:150px; text-align:center;
  background:var(--paper); border:1px solid rgba(19,24,31,.10); border-radius:var(--radius);
  padding:.9em .8em;
}
.cycle-node .cycle-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%; background:var(--gold); color:var(--navy);
  font-family:var(--font-mono); font-size:.72rem; font-weight:600; margin-bottom:.5em;
}
.cycle-node h4{margin:0 0 .3em; font-size:.85rem; color:var(--ink);}
.cycle-node p{margin:0; font-size:.74rem; color:var(--ink-soft); line-height:1.4;}

.cycle-mobile{display:none;}
.cycle-mobile-item{display:flex; gap:1em; align-items:flex-start; padding-bottom:1.6em;}
.cycle-mobile-node-col{display:flex; flex-direction:column; align-items:center; flex-shrink:0;}
.cycle-mobile-line{width:2px; flex:1; min-height:24px; background:var(--gold-soft); margin-top:.4em;}
.cycle-mobile-item h4{margin:0 0 .25em; font-size:.92rem; color:var(--ink);}
.cycle-mobile-item p{margin:0; font-size:.85rem; color:var(--ink-soft); line-height:1.5;}
.cycle-loop-note{
  font-size:.85rem; color:var(--gold-deep); font-family:var(--font-mono);
  padding-top:.2em; margin:0;
}

@media (max-width:760px){
  .cycle-diagram{display:none;}
  .cycle-mobile{display:block;}
}

.cycle-stage-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:1.4em;
  margin-top:2.4em;
}
.cycle-stage-grid h4{
  font-family:var(--font-mono); font-size:.76rem; letter-spacing:.05em; text-transform:uppercase;
  color:var(--gold-deep); margin:0 0 .5em;
}
.cycle-stage-grid p{margin:0; font-size:.88rem; color:var(--ink-soft); line-height:1.55;}

/* ---------- NIL outcome card (extends the existing engine-grid pattern) ---------- */
.engine-outcome-wrap{display:flex; flex-direction:column; align-items:center; margin-top:0;}
.engine-outcome-connector{width:2px; height:36px; background:var(--gold-soft);}
.engine-outcome-card{
  background:var(--navy); border:2px solid var(--gold); border-radius:var(--radius);
  padding:1.6em 2.2em; text-align:center; max-width:420px;
}
.engine-outcome-card h4{
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--gold); margin:0;
}

@media (prefers-reduced-motion: reduce){
  .cycle-diagram, .cycle-node, .cycle-loop-arrow{transition:none !important; animation:none !important;}
}

/* ---------- Job fair: pending-backend notice (honest "not yet connected" state) ---------- */
.form-pending-badge{
  display:inline-flex; align-items:center; gap:.5em; font-family:var(--font-mono); font-size:.72rem;
  letter-spacing:.06em; text-transform:uppercase; color:var(--gold-deep); background:rgba(198,161,91,.12);
  border:1px solid var(--gold-soft); border-radius:20px; padding:.4em .9em; margin-bottom:1.2em;
}
.on-navy .form-pending-badge{color:var(--gold); background:rgba(198,161,91,.10);}
.form-pending-badge .dot-pulse{width:6px; height:6px; border-radius:50%; background:currentColor; display:inline-block;}
.form-pending{
  display:none; border-left:3px solid var(--gold); background:rgba(198,161,91,.08);
  color:var(--ink); padding:1em 1.2em; margin-top:1.2em; font-size:.92rem; border-radius:var(--radius);
}
.on-navy .form-pending{color:var(--warm-white);}
.form-pending.show{display:block;}

/* ---------- JUST 1 mission mark ---------- */
.just1-mark{
  font-family:var(--font-display); font-weight:650; font-size:clamp(2.6rem,7vw,4.2rem);
  color:var(--gold); letter-spacing:-0.01em; line-height:1; margin-bottom:.3em;
}
.on-navy .just1-mark{color:var(--gold);}

@media (prefers-reduced-motion: reduce){
  .dot-pulse{animation:none !important;}
}

/* ---------- Homepage: Veterans Day announcement banner ---------- */
.announce-banner{
  background:var(--navy-2); border-bottom:1px solid var(--navy-line);
  padding:.9em 0;
}
.announce-inner{
  display:flex; align-items:center; justify-content:center; gap:1.2em; flex-wrap:wrap;
  text-align:center; max-width:1180px; margin:0 auto; padding:0 24px;
}
.announce-text{font-size:.86rem; color:var(--fog); line-height:1.5;}
.announce-text strong{color:var(--warm-white); font-family:var(--font-mono); font-size:.78rem; letter-spacing:.03em;}
.announce-mission{color:var(--gold); font-style:italic; font-family:var(--font-display);}
.announce-actions{display:flex; gap:.6em; flex-wrap:wrap; justify-content:center;}
.announce-actions .btn{padding:.55em 1.1em; font-size:.72rem;}

@media (max-width:640px){
  .announce-inner{flex-direction:column; gap:.6em;}
}

/* ---------- Homepage: Two primary paths ---------- */
.two-path-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.8em; margin-top:2em;}
@media (max-width:820px){.two-path-grid{grid-template-columns:1fr;}}
.path-card{
  background:var(--paper); border:1px solid rgba(19,24,31,.10); border-radius:var(--radius);
  padding:2.4em 2em; text-align:left;
}
.path-card .path-kicker{
  font-family:var(--font-mono); font-size:.76rem; letter-spacing:.05em; text-transform:uppercase;
  color:var(--gold-deep); margin-bottom:.6em;
}
.path-card h3{font-size:1.5rem; margin-bottom:.5em;}
.path-card p{color:var(--ink-soft); margin-bottom:1.4em;}

/* ---------- How TCT Works: linear flow ---------- */
.flow-steps{
  display:flex; flex-wrap:wrap; gap:0; justify-content:center; align-items:stretch; margin-top:2.2em;
}
.flow-step{
  background:var(--navy-2); border:1px solid var(--navy-line); border-radius:var(--radius);
  padding:1.2em 1.1em; width:150px; text-align:center;
}
.flow-step .num{
  font-family:var(--font-mono); font-size:.7rem; color:var(--gold); display:block; margin-bottom:.4em;
}
.flow-step p{font-size:.82rem; color:var(--fog); margin:0; line-height:1.4;}
.flow-arrow{
  display:flex; align-items:center; justify-content:center; width:28px; color:var(--gold); font-size:1.1rem;
  flex-shrink:0;
}
@media (max-width:900px){
  .flow-steps{flex-direction:column; align-items:center;}
  .flow-step{width:100%; max-width:320px;}
  .flow-arrow{transform:rotate(90deg); padding:.2em 0;}
}
