/* WhiskerBeacon mobile responsiveness fixes
   Loads after global.css from Base.astro. */

@media (max-width: 760px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .ticker {
    font-size: 0.68rem;
    padding: 8px 0;
  }

  .ticker .track {
    animation-duration: 52s;
  }

  .ticker span {
    margin-right: 26px;
  }

  .flow {
    gap: 12px;
    margin-top: 28px;
  }

  .fstep {
    padding: 20px;
  }

  .farrow {
    height: 22px;
  }

  .mathbar {
    font-size: 0.88rem;
    padding: 12px 14px;
  }

  .band {
    position: relative;
    background: var(--cream-deep);
  }

  .band > img {
    height: 280px;
    width: 100%;
    object-fit: cover;
  }

  .bandgrid {
    position: static;
    transform: none;
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    max-width: none;
    padding: 18px;
    left: auto;
    inset: auto;
  }

  .bandcard,
  .bandcard.hl {
    width: 100%;
    max-width: 100%;
    padding: 20px;
  }

  .bandcard p {
    font-size: 0.96rem;
    line-height: 1.55;
  }

  .engine.glow::before {
    inset: -8px;
  }

  .engine .ehead,
  .transcript .thead {
    line-height: 1.35;
  }

  .transcript .line,
  .engine .erow,
  .engine .efoot {
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .engine .erow {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .chip {
    margin-left: 0;
  }

  .cta-row .btn {
    width: 100%;
    text-align: center;
  }

  form.capture {
    display: grid;
    grid-template-columns: 1fr;
  }

  form.capture input[type="email"],
  form.capture input[type="text"],
  form.capture .btn,
  form.capture button {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .hero h1 {
    font-size: clamp(2rem, 11vw, 2.45rem);
  }

  .lede {
    font-size: 1.04rem;
  }

  .section {
    padding: 52px 0;
  }

  .section.tight {
    padding: 42px 0;
  }

  .card,
  .pinecard,
  .fstep {
    padding: 20px;
  }

  .band > img {
    height: 240px;
  }
}
