/* Premium infrastructure service and homepage service-directory composition. */
.mi-infrastructure-service-page .content-area,
.mi-infrastructure-service-page .entry-content-wrap { margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; }
.mi-infrastructure-service-page .entry-hero,
.mi-infrastructure-service-page .entry-header { display: none; }
.mi-infrastructure-service-page .entry,
.mi-infrastructure-service-page .entry-content { width: 100%; max-width: none; margin: 0; padding: 0; background: transparent; }
.mi-infrastructure-service-page .entry-content > * { width: auto; max-width: none; margin-right: calc(50% - 50vw); margin-left: calc(50% - 50vw); }
.mi-infrastructure-service-page .mi-surface__inner,
.mi-service-directory .mi-surface__inner { box-sizing: border-box; width: 100%; max-width: var(--mi-wide-max); margin: 0 auto; padding-right: var(--mi-gutter); padding-left: var(--mi-gutter); }

.mi-infrastructure-hero { position: relative; overflow: hidden; padding: clamp(4.5rem, 8vw, 8rem) 0; background: var(--mi-ink); color: var(--mi-white); }
.mi-infrastructure-hero::after { position: absolute; right: -9rem; top: -13rem; width: 40rem; height: 40rem; border: 1px solid rgba(229,238,232,.18); border-radius: 50%; box-shadow: 0 0 0 4rem rgba(229,238,232,.055), 0 0 0 10rem rgba(229,238,232,.025); content: ""; pointer-events: none; }
.mi-infrastructure-hero .mi-surface__inner { position: relative; z-index: 1; }
.mi-infrastructure-hero__grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .55fr); align-items: end; gap: clamp(2.5rem, 7vw, 7rem); }
.mi-infrastructure-hero h1 { max-width: 930px; margin: 0; color: var(--mi-white); font-size: clamp(3rem, 7vw, 6.8rem); line-height: .93; letter-spacing: -.065em; }
.mi-infrastructure-hero .mi-kicker { color: var(--mi-lime); }
.mi-infrastructure-deck { max-width: 760px; margin-top: 1.5rem; color: #d7e4dc !important; font-size: clamp(1.13rem, 2vw, 1.48rem); line-height: 1.48; }
.mi-infrastructure-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.mi-infrastructure-actions .wp-block-button__link { min-height: 2.9rem; padding: .78rem 1.2rem; }
.mi-infrastructure-actions .wp-block-button.is-style-outline .wp-block-button__link { border-color: rgba(255,255,255,.65); color: var(--mi-white); }
.mi-infrastructure-actions .wp-block-button.is-style-outline .wp-block-button__link:hover,
.mi-infrastructure-actions .wp-block-button.is-style-outline .wp-block-button__link:focus-visible { border-color: var(--mi-white); background: var(--mi-white); color: var(--mi-ink); }
.mi-infrastructure-brief { padding: 1.6rem; border-top: 3px solid var(--mi-coral); background: rgba(255,255,255,.075); backdrop-filter: blur(8px); }
.mi-infrastructure-brief__label { margin: 0 0 1rem; color: var(--mi-coral) !important; font-size: .72rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.mi-infrastructure-brief ul { margin: 0; padding: 0; list-style: none; }
.mi-infrastructure-brief li { padding: .75rem 0; border-top: 1px solid rgba(255,255,255,.16); color: var(--mi-white); font-weight: 760; }

.mi-infrastructure-section { box-sizing: border-box; padding: clamp(4rem, 7vw, 7rem) 0; background: var(--mi-white); }
.mi-infrastructure-section__intro { max-width: 820px; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.mi-infrastructure-section__intro h2,
.mi-infrastructure-decision h2,
.mi-infrastructure-fit h2,
.mi-infrastructure-cta h2 { margin: 0; font-size: clamp(2.3rem, 5vw, 4.7rem); line-height: .96; letter-spacing: -.06em; }
.mi-infrastructure-section__intro > p:not(.mi-kicker) { max-width: 720px; font-size: 1.08rem; line-height: 1.65; }
.mi-infrastructure-scope { background: var(--mi-paper); }
.mi-infrastructure-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--mi-line); border: 1px solid var(--mi-line); }
.mi-infrastructure-grid--related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mi-infrastructure-card { min-width: 0; min-height: 17rem; padding: clamp(1.35rem, 2.6vw, 2.1rem); background: var(--mi-white); }
.mi-infrastructure-card__eyebrow { margin: 0 0 1.3rem; color: var(--mi-coral-dark) !important; font-size: .7rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.mi-infrastructure-card h3 { margin: 0; font-size: clamp(1.4rem, 2.2vw, 2rem); }
.mi-infrastructure-card p,
.mi-infrastructure-card li { color: var(--mi-muted); line-height: 1.62; }
.mi-infrastructure-card ul { margin: 1rem 0 0; padding-left: 1.1rem; }

/* The comparison uses one shared data source for the wide table and narrow
 * portrait cards. The table remains scrollable at intermediate widths; the
 * cards become the sole visible/accessibility representation in portrait. */
.mi-multigig-comparison {
  box-sizing: border-box;
  width: min(100%, var(--mi-shell-content));
  max-width: var(--mi-shell-content);
  margin-inline: auto;
}
.mi-multigig-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}
.mi-multigig-table {
  width: 100%;
  min-width: 760px;
  margin: 0;
  border: 1px solid var(--mi-line);
  border-collapse: separate;
  border-spacing: 0;
  background: var(--mi-white);
  color: var(--mi-ink);
}
.mi-multigig-table thead th {
  padding: 1rem 1.15rem;
  border-right: 1px solid rgba(255,255,255,.22);
  background: var(--mi-ink);
  color: var(--mi-white);
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .04em;
  line-height: 1.25;
  text-align: left;
  vertical-align: bottom;
}
.mi-multigig-table thead th:last-child { border-right: 0; }
.mi-multigig-table tbody th,
.mi-multigig-table tbody td {
  padding: 1.2rem 1.15rem;
  border-top: 1px solid var(--mi-line);
  line-height: 1.55;
  text-align: left;
  vertical-align: top;
}
.mi-multigig-table tbody th {
  width: 15%;
  background: var(--mi-mist);
  color: var(--mi-ink);
  font-size: 1.08rem;
  font-weight: 900;
  letter-spacing: -.025em;
}
.mi-multigig-table tbody tr:nth-child(even) td { background: var(--mi-paper); }
.mi-multigig-table tbody tr:focus-within td,
.mi-multigig-table tbody tr:focus-within th { background: #e5eee8; }
.mi-multigig-cards { display: none; }
.mi-multigig-card {
  padding: 1.35rem;
  border-top: 3px solid var(--mi-coral);
  background: var(--mi-white);
  box-shadow: var(--mi-shadow);
}
.mi-multigig-card h3 {
  margin: 0 0 1.25rem;
  color: var(--mi-ink);
  font-size: clamp(1.45rem, 6vw, 2rem);
  line-height: 1;
  letter-spacing: -.045em;
}
.mi-multigig-card dl { margin: 0; }
.mi-multigig-card dl > div { padding: .9rem 0 0; border-top: 1px solid var(--mi-line); }
.mi-multigig-card dl > div + div { margin-top: .9rem; }
.mi-multigig-card dt {
  color: var(--mi-coral-dark);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .1em;
  line-height: 1.25;
  text-transform: uppercase;
}
.mi-multigig-card dd { margin: .35rem 0 0; color: var(--mi-muted); line-height: 1.6; }

.mi-infrastructure-decision { background: var(--mi-ink); color: var(--mi-white); }
.mi-infrastructure-decision .mi-kicker { color: var(--mi-lime); }
.mi-infrastructure-decision h2,
.mi-infrastructure-decision h3 { color: var(--mi-white); }
.mi-infrastructure-decision__lead { max-width: 900px; }
.mi-infrastructure-decision__lead > p:not(.mi-kicker) { max-width: 720px; color: #c8d7ce; font-size: 1.08rem; line-height: 1.65; }
.mi-infrastructure-decision__columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 3rem; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.16); }
.mi-infrastructure-decision__columns article { padding: clamp(1.5rem, 3vw, 2.5rem); background: rgba(255,255,255,.055); }
.mi-infrastructure-decision__columns h3 { margin-top: 0; }
.mi-infrastructure-decision__columns li { margin-bottom: .65rem; color: #c8d7ce; }

.mi-infrastructure-transition { background: var(--mi-mist); }
.mi-infrastructure-process { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.mi-infrastructure-process article { position: relative; min-height: 18rem; padding: 4rem 1.4rem 1.5rem; border-top: 3px solid var(--mi-coral); background: var(--mi-white); }
.mi-infrastructure-step { position: absolute; top: 1.25rem; left: 1.4rem; color: var(--mi-coral-dark); font-size: 1.8rem; font-weight: 900; letter-spacing: -.08em; }
.mi-infrastructure-process h3 { margin: 0; }
.mi-infrastructure-process p { line-height: 1.62; }

.mi-infrastructure-deliverables { background: var(--mi-white); }
.mi-infrastructure-grid--deliverables { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mi-infrastructure-grid--deliverables .mi-infrastructure-card { min-height: 15rem; border-top: 3px solid var(--mi-coral); }
.mi-infrastructure-fit { background: var(--mi-paper); }
.mi-infrastructure-fit__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, .7fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: start; }
.mi-infrastructure-fit__grid > div:last-child { padding-top: 2.2rem; }
.mi-infrastructure-fit__grid > div:last-child p { font-size: 1.08rem; line-height: 1.7; }
.mi-infrastructure-boundary { padding-top: 1.2rem; border-top: 1px solid var(--mi-line); }
.mi-infrastructure-cta {
  padding-block: clamp(3.75rem, 7vw, 6rem);
  border-bottom: 1px solid rgba(16, 44, 44, .2);
  background: var(--mi-mist);
}
.mi-infrastructure-cta .mi-kicker { color: var(--mi-coral-dark); }
.mi-infrastructure-cta h2 { max-width: 17ch; color: var(--mi-ink); }
.mi-infrastructure-cta p:not(.mi-kicker) { max-width: 56ch; color: var(--mi-ink-soft) !important; font-size: 1.08rem; }
.mi-cta-contacts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 2rem 0 0;
  padding: 1.25rem 0 0;
  padding-inline-start: 0 !important;
  border-top: 1px solid rgba(16, 44, 44, .28);
  list-style: none;
}
.mi-cta-contacts li { min-width: 0; margin: 0; padding: 0; }
.mi-cta-contacts li::before { content: none; }
.entry-content .mi-cta-contacts a {
  display: inline-block;
  color: var(--mi-ink) !important;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: .1em;
  text-underline-offset: .18em;
  white-space: nowrap;
}
.entry-content .mi-cta-contacts a:hover { color: var(--mi-ink-soft) !important; }
.entry-content .mi-cta-contacts a:focus,
.entry-content .mi-cta-contacts a:focus-visible {
  padding-inline: .2em;
  background-color: var(--mi-coral-dark) !important;
  color: var(--mi-white) !important;
  text-decoration-thickness: .16em;
}
.mi-cta-contacts li:focus-within {
  outline: 3px solid var(--mi-coral-dark);
  outline-offset: 3px;
}
.mi-cta-contacts__primary a { font-size: clamp(1.15rem, 2vw, 1.5rem); font-weight: 900; }

.mi-service-directory { padding: clamp(4rem, 7vw, 7rem) 0; background: var(--mi-mist); }
.mi-service-directory__intro { display: grid; grid-template-columns: minmax(0, .55fr) minmax(0, 1.45fr); gap: 2rem; align-items: end; margin-bottom: 2.5rem; }
.mi-service-directory__intro .mi-kicker { align-self: start; }
.mi-service-directory__intro h2 { margin: 0; max-width: 900px; font-size: clamp(2.35rem, 5vw, 4.8rem); line-height: .96; }
.mi-service-directory__intro > p:last-child { grid-column: 2; max-width: 690px; font-size: 1.06rem; }
.mi-service-directory__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.mi-service-directory__card { position: relative; display: flex; flex-direction: column; min-height: 19rem; padding: clamp(1.5rem, 3vw, 2.4rem); border-top: 3px solid var(--mi-coral); background: var(--mi-white); transition: transform .18s ease, box-shadow .18s ease; }
.mi-service-directory__card:hover { transform: translateY(-3px); box-shadow: var(--mi-shadow); }
.mi-service-directory__number { color: var(--mi-coral-dark); font-size: .82rem; font-weight: 900; letter-spacing: .12em; }
.mi-service-directory__card h3 { margin: auto 0 0; max-width: 26rem; font-size: clamp(1.55rem, 3vw, 2.55rem); line-height: 1; }
.mi-service-directory__card h3 a { color: var(--mi-ink); text-decoration: none; }
.mi-service-directory__card p { max-width: 35rem; margin: 1rem 0; line-height: 1.62; }
.mi-service-directory__link { margin-top: auto; color: var(--mi-coral-dark) !important; font-weight: 850; text-decoration: none !important; }

@media (max-width: 900px) {
  .mi-infrastructure-hero__grid,
  .mi-infrastructure-fit__grid { grid-template-columns: 1fr; }
  .mi-infrastructure-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mi-infrastructure-grid--deliverables,
  .mi-infrastructure-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mi-service-directory__intro { grid-template-columns: 1fr; }
  .mi-service-directory__intro > p:last-child { grid-column: auto; }
}

@media (max-width: 640px) {
  .mi-infrastructure-hero { padding-top: 3.8rem; padding-bottom: 3.8rem; }
  .mi-infrastructure-hero h1 { max-width: 100%; font-size: clamp(2.4rem, 11.5vw, 4.5rem); word-break: normal; overflow-wrap: normal; hyphens: none; }
  .mi-infrastructure-grid,
  .mi-infrastructure-grid--deliverables,
  .mi-infrastructure-process,
  .mi-infrastructure-decision__columns,
  .mi-service-directory__grid,
  .mi-infrastructure-grid--related { grid-template-columns: 1fr; }
  .mi-infrastructure-card,
  .mi-infrastructure-process article,
  .mi-service-directory__card { min-height: 0; }
  .mi-infrastructure-section,
  .mi-service-directory { padding-top: 3.5rem; padding-bottom: 3.5rem; }
  .mi-infrastructure-cta { padding: 3.2rem 0 3.5rem; }
  .mi-infrastructure-cta h2 { max-width: 17ch; }
  .mi-cta-contacts { grid-template-columns: 1fr; gap: .7rem; margin-top: 1.8rem; }
}

@media (max-width: 600px) and (orientation: portrait) {
  .mi-multigig-table-wrap { display: none; }
  .mi-multigig-cards { display: grid; gap: 1rem; }
}

@media (min-width: 641px) and (max-width: 960px) {
  .mi-cta-contacts { grid-template-columns: 1fr; gap: .8rem; }
}

@media (prefers-reduced-motion: reduce) {
  .mi-service-directory__card { transition: none; }
}
