.about-text h1 {
    font-size: 30px;
    color: #004CA0;
    border-bottom: 2px solid #d9a333;
    display: inline-block;
    padding-bottom: 4px;
}
.roles {
    font-family: 'Cambria', 'Baskerville', serif;
    margin-top: 8px;
    color: #008CF7;
}
.image-section {
    display: flex;
    margin:40px;
    justify-content: center;
}
.image-section img {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 4px solid rgba(0, 0, 0, 0.3);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
}
.section-title {
    margin-top: 20px;
    border-bottom: 2px solid #d9a333;
    display: inline-block;
    padding-bottom: 4px;
    color: #004CA0;
}
.sns-container {
    background-color: #e6d8b3a8;
    padding: 20px;
    overflow-x: scroll;
    white-space: nowrap;
    position: relative;
    border-radius: 8px;
}
.sns-container::after {
    display: inline;
    content: "Follow me ≫";
    position: absolute;
    top: 0;
    left: 0;
    font-size: 18px;
    color: #aa0000;
    white-space: nowrap;
    animation: fadeInOut 1.3s infinite;
}

footer {
    background-color:#d9a23300;
    color: rgba(0, 0, 0);
    text-align: center;
    padding: 10px 0;
    font-size: 10px;
}

.sns-links {
    display: flex;
    justify-content: left;
    align-items: center;
    gap: 20px;
}
.sns-links img:last-child {
    margin-inline-end: 20px;
}
.sns-links img {
    width: 50px;
    height: 50px;
}
@keyframes fadeInOut {
    0%, 100% {
        opacity: 0;
    }
    50% {
        opacity: 1;
    }
}
.scrollbar::-webkit-scrollbar {
    height: 8px;
  }
  .scrollbar-thumb-rounded::-webkit-scrollbar-thumb {
    border-radius: 0.25rem;
  }
  .scrollbar-thumb-black::-webkit-scrollbar-thumb {
    --bg-opacity: 1;
    background-color: #000000a2;
  }
.faq-section {
    margin-top: 40px;
}
.faq-section h2 {
    font-size: 20px;
    color: #004CA0;
    border-bottom: 2px solid #d9a333;
    display: inline-block;
    padding-bottom: 4px;
}
.faq-item {
    margin-top: 16px;
    padding: 10px;
    border: 1px solid #004CA0;
    border-radius: 8px;
    color: #404040;
}

/* ==========================================
   Base Styles
   ========================================== */

/* 全体コンテナ：左詰め */
.portrait-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-start;   /* ← 左寄せ */
    align-items: flex-start;       /* アイテムを上揃え */
    padding: 10px 0;
    margin-bottom: 5px;
  }
  
  /* タイル（正方形を維持） */
  .portrait {
    position: relative;            /* 子要素を絶対配置できるように */
    flex: 0 1 120px;               /* 幅120px */
    max-width: 120px;
    aspect-ratio: 1 / 1;           /* モダンブラウザでは高さ＝幅 */
    /* └— aspect-ratio 非対応の場合のフォールバック */
    /* padding-top: 100%; や height: auto; を併用する方法もあります */
    overflow: hidden;              /* はみ出し防止 */
    margin: 0;
    background: transparent;
    box-shadow: none;
  }
  
  /* 画像はタイルいっぱいをカバー */
  .portrait-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;             /* アスペクト比を保ちつつ切り取り */
    display: block;
    margin: 0;
  }
  
  /* キャプション（画像下部にオーバーレイ） */
  .description {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 0.2em 0;              /* 必要最小限のパディング */
    font-size: 12px;
    line-height: 1;
    text-align: center;
    color: #ffffff;
    background: rgba(0, 0, 0, 0.6);
    box-sizing: border-box;
  }
  @media only screen and (max-width: 768px) {
    .portrait-container {
      gap: 5px;
      padding: 3px 0;
      margin-bottom: 5px;
    }
  
    .portrait {
      flex: 0 1 100px;
      max-width: 100px;
      aspect-ratio: 1 / 1;
    }
  
    .description {
      font-size: 13px;
      padding: 0.15em 0;
    }
  }
  
  /* ==========================================
     Responsive: Small Smartphones
     (max-width: 480px)
     ========================================== */
  @media only screen and (max-width: 480px) {
    .portrait-container {
      gap: 3px;
      padding: 3px 0;
      margin-bottom: 10px;
    }
  
    .portrait {
      flex: 0 1 80px;
      max-width: 80px;
      aspect-ratio: 1 / 1;
    }
  
    .description {
      font-size: 10px;
      padding: 0.1em 0;
    }
  }
  
.faq-item h3 {
    font-size: 18px;
    margin-bottom: 8px;
    color:#008CF7;
}
.faq-item p {
    font-size: 14px;
    color: #404040;
}

/* Affiliation Grid Styles */
.affiliation-grid-container {
    margin-top: 1px;
    margin-bottom: 1px;
  }
  
  .affiliation-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-start;   /* ← 中央寄せから左詰めに */
    align-content: flex-start;     /* ← 複数行ある場合、上から詰める */
}
  
.affiliation-item {
    position: relative;
    /* flex: [成長率] [縮小率] [基準幅]; を 固定幅 に */
    flex: 0 0 90px;               /* ← 固定幅100pxで揃える */
    aspect-ratio: 2 / 1;
    background-color: rgba(255, 255, 255, 0.247);
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0px;
}
  
  /* カテゴリラベルのオーバーレイ */
  .affiliation-item::before {
    content: attr(data-category);
    position: absolute;
    bottom: 1px;
    right: 1px;
    padding: 2px 5px;
    background: rgb(255, 255, 255);
    color: #000000a8;
    font-size: 0.5rem;
    font-weight: 500;
    border-radius: 4px;
    text-transform: capitalize;
    pointer-events: none;
    z-index: 2;
  }
  
  /* 画像はそのまま中央に */
  .affiliation-item img {
    max-width: 90%;
    max-height: 90%;
    object-fit: contain;
  }