[data-page="pricing"] {
  --color-background: hsl(200, 20%, 99%);
  --color-background-weak: hsl(200, 10%, 96%);
  --color-background-strong: hsl(200, 8%, 12%);
  --color-background-strong-hover: hsl(200, 8%, 18%);
  --color-background-interactive: hsl(172, 70%, 86%);
  --color-background-interactive-weaker: hsl(172, 55%, 94%);

  --color-text: hsl(200, 4%, 38%);
  --color-text-weak: hsl(200, 4%, 52%);
  --color-text-strong: hsl(200, 8%, 12%);
  --color-text-inverted: hsl(200, 20%, 99%);

  --color-border: hsl(200, 6%, 80%);
  --color-border-weak: hsl(200, 6%, 86%);
  --color-icon: hsl(200, 4%, 55%);
  --color-accent: hsl(172, 65%, 32%);

  @media (prefers-color-scheme: dark) {
    --color-background: hsl(216, 16%, 7%);
    --color-background-weak: hsl(216, 12%, 10%);
    --color-background-strong: hsl(200, 12%, 94%);
    --color-background-strong-hover: hsl(200, 12%, 97%);
    --color-background-interactive: hsl(172, 55%, 85%);
    --color-background-interactive-weaker: hsl(200, 10%, 14%);

    --color-text: hsl(200, 5%, 72%);
    --color-text-weak: hsl(200, 4%, 56%);
    --color-text-strong: hsl(200, 12%, 94%);
    --color-text-inverted: hsl(216, 16%, 7%);

    --color-border: hsl(200, 5%, 25%);
    --color-border-weak: hsl(200, 4%, 18%);
    --color-icon: hsl(200, 4%, 60%);
    --color-accent: hsl(172, 60%, 55%);
  }

  [data-component="hero"] {
    padding: 0 0 var(--vertical-padding);
    text-align: center;

    h1 {
      font-size: var(--font-size-4xl);
      font-weight: 700;
      color: var(--color-text-strong);
      margin-bottom: 16px;
      letter-spacing: -0.02em;
    }

    p {
      color: var(--color-text);
      max-width: 560px;
      margin: 0 auto;
      line-height: 180%;
    }
  }

  [data-component="tabs"] {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;

    [data-slot="tab-list"] {
      display: inline-flex;
      gap: 4px;
      padding: 4px;
      background: var(--color-background-weak);
      border: 1px solid var(--color-border-weak);
      border-radius: 999px;
    }

    button {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      border: none;
      background: none;
      padding: 10px 24px;
      border-radius: 999px;
      font-size: 14px;
      font-weight: 500;
      color: var(--color-text-weak);
      cursor: pointer;

      &:hover {
        color: var(--color-text-strong);
      }

      &[data-active] {
        background: var(--color-background-strong);
        color: var(--color-text-inverted);
      }
    }

    [data-slot="soon"] {
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      padding: 2px 8px;
      border-radius: 999px;
      background: var(--color-background-interactive);
      color: var(--color-text-strong);

      @media (prefers-color-scheme: dark) {
        color: var(--color-text-inverted);
      }
    }
  }

  [data-component="plans"],
  [data-component="developer"],
  [data-component="team"] {
    display: none;
    padding-bottom: var(--vertical-padding);

    &[data-active] {
      display: grid;
    }
  }

  [data-component="plans"] {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;

    @media (max-width: 60rem) {
      grid-template-columns: 1fr;
    }
  }

  [data-component="developer"],
  [data-component="team"] {
    grid-template-columns: minmax(0, 34rem);
    justify-content: center;
  }

  [data-slot="plan"] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 28px;
    border: 1px solid var(--color-border-weak);
    border-radius: 12px;
    background: var(--color-background);

    &[data-popular] {
      border-color: var(--color-accent);
      box-shadow: 0 0 0 1px var(--color-accent);
    }

    [data-slot="popular"] {
      position: absolute;
      top: -12px;
      left: 24px;
      padding: 3px 12px;
      border-radius: 999px;
      background: var(--color-accent);
      color: hsl(200, 20%, 99%);
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }

    [data-slot="name"] {
      font-size: 18px;
      font-weight: 700;
      color: var(--color-text-strong);
    }

    [data-slot="price"] {
      font-size: 40px;
      font-weight: 700;
      color: var(--color-text-strong);
      letter-spacing: -0.02em;

      span {
        font-size: 14px;
        font-weight: 400;
        color: var(--color-text-weak);
        margin-left: 8px;
      }
    }

    [data-slot="tagline"] {
      color: var(--color-text-weak);
      font-size: 14px;
    }

    [data-slot="inherits"] {
      margin-top: 8px;
      padding-top: 16px;
      border-top: 1px solid var(--color-border-weak);
      color: var(--color-text-weak);
      font-size: 12px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }

    ul {
      list-style: none;
      padding: 0;
      margin: 12px 0;
      display: flex;
      flex-direction: column;
      gap: 10px;

      li {
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: 14px;
        color: var(--color-text);

        svg {
          flex-shrink: 0;
          color: var(--color-accent);
        }

        [data-slot="soon-inline"] {
          margin-left: 4px;
          font-size: 10px;
          font-weight: 700;
          text-transform: uppercase;
          letter-spacing: 0.06em;
          padding: 2px 8px;
          border-radius: 999px;
          background: var(--color-background-interactive);
          color: var(--color-text-strong);

          @media (prefers-color-scheme: dark) {
            color: var(--color-text-inverted);
          }
        }
      }
    }

    [data-slot="devbody"] {
      font-size: 13px;
      color: var(--color-text-weak);
      line-height: 170%;
    }

    [data-slot="cta"] {
      margin-top: auto;
      display: block;
      text-align: center;
      padding: 12px 20px;
      border-radius: 6px;
      border: 1px solid var(--color-border);
      background: var(--color-background);
      color: var(--color-text-strong);
      font-weight: 600;
      font-size: 14px;
      text-decoration: none;
      cursor: pointer;

      &:hover {
        background: var(--color-background-weak);
      }

      &:disabled {
        opacity: 0.5;
        cursor: not-allowed;
      }
    }

    &[data-popular] [data-slot="cta"] {
      background: var(--color-background-strong);
      border-color: var(--color-background-strong);
      color: var(--color-text-inverted);

      &:hover {
        background: var(--color-background-strong-hover);
      }
    }
  }

  [data-component="payg"] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    padding: 28px;
    margin-bottom: var(--vertical-padding);
    border: 1px solid var(--color-border-weak);
    border-radius: 12px;
    background: var(--color-background-weak);

    @media (max-width: 48rem) {
      flex-direction: column;
      align-items: flex-start;
    }

    h3 {
      font-size: 16px;
      font-weight: 700;
      color: var(--color-text-strong);
      margin-bottom: 8px;
    }

    p {
      color: var(--color-text);
      font-size: 14px;
      max-width: 480px;
      line-height: 170%;
    }

    a {
      flex-shrink: 0;
      padding: 10px 20px;
      border-radius: 6px;
      background: var(--color-background-strong);
      color: var(--color-text-inverted);
      font-weight: 500;
      font-size: 14px;
      text-decoration: none;
      white-space: nowrap;

      &:hover {
        background: var(--color-background-strong-hover);
      }
    }
  }
}
