:root {
  --service-img-size: 10rem;
}

.services {
  .services-note {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 0.75rem;
    margin: 2rem auto;
    font-size: .9rem;
    text-align: center;
    font-style: italic;
    opacity: 0.75;
    color: var(--color-accent-rgb);
  }
}

.modules {
  position: relative;
  display: grid;
  gap: 3rem;
  padding: 1rem 0;

  .module-accordion {
    overflow: hidden;
    margin: 0;
    transform: scale(.98);
    transition: var(--transition-default);

    &:hover {
      transform: scale(1);
      border-color: rgba(var(--color-accent), .5);
    }

    /* --------------------------
       OPEN STATE
    --------------------------- */
    &.open {
      .module-body {
        max-height: 100%;
        padding: 1rem;

        p {
          padding: 1rem 0;
        }
      }
    }

    /* ==========================
       HEADER
    =========================== */
    .module-header {
      position: relative;
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
      gap: 1rem;
      padding: 1rem;
      cursor: pointer;

      img {
        width: var(--service-img-size);
        height: var(--service-img-size);
        object-fit: contain;
        border-radius: 1rem;
      }

      .module-info {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
        pointer-events: none;

        .module-title {
          text-align: center;
          font-size: 1.2rem;
          font-weight: 600;
          line-height: 1.2;
        }

        /* ==============================
           SERVICE PRICING
        ============================== */

        .service-pricing {
          display: flex;
          flex-direction: column;
          gap: 0.5rem;
          padding: .5rem 0;

          .prices-row,
          .prices-col {
            display: flex;
            flex-direction: row;
            justify-content: center;
            align-items: center;
            gap: 0.25rem;
          }

          .prices-col {
            flex-direction: column;
            justify-content: center;
            gap: 0.25rem;
          }

          span,
          s {
            font-size: 0.75rem;
            text-transform: uppercase;
            opacity: 0.85;
          }

          strong {
            font-size: 0.9rem;
            color: var(--color-accent-rgb);
          }

          .service-btc,
          small {
            font-size: 0.75rem;
            font-style: italic;
            opacity: 0.9;
          }

          ul li {
            margin: .25rem auto;
          }
        }
      }

      .module-toggle {
        width: 3rem;
        height: 3rem;
        padding: 0;
        background: none;
        border: none;
        font-size: 2.4rem;
        color: inherit;
        transition: var(--transition-default);
        cursor: pointer;
        z-index: 2;

        &:hover {
          color: rgba(var(--color-accent), 1);
        }
      }
    }

    /* ==========================
       BODY
    =========================== */
    .module-body {
      max-height: 0;
      overflow-y: auto;
      padding: 0 1rem;
      transition:
        max-height 0.35s ease,
        padding 0.25s ease;
    }

    /* ==========================
           ACTIONS
        =========================== */
    .service-actions .btn {
      display: flex;
      justify-content: center;
      padding: 1rem;
    }
  }
}