/* ====================================
   ■ 基本設定（全段共通）
==================================== */
html {
  font-size: 100%; /* 基準16px */
}
body {
  margin: 0;
  padding: 0;
  width: 100%;
  background: #fff;
  color: #111;
  font-family: '游ゴシック', 'Hiragino Kaku Gothic ProN', sans-serif;
  line-height: 1.8;
}

.page-wrapper {
  display: block;
  width: 100%;
  max-width: 75rem; /* 1200px */
  margin: 0 auto;
  box-sizing: border-box;
}

/* ====================================
   ■ レイアウト構造（PC固定幅 / モバイル100%）
==================================== */
@media (min-width: 48.8125rem) { /* 781px */
  .sotowaku {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
    margin: 0 auto 2rem auto;
    box-sizing: border-box;
    clear: both;
  }

  .maincon {
    width: 56.25rem; /* 900px */
    flex-shrink: 0;
    padding-left: 0.5rem; /* 8px */
    padding-right: 0.5rem; /* 8px */
    box-sizing: border-box;
    background: #fff;
  }

  .right-column,
  .right-column-3san {
    width: 18.75rem; /* 300px */
    flex-shrink: 0;
    box-sizing: border-box;
    text-align: center;
    background: #fff;
  }
}

/* ====================================
   ■ タイトル・見出し
==================================== */
h1 {
  font-size: 1.75rem;
  margin: 1rem 1rem;
}
h2 {
  font-size: 1.375rem;
  margin: 1rem 0 0.5rem;
  border-left: 0.25rem solid #999;
  padding-left: 0.5rem;
  background: #f9f9f9;
}
h3 {
  font-size: 1.375rem;
  margin: 1rem 0 0.5rem;
  border-left: 0.25rem solid #999;
  padding-left: 0.5rem;
  background: #f9f9f9;
}

.headline {
  margin: 0;
  padding: 0 0 0 0.7rem;
  font-size: 1rem;
  line-height: 1.8rem;
  color: #333333;
  text-align: left;
  background: #ffffff;
}

/* ====================================
   ■ 上メニュー（タブ風・共通設定）
==================================== */
@media (min-width: 48.8125rem) { /* 781px */
  .menu-wrapper {
    width: 100%;
    text-align: center;
    margin: 0.625rem 0;
    padding: 0 0.625rem; /* 10px */
    background: #fff;
    box-sizing: border-box;
  }
}
/* ====================================
   ■ 上メニュー（sample_index5 同系色仕様）
==================================== */
.pctop_menuwaku-s {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  width: 100%;
  background: #d6ecff;
  border: 0.125rem solid #99caff;
  border-radius: 0.625rem;
  overflow: hidden;
  box-sizing: border-box;
  margin: 0 auto 1rem auto;
  transition: background 0.3s, border-color 0.3s;
}

/* 各項目（内部の仕切り） */
.pctop_menuwaku-s a {
  flex: 1 1 20%;
  text-align: center;
  color: #000;
  text-decoration: none;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.5;
  background: #d6ecff;
  padding: 0.6rem 0;
  border-right: 0.125rem solid #99caff;
  transition: background 0.3s, border-color 0.3s;
  box-sizing: border-box;
}

/* 最後の項目だけ仕切りを消す */
.pctop_menuwaku-s a:last-child {
  border-right: none;
}

/* hover時の視覚効果 */
.pctop_menuwaku-s a:hover {
  background: #cde7ff;
  border-color: #66b3ff;
}

/* PC・モバイル共通で自然に丸みが保たれるよう */
.pctop_menuwaku-s a:first-child {
  border-top-left-radius: 0.625rem;
  border-bottom-left-radius: 0.625rem;
}
.pctop_menuwaku-s a:last-child {
  border-top-right-radius: 0.625rem;
  border-bottom-right-radius: 0.625rem;
}

/* ====================================
   ■ 文書本文エリア（全段共通）
==================================== */
.content_body_2danme {
  position: relative;
  background: #fff;
  font-size: 1.45rem;
  border: 0.0625rem solid #ddd; /* 1px */
  padding: 1rem 1.2rem;
  border-radius: 0.5rem;
  box-sizing: border-box;
  margin: 2rem 0;
  padding-bottom: 3rem;
}

@media (min-width: 48.8125rem) { /* 781px */
  .content_body_2danme {
    position: relative;
    background: #fff;
    border: 0.0625rem solid #ddd;
    padding: 3rem 3rem 1rem 3rem;
    border-radius: 0.5rem;
    box-sizing: border-box;
    margin: 2.5rem 1.2rem;
    padding-bottom: 3rem;
  }
}

/* コピー対象テキスト */
.copy-text {
  margin-bottom: 1.25rem;
}

/* ▼ PC時（従来通り右下固定） */
.copy-btn {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  font-size: 1rem;
  padding: 0.4rem 0.8rem;
  border-radius: 0.3rem;
  border: 0.0625rem solid #999;
  background: #f4f4f4;
  cursor: pointer;
}

/* ▼ モバイル専用（780px以下） */
@media (max-width: 48.75rem) { /* 780px */
  .content_body_2danme {
    position: relative;
    padding-top: 1rem;
    padding-bottom: 1.5rem;
  }

  .copy-btn {
    position: relative !important;
    display: block;
    width: fit-content;
    font-size: 1.25rem;
    padding: 0.4rem 0.8rem;
    border-radius: 0.3rem;
    border: 0.0625rem solid #999;
    background: #f4f4f4;
    cursor: pointer;

    /* 上下の余白微調整 */
    margin-top: 1.8rem !important;
    margin-bottom: 0rem !important;
    margin-left: auto;
    margin-right: 0.6rem;
  }
}

/* =========================================
   ▼ モバイル用：ボタンを通常フローに戻して margin-top 適用
========================================= */
@media (max-width: 48.75rem) { /* 780px */
  .content_body_2danme {
    margin: 1.2rem 0.5rem;
    padding: 1.2rem 1rem;
    font-size: 1.4rem;
    line-height: 2.2rem;
    box-sizing: border-box;
  }
}

/* テキスト配置 */
.p_sample_left {
  text-align: left;
  margin-left: 0.5rem;
}
.sitah2tagi { margin: 0px; padding: 0px;}

.p_sample_titlecenter {
  text-align: center;
  font-weight: 500;
  margin: 1rem 0;
}
.p_sample_center {
  text-align: center;
  margin: 1rem 0;
}
.p_sample_right {
  text-align: right;
  margin-right: 0.5rem;
}

/* ===============================
   ■ PC表示（rem化）
=============================== */
.p_20pixmoji {
  text-align: left;
  color: #000;
  font-size: 1.5625rem; /* 25px */
  font-weight: 300;
  line-height: 1.875rem; /* 30px */
  letter-spacing: 0.625rem; /* 10px */
}
.p_20pixmoji-center {
  text-align: center;
  color: #000;
  font-size: 1.5625rem; /* 25px */
  font-weight: 300;
  line-height: 1.875rem; /* 30px */
}

.p_20pixnenga {
  text-align: left;
  color: #000;
  font-size: 2.1875rem; /* 35px */
  font-family: "HG正楷書体";
  font-weight: 300;
  line-height: 2.375rem; /* 38px */
  letter-spacing: 0.625rem; /* 10px */
}

.p_2pixnenga {
  text-align: left;
  color: #000;
  font-size: 1.625rem; /* 26px */
  font-family: "HG正楷書体";
  font-weight: 300;
  line-height: 2.375rem; /* 38px */
  letter-spacing: 0.375rem; /* 6px */
}

.p_nenga {
  text-align: left;
  color: #000;
  font-size: 1.5625rem; /* 25px */
  font-family: "HG正楷書体";
  font-weight: 300;
  line-height: 2.375rem; /* 38px */
}

.p_nenga_right_13px {
  text-align: left;
  color: #000;
  font-size: 1.25rem; /* 20px */
  font-family: "HG正楷書体";
  font-weight: 300;
  line-height: 1.5625rem; /* 25px */
}

.p_nenga_jyuusyo {
  text-align: right;
  padding: 0 0 0 1.25rem; /* 20px */
  color: #000;
  font-size: 1.375rem; /* 22px */
  font-family: "HG正楷書体";
  font-weight: 300;
  line-height: 1.5625rem; /* 25px */
}

/* ===============================
   ■ モバイル時：全体80%縮小
=============================== */
@media (max-width: 48.75rem) { /* 780px */
  html {
    font-size: 80%; /* PCのrem値に対して全体を80%縮小 */
  }

  /* PCのrem値がそのまま80%に縮小されるため、個別設定を削除 */
  .p_20pixmoji {
    letter-spacing: 0.5rem;
  }
  .p_20pixmoji-center {}
  .p_20pixnenga {
    letter-spacing: 0.5rem;
  }
  .p_2pixnenga {
    letter-spacing: 0.3rem;
  }
  .p_nenga {}
  .p_nenga_right_13px {}
  .p_nenga_jyuusyo {
    padding: 0 0 0 1rem;
  }
}
/* ====================================
   ■ 2段目本文エリア
==================================== */
.text_listue1dan1h {
  margin: 0;
  padding: 0.9375rem 0.9375rem 0.9375rem 1.875rem;
  font-size: 1.55rem;
  color: #000;
  text-align: left;
  line-height: 2.75rem;
  letter-spacing: 0.03125rem;
  background: #f9f9f9;
  margin-right: 0.9375rem;
}
.text_listue1dan1h a {
  color: #000;
  font-weight: 600;
  text-decoration: none;
}
.text_listue1dan1h a:hover {
  text-decoration: underline;
}

/* =======================================
   モバイル用：2段目 text_listue1dan1h 体裁調整
======================================= */
@media (max-width: 48.75rem) { /* 780px */

  .text_listue1dan1h {
    font-size: 1.2rem;
    line-height: 1.9rem;

    /* ▼ 左の揃え位置を h2 と一致させる */
    padding-left: 1.2rem;
    margin-left: 0;
    box-sizing: border-box;

    color: #000;
    text-align: left;
    background: #f9f9f9;
  }
}

/* ====================================
   ■ sample_index5（3段目リスト）
==================================== */
.sample_index5 {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ---------- PC表示 ---------- */
@media (min-width: 48.8125rem) { /* 781px */
  .sample_index5 li {
    border: none;
    background: transparent;
    margin: 0.5rem 0;
    padding-left: 1rem;
    font-size: 1.7rem;
  }
  .sample_index5 li a {
    display: block;
    padding: 0.6rem 1rem;
    font-weight: 500;
    color: #000;
  }
}

/* ---------- モバイル表示 ---------- */
@media (max-width: 48.75rem) { /* 780px */
  .sample_index5 li {
    border: 0.125rem solid #99caff;
    border-radius: 0.375rem; /* 6px */
    margin: 0.5rem 0;
    background: #d6ecff;
    padding-left: 0.375rem;
  }

  .sample_index5 li a {
    display: block;
    padding: 0.6rem 1rem;
    font-size: 1.25rem;
    text-decoration: none;
    font-weight: 600;
    color: #000;
  }

  /* hover時に少し明るくして反応感を出す */
  .sample_index5 li:hover {
    background: #cde7ff;
    border-color: #66b3ff;
  }
}

.tab_1f {
  margin: 0.8rem 0rem 0.8rem 0.3rem;
  padding: 0rem;
  background: #ffffff;
}
.cell_1f {
  margin: 0rem;
  padding: 0.06rem 1rem 0.06rem 0rem;
  font-size: 1rem;
  line-height: 2.6rem;
  border-width: 0.06rem;
}

p.posted_date {
  margin: 0px;
  padding: 0.5rem 1.2rem 0 0;
  text-align: right;
  color: #486d94;
  line-height: 1rem;
  font-size: 0.8rem;
  font-style: italic;
  border-top: solid 0.0625rem #cccccc; /* 1px */
}

/* ===============================
   ■ bunai-list（旧 sample_index5）
=============================== */
.bunai-list {
  list-style: none;
  margin: 0;
  padding: 0.9375rem 0.9375rem 0.9375rem 1.875rem;
}

/* ---------- PC表示 ---------- */
@media (min-width: 48.8125rem) { /* 781px */
  .bunai-list li {
    border: none;
    background: transparent;
    margin: 0.5rem 0;
    font-size: 1.5rem;
  }
}

/* ---------- モバイル表示 ---------- */
@media (max-width: 48.75rem) { /* 780px */
  /* 枠なし（外枠削除・背景透明） */
  .bunai-list li {
    border: none;
    background: transparent;
    margin: 0.5rem 0;
    padding-left: 0.375rem;
    font-size: 1.0625rem; /* 0.85rem * 1.25 (html 80%時の逆算) */
  }

  .bunai-list li a {
    display: block;
    padding: 0.6rem 1rem;
    font-size: 1.125rem; /* 0.9rem * 1.25 (html 80%時の逆算) */
    text-decoration: none;
    color: #000;
    font-weight: 600;
  }
}

.imagewaku img {
  display: block;
  margin: 0 auto;
}

@media (max-width: 48.75rem) { /* 780px */
  .imagewaku {
    margin: 1.1rem 0 1.5rem 0rem;
  }

  .imagewaku img {
    width: 85%;
    height: auto;
    display: block;
  }
}

/* ====================================
   ■ メニュー（1・2段目：PC表示 / 3段目：モバイル表示）
==================================== */
.menu_1dan {
  margin: 0;
  padding: 0;
}

/* PC（1・2段） */
.menu_1dan ul {
  margin: 0;
  padding: 0;
  font-size: 1.25rem;
  line-height: 2.6rem;
  color: #000;
  list-style: none;
  text-align: center;
}

/* ▼ 各リスト項目（PC用） */
.menu_1dan li {
  margin: 0.3125rem 0 0.625rem 0;
  padding: 0.5rem 0;
  border: 0.125rem solid #99caff;
  border-radius: 0.375rem; /* 6px */
  background: #d6ecff;
  transition: background 0.3s, border-color 0.3s;
}

/* ▼ リンク文字（PC） */
.menu_1dan li a {
  display: block;
  color: #000;
  text-decoration: none;
  font-weight: 600;
  font-size: 1.4rem;
  transition: color 0.2s;
}
.menu_1dan li a:hover {
  color: #333;
}
.menu_1dan li:hover {
  background: #cde7ff;
  border-color: #66b3ff;
}

/* =======================================
   モバイル用：右メニュー3列グリッド化
======================================= */
@media (max-width: 48.75rem) { /* 780px */

  /* ▼ 1段目の右メニューを非表示にする（!importantを削除） */
  .page-wrapper > .sotowaku:first-of-type .right-column .menu_1dan {
    display: none;
  }

  /* ▼ 右メニュー（3列グリッド構造） */
  .right-column .menu_1dan ul,
  .right-column-3san .menu_1dan ul {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.1rem; /* ← 段間をかなり詰める */
    padding: 0.15rem; /* ← 上下左右の余白をさらに小さく */
    margin: 0 auto;
    list-style: none;
    box-sizing: border-box;
    width: 100%;
  }

  /* ▼ 各項目（LI） */
  .right-column .menu_1dan li,
  .right-column-3san .menu_1dan li {
    background: #d6ecff;
    border: 0.125rem solid #99caff;
    border-radius: 0.3rem;
    font-size: 1.3rem;
    line-height: 2.3rem;
    padding: 0.35rem 0.1rem; /* ← 内側の高さを約半分に圧縮 */
    text-align: center;
    box-sizing: border-box;
    margin: 0; /* ← 各段の上下マージンを完全に除去 */
  }

  /* ▼ リンク文字（モバイル） */
  .right-column .menu_1dan a,
  .right-column-3san .menu_1dan a {
    display: block;
    text-decoration: none;
    font-size: 1.4rem;
    color: #000;
    font-weight: 600;
  }

  /* ▼ hover効果（モバイル） */
  .right-column .menu_1dan li:hover,
  .right-column-3san .menu_1dan li:hover {
    background: #cde7ff;
    border-color: #66b3ff;
  }
}
/* =======================================
   PC用：3段目メニュー非表示
======================================= */
@media (min-width: 781px) {
  .right-column-3san .menu_1dan {
    display: none;
  }
}

/* ====================================
   ■ 広告枠（個別制御のため全段個別保持）
==================================== */

/* 1段目上部広告枠 */
.ga_tppad_adwakusita {
  display: block;
  width: 100%;
  max-width: 75rem; /* 1200px */
  margin: 0.75rem auto 1rem auto;
  text-align: center;
  background: transparent;
  overflow: hidden;
  box-sizing: border-box;
}
@media (max-width: 48.75rem) { /* 780px */
  .ga_tppad_adwakusita {
    display: none;
  }
}

/* 1段目本文上広告 */
.ga_728_adwaku-nommu {
  width: 100%;
  margin: 1.875rem auto;
  text-align: center;
  background: transparent;
  overflow: hidden;
}

/* 1段目本文下広告 */
.ga_728_adwakusita-2dan {
  width: 100%;
  margin: 1rem auto;
  text-align: center;
  background: transparent;
  overflow: hidden;
}

/* 2段目広告 */
.ga_728_adwakukanrenue {
  width: 100%;
  margin: 1.875rem auto;
  text-align: center;
  background: transparent;
  overflow: hidden;
}

/* 3段目本文下広告 */
.ga_728_adwakukanrenue-2danyou {
  width: 100%;
  max-width: 60.625rem;
  height: auto;
  margin: 1.875rem auto;
  text-align: center;
  background: transparent;
  overflow: hidden;
}

@media (min-width: 48.8125rem) { /* 781px */
  /* 横長広告すべてに共通設定 */
  .ga_tppad_adwakusita,
  .ga_728_adwaku-nommu,
  .ga_728_adwakusita-2dan,
  .ga_728_adwakukanrenue,
  .ga_728_adwakukanrenue-2danyou {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 1rem auto;
    text-align: center;
    background: transparent;
    box-sizing: border-box;
  }
}

/* 右カラム広告群（縦長） */
/* =======================================
   ■ PC／モバイル共通（レスポンシブ広告枠）
======================================= */
.gad_160_600_r-3dantop {
  display: block;
  width: 100%;
  max-width: 18.75rem; /* 300px */
  margin: 1rem auto;
  text-align: center;
  background: transparent;
  overflow: visible;
  box-sizing: border-box;
}

/* ---------- PC用 ---------- */
@media (min-width: 48.8125rem) { /* 781px */
  .gad_160_600_r-3dantop {
    display: block;
    width: 100%;
    max-width: 18.75rem; /* 300px */
    margin: 1rem auto;
  }
}

/* ---------- モバイル用 ---------- */
@media (max-width: 48.75rem) { /* 780px */
  /* 縦長広告は非表示のため、この設定は意味をなさないが、残存の可能性を考慮し、矩形設定を維持 */
  .gad_160_600_r-3dantop {
    display: none; /* 下で非表示設定に統一 */
    aspect-ratio: 6 / 5;
    margin: 0.75rem auto;
  }
}

/* ===============================
   ■ モバイル時の広告縮小（transform: scale を削除）
   =============================== */
/* モバイル表示時のレスポンシブ広告の表示切れを防ぐため、縮小設定を削除 */
/*
@media (max-width: 48.75rem) {
  .ga_tppad_adwakusita,
  .ga_728_adwaku-nommu,
  .ga_728_adwakusita-2dan,
  .ga_728_adwakukanrenue,
  .ga_728_adwakukanrenue-2danyou,
  .gad_160_600_r-3dantop {
    transform: scale(0.9);
    transform-origin: center top;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
  }
}
*/

/* =======================================
   ■ 右カラム他広告共通（300px上限）
======================================= */
@media (min-width: 48.8125rem) { /* 781px */
  .MR_160_600_r-2daue,
  .gad_160_600_r-top,
  .MR_160_600_r-mid,
  .gad_160_600_r-3dantop {
    display: block;
    width: 100%;
    max-width: 18.75rem; /* 300px */
    margin: 1rem auto;
    text-align: center;
    background: transparent;
    overflow: hidden;
  }
}

/* ====================================
   ■ フッター
==================================== */
.credit_line2, .footer {
  text-align: center;
  font-size: 0.9375rem;
  color: #555;
  padding: 0.1rem 0;
  margin-top: 0.1rem;
}
.credit_line2 a, .footer a {
  color: #000;
  text-decoration: none;
}
.credit_line2 a:hover, .footer a:hover {
  text-decoration: underline;
}

/* ====================================
   ■ モバイル（真のレスポンシブ対応）
   ※ 780px以下の画面で適用
==================================== */
@media (max-width: 48.75rem) { /* 780px */

  body {
    margin: 0;
    padding: 0;
    width: 100%;
    background: #fff;
    color: #111;
    font-family: '游ゴシック', 'Hiragino Kaku Gothic ProN', sans-serif;
    line-height: 1.7;
    overflow-x: hidden;
  }

  .sotowaku {
    display: block;
    width: 100%;
    clear:both;
  }

  .maincon,
  .right-column,
  .right-column-3san {
    width: 100%;
    float:none;
  }

  h1 {
    font-size: 1.796875rem; /* 1.4375rem * 1.25 (html 80%時の逆算) */
    margin-top: 0.5rem;
    padding-left: 0.5rem;
    margin-bottom: 0.25rem;
  }

  h2 {
    font-size: 1.5625rem; /* 1.25rem * 1.25 */
    margin-top: 0rem;
    border-left: 0.25rem solid #999;
    padding-left: 0.5rem;
    background: #f9f9f9;
  }

  h3 {
    font-size: 1.5625rem; /* 1.25rem * 1.25 */
    margin-top: 0rem;
    border-left: 0.25rem solid #999;
    padding-left: 0.5rem;
    background: #f9f9f9;
  }

  .menu-wrapper {
    margin-top: 0;
    margin-bottom: 0.25rem;
    margin-left: 0.25rem;
    margin-right: 0.25rem;
    box-sizing: border-box;
  }

  .pctop_menuwaku-s {
    margin: 0 auto;
    border-radius: 0.625rem;
    padding: 0;
  }

  .pctop_menuwaku-s a {
    font-size: 0.96875rem; /* 0.775rem * 1.25 */
    font-weight: 600;
    letter-spacing: -0.01em;
    padding: 1.2rem 0;
    line-height: 1.6;
    color: #000;
    text-shadow: 0 0 0.5px rgba(0,0,0,0.3);
  }

  /* ▼ 本文エリアの余白縮小（PCより軽め） */
  .content_body_2danme {
    margin: 1rem 0.5rem;
    padding: 1rem;
    font-size: 1.125rem; /* 0.9rem * 1.25 */
    line-height: 1.6;
  }

  .sample_list_shortwidth {
    margin-left: 0.25rem;
    margin-right: 0.25rem;
    box-sizing: border-box;
  }

  /* ▼ 広告（レスポンシブ広告枠の最大幅設定） */
  .ga_tppad_adwakusita,
  .ga_728_adwaku-nommu,
  .ga_728_adwakusita-2dan,
  .ga_728_adwakukanrenue,
  .ga_728_adwakukanrenue-2danyou {
    width: 100%;
    max-width: 18.75rem; /* 300px */
    height: auto;
    margin: 1rem auto;
  }

  /* ▼ 縦長広告（非表示設定に統一） */
  .MR_160_600_r-2daue,
  .MR_160_600_r-mid,
  .gad_160_600_r-top,
  .gad_160_600_r-3dantop {
    display: none;
  }

  .credit_line2, .footer {
    text-align: center;
    font-size: 1.015625rem; /* 0.8125rem * 1.25 */
    color: #555;
    padding: 0.1rem 0;
    margin-top: 0.05rem;
  }
}
/* AdSense共通ラッパ：幅だけ合わせる。高さ/比率/transformは絶対に付けない */
.adwrap {
  width: 100%;
  max-width: 100%;
  margin: 1rem auto;
  text-align: center;
  box-sizing: border-box;
}
.adwrap > .adsbygoogle {
  display: block !important;
  width: 100% !important;   /* data-full-width-responsive と相性良し */
  /* heightは書かない */
}

