.faq-acc {
      container-type: inline-size;
      container-name: faq-acc;
    }

    .faq-acc__header {
      max-width: 640px;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: var(--space-4xl);
      text-align: center;
    }

    .faq-acc__label {
      display: inline-block;
      font-family: var(--font-primary);
      font-size: var(--text-xs);
      font-weight: 500;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--primary);
      margin-bottom: var(--space-l);
    }

    .faq-acc__title {
      font-family: var(--font-primary);
      font-size: var(--text-3xl);
      font-weight: 300;
      line-height: 1.15;
      color: var(--text-title);
      margin: 0 0 var(--space-l);
    }

    .faq-acc__title em {
      font-style: normal;
      font-weight: 500;
    }

    .faq-acc__intro {
      font-family: var(--font-secondary);
      font-size: var(--text-m);
      line-height: 1.7;
      color: var(--text-body);
      margin: 0;
    }

    /* FAQ List */
    .faq-acc__list {
      max-width: 800px;
      margin-left: auto;
      margin-right: auto;
    }

    .faq-acc__item {
      border-bottom: 1px solid var(--border-primary);
    }

    .faq-acc__item:first-child {
      border-top: 1px solid var(--border-primary);
    }

    /* Question Button */
    .faq-acc__question {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      padding: var(--space-l) 0;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
      gap: var(--space-l);
    }

    .faq-acc__question:hover .faq-acc__question-text {
      color: var(--primary);
    }

    .faq-acc__question:focus {
      outline: none;
    }

    .faq-acc__question:focus-visible {
      outline: 2px solid var(--primary);
      outline-offset: 4px;
    }

    .faq-acc__question-text {
      font-family: var(--font-primary);
      font-size: var(--text-ml);
      font-weight: 500;
      line-height: 1.4;
      color: var(--text-title);
      transition: color 0.2s ease;
    }

    .faq-acc__icon {
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 32px;
      height: 32px;
      color: var(--primary);
      transition: transform 0.3s ease;
    }

    .faq-acc__icon svg {
      width: 20px;
      height: 20px;
    }

    .faq-acc__item.is-open .faq-acc__icon {
      transform: rotate(45deg);
    }

    /* Answer */
    .faq-acc__answer {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows 0.3s ease;
    }

    .faq-acc__item.is-open .faq-acc__answer {
      grid-template-rows: 1fr;
    }

    .faq-acc__answer-content {
      overflow: hidden;
    }

    .faq-acc__answer-content p {
      font-family: var(--font-secondary);
      font-size: var(--text-m);
      line-height: 1.8;
      color: var(--text-body);
      margin: 0;
      padding-bottom: var(--space-l);
    }

    /* Container Queries */
    @container faq-acc (max-width: 768px) {
      .faq-acc__title {
        font-size: var(--text-2xl);
      }

      .faq-acc__title br {
        display: none;
      }

      .faq-acc__question-text {
        font-size: var(--text-m);
      }
    }

    @container faq-acc (max-width: 480px) {
      .faq-acc__header {
        margin-bottom: var(--space-2xl);
      }

      .faq-acc__title {
        font-size: var(--text-xl);
      }

      .faq-acc__question {
        padding: var(--space-m) 0;
      }

      .faq-acc__question-text {
        font-size: var(--text-s);
      }

      .faq-acc__icon {
        width: 28px;
        height: 28px;
      }

      .faq-acc__icon svg {
        width: 18px;
        height: 18px;
      }

      .faq-acc__answer-content p {
        font-size: var(--text-s);
      }
    }
