/* ============================================================
   site.css — tenant-facing components
   Loads AFTER styles.css. Reuses the same tokens.
   ============================================================ */

/* ---------- SERVICE CARDS (GPUaaS / Private / Public / Supercluster) ---------- */
.svc-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:1px;background:var(--hair);border:1px solid var(--hair);
}
.svc{
  background:var(--ink);padding:48px 40px;
  display:flex;flex-direction:column;
  transition:background .4s var(--ease);
}
.svc:hover{background:var(--panel-2)}
.svc .svc-no{
  font-family:"Geist Mono",monospace;font-size:.68rem;letter-spacing:.22em;
  color:var(--cyan);margin-bottom:26px;
}
.svc h3{
  font-family:"Geist",sans-serif;font-size:1.5rem;font-weight:500;
  letter-spacing:-.01em;line-height:1.2;margin-bottom:8px;
}
.svc .svc-for{
  font-size:.82rem;color:var(--cream-faint);font-weight:300;
  margin-bottom:20px;line-height:1.5;
}
.svc p{font-size:.95rem;color:var(--cream-dim);font-weight:300;line-height:1.65}
.svc ul{list-style:none;margin:24px 0 0;padding:0}
.svc li{
  position:relative;padding-left:22px;font-size:.88rem;color:var(--cream-dim);
  font-weight:300;line-height:1.55;margin-bottom:10px;
}
.svc li::before{content:"›";position:absolute;left:2px;top:0;color:var(--cyan)}
.svc .svc-foot{margin-top:auto;padding-top:32px}
.svc .svc-link{
  font-family:"Geist Mono",monospace;font-size:.7rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--cyan);
  display:inline-flex;align-items:center;gap:9px;transition:gap .25s var(--ease);
}
.svc .svc-link:hover{gap:16px}

/* ---------- VERTICAL INTEGRATION STACK ---------- */
.stack{
  border:1px solid var(--hair);background:var(--panel);
  display:flex;flex-direction:column;
}
.stack-row{
  display:grid;grid-template-columns:56px 1fr;gap:24px;align-items:center;
  padding:24px 28px;border-bottom:1px solid var(--hair);
}
.stack-row:last-child{border-bottom:none}
.stack-row .layer{
  font-family:"Geist Mono",monospace;font-size:.66rem;letter-spacing:.14em;
  color:var(--cyan);text-align:right;
}
.stack-row .what{font-size:.95rem;color:var(--cream);font-weight:400}
.stack-row .what span{display:block;font-size:.82rem;color:var(--cream-faint);font-weight:300;margin-top:5px;line-height:1.5}
.stack-row.owned{background:linear-gradient(90deg,rgba(93,228,255,.055),transparent)}

/* comparison: own vs resell */
.versus{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:56px}
.versus-col{background:var(--ink);padding:38px 32px}
.versus-col.us{background:var(--panel-2)}
.versus-col h4{
  font-family:"Geist Mono",monospace;font-size:.7rem;letter-spacing:.2em;
  text-transform:uppercase;margin-bottom:22px;font-weight:500;
}
.versus-col.them h4{color:var(--cream-faint)}
.versus-col.us h4{color:var(--cyan)}
.versus-col ul{list-style:none;margin:0;padding:0}
.versus-col li{
  position:relative;padding-left:24px;font-size:.92rem;font-weight:300;
  line-height:1.6;margin-bottom:14px;color:var(--cream-dim);
}
.versus-col.them li::before{content:"×";position:absolute;left:3px;top:0;color:var(--cream-faint)}
.versus-col.us li::before{content:"✓";position:absolute;left:2px;top:0;color:var(--cyan)}

/* ---------- CAPACITY ROADMAP ---------- */
.roadmap{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:56px;
}
.rm{background:var(--ink);padding:36px 28px;position:relative}
.rm.live{background:var(--panel-2)}
.rm .rm-when{
  font-family:"Geist Mono",monospace;font-size:.68rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--cream-faint);margin-bottom:20px;
}
.rm.live .rm-when{color:var(--cyan)}
.rm .rm-mw{
  font-family:"Cormorant Garamond",serif;font-size:2.9rem;line-height:1;
  color:var(--cream);display:flex;align-items:baseline;gap:6px;
}
.rm .rm-mw .unit{font-size:1rem;color:var(--cyan);letter-spacing:.04em}
.rm .rm-note{font-size:.82rem;color:var(--cream-dim);font-weight:300;margin-top:18px;line-height:1.55}
.rm .rm-bar{height:3px;background:var(--hair-strong);margin-top:26px;position:relative;overflow:hidden}
.rm .rm-bar i{position:absolute;inset:0 auto 0 0;background:var(--cyan);display:block}

/* ---------- SPEC TABLE (GPU fleet / fabric / storage) ---------- */
.spec{width:100%;border-collapse:collapse;border:1px solid var(--hair);margin-top:40px}
.spec caption{
  caption-side:top;text-align:left;
  font-family:"Geist Mono",monospace;font-size:.7rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--cyan);padding-bottom:18px;
}
.spec th,.spec td{
  text-align:left;padding:18px 22px;border-bottom:1px solid var(--hair);
  font-size:.92rem;font-weight:300;color:var(--cream-dim);vertical-align:top;
}
.spec th{
  font-family:"Geist Mono",monospace;font-size:.66rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cream-faint);font-weight:500;
  background:var(--panel);
}
.spec td:first-child{color:var(--cream);font-weight:400}
.spec tr:last-child td{border-bottom:none}
.spec-wrap{overflow-x:auto}

/* ---------- WORKLOAD TILES ---------- */
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}
.work{background:var(--ink);padding:34px 30px;transition:background .4s var(--ease)}
.work:hover{background:var(--panel-2)}
.work .w-tag{
  font-family:"Geist Mono",monospace;font-size:.64rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--cyan);margin-bottom:16px;
}
.work h3{font-family:"Geist",sans-serif;font-size:1.12rem;font-weight:500;letter-spacing:-.005em;margin-bottom:10px;line-height:1.25}
.work p{font-size:.88rem;color:var(--cream-dim);font-weight:300;line-height:1.6}

/* ---------- ASSET FACT LIST ---------- */
.facts{border-top:1px solid var(--hair);margin-top:44px}
.fact{
  display:grid;grid-template-columns:200px 1fr;gap:32px;
  padding:22px 0;border-bottom:1px solid var(--hair);align-items:baseline;
}
.fact dt{
  font-family:"Geist Mono",monospace;font-size:.68rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--cyan);
}
.fact dd{margin:0;font-size:.98rem;color:var(--cream-dim);font-weight:300;line-height:1.6}
.fact dd strong{color:var(--cream);font-weight:500}

/* ---------- IMAGE ROW ---------- */
.shots{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:56px}
.shot{border:1px solid var(--hair);padding:7px;background:var(--panel);position:relative}
.shot img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(.22) contrast(1.08) brightness(.93)}
.shot .cap{
  font-family:"Geist Mono",monospace;font-size:.64rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cream-faint);padding:14px 4px 6px;
}

/* ---------- STEPS ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:54px;margin-top:48px}
.step{border-top:1px solid var(--hair-strong);padding-top:24px}
.step .n{
  font-family:"Cormorant Garamond",serif;font-size:2.4rem;color:var(--cyan);
  line-height:1;margin-bottom:16px;
}
.step h3{font-family:"Geist",sans-serif;font-size:1.15rem;font-weight:500;margin-bottom:12px;letter-spacing:-.005em}
.step p{font-size:.92rem;color:var(--cream-dim);font-weight:300;line-height:1.6}

/* ---------- PAGE HEADER (inner pages) ---------- */
.page-head{padding:190px 0 0}
.page-head h1{font-size:clamp(2.8rem,6.4vw,5.4rem);margin:.34em 0 .4em;max-width:18ch}
.page-head .lede{color:var(--cream-dim);max-width:62ch;font-weight:300;font-size:1.12rem;line-height:1.6}

/* ---------- INLINE NOTE ---------- */
.note{
  border-left:1px solid var(--cyan-dim);padding:4px 0 4px 24px;
  margin-top:36px;font-size:.9rem;color:var(--cream-faint);font-weight:300;line-height:1.65;max-width:60ch;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
  .svc-grid,.versus,.work-grid,.steps,.shots{grid-template-columns:1fr}
  .roadmap{grid-template-columns:1fr 1fr}
  .svc{padding:40px 30px}
  .fact{grid-template-columns:1fr;gap:8px}
  .page-head{padding:150px 0 0}
  .steps{gap:40px}
}
@media (max-width:560px){
  .roadmap{grid-template-columns:1fr}
  .stack-row{grid-template-columns:1fr;gap:10px}
  .stack-row .layer{text-align:left}
}

/* ---------- ASSET AERIAL (650 Harry Road) ----------
   Daylight satellite imagery tuned to the site's palette:
   desaturate + darken the plate, tint the greys cyan, then
   melt the edges into the black page.                      */
.asset-hero{
  position:relative;padding:0;margin:72px 0 0;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  overflow:hidden;z-index:2;background:var(--black);
}
.asset-plate{position:relative;isolation:isolate}
.asset-plate img{
  display:block;width:100%;
  height:clamp(300px,54vh,600px);
  object-fit:cover;object-position:center 46%;
  filter:grayscale(.68) contrast(1.16) brightness(.56) saturate(.85);
}
/* cyan duotone wash over the desaturated plate */
.asset-plate::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:var(--cyan);mix-blend-mode:color;opacity:.22;
}
/* vignette + top/bottom fade into the page */
.asset-plate::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(180deg,var(--black) 0%,rgba(0,0,0,.15) 26%,rgba(0,0,0,.15) 58%,rgba(0,0,0,.92) 100%),
    radial-gradient(130% 100% at 50% 46%,transparent 38%,rgba(0,0,0,.72) 100%);
}
/* caption sits over the faded bottom edge */
.asset-cap{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  padding-bottom:30px;
}
.asset-cap .lbl{
  font-family:"Geist Mono",monospace;font-size:.68rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--cyan);margin-bottom:10px;
}
.asset-cap p{
  font-size:.95rem;color:var(--cream-dim);font-weight:300;
  max-width:52ch;line-height:1.55;
}
/* corner crop marks, matching .framed */
.asset-hero::before,.asset-hero::after{
  content:"";position:absolute;z-index:4;width:14px;height:14px;
  border:1px solid var(--cyan);pointer-events:none;
}
.asset-hero::before{top:14px;left:14px;border-right:none;border-bottom:none}
.asset-hero::after{bottom:14px;right:14px;border-left:none;border-top:none}

/* same treatment inside a .framed box (home page) */
.framed.framed-aerial img{
  aspect-ratio:16/10;
  filter:grayscale(.68) contrast(1.16) brightness(.6) saturate(.85);
}
.framed.framed-aerial{position:relative;isolation:isolate}
.framed.framed-aerial .framed-tint{
  position:absolute;inset:8px;pointer-events:none;
  background:var(--cyan);mix-blend-mode:color;opacity:.22;
}

@media (max-width:860px){
  .asset-plate img{height:clamp(240px,42vh,360px)}
  .asset-cap{padding-bottom:22px}
  .asset-cap p{font-size:.88rem}
}
@media (prefers-reduced-motion:no-preference){
  .asset-plate img{transition:filter .6s var(--ease)}
}

/* ---------- DIRECT-EMAIL FALLBACK ----------
   Keeps a reachable address in front of the visitor even if the
   form provider silently drops a submission.                    */
.form-direct{
  font-size:.84rem;color:var(--cream-faint);font-weight:300;line-height:1.6;margin-top:-8px;
}
.form-direct a{color:var(--cyan);transition:color .25s}
.form-direct a:hover{color:var(--cream)}
.form-success .form-direct{margin-top:14px}
