.viberide-hero {
  position: relative;
  height: clamp(460px, calc(100svh - 260px), 700px);
  min-height: 460px;
  overflow: hidden;
  background: #d7d3c8;
}

.viberide-hero-map {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(245, 240, 231, .98) 0%, rgba(245, 240, 231, .92) 34%, rgba(245, 240, 231, .18) 64%, rgba(36, 31, 27, .08) 100%),
    url("/viberide/assets/route-network.webp") center / cover no-repeat;
  transform: scale(1.04);
}

.viberide-hero-copy {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: clamp(20px, 6vw, 96px);
  width: min(680px, 52vw);
  transform: translateY(-53%);
}

.viberide-hero-copy h1 {
  max-width: 760px;
  margin: 0;
  font-size: 88px;
  font-weight: 450;
  letter-spacing: 0;
  line-height: .86;
  text-transform: uppercase;
}

.viberide-hero-copy h1 em {
  color: var(--wine);
  font-family: var(--serif);
  font-size: .66em;
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.viberide-hero-copy > p:not(.kicker) {
  max-width: 600px;
  margin: 28px 0 26px;
  color: #3f3833;
  font-family: var(--serif);
  font-size: 22px;
  line-height: 1.45;
}

.viberide-actions { display: flex; flex-wrap: wrap; gap: 8px; }

.viberide-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--wine);
  padding: 0 18px;
  background: rgba(255, 250, 242, .82);
  color: var(--wine);
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
}

.viberide-button:hover,
.viberide-button:focus-visible,
.viberide-button--primary { background: var(--wine); color: #fff; }
.viberide-button--primary:hover,
.viberide-button--primary:focus-visible { border-color: var(--forest); background: var(--forest); }

.viberide-hero-phone {
  position: absolute;
  z-index: 2;
  right: clamp(4%, 8vw, 12%);
  bottom: -28%;
  width: clamp(250px, 24vw, 380px);
  margin: 0;
  filter: drop-shadow(0 30px 38px rgba(32, 24, 20, .28));
  transform: rotate(2deg);
}

.viberide-hero img,
.viberide-network img,
.viberide-ride img,
.viberide-watch img { height: auto; }
.viberide-hero-phone img { width: 100%; }
.viberide-hero-caption { position: absolute; z-index: 2; right: 24px; bottom: 16px; margin: 0; color: rgba(255,255,255,.9); font-family: var(--serif); font-size: 11px; font-style: italic; text-shadow: 0 1px 8px rgba(0,0,0,.55); }

.viberide-network,
.viberide-flow,
.viberide-ride,
.viberide-watch,
.viberide-final { padding: var(--section-space) clamp(20px, 6vw, 96px); }

.viberide-network {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(360px, 1fr);
  gap: clamp(44px, 7vw, 112px);
  background: var(--paper);
}

.viberide-section-heading h2,
.viberide-ride-copy h2,
.viberide-watch h2,
.viberide-final h2 {
  margin: 0;
  font-size: 68px;
  font-weight: 450;
  letter-spacing: 0;
  line-height: .92;
}

.viberide-network-copy { align-self: end; }
.viberide-lead { margin: 0 0 32px; font-family: var(--serif); font-size: 23px; line-height: 1.5; }
.viberide-facts { margin: 0; border-top: 1px solid var(--line); }
.viberide-facts div { display: grid; min-height: 104px; align-items: center; border-bottom: 1px solid var(--line); grid-template-columns: 42px 1fr; gap: 14px; }
.viberide-facts dt { color: var(--wine); font-family: var(--serif); font-size: 13px; font-style: italic; }
.viberide-facts dd { margin: 0; }
.viberide-facts strong { display: block; margin-bottom: 5px; font-family: var(--serif); font-size: 20px; font-weight: 400; }
.viberide-facts span { display: block; color: var(--muted); font-size: 12px; line-height: 1.45; }
.viberide-network-figure { grid-column: 1 / -1; margin: 0; border-top: 1px solid var(--line); padding-top: 24px; }
.viberide-network-figure img { width: 100%; max-height: 720px; border: 1px solid #aaa196; object-fit: cover; }
.viberide-network-figure figcaption { margin-top: 8px; color: var(--muted); font-family: var(--serif); font-size: 11px; font-style: italic; }

.viberide-flow { background: var(--paper-deep); }
.viberide-flow .viberide-section-heading { display: grid; grid-template-columns: minmax(0, .7fr) minmax(380px, 1.2fr); gap: 40px; }
.viberide-steps { display: grid; margin: clamp(44px, 6vw, 78px) 0 28px; border-top: 1px solid #bdb1a4; padding: 0; grid-template-columns: repeat(3, 1fr); list-style: none; }
.viberide-steps li { min-height: 220px; border-bottom: 1px solid #bdb1a4; padding: 22px clamp(16px, 2.4vw, 34px) 28px 0; }
.viberide-steps li + li { border-left: 1px solid #bdb1a4; padding-left: clamp(16px, 2.4vw, 34px); }
.viberide-steps span { color: var(--wine); font-family: var(--serif); font-size: 13px; font-style: italic; }
.viberide-steps strong { display: block; margin: 52px 0 9px; font-family: var(--serif); font-size: 28px; font-weight: 400; }
.viberide-steps p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.viberide-inline-link { color: var(--wine); font-size: 10px; font-weight: 750; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }

.viberide-ride {
  display: grid;
  align-items: center;
  background: var(--wine-dark);
  color: #fff;
  grid-template-columns: minmax(320px, .78fr) minmax(420px, 1.22fr);
  gap: clamp(42px, 7vw, 108px);
}
.viberide-ride .kicker { color: #e3c9bb; }
.viberide-ride-copy h2 { max-width: 760px; }
.viberide-ride-copy > p:not(.kicker) { margin: 26px 0; color: #f0e7df; font-family: var(--serif); font-size: 21px; line-height: 1.5; }
.viberide-ride-copy ul { margin: 0; border-top: 1px solid rgba(255,255,255,.25); padding: 0; list-style: none; }
.viberide-ride-copy li { border-bottom: 1px solid rgba(255,255,255,.25); padding: 14px 0; color: #e9ddd5; font-size: 11px; }
.viberide-screens { display: grid; align-items: end; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 2vw, 28px); }
.viberide-screens figure { margin: 0; }
.viberide-screens figure:last-child { transform: translateY(34px); }
.viberide-screens img { width: 100%; filter: drop-shadow(0 24px 32px rgba(0,0,0,.32)); }

.viberide-watch { display: grid; align-items: center; background: var(--paper-strong); grid-template-columns: minmax(260px, .75fr) minmax(360px, 1fr); gap: clamp(40px, 8vw, 130px); }
.viberide-watch-visual { display: grid; min-height: 420px; place-items: center; border-right: 1px solid var(--line); }
.viberide-watch-visual img { width: min(100%, 422px); filter: drop-shadow(0 24px 30px rgba(45,35,29,.18)); }
.viberide-watch p:not(.kicker) { max-width: 630px; margin: 26px 0 0; color: var(--muted); font-family: var(--serif); font-size: 21px; line-height: 1.5; }

.viberide-final { background: var(--forest); color: #fff; text-align: center; }
.viberide-final .kicker { color: #d9e2dc; }
.viberide-final h2 em { color: #e8d5c8; font-family: var(--serif); font-style: italic; font-weight: 400; letter-spacing: 0; }
.viberide-final .viberide-actions { margin-top: 32px; justify-content: center; }
.viberide-final .viberide-button { border-color: #fff; background: transparent; color: #fff; }
.viberide-final .viberide-button--primary,
.viberide-final .viberide-button:hover { background: #fff; color: var(--forest); }

@media (max-width: 980px) {
  .viberide-hero-copy h1 { font-size: 70px; }
  .viberide-section-heading h2,
  .viberide-ride-copy h2,
  .viberide-watch h2,
  .viberide-final h2 { font-size: 56px; }
  .viberide-hero-copy { width: min(610px, 66vw); }
  .viberide-hero-phone { right: 2%; width: 300px; opacity: .92; }
  .viberide-network { grid-template-columns: 1fr; }
  .viberide-network-copy { max-width: 760px; }
  .viberide-flow .viberide-section-heading { grid-template-columns: 1fr; }
  .viberide-ride { grid-template-columns: 1fr; }
  .viberide-ride-copy { max-width: 760px; }
  .viberide-screens { width: min(100%, 720px); margin: 0 auto; }
}

@media (max-width: 700px) {
  .viberide-hero { height: 690px; min-height: 690px; }
  .viberide-hero-map { background-position: 62% center; }
  .viberide-hero-copy { top: 42px; left: 16px; width: calc(100% - 32px); transform: none; }
  .viberide-hero-copy h1 { max-width: 390px; font-size: 48px; }
  .viberide-hero-copy h1 em { font-size: .58em; }
  .viberide-hero-copy > p:not(.kicker) { max-width: 360px; margin: 20px 0; font-size: 16px; }
  .viberide-button { min-height: 44px; padding: 0 12px; font-size: 8px; }
  .viberide-hero-phone { right: -30px; bottom: -330px; width: 300px; opacity: .88; }
  .viberide-hero-caption { right: 12px; bottom: 10px; left: 12px; font-size: 9px; text-align: left; }
  .viberide-network,
  .viberide-flow,
  .viberide-ride,
  .viberide-watch,
  .viberide-final { padding-right: 18px; padding-left: 18px; }
  .viberide-section-heading h2,
  .viberide-ride-copy h2,
  .viberide-watch h2,
  .viberide-final h2 { font-size: 42px; }
  .viberide-facts div { grid-template-columns: 34px 1fr; }
  .viberide-network-figure img { min-height: 320px; object-position: 62% center; }
  .viberide-steps { grid-template-columns: 1fr; }
  .viberide-steps li { min-height: 0; padding: 22px 0 26px; }
  .viberide-steps li + li { border-left: 0; padding-left: 0; }
  .viberide-steps strong { margin-top: 24px; }
  .viberide-screens { gap: 6px; }
  .viberide-screens figure:last-child { transform: translateY(14px); }
  .viberide-watch { grid-template-columns: 1fr; }
  .viberide-watch-visual { min-height: 260px; border-right: 0; border-bottom: 1px solid var(--line); padding-bottom: 34px; }
  .viberide-watch-visual img { width: min(80%, 330px); }
  .viberide-final h2 br { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .viberide-hero-map { transform: none; }
}
