:root {
  --charcoal:#1f1f1f; --charcoal-2:#333333; --steel:#6f7478; --gold:#f6be00; --gold-hi:#ffc400;
  --paper:#f4f5f6; --paper-2:#ebecee; --ink:#151515; --white:#fff; --line:#d6d8db;
  --font:"Geist", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --mono:"JetBrains Mono", ui-monospace, Menlo, monospace;
  --ease:cubic-bezier(0.2,0.65,0.25,1);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:hidden; }
body { margin:0; font-family:var(--font); color:var(--ink); background:var(--white); line-height:1.55; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
h1,h2,h3 { margin:0; font-weight:800; letter-spacing:-.035em; line-height:1.04; }
a { color:inherit; }
img { max-width:100%; display:block; }
::selection { background:var(--gold); color:var(--ink); }
[id] { scroll-margin-top:6rem; }
:focus-visible { outline:2px solid var(--charcoal); outline-offset:2px; }
.on-dark :focus-visible { outline-color:var(--gold); }

.mono { font-family:var(--mono); font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase; font-weight:500; }
.wrap { max-width:1240px; margin:0 auto; padding:0 24px; }
.tabular { font-variant-numeric:tabular-nums; }

.blueprint { background-color:var(--charcoal); background-image:linear-gradient(to right, rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,.04) 1px, transparent 1px); background-size:48px 48px; }
.blueprint-light { background-color:var(--paper); background-image:linear-gradient(to right, rgba(31,31,31,.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(31,31,31,.05) 1px, transparent 1px); background-size:32px 32px; }
.diag { background-image:repeating-linear-gradient(-45deg, transparent 0, transparent 11px, rgba(246,190,0,.07) 11px, rgba(246,190,0,.07) 12px); }

.anno { background:var(--gold); color:var(--ink); text-align:center; padding:8px 16px; }
.anno .mono { color:var(--charcoal); font-weight:600; }
.ribbon { display:none; }

/* header */
header.site { position:sticky; top:0; z-index:50; background:rgba(31,31,31,.96); backdrop-filter:blur(8px); border-bottom:1px solid rgba(255,255,255,.08); color:#fff; }
.hdr { display:flex; align-items:center; gap:24px; height:72px; }
.hdr .brand { margin-left:-16px; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand .logo { height:46px; width:auto; }
.brand .sub { font-family:var(--mono); font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--steel); }
nav.main { display:flex; gap:24px; margin-left:auto; align-items:center; }
nav.main a { font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:#cfd0d2; text-decoration:none; padding:6px 0; transition:color .15s; white-space:normal; text-align:left; line-height:1.3; max-width:8em; }
nav.main a:hover, nav.main a.active { color:var(--gold); }
nav.main a[href="index.html#fabrication"] { display:none; }
.btn { display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; padding:12px 18px; border:0; cursor:pointer; text-decoration:none; transition:background .15s, color .15s, transform .08s; border-radius:0; }
.btn-gold { background:var(--gold); color:var(--ink); } .btn-gold:hover { background:var(--gold-hi); }
.btn-ghost { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.3); } .btn-ghost:hover { border-color:var(--gold); color:var(--gold); }
.btn-dark { background:var(--charcoal); color:#fff; } .btn-dark:hover { background:var(--charcoal-2); }
.btn:active { transform:translateY(1px); }
.hdr .btn { margin-left:6px; }
.navtoggle { display:none; background:transparent; border:0; color:#fff; cursor:pointer; padding:8px; }
.navtoggle svg { display:block; }
@media (max-width:980px){
  nav.main { display:none; }
  .navtoggle { display:inline-flex; }
  .brand .sub { display:none; }
  .brand .logo { height:38px; }
  .hdr { gap:12px; }
  .hdr .btn-cta { margin-left:auto; }
  header.site.navopen nav.main { display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0; background:var(--charcoal); border-top:1px solid rgba(255,255,255,.12); padding:6px 0; box-shadow:0 22px 44px -22px rgba(0,0,0,.7); z-index:60; }
  header.site.navopen nav.main a { max-width:none; text-align:left; padding:15px 22px; font-size:13px; letter-spacing:.1em; border-bottom:1px solid rgba(255,255,255,.06); }
}
@media (max-width:600px){
  .marquee-track { gap:42px; padding:13px 0; }
  .mq-item { font-size:10px; gap:12px; }
}
@media (max-width:760px){
  .anno { display:none; }
  .wrap { padding:0 28px; }
}
@media (max-width:680px){
  .hero .inner { padding-top:30px; padding-bottom:36px; }
  .hero h1 { font-size:clamp(33px,8.4vw,46px); line-height:1.06; }
  .hero p.sub { font-size:15px; line-height:1.55; margin-top:20px; }
  .hero .ctas { margin-top:28px; gap:10px; flex-wrap:nowrap; }
  .hero .cta-plans { display:none; }
  .hero .cta-explore { order:1; flex:1; }
  .hero .cta-quote { order:2; flex:1; }
  .hero .cta-explore, .hero .cta-quote { justify-content:center; padding:14px 8px; font-size:10px; letter-spacing:.05em; gap:6px; white-space:nowrap; }
}

/* hero (homepage) */
.hero { position:relative; color:#fff; overflow:hidden; background:var(--charcoal); min-height:82vh; display:grid; align-content:center; }
.hero-bg { position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; }
.hero-tint { position:absolute; inset:0; z-index:0; background:linear-gradient(180deg, rgba(31,31,31,.50), rgba(31,31,31,.62) 42%, rgba(31,31,31,.82)); }
.hero .inner { padding-top:48px; padding-bottom:48px; position:relative; z-index:1; }
.goldbar { height:4px; background:var(--gold); }
@media (max-width:680px){ .hero { min-height:calc(100svh - 148px); align-content:start; } }
.hero .eyebrow { display:inline-flex; align-items:center; gap:10px; color:var(--gold); margin-bottom:22px; }
.hero .eyebrow::before { content:""; width:28px; height:1px; background:var(--gold); display:inline-block; }
.hero h1 { font-size:clamp(40px, 7vw, 78px); max-width:15ch; text-shadow:0 2px 22px rgba(0,0,0,.6); }
.hero h1 .g { color:var(--gold); }
.hero .eyebrow { text-shadow:0 1px 10px rgba(0,0,0,.5); }
.hero p.sub { margin:26px 0 0; max-width:60ch; font-size:clamp(16px,1.6vw,19px); color:#e8e9ea; line-height:1.5; text-shadow:0 1px 14px rgba(0,0,0,.65); }
.hero .ctas { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.hero .corner { position:absolute; right:24px; bottom:24px; z-index:1; text-align:right; }
.hero .corner .mono { color:var(--steel); }
@media (max-width:680px){ .hero .corner { display:none; } }

/* subhero (inner pages) — full-color photo + left-weighted gradient + gold baseline */
.subhero { position:relative; color:#fff; overflow:hidden; background:var(--charcoal); }
.subhero-bg { position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; }
.subhero-tint { position:absolute; inset:0; z-index:0; background:linear-gradient(90deg, rgba(20,20,20,.93) 0%, rgba(20,20,20,.74) 34%, rgba(20,20,20,.30) 66%, rgba(20,20,20,.46) 100%); }
.subhero::after { content:""; position:absolute; left:0; right:0; bottom:0; height:4px; background:var(--gold); z-index:2; }
.subhero .inner { position:relative; z-index:1; padding-top:60px; padding-bottom:66px; }
.subhero .sh-spec { position:absolute; right:24px; bottom:22px; z-index:2; background:none; font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); text-align:right; line-height:1.7; }
@media(max-width:760px){
  .subhero-tint { background:linear-gradient(180deg, rgba(20,20,20,.60), rgba(20,20,20,.82)); }
  .subhero .sh-spec { display:none; }
}
.crumb { font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--steel); margin-bottom:18px; }
.crumb a { color:var(--steel); text-decoration:none; } .crumb a:hover { color:var(--gold); }
.crumb .sep { color:#555; margin:0 8px; }
.subhero h1 { font-size:clamp(34px,5.2vw,58px); max-width:18ch; text-shadow:0 2px 20px rgba(0,0,0,.6); }
.subhero h1 .g { color:var(--gold); }
.subhero p.sub { margin:22px 0 0; max-width:62ch; font-size:clamp(15px,1.5vw,18px); color:#e7e8e9; line-height:1.5; text-shadow:0 1px 14px rgba(0,0,0,.65); }
.subhero .ctas { margin-top:30px; display:flex; flex-wrap:wrap; gap:12px; }

/* stat strip */
.stats { background:var(--charcoal-2); color:#fff; border-top:1px solid rgba(255,255,255,.08); }
.stats .grid { display:grid; grid-template-columns:repeat(4,1fr); }
.stats .cell { padding:26px 24px; border-right:1px solid rgba(255,255,255,.08); }
.stats .cell:last-child { border-right:0; }
.stats .v { font-size:30px; font-weight:800; letter-spacing:-.03em; }
.stats .v .g { color:var(--gold); }
.stats .l { color:#a9abad; margin-top:6px; }
@media (max-width:860px){ .stats .grid { grid-template-columns:1fr 1fr; } .stats .cell:nth-child(2){border-right:0;} .stats .cell { border-bottom:1px solid rgba(255,255,255,.08); } }

/* generic section */
section.band { padding:84px 0; }
.band.light { background:var(--white); }
.band.paper { background:var(--paper); }
.sec-eyebrow { display:inline-flex; align-items:center; gap:10px; color:var(--steel); margin-bottom:18px; }
.sec-eyebrow::before { content:""; width:24px; height:1px; background:var(--gold); display:inline-block; }
.sec-h { font-size:clamp(28px,3.6vw,44px); max-width:22ch; }
.lead { font-size:18px; color:var(--charcoal-2); max-width:62ch; margin-top:20px; line-height:1.55; }

/* platform / dark sections */
.platform { background:var(--charcoal); color:#fff; }
.platform .sec-eyebrow { color:var(--gold); }
.platform .sec-h { color:#fff; }
.platform .lead { color:#c7cace; }
.chain { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; margin-top:40px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.08); }
.chain .node { background:var(--charcoal); padding:20px 16px; }
.chain .node .n { font-family:var(--mono); font-size:10px; color:var(--gold); letter-spacing:.14em; }
.chain .node .t { font-weight:700; font-size:14px; margin-top:8px; letter-spacing:-.01em; }
.chain .node .d { color:#a9abad; font-size:12.5px; margin-top:6px; line-height:1.45; }
.chain .node.us { background:#262029; box-shadow:inset 0 0 0 1px var(--gold); }
@media (max-width:860px){ .chain { grid-template-columns:1fr 1fr; } }
.platform .note { margin-top:24px; color:#c9cacc; max-width:60ch; }
.platform .note b { color:var(--gold); font-weight:600; }

/* capabilities (homepage) */
.caps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:46px; }
.cap { border:1px solid var(--line); background:var(--white); padding:28px 24px; position:relative; transition:border-color .2s, transform .2s, box-shadow .2s; display:flex; flex-direction:column; }
.cap:hover { border-color:var(--charcoal); transform:translateY(-2px); box-shadow:0 22px 50px -34px rgba(31,31,31,.55); }
.cap .num { position:absolute; top:18px; right:20px; font-family:var(--mono); font-size:11px; color:var(--steel); letter-spacing:.12em; }
.cap .ph { display:block; aspect-ratio:16/10; margin:-2px -2px 20px; overflow:hidden; }
.cap .ph img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.cap:hover .ph img { transform:scale(1.04); }
.cap h3 { font-size:22px; letter-spacing:-.02em; }
.cap p { color:var(--charcoal-2); margin:12px 0 0; font-size:15px; }
.cap ul { margin:16px 0 0; padding:0; list-style:none; flex:1; }
.cap li { font-size:13.5px; color:var(--charcoal-2); padding:7px 0 7px 18px; position:relative; border-top:1px solid var(--paper-2); }
.cap li::before { content:""; position:absolute; left:0; top:13px; width:8px; height:8px; background:var(--gold); }
.cap-link { display:inline-flex; align-items:center; gap:8px; margin-top:20px; font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--ink); text-decoration:none; border-bottom:2px solid var(--gold); padding-bottom:3px; align-self:flex-start; }
.cap-link:hover { color:var(--charcoal-2); }
@media (max-width:920px){ .caps { grid-template-columns:1fr; } }
.caps.c4 { grid-template-columns:repeat(4,1fr); }
@media (max-width:920px){ .caps.c4 { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .caps.c4 { grid-template-columns:1fr; } }

/* secondary services row */
.svc { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; margin-top:44px; background:var(--line); border:1px solid var(--line); }
.svc .item { background:var(--white); padding:20px 16px; }
.svc .item .mono { color:var(--steel); }
.svc .item .t { font-weight:600; font-size:14px; margin-top:8px; letter-spacing:-.01em; }
.svc .item p { font-size:12.5px; color:var(--steel); margin:8px 0 0; line-height:1.45; }
@media (max-width:860px){ .svc { grid-template-columns:1fr 1fr; } }

/* fabrication split */
.split { display:grid; grid-template-columns:1.05fr 1fr; gap:48px; align-items:center; }
@media (max-width:920px){ .split { grid-template-columns:1fr; gap:30px; } }
.fab-ph { aspect-ratio:4/3; border:1px solid rgba(255,255,255,.12); overflow:hidden; }
.fab-ph img { width:100%; height:100%; object-fit:cover; }
.fab-list { margin:26px 0 0; padding:0; list-style:none; }
.fab-list li { padding:12px 0 12px 20px; border-top:1px solid rgba(255,255,255,.1); position:relative; color:#d2d3d5; font-size:15px; }
.fab-list li::before { content:""; position:absolute; left:0; top:18px; width:9px; height:1px; background:var(--gold); }

/* coil-to-module showcase: hero + gallery + lightbox */
.fab-head { max-width:none; margin-bottom:24px; }
.fab-head .fab-list { max-width:760px; }
.band.light .fab-list li, .band.paper .fab-list li { color:var(--charcoal-2); border-top-color:var(--paper-2); }

/* ===== spec datasheet (label / value rows) ===== */
.specsheet { margin:28px 0 0; border:1px solid var(--line); border-top:2px solid var(--gold); background:var(--white); }
.specsheet > div { display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:15px 20px; border-bottom:1px solid var(--paper-2); }
.specsheet > div:last-child { border-bottom:0; }
.specsheet dt { font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--steel); margin:0; flex:none; }
.specsheet dd { margin:0; font-weight:700; font-size:15.5px; color:var(--ink); text-align:right; letter-spacing:-.01em; }
.specsheet dd .g { color:#9a7d12; }
.platform .specsheet, .band.dark .specsheet { background:#262029; border-color:rgba(255,255,255,.12); }
.platform .specsheet > div, .band.dark .specsheet > div { border-bottom-color:rgba(255,255,255,.08); }
.platform .specsheet dd, .band.dark .specsheet dd { color:#fff; }
.platform .specsheet dd .g, .band.dark .specsheet dd .g { color:var(--gold); }

/* contained machine-spec card: photo panel + datasheet bound in one unit */
.machine-card { display:grid; grid-template-columns:1fr 1fr; background:var(--white); border:1px solid var(--line); border-top:3px solid var(--gold); overflow:hidden; box-shadow:0 30px 64px -44px rgba(31,31,31,.55); }
.machine-card .mc-photo { position:relative; min-height:440px; background:var(--charcoal); }
.machine-card .mc-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.machine-card .mc-badge { position:absolute; left:0; bottom:20px; background:var(--gold); color:var(--ink); font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; padding:9px 16px; }
.machine-card .mc-body { padding:40px 40px 32px; }
.machine-card .mc-body .sec-eyebrow { margin-bottom:14px; }
.machine-card .mc-body h2 { font-size:clamp(25px,2.5vw,33px); letter-spacing:-.03em; line-height:1.06; }
.machine-card .mc-body > p { color:var(--charcoal-2); margin:14px 0 0; font-size:15px; line-height:1.55; }
.machine-card .specsheet { margin-top:24px; border:0; }
.machine-card .specsheet > div { padding-left:0; padding-right:0; }
@media (max-width:860px){ .machine-card { grid-template-columns:1fr; } .machine-card .mc-photo { min-height:300px; } .machine-card .mc-body { padding:30px 26px 24px; } }
/* four process boxes above the hero image */
.fab-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:0 0 16px; }
@media (max-width:760px){ .fab-steps { grid-template-columns:1fr 1fr; } }
@media (max-width:460px){ .fab-steps { grid-template-columns:1fr; } }
.fab-step { background:linear-gradient(165deg,#2c2833,#211e28); border:1px solid rgba(255,255,255,.08); border-left:3px solid var(--gold); padding:20px 20px 22px; display:flex; flex-direction:column; gap:12px; transition:border-color .2s var(--ease), transform .2s var(--ease); }
.fab-step:hover { border-color:rgba(246,190,0,.4); transform:translateY(-2px); }
.fab-step .mono { color:var(--gold); font-size:11px; letter-spacing:.22em; }
.fab-step h4 { color:#f2f2f4; font-size:15px; margin:0; letter-spacing:-.01em; line-height:1.35; font-weight:600; }
.fab-step p { color:#a9abad; font-size:13px; line-height:1.5; margin:0; }
.fab-hero { margin:0 0 14px; border:1px solid rgba(255,255,255,.14); overflow:hidden; aspect-ratio:16/9; }
.fab-hero img { width:100%; height:100%; object-fit:cover; }
.fab-cap { font-family:var(--mono); font-size:12px; letter-spacing:.05em; color:var(--steel); margin:0 0 16px; display:flex; align-items:center; gap:10px; line-height:1.4; transition:color .2s; }
.fab-cap::before { content:""; flex:none; width:18px; height:1px; background:var(--gold); }
.fab-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:920px){ .fab-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .fab-grid { grid-template-columns:1fr; } }
.g-cell { position:relative; aspect-ratio:4/3; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.12); background:#262626; }
.g-cell img { width:100%; height:100%; object-fit:cover; }
/* clickable thumbnails that swap into the hero stage */
.fab-grid .g-cell { cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.fab-grid .g-cell:hover { border-color:rgba(246,190,0,.55); }
.fab-grid .g-cell.active { border-color:var(--gold); box-shadow:inset 0 0 0 1px var(--gold); }
.zoom { cursor:zoom-in; transition:opacity .15s; }
.zoom:hover { opacity:.92; }
.g-cell.ph { display:flex; flex-direction:column; justify-content:flex-end; gap:5px; padding:16px;
  background:repeating-linear-gradient(-45deg,#242424,#242424 11px,#2b2b2b 11px,#2b2b2b 12px); }
.g-cell.ph .mono { color:var(--gold); font-size:10px; }
.g-cell.ph .lbl { font-weight:700; font-size:14px; color:#e7e8ea; letter-spacing:-.01em; line-height:1.15; }
.g-cell.ph .tag { position:absolute; top:10px; right:10px; color:var(--steel); font-size:9px; border:1px solid rgba(255,255,255,.18); padding:3px 7px; }

/* light-background variant (Inside the factory gallery) */
.band.light .fab-hero { border:1px solid var(--line); background:var(--paper-2); }
.band.light .g-cell { border:1px solid var(--line); background:var(--paper-2); }
.band.light .fab-grid .g-cell:hover { border-color:rgba(246,190,0,.7); }
.band.light .fab-grid .g-cell.active { border-color:var(--gold); box-shadow:inset 0 0 0 1px var(--gold); }
.band.light .g-cell.ph { background:repeating-linear-gradient(-45deg,#eef0f2,#eef0f2 11px,#e6e8eb 11px,#e6e8eb 12px); }
.band.light .g-cell.ph .mono { color:#9a7d12; }
.band.light .g-cell.ph .lbl { color:#3a3c3f; }
.band.light .g-cell.ph .tag { color:var(--steel); border-color:rgba(0,0,0,.16); }
.stage-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; text-align:center; padding:18px;
  background:repeating-linear-gradient(-45deg,#eef0f2,#eef0f2 14px,#e6e8eb 14px,#e6e8eb 15px);
  color:#8a8d90; font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; }

.lightbox { position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; background:rgba(15,15,15,.94); padding:24px; }
.lightbox.open { display:flex; }
.lightbox img { max-width:92vw; max-height:85vh; object-fit:contain; border:1px solid rgba(255,255,255,.14); }
.lb-btn { position:absolute; background:transparent; border:0; color:#fff; cursor:pointer; line-height:1; padding:12px; opacity:.82; transition:opacity .15s, color .15s; }
.lb-btn:hover { opacity:1; color:var(--gold); }
.lb-close { top:14px; right:18px; font-size:30px; }
.lb-prev { left:8px; top:50%; transform:translateY(-50%); font-size:40px; }
.lb-next { right:8px; top:50%; transform:translateY(-50%); font-size:40px; }
.lb-cap { position:absolute; bottom:18px; left:0; right:0; text-align:center; color:#cfd0d2; font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; }

/* two-col content (inner pages) */
.twocol { display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:center; }
@media (max-width:920px){ .twocol { grid-template-columns:1fr; gap:30px; } }
.twocol .img { aspect-ratio:4/3; overflow:hidden; border:1px solid var(--line); }
.twocol .img img { width:100%; height:100%; object-fit:cover; }

/* readable benefits grid (light sections) */
.benefits { display:grid; grid-template-columns:1fr 1fr; gap:20px 26px; margin-top:30px; }
@media (max-width:560px){ .benefits { grid-template-columns:1fr; } }
.ben { display:flex; gap:12px; }
.ben .bi { flex:0 0 auto; width:22px; height:22px; border:1px solid var(--gold); color:#a07c00;
  display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; margin-top:2px; }
.ben h3 { font-size:15px; margin:0 0 3px; letter-spacing:-.015em; }
.ben p { margin:0; color:var(--charcoal-2); font-size:13.5px; line-height:1.5; }
/* 4-across variant */
.benefits.cols-4 { grid-template-columns:repeat(4,1fr); gap:26px 26px; margin-top:36px; }
@media (max-width:920px){ .benefits.cols-4 { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .benefits.cols-4 { grid-template-columns:1fr; } }

/* four small supporting images (light sections) */
.img4 { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:38px; }
@media (max-width:760px){ .img4 { grid-template-columns:1fr 1fr; } }
.img4 figure { margin:0; aspect-ratio:4/3; overflow:hidden; border:1px solid var(--line); background:var(--paper-2); }
.img4 figure img { width:100%; height:100%; object-fit:cover; }
.img4 .ph { display:flex; flex-direction:column; justify-content:flex-end; gap:3px; padding:12px; position:relative;
  background:repeating-linear-gradient(-45deg,#eef0f2,#eef0f2 10px,#e6e8eb 10px,#e6e8eb 11px); }
.img4 .ph .mono { color:#9a7d12; font-size:9px; }
.img4 .ph .lbl { font-weight:700; font-size:12px; color:#3a3c3f; line-height:1.2; letter-spacing:-.01em; }

/* two-image stack (light sections) */
.media-stack { display:grid; gap:14px; align-content:start; }
.media-stack .ms { margin:0; aspect-ratio:4/3; overflow:hidden; border:1px solid var(--line); background:var(--paper-2); }
.media-stack .ms img { width:100%; height:100%; object-fit:cover; }
.media-stack .ms.ph { display:flex; flex-direction:column; justify-content:flex-end; gap:4px; padding:14px; position:relative;
  background:repeating-linear-gradient(-45deg,#eef0f2,#eef0f2 11px,#e6e8eb 11px,#e6e8eb 12px); }
.media-stack .ms.ph .mono { color:#9a7d12; font-size:10px; }
.media-stack .ms.ph .lbl { font-weight:700; font-size:13px; color:#3a3c3f; letter-spacing:-.01em; }
.prose p { color:var(--charcoal-2); font-size:16px; margin:16px 0 0; line-height:1.62; }
.prose p:first-of-type { margin-top:0; }

/* feature grid */
.features { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:42px; }
@media (max-width:920px){ .features { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .features { grid-template-columns:1fr; } }
.feat { border:1px solid var(--line); background:var(--white); padding:22px 20px; }
.feat .mono { color:var(--steel); }
.feat h3 { font-size:18px; margin-top:10px; letter-spacing:-.02em; }
.feat p { color:var(--charcoal-2); font-size:14px; margin-top:9px; line-height:1.55; }
.platform .feat { background:#262029; border-color:rgba(255,255,255,.1); }
.platform .feat h3 { color:#fff; } .platform .feat p { color:#a9abad; }

/* process steps */
.process { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:42px; background:var(--line); border:1px solid var(--line); }
.process.p3 { grid-template-columns:repeat(3,1fr); }
@media (max-width:760px){ .process { grid-template-columns:1fr 1fr; } }
@media (max-width:860px){ .process.p3 { grid-template-columns:1fr; } }
.process .step { background:var(--white); padding:24px 20px; }
.process .step .n { font-family:var(--mono); font-size:24px; font-weight:700; color:var(--gold); letter-spacing:-.02em; }
.process .step h3 { font-size:16px; margin-top:12px; letter-spacing:-.01em; color:var(--ink); }
.process .step p { color:var(--charcoal-2); font-size:13.5px; margin-top:8px; line-height:1.5; }

/* ===== certifications / standards strip (credibility bar) ===== */
.certs { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:42px; background:var(--line); border:1px solid var(--line); box-shadow:inset 0 2px 0 var(--gold); }
.certs .crt { background:var(--white); padding:24px 22px; display:flex; flex-direction:column; gap:8px; }
.certs .crt .std { font-family:var(--mono); font-size:14px; font-weight:600; letter-spacing:.02em; color:var(--ink); }
.certs .crt .std .g { color:#9a7d12; }
.certs .crt .cap2 { font-size:12.5px; color:var(--steel); line-height:1.45; }
.platform .certs, .band.dark .certs { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.12); }
.platform .certs .crt, .band.dark .certs .crt { background:#262029; }
.platform .certs .std, .band.dark .certs .std { color:#fff; }
.platform .certs .std .g, .band.dark .certs .std .g { color:var(--gold); }
.platform .certs .cap2, .band.dark .certs .cap2 { color:#a9abad; }
@media (max-width:860px){ .certs { grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .certs { grid-template-columns:1fr; } }

/* application list columns */
.applist { columns:3; column-gap:32px; margin-top:30px; }
@media (max-width:760px){ .applist { columns:2; } }
@media (max-width:480px){ .applist { columns:1; } }
.applist .ai { break-inside:avoid; padding:7px 0 7px 16px; position:relative; font-size:14px; color:var(--charcoal-2); }
.applist .ai::before { content:""; position:absolute; left:0; top:12px; width:7px; height:7px; background:var(--gold); }

/* markets vs scopes split (structural steel) */
.app-split { display:grid; grid-template-columns:1.55fr 1fr; gap:48px; margin-top:40px; align-items:start; }
@media (max-width:860px){ .app-split { grid-template-columns:1fr; gap:36px; } }
.app-h { color:var(--steel); margin:0 0 20px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.app-h::before { content:""; display:inline-block; width:8px; height:8px; background:var(--gold); margin-right:9px; vertical-align:middle; }
.app-groups { display:grid; grid-template-columns:1fr 1fr; gap:24px 32px; }
@media (max-width:560px){ .app-groups { grid-template-columns:1fr; } }
.app-grp h4 { font-size:14px; margin:0 0 8px; letter-spacing:-.01em; }
.app-grp ul, .scope-list { list-style:none; margin:0; padding:0; }
.app-grp li, .scope-list li { position:relative; padding:7px 0 7px 18px; font-size:14px; color:var(--charcoal-2); border-top:1px solid var(--line); }
.app-grp li:first-child, .scope-list li:first-child { border-top:0; }
.app-grp li::before, .scope-list li::before { content:""; position:absolute; left:0; top:14px; width:7px; height:7px; background:var(--gold); }
.scope-list li { padding:9px 0 9px 18px; }

/* markets */
.mkts { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:40px; }
.mkt { border:1px solid var(--line); padding:18px 18px 20px; background:var(--white); }
.mkt .mono { color:var(--steel); } .mkt .t { font-weight:700; margin-top:7px; letter-spacing:-.01em; }
.mkt .d { color:var(--charcoal-2); font-size:13.5px; margin-top:6px; }
@media (max-width:860px){ .mkts { grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .mkts { grid-template-columns:1fr; } }

/* projects gallery */
.projects { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:40px; }
@media (max-width:760px){ .projects { grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .projects { grid-template-columns:1fr; } }
.proj { border:1px solid var(--line); background:var(--white); overflow:hidden; }
.proj .pimg { aspect-ratio:4/3; overflow:hidden; background:var(--charcoal); }
.proj .pimg img { width:100%; height:100%; object-fit:cover; }
.proj .pbody { padding:16px 16px 18px; }
.proj .mono { color:var(--steel); } .proj .pt { font-weight:700; margin-top:6px; letter-spacing:-.01em; }
.proj .pd { color:var(--charcoal-2); font-size:13px; margin-top:5px; }

/* related capabilities */
.related { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:40px; }
@media (max-width:760px){ .related { grid-template-columns:1fr; } }
.rel { border:1px solid var(--line); border-radius:5px; padding:24px 22px; text-decoration:none; display:flex; flex-direction:column; background:var(--white); transition:border-color .2s, transform .2s, box-shadow .2s; }
.rel:hover { border-color:var(--charcoal); transform:translateY(-2px); box-shadow:0 18px 40px -30px rgba(31,31,31,.5); }
.rel .mono { color:var(--steel); } .rel .rt { font-weight:700; font-size:18px; margin-top:9px; letter-spacing:-.02em; color:var(--ink); }
.rel .rd { color:var(--charcoal-2); font-size:13.5px; line-height:1.5; margin-top:9px; }
.band.dark .rel .rd { color:#b6b9bf; }
.rel .arrow { color:var(--gold); font-weight:700; margin-top:auto; padding-top:16px; display:inline-block; transition:transform .2s var(--ease); }
.rel:hover .arrow { transform:translateX(5px); }
/* merged page closer: projects teaser + capability cross-links, separated by a rule */
.closer-more { margin-top:56px; padding-top:40px; border-top:1px solid var(--line); }
.closer-more .related { margin-top:24px; }

/* CTA */
.cta-band { color:#fff; position:relative; }
.cta-inner { display:grid; grid-template-columns:1.4fr 1fr; gap:36px; align-items:end; padding:72px 0; position:relative; z-index:1; }
@media (max-width:860px){ .cta-inner { grid-template-columns:1fr; gap:24px; } }
.cta-band h2 { font-size:clamp(30px,4vw,48px); color:#fff; }
.cta-band .eyebrow { color:var(--gold); }
.cta-actions { display:flex; flex-direction:column; gap:12px; }

/* footer */
footer.site { background:var(--charcoal); color:#cfd0d2; padding:56px 0 30px; border-top:1px solid rgba(255,255,255,.08); }
.foot { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:32px; }
@media (max-width:980px){ .foot { grid-template-columns:1fr 1fr; gap:28px; } }
@media (max-width:560px){ .foot { grid-template-columns:1fr; gap:24px; } }
footer h4 { font-family:var(--mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--steel); margin:0 0 14px; }
footer a { color:#cfd0d2; text-decoration:none; display:block; padding:5px 0; font-size:14px; }
footer a:hover { color:var(--gold); }
footer.site .brand { flex-direction:column; align-items:flex-start; gap:4px; }
footer.site .brand::after { content:"A TESH Group Company"; font-family:var(--mono); font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--steel); display:block; margin-top:6px; }
.foot-bottom { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:40px; padding-top:20px; border-top:1px solid rgba(255,255,255,.08); }
.foot-bottom .mono { color:var(--steel); }

/* project portfolio cards */
.pgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:44px; }
@media (max-width:920px){ .pgrid { grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .pgrid { grid-template-columns:1fr; } }
.pcard { border:1px solid var(--line); background:var(--white); text-align:left; padding:0; cursor:pointer; overflow:hidden; border-radius:16px; transition:border-color .2s, transform .25s var(--ease), box-shadow .25s; display:flex; flex-direction:column; font:inherit; text-decoration:none; color:var(--ink); }
.pcard:hover { border-color:var(--charcoal); transform:translateY(-2px); box-shadow:0 22px 50px -34px rgba(31,31,31,.55); }
.pcard:focus-visible { outline:2px solid var(--charcoal); outline-offset:2px; }
.pcard .pcimg { aspect-ratio:3/2; background:var(--charcoal); overflow:hidden; position:relative; }
.pcard .pcimg img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.pcard:hover .pcimg img { transform:scale(1.07); }
.pcard .ptag { position:absolute; top:10px; left:10px; background:var(--gold); color:var(--ink); font-family:var(--mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; padding:4px 7px; }
.pcard .pcount { position:absolute; bottom:10px; right:10px; background:rgba(31,31,31,.82); color:#fff; font-family:var(--mono); font-size:10px; letter-spacing:.06em; padding:5px 8px; display:flex; gap:6px; align-items:center; }
.pcard .pcbody { padding:16px 16px 18px; flex:1; display:flex; flex-direction:column; }
.pcard .ploc { font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--steel); }
.pcard .pname { font-weight:800; font-size:18px; letter-spacing:-.02em; margin-top:6px; color:var(--ink); }
.pcard .pmeta { color:var(--charcoal-2); font-size:13px; margin-top:8px; }
.pcard .pscope { font-size:12px; color:var(--steel); margin-top:auto; padding-top:12px; }
.pcard .pview { display:inline-flex; align-items:center; gap:7px; font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--ink); border:0; border-radius:8px; padding:11px 16px; margin-top:18px; align-self:flex-end; background:var(--gold); transition:background .15s, transform .1s; }
.pcard:hover .pview { background:var(--gold-hi); }
.pcard:active .pview { transform:translateY(1px); }

/* lightbox */
.lb { position:fixed; inset:0; z-index:1000; background:rgba(15,13,18,.95); display:none; flex-direction:column; }
.lb.open { display:flex; }
.lb-top { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:16px 22px; color:#fff; }
.lb-top .lt-name { font-weight:800; font-size:18px; letter-spacing:-.02em; }
.lb-top .lt-meta { font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:#a9abad; margin-top:5px; text-transform:uppercase; }
.lb-top .lt-actions { display:flex; gap:10px; align-items:center; flex:none; }
.lb-stage { flex:1; position:relative; display:flex; align-items:center; justify-content:center; min-height:0; padding:0 16px; }
.lb-stage img { max-width:min(1120px,92vw); max-height:70vh; object-fit:contain; }
.lb-nav { position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.1); color:#fff; border:0; width:48px; height:48px; cursor:pointer; font-size:20px; display:grid; place-items:center; }
.lb-nav:hover { background:var(--gold); color:var(--ink); }
.lb-prev { left:18px; } .lb-next { right:18px; }
.lb-count { text-align:center; color:#a9abad; font-family:var(--mono); font-size:11px; letter-spacing:.1em; padding:8px; }
.lb-thumbs { display:flex; gap:8px; overflow-x:auto; padding:8px 22px 22px; -webkit-overflow-scrolling:touch; justify-content:flex-start; }
.lb-thumbs button { flex:0 0 auto; width:84px; height:56px; border:2px solid transparent; padding:0; cursor:pointer; background:#000; overflow:hidden; }
.lb-thumbs button img { width:100%; height:100%; object-fit:cover; }
.lb-thumbs button[aria-current="true"] { border-color:var(--gold); }
.lb-close { background:transparent; border:1px solid rgba(255,255,255,.3); color:#fff; width:40px; height:40px; cursor:pointer; font-size:18px; line-height:1; }
.lb-close:hover { border-color:var(--gold); color:var(--gold); }
body.lb-lock { overflow:hidden; }
@media (max-width:600px){ .lb-stage img { max-height:58vh; } .lb-nav { width:40px; height:40px; } .lb-top .lt-actions .btn span { display:none; } }

/* project detail page */
.pdbar { display:flex; flex-wrap:wrap; gap:28px; margin-top:8px; }
.pdbar .di .dl { font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--steel); }
.pdbar .di .dv { font-weight:700; font-size:16px; margin-top:5px; letter-spacing:-.01em; }
.gallery { display:grid; grid-template-columns:repeat(auto-fill, minmax(170px,1fr)); gap:10px; margin-top:30px; }
@media (max-width:600px){ .gallery { grid-template-columns:1fr 1fr; gap:8px; } }
.gitem { padding:0; border:0; background:var(--charcoal); cursor:pointer; overflow:hidden; aspect-ratio:4/3; border-radius:12px; box-shadow:0 10px 30px -20px rgba(0,0,0,.7); }
.gitem img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s var(--ease); }
.gitem:hover img { transform:scale(1.05); }
.gitem:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }

/* rich stat / advantage bar (homepage) */
/* photo-backed stats band: real modular shot under a dark overlay, numbers stay readable */
.stats.stats-photo { position:relative; background-color:var(--charcoal); background-size:cover; background-position:center; box-shadow:inset 0 2px 0 var(--gold); }
.stats.stats-photo::before { content:""; position:absolute; inset:0; background:linear-gradient(rgba(20,20,20,.80), rgba(20,20,20,.88)); z-index:0; }
.stats.stats-photo .wrap { position:relative; z-index:1; }
.stats.stats-photo .cell { border-right-color:rgba(255,255,255,.14); border-bottom-color:rgba(255,255,255,.14); }
.stats.stats-photo .l { color:#c9cacc; }

.stats.rich { box-shadow:inset 0 2px 0 var(--gold); }
.stats.rich .cell { padding:30px 24px 32px; }
.stats.rich .ic { display:block; width:28px; height:28px; color:var(--gold); margin-bottom:16px; }
.stats.rich .ic svg { width:100%; height:100%; display:block; }
.stats.rich .v { font-size:25px; }
.stats.rich .l { max-width:25ch; line-height:1.45; }

/* dark band (project galleries / showcase) */
.band.dark { background:#16141c; color:#e8e9ea; }
/* consecutive dark sections (video gallery) share one rhythm instead of doubling padding */
.band.dark + .band.dark { padding-top:0; }
.band.dark .sec-h { color:#fff; }
.band.dark .lead { color:#b6b9bf; }
.band.dark .sec-eyebrow { color:var(--steel); }
.band.dark .rel { background:#221f2a; border-color:rgba(255,255,255,.1); }
.band.dark .rel .rt { color:#fff; }
.band.dark .rel .mono { color:var(--steel); }
.band.dark .rel:hover { border-color:var(--gold); transform:translateY(-2px); }

/* contact form */
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .form-grid { grid-template-columns:1fr; } }
.field-full { grid-column:1 / -1; }
.field label { display:block; font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--steel); margin-bottom:7px; }
.field input, .field select, .field textarea { width:100%; font:inherit; font-size:16px; padding:13px 14px; min-height:50px; border:1px solid var(--line); border-radius:0; background:#fff; color:var(--ink); }
.field textarea { min-height:130px; resize:vertical; }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible { outline:2px solid var(--charcoal); outline-offset:1px; border-color:var(--charcoal); }
.contact-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:48px; align-items:start; }
@media (max-width:920px){ .contact-grid { grid-template-columns:1fr; gap:34px; } }
.cinfo dt { font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--steel); }
.cinfo dd { margin:4px 0 18px; font-size:15px; color:var(--ink); }
.cinfo dd a { color:var(--ink); }
.form-ok { border:1px solid var(--charcoal); background:var(--paper); padding:28px; }
.form-ok h3 { font-size:24px; } .form-ok p { color:var(--charcoal-2); margin-top:10px; }

/* prominent 3D CTA on project pages */
.threed-cta { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; background:linear-gradient(100deg,#241f2c,#1b1820); border:1px solid rgba(246,190,0,.38); border-radius:14px; padding:18px 22px; margin:6px 0 30px; text-decoration:none; transition:border-color .2s, transform .2s, box-shadow .2s; }
.threed-cta:hover { border-color:var(--gold); transform:translateY(-2px); box-shadow:0 18px 44px -28px rgba(246,190,0,.5); }
.threed-cta .t3d-l { display:flex; align-items:center; gap:14px; }
.threed-cta .t3d-ic { width:44px; height:44px; flex:none; display:grid; place-items:center; background:rgba(246,190,0,.14); border-radius:10px; color:var(--gold); }
.threed-cta .t3d-eh { font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); display:block; }
.threed-cta .t3d-h { color:#fff; font-weight:700; font-size:17px; letter-spacing:-.01em; margin-top:3px; display:block; }
@media (max-width:560px){ .threed-cta { padding:16px; } .threed-cta .btn { width:100%; justify-content:center; } }

/* project prev/next navigation (on dark gallery) */
.projnav { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:40px; padding-top:26px; border-top:1px solid rgba(255,255,255,.14); }
.projnav a.pn { font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#cfd0d2; text-decoration:none; display:inline-flex; align-items:center; gap:8px; max-width:42%; }
.projnav a.pn:hover { color:var(--gold); }
.projnav a.pn .pn-lab { color:var(--steel); font-size:9px; display:block; }
.projnav a.pn .pn-nm { color:#e8e9ea; }
.projnav a.pn:hover .pn-nm { color:var(--gold); }
.projnav .pn-next { text-align:right; }
@media (max-width:560px){ .projnav { flex-wrap:wrap; gap:14px; } .projnav .btn { order:3; width:100%; justify-content:center; } .projnav a.pn { max-width:46%; } }

/* scrolling spec marquee (under hero) */
.marquee { position:relative; overflow:hidden; background:var(--charcoal); border-top:3px solid var(--gold); border-bottom:1px solid rgba(255,255,255,.12); }
.marquee-track { display:flex; gap:60px; white-space:nowrap; width:max-content; padding:15px 0; animation:cs-marquee 55s linear infinite; will-change:transform; }
.marquee:hover .marquee-track { animation-play-state:paused; }
.mq-item { font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:500; color:#cfd0d2; display:inline-flex; align-items:center; gap:14px; }
.mq-dot { width:6px; height:6px; background:var(--gold); display:inline-block; flex:none; }
.marquee::before, .marquee::after { content:""; position:absolute; top:0; bottom:0; width:90px; z-index:2; pointer-events:none; }
.marquee::before { left:0; background:linear-gradient(to right, var(--charcoal), transparent); }
.marquee::after { right:0; background:linear-gradient(to left, var(--charcoal), transparent); }
@keyframes cs-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .marquee-track { animation:none; } }

/* hero lead-in value statement */
.leadin { padding:58px 0 52px; }
.leadin-text { font-weight:800; font-size:clamp(23px,3.3vw,38px); letter-spacing:-.025em; line-height:1.2; max-width:28ch; color:var(--ink); margin:0; }
.leadin-text .u { background-image:linear-gradient(var(--gold),var(--gold)); background-size:100% 9px; background-position:0 92%; background-repeat:no-repeat; padding:0 1px; }
@media (max-width:600px){ .leadin { padding:40px 0 34px; } }

/* image placeholders: swap data-img for a real photo later */
.img-ph{display:flex;align-items:center;justify-content:center;min-height:280px;
  background:repeating-linear-gradient(45deg,#1b1b1b,#1b1b1b 12px,#222 12px,#222 24px);
  border:1px dashed #f7cb4d;border-radius:10px;color:#f7cb4d;
  font:600 13px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:20px}
.band.light .img-ph,.band.paper .img-ph{background:repeating-linear-gradient(45deg,#e7e8ea,#e7e8ea 12px,#f4f5f6 12px,#f4f5f6 24px);border-color:#caa92e;color:#9a7d12}
/* alternating media row: text + visual anchor; .rev flips the image to the left */
.media-row{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.media-row.rev > *:first-child{order:2}
.media-row .img-ph{min-height:340px;width:100%}
@media (max-width:880px){ .media-row{grid-template-columns:1fr;gap:28px} .media-row.rev > *:first-child{order:0} }

/* video gallery */
.vgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:36px; }
@media (max-width:860px){ .vgrid { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .vgrid { grid-template-columns:1fr; } }
.video-ph { position:relative; aspect-ratio:16/9; border-radius:12px; background:var(--charcoal-2); border:1px solid rgba(255,255,255,.09); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; text-align:center; padding:16px; overflow:hidden; }
.video-ph::before { content:""; position:absolute; inset:0; background-image:repeating-linear-gradient(-45deg, transparent 0, transparent 13px, rgba(255,255,255,.018) 13px, rgba(255,255,255,.018) 14px); }
.video-ph .play { position:relative; z-index:1; width:56px; height:56px; border-radius:50%; background:var(--gold); color:var(--ink); display:flex; align-items:center; justify-content:center; transition:transform .15s; box-shadow:0 8px 24px -8px rgba(246,190,0,.5); }
.video-ph:hover .play { transform:scale(1.08); }
.video-ph .play svg { margin-left:3px; }
.video-ph .vlabel { position:relative; z-index:1; font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#cfd0d2; max-width:82%; line-height:1.4; }
.video-ph .soon { position:absolute; top:10px; right:10px; z-index:1; font-size:9px; letter-spacing:.14em; color:var(--gold); border:1px solid rgba(246,190,0,.4); padding:3px 8px; border-radius:20px; }
/* real YouTube video facade: poster + play, swaps to iframe on click */
.video-ph.yt { cursor:pointer; background-size:cover; background-position:center; justify-content:flex-end; align-items:flex-start; }
.video-ph.yt::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,15,15,.12) 0%, rgba(15,15,15,.62) 100%); }
.video-ph.yt .play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); }
.video-ph.yt:hover .play { transform:translate(-50%,-50%) scale(1.08); }
.video-ph.yt .vlabel { color:#fff; text-align:left; max-width:90%; }
.video-ph iframe { position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:12px; }

/* enclosed video card: prominent header on top, large full-bleed video below */
.vcard { background:var(--white); border:1px solid var(--line); border-top:3px solid var(--gold); box-shadow:0 26px 56px -42px rgba(31,31,31,.5); overflow:hidden; }
.vcard + .vcard { margin-top:28px; }
.vcard .vf-body { padding:30px 36px 26px; }
.vcard .vf-body h3 { font-size:clamp(24px,2.8vw,34px); letter-spacing:-.025em; margin:9px 0 0; line-height:1.08; }
.vcard .vf-body > p { color:var(--charcoal-2); margin:13px 0 0; font-size:15.5px; line-height:1.55; max-width:74ch; }
.vcard .vf-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.vcard .vf-tags span { font-family:var(--mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); border:1px solid var(--line); padding:6px 10px; }
.vcard .vf-media .video-ph { aspect-ratio:16/9; border-radius:0; border:0; display:block; }
@media (max-width:820px){
  .vcard .vf-body { padding:22px 20px 18px; }
  .vcard .vf-body h3 { font-size:clamp(23px,6.4vw,30px); }
  .vcard .vf-body > p { font-size:15px; }
}

/* ===== LGS case studies + selected projects (carried from TESH) ===== */
.case { display:grid; grid-template-columns:1fr 1fr; gap:46px; align-items:center; padding:40px 0; }
.case + .case { border-top:1px solid var(--line); }
.case.flip .case-media { order:2; }
.case-media { display:grid; gap:10px; }
.case-media img { width:100%; height:100%; object-fit:cover; border:1px solid var(--line); }
.case-media .cap { display:block; border:0; background:none; padding:4px 0 0; min-height:0; font-family:var(--mono); color:var(--steel); font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.case-tag { display:inline-block; font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--steel); }
.case-body h3 { font-size:clamp(24px,2.6vw,32px); letter-spacing:-.02em; margin:10px 0 14px; }
.case-body p { color:var(--charcoal-2); line-height:1.6; margin:0 0 12px; max-width:60ch; }
.case-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:22px; border-top:1px solid var(--line); padding-top:20px; }
.case-stats .v { font-size:25px; font-weight:800; letter-spacing:-.02em; color:var(--ink); }
.case-stats .v span { color:var(--gold); padding:0 5px; }
.case-stats .l { font-family:var(--mono); font-size:10.5px; letter-spacing:.05em; color:var(--steel); text-transform:uppercase; margin-top:7px; line-height:1.35; }
@media (max-width:820px){ .case { grid-template-columns:1fr; gap:24px; padding:28px 0; } .case.flip .case-media { order:0; } .case-stats { grid-template-columns:1fr 1fr; } }

/* selected projects (4-up card grid; each card = lead image + 2 support shots) */
.selwork { display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:30px; }
.selcard { border:1px solid var(--line); background:var(--white); }
.selcard .lead-img { aspect-ratio:16/10; overflow:hidden; }
.selcard .lead-img img { width:100%; height:100%; object-fit:cover; }
.selcard .sup { display:grid; grid-template-columns:1fr 1fr; }
.selcard .sup img { width:100%; aspect-ratio:4/3; object-fit:cover; border-top:1px solid var(--line); }
.selcard .sup img + img { border-left:1px solid var(--line); }
.selcard .meta { padding:18px 20px 20px; }
.selcard .meta .sector { font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); }
.selcard .meta h3 { font-size:20px; letter-spacing:-.01em; margin:7px 0 4px; }
.selcard .meta .loc { color:var(--steel); font-size:13.5px; }
.selcard .meta .size { font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--charcoal-2); margin-top:8px; text-transform:uppercase; }
@media (max-width:820px){ .selwork { grid-template-columns:1fr; gap:20px; } }

/* ===== full factory gallery ===== */
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:30px; }
@media (max-width:920px){ .gallery-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:620px){ .gallery-grid { grid-template-columns:repeat(2,1fr); } }
.gcell { margin:0; aspect-ratio:4/3; overflow:hidden; border:1px solid var(--line); cursor:zoom-in; background:var(--paper-2); }
.gcell img { width:100%; height:100%; object-fit:cover; transition:transform .35s var(--ease); display:block; }
.gcell:hover img { transform:scale(1.06); }
.lb-count2 { position:absolute; bottom:18px; left:0; right:0; text-align:center; color:#cfd0d2; font-family:var(--mono); font-size:11px; letter-spacing:.14em; }
/* full-gallery pop-up overlay (opens over the page; no navigation) */
.gallery-modal { position:fixed; inset:0; z-index:300; display:none; background:rgba(15,15,15,.975); overflow-y:auto; -webkit-overflow-scrolling:touch; }
.gallery-modal.open { display:block; }
.gm-bar { position:sticky; top:0; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 24px; background:rgba(15,15,15,.92); border-bottom:1px solid rgba(255,255,255,.1); }
.gm-bar .gm-title { font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#cfd0d2; }
.gm-close { background:transparent; border:1px solid rgba(255,255,255,.3); color:#fff; width:40px; height:40px; cursor:pointer; font-size:20px; line-height:1; transition:border-color .15s, color .15s; }
.gm-close:hover { border-color:var(--gold); color:var(--gold); }
.gm-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; padding:24px; max-width:1340px; margin:0 auto; }
@media (max-width:920px){ .gm-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:620px){ .gm-grid { grid-template-columns:repeat(2,1fr); } }
.gallery-modal .gcell { aspect-ratio:4/3; border:1px solid rgba(255,255,255,.12); background:#262626; }
.gm-lb { z-index:400; }
/* build-sequence grid on the dark showcase band */
.build-seq { margin-top:28px; }
/* build-sequence cells: enclosed image box + numbered caption below (matches .gcshots) */
.build-seq .seqcell { margin:0; display:flex; flex-direction:column; }
.build-seq .seqimg { display:block; aspect-ratio:4/3; overflow:hidden; border:1px solid rgba(255,255,255,.12); background:#262626; cursor:zoom-in; }
.build-seq .seqimg img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s var(--ease); }
.build-seq .seqimg:hover img { transform:scale(1.06); }
.build-seq figcaption { margin-top:10px; font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#a9abad; line-height:1.4; }
.band.platform .gcell { border-color:rgba(255,255,255,.12); background:#262626; }
.platform .fab-head .sec-h { max-width:32ch; }

/* ===== modular showcase: one cohesive box, video on top, owned-production body below ===== */
.modshow { margin-top:34px; background:var(--charcoal); color:#fff; border:1px solid rgba(255,255,255,.1); border-top:3px solid var(--gold); box-shadow:0 26px 56px -42px rgba(31,31,31,.55); overflow:hidden; }
.modshow-video .video-ph { aspect-ratio:16/9; display:block; border:0; border-radius:0; }
.modshow-cap { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 20px; padding:18px 40px; border-bottom:1px solid rgba(255,255,255,.1); }
.modshow-cap .mono { color:var(--gold); font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:600; }
.modshow-cap p { margin:0; color:#c9cacc; font-size:14px; line-height:1.5; max-width:78ch; }
.modshow-body { padding:40px 40px 44px; }
.modshow-body .sec-eyebrow { color:var(--gold); margin-bottom:14px; }
.modshow-body h3 { color:#fff; font-size:clamp(24px,2.8vw,33px); letter-spacing:-.025em; line-height:1.12; margin:0; }
.modshow-body .note { margin-top:18px; color:#c9cacc; max-width:66ch; font-size:15px; line-height:1.6; }
.modshow-body .note b { color:var(--gold); font-weight:600; }
@media (max-width:640px){
  .modshow-cap { padding:16px 20px; }
  .modshow-body { padding:26px 20px 30px; }
}

/* ===== whole-rooms enclosed panel: prose + benefits + factory-floor gallery ===== */
.roompanel { background:var(--white); border:1px solid var(--line); border-top:3px solid var(--gold); box-shadow:0 26px 56px -46px rgba(31,31,31,.4); padding:44px 44px 46px; }
.roompanel .twocol { align-items:start; }
.roomfeat { margin:0; }
.roomfeat img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; border:1px solid var(--line); cursor:zoom-in; }
.roomfeat figcaption { margin-top:12px; font-family:var(--mono); font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--charcoal-2); line-height:1.45; }
.roomshots { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:30px; padding-top:30px; border-top:1px solid var(--line); }
.roomshots figure { margin:0; }
.roomshots img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; border:1px solid var(--line); cursor:zoom-in; transition:transform .35s var(--ease); }
.roomshots figure:hover img { transform:scale(1.04); }
.roomshots figcaption { margin-top:10px; font-family:var(--mono); font-size:10.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--charcoal-2); line-height:1.4; }
@media (max-width:760px){ .roomshots { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .roompanel { padding:26px 20px 30px; } }

/* ===== knowledge base: FAQ + articles ===== */
.faqlist { margin-top:30px; border-top:1px solid var(--line); }
.qa { padding:26px 0; border-bottom:1px solid var(--line); }
.qa h3 { font-size:20px; letter-spacing:-.01em; margin:0 0 10px; }
.qa p { color:var(--charcoal-2); line-height:1.65; margin:0 0 10px; max-width:74ch; }
.qa p:last-child { margin-bottom:0; }
.article { max-width:760px; }
.article .answer { font-size:18px; color:var(--ink); background:var(--paper-2); border-left:3px solid var(--gold); padding:16px 20px; margin:4px 0 26px; line-height:1.6; }
.article h2 { font-size:26px; letter-spacing:-.02em; margin:34px 0 12px; }
.article h3 { font-size:19px; margin:24px 0 8px; }
.article p { color:var(--charcoal-2); line-height:1.7; margin:0 0 16px; }
.article ul { margin:0 0 18px; padding-left:20px; color:var(--charcoal-2); line-height:1.7; }
.article ul li { margin-bottom:6px; }
.article .meta-row { font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--steel); margin-bottom:18px; }
.kb-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(258px,1fr)); gap:20px; margin-top:30px; }
.kb-card { display:flex; flex-direction:column; border:1px solid var(--line); background:var(--white); padding:24px; transition:transform .2s var(--ease), box-shadow .2s var(--ease); }
.kb-card:hover { transform:translateY(-3px); box-shadow:0 16px 40px -22px rgba(0,0,0,.3); }
.kb-card .tag { font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); }
.kb-card h3 { font-size:18px; margin:9px 0 8px; letter-spacing:-.01em; }
.kb-card p { color:var(--steel); font-size:14px; line-height:1.55; margin:0 0 16px; flex:1; }
.kb-card .more { font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--gold); padding-bottom:2px; align-self:flex-start; }

/* ===== scroll-reveal motion (activated only when motion.js adds .cs-reveal to <html>) ===== */
.cs-reveal .cs-rv { opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.cs-reveal .cs-rv.cs-in { opacity:1; transform:none; }
/* gentle hover lift on key cards (adds to existing hovers) */
.cap, .feat, .selcard, .vtile, .rel { transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .15s; }
.selcard:hover { transform:translateY(-3px); box-shadow:0 16px 40px -22px rgba(0,0,0,.35); }
.feat:hover { transform:translateY(-2px); }

/* ===== interaction polish: buttons, logo, nav (subtle "aliveness") ===== */

/* Buttons: lift on hover + a light-sweep that crosses the face. */
.btn { position:relative; overflow:hidden; transition:background .15s, color .15s, border-color .15s, transform .22s var(--ease), box-shadow .22s var(--ease); }
.btn::after { content:""; position:absolute; top:0; left:-140%; width:55%; height:100%; background:linear-gradient(100deg, transparent, rgba(255,255,255,.5), transparent); transform:skewX(-18deg); pointer-events:none; }
.btn:hover { transform:translateY(-2px); box-shadow:0 10px 22px -12px rgba(0,0,0,.45); }
.btn:hover::after { animation:cs-btn-sheen .7s var(--ease); }
.btn:active { transform:translateY(0); box-shadow:none; }
.btn-gold:hover { box-shadow:0 12px 26px -10px rgba(246,190,0,.6); }
.btn-ghost:hover { box-shadow:0 10px 22px -14px rgba(246,190,0,.4); }
@keyframes cs-btn-sheen { from { left:-140%; } to { left:160%; } }

/* Logo: a quick pop + gold glow on hover so the brand feels live, not frozen. */
.brand .logo { transition:transform .35s var(--ease), filter .35s var(--ease); transform-origin:center; will-change:transform; }
.brand:hover .logo { filter:drop-shadow(0 5px 16px rgba(246,190,0,.5)); animation:cs-logo-pop .55s var(--ease) forwards; }
@keyframes cs-logo-pop { 0% { transform:scale(1) rotate(0); } 45% { transform:scale(1.09) rotate(-1.4deg); } 100% { transform:scale(1.05) rotate(0); } }

/* Nav links: a gold underline that grows in from the left. */
nav.main a { position:relative; }
nav.main a::after { content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left center; transition:transform .25s var(--ease); }
nav.main a:hover::after, nav.main a.active::after { transform:scaleX(1); }

/* ===== mobile refinements (phone-first: most traffic is mobile) ===== */
@media (max-width:560px){
  /* one column where 2-up bodies get too cramped for body copy */
  .svc { grid-template-columns:1fr; }
  .process { grid-template-columns:1fr; }
  /* datasheet rows read cleaner stacked (label over value) than squeezed side by side */
  .specsheet > div { flex-direction:column; align-items:flex-start; gap:4px; padding-top:13px; padding-bottom:13px; }
  .specsheet dd { text-align:left; }
  /* stats: stack big numbers full width so labels don't wrap to four lines */
  .stats .grid { grid-template-columns:1fr; }
  .stats .cell { border-right:0; border-bottom:1px solid rgba(255,255,255,.08); }
  .stats .cell:last-child { border-bottom:0; }
  /* tighten section + hero rhythm on small screens */
  section.band { padding:56px 0; }
  .sec-h { font-size:clamp(26px,7vw,34px); }
  .wrap { padding:0 22px; }
  /* header CTA: trim so logo + button + menu never crowd at 320-375px */
  .hdr .btn-cta { padding:11px 13px; font-size:10px; letter-spacing:.08em; }
}

@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} *{ transition:none !important; animation:none !important; } .cs-reveal .cs-rv { opacity:1 !important; transform:none !important; } .brand:hover .logo { transform:none; } .btn::after, nav.main a::after { display:none; } }

/* ============================================================
   Builder & GC support — enclosed panel (ported from TESH homepage)
   ============================================================ */
.bgc-panel { border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.03); padding:56px; }
.bgc-chip { display:inline-flex; align-items:center; gap:9px; border:1px solid rgba(255,255,255,.2); background:var(--charcoal); padding:9px 14px; color:#fff; }
.bgc-chip .dot { width:6px; height:6px; background:var(--gold); display:inline-block; }
.bgc-chip .lbl { font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; }
.bgc-top { margin-top:26px; display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.bgc-top .sec-eyebrow { color:var(--gold); }
.bgc-top .sec-h { color:#fff; }
.bgc-body { margin-top:22px; display:flex; flex-direction:column; gap:16px; color:rgba(255,255,255,.85); font-size:17px; line-height:1.6; }
/* Homepage box gallery uses the same clean caption-below treatment as the builder-gc page (.gcshots), 2-up */
.bgc-top .gcshots { margin-top:4px; }
.bgc-media { position:relative; margin:0; border:1px solid rgba(255,255,255,.14); border-radius:7px; overflow:hidden; min-height:280px; cursor:zoom-in; }
.bgc-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.bgc-media:hover img { transform:scale(1.03); }
@media (max-width:860px){ .bgc-media { min-height:0; aspect-ratio:16/10; } }
/* Builder & GC page — process gallery: full-width 4-across, caption BELOW the image (.two = 2-up for the homepage box) */
.gcshots { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:44px; }
.gcshots.two { grid-template-columns:1fr 1fr; gap:16px; }
.gcshot { margin:0; }
.gcshot img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; border:1px solid rgba(255,255,255,.14); }
.gcshot figcaption { margin-top:12px; font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#a9abad; line-height:1.45; }
@media (max-width:860px){ .gcshots { grid-template-columns:1fr 1fr; gap:16px 16px; } }
.bgc-standout { margin-top:44px; border-left:3px solid var(--gold); padding-left:22px; font-size:clamp(22px,2.6vw,30px); font-weight:800; letter-spacing:-.02em; line-height:1.28; color:#fff; max-width:64ch; }
.bgc-phases { margin-top:44px; display:grid; grid-template-columns:1fr 1fr; gap:44px; }
.bgc-phase .plabel { font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.bgc-phase ul { margin:18px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:12px; }
.bgc-phase li { display:flex; align-items:flex-start; gap:12px; font-size:15px; line-height:1.4; color:rgba(255,255,255,.9); }
.bgc-phase li::before { content:""; width:4px; height:4px; margin-top:8px; background:rgba(255,255,255,.5); flex:0 0 auto; }
.bgc-split { margin-top:52px; border-top:1px solid rgba(255,255,255,.15); padding-top:40px; }
.bgc-split .intro { font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.bgc-cols { margin-top:30px; display:grid; grid-template-columns:1fr 1fr; gap:1px; border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.15); }
.bgc-col { background:var(--charcoal); padding:28px; }
.bgc-col .colhead { font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.bgc-col ul { margin:20px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:12px; }
.bgc-col li { display:flex; align-items:flex-start; gap:12px; font-size:15px; line-height:1.4; color:rgba(255,255,255,.9); }
.bgc-col li svg { margin-top:1px; flex:0 0 auto; }
.bgc-cta { margin-top:40px; }
/* ===== SHARED PROJECT GALLERY (ported from the GC campaign landing page) =====
   Enclosed project cards with a big main image + 4 clickable side thumbs,
   a "view full gallery" button, and a shared lightbox. Reused across
   light-gauge-steel.html, structural-steel.html, and projects.html via
   project-lightbox.js + a small per-page window.PROJECT_GALLERIES data script. */
.projcard { border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.035); padding:clamp(24px,3.4vw,46px); border-radius:16px; }
.projcard.light { border-color:rgba(0,0,0,.10); background:var(--paper); }

.lp-feat { display:grid; grid-template-columns:1.55fr 1fr; gap:14px; margin-top:34px; align-items:start; }
.lp-feat > * { min-width:0; }
.lp-feat .main { margin:0; position:relative; }
.lp-feat .main img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; border:1px solid rgba(255,255,255,.14); background:#000; border-radius:10px; }
.lp-feat .side { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.lp-feat .side img { width:100%; aspect-ratio:1.034; object-fit:cover; display:block; border:1px solid rgba(255,255,255,.14); border-radius:10px; }
.projcard.light .lp-feat .main img, .projcard.light .lp-feat .side img { border-color:rgba(0,0,0,.12); }
.lp-cap { margin-top:14px; font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#a9abad; }
.projcard.light .lp-cap { color:var(--steel); }
@media (max-width:760px){
  .lp-feat { grid-template-columns:1fr; }
  .lp-feat .side { grid-template-rows:auto auto; }
  .lp-feat .side img { height:auto; aspect-ratio:4/3; }
}

img[data-gallery] { cursor:zoom-in; transition:filter .2s ease; }
img[data-gallery]:hover { filter:brightness(1.07); }
.jg-more { margin-top:22px; }
.jg-btn { display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:#fff; background:transparent; border:1px solid rgba(255,255,255,.32); padding:13px 20px; cursor:pointer; transition:border-color .2s,color .2s; }
.jg-btn .cnt { color:var(--gold); }
.jg-btn:hover { border-color:var(--gold); color:var(--gold); }
.projcard.light .jg-btn { color:#1a1a1a; border-color:rgba(0,0,0,.22); }
.projcard.light .jg-btn:hover { color:#b8860b; border-color:var(--gold); }

.lb { position:fixed; inset:0; z-index:9999; background:rgba(8,8,10,.95); display:none; align-items:center; justify-content:center; }
.lb.open { display:flex; }
.lb .lb-img { max-width:92vw; max-height:82vh; object-fit:contain; box-shadow:0 30px 80px -20px rgba(0,0,0,.85); }
.lb-cap { position:absolute; left:0; right:0; bottom:22px; text-align:center; color:#e7e8ea; font-family:var(--mono); font-size:13px; letter-spacing:.03em; padding:0 70px; line-height:1.5; }
.lb-cap .idx { color:var(--gold); margin-right:10px; }
.lb-btn { position:absolute; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.28); color:#fff; width:52px; height:52px; border-radius:50%; font-size:24px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s,border-color .2s,color .2s; }
.lb-btn:hover { background:rgba(246,190,0,.92); border-color:var(--gold); color:#111; }
.lb-prev { left:20px; top:50%; transform:translateY(-50%); }
.lb-next { right:20px; top:50%; transform:translateY(-50%); }
.lb-close { right:20px; top:20px; width:44px; height:44px; font-size:22px; }
@media (max-width:760px){ .lb-prev{left:8px} .lb-next{right:8px} .lb-close{right:10px;top:10px} .lb .lb-img{max-width:96vw;max-height:74vh} .lb-cap{padding:0 16px;bottom:16px;font-size:12px} }

@media (max-width:860px){
  .bgc-panel { padding:32px 22px; }
  .bgc-top { grid-template-columns:1fr; gap:28px; }
  .bgc-phases { grid-template-columns:1fr; gap:30px; }
  .bgc-cols { grid-template-columns:1fr; }
}

/* Shared click-to-play video facade (poster + gold play button). Used with
   video-facade.js. Rounded to match .lp-feat/.projcard image treatment. */
.videofacade{cursor:pointer; position:relative;}
.videofacade img{display:block;}
.videofacade .playbtn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:66px;height:66px;border-radius:50%;border:0;background:rgba(246,190,0,.94);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 30px -10px rgba(0,0,0,.6);transition:transform .2s ease, background .2s ease;}
.videofacade:hover .playbtn{transform:translate(-50%,-50%) scale(1.09);background:var(--gold,#f6be00);}
.videofacade .playbtn i{display:block;width:0;height:0;border-left:20px solid #101010;border-top:13px solid transparent;border-bottom:13px solid transparent;margin-left:5px;}
.videofacade iframe,.videofacade video{width:100%;aspect-ratio:16/10;display:block;border:1px solid rgba(255,255,255,.14);background:#000;}
.lp-feat .main.videofacade img,.lp-feat .main.videofacade iframe,.lp-feat .main.videofacade video{border-radius:10px;}
.projcard.light .lp-feat .main.videofacade img{border-color:rgba(0,0,0,.12);}
.playtag{position:absolute;left:14px;bottom:12px;background:rgba(0,0,0,.62);color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:5px;}
