/* Tablet — interpolates desktop structure and mobile constraints.
   768–1199px. Desktop at 1200px+ is unchanged.
   Explicitly undo mobile stacked rules so this range cannot inherit them. */
@media (min-width: 768px) and (max-width: 1199px) {
  :root {
    --hero-height: 900px;
    --hero-media-top: 472px;
  }

  .container {
    padding-inline: 40px;
  }

  /* Nav: desktop contents in a fluid pill */
  .top-nav {
    top: 24px;
    left: 40px;
    right: 40px;
    width: auto;
    transform: none;
    justify-content: space-between;
    gap: 16px;
  }

  .top-nav__logo {
    width: auto;
  }

  .top-nav__links {
    display: flex;
    gap: 8px;
  }

  /* Hero: no badges; photo band pinned to the bottom like desktop/mobile */
  .hero__badge {
    display: none;
  }

  .hero__media {
    top: auto;
    bottom: 0;
  }

  .hero__inner {
    display: block;
    height: 100%;
    padding: 0;
  }

  .hero__title-block,
  .hero__text-container {
    position: absolute;
    top: auto;
    width: auto;
  }

  .hero__title-block {
    top: 140px;
    left: 40px;
    right: auto;
    width: calc(50% - 160px);
    max-width: 380px;
  }

  .hero__title {
    font-size: 36px;
    line-height: 44px;
    letter-spacing: -0.72px;
    text-align: left;
  }

  .hero__title-highlight::before {
    left: -4px;
    right: -3px;
    height: 40px;
    transform: translateY(-20%);
  }

  .hero__text-container {
    top: var(--hero-media-top);
    right: 40px;
    left: auto;
    width: calc(50% - 160px);
    max-width: 280px;
    align-items: flex-start;
    gap: 24px;
  }

  .hero__description {
    text-align: left;
  }

  .hero__description br {
    display: none;
  }

  .hero__text-container .btn--primary {
    width: auto;
    max-width: max-content;
  }

  .phone-frame--hero {
    top: 320px;
    width: 200px;
    height: calc(200px * var(--phone-height) / var(--phone-width));
    border-radius: 26px;
    box-shadow:
      0 0 0 8.5px rgba(255, 255, 255, 0.48),
      inset 0 0 0 1px #f3f3f3;
  }

  .phone-frame--hero .phone-frame__screen {
    border-radius: 26px;
  }

  /* How it works: 3 columns, phones clipped to the centre cell */
  .how-it-works__band {
    height: auto;
    min-height: 720px;
  }

  .how-it-works__band--first {
    margin-top: var(--section-gap);
    border-top: 1px solid var(--color-border);
  }

  .how-it-works__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    height: auto;
    min-height: 720px;
  }

  .how-it-works__col {
    min-width: 0;
    width: auto;
    padding: 64px 32px;
    background: none;
  }

  .how-it-works__col--white {
    background: var(--color-background);
  }

  .how-it-works__col--muted {
    background: var(--color-muted);
  }

  .how-it-works__col:first-child,
  .how-it-works__col:last-child {
    order: 0;
    text-align: left;
    border-bottom: none;
  }

  .how-it-works__col:first-child {
    padding: 64px 32px;
    border-left: 1px solid var(--color-border);
  }

  .how-it-works__col:last-child {
    padding: 64px 32px;
    border-right: 1px solid var(--color-border);
  }

  .how-it-works__col--center {
    order: 0;
    padding: 64px 16px;
    border-inline: 1px solid var(--color-border);
  }

  .how-it-works__heading,
  .how-it-works__body {
    min-width: 0;
    width: auto;
    overflow-wrap: break-word;
  }

  .phone-frame--step {
    position: relative;
    z-index: 1;
    display: block;
    width: 184px;
    height: calc(184px * var(--phone-height) / var(--phone-width));
    border-radius: 24px;
    flex-shrink: 0;
    box-shadow:
      0 0 0 8px var(--color-phone-ring),
      inset 0 0 0 1px var(--color-alpha-dark-6);
  }

  .phone-frame--step .phone-frame__screen {
    border-radius: 24px;
  }

  /* Problem: roomy copy box, no table */
  .why-ruvio {
    padding-bottom: 80px;
  }

  .why-ruvio__content {
    gap: 80px;
  }

  .why-ruvio__copy-block {
    margin-inline: -40px;
    padding: 80px 40px;
    border: none;
    border-bottom: 1px solid var(--color-border);
  }

  .why-ruvio__cta-content {
    padding: 80px 48px;
  }

  .why-ruvio__heading,
  .why-ruvio__text-block,
  .why-ruvio__cta-heading,
  .why-ruvio__cta-text {
    width: auto;
    max-width: 520px;
  }

  .why-ruvio__cta-content .btn--primary {
    width: auto;
    max-width: max-content;
  }

  .footer__inner {
    flex-direction: row;
    justify-content: space-between;
    gap: 16px;
    padding: 24px 40px;
    text-align: left;
  }

  .waitlist-modal {
    width: 560px;
    max-width: calc(100vw - 48px);
    padding: 32px;
  }

  .waitlist-modal__form {
    width: 400px;
  }

  .waitlist-modal__legal {
    width: 400px;
  }
}
