/* The site's design: prototype 2 "Applications" (brand header, task-led home, contact band)
   merged with prototype 3 "Datasheet" (product index table, spec-sheet product page, model
   numbers in monospace). Colours only through var(--mc-color-*) from colors.css, copied
   verbatim from ai-bot; type and spacing scales follow ai-bot's tokens. */
@import url("colors.css");

:root {
  --mc-font-family-base: system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --mc-font-family-brand: "DejaVu Serif Condensed", "Bookman Old Style", Georgia, serif;
  --mc-font-family-mono: ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;

  --mc-space-1: 0.25rem;
  --mc-space-2: 0.5rem;
  --mc-space-3: 0.75rem;
  --mc-space-4: 1rem;
  --mc-space-6: 1.5rem;
  --mc-space-8: 2.5rem;
  --mc-space-10: 4rem;

  --mc-radius: 0.375rem;
  --mc-content-width: 76rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: var(--mc-font-family-base);
  line-height: 1.5;
  color: var(--mc-color-body-text);
  background-color: var(--mc-color-surface);
}

h1,
h2,
h3 {
  margin: 0 0 var(--mc-space-3);
  font-weight: 700;
  line-height: 1.15;
}

h1 { font-size: 2.25rem; letter-spacing: -0.01em; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.125rem; }

p,
ul,
ol {
  margin: 0 0 var(--mc-space-4);
}

a {
  color: var(--mc-color-link);

  &:hover {
    color: var(--mc-color-link-hover);
  }
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

address {
  font-style: normal;
}

button,
input,
textarea {
  font: inherit;
}

:focus-visible {
  outline: 2px solid var(--mc-color-primary);
  outline-offset: 2px;
}

.mc-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.mc-container {
  width: 100%;
  max-width: var(--mc-content-width);
  margin: 0 auto;
  padding: 0 var(--mc-space-4);
}

.mc-page {
  padding-block: var(--mc-space-8) var(--mc-space-10);
}

.mc-section {
  padding: var(--mc-space-10) 0;
}

.mc-section-tinted {
  background-color: var(--mc-color-body-bg);
  border-block: 1px solid var(--mc-color-border);
}

.mc-lead {
  max-width: 48rem;
  font-size: 1.1875rem;
}

.mc-text {
  max-width: 48rem;
}

.mc-figure {
  max-width: 48rem;
  margin: var(--mc-space-6) 0;

  & img {
    width: 100%;
    border-radius: var(--mc-radius);
  }

  & figcaption {
    margin-top: var(--mc-space-2);
    font-size: 0.875rem;
    color: var(--mc-color-body-text-secondary);
  }
}

.mc-muted {
  color: var(--mc-color-body-text-secondary);
}

.mc-model {
  font-family: var(--mc-font-family-mono);
  font-weight: 700;
  white-space: nowrap;
}

.mc-eyebrow {
  margin-bottom: var(--mc-space-3);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* A section heading in the datasheet style: small caps label over a rule. */
.mc-rule {
  margin-top: var(--mc-space-8);
  padding-bottom: var(--mc-space-1);
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 2px solid var(--mc-color-body-text);
}

.mc-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 0 var(--mc-space-8);
}

/* Header: one band in the brand colour. Current page and language: underline plus weight. */
.mc-header {
  color: var(--mc-color-on-primary);
  background-color: var(--mc-color-brand);

  & .mc-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--mc-space-2) var(--mc-space-8);
    min-height: 4.5rem;
  }

  & a {
    color: var(--mc-color-on-primary);
    text-decoration: none;
  }
}

.mc-brand {
  font-family: var(--mc-font-family-brand);
  font-size: 1.5rem;
  font-style: italic;
  font-weight: 700;
  letter-spacing: -0.02em;
  white-space: nowrap;
}

.mc-nav,
.mc-lang {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;

  & a {
    display: block;
    padding: var(--mc-space-2) 0;
    white-space: nowrap;
    border-bottom: 2px solid transparent;

    &:hover {
      border-bottom-color: var(--mc-color-border);
    }

    &[aria-current] {
      font-weight: 700;
      border-bottom-color: var(--mc-color-on-primary);
    }
  }
}

.mc-nav {
  gap: var(--mc-space-6);
}

.mc-lang {
  gap: var(--mc-space-3);
  font-size: 0.875rem;
}

/* Phones only (see the media query): the languages as a drop-down. */
.mc-lang-menu {
  display: none;
  position: relative;
  font-size: 0.875rem;

  & summary {
    display: flex;
    gap: var(--mc-space-1);
    align-items: center;
    padding: var(--mc-space-1) var(--mc-space-2);
    cursor: pointer;
    list-style: none;
    border: 1px solid var(--mc-color-on-primary);
    border-radius: var(--mc-radius);

    &::-webkit-details-marker {
      display: none;
    }
  }

  &[open] summary .mc-icon {
    transform: rotate(180deg);
  }

  & ul {
    position: absolute;
    top: calc(100% + var(--mc-space-1));
    right: 0;
    z-index: 20;
    min-width: 9rem;
    margin: 0;
    padding: var(--mc-space-1) 0;
    list-style: none;
    background-color: var(--mc-color-surface);
    border: 1px solid var(--mc-color-brand);
    border-radius: var(--mc-radius);
  }

  & ul a {
    display: block;
    padding: var(--mc-space-2) var(--mc-space-4);
    color: var(--mc-color-link);
    border-left: 3px solid transparent;

    &[aria-current] {
      font-weight: 700;
      color: var(--mc-color-body-text);
      border-left-color: var(--mc-color-brand);
    }
  }
}

/* The assistant link and the languages stay together at the right, also when they wrap. */
.mc-header-tools {
  display: flex;
  align-items: center;
  gap: var(--mc-space-8);
  margin-left: auto;
}

.mc-hero {
  padding: var(--mc-space-8) 0 var(--mc-space-10);
  color: var(--mc-color-on-primary);
  background-color: var(--mc-color-brand);

  & h1 {
    max-width: 48rem;
    font-size: 2.75rem;
  }
}

.mc-button {
  display: inline-block;
  padding: var(--mc-space-3) var(--mc-space-6);
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  border: 2px solid var(--mc-color-primary);
  border-radius: var(--mc-radius);
}

.mc-button-block {
  display: block;
  margin-top: var(--mc-space-3);
}

.mc-button-primary,
.mc-button-primary:hover {
  color: var(--mc-color-on-primary);
  background-color: var(--mc-color-primary);
}

.mc-button-primary:hover {
  background-color: var(--mc-color-primary-hover);
}

.mc-button-on-brand,
.mc-button-on-brand:hover {
  color: var(--mc-color-brand);
  background-color: var(--mc-color-surface);
  border-color: var(--mc-color-surface);
}

.mc-button-on-brand:hover {
  background-color: var(--mc-color-light);
}

.mc-button-outline {
  color: var(--mc-color-primary);
  background-color: var(--mc-color-surface);

  &:hover {
    background-color: var(--mc-color-light);
  }
}

.mc-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--mc-space-3);
  margin-bottom: var(--mc-space-4);
}

.mc-more {
  margin: var(--mc-space-6) 0 0;
}

/* Home: each task names a job, the products that do it, and leads to them. */
.mc-tasks {
  display: grid;
  gap: var(--mc-space-6);
  margin: var(--mc-space-6) 0 0;
  padding: 0;
  list-style: none;
}

.mc-task {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: var(--mc-space-6);
  align-items: center;
  padding: var(--mc-space-6);
  border: 1px solid var(--mc-color-border);
  border-left: 4px solid var(--mc-color-primary);
  border-radius: var(--mc-radius);

  & p {
    margin-bottom: var(--mc-space-3);
  }
}

.mc-task-products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
  gap: var(--mc-space-3);
  margin: 0;
  padding: 0;
  list-style: none;

  & a {
    display: block;
    height: 100%;
    padding: var(--mc-space-2);
    font-size: 0.875rem;
    text-align: center;
    text-decoration: none;
    border: 1px solid var(--mc-color-border);
    border-radius: var(--mc-radius);

    &:hover {
      border-color: var(--mc-color-primary);
    }
  }

  & img {
    aspect-ratio: 226 / 131;
    object-fit: contain;
    margin: 0 auto var(--mc-space-2);
  }
}

/* Numbered sequence, because the order is the content. */
.mc-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: var(--mc-space-6);
  margin: var(--mc-space-6) 0 0;
  padding: 0;
  list-style: none;
  counter-reset: step;

  & li {
    padding-top: var(--mc-space-3);
    border-top: 2px solid var(--mc-color-primary);
    counter-increment: step;

    &::before {
      content: counter(step, decimal-leading-zero);
      display: inline-block;
      margin-bottom: var(--mc-space-2);
      font-size: 1.5rem;
      font-weight: 700;
      color: var(--mc-color-primary);
    }
  }

  & .mc-icon {
    float: right;
    width: 2rem;
    height: 2rem;
    color: var(--mc-color-brand);
  }

  & h2 {
    clear: both;
    font-size: 1.125rem;
  }

  & p {
    margin: 0;
    color: var(--mc-color-body-text-secondary);
  }
}

.mc-facts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--mc-space-6);
  margin: var(--mc-space-8) 0 0;
  padding: 0;
  list-style: none;

  & li {
    padding-left: var(--mc-space-4);
    border-left: 2px solid var(--mc-color-border);
  }

  & h2 {
    font-size: 1.125rem;
  }

  & p {
    margin: 0;
  }
}

/* Services: transit text beside the old site's train logo, which links to the transit products. */
.mc-transit {
  display: grid;
  grid-template-columns: minmax(0, 48rem) minmax(0, 20rem);
  gap: var(--mc-space-8);
  align-items: start;

  & img {
    width: 100%;
  }

  & a:hover img {
    opacity: 0.85;
  }
}

@media (max-width: 767.98px) {
  .mc-transit {
    grid-template-columns: 1fr;

    & > a {
      max-width: 16rem;
    }
  }
}

/* About and Services: the old site's photo thumbnails of each item, redrawn as icons. */
.mc-facts-icons .mc-icon {
  width: 2rem;
  height: 2rem;
  margin-bottom: var(--mc-space-3);
  color: var(--mc-color-brand);
}

.mc-contact-band {
  padding: var(--mc-space-8) 0;
  background-color: var(--mc-color-light);

  & .mc-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--mc-space-6);
  }

  & h2 {
    margin: 0;
  }

  & p,
  & .mc-actions {
    margin: 0;
  }
}

/* Tables: the datasheet look. */
.mc-scroll {
  overflow-x: auto;
}

.mc-jump {
  display: flex;
  flex-wrap: wrap;
  gap: var(--mc-space-2);
  margin: var(--mc-space-6) 0 var(--mc-space-4);
  padding: 0;
  list-style: none;
  font-size: 0.875rem;

  & a {
    display: block;
    padding: var(--mc-space-1) var(--mc-space-3);
    text-decoration: none;
    border: 1px solid var(--mc-color-border);
    border-radius: var(--mc-radius);

    &:hover {
      border-color: var(--mc-color-primary);
    }
  }
}

.mc-table {
  width: 100%;
  margin-bottom: var(--mc-space-4);
  border-collapse: collapse;
  font-size: 0.9375rem;

  & th,
  & td {
    padding: var(--mc-space-2) var(--mc-space-4) var(--mc-space-2) 0;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--mc-color-border);
  }

  & thead th {
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mc-color-body-text-secondary);
    border-bottom: 1px solid var(--mc-color-body-text);
  }

  & tbody th {
    font-weight: 400;
    white-space: nowrap;
  }

  & tr[aria-current] {
    background-color: var(--mc-color-light);

    & td:last-child {
      font-weight: 700;
    }
  }
}

.mc-index {
  & td,
  & th {
    vertical-align: middle;
  }

  & tbody th {
    width: 1%;
  }

  & img {
    width: 6rem;
    aspect-ratio: 226 / 131;
    object-fit: contain;
  }
}

.mc-table-specs tbody th {
  width: 30%;
  font-weight: 700;
  white-space: normal;
}

.mc-table-docs tbody th {
  white-space: normal;
}

.mc-group-row th {
  padding-top: var(--mc-space-6);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--mc-color-secondary);
}

/* Product page: a spec sheet. */
.mc-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: var(--mc-space-2);
  margin: 0 0 var(--mc-space-4);
  padding: 0;
  list-style: none;
  font-size: 0.875rem;

  & li + li::before {
    content: "›";
    margin-right: var(--mc-space-2);
    color: var(--mc-color-body-text-secondary);
  }
}

.mc-sheet-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20rem;
  gap: var(--mc-space-8);
  align-items: start;

  & h1 {
    font-size: 2rem;
  }

  & aside img {
    width: 100%;
    padding: var(--mc-space-3);
    border: 1px solid var(--mc-color-border);
    border-radius: var(--mc-radius);
  }
}

.mc-toc {
  display: flex;
  flex-wrap: wrap;
  gap: var(--mc-space-4);
  margin: var(--mc-space-4) 0 0;
  padding: var(--mc-space-2) 0;
  list-style: none;
  font-size: 0.875rem;
  border-block: 1px solid var(--mc-color-border);
}

.mc-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: var(--mc-space-6);
  margin-bottom: var(--mc-space-4);

  & h3 {
    margin-top: 0;
    font-size: 1rem;
  }

  & ul {
    margin: 0;
    padding-left: 1.25rem;
  }
}

.mc-manual {
  max-width: 48rem;
  margin-bottom: var(--mc-space-4);

  & h3 {
    margin-bottom: var(--mc-space-2);
    font-size: 1rem;
  }

  & ul {
    padding-left: 1.25rem;
  }
}

.mc-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  gap: var(--mc-space-4);

  & img {
    width: 100%;
    border: 1px solid var(--mc-color-border);
    border-radius: var(--mc-radius);
  }
}

/* AI product assistant: header link, page buttons, the launcher and the chat panel. */
.mc-header .mc-header-assistant {
  display: inline-flex;
  gap: var(--mc-space-2);
  align-items: center;
  padding: var(--mc-space-1) var(--mc-space-3);
  font-size: 0.875rem;
  white-space: nowrap;
  border: 1px solid var(--mc-color-on-primary);
  border-radius: var(--mc-radius);

  &:hover {
    color: var(--mc-color-brand);
    background-color: var(--mc-color-surface);
  }
}

.mc-button-on-brand-outline,
.mc-button-on-brand-outline:hover {
  color: var(--mc-color-on-primary);
  border-color: var(--mc-color-on-primary);
}

.mc-button-on-brand-outline:hover {
  color: var(--mc-color-brand);
  background-color: var(--mc-color-surface);
}

.mc-actions .mc-button,
.mc-button-block {
  & .mc-icon {
    margin-right: var(--mc-space-1);
  }
}

.mc-assistant-note {
  align-self: center;
  font-size: 0.875rem;
}

/* Where to buy: the distributors open in place under the button; the chevron turns when open. */
.mc-buy {
  & summary {
    cursor: pointer;
    list-style: none;

    &::-webkit-details-marker {
      display: none;
    }
  }

  &[open] summary .mc-icon:last-child {
    transform: rotate(180deg);
  }

  & ul {
    margin: 0;
    padding: var(--mc-space-1) 0;
    list-style: none;
    border: 1px solid var(--mc-color-border);
    border-top: 0;
    border-radius: 0 0 var(--mc-radius) var(--mc-radius);
  }

  & a {
    display: block;
    padding: var(--mc-space-2) var(--mc-space-4);
    color: var(--mc-color-link);

    &:hover {
      background-color: var(--mc-color-light);
    }

    & .mc-icon {
      margin-left: var(--mc-space-1);
      vertical-align: -0.125em;
    }
  }
}

aside .mc-assistant-note {
  display: block;
  margin-top: var(--mc-space-1);
  text-align: center;
  color: var(--mc-color-body-text-secondary);
}

.mc-assistant-launcher,
.mc-assistant-panel {
  position: fixed;
  right: var(--mc-space-4);
  bottom: var(--mc-space-4);
  z-index: 10;
}

.mc-assistant-launcher {
  display: inline-flex;
  gap: var(--mc-space-2);
  align-items: center;
  padding: var(--mc-space-2) var(--mc-space-4);
  font-weight: 600;
  color: var(--mc-color-on-primary);
  text-decoration: none;
  background-color: var(--mc-color-brand);
  border: 2px solid var(--mc-color-on-primary);
  border-radius: 999px;

  &:hover {
    color: var(--mc-color-on-primary);
    background-color: var(--mc-color-primary);
  }

  &[hidden] {
    display: none;
  }
}

.mc-assistant-panel {
  display: flex;
  flex-direction: column;
  width: min(24rem, calc(100vw - 2 * var(--mc-space-4)));
  height: min(36rem, calc(100dvh - 2 * var(--mc-space-4)));
  overflow: hidden;
  background-color: var(--mc-color-surface);
  border: 1px solid var(--mc-color-brand);
  border-radius: var(--mc-radius);

  &[hidden] {
    display: none;
  }
}

/* ai-bot is another site and cannot be styled from here; it is drawn larger and scaled down,
   so its text and spacing are smaller in this panel only. */
.mc-assistant-frame {
  --mc-assistant-scale: 0.85;
  position: relative;
  flex: 1;
  overflow: hidden;

  & iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% / var(--mc-assistant-scale));
    height: calc(100% / var(--mc-assistant-scale));
    border: 0;
    transform: scale(var(--mc-assistant-scale));
    transform-origin: 0 0;
  }
}

.mc-assistant-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: var(--mc-space-1) var(--mc-space-1) var(--mc-space-1) var(--mc-space-3);
  color: var(--mc-color-on-primary);
  background-color: var(--mc-color-brand);

  & h2 {
    flex: 1;
    margin: 0;
    font-size: 0.875rem;
    color: inherit;
  }

  & p {
    flex-basis: 100%;
    margin: 0 0 var(--mc-space-1);
    font-size: 0.75rem;
  }
}

.mc-assistant-close {
  display: inline-flex;
  padding: var(--mc-space-2);
  color: inherit;
  cursor: pointer;
  background: none;
  border: 1px solid transparent;
  border-radius: var(--mc-radius);

  &:hover {
    border-color: var(--mc-color-on-primary);
  }
}

/* Phones: a smaller card, so the page stays in sight above it. */
@media (max-width: 479.98px) {
  .mc-assistant-panel {
    right: var(--mc-space-2);
    bottom: var(--mc-space-2);
    width: calc(100vw - 2 * var(--mc-space-2));
    height: min(30rem, 60dvh);
  }
}

/* A photo that opens full size: the whole image is the button, the magnifier says so. */
.mc-photo {
  position: relative;
  display: block;
  cursor: zoom-in;
  border-radius: var(--mc-radius);

  &:hover img {
    border-color: var(--mc-color-primary);
  }
}

.mc-photo-zoom {
  position: absolute;
  right: var(--mc-space-2);
  bottom: var(--mc-space-2);
  display: flex;
  padding: var(--mc-space-1);
  color: var(--mc-color-primary);
  background-color: var(--mc-color-surface);
  border: 1px solid var(--mc-color-border);
  border-radius: var(--mc-radius);
}

.mc-icon {
  flex: none;
  vertical-align: -0.125em;
}

.mc-button-sm {
  display: inline-flex;
  gap: var(--mc-space-2);
  align-items: center;
  padding: var(--mc-space-1) var(--mc-space-3);
  font-size: 0.875rem;
  border-width: 1px;
}

/* The photo at its own size, at most the window (as in ai-bot). */
.mc-photo-dialog {
  max-width: calc(100vw - 2 * var(--mc-space-4));
  max-height: calc(100vh - 2 * var(--mc-space-4));
  padding: var(--mc-space-4);
  color: var(--mc-color-body-text);
  background-color: var(--mc-color-surface);
  border: 1px solid var(--mc-color-border);
  border-radius: var(--mc-radius);

  &::backdrop {
    background-color: var(--mc-color-backdrop);
  }

  & img {
    display: block;
    max-width: 100%;
    max-height: calc(100vh - 9rem);
    margin: 0 auto;
  }
}

.mc-photo-dialog-footer {
  display: flex;
  flex-wrap: wrap;
  gap: var(--mc-space-3);
  align-items: center;
  justify-content: space-between;
  margin-top: var(--mc-space-3);

  & form {
    margin: 0;
  }
}

.mc-photo-caption {
  font-family: var(--mc-font-family-mono);
  font-weight: 700;
}

.mc-photo-nav {
  display: flex;
  gap: var(--mc-space-2);
  align-items: center;

  &[hidden] {
    display: none;
  }
}

.mc-photo-count {
  min-width: 3.5rem;
  font-size: 0.875rem;
  text-align: center;
}

.mc-note-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: var(--mc-space-8);
  align-items: start;
}

/* Contact form: labels above fields; a field the visitor left wrong gets the danger border
   next to the browser's own message. */
.mc-form form {
  display: grid;
  gap: var(--mc-space-4);
  max-width: 48rem;

  & label {
    display: flex;
    flex-direction: column;
    gap: var(--mc-space-1);
    font-weight: 700;
  }

  & input:not([type="radio"]),
  & textarea {
    padding: var(--mc-space-2) var(--mc-space-3);
    font: inherit;
    font-weight: 400;
    color: var(--mc-color-body-text);
    background-color: var(--mc-color-surface);
    border: 1px solid var(--mc-color-border);
    border-radius: var(--mc-radius);

    &:focus-visible {
      border-color: var(--mc-color-primary);
    }

    &:user-invalid {
      border-color: var(--mc-color-danger);
    }
  }

  & fieldset {
    margin: 0;
    padding: 0;
    border: 0;
  }

  & legend {
    margin-bottom: var(--mc-space-2);
    font-weight: 700;
  }

  & button {
    justify-self: start;
  }
}

.mc-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: var(--mc-space-4);
}

.mc-form .mc-choice {
  display: inline-flex;
  flex-direction: row;
  gap: var(--mc-space-2);
  align-items: center;
  margin-right: var(--mc-space-6);
  font-weight: 400;
}

.mc-form-status {
  margin: 0;
  padding: var(--mc-space-3) var(--mc-space-4);
  background-color: var(--mc-color-light);
  border-left: 4px solid var(--mc-color-primary);
}

.mc-map {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--mc-color-border);
}

.mc-video iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
}

.mc-footer {
  padding: var(--mc-space-8) 0 var(--mc-space-6);
  font-size: 0.875rem;
  color: var(--mc-color-on-primary);
  background-color: var(--mc-color-brand);

  & .mc-container:first-child {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: var(--mc-space-6);
  }

  & a {
    color: var(--mc-color-on-primary);
  }

  & ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }
}

.mc-footer-title {
  margin-bottom: var(--mc-space-2);
  font-weight: 700;
}

.mc-legal {
  margin: var(--mc-space-6) 0 0;
}

@media (max-width: 767.98px) {
  h1,
  .mc-hero h1 { font-size: 1.875rem; }

  .mc-header .mc-container {
    flex-wrap: wrap;
    gap: var(--mc-space-2) var(--mc-space-4);
    padding-block: var(--mc-space-3);
  }

  .mc-brand {
    font-size: 1.25rem;
  }

  /* Brand and language on the first row, the menu below; the assistant has its launcher. */
  .mc-header nav {
    order: 2;
    width: 100%;
  }

  .mc-header .mc-header-assistant,
  .mc-header .mc-lang {
    display: none;
  }

  .mc-lang-menu {
    display: block;
  }

  .mc-nav {
    flex-wrap: wrap;
    gap: 0 var(--mc-space-6);
  }

  .mc-task,
  .mc-sheet-head,
  .mc-note-body,
  .mc-footer .mc-container:first-child {
    grid-template-columns: 1fr;
  }

  .mc-section {
    padding: var(--mc-space-8) 0;
  }

  .mc-table .mc-hide-narrow {
    display: none;
  }
}
