/* Base: keep every block inside the viewport width */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
}

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

h1,
h2,
h3,
p,
li,
a,
b,
span {
  overflow-wrap: break-word;
}

.btn {
  max-width: 100%;
  justify-content: center;
  text-align: center;
}

/* Tablet */
@media (max-width: 900px) {
  .hero-grid,
  .split-grid {
    gap: 36px !important;
  }

  .sec {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
  }
}

/* Phone */
@media (max-width: 600px) {
  #lp-root {
    font-size: 16px !important;
  }

  .container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .sec-hero {
    padding: 40px 0 44px !important;
  }

  .sec {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }

  .sec-quote {
    padding: 44px 0 8px !important;
  }

  .sec-author {
    padding-bottom: 48px !important;
  }

  .sec-closing {
    padding: 44px 0 !important;
  }

  .footer {
    padding: 36px 0 28px !important;
  }

  .hero-grid,
  .split-grid {
    gap: 28px !important;
  }

  .split-grid {
    margin-top: 28px !important;
  }

  /* Full-width buttons with text that fits */
  .btn {
    display: flex !important;
    width: 100%;
    padding: 16px 20px !important;
    font-size: 15px !important;
    letter-spacing: 0.3px !important;
    gap: 10px !important;
  }

  .quote {
    padding: 34px 20px 24px 22px !important;
    border-left-width: 4px !important;
  }

  .quote > span:first-child {
    left: 18px !important;
    font-size: 64px !important;
  }

  .author-card {
    padding: 26px 20px !important;
  }

  .price-box {
    padding: 14px !important;
  }

  .price-card {
    flex: 1 1 120px;
    min-width: 0 !important;
    padding: 10px 12px !important;
  }

  .price-card b {
    font-size: 18px !important;
  }

  .card {
    padding: 22px 18px !important;
  }

  .sec h2 + p,
  .sec-hero h1 + p {
    font-size: 17px !important;
  }

  .sec-hero img,
  .split-grid img {
    max-width: 280px !important;
  }
}
