/* ============================================
   AIO対策ブロック 共通変数
   （用語解説 .aio-glossary ／ FAQ .faq-section）
   色・幅はすべてここで一元管理します。
   ブランドカラーが確定した際は、このブロックの値のみ変更してください。
============================================ */
:root {
  --aio-max-width: 1000px;        /* 本文カラムの最大幅 */
  --aio-accent: #0056b3;          /* 共通アクセントカラー（ブランドカラー） */

  --aio-glossary-bg: #f8f9fa;     /* 用語解説：背景色 */
  --aio-glossary-border: #e9ecef; /* 用語解説：枠線の色 */

  --aio-faq-bg: #f5f7fa;          /* FAQ：質問部分の背景色 */
  --aio-faq-answer-mark: #c8392b; /* FAQ：回答（A）ラベルの色 */
}


/* ============================================
   1. 用語解説ブロック（.aio-glossary）
============================================ */
.aio-glossary {
  box-sizing: border-box;
  max-width: var(--aio-max-width);
  margin: 2rem auto;
  padding: 1.5rem;
  background-color: var(--aio-glossary-bg);
  border: 1px solid var(--aio-glossary-border);
  border-radius: 6px;
}

/* 用語名（dt） */
.aio-glossary dt {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0 0 0.75rem;
  font-weight: 700;
  line-height: 1.4;
  color: #1a1a1a;
}

/* 「用語解説」バッジ（疑似要素で付与。本文テキストには混入しない） */
.aio-glossary dt::before {
  content: "用語解説";
  display: inline-block;
  flex-shrink: 0;
  padding: 0.15rem 0.6rem;
  border-radius: 3px;
  background-color: var(--aio-accent);
  color: #ffffff;
  font-size: 1.5rem;
  font-weight: normal;
  letter-spacing: 0.05em;
}

/* 解説文（dd） */
.aio-glossary dd {
  margin: 0;   /* ブラウザ標準の左インデントをリセット */
  padding: 0;
  font-size: 1.4rem;
  line-height: 1.75;
  color: #333333;
}

/* 次のブロック（CTAボタン等）との余白 */
.aio-glossary + * {
  margin-top: 1.5rem;
}


/* ============================================
   2. FAQセクション（.faq-section）
============================================ */
.faq-section {
  max-width: var(--aio-max-width);
  margin-inline: auto;
}

/* 見出し（h2）は既存の s-title-border-b をそのまま利用するため、上書きしません */

/* 質問（h3） */
.faq-section h3 {
  position: relative;
  margin: 2.5rem 0 0.75rem;
  padding: 1rem 1rem 1rem 3.5rem;
  background-color: var(--aio-faq-bg);
  border-left: 4px solid var(--aio-accent);
  border-radius: 4px;
  font-weight: 700;
  line-height: 1.6;
  color: #1a1a1a;
}

/* 最初の質問は上の余白を詰める */
.faq-section h3:first-of-type {
  margin-top: 0;
}

/* 「Q」アイコン（丸バッジ・疑似要素） */
.faq-section h3::before {
  content: "Q";
  position: absolute;
  top: 50%;
  left: 0.9rem;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  background-color: var(--aio-accent);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 700;
}

/* 回答（p） */
.faq-section p {
  position: relative;
  margin: 0 0 0.5rem;
  padding: 0.25rem 1rem 0.25rem 4rem;
  line-height: 1.8;
  color: #333333;
}

/* 「A」ラベル（疑似要素） */
.faq-section p::before {
  content: "A";
  position: absolute;
  top: 0.25rem;
  left: 0.9rem;
  font-weight: 700;
  color: var(--aio-faq-answer-mark);
}


/* ============================================
   3. レスポンシブ対応（〜768px）
============================================ */
@media screen and (max-width: 768px) {

  /* ---- 用語解説ブロック ---- */
  .aio-glossary {
    margin: 1.5rem auto;
    padding: 1.5rem;
  }
  .aio-glossary dt {
    gap: 0.5rem;
    font-size: 1.4rem;
  }
  .aio-glossary dt::before {
    padding: 0.1rem 0.5rem;
    font-size: 1.2rem;
  }
  .aio-glossary dd {
    font-size: 1.2rem;
  }

  /* ---- FAQセクション ---- */
  .faq-section h3 {
    padding: 0.875rem 0.75rem 0.875rem 2.5rem;
  }
  .faq-section h3::before {
    left: 0.6rem;
    width: 1.4rem;
    height: 1.4rem;
    font-size: 0.75rem;
  }
  .faq-section p {
    padding: 0.25rem 0.75rem 0.25rem 2.5rem;
  }
  .faq-section p::before {
    left: 0.6rem;
  }
}


div#profile_box {
    margin: auto;
    width: 100%;
}
div#profile_photo {
    display: inline-block;
    padding: 10px;
}
div#profile_txt {
    display: inline-block;
    padding: 10px;
}
