



.colo-crumb { margin-block-end: var(--sp-4); }
.colo-crumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--fs-micro);
  color: var(--ink-muted);
}
.colo-crumb li + li::before { content: "/"; margin-inline-end: var(--sp-2); }
.colo-crumb [aria-current="page"] { color: var(--ink); }



.colo-ico {
  width: 24px;
  height: 24px;
  flex: none;
  fill: none;
  stroke: var(--ink-muted);
  stroke-width: 1.5;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.colo-draw { display: block; width: 100%; height: auto; }
.colo-draw__line {
  fill: none;
  stroke: var(--ink);
  stroke-width: 1.5;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.colo-draw__fine {
  fill: none;
  stroke: var(--ink-dim);
  stroke-width: 1;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.colo-draw__ext {
  fill: none;
  stroke: var(--accent);
  stroke-width: 2;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.colo-draw__t { fill: var(--ink); font-family: var(--font-mono); font-size: 12px; }
.colo-draw__dim { fill: var(--ink-muted); font-family: var(--font-mono); font-size: 11px; }



.colo-hero { padding-block-start: clamp(2rem, 5vw, 3.5rem); }
.colo-hero__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.colo-hero__h1 {
  margin: var(--sp-3) 0 var(--sp-3);
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 3.6vw, 3.25rem);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -.02em;
}
.colo-hero__claim {
  max-width: 34ch;
  margin: 0 0 var(--sp-4);
  padding-inline-start: var(--sp-3);
  border-inline-start: 2px solid var(--ink);
  font-size: var(--fs-h3);
  font-weight: 600;
  line-height: 1.4;
}
.colo-hero__sub {
  max-width: 52ch;
  margin: 0 0 var(--sp-6);
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--ink-muted);
}
.colo-hero__media { margin: 0; }
.colo-hero__media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}


.colo-figs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sp-4);
  margin: var(--sp-8) 0 0;
  padding-block-start: var(--sp-4);
  border-block-start: 1px solid var(--rule);
}
.colo-figs__k {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.colo-figs__v {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  margin: var(--sp-2) 0 0;
}
.colo-figs__n {
  font-family: var(--font-mono);
  font-size: var(--fs-figure);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: .95;
  letter-spacing: -.02em;
  color: var(--ink);
}
.colo-figs__u {
  font-family: var(--font-body);
  font-size: var(--fs-h3);
  font-weight: 600;
  color: var(--ink-muted);
}



.colo-pc__lede {
  max-width: 62ch;
  margin: var(--sp-3) 0 var(--sp-6);
  color: var(--ink-muted);
}
.colo-pc__list {
  display: grid;
  border-block-start: 1px solid var(--rule);
}
.colo-pc__row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--sp-4);
  align-items: start;
  padding-block: var(--sp-4);
  border-block-end: 1px solid var(--rule-soft);
}
.colo-pc__now,
.colo-pc__then {
  margin: 0;
  padding: var(--sp-3);
  border-radius: var(--r-flat);
  font-size: var(--fs-small);
  line-height: 1.5;
}
.colo-pc__now { background: var(--ground-cool); color: var(--ink); }
.colo-pc__then { background: var(--sheet); border: 1px solid var(--rule); color: var(--ink); }
.colo-pc__tag {
  display: block;
  margin-block-end: var(--sp-1);
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-muted);
}



.colo-spec__table th[scope="row"] { width: 30%; }



.colo-elev__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}
.colo-elev__txt h2 { margin: var(--sp-2) 0 var(--sp-4); }
.colo-elev__txt p { max-width: 56ch; margin: 0 0 var(--sp-4); }
.colo-elev__fig { margin: 0; }
.colo-elev__fig figcaption {
  margin-block-start: var(--sp-3);
  font-size: var(--fs-micro);
  line-height: 1.5;
  color: var(--ink-muted);
}
.colo-elev__list { margin: 0; border-block-start: 1px solid var(--rule); }
.colo-elev__list li {
  display: grid;
  grid-template-columns: minmax(0, 11ch) minmax(0, 1fr);
  gap: var(--sp-4);
  padding-block: var(--sp-3);
  border-block-end: 1px solid var(--rule-soft);
}
.colo-elev__k {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.colo-elev__v { font-size: var(--fs-small); line-height: 1.5; }



.colo-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--sp-1);
  margin: var(--sp-6) 0 0;
  padding: 0;
  list-style: none;
  border-block-start: 1px solid var(--rule);
}
.colo-steps__i {
  display: grid;
  gap: var(--sp-2);
  align-content: start;
  padding: var(--sp-4) var(--sp-4) var(--sp-6) 0;
  border-block-end: 1px solid var(--rule-soft);
}
.colo-steps__n {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  font-variant-numeric: tabular-nums;
  letter-spacing: .1em;
  color: var(--ink-muted);
}
.colo-steps__h { margin: 0; font-size: var(--fs-small); font-weight: 650; line-height: 1.35; }
.colo-cad__line {
  max-width: 78ch;
  margin: var(--sp-6) 0 0;
  padding-block-start: var(--sp-4);
  border-block-start: 1px solid var(--rule-soft);
  font-size: var(--fs-body);
  font-weight: 600;
}
.colo-cad__fig { margin: var(--sp-8) 0 0; }
.colo-cad__fig img {
  width: 100%;
  aspect-ratio: 21 / 9;
  
  max-height: 52vh;
  object-fit: cover;
}
.colo-cad__fig figcaption {
  margin-block-start: var(--sp-3);
  font-size: var(--fs-micro);
  line-height: 1.5;
  color: var(--ink-muted);
}



.colo-own__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-block-start: var(--sp-6);
}
.colo-own__col {
  padding: var(--sp-6);
  background: var(--sheet);
  border: 1px solid var(--rule);
  border-radius: var(--r-card);
}
.colo-own__col--partner {
  background: var(--ground-cool);
  border-inline-start: 2px solid var(--ink);
}
.colo-own__head {
  margin: 0 0 var(--sp-4);
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink);
}
.colo-own__list { margin: 0; padding: 0; list-style: none; }
.colo-own__li {
  display: grid;
  gap: var(--sp-1);
  padding-block: var(--sp-3);
  border-block-end: 1px solid var(--rule-soft);
}
.colo-own__li:last-child { border-block-end: 0; }
.colo-own__k { font-size: var(--fs-small); font-weight: 650; }
.colo-own__v { font-size: var(--fs-small); line-height: 1.5; color: var(--ink-muted); }
.colo-own__link {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  margin-block-start: var(--sp-4);
  font-size: var(--fs-small);
  font-weight: 600;
  color: var(--ink);
}



.colo-docs__line {
  max-width: 76ch;
  margin: var(--sp-3) 0 0;
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--ink-muted);
}



.colo-proj__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}
.colo-proj__fig { margin: 0; }
.colo-proj__fig img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.colo-proj__fig figcaption {
  margin-block-start: var(--sp-3);
  font-size: var(--fs-micro);
  line-height: 1.5;
  color: var(--ink-muted);
}
.colo-proj__txt h2 { margin: var(--sp-2) 0 var(--sp-4); }
.colo-proj__txt > p { max-width: 56ch; margin: 0 0 var(--sp-4); }
.colo-proj__facts { margin: 0; border-block-start: 1px solid var(--rule); }
.colo-proj__fact {
  display: grid;
  grid-template-columns: minmax(0, 10ch) minmax(0, 1fr);
  gap: var(--sp-4);
  padding-block: var(--sp-3);
  border-block-end: 1px solid var(--rule-soft);
}
.colo-proj__fact dt {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.colo-proj__fact dd { margin: 0; font-size: var(--fs-small); line-height: 1.55; }



.colo-cta { position: relative; overflow: hidden; }
.colo-cta__media { position: absolute; inset: 0; overflow: hidden; }
.colo-cta__media img { width: 100%; height: 100%; object-fit: cover; }

.colo-cta__veil {
  z-index: 1;
  background: var(--deep);
  opacity: .78;
}
.colo-cta__wrap {
  position: relative;
  z-index: 2;
  display: grid;
  gap: var(--sp-4);
  justify-items: start;
}
.colo-cta__h2 { margin: 0; max-width: 26ch; }
.colo-cta__line {
  max-width: 62ch;
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--ink-muted);
}
.colo-cta__acts { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-block-start: var(--sp-2); }
.colo-cta__promise { max-width: 62ch; margin: 0; font-size: var(--fs-small); }
.colo-cta__rel {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3) var(--sp-6);
  margin: var(--sp-4) 0 0;
  padding: var(--sp-4) 0 0;
  border-block-start: 1px solid var(--rule-soft);
  list-style: none;
  font-size: var(--fs-small);
}



@media (max-width: 1080px) {
  .colo-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .colo-hero__grid,
  .colo-elev__grid,
  .colo-own__cols,
  .colo-proj__grid { grid-template-columns: minmax(0, 1fr); }
  .colo-figs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .colo-pc__row { grid-template-columns: 24px minmax(0, 1fr); }
  .colo-pc__then { grid-column: 2; }
}
@media (max-width: 620px) {
  .colo-steps { grid-template-columns: minmax(0, 1fr); }
  .colo-figs { grid-template-columns: minmax(0, 1fr); }
  .colo-elev__list li,
  .colo-proj__fact { grid-template-columns: minmax(0, 1fr); gap: var(--sp-1); }
  .colo-pc__now,
  .colo-pc__then { grid-column: 1 / -1; }
}
