/* -----------------------------
       BASIC LAYOUT & GENERAL STYLES
    --------------------------------*/
    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
      background-color: #f9f9f9;
      color: #333;
      line-height: 1.5;
    }

    h1, h2, h3, h4, h5 {
      margin-top: 1em;
      margin-bottom: 0.5em;
    }

    p, ul, li {
      margin-bottom: 1em;
    }

    a {
      color: #3366cc;
      text-decoration: none;
    }
    a:hover {
      text-decoration: underline;
    }

    /* -----------------------------
       SIDEBAR NAVIGATION
    --------------------------------*/
    .sidebar {
      width: 250px;
      background-color: #fff;
      border-right: 1px solid #eee;
      position: fixed;
      top: 0;
      bottom: 0;
      overflow-y: auto;
      padding: 20px;
    }

    .sidebar h2 {
      margin-top: 0;
    }

    .sidebar ul {
      list-style: none;
      padding-left: 0;
    }

    .sidebar ul li a {
      display: block;
      padding: 8px 0;
      font-weight: 500;
    }

    /* -----------------------------
       MAIN CONTENT AREA
    --------------------------------*/
    .content {
      margin-left: 250px;
      padding: 20px 40px;
    }

    .diagram {
      text-align: center;
      margin-bottom: 40px;
    }

    .diagram img {
      max-width: 100%;
      height: auto;
      border: 1px solid #ddd;
      box-shadow: 0 0 5px rgba(0,0,0,0.1);
    }

    /* -----------------------------
       STACK & SERVICE SECTIONS
    --------------------------------*/
    .stack-section {
      background-color: #fff;
      border: 1px solid #eee;
      border-radius: 5px;
      margin-bottom: 40px;
      padding: 20px;
      box-shadow: 0 0 5px rgba(0,0,0,0.05);
    }

    .stack-section h2 {
      margin-top: 0;
      color: #333;
      margin-bottom: 10px;
    }

    .stack-desc {
      margin-bottom: 20px;
      font-style: italic;
      color: #666;
    }

    /* -----------------------------
       SERVICE CARDS
    --------------------------------*/
    .service-list {
      display: flex;
      flex-wrap: wrap;
      gap: 20px;
    }

    .service-card {
      flex: 1 1 300px;
      border: 1px solid #eee;
      border-radius: 5px;
      padding: 15px;
      background-color: #fafafa;
      box-shadow: 0 0 3px rgba(0,0,0,0.05);
      display: flex;
      align-items: flex-start;
      gap: 10px;
      transition: box-shadow 0.2s ease;
    }

    .service-card:hover {
      box-shadow: 0 0 8px rgba(0,0,0,0.1);
    }

    .service-icon {
      font-size: 1.5em;
      margin-right: 10px;
    }

    .service-card h4 {
      margin: 0 0 5px;
      font-size: 1.1em;
      color: #333;
    }

    .service-card p {
      margin: 0;
      font-size: 0.95em;
      line-height: 1.4;
      color: #555;
    }

    /* Example icons for demonstration */
    .monitor::before {
      content: "💻";
    }
    .external-link::before {
      content: "🔗";
    }
    .database::before {
      content: "🗄️";
    }
    .tool::before {
      content: "🛠️";
    }
    .code::before {
      content: "💡";
    }
    .zap::before {
      content: "⚡";
    }
    .server::before {
      content: "🔧";
    }
    .message-circle::before {
      content: "💬";
    }
    .users::before {
      content: "👥";
    }
    .user::before {
      content: "👤";
    }

    /* Bump up icon size in service cards for clarity */
    .service-card .monitor::before,
    .service-card .external-link::before,
    .service-card .database::before,
    .service-card .tool::before,
    .service-card .code::before,
    .service-card .zap::before,
    .service-card .server::before,
    .service-card .message-circle::before,
    .service-card .users::before,
    .service-card .user::before {
      font-size: 1.2em;
    }

    /* -----------------------------
       BUTTON & LINK STYLES
    --------------------------------*/
    .button-group {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin: 10px 0;
    }

    .button {
      display: inline-block;
      padding: 8px 15px;
      background-color: #3366cc;
      color: #fff;
      border-radius: 4px;
      text-decoration: none;
      transition: background-color 0.3s ease;
      font-size: 0.9em;
    }

    .button:hover {
      background-color: #254b8a;
    }

    /* -----------------------------
       CAROUSEL PLACEHOLDER
    --------------------------------*/
    .carousel {
      width: 100%;
      max-width: 700px;
      margin: 20px auto;
      position: relative;
      overflow: hidden;
      border: 1px solid #ddd;
      border-radius: 5px;
      box-shadow: 0 0 3px rgba(0,0,0,0.1);
    }
    .carousel-images {
      display: flex;
      width: 100%;
      transition: transform 0.4s ease;
    }
    .carousel-images img {
      width: 100%;
      display: block;
    }
    .carousel-controls {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 100%;
      display: flex;
      justify-content: space-between;
      pointer-events: none;
    }
    .carousel-controls button {
      pointer-events: auto;
      background-color: rgba(0,0,0,0.4);
      color: #fff;
      border: none;
      padding: 8px;
      border-radius: 50%;
      cursor: pointer;
      margin: 0 10px;
    }

    /* -----------------------------
       REQUIREMENTS TABLE
    --------------------------------*/
    .requirements-section {
      background-color: #fff;
      border: 1px solid #eee;
      border-radius: 5px;
      padding: 20px;
      margin-bottom: 40px;
      box-shadow: 0 0 5px rgba(0,0,0,0.05);
    }

    .requirements-table {
      width: 100%;
      border-collapse: collapse;
      margin-top: 20px;
      font-size: 0.95em;
    }

    .requirements-table th, .requirements-table td {
      border: 1px solid #ddd;
      padding: 8px;
      vertical-align: top;
    }

    .requirements-table th {
      background-color: #f2f2f2;
      text-align: left;
      width: 15%;
    }

    .requirements-table .desc-col {
      width: 25%;
    }

    .requirements-table .req-col {
      width: 35%;
    }

    .requirements-table .infra-col {
      width: 25%;
    }

    .requirements-table td ul {
      margin: 0;
      padding-left: 1.2em;
      list-style-type: disc;
    }

    /* Responsive adjustments */
    @media screen and (max-width: 768px) {
      .sidebar {
        width: 100%;
        position: static;
        border-right: none;
        border-bottom: 1px solid #eee;
      }
      .content {
        margin-left: 0;
      }

      .requirements-table,
      .requirements-table thead,
      .requirements-table tbody,
      .requirements-table th,
      .requirements-table td,
      .requirements-table tr {
        display: block;
        width: 100%;
      }

      .requirements-table th {
        box-sizing: border-box;
        width: 100%;
      }

      .requirements-table td {
        box-sizing: border-box;
        width: 100%;
        border-top: none;
      }

      .requirements-table td ul {
        margin-bottom: 10px;
      }
    }
    