/* ==========================================================================
   Section blocks. Each section is a distinct layout family, per the
   "Erode Editorial" design system. Grounds alternate charcoal / ivory.
   ========================================================================== */

.mi-sec { padding-block: clamp(56px, 7vh, 104px); }
.mi-sec--tight { padding-block: clamp(40px, 5vh, 72px); }

/* --------------------------------------------------------------- preloader */

/* Hidden unless JS is confirmed running, and self-dismissing on a CSS timer
   even if the script dies. A stuck preloader would hide the whole site. */
.mi-preloader { display: none; }
.mi-js .mi-preloader { display: grid; animation: mi-preloader-failsafe 0s linear 4s forwards; }
@keyframes mi-preloader-failsafe { to { opacity: 0; visibility: hidden; } }

.mi-preloader {
  position: fixed;
  inset: 0;
  z-index: 10000;
  place-items: center;
  background: var(--mi-charcoal);
  color: var(--mi-ivory);
  font-family: var(--mi-font);
  transition: opacity 0.7s var(--mi-ease), visibility 0.7s var(--mi-ease);
}
.mi-preloader.is-done { opacity: 0; visibility: hidden; }
.mi-preloader__inner { text-align: left; width: min(78vw, 640px); }
.mi-preloader__mark {
  font-size: clamp(1.6rem, 4.4vw, 3.2rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  line-height: 1;
  margin: 0 0 var(--mi-md);
}
.mi-preloader__bar { position: relative; height: 1px; background: rgba(166,162,154,0.25); overflow: hidden; }
.mi-preloader__bar i { position: absolute; inset: 0 auto 0 0; width: 0%; background: var(--mi-bronze); transition: width 0.25s linear; }
.mi-preloader__meta {
  display: flex; justify-content: space-between; gap: var(--mi-sm);
  margin-top: var(--mi-sm);
  font-size: var(--mi-small); font-weight: 500;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--mi-stone);
}
.mi-no-js .mi-preloader { display: none; }

/* --------------------------------------------------------------------- nav */

.mi-nav {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 900;
  font-family: var(--mi-font);
  transition: background-color 0.5s var(--mi-ease), border-color 0.5s var(--mi-ease);
  border-bottom: 1px solid transparent;
}
.mi-nav.is-stuck {
  background: var(--mi-charcoal);
  border-bottom-color: rgba(166,162,154,0.18);
}
.mi-nav__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--mi-md);
  padding-block: clamp(14px, 2vw, 22px);
}
.mi-nav__mark {
  font-size: clamp(0.95rem, 1.5vw, 1.15rem);
  font-weight: 800; letter-spacing: 0.02em; text-transform: uppercase;
  color: var(--mi-ivory); text-decoration: none; line-height: 1;
}
.mi-nav__mark b { color: var(--mi-bronze); font-weight: 800; }
.mi-nav__links { display: none; gap: clamp(18px, 2.4vw, 38px); align-items: center; }
@media (min-width: 1120px) { .mi-nav__links { display: flex; } }
.mi-nav__links a {
  position: relative;
  font-size: var(--mi-small); font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--mi-ivory); text-decoration: none; opacity: 0.78;
  transition: opacity var(--mi-fast) var(--mi-ease);
}
.mi-nav__links a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -6px;
  height: 1px; background: var(--mi-bronze);
  transform: scaleX(0); transform-origin: left;
  transition: transform var(--mi-med) var(--mi-ease);
}
.mi-nav__links a:hover, .mi-nav__links a:focus-visible { opacity: 1; }
.mi-nav__links a:hover::after, .mi-nav__links a:focus-visible::after { transform: scaleX(1); }
.mi-nav .mi-btn { padding: 0.85em 1.5em; }
.mi-nav__cta { display: none; }
@media (min-width: 1120px) { .mi-nav__cta { display: inline-flex; } }

/* --------------------------------------------------------------- manifesto */

.mi-manifesto__inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--mi-md);
}
@media (min-width: 900px) { .mi-manifesto__inner { grid-template-columns: repeat(12, 1fr); } }

.mi-manifesto__lead { grid-column: 1 / -1; }
@media (min-width: 900px) { .mi-manifesto__lead { grid-column: 1 / 9; } }

.mi-manifesto__lead p {
  font-size: clamp(1.9rem, 4.6vw, 4.2rem);
  font-weight: 800; line-height: 1.04; letter-spacing: -0.025em;
  text-transform: uppercase; margin: 0;
}
.mi-manifesto__turn { color: var(--mi-bronze); display: block; margin-top: 0.16em; }

.mi-manifesto__body {
  grid-column: 1 / -1;
  border-top: 1px solid var(--mi-rule);
  padding-top: var(--mi-md);
  margin-top: var(--mi-lg);
}
@media (min-width: 900px) {
  .mi-manifesto__body { grid-column: 8 / 13; margin-top: var(--mi-xl); }
}

/* -------------------------------------------------------------- two paths */

.mi-paths__inner { display: grid; grid-template-columns: 1fr; }
@media (min-width: 900px) { .mi-paths__inner { grid-template-columns: 1fr 1fr; } }

.mi-path {
  position: relative;
  display: flex; flex-direction: column; gap: var(--mi-md);
  padding: clamp(40px, 6vw, 90px) clamp(24px, 4vw, 70px);
  border-top: 1px solid var(--mi-rule);
  text-decoration: none; color: inherit;
  transition: background-color 0.6s var(--mi-ease);
  overflow: hidden;
}
@media (min-width: 900px) {
  .mi-path + .mi-path { border-left: 1px solid var(--mi-rule); }
}
.mi-path:hover, .mi-path:focus-visible { background: rgba(155,122,85,0.07); }
.mi-path__index {
  font-size: var(--mi-small); font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--mi-bronze);
}
.mi-path__title {
  font-size: clamp(1.5rem, 2.5vw, 2.4rem);
  font-weight: 800; line-height: 1.05; letter-spacing: -0.02em;
  text-transform: uppercase; margin: 0;
}
.mi-path__link {
  display: inline-flex; align-items: center; gap: 0.6em;
  font-size: var(--mi-small); font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--mi-bronze);
  margin-top: auto;
}
.mi-path__link span { transition: transform var(--mi-med) var(--mi-ease); }
.mi-path:hover .mi-path__link span { transform: translateX(5px); }

/* ---------------------------------------------------------------- services */

.mi-svc__head {
  display: flex; flex-wrap: wrap; align-items: baseline;
  justify-content: space-between; gap: var(--mi-md);
  margin-bottom: var(--mi-lg);
}

.mi-svc__list { border-top: 1px solid var(--mi-rule); }

.mi-svc__row {
  display: block;
  border-bottom: 1px solid var(--mi-rule);
  padding-block: clamp(22px, 2.6vw, 34px);
  cursor: pointer;
  transition: padding-left 0.5s var(--mi-ease), background-color 0.5s var(--mi-ease);
}
@media (hover: hover) {
  .mi-svc__row:hover { padding-left: clamp(10px, 1.6vw, 26px); background: rgba(155,122,85,0.05); }
}

.mi-svc__top { display: flex; align-items: baseline; gap: clamp(14px, 2.4vw, 40px); }
.mi-svc__num {
  flex: 0 0 auto;
  font-size: var(--mi-small); font-weight: 600;
  letter-spacing: 0.16em; color: var(--mi-bronze);
  padding-top: 0.5em;
}
.mi-svc__name {
  flex: 1 1 auto;
  font-size: clamp(1.35rem, 3.4vw, 2.9rem);
  font-weight: 800; line-height: 1.05; letter-spacing: -0.025em;
  text-transform: uppercase; margin: 0;
  transition: color var(--mi-med) var(--mi-ease);
}
@media (hover: hover) { .mi-svc__row:hover .mi-svc__name { color: var(--mi-bronze); } }

.mi-svc__desc {
  margin: var(--mi-sm) 0 0;
  padding-left: 0;
  max-width: 58ch;
}
@media (min-width: 900px) {
  .mi-svc__desc { padding-left: calc(var(--mi-small) * 4.6); }
  /* Collapsed by default on pointer devices; the row reveals it. */
  .mi-js .mi-svc__desc {
    display: grid; grid-template-rows: 0fr;
    opacity: 0; margin-top: 0;
    transition: grid-template-rows 0.55s var(--mi-ease),
                opacity 0.45s var(--mi-ease),
                margin-top 0.55s var(--mi-ease);
  }
  .mi-js .mi-svc__desc > span { overflow: hidden; }
  .mi-js .mi-svc__row:hover .mi-svc__desc,
  .mi-js .mi-svc__row:focus-within .mi-svc__desc,
  .mi-js .mi-svc__row.is-open .mi-svc__desc {
    grid-template-rows: 1fr; opacity: 1; margin-top: var(--mi-sm);
  }
}
@media (prefers-reduced-motion: reduce) {
  .mi-js .mi-svc__desc { display: block; opacity: 1; margin-top: var(--mi-sm); transition: none; }
}

/* ----------------------------------------------------------------- process */

.mi-proc__head { margin-bottom: var(--mi-lg); }

.mi-proc__scroller {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(260px, 30vw);
  gap: 0;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  border-top: 1px solid var(--mi-rule);
  scrollbar-width: thin;
}
@media (max-width: 899px) {
  .mi-proc__scroller { grid-auto-columns: minmax(230px, 78vw); }
}

.mi-proc__step {
  scroll-snap-align: start;
  padding: var(--mi-md) clamp(20px, 2.4vw, 40px) var(--mi-lg) 0;
  border-right: 1px solid var(--mi-rule);
  display: flex; flex-direction: column; gap: var(--mi-sm);
}
.mi-proc__step:last-child { border-right: 0; }

.mi-proc__num {
  font-size: var(--mi-small); font-weight: 600;
  letter-spacing: 0.18em; color: var(--mi-bronze);
}
.mi-proc__name {
  font-size: clamp(1.15rem, 1.9vw, 1.7rem);
  font-weight: 800; line-height: 1.08; letter-spacing: -0.02em;
  text-transform: uppercase; margin: 0;
}
.mi-proc__diagram { margin-top: auto; padding-top: var(--mi-md); }
.mi-proc__diagram svg { display: block; width: 100%; height: auto; }

.mi-proc__hint {
  margin-top: var(--mi-sm);
  font-size: var(--mi-small); font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--mi-mute);
}

/* ---------------------------------------------------------------- insights */

.mi-ins__head {
  display: grid; gap: var(--mi-md);
  grid-template-columns: 1fr;
  margin-bottom: var(--mi-lg);
}
@media (min-width: 900px) {
  .mi-ins__head { grid-template-columns: 1.2fr 1fr; align-items: end; }
}

.mi-ins__list { border-top: 1px solid var(--mi-rule); }

.mi-ins__row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: baseline;
  gap: clamp(14px, 2.2vw, 34px);
  padding-block: clamp(20px, 2.4vw, 32px);
  border-bottom: 1px solid var(--mi-rule);
  text-decoration: none; color: inherit;
  transition: padding-left 0.5s var(--mi-ease), background-color 0.5s var(--mi-ease);
}
@media (hover: hover) {
  .mi-ins__row:hover { padding-left: clamp(10px, 1.4vw, 22px); background: rgba(155,122,85,0.05); }
}
.mi-ins__num { font-size: var(--mi-small); font-weight: 600; letter-spacing: 0.16em; color: var(--mi-bronze); }
.mi-ins__title {
  font-size: clamp(1.05rem, 2vw, 1.65rem);
  font-weight: 700; line-height: 1.16; letter-spacing: -0.015em;
  text-transform: uppercase; margin: 0;
}
.mi-ins__meta {
  display: block; margin-top: 0.5em;
  font-size: var(--mi-small); font-weight: 500;
  letter-spacing: 0.13em; text-transform: uppercase; color: var(--mi-mute);
}
.mi-ins__arrow { color: var(--mi-bronze); transition: transform var(--mi-med) var(--mi-ease); }
.mi-ins__row:hover .mi-ins__arrow { transform: translateX(5px); }

/* --------------------------------------------------------------------- cta */

.mi-cta { text-align: left; }
.mi-cta__inner { display: flex; flex-direction: column; gap: var(--mi-lg); align-items: flex-start; }
.mi-cta__title {
  font-size: clamp(2.2rem, 7.4vw, 7.4rem);
  font-weight: 800; line-height: 0.98; letter-spacing: -0.03em;
  text-transform: uppercase; margin: 0; max-width: 16ch;
}
.mi-cta .mi-btn { padding: 1.35em 2.8em; font-size: 1rem; }

/* ----------------------------------------------------------------- contact */

.mi-contact__inner { display: grid; grid-template-columns: 1fr; gap: var(--mi-lg); }
@media (min-width: 900px) { .mi-contact__inner { grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 110px); } }

.mi-field { display: block; margin-bottom: var(--mi-md); }
.mi-field span {
  display: block; margin-bottom: 0.6em;
  font-size: var(--mi-small); font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--mi-mute);
}
.mi-field input,
.mi-field textarea {
  width: 100%;
  padding: 0.7em 0;
  border: 0;
  border-bottom: 1px solid var(--mi-rule);
  border-radius: 0;
  background: transparent;
  color: var(--mi-ink);
  font-family: var(--mi-font);
  font-size: var(--mi-body);
  transition: border-color var(--mi-med) var(--mi-ease);
}
.mi-field textarea { resize: vertical; min-height: 120px; }
.mi-field input:focus,
.mi-field textarea:focus {
  outline: none;
  border-bottom-color: var(--mi-bronze);
  border-bottom-width: 2px;
}
.mi-field input::placeholder,
.mi-field textarea::placeholder { color: var(--mi-mute); opacity: 0.6; }

.mi-contact__details { display: flex; flex-direction: column; gap: var(--mi-md); }
.mi-contact__row { border-top: 1px solid var(--mi-rule); padding-top: var(--mi-sm); }
.mi-contact__row a { color: var(--mi-ink); text-decoration: none; border-bottom: 1px solid var(--mi-bronze); }
.mi-contact__row a:hover { color: var(--mi-bronze); }
.mi-contact__value { font-size: clamp(1.05rem, 1.8vw, 1.4rem); font-weight: 600; margin: 0.2em 0 0; }

.mi-formnote {
  margin-top: var(--mi-sm);
  font-size: var(--mi-small); color: var(--mi-mute); letter-spacing: 0.04em;
}

/* ------------------------------------------------------------------ footer */

.mi-foot__top {
  display: grid; gap: var(--mi-lg);
  grid-template-columns: 1fr;
  padding-bottom: var(--mi-lg);
}
@media (min-width: 760px) { .mi-foot__top { grid-template-columns: 1.4fr 1fr 1fr; } }

.mi-foot__col h3 {
  font-size: var(--mi-small); font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--mi-stone);
  margin: 0 0 var(--mi-sm);
}
.mi-foot__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.55em; }
.mi-foot__col a { color: var(--mi-ivory); text-decoration: none; opacity: 0.8; font-size: var(--mi-body); }
.mi-foot__col a:hover, .mi-foot__col a:focus-visible { opacity: 1; color: var(--mi-bronze); }

.mi-foot__bar {
  display: flex; flex-wrap: wrap; gap: var(--mi-sm);
  justify-content: space-between;
  border-top: 1px solid var(--mi-rule);
  padding-top: var(--mi-md);
}

/* Giant wordmark, deliberately cropped by the viewport edge. */
.mi-foot__mark {
  margin-top: var(--mi-lg);
  font-size: clamp(4rem, 21vw, 20rem);
  font-weight: 800; line-height: 0.78; letter-spacing: -0.045em;
  text-transform: uppercase;
  color: var(--mi-ivory);
  opacity: 0.1;
  white-space: nowrap;
  margin-bottom: -0.16em;
  user-select: none;
  pointer-events: none;
}

/* --------------------------------------------------------------- marquee */

.mi-marquee {
  border-block: 1px solid var(--mi-rule);
  overflow: hidden;
  padding-block: clamp(14px, 1.6vw, 22px);
}
.mi-marquee__track {
  display: flex; gap: clamp(28px, 4vw, 70px);
  width: max-content;
  animation: mi-marquee 34s linear infinite;
}
.mi-marquee span {
  font-size: clamp(0.9rem, 1.5vw, 1.15rem);
  font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--mi-mute); white-space: nowrap;
}
.mi-marquee span b { color: var(--mi-bronze); font-weight: 600; }
@keyframes mi-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .mi-marquee__track { animation: none; }
}

/* --------------------------------------------------------------------------
   Platforms: credentials at scale. Oversized names, offset descriptions.
   Deliberately NOT the services list family.
   -------------------------------------------------------------------------- */

.mi-plat__list { border-top: 1px solid var(--mi-rule); }

.mi-plat__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--mi-sm);
  align-items: baseline;
  padding-block: clamp(26px, 3.2vw, 52px);
  border-bottom: 1px solid var(--mi-rule);
}
@media (min-width: 900px) {
  .mi-plat__row { grid-template-columns: 1.15fr 1fr; gap: clamp(30px, 5vw, 90px); }
}

.mi-plat__name {
  font-size: clamp(1.9rem, 5.6vw, 5rem);
  font-weight: 800;
  line-height: 0.98;
  letter-spacing: -0.032em;
  text-transform: uppercase;
  margin: 0;
}
.mi-plat__idx {
  display: block;
  margin-bottom: 0.6em;
  font-size: var(--mi-small);
  font-weight: 600;
  letter-spacing: 0.18em;
  color: var(--mi-bronze);
}

/* --------------------------------------------------------------------------
   Industries: a two-column hairline index. Not the insights row family.
   -------------------------------------------------------------------------- */

.mi-ind__grid {
  display: grid;
  grid-template-columns: 1fr;
  border-top: 1px solid var(--mi-rule);
}
@media (min-width: 760px) {
  .mi-ind__grid { grid-template-columns: 1fr 1fr; }
}

.mi-ind__cell {
  display: flex;
  gap: clamp(14px, 2vw, 30px);
  align-items: baseline;
  padding-block: clamp(20px, 2.4vw, 34px);
  border-bottom: 1px solid var(--mi-rule);
}
@media (min-width: 760px) {
  .mi-ind__cell:nth-child(odd)  { padding-right: clamp(20px, 3vw, 60px); }
  .mi-ind__cell:nth-child(even) { padding-left: clamp(20px, 3vw, 60px); border-left: 1px solid var(--mi-rule); }
}

.mi-ind__idx {
  flex: 0 0 auto;
  font-size: var(--mi-small);
  font-weight: 600;
  letter-spacing: 0.16em;
  color: var(--mi-bronze);
}
.mi-ind__name {
  font-size: clamp(1.05rem, 1.9vw, 1.55rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.015em;
  text-transform: uppercase;
  margin: 0;
}
.mi-ind__desc {
  margin: 0.45em 0 0;
  font-size: var(--mi-body);
  color: var(--mi-mute);
  line-height: 1.65;
}

/* --------------------------------------------------------------------------
   Capability pillars (Build / Run / Extend).
   Full-width editorial rows, deliberately NOT three equal cards.
   -------------------------------------------------------------------------- */

.mi-pillars { border-top: 1px solid var(--mi-rule); }

.mi-pillar {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--mi-md);
  padding-block: clamp(30px, 4vw, 64px);
  border-bottom: 1px solid var(--mi-rule);
}
@media (min-width: 900px) {
  .mi-pillar { grid-template-columns: 0.85fr 1.15fr; gap: clamp(30px, 5vw, 90px); }
}

.mi-pillar__label {
  font-size: var(--mi-small);
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--mi-bronze);
  margin: 0;
}
.mi-pillar__title {
  font-size: clamp(1.9rem, 4.8vw, 4rem);
  font-weight: 800;
  line-height: 0.98;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  margin: 0.28em 0 0;
}

.mi-pillar__points { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.85em; }
@media (min-width: 1180px) {
  .mi-pillar__points { grid-template-columns: 1fr 1fr; gap: 0.85em clamp(20px, 2.6vw, 44px); }
}
.mi-pillar__points li {
  position: relative;
  padding-left: 1.6em;
  font-size: var(--mi-body);
  line-height: 1.65;
  color: var(--mi-mute);
}
.mi-pillar__points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 7px;
  height: 7px;
  background: var(--mi-bronze);
}

/* --------------------------------------------------------------------------
   Impact figures. Lead stat is deliberately outsized against the rest.
   -------------------------------------------------------------------------- */

.mi-impact__grid {
  display: grid;
  grid-template-columns: 1fr;
  border-top: 1px solid var(--mi-rule);
}
@media (min-width: 700px)  { .mi-impact__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .mi-impact__grid { grid-template-columns: repeat(5, 1fr); } }

.mi-impact__cell {
  padding: clamp(26px, 3vw, 52px) var(--mi-md) clamp(26px, 3vw, 52px) 0;
  border-bottom: 1px solid var(--mi-rule);
}
@media (min-width: 700px) {
  .mi-impact__cell + .mi-impact__cell {
    border-left: 1px solid var(--mi-rule);
    padding-left: clamp(18px, 2vw, 34px);
  }
}
@media (min-width: 1100px) {
  .mi-impact__cell--lead { grid-column: span 2; }
}

.mi-impact__fig {
  margin: 0;
  font-size: clamp(3rem, 7.4vw, 6rem);
  font-weight: 800;
  line-height: 0.86;
  letter-spacing: -0.045em;
}
.mi-impact__cell--lead .mi-impact__fig { font-size: clamp(3.8rem, 11vw, 9.5rem); }
.mi-impact__fig sup {
  font-size: 0.34em;
  vertical-align: super;
  letter-spacing: 0;
  color: var(--mi-bronze);
}
.mi-impact__cap {
  margin: var(--mi-sm) 0 0;
  font-size: var(--mi-small);
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--mi-mute);
  line-height: 1.65;
  max-width: 24ch;
}

/* --------------------------------------------------------------------------
   The map. Two indexes flanking a central hub.
   The disc is a deliberate abstract geometric form, the one permitted curve.
   -------------------------------------------------------------------------- */

.mi-map__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--mi-md);
  align-items: center;
}
@media (min-width: 1000px) {
  .mi-map__inner { grid-template-columns: 1fr auto 1fr; gap: clamp(24px, 3.4vw, 66px); }
}

.mi-map__row {
  padding-block: clamp(11px, 1.3vw, 19px);
  border-bottom: 1px solid var(--mi-rule);
}
@media (min-width: 1000px) {
  .mi-map__col--left .mi-map__row { text-align: right; }
}

.mi-map__name {
  margin: 0;
  font-size: clamp(0.92rem, 1.45vw, 1.18rem);
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  line-height: 1.15;
}
.mi-map__desc {
  margin: 0.38em 0 0;
  font-size: var(--mi-body);
  line-height: 1.65;
  color: var(--mi-mute);
}

.mi-map__hub {
  display: grid;
  place-items: center;
  gap: var(--mi-sm);
  order: -1;
}
@media (min-width: 1000px) { .mi-map__hub { order: 0; } }

.mi-map__disc {
  width: clamp(150px, 17vw, 230px);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid var(--mi-bronze);
  background: var(--mi-graphite);
  display: grid;
  place-items: center;
}
.mi-map__disc span {
  font-size: clamp(1.6rem, 3.4vw, 2.9rem);
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--mi-bronze);
}
.mi-map__hublabel {
  margin: 0;
  font-size: var(--mi-small);
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--mi-mute);
  text-align: center;
}

/* Hero sub-line lives in hero.css, next to the rest of the hero. */

/* No address, phone or socials to show: one column, readable measure. */
.mi-contact__inner--solo { grid-template-columns: 1fr; justify-content: center; }
@media (min-width: 900px) {
  .mi-contact__inner--solo { grid-template-columns: minmax(0, 620px); justify-content: center; }
}
