/* Mobilitee Editorial RC11bis — home only. Copy the visual box model of
   the original #step1; keep the outer page white. There is no viewport-width
   hack and no calculated left/right offset. */
.Homepage .mb-home-analyses {
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 0;
  clear: both;
  padding: 20px 0 28px;
  background: #fff;
  color: #20152b;
  font-family: inherit;
  box-sizing: border-box;
}
.Homepage .mb-home-analyses *,
.Homepage .mb-home-analyses *::before,
.Homepage .mb-home-analyses *::after { box-sizing: border-box; }

/* The frame keeps the same computed outer width, padding and radius as
   #step1. Native auto margins enforce equal left AND right breathing room.
   It can never exceed the normal page container. */
.Homepage .mb-home-analyses__inner {
  width: min(100%, var(--mb-tunnel-frame-width, calc(100% - 40px)));
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: var(--mb-tunnel-frame-padding, clamp(24px, 4vw, 48px));
  border: 1px solid #e9e7df;
  border-radius: var(--mb-tunnel-frame-radius, 16px);
  background: #FAF9F1;
}
.Homepage .mb-home-analyses__heading {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.Homepage .mb-home-analyses__kicker {
  margin: 0 0 10px;
  color: #205c68;
  font-size: 12px;
  line-height: 1.4;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.Homepage .mb-home-analyses h2 {
  margin: 0 0 12px;
  font-size: clamp(30px, 3vw, 40px);
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: -.02em;
}
.Homepage .mb-home-analyses__intro {
  margin: 0;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 400;
}
.Homepage .mb-home-analyses__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 912px;
  justify-content: center;
  gap: clamp(14px, 1.8vw, 22px);
  margin: 28px auto 0;
  align-items: stretch;
}
.Homepage .mb-home-analyses__grid:has(> .mb-home-analyses__card:only-child) {
  grid-template-columns: minmax(0, 1fr);
  max-width: 450px;
  justify-content: center;
}
.Homepage .mb-home-analyses__grid:has(> .mb-home-analyses__card:nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 722px;
}
/* Direct card in frame — same two source colours and same corner placement
   as the tunnel SVG gradients, at very low intensity. No secondary borders. */
.Homepage .mb-home-analyses__card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(57,49,64,.08);
  border-radius: 15px;
  /* Same muted base and two source tones as the tunnel SVG; no new accent. */
  background-color: #FAF9F1;
  background-image:
    radial-gradient(ellipse 115% 115% at 98% 0%, rgba(211,176,242,.19) 0%, transparent 78%),
    radial-gradient(ellipse 120% 120% at 1% 100%, rgba(150,213,226,.21) 0%, transparent 78%);
}
.Homepage .mb-home-analyses__image-link { display: block; }
.Homepage .mb-home-analyses__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.Homepage .mb-home-analyses__card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: clamp(20px, 2.1vw, 26px);
  min-height: 172px;
}
.Homepage .mb-home-analyses__meta {
  margin: 0 0 10px;
  color: #205c68;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.45;
  text-transform: uppercase;
}
.Homepage .mb-home-analyses h3 {
  margin: 0 0 11px;
  font-size: clamp(19px, 1.85vw, 22px);
  font-weight: 650;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.Homepage .mb-home-analyses__card h3 a { color: #20152b; text-decoration: none; }
.Homepage .mb-home-analyses__card h3 a:hover,
.Homepage .mb-home-analyses__card h3 a:focus-visible { text-decoration: underline; }
.Homepage .mb-home-analyses__excerpt {
  margin: 0 0 14px;
  color: #30283c;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.55;
}
.Homepage .mb-home-analyses__byline {
  margin: auto 0 0;
  padding-top: 4px;
  color: #555061;
  font-size: 13px;
  line-height: 1.45;
}
.Homepage .mb-home-analyses__all { margin: 26px 0 0; text-align: center; }
.Homepage .mb-home-analyses__all a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 12px 18px;
  border-radius: 12px;
  background: #96d5e2;
  color: #185363;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
  text-decoration: none;
}
.Homepage .mb-home-analyses__all a:hover,
.Homepage .mb-home-analyses__all a:focus-visible {
  background: #85cbda;
  text-decoration: underline;
}
/* RC14 — compact excerpts on tablet/desktop. The full chapo stays in the
   DOM for indexing and assistive technologies; only visual display is clamped.
   The RC13 mobile carousel (<=640px) retains its stricter three-line clamp. */
@media (min-width: 641px) {
  .Homepage .mb-home-analyses__excerpt {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
  }
}
@media (max-width: 920px) {
  .Homepage .mb-home-analyses__inner { width: min(100%, var(--mb-tunnel-frame-width, calc(100% - 32px))); }
  .Homepage .mb-home-analyses__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* RC13 — mobile-only, no JS dependency: swipeable native horizontal scrolling.
   Preserve RC11bis frame dimensions, desktop grid and all three DOM cards.
   Cards remain ordinary links accessible with the keyboard and screen readers. */
@media (max-width: 640px) {
  .Homepage .mb-home-analyses { padding: 20px 0 26px; }
  .Homepage .mb-home-analyses__inner { width: min(100%, var(--mb-tunnel-frame-width, calc(100% - 24px))); }
  .Homepage .mb-home-analyses__heading { text-align: left; }
  .Homepage .mb-home-analyses h2 { font-size: 29px; }
  .Homepage .mb-home-analyses__intro { font-size: 16px; }
  .Homepage .mb-home-analyses__grid,
  .Homepage .mb-home-analyses__grid:has(> .mb-home-analyses__card:only-child),
  .Homepage .mb-home-analyses__grid:has(> .mb-home-analyses__card:nth-child(2):last-child) {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: stretch;
    gap: 14px;
    width: 100%;
    max-width: 100%;
    margin: 24px auto 0;
    padding: 2px 2px 12px; /* space for focus outline and native scrollbar */
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 2px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #b9cdd2 transparent;
  }
  .Homepage .mb-home-analyses__card {
    flex: 0 0 84%; /* reveal part of the next card: scroll affordance */
    max-width: 360px;
    scroll-snap-align: start;
  }
  .Homepage .mb-home-analyses__grid > .mb-home-analyses__card:only-child {
    flex-basis: 100%;
    max-width: 100%;
  }
  .Homepage .mb-home-analyses__card-body { padding: 17px 16px; min-height: 0; }
  .Homepage .mb-home-analyses__meta { font-size: 12px; margin-bottom: 8px; }
  .Homepage .mb-home-analyses h3 {
    font-size: 18px;
    line-height: 1.3;
    margin-bottom: 9px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
  }
  .Homepage .mb-home-analyses__excerpt {
    font-size: 14px;
    line-height: 1.45;
    margin-bottom: 10px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }
  .Homepage .mb-home-analyses__byline { font-size: 12px; }
  .Homepage .mb-home-analyses__all { text-align: left; margin-top: 18px; }
}
