@charset "utf-8";

/* =============================================
   parts.css — Gutenberg ネイティブブロック統合版
   
   変更点:
   - sec_tmpl_header: h2>span構造 → wp:group + wp:paragraph + wp:heading に対応
   - section: wp:group {"tagName":"section"} で出力されるため既存CSS適用OK
   - wp:columns / wp:column でのカード・2カラム対応CSS追加
   - tmpl_inner: wp-block-group との共存対応
   - Gutenberg デフォルトスタイルのリセット追加
   ============================================= */



/* =============================================
   Gutenberg リセット・基本設定
   ============================================= */

/* Gutenberg がデフォルトで付与する max-width / padding を解除 */
/* section自体がwp-block-groupを持つ場合（GB出力） */
section.wp-block-group.sec_tmpl_block,
.tmpl_content > .wp-block-group.sec_tmpl_block {
  max-width: none !important;
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
}
/* section内部のwp-block-group子要素 */
.sec_tmpl_block > .wp-block-group,
.sec_tmpl_block .wp-block-columns,
.sec_tmpl_block .wp-block-column {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

/* WP wp-block-table デフォルトスタイルのリセット */
.wp-block-table.tmpl_table_style01,
.wp-block-table.tmpl_table_style02 {
  border: none;
  overflow: visible;
}
.wp-block-table.tmpl_table_style01 table,
.wp-block-table.tmpl_table_style02 table {
  border: none;
  border-bottom: none;
}
.wp-block-table.tmpl_table_style01 table td,
.wp-block-table.tmpl_table_style01 table th,
.wp-block-table.tmpl_table_style02 table td,
.wp-block-table.tmpl_table_style02 table th {
  border: none;
  border-bottom: none;
}

/* WordPress is-layout-flow のデフォルト gap を無効化
   （テーマ側でスペーシングを制御するため） */
.sec_tmpl_block :where(.is-layout-flow) > * + * { margin-block-start: 0; }
.sec_tmpl_block :where(.is-layout-constrained) > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: none;
  margin-left: unset !important;
  margin-right: unset !important;
}
/* is-layout-flow を持つ section 自体のコンテンツ幅制約も解除 */
.sec_tmpl_block.is-layout-flow,
.sec_tmpl_block.is-layout-constrained {
  max-width: none !important;
}

/* WordPress ブロックアラインメントクラス */
.has-text-align-center { text-align: center; }
.has-text-align-left   { text-align: left; }
.has-text-align-right  { text-align: right; }

/* tmpl_inner を wp:group で出力した場合の幅制御
   元テンプレートの .tmpl_inner（width:1080px, padding:0）に合わせる */
.tmpl_inner.wp-block-group {
  width: 1080px;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  position: relative;
  box-sizing: border-box;
}
@media screen and (max-width:768px) {
  .tmpl_inner.wp-block-group {
    width: 92.5%;
    padding-left: 0;
    padding-right: 0;
  }
}



/* =============================================
   page_fv
   
   wp:html ブロックで出力する FV 構造:
   div.tmpl_page_fv > div.tmpl_inner >
     h1 > strong（日本語タイトル）+ span（英語ラベル）
     div.tmpl_pankuzu > ul > li
   
   装飾アイコンは CSS ::before / ::after で表示
   ============================================= */

.tmpl_page_fv{ display: flex; flex-direction: column; justify-content: center; background: #F4ECE7; padding: 120px 0 140px; position: relative; overflow: hidden;}

/* 装飾アイコン */
.tmpl_page_fv::before{ content: ""; width: 360px; height: 360px; background: url("../images/fv_ico01.png") no-repeat center / contain; position: absolute; right: 75px; top: 0; z-index: 0; pointer-events: none;}
.tmpl_page_fv::after{ content: ""; width: 900px; height: 900px; background: url("../images/fv_ico02.png") no-repeat center / contain; position: absolute; right: -600px; top: -380px; z-index: 0; pointer-events: none;}

.tmpl_page_fv .tmpl_inner{ position: relative; z-index: 1;}

.tmpl_page_fv h1{ display: flex; flex-direction: column; margin-bottom: 50px;}
.tmpl_page_fv h1 strong{ font-size: 2rem; letter-spacing: 0.2em; line-height: 1.25em; color: #3C7571;}
.tmpl_page_fv h1 span{ font-size: 0.9rem; letter-spacing: 0.2em; line-height: 1.25em; font-family: "Jost", sans-serif;}
.tmpl_page_fv .tmpl_pankuzu ul{ display: flex; flex-wrap: wrap; font-size: 0.8rem; list-style: none; padding: 0; margin: 0;}
.tmpl_page_fv .tmpl_pankuzu ul li:not(:last-child):after{ content: "|"; margin: 0 0.5em;}
.tmpl_page_fv .tmpl_pankuzu ul li a:hover{ text-decoration: underline;}
@media screen and (max-width:768px){
.tmpl_page_fv{ padding: 15vw 0;}
.tmpl_page_fv::before{ width: 40vw; height: 40vw; right: 10vw; top: 10vw;}
.tmpl_page_fv::after{ width: 90vw; height: 90vw; right: -60vw; top: -35vw;}

.tmpl_page_fv h1{ margin-bottom: 7.5%;}
.tmpl_page_fv h1 strong{ font-size: 1.6rem; letter-spacing: 0.1em;}
.tmpl_page_fv h1 span{ font-size: 0.8rem; letter-spacing: 0.1em;}
.tmpl_page_fv .tmpl_pankuzu ul{ font-size: 0.7rem;}
}



/* =============================================
   section
   ============================================= */

section{ background-size: 1400px !important; padding: 140px 0 180px; margin-top: -90px; position: relative; z-index: 3;}
section:after{ content: ""; width: 100%; height: calc(100% - 100px); position: absolute; left: 0; bottom: 0; z-index: -1;}
section.sec_tmpl_block{ background: url("../images/bg_wh.png") center top repeat-x;}
section.sec_tmpl_block:after{ background: #fff;}
section.sec_tmpl_block.sec_tmpl_brown{ background: url("../images/bg_brown.png") center top repeat-x;}
section.sec_tmpl_block.sec_tmpl_brown:after{ background: #f5ebe8; position: absolute;}
section.sec_tmpl_block.sec_tmpl_pink{ background: url("../images/bg_pk.png") center top repeat-x;}
section.sec_tmpl_block.sec_tmpl_pink:after{ background: #fef9f8;}
section.sec_tmpl_block.sec_tmpl_red{ background: url("../images/bg_red.png") center top repeat-x; color: #fff;}
section.sec_tmpl_block.sec_tmpl_red:after{ background: #b8847f;}
@media screen and (max-width:768px){
section{ padding: 15% 0 20%; background-size: 100% !important; margin-top: -5vw;}
section:after{ height: calc(100% - 7.5vw);}
}



/* =============================================
   sec_tmpl_header — セクション見出し
   
   【元構造】 div.sec_tmpl_header > h2 > span.tmpl_label + span.tmpl_title
   【GB構造】 div.sec_tmpl_header.wp-block-group > p.tmpl_label + h2.tmpl_title
   
   両方の構造に対応するCSS
   ============================================= */

/* --- 共通コンテナ --- */
.sec_tmpl_header {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin-bottom: 40px;
}

/* --- 元構造（wp:html / CTA等で使用） --- */
.sec_tmpl_header h2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin-bottom: 0;
}
.sec_tmpl_header h2 .tmpl_label {
  font-size: 0.9rem;
  letter-spacing: 0.2em;
  line-height: 1em;
  font-family: "Jost", "Zen Kaku Gothic New", sans-serif;
  margin-bottom: 30px;
}
.sec_tmpl_header h2 .tmpl_title {
  font-size: 1.4rem;
  letter-spacing: 0.2em;
  line-height: 1.5em;
  color: #3C7571;
}

/* --- GB構造（wp:paragraph + wp:heading で使用） --- */
.sec_tmpl_header p.tmpl_label {
  font-size: 0.9rem;
  letter-spacing: 0.2em;
  line-height: 1em;
  font-family: "Jost", "Zen Kaku Gothic New", sans-serif;
  margin: 0 0 30px 0;
}
.sec_tmpl_header h2.tmpl_title,
.sec_tmpl_header h2.wp-block-heading.tmpl_title {
  display: block;
  font-size: 1.4rem;
  font-weight: bold;
  letter-spacing: 0.2em;
  line-height: 1.5em;
  color: #3C7571;
  margin: 0;
  text-align: center;
}

/* --- sec_tmpl_red 内の白文字 --- */
section.sec_tmpl_red .sec_tmpl_header,
section.sec_tmpl_red .sec_tmpl_header h2,
section.sec_tmpl_red .sec_tmpl_header p.tmpl_label,
section.sec_tmpl_red .sec_tmpl_header h2.tmpl_title {
  color: #fff;
}

/* --- h3 サブ見出し --- */
h3.tmpl_tit_h3{ text-align: center; font-size: 1rem; color: #B8847F; margin: 40px auto 30px;}

@media screen and (max-width:768px) {
  .sec_tmpl_header { margin-bottom: 7.5%; }
  .sec_tmpl_header h2 .tmpl_label,
  .sec_tmpl_header p.tmpl_label {
    font-size: 0.8rem;
    letter-spacing: 0.1em;
    margin-bottom: 5%;
  }
  .sec_tmpl_header h2 .tmpl_title,
  .sec_tmpl_header h2.tmpl_title {
    font-size: 1.2rem;
    letter-spacing: 0.1em;
  }
  h3.tmpl_tit_h3{ font-size: 0.9rem; margin: 7.5% auto 5%;}
}



/* =============================================
   txt — リード文
   ============================================= */

p.tmpl_lead{ text-align: center; font-size: 0.9rem;}
@media screen and (max-width:768px){
p.tmpl_lead{ font-size: 0.8rem;}
}



/* =============================================
   sec_style01 — 画像＋テキスト2カラム
   
   【元構造】 div.tmpl_sec_style01_item > div.media + div.body
   【GB構造】 wp:columns > wp:column(画像) + wp:column(テキスト)
   ============================================= */

/* 元構造 */
.tmpl_sec_style01 .tmpl_sec_style01_item{ display: flex;}
.tmpl_sec_style01 .tmpl_sec_style01_item .tmpl_sec_style01_media{ width: 50%;}
.tmpl_sec_style01 .tmpl_sec_style01_item .tmpl_sec_style01_media figure img{ border-radius: 20px;}
.tmpl_sec_style01 .tmpl_sec_style01_item .tmpl_sec_style01_body{ flex: 1; margin-left: 50px;}
.tmpl_sec_style01 .tmpl_sec_style01_item .tmpl_sec_style01_body h2{ align-items: flex-start;}
.tmpl_sec_style01 .tmpl_sec_style01_item .tmpl_sec_style01_body p{ font-size: 0.9rem; line-height: 2em; text-align: justify;}

/* GB構造: wp:columns 内 */
.tmpl_sec_style01 .wp-block-columns { gap: 50px; }
.tmpl_sec_style01 .wp-block-columns .wp-block-image img { border-radius: 20px; }
.tmpl_sec_style01 .wp-block-columns .wp-block-column p { font-size: 0.9rem; line-height: 2em; text-align: justify; }
.tmpl_sec_style01 .wp-block-columns .sec_tmpl_header { align-items: flex-start; }
.tmpl_sec_style01 .wp-block-columns .sec_tmpl_header h2.tmpl_title { text-align: left; }
.tmpl_sec_style01 .wp-block-column h4 { font-size: 1rem; color: #B8847F; margin-bottom: 0.33em; }
.tmpl_sec_style01 .wp-block-column .wp-block-separator {
  border-color: #F5EBE8;
  border-width: 1px 0 0 0;
  margin: 25px 0;
  opacity: 1;
}

@media screen and (max-width:768px){
.tmpl_sec_style01 .tmpl_sec_style01_item{ display: block;}
.tmpl_sec_style01 .tmpl_sec_style01_item .tmpl_sec_style01_media{ width: 100%;}
.tmpl_sec_style01 .tmpl_sec_style01_item .tmpl_sec_style01_media figure img{ border-radius: 1.875vw;}
.tmpl_sec_style01 .tmpl_sec_style01_item .tmpl_sec_style01_body{ margin: 7.5% auto 0;}
.tmpl_sec_style01 .tmpl_sec_style01_item .tmpl_sec_style01_body h2{ align-items: center;}
.tmpl_sec_style01 .tmpl_sec_style01_item .tmpl_sec_style01_body p{ font-size: 0.8rem; line-height: 1.75em;}

.tmpl_sec_style01 .wp-block-columns { flex-direction: column; gap: 7.5%; }
.tmpl_sec_style01 .wp-block-columns .wp-block-image img { border-radius: 1.875vw; }
.tmpl_sec_style01 .wp-block-columns .wp-block-column p { font-size: 0.8rem; line-height: 1.75em; }
.tmpl_sec_style01 .wp-block-columns .sec_tmpl_header { align-items: center; }
.tmpl_sec_style01 .wp-block-columns .sec_tmpl_header h2.tmpl_title { text-align: center; }
.tmpl_sec_style01 .wp-block-column h4 { font-size: 0.9rem; }
}



/* =============================================
   sec_style02 — キャッチコピー＋本文
   ============================================= */

.tmpl_sec_style02 h3{ text-align: center; font-size: 1.2rem; margin-bottom: 50px;}
.tmpl_sec_style02 > p:not(.tmpl_person_name):not(.tmpl_profile_name),
.tmpl_sec_style02 > .wp-block-group:not(.sec_tmpl_header) p { font-size: 0.9rem; line-height: 2em; text-align: justify;}
@media screen and (max-width:768px){
.tmpl_sec_style02 h3{ font-size: 1.1rem; margin-bottom: 7.5%;}
.tmpl_sec_style02 > p:not(.tmpl_person_name):not(.tmpl_profile_name),
.tmpl_sec_style02 > .wp-block-group:not(.sec_tmpl_header) p { font-size: 0.8rem; line-height: 1.75em;}
}

/* --- 人物名・肩書き（Messageセクション用） --- */
.tmpl_person_name,
.tmpl_profile_name { text-align: center; margin: 30px 0 40px; }
.tmpl_person_name strong,
.tmpl_profile_name strong { display: block; font-size: 1.2rem; letter-spacing: 0.1em; color: #3C7571; margin-bottom: 0.25em; }
.tmpl_person_name .tmpl_person_role,
.tmpl_profile_name span { display: block; font-size: 0.8rem; color: #B8847F; letter-spacing: 0.1em; font-family: "Zen Kaku Gothic New", sans-serif; }
@media screen and (max-width:768px){
.tmpl_person_name,
.tmpl_profile_name { margin: 5% 0 7.5%; }
.tmpl_person_name strong,
.tmpl_profile_name strong { font-size: 1.1rem; }
.tmpl_person_name .tmpl_person_role,
.tmpl_profile_name span { font-size: 0.75rem; }
}

/* --- tmpl_sec_style02 内の段落マージン --- */
.tmpl_sec_style02 > p + p,
.tmpl_sec_style02.is-layout-flow > p + p { margin-top: 1.5em; }

/* --- tmpl_sec_style02 内の画像 --- */
.tmpl_sec_style02 .wp-block-image { margin: 30px auto; max-width: 700px; }
.tmpl_sec_style02 .wp-block-image img { border-radius: 20px; }
@media screen and (max-width:768px){
.tmpl_sec_style02 .wp-block-image { margin: 5% auto; max-width: 80%; }
.tmpl_sec_style02 .wp-block-image img { border-radius: 1.875vw; }
}



/* =============================================
   card_style01 — 3カラムカード
   
   【元構造】 div.tmpl_card_style01 > ul > li > div.tmpl_card_item
   【GB構造】 wp:columns.tmpl_card_style01 > wp:column
   ============================================= */

/* 元構造 */
.tmpl_card_style01{ margin-top: 50px;}
.tmpl_card_style01 ul{ display: flex; gap: 22.5px;}
.tmpl_card_style01 ul li{ width: calc(33.33% - 30px); background: #fff; padding: 50px 30px 40px; border-radius: 20px; position: relative;}
.tmpl_card_style01 ul li .tmpl_card_item .tmpl_card_icon{ margin-bottom: 30px; text-align: center;}
.tmpl_card_style01 ul li .tmpl_card_item .tmpl_card_icon figure img,
.tmpl_card_style01 ul li .tmpl_card_item .tmpl_card_icon figure svg{ height: 59px; width: auto; display: inline-block;}
.tmpl_card_style01 ul li .tmpl_card_item .tmpl_card_body h4{ text-align: center; font-size: 1.2rem; color: #3C7571; margin-bottom: 30px;}
.tmpl_card_style01 ul li .tmpl_card_item .tmpl_card_body p{ text-align: justify; font-size: 0.9rem; line-height: 2em;}
.tmpl_card_style01 ul li:before{ content: ""; width: 60px; height: 60px; border-left: 3px solid #3C7571; border-top: 3px solid #3C7571; border-radius: 20px 0 0 0; position: absolute; left: 0; top: 0;}
.tmpl_card_style01 ul li:after{ content: ""; width: 60px; height: 60px; border-right: 3px solid #3C7571; border-top: 3px solid #3C7571; border-radius: 0 20px 0 0; position: absolute; right: 0; top: 0;}
.tmpl_card_style01 ul li .tmpl_card_item:before{ content: ""; width: 60px; height: 60px; border-left: 3px solid #3C7571; border-bottom: 3px solid #3C7571; border-radius: 0 0 0 20px; position: absolute; left: 0; bottom: 0;}
.tmpl_card_style01 ul li .tmpl_card_item:after{ content: ""; width: 60px; height: 60px; border-right: 3px solid #3C7571; border-bottom: 3px solid #3C7571; border-radius: 0 0 20px 0; position: absolute; right: 0; bottom: 0;}

/* GB構造: wp:columns > wp:column */
.tmpl_card_style01.wp-block-columns { gap: 22.5px; margin-top: 50px; }
.tmpl_card_style01.wp-block-columns > .wp-block-column {
  background: #fff;
  padding: 50px 30px 40px;
  border-radius: 20px;
  text-align: center;
  position: relative;
}
/* GB カード角装飾 */
.tmpl_card_style01.wp-block-columns > .wp-block-column:before {
  content: ""; width: 60px; height: 60px;
  border-left: 3px solid #3C7571; border-top: 3px solid #3C7571;
  border-radius: 20px 0 0 0; position: absolute; left: 0; top: 0;
}
.tmpl_card_style01.wp-block-columns > .wp-block-column:after {
  content: ""; width: 60px; height: 60px;
  border-right: 3px solid #3C7571; border-bottom: 3px solid #3C7571;
  border-radius: 0 0 20px 0; position: absolute; right: 0; bottom: 0;
}
.tmpl_card_style01 .wp-block-column .tmpl_card_icon { margin-bottom: 30px; text-align: center; }
.tmpl_card_style01 .wp-block-column .tmpl_card_icon img,
.tmpl_card_style01 .wp-block-column .tmpl_card_icon svg { height: 59px; width: auto; display: inline-block; }
.tmpl_card_style01 .wp-block-column h4 { text-align: center; font-size: 1.2rem; color: #3C7571; margin-bottom: 30px; }
.tmpl_card_style01 .wp-block-column p { text-align: justify; font-size: 0.9rem; line-height: 2em; }

@media screen and (max-width:768px){
.tmpl_card_style01{ margin-top: 7.5%;}
.tmpl_card_style01 ul{ display: block;}
.tmpl_card_style01 ul li{ width: 100%; padding: 5%; border-radius: 3.75vw; margin-top: 5%;}
.tmpl_card_style01 ul li .tmpl_card_item .tmpl_card_icon{ margin-bottom: 5%;}
.tmpl_card_style01 ul li .tmpl_card_item .tmpl_card_icon figure img,
.tmpl_card_style01 ul li .tmpl_card_item .tmpl_card_icon figure svg{ height: 12vw;}
.tmpl_card_style01 ul li .tmpl_card_item .tmpl_card_body h4{ font-size: 1.1rem; margin-bottom: 5%;}
.tmpl_card_style01 ul li .tmpl_card_item .tmpl_card_body p{ font-size: 0.8rem; line-height: 1.75em;}
.tmpl_card_style01 ul li:before{ width: 5vw; height: 5vw; border-width: 2px; border-radius: 3.75vw 0 0 0;}
.tmpl_card_style01 ul li:after{ width: 5vw; height: 5vw; border-width: 2px; border-radius: 0 3.75vw 0 0;}
.tmpl_card_style01 ul li .tmpl_card_item:before{ width: 5vw; height: 5vw; border-width: 2px; border-radius: 0 0 0 3.75vw;}
.tmpl_card_style01 ul li .tmpl_card_item:after{ width: 5vw; height: 5vw; border-width: 2px; border-radius: 0 0 3.75vw 0;}

.tmpl_card_style01.wp-block-columns { flex-direction: column; margin-top: 7.5%; }
.tmpl_card_style01.wp-block-columns > .wp-block-column {
  padding: 5%; border-radius: 3.75vw; margin-top: 5%;
}
.tmpl_card_style01.wp-block-columns > .wp-block-column:before { width: 5vw; height: 5vw; border-width: 2px; border-radius: 3.75vw 0 0 0; }
.tmpl_card_style01.wp-block-columns > .wp-block-column:after { width: 5vw; height: 5vw; border-width: 2px; border-radius: 0 0 3.75vw 0; }
.tmpl_card_style01 .wp-block-column .tmpl_card_icon img,
.tmpl_card_style01 .wp-block-column .tmpl_card_icon svg { height: 12vw; }
.tmpl_card_style01 .wp-block-column h4 { font-size: 1.1rem; margin-bottom: 5%; }
.tmpl_card_style01 .wp-block-column p { font-size: 0.8rem; line-height: 1.75em; }
}



/* =============================================
   card_style02 — 2カラムテキストカード
   ============================================= */

.tmpl_card_style02{ margin-top: 50px;}
.tmpl_card_style02 ul{ display: flex; gap: 70px;}
.tmpl_card_style02 ul li{ width: calc(50% - 35px); background: #fef9f8; padding: 40px; border-radius: 20px; position: relative;}
.tmpl_card_style02 ul li h4{ font-size: 1rem; color: #B8847F; margin-bottom: 0.5em;}
.tmpl_card_style02 ul li p{ font-size: 0.9rem; line-height: 2em;}
/* GB構造: wp:columns.tmpl_card_style02 > wp:column */
.tmpl_card_style02.wp-block-columns { gap: 70px; margin-top: 50px; }
.tmpl_card_style02.wp-block-columns > .wp-block-column {
  background: #fef9f8; padding: 40px; border-radius: 20px; position: relative;
}
.tmpl_card_style02 .wp-block-column h4 { font-size: 1rem; color: #B8847F; margin-bottom: 0.5em; }
.tmpl_card_style02 .wp-block-column p { font-size: 0.9rem; line-height: 2em; color: #333; }
@media screen and (max-width:768px){
.tmpl_card_style02{ margin-top: 7.5%;}
.tmpl_card_style02 ul{ display: block;}
.tmpl_card_style02 ul li{ width: 100%; padding: 5%; border-radius: 3.75vw; margin-top: 5%;}
.tmpl_card_style02 ul li h4{ font-size: 0.9rem;}
.tmpl_card_style02 ul li p{ font-size: 0.8rem; line-height: 1.75em;}
.tmpl_card_style02.wp-block-columns { flex-direction: column; margin-top: 7.5%; gap: 5vw; }
.tmpl_card_style02.wp-block-columns > .wp-block-column { padding: 5%; border-radius: 3.75vw; }
.tmpl_card_style02 .wp-block-column h4 { font-size: 0.9rem; }
.tmpl_card_style02 .wp-block-column p { font-size: 0.8rem; line-height: 1.75em; }
}



/* =============================================
   list_style01 — ナンバー付きリスト
   
   【元構造】 div.tmpl_list_style01 > ul > li（span.tmpl_num + h4 + p）
   【GB構造】 wp:group.tmpl_list_style01 > (h4 + p + wp:separator) × N
   ============================================= */

/* 元構造 */
.tmpl_list_style01{ margin-top: 50px;}
.tmpl_list_style01 ul li{ border-bottom: 1px solid #F5EBE8; padding: 40px 20px 40px 90px; position: relative;}
.tmpl_list_style01 ul li:first-child{ border-top: 1px solid #F5EBE8;}
.tmpl_list_style01 ul li .tmpl_num{ font-size: 3.7rem; color: #B8847F; opacity: 0.2; position: absolute; left: 0; top: 10px;}
.tmpl_list_style01 ul li h4{ font-size: 1rem; color: #B8847F; margin-bottom: 0.33em;}
.tmpl_list_style01 ul li p{ font-size: 0.9rem; line-height: 2em; text-align: justify;}

/* GB構造 */
.tmpl_list_style01.wp-block-group { margin-top: 50px; }
.tmpl_list_style01.wp-block-group h4 { font-size: 1rem; color: #B8847F; margin-bottom: 0.33em; }
.tmpl_list_style01.wp-block-group p { font-size: 0.9rem; line-height: 2em; text-align: justify; }
.tmpl_list_style01.wp-block-group .wp-block-separator {
  border-color: #F5EBE8;
  border-width: 1px 0 0 0;
  margin: 30px 0;
  opacity: 1;
}
/* GB構造 ナンバー付き */
.tmpl_list_numbered.wp-block-group { counter-reset: list-counter; }
.tmpl_list_numbered.wp-block-group h4 {
  counter-increment: list-counter;
  position: relative;
  padding-left: 90px;
}
.tmpl_list_numbered.wp-block-group h4::before {
  content: counter(list-counter, decimal-leading-zero);
  font-size: 3.7rem;
  color: #B8847F;
  opacity: 0.2;
  position: absolute;
  left: 0;
  top: -0.15em;
  font-weight: 400;
  line-height: 1;
}
.tmpl_list_numbered.wp-block-group p {
  padding-left: 90px;
}

@media screen and (max-width:768px){
.tmpl_list_style01{ margin-top: 7.5%;}
.tmpl_list_style01 ul li{ padding: 5% 3.75% 5% 12.5%;}
.tmpl_list_style01 ul li .tmpl_num{ font-size: 2.4rem; top: 0.125em;}
.tmpl_list_style01 ul li h4{ font-size: 0.9rem;}
.tmpl_list_style01 ul li p{ font-size: 0.8rem; line-height: 1.75em;}

.tmpl_list_style01.wp-block-group h4 { font-size: 0.9rem; }
.tmpl_list_style01.wp-block-group p { font-size: 0.8rem; line-height: 1.75em; }
.tmpl_list_numbered.wp-block-group h4 { padding-left: 12.5vw; }
.tmpl_list_numbered.wp-block-group h4::before { font-size: 2.4rem; }
.tmpl_list_numbered.wp-block-group p { padding-left: 12.5vw; }
}



/* =============================================
   table_style01 — 横スクロールテーブル
   ============================================= */

.tmpl_table_style01{ margin-top: 40px; background: #fff; border-radius: 20px; padding: 20px; position: relative;}
.tmpl_table_style01:before{ content: ""; width: 40px; height: 100%; border: 1px solid #B8847F; border-right: none; border-radius: 20px 0 0 20px; position: absolute; left: 0; top: 0; pointer-events: none; z-index: 1;}
.tmpl_table_style01:after{ content: ""; width: 40px; height: 100%; border: 1px solid #B8847F; border-left: none; border-radius: 0 20px 20px 0; position: absolute; right: 0; top: 0; pointer-events: none; z-index: 1;}
.tmpl_table_style01 table{ table-layout: fixed; width: 100%; max-width: 900px; margin: auto; border-collapse: collapse; border-spacing: 0; border: none;}
.tmpl_table_style01 table thead th{ font-size: 1rem; font-weight: bold; color: #B8847F; padding: 1em 1em 1em 0; border: none; background: transparent;}
.tmpl_table_style01 table tbody td{ font-size: 0.9rem; padding: 1em 1em 1em 0; border: none; border-top: 1px solid #B8847F; background: transparent;}
/* WP wp-block-table リセット */
figure.wp-block-table.tmpl_table_style01 { overflow: visible;}
figure.wp-block-table.tmpl_table_style01 table { border-bottom: none;}
figure.wp-block-table.tmpl_table_style01 table td,
figure.wp-block-table.tmpl_table_style01 table th { border-bottom: none;}
@media screen and (max-width:768px){
.tmpl_table_style01{ margin-top: 7.5%; border-radius: 3.75vw; padding: 5%;}
.tmpl_table_style01 .tmpl_smp_scroll{ overflow-x: auto; overflow-y: hidden;}
.tmpl_table_style01:before{ width: 5vw; border-radius: 3.75vw 0 0 3.75vw;}
.tmpl_table_style01:after{ width: 5vw; border-radius: 0 3.75vw 3.75vw 0;}

.tmpl_table_style01 table{ width: 120vw;}
.tmpl_table_style01 table thead th{ font-size: 0.8rem;}
.tmpl_table_style01 table tbody td{ font-size: 0.7rem;}
}



/* =============================================
   table_style02 — 定義リスト型テーブル
   
   【元構造】 div.tmpl_table_style02 > table
   【GB構造】 figure.wp-block-table.tmpl_table_style02 > table
   ============================================= */

/* 共通（元構造・GB構造両方に効く） */
.tmpl_table_style02{ margin-top: 40px; background: #fff; border-radius: 20px; padding: 20px; position: relative;}
.tmpl_table_style02:before{ content: ""; width: 40px; height: 100%; border: 1px solid #B8847F; border-right: none; border-radius: 20px 0 0 20px; position: absolute; left: 0; top: 0; pointer-events: none; z-index: 1;}
.tmpl_table_style02:after{ content: ""; width: 40px; height: 100%; border: 1px solid #B8847F; border-left: none; border-radius: 0 20px 20px 0; position: absolute; right: 0; top: 0; pointer-events: none; z-index: 1;}
.tmpl_table_style02 table{ width: 100%; max-width: 900px; margin: auto; border-collapse: collapse; border-spacing: 0; border: none;}
.tmpl_table_style02 table th{ font-size: 1rem; font-weight: bold; color: #B8847F; padding: 1em; text-align: left; width: 150px; border: none; background: transparent;}
.tmpl_table_style02 table td{ font-size: 0.9rem; line-height: 2em; padding: 1em; border: none; background: transparent; text-align: left;}
.tmpl_table_style02 table tr:not(:first-child) th,
.tmpl_table_style02 table tr:not(:first-child) td{ border-top: 1px solid #B8847F;}

/* WP wp-block-table デフォルトスタイルリセット */
figure.wp-block-table.tmpl_table_style02 { overflow: visible;}
figure.wp-block-table.tmpl_table_style02 table { border-bottom: none;}
figure.wp-block-table.tmpl_table_style02 table td,
figure.wp-block-table.tmpl_table_style02 table th { border-bottom: none; word-break: break-all;}

@media screen and (max-width:768px){
.tmpl_table_style02{ margin-top: 7.5%; border-radius: 3.75vw; padding: 5%;}
.tmpl_table_style02:before{ width: 5vw; border-radius: 3.75vw 0 0 3.75vw;}
.tmpl_table_style02:after{ width: 5vw; border-radius: 0 3.75vw 3.75vw 0;}

.tmpl_table_style02 table{ width: 100%;}
.tmpl_table_style02 table th{ display: block; width: 100%; font-size: 0.9rem; padding-bottom: 0;}
.tmpl_table_style02 table td{ display: block; width: 100%; font-size: 0.8rem; line-height: 1.5em; padding-top: 0.5em;}
.tmpl_table_style02 table tr td{ border-top: none !important;}
}



/* =============================================
   people — 人物カード（交互レイアウト）
   ============================================= */

.tmpl_people_style01 .tmpl_people_item{ margin-top: 60px; display: flex; justify-content: space-between;}
.tmpl_people_style01 .tmpl_people_item:nth-child(2n){ flex-direction: row-reverse;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_media{ display: flex; align-items: center; justify-content: center; width: 400px;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_media figure img{ border-radius: 20px;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body{ display: flex; justify-content: center; flex-direction: column; width: 630px; padding: 30px; position: relative;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body:before{ content: ""; width: 60px; height: 60px; border-left: 2px solid #B8847F; border-top: 2px solid #B8847F; border-radius: 20px 0 0 0; position: absolute; left: 0; top: 0; opacity: 0.3;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body:after{ content: ""; width: 60px; height: 60px; border-right: 2px solid #B8847F; border-top: 2px solid #B8847F; border-radius: 0 20px 0 0; position: absolute; right: 0; top: 0; opacity: 0.3;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit:before{ content: ""; width: 60px; height: 60px; border-left: 2px solid #B8847F; border-bottom: 2px solid #B8847F; border-radius: 0 0 0 20px; position: absolute; left: 0; bottom: 0; opacity: 0.3;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit:after{ content: ""; width: 60px; height: 60px; border-right: 2px solid #B8847F; border-bottom: 2px solid #B8847F; border-radius: 0 0 20px 0; position: absolute; right: 0; bottom: 0; opacity: 0.3;}

.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit h4{ font-size: 1.2rem; color: #B8847F; margin-bottom: 0.75em;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit .en{ display: flex;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit .en span{ display: flex; font-size: 0.9rem; line-height: 2em; color: #65514C; margin-bottom: 0.75em;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit .cat{ display: flex; margin-bottom: 0.75em;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit .cat span{ display: flex; align-items: center; justify-content: center; margin: 0; border: 1px solid #B8847F; font-size: 0.7rem; font-weight: 500; color: #B8847F; padding: 0.125em 0.5em; border-radius: 2em;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body p{ font-size: 0.9rem; line-height: 2em; color: #65514C;}
@media screen and (max-width:768px){
.tmpl_people_style01 .tmpl_people_item{ margin-top: 7.5%; display: block;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_media{ width: 50%; margin: 0 auto 5%;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body{ width: 100%; padding: 5%;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body:before{ width: 5vw; height: 5vw; border-width: 2px; border-radius: 3.75vw 0 0 0;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body:after{ width: 5vw; height: 5vw; border-width: 2px; border-radius: 0 3.75vw 0 0;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit:before{ width: 5vw; height: 5vw; border-width: 2px; border-radius: 0 0 0 3.75vw;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit:after{ width: 5vw; height: 5vw; border-width: 2px; border-radius: 0 0 3.75vw 0;}

.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit h4{ font-size: 1.1rem;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit .en span{ font-size: 0.8rem; line-height: 1.75em;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body .tmpl_people_tit .cat span{ font-size: 0.6rem;}
.tmpl_people_style01 .tmpl_people_item .tmpl_people_body p{ font-size: 0.8rem; line-height: 1.75em;}
}



/* =============================================
   column — コラム一覧
   ============================================= */

/*nav*/
.tmpl_column_cat_nav{ margin-bottom: 50px;}
.tmpl_column_cat_nav ul{ display: flex; align-items: center; justify-content: center; gap: 10px;}
.tmpl_column_cat_nav ul li a{ display: flex; align-items: center; justify-content: center; border: 1px solid #B8847F; background: #fff; color: #B8847F; font-size: 0.9rem; font-weight: 500; padding: 0.25em 0.75em; border-radius: 2em; transition: 0.3s;}
.tmpl_column_cat_nav ul li a:hover,
.tmpl_column_cat_nav ul li.active a{ background: #B8847F; color: #fff;}
.tmpl_column_cat_nav ul li a.cat01{ color: #3C7571; border-color: #3C7571;}
.tmpl_column_cat_nav ul li a.cat01:hover,
.tmpl_column_cat_nav ul li.active a.cat01{ background: #3C7571; color: #fff;}
.tmpl_column_cat_nav ul li a.cat02{ color: #B8847F; border-color: #B8847F;}
.tmpl_column_cat_nav ul li a.cat02:hover,
.tmpl_column_cat_nav ul li.active a.cat02{ background: #B8847F; color: #fff;}
.tmpl_column_cat_nav ul li a.cat03{ color: #DEA229; border-color: #DEA229;}
.tmpl_column_cat_nav ul li a.cat03:hover,
.tmpl_column_cat_nav ul li.active a.cat03{ background: #DEA229; color: #fff;}
@media screen and (max-width:768px){
.tmpl_column_cat_nav{ margin-bottom: 7.5%;}
.tmpl_column_cat_nav ul{ gap: 1.875vw;}
.tmpl_column_cat_nav ul li a{ font-size: 0.8rem;}
}

/*list*/
.tmpl_column_list{ margin-top: 50px;}
.tmpl_column_list ul{ display: flex; flex-wrap: wrap; gap: 45px; list-style: none; padding: 0; margin: 0;}
.tmpl_column_list ul li{ width: calc(33.33% - 30px);}
.tmpl_column_list ul li a{ display: block; height: 100%; background: #fff; padding: 10px; border-radius: 20px; transition: 0.3s; text-decoration: none; color: inherit;}
.tmpl_column_list ul li a:hover{ opacity: 0.7;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_media figure img{ border-radius: 20px;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body{ padding: 30px 20px 20px;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body .cat{ display: flex; margin-bottom: 20px;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body .cat span{ display: flex; align-items: center; justify-content: center; font-size: 0.7rem; font-weight: 500; padding: 0.125em 0.5em; color: #B8847F; border: 1px solid #B8847F; border-radius: 1em;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body .cat span.cat01{ color: #3C7571; border-color: #3C7571;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body .cat span.cat02{ color: #B8847F; border-color: #B8847F;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body .cat span.cat03{ color: #DEA229; border-color: #DEA229;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body .date{ line-height: 0; margin-top: 15px;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body .date span{ font-size: 0.7rem; color: #888888;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body p{ font-size: 0.9rem; margin: 0;}
@media screen and (max-width:768px){
.tmpl_column_list{ margin-top: 10%;}
.tmpl_column_list ul{ display: block; width: 92.5%; margin: auto;}
.tmpl_column_list ul li{ width: 100%; margin-top: 5%;}
.tmpl_column_list ul li a{ padding: 1.875vw; border-radius: 3.75vw;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_media figure img{ border-radius: 3.75vw;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body{ padding: 5% 5% 5%;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body .cat{ margin-bottom: 5%;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body .cat span{ font-size: 0.7rem;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body .date{ margin-top: 3.75%;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body .date span{ font-size: 0.7rem;}
.tmpl_column_list ul li .tmpl_column_item .tmpl_column_body p{ font-size: 0.9rem;}
}

/*page_nav*/
.tmpl_page_nav{ margin-top: 50px;}
.tmpl_page_nav ul{ display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 0.8rem; font-weight: bold; color: #707070; list-style: none; padding: 0; margin: 0;}
.tmpl_page_nav ul li a{ display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid #fff; border-radius: 50%; transition: 0.3s;}
.tmpl_page_nav ul li.active a,
.tmpl_page_nav ul li a:hover{ background: #707070; border-color: #707070; color: #fff;}
.tmpl_page_nav ul li.prev a,
.tmpl_page_nav ul li.next a{ border: none; background: none; color: #707070;}
@media screen and (max-width:768px){
.tmpl_page_nav{ margin-top: 7.5%;}
.tmpl_page_nav ul{ gap: 1.875vw; font-size: 0.7rem;}
.tmpl_page_nav ul li a{ width: 7.5vw; height: 7.5vw;}
}



/* =============================================
   news — ニュース一覧
   ============================================= */

.tmpl_news_list{ background: #fff; padding: 60px; border-radius: 20px;}
.tmpl_news_list ul{ width: 800px; margin: auto; list-style: none; padding: 0;}
.tmpl_news_list ul li{ padding: 30px 0 25px; border-bottom: 1px solid #F5EBE8;}
.tmpl_news_list ul li:first-child{ padding-top: 0;}
.tmpl_news_list ul li .tmpl_news_item{ display: flex;}
.tmpl_news_list ul li .tmpl_news_item .tmpl_news_head{ width: 200px; display: flex; align-items: flex-start;}
.tmpl_news_list ul li .tmpl_news_item .tmpl_news_body{ flex: 1;}
.tmpl_news_list ul li .tmpl_news_item .tmpl_news_head .date{ width: 5em; font-size: 0.8rem; font-weight: 500;}
.tmpl_news_list ul li .tmpl_news_item .tmpl_news_head .cat{ display: flex; align-items: center; justify-content: center; font-size: 0.7rem; font-weight: 500; padding: 0.125em 0.5em; color: #B8847F; border: 1px solid #B8847F; border-radius: 1em;}
.tmpl_news_list ul li .tmpl_news_item .tmpl_news_body p{ font-size: 0.9rem; line-height: 2em; margin-top: -0.33em;}
.tmpl_news_list ul li a:hover{ text-decoration: underline;}
@media screen and (max-width:768px){
.tmpl_news_list{ padding: 10% 5% 5%; border-radius: 3.75vw;}
.tmpl_news_list ul{ width: 100%;}
.tmpl_news_list ul li{ padding: 5% 0;}
.tmpl_news_list ul li .tmpl_news_item{ display: block;}
.tmpl_news_list ul li .tmpl_news_item .tmpl_news_head{ width: 100%; display: flex; align-items: flex-start; margin-bottom: 2.5%;}
.tmpl_news_list ul li .tmpl_news_item .tmpl_news_head .date{ font-size: 0.7rem;}
.tmpl_news_list ul li .tmpl_news_item .tmpl_news_head .cat{ font-size: 0.6rem;}
.tmpl_news_list ul li .tmpl_news_item .tmpl_news_body p{ font-size: 0.8rem; line-height: 1.75em; margin-top: 0;}
}



/* =============================================
   faq — よくある質問アコーディオン
   
   【構造】 div.tmpl_faq_list > dl > dt + dd
   ============================================= */

.tmpl_faq_list { margin: 0 auto; max-width: 800px; }
.tmpl_faq_list dl { border-bottom: 1px solid #B8847F; padding: 40px 0; }
.tmpl_faq_list dl:first-child { border-top: 1px solid #B8847F; }
.tmpl_faq_list dl dt {
  font-size: 0.9rem; font-weight: bold; color: #B8847F;
  padding-right: 60px; position: relative; cursor: pointer;
}
.tmpl_faq_list dl dt span {
  display: flex; align-items: center; justify-content: center;
  width: 14px; height: 14px; position: absolute;
  right: 20px; top: 50%; transform: translateY(-50%);
}
.tmpl_faq_list dl dt span:before {
  content: ""; width: 14px; height: 2px; background: #B8847F;
  position: absolute; left: 50%; top: 50%;
  transform: translateX(-50%) translateY(-50%);
}
.tmpl_faq_list dl dt span:after {
  content: ""; width: 14px; height: 2px; background: #B8847F;
  position: absolute; left: 50%; top: 50%;
  transform: translateX(-50%) translateY(-50%) rotate(90deg);
  transition: 0.3s;
}
.tmpl_faq_list dl dt.active span:after {
  transform: translateX(-50%) translateY(-50%) rotate(0); opacity: 0;
}
.tmpl_faq_list dl dd { display: none; padding: 20px 0 0; }
.tmpl_faq_list dl dd p { font-size: 0.9rem; line-height: 2em; }

@media screen and (max-width:768px){
.tmpl_faq_list { width: 100%; }
.tmpl_faq_list dl { padding: 5% 0; }
.tmpl_faq_list dl dt { font-size: 0.8rem; padding-right: 10vw; }
.tmpl_faq_list dl dt span { width: 3.75vw; height: 3.75vw; right: 3.125vw; }
.tmpl_faq_list dl dt span:before { width: 3.75vw; }
.tmpl_faq_list dl dt span:after { width: 3.75vw; }
.tmpl_faq_list dl dd { padding: 3.75% 0 0; }
.tmpl_faq_list dl dd p { font-size: 0.8rem; }
}



/* =============================================
   article_header — 記事詳細ヘッダー（日付・カテゴリ・タイトル）
   ============================================= */

.tmpl_article_header { text-align: center; margin-bottom: 40px; }
.tmpl_article_header .tmpl_article_meta { display: flex; align-items: center; justify-content: center; gap: 15px; margin-bottom: 20px; }
.tmpl_article_header .tmpl_article_meta .date { font-size: 0.85rem; color: #888; }
.tmpl_article_header .tmpl_article_meta .cat {
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 0.7rem; font-weight: 500; padding: 0.125em 0.75em;
  border: 1px solid #B8847F; color: #B8847F; border-radius: 2em;
}
.tmpl_article_header .tmpl_article_meta .cat.cat01 { color: #3C7571; border-color: #3C7571; }
.tmpl_article_header .tmpl_article_meta .cat.cat02 { color: #B8847F; border-color: #B8847F; }
.tmpl_article_header .tmpl_article_meta .cat.cat03 { color: #DEA229; border-color: #DEA229; }
.tmpl_article_header h2 { font-size: 1.4rem; color: #3C7571; line-height: 1.6em; }

.tmpl_article_eyecatch { margin: 0 auto 40px; text-align: center; }
.tmpl_article_eyecatch img { max-width: 100%; height: auto; border-radius: 20px; }

/* 前後記事リンク */
.tmpl_article_pager { display: flex; justify-content: space-between; margin: 60px auto 0; padding-top: 40px; border-top: 1px solid #F5EBE8; }
.tmpl_article_pager a { display: block; max-width: 45%; font-size: 0.85rem; color: #3C7571; transition: 0.3s; }
.tmpl_article_pager a:hover { opacity: 0.7; }
.tmpl_article_pager a.prev span { margin-right: 0.5em; }
.tmpl_article_pager a.next { margin-left: auto; text-align: right; }
.tmpl_article_pager a.next span { margin-left: 0.5em; }

@media screen and (max-width:768px){
.tmpl_article_header { margin-bottom: 7.5%; }
.tmpl_article_header .tmpl_article_meta { gap: 2.5vw; margin-bottom: 5%; }
.tmpl_article_header h2 { font-size: 1.2rem; }
.tmpl_article_eyecatch { margin-bottom: 7.5%; }
.tmpl_article_eyecatch img { border-radius: 3.75vw; }
.tmpl_article_pager { margin-top: 7.5%; padding-top: 5%; }
.tmpl_article_pager a { font-size: 0.8rem; }
}



/* =============================================
   price — 料金プラン（カード表示）
   
   【GB構造】 wp:group.tmpl_price_table
              > wp:columns.tmpl_price_item × N
                > wp:column.tmpl_price_head + wp:column.tmpl_price_body
              + wp:paragraph.tmpl_att × N
   ============================================= */

.tmpl_price_table.wp-block-group { margin-top: 60px; background: #B8847F; padding: 40px; border-radius: 20px; }
.tmpl_price_table .tmpl_price_item.wp-block-columns { margin-bottom: 10px !important; display: flex; align-items: center; background: #fff; color: #B8847F; padding: 10px 40px 15px; border-radius: 20px; gap: 0; }
.tmpl_price_table .tmpl_price_head.wp-block-column { flex: 0 0 6em !important; font-size: 1.2rem; font-weight: 500; }
.tmpl_price_table .tmpl_price_head p { margin: 0; }
.tmpl_price_table .tmpl_price_body.wp-block-column { display: flex; align-items: center; flex: 1 !important; gap: 20px; }
.tmpl_price_table p.tmpl_price_amount { font-size: 0.9rem; margin: 0; width: 340px; }
.tmpl_price_table p.tmpl_price_amount strong { font-size: 2.5rem; line-height: 1em; }
.tmpl_price_table p.tmpl_price_add { font-size: 1.2rem; font-weight: 500; line-height: 1em; margin: 0; }
.tmpl_price_table p.tmpl_att { text-align: right; color: #fff; font-size: 1.2rem; line-height: 1em; font-weight: 500; margin-top: 1em; }

@media screen and (max-width:768px){
.tmpl_price_table.wp-block-group { margin-top: 10%; padding: 3.75vw 3.75vw 5vw; border-radius: 1.875vw; }
.tmpl_price_table .tmpl_price_item.wp-block-columns { margin-bottom: 1.875% !important; padding: 3.75% 7.5%; border-radius: 1.875vw; flex-wrap: nowrap !important; }
.tmpl_price_table .tmpl_price_head.wp-block-column { flex: 0 0 36.66% !important; font-size: 1.2rem; }
.tmpl_price_table .tmpl_price_body.wp-block-column { width: 63.33%; display: block; text-align: center; flex: 1 !important; }
.tmpl_price_table p.tmpl_price_amount { font-size: 0.8rem; width: auto; }
.tmpl_price_table p.tmpl_price_amount strong { font-size: 2rem; }
.tmpl_price_table p.tmpl_price_add { font-size: 1rem; margin-top: 0.5em; }
.tmpl_price_table p.tmpl_att { font-size: 0.9rem; }
}



/* =============================================
   flow — ステップフロー
   ============================================= */

.tmpl_flow{ width: 900px; margin: 60px auto 0;}
.tmpl_flow .tmpl_flow_item{ margin-top: 20px; display: flex; align-items: center; justify-content: space-between; background: #fff; padding: 40px 60px; border-radius: 20px; position: relative;}
.tmpl_flow .tmpl_flow_item:nth-child(1){ z-index: 5;}
.tmpl_flow .tmpl_flow_item:nth-child(2){ z-index: 4;}
.tmpl_flow .tmpl_flow_item:nth-child(3){ z-index: 3;}
.tmpl_flow .tmpl_flow_item:nth-child(4){ z-index: 2;}
.tmpl_flow .tmpl_flow_item:nth-child(5){ z-index: 1;}
.tmpl_flow .tmpl_flow_item .tmpl_flow_num{ flex: 1; font-size: 3.7rem; color: #B8847F; opacity: 0.2; position: static;}
.tmpl_flow .tmpl_flow_item .tmpl_flow_num:after{ content: ""; width: 2px; height: 90px; background: #B8847F; opacity: 1.0; position: absolute; left: calc(60px + 1.85rem); bottom: -55px;}
.tmpl_flow .tmpl_flow_item:last-child dt:after{ display: none;}
.tmpl_flow .tmpl_flow_item .tmpl_flow_body{ width: 690px;}
.tmpl_flow .tmpl_flow_item .tmpl_flow_body h4{ font-size: 1rem; color: #B8847F; margin-bottom: 0.33em;}
.tmpl_flow .tmpl_flow_item .tmpl_flow_body p{ font-size: 0.9rem; line-height: 2em;}
@media screen and (max-width:768px){
.tmpl_flow{ width: 100%; margin: 7.5% auto 0;}
.tmpl_flow .tmpl_flow_item{ margin-top: 3.75vw; padding: 3.75vw; border-radius: 3.75vw; position: relative;}
.tmpl_flow .tmpl_flow_item .tmpl_flow_num{ font-size: 3rem; position: static;}
.tmpl_flow .tmpl_flow_item .tmpl_flow_num:after{ height: 10vw; left: calc(3.75vw + 1.5rem); bottom: -6.875vw;}
.tmpl_flow .tmpl_flow_item .tmpl_flow_body{ width: 80%;}
.tmpl_flow .tmpl_flow_item .tmpl_flow_body h4{ font-size: 0.9rem;}
.tmpl_flow .tmpl_flow_item .tmpl_flow_body p{ font-size: 0.8rem; line-height: 1.75em;}
}



/* =============================================
   article — 記事本文エリア
   ============================================= */

.tmpl_article{ width: 980px; margin: 60px auto 0; background: #fff; padding: 60px 90px; border-radius: 20px;}
.tmpl_article p{ font-size: 0.9rem; line-height: 2em;}
.tmpl_article p a{ color: #3C7571; text-decoration: underline;}
.tmpl_article p a:hover{ text-decoration: none;}
.tmpl_article figure.img{ margin: 60px auto;}
.tmpl_article figure.img:first-child{ margin-top: 0;}
.tmpl_article figure.img:last-child{ margin-bottom: 0;}
.tmpl_article figure.img img{ max-width: 540px; border-radius: 20px;}

.tmpl_article .tmpl_col2_left{ margin: 60px auto; display: flex; justify-content: space-between;}
.tmpl_article .tmpl_col2_left .tmpl_col2_media{ width: 370px;}
.tmpl_article .tmpl_col2_left .tmpl_col2_body{ width: 400px;}
.tmpl_article .tmpl_col2_left .tmpl_col2_media img{ border-radius: 20px;}

.tmpl_article .tmpl_col2_right{ margin: 60px auto; display: flex; justify-content: space-between; flex-direction: row-reverse;}
.tmpl_article .tmpl_col2_right .tmpl_col2_media{ width: 370px;}
.tmpl_article .tmpl_col2_right .tmpl_col2_body{ width: 400px;}
.tmpl_article .tmpl_col2_right .tmpl_col2_media img{ border-radius: 20px;}

.tmpl_article h2{ display: block; text-align: left; font-size: 1.2rem; color: #3C7571; padding-bottom: 0.25em; border-bottom: 2px solid #3C7571; margin: 60px auto 30px;}
.tmpl_article h2:first-child{ margin-top: 0;}
.tmpl_article h3{ font-size: 1rem; color: #3C7571; margin: 60px auto 30px;}
.tmpl_article h3:first-child{ margin-top: 0;}

.tmpl_article .box{ background: rgba(60,117,113,0.05); padding: 30px; margin: 30px auto; border-radius: 20px;}
.tmpl_article .box h3{ margin: 30px auto 10px;}
.tmpl_article .box h3:first-child{ margin-top: 0;}

.tmpl_article .list01{ margin: 60px auto;}
.tmpl_article .list01 ul li{ font-size: 1rem; padding-left: 150px; margin-bottom: 1em; position: relative;}
.tmpl_article .list01 ul li:before{ content: ""; width: 8px; height: 8px; background: #3C7571; border-radius: 50%; position: absolute; left: 0; top: 10px;}
.tmpl_article .list01 ul li strong{ font-size: 1rem; line-height: 1.5em; color: #3C7571; position: absolute; left: 16px; top: 0;}
.tmpl_article .list01 ul li p{ font-size: 0.9rem; line-height: 1.5em;}

.tmpl_article .list02{ margin: 60px auto;}
.tmpl_article .list02 ol li{ font-size: 1rem; padding-left: 1em; margin-bottom: 1em; position: relative;}
.tmpl_article .list02 ol li span{ font-size: 1rem; line-height: 1.5em; position: absolute; left: 0; top: 0;}
.tmpl_article .list02 ol li p{ font-size: 1rem; line-height: 1.5em;}
@media screen and (max-width:768px){
.tmpl_article{ width: 100%; margin: 7.5% auto 0; padding: 5%; border-radius: 3.75vw;}
.tmpl_article p{ font-size: 1rem; line-height: 1.85em;}
.tmpl_article figure.img{ margin: 7.5% auto;}
.tmpl_article figure.img img{ max-width: 100%; border-radius: 3.75vw;}

.tmpl_article .tmpl_col2_left{ margin: 7.5% auto; display: block;}
.tmpl_article .tmpl_col2_left .tmpl_col2_media{ width: 66.66%; margin: 0 auto 5%;}
.tmpl_article .tmpl_col2_left .tmpl_col2_body{ width: 100%;}
.tmpl_article .tmpl_col2_left .tmpl_col2_media img{ border-radius: 3.75vw;}

.tmpl_article .tmpl_col2_right{ margin: 7.5% auto; display: block;}
.tmpl_article .tmpl_col2_right .tmpl_col2_media{ width: 66.66%; margin: 0 auto 5%;}
.tmpl_article .tmpl_col2_right .tmpl_col2_body{ width: 100%;}
.tmpl_article .tmpl_col2_right .tmpl_col2_media img{ border-radius: 3.75vw;}

.tmpl_article h2{ font-size: 1.1rem; margin: 7.5% auto 3.75%;}
.tmpl_article h3{ font-size: 1rem; margin: 7.5% auto 3.75%;}

.tmpl_article .box{ padding: 3.75%; margin: 3.75% auto; border-radius: 3.75vw;}
.tmpl_article .box h3{ margin: 3.75% auto 2.5%;}

.tmpl_article .list01{ margin: 7.5% auto;}
.tmpl_article .list01 ul li{ font-size: 1rem; padding-left: 3.75vw;}
.tmpl_article .list01 ul li:before{ width: 1.875vw; height: 1.875vw; top: 1.875vw;}
.tmpl_article .list01 ul li strong{ display: block; width: 100%; position: static; font-size: 1rem;}
.tmpl_article .list01 ul li p{ display: block; width: 100%; font-size: 1rem; margin-top: 0.25em;}

.tmpl_article .list02{ margin: 7.5% auto;}
.tmpl_article .list02 ol li{ font-size: 1rem;}
.tmpl_article .list02 ol li span{ font-size: 1rem;}
.tmpl_article .list02 ol li p{ font-size: 1rem;}
}



/* =============================================
   form — フォーム
   ============================================= */

::placeholder{ color: #707070; line-height: 1.25em;}
::-ms-input-placeholder{ color: #707070; line-height: 1.25em;}
input[type=submit], select, button{ -webkit-appearance: none;}
input, textarea, select, button{ width:100%; padding: 1rem 1em; font-size: 1rem; line-height: 1.5em; box-sizing: border-box; outline: none; border: none; border-radius: 10px; background: #F5F5F5; color: #000; font-family: "Zen Kaku Gothic New", sans-serif; vertical-align: bottom;}
textarea{ text-align: left; height: 20em; font-weight: normal;}
input[type=radio],
input[type=checkbox]{ width: auto; padding: 0;}
@media screen and (max-width:768px){
input, textarea, select, button{ font-size: 0.9rem; padding: 0.75em 1em; border-radius: 1.875vw;}
textarea{ height: 10em;}
}

.tmpl_form{ width: 980px; margin: 60px auto 0; background: #fff; padding: 60px 90px; border-radius: 20px;}
.tmpl_form table th{ display: flex; align-items: center; width: 100%; font-size: 1rem; font-weight: 500; margin-bottom: 10px;}
.tmpl_form table th span{ display: flex; align-items: center; justify-content: center; font-size: 0.7rem; font-weight: 500; padding: 0.125em 0.5em; background: #859F9D; color: #fff; border-radius: 2em; margin-left: 1em;}
.tmpl_form table th span.tmpl_req{ background: #B8847F;}
.tmpl_form table td{ display: block; width: 100%; margin-bottom: 50px;}
.tmpl_form table tr:last-child td{ margin-bottom: 0;}

.tmpl_form table td .tmpl_form_col2{ display: flex; justify-content: space-between; gap: 20px;}

.tmpl_form table td .tmpl_select_wrap{ background: #F5F5F5; border-radius: 10px; position: relative;}
.tmpl_form table td .tmpl_select_wrap:after{ content: "\f078"; position: absolute; right: 1em; top: 50%; transform: translateY(-50%); pointer-events: none; font-family: "Font Awesome 6 Free"; font-weight: 900;}

.tmpl_form table td .tmpl_list_wrap ul{ display: flex; margin-top: 20px; font-size: 1rem; list-style: none; padding: 0;}
.tmpl_form table td .tmpl_list_wrap ul li{ display: flex; margin-right: 1.5em; padding-left: 50px; position: relative;}
.tmpl_form table td .tmpl_list_wrap ul li:last-child{ margin-right: 0;}
.tmpl_form table td .tmpl_list_wrap input{ display: none;}
.tmpl_form table td .tmpl_list_wrap ul li label{ cursor: pointer;}
.tmpl_form table td .tmpl_list_wrap ul li label:before{ content: ""; width: 40px; height: 40px; background: #F5F5F5; border: 2px solid #C9C9C9; border-radius: 50%; position: absolute; left: 0; top: 50%; transform: translateY(-50%); transition: 0.3s;}
.tmpl_form table td .tmpl_list_wrap ul li label:after{ content: ""; width: 16px; height: 16px; background: #F5F5F5; position: absolute; left: calc(12px + 2px); top: 50%; transform: translateY(-50%); border-radius: 50%; transition: 0.3s;}
.tmpl_form table td .tmpl_list_wrap ul li input:checked+label:before{ background: #B8847F; border-color: #B8847F;}
.tmpl_form table td .tmpl_list_wrap ul li input:checked+label:after{ background: #fff;}
@media screen and (max-width:768px){
.tmpl_form{ width: 100%; margin: 7.5% auto 0; padding: 5%; border-radius: 3.75vw;}
.tmpl_form table th{ font-size: 1rem; margin-bottom: 1.875%;}
.tmpl_form table th span{ font-size: 0.7rem;}
.tmpl_form table td{ margin-bottom: 7.5%;}

.tmpl_form table td .tmpl_form_col2{ gap: 1.875vw;}

.tmpl_form table td .tmpl_select_wrap{ border-radius: 1.875vw;}

.tmpl_form table td .tmpl_list_wrap ul{ display: block; margin-top: 0; font-size: 0.9rem;}
.tmpl_form table td .tmpl_list_wrap ul li{ padding-left: 7.5vw; margin-top: 3.75%;}
.tmpl_form table td .tmpl_list_wrap ul li label:before{ width: 5vw; height: 5vw;}
.tmpl_form table td .tmpl_list_wrap ul li label:after{ width: 2.5vw; height: 2.5vw; left: calc(1.25vw + 2px);}
}

.tmpl_form .tmpl_pv_check{ font-size: 1rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; background: #F5ECE8; border-radius: 10px; padding: 30px; margin-top: 50px;}
.tmpl_form .tmpl_pv_check input{  transform: scale(2); accent-color: #B8847F; margin-right: 1em;}
.tmpl_form .tmpl_pv_check p{ width: 100%; text-align: center; font-size: 0.8rem; margin-top: 10px;}
.tmpl_form .tmpl_pv_check p a{ color: #B8847F; text-decoration: underline;}
.tmpl_form .tmpl_pv_check p a:hover{ text-decoration: none;}

.tmpl_form .tmpl_submit_btn{ margin-top: 50px;}
.tmpl_form .tmpl_submit_btn button{ display: flex; align-items: center; justify-content: center; margin: auto; width: 300px; height: 60px; border-radius: 10px; background: #3B7571; color: #fff; font-size: 1rem; font-weight: bold; cursor: pointer; transition: 0.3s;}
.tmpl_form .tmpl_submit_btn input[type="submit"]{ margin: auto; width: 300px; height: 60px; line-height: 60px; padding: 0; text-align: center; border-radius: 10px; background: #3B7571; color: #fff; font-size: 1rem; font-weight: bold; cursor: pointer; transition: 0.3s;}
.tmpl_form .tmpl_submit_btn button:hover,
.tmpl_form .tmpl_submit_btn input[type="submit"]:hover{ opacity: 0.7;}
.tmpl_form .tmpl_submit_btn p.att{ text-align: center; font-size: 0.8rem; margin-top: 1em;}
@media screen and (max-width:768px){
.tmpl_form .tmpl_pv_check{ font-size: 0.9rem; border-radius: 1.875vw; padding: 5%; margin-top: 7.5%;}
.tmpl_form .tmpl_pv_check p{ font-size: 0.9rem;}

.tmpl_form .tmpl_submit_btn{ margin-top: 7.5%;}
.tmpl_form .tmpl_submit_btn button{ width: 66.66vw; height: 12.5vw; border-radius: 1.875vw; font-size: 0.9rem;}
.tmpl_form .tmpl_submit_btn input[type="submit"]{ width: 66.66vw; height: 12.5vw; line-height: 12.5vw; border-radius: 1.875vw; font-size: 0.9rem;}

.tmpl_form .tmpl_submit_btn p.att{ font-size: 0.7rem;}
}


/* =============================================
   mwform — MW WP Form 追加スタイル
   ============================================= */

/* エラー表示 */
.mw_wp_form .tmpl_form .error { color: #B8847F; font-size: 0.8rem; margin-top: 5px; display: block; }
.mw_wp_form .tmpl_form .tmpl_pv_check .error { width: 100%; text-align: center; margin-top: 10px; }

/* 確認画面 */
.mw_wp_form_confirm .tmpl_form table td { font-size: 1rem; font-weight: 500; color: #4F3C34; padding: 10px 0; }
.mw_wp_form_confirm .tmpl_form .tmpl_select_wrap:after { display: none; }
.mw_wp_form_confirm .tmpl_form .tmpl_list_wrap ul { margin-top: 0; }

/* ボタン */
.mw_wp_form .tmpl_form .tmpl_submit_btn { display: flex; align-items: center; justify-content: center; gap: 20px; }
.mw_wp_form .tmpl_form .btn_back,
.mw_wp_form .tmpl_form .btn_submit {
  margin: auto; width: 300px; height: 60px; line-height: 60px; padding: 0;
  text-align: center; border-radius: 10px; font-size: 1rem; font-weight: bold;
  cursor: pointer; transition: 0.3s; border: none;
}
.mw_wp_form .tmpl_form .btn_submit { background: #3B7571; color: #fff; }
.mw_wp_form .tmpl_form .btn_submit:hover { opacity: 0.7; }
.mw_wp_form .tmpl_form .btn_back { background: #C9C9C9; color: #fff; }
.mw_wp_form .tmpl_form .btn_back:hover { opacity: 0.7; }

/* チェックボックス（プライバシーポリシー同意） */
.mw_wp_form .tmpl_form .mwform-checkbox-field { display: flex; align-items: center; }
.mw_wp_form .tmpl_form .mwform-checkbox-field input { transform: scale(1.5); accent-color: #B8847F; margin-right: 0.75em; }
.mw_wp_form .tmpl_form .mwform-checkbox-field label { cursor: pointer; font-size: 1rem; }

/* ラジオボタン（MW WP Form出力） */
.mw_wp_form .tmpl_form .mwform-radio-field { display: inline-flex; align-items: center; margin-right: 1.5em; margin-top: 10px; }
.mw_wp_form .tmpl_form .mwform-radio-field input { transform: scale(1.5); accent-color: #B8847F; margin-right: 0.5em; }
.mw_wp_form .tmpl_form .mwform-radio-field label { cursor: pointer; }

/* デイトピッカー */
.mw_wp_form .tmpl_form .mwform-datepicker-field input { width: 100%; }

@media screen and (max-width:768px){
.mw_wp_form .tmpl_form .btn_back,
.mw_wp_form .tmpl_form .btn_submit { width: 40vw; height: 12.5vw; line-height: 12.5vw; border-radius: 1.875vw; font-size: 0.9rem; }
.mw_wp_form .tmpl_form .tmpl_submit_btn { gap: 3.75vw; }
.mw_wp_form .tmpl_form .mwform-radio-field { display: flex; margin-right: 0; margin-top: 2.5%; }
}



/* =============================================
   trial — CTA セクション
   ============================================= */

.tmpl_trial{ padding-top: 260px;}
.tmpl_trial .tmpl_ico01{ width: 490px; position: absolute; left: -110px; top: -260px; z-index: -1; pointer-events: none;}
.tmpl_trial .tmpl_ico02{ width: 364px; position: absolute; left: -310px; top: -90px; z-index: -1; pointer-events: none;}
.tmpl_trial .tmpl_ico03{ width: 690px; position: absolute; right: -450px; top: 90px; z-index: -1; pointer-events: none;}

.tmpl_trial .tmpl_img01{ width: 340px; position: absolute; left: -60px; top: 60px; z-index: -1; pointer-events: none;}
.tmpl_trial .tmpl_img02{ width: 470px; position: absolute; right: -140px; top: -140px; z-index: -1; pointer-events: none;}

.tmpl_trial h2 .tmpl_title{ position: relative;}
.tmpl_trial h2 .tmpl_title:before{ content: ""; width: 1px; height: 100%; border-left: 3px dotted #DEA229; position: absolute; left: -1em; bottom: 0;  transform: rotate(-25deg);}
.tmpl_trial h2 .tmpl_title:after{ content: ""; width: 1px; height: 100%; border-left: 3px dotted #DEA229; position: absolute; right: -1em; bottom: 0;  transform: rotate(25deg);}

.tmpl_trial p{ text-align: center; font-size: 0.9rem;}
@media screen and (max-width:768px){
.tmpl_trial{ padding-top: 25%;}
.tmpl_trial .tmpl_ico01{ width: 50vw; left: -10vw; top: -25vw;}
.tmpl_trial .tmpl_ico02{ width: 33.33vw; left: -30vw; top: -10vw;}
.tmpl_trial .tmpl_ico03{ width: 70vw; right: -45vw; top: -10vw;}

.tmpl_trial .tmpl_img01{ width: 30vw; left: -10vw; top: 30vw;}
.tmpl_trial .tmpl_img02{ width: 45vw; right: -17.5vw; top: 20vw;}

.tmpl_trial h2 .tmpl_title{ position: relative;}
.tmpl_trial h2 .tmpl_title:before{ content: ""; width: 1px; height: 100%; border-left: 3px dotted #DEA229; position: absolute; left: -1em; bottom: 0;  transform: rotate(-25deg);}
.tmpl_trial h2 .tmpl_title:after{ content: ""; width: 1px; height: 100%; border-left: 3px dotted #DEA229; position: absolute; right: -1em; bottom: 0;  transform: rotate(25deg);}

.tmpl_trial p{ text-align: center; font-size: 0.9rem;}
}



/* =============================================
   btn_bg（ボタンデモ用背景）
   ============================================= */

.tmpl_btn_bg{ background: #B8847F; padding: 1px 0 60px; margin-top: 60px;}



/* =============================================
   注意事項テキスト
   ============================================= */

p.tmpl_att{ font-size: 0.8rem; color: #707070; margin-top: 0.5em;}
@media screen and (max-width:768px){
p.tmpl_att{ font-size: 0.7rem;}
}



/* =============================================
   会員ページ — FV内ユーザー情報・ログアウト

   page-member.php
   tmpl_page_fv 内に配置
   ============================================= */

.member_fv_user{ display: flex; align-items: center; gap: 20px; margin-top: 30px;}
.member_fv_name{ font-size: 0.85rem; color: #3C7571; font-weight: 500;}
.member_fv_logout{ display: inline-block; font-size: 0.7rem; color: #fff; background: #3C7571; padding: 0.4em 1.25em; border-radius: 6px; text-decoration: none; transition: 0.3s;}
.member_fv_logout:hover{ opacity: 0.7;}
@media screen and (max-width:768px){
.member_fv_user{ margin-top: 5%; gap: 3.75vw;}
.member_fv_name{ font-size: 0.8rem;}
.member_fv_logout{ font-size: 0.65rem;}
}



/* =============================================
   会員ログインフォーム

   page-member.php — 未ログイン時
   既存の tmpl_form スタイルを継承
   ============================================= */

.member_login_wrap{ max-width: 580px; margin: 0 auto;}

.member_login_box{ background: #fff; padding: 50px 60px; border-radius: 20px;}

.member_login_error{ background: #fef2f2; border-left: 3px solid #dc2626; padding: 12px 16px; margin-bottom: 30px; font-size: 0.75rem; color: #991b1b; border-radius: 6px;}

.member_login_form table{ width: 100%;}
.member_login_form table th{ display: flex; align-items: center; width: 100%; font-size: 1rem; font-weight: 500; margin-bottom: 10px;}
.member_login_form table th span{ display: flex; align-items: center; justify-content: center; font-size: 0.7rem; font-weight: 500; padding: 0.125em 0.5em; background: #B8847F; color: #fff; border-radius: 2em; margin-left: 1em;}
.member_login_form table td{ display: block; width: 100%; margin-bottom: 30px;}
.member_login_form table tr:last-child td{ margin-bottom: 0;}

.member_login_form input:focus,
.member_login_form input.is-active{ border: 2px solid #3C7571; background: #fff;}

.member_login_check{ display: flex; align-items: center; justify-content: center; margin-top: 20px;}
.member_login_check label{ display: flex; align-items: center; gap: 8px; font-size: 0.8rem; color: #4F3C34; cursor: pointer;}
.member_login_check input[type="checkbox"]{ width: auto; padding: 0; transform: scale(1.5); accent-color: #B8847F;}

.member_login_box .tmpl_submit_btn{ margin-top: 30px;}
.member_login_box .tmpl_submit_btn button{ display: flex; align-items: center; justify-content: center; margin: auto; width: 300px; height: 60px; border-radius: 10px; background: #C9C9C9; color: #fff; font-size: 1rem; font-weight: bold; cursor: default; transition: 0.3s;}
.member_login_box .tmpl_submit_btn button.is-active{ background: #3B7571; cursor: pointer;}
.member_login_box .tmpl_submit_btn button.is-active:hover{ opacity: 0.7;}

.member_login_links{ margin-top: 24px; text-align: center;}
.member_login_links a{ font-size: 0.75rem; color: #8B7B73; text-decoration: underline;}
.member_login_links a:hover{ text-decoration: none;}

.member_login_info{ margin-top: 40px; padding: 30px; background: #F5ECE8; border-radius: 16px; text-align: center;}
.member_login_info p{ font-size: 0.85rem; color: #4F3C34; line-height: 1.8;}
.member_login_info .tmpl_btn_primary{ margin-top: 20px;}

/* --- パスワードリセット --- */
.pw_reset_lead{ font-size: 0.85rem; color: #4F3C34; line-height: 2; margin-bottom: 30px;}
.pw_reset_done{ text-align: center; padding: 20px 0;}
.pw_reset_done_icon{ font-size: 2.5rem; margin-bottom: 16px; color: #3C7571;}
.pw_reset_done_text{ font-size: 0.9rem; color: #4F3C34; line-height: 2; margin-bottom: 24px;}
.pw_reset_done .tmpl_btn_primary{ margin-top: 0;}
.pw_reset_note{ font-size: 0.75rem; color: #8B7B73; margin-top: 16px;}
.pw_reset_retry{ text-align: center; padding: 20px 0;}
.pw_reset_retry p{ font-size: 0.85rem; color: #4F3C34; margin-bottom: 20px;}

@media screen and (max-width:768px){
.member_login_box{ padding: 7.5% 5%; border-radius: 3.75vw;}
.member_login_form table th{ font-size: 0.9rem;}
.member_login_check label{ font-size: 0.75rem;}
.member_login_box .tmpl_submit_btn button{ width: 66.66vw; height: 12.5vw; border-radius: 1.875vw; font-size: 0.9rem;}
.member_login_info{ padding: 5%; border-radius: 3.75vw; margin-top: 7.5%;}
.member_login_info p{ font-size: 0.8rem;}
}



/* =============================================
   会員ダッシュボード — メニューカード

   page-member.php — ログイン済み時
   ============================================= */

.member_menu{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 50px;}

.member_menu_item{ background: #fff; padding: 40px 24px; text-align: center; border-radius: 16px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05); transition: 0.3s;}
.member_menu_item:hover{ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);}
.member_menu_item--instructor{ border-top: 3px solid #3C7571;}

.member_menu_title{ font-size: 1.1rem; font-weight: 700; color: #3C7571; margin-bottom: 12px;}
.member_menu_text{ font-size: 0.8rem; color: #8B7B73; line-height: 1.8;}

.member_menu_item .tmpl_btn_primary{ margin-top: 20px;}
.member_menu_item .tmpl_btn_primary a{ font-size: 0.8rem; padding: 0.5em 1em;}

@media screen and (max-width:768px){
.member_menu{ grid-template-columns: 1fr; gap: 3.75vw; margin-top: 7.5%;}
.member_menu_item{ padding: 7.5% 5%; border-radius: 3.75vw;}
.member_menu_title{ font-size: 1rem;}
.member_menu_text{ font-size: 0.75rem;}
}



/* =============================================
   プロフィール編集ページ

   page-profile.php
   既存の tmpl_form デザインを継承
   ============================================= */

.member_profile_wrap{ max-width: 700px; margin: 0 auto;}

/* 完了・エラーメッセージ */
.member_profile_success{ background: #ecfdf5; border-left: 3px solid #059669; padding: 16px 20px; margin-bottom: 30px; font-size: 0.85rem; color: #065f46; border-radius: 6px;}
.member_profile_error{ background: #fef2f2; border-left: 3px solid #dc2626; padding: 16px 20px; margin-bottom: 30px; font-size: 0.85rem; color: #991b1b; border-radius: 6px;}

/* 名前（表示のみ） */
.member_profile_readonly{ font-size: 1rem; font-weight: 500; color: #4F3C34; padding: 1rem 1em; background: #F5F5F5; border-radius: 10px;}

.member_profile_wrap input:focus,
.member_profile_wrap input.is-active{ border: 2px solid #3C7571; background: #fff;}

/* 注意書き */
.member_profile_note{ font-size: 0.75rem; color: #8B7B73; text-align: center; margin-top: 20px;}

/* 戻るボタン */
.member_profile_back{ margin-top: 30px;}
.member_profile_back .tmpl_btn_secondary{ margin-top: 0;}

@media screen and (max-width:768px){
.member_profile_readonly{ font-size: 0.9rem; padding: 0.75em 1em;}
.member_profile_note{ font-size: 0.7rem;}
}



/* =============================================
   会員ナビリンク

   page-member.php — ログイン後の共通ナビ
   ============================================= */

.member_nav{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 40px; padding-bottom: 20px; border-bottom: 1px solid #E2BFB6;}
.member_nav_item{ display: inline-block; padding: 8px 20px; font-size: 0.75rem; font-weight: 500; color: #4F3C34; background: #F5ECE8; border-radius: 6px; text-decoration: none; transition: 0.3s;}
.member_nav_item:hover{ background: #E6C8BE;}
.member_nav_active{ background: #3C7571; color: #fff;}
.member_nav_active:hover{ background: #3C7571;}
@media screen and (max-width:768px){
.member_nav{ gap: 2vw; margin-bottom: 7.5%; padding-bottom: 3.75%;}
.member_nav_item{ font-size: 0.7rem; padding: 1.5vw 3.75vw;}
}



/* =============================================
   学習者カルテ — プロフィールカード

   page-member.php — 学習者ログイン時
   ============================================= */

.karte_profile{ display: flex; align-items: flex-start; gap: 24px; padding: 30px; background: #fff; border-radius: 16px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05); margin-bottom: 40px;}

.karte_profile_photo{ flex-shrink: 0;}
.karte_profile_initial{ width: 72px; height: 72px; background: #B8847F; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; font-weight: 700;}

.karte_profile_name{ font-size: 1.2rem; font-weight: 700; color: #3C7571; margin-bottom: 12px;}
.karte_profile_name span{ font-size: 0.85rem; font-weight: 400; color: #8B7B73; margin-left: 4px;}

.karte_profile_meta{ display: flex; flex-wrap: wrap; gap: 16px; align-items: center;}
.karte_meta_item{ font-size: 0.75rem; color: #4F3C34;}
.karte_meta_label{ display: inline-block; background: #F5ECE8; padding: 2px 8px; border-radius: 4px; margin-right: 6px; font-size: 0.65rem; color: #8B7B73;}
.karte_plan_tag{ display: inline-block; background: #3C7571; color: #fff; padding: 3px 12px; border-radius: 4px; font-size: 0.65rem; font-weight: 500;}

@media screen and (max-width:768px){
.karte_profile{ flex-direction: column; align-items: center; text-align: center; padding: 7.5% 5%; border-radius: 3.75vw; margin-bottom: 7.5%;}
.karte_profile_initial{ width: 15vw; height: 15vw; font-size: 1.2rem;}
.karte_profile_meta{ justify-content: center;}
}



/* =============================================
   学習者カルテ — 授業記録テーブル

   page-member.php — karte CPT データ表示
   ============================================= */

.karte_records{ margin-top: 20px;}
.karte_records_title{ font-size: 1.1rem; color: #3C7571; margin-bottom: 20px; font-weight: 700;}
.karte_records_count{ font-size: 0.7rem; color: #8B7B73; font-weight: 400; margin-left: 10px;}

.karte_table_scroll{ overflow-x: auto; -webkit-overflow-scrolling: touch;}

.karte_table{ width: 100%; border-collapse: collapse; font-size: 0.8rem; min-width: 700px;}
.karte_table thead{ background: #F5ECE8;}
.karte_table th{ padding: 12px 10px; font-size: 0.7rem; font-weight: 500; color: #4F3C34; text-align: left; white-space: nowrap;}
.karte_table td{ padding: 14px 10px; border-bottom: 1px solid #E2BFB6; vertical-align: top; color: #4F3C34;}

.karte_cell_date{ font-family: "Jost", sans-serif; font-weight: 500; white-space: nowrap; color: #3C7571;}
.karte_cell_teacher{ font-weight: 500; white-space: nowrap;}
.karte_cell_sub{ font-size: 0.7rem; color: #8B7B73;}
.karte_cell_comment{ font-size: 0.75rem; color: #6B5A52; line-height: 1.6;}
.karte_cell_file{ text-align: center;}
.karte_file_link{ color: #3C7571; font-size: 1rem;}
.karte_file_link:hover{ color: #B8847F;}

.karte_badge_locked{ display: inline-block; background: #F5ECE8; color: #8B7B73; font-size: 0.6rem; padding: 2px 8px; border-radius: 3px; margin-bottom: 4px;}

.karte_cell_placeholder{ color: #C4B5AD; font-style: italic; font-size: 0.75rem;}

/* 学習者コメントフォーム */
.karte_comment_form{ display: flex; flex-direction: column; gap: 6px;}
.karte_comment_form textarea{ font-size: 0.75rem; padding: 8px; border: 1px solid #E2BFB6; border-radius: 6px; resize: vertical; font-family: inherit; background: #FDFBFA; min-height: 50px;}
.karte_comment_form textarea:focus{ border-color: #B8847F; outline: none;}
.karte_comment_save{ display: inline-block; align-self: flex-end; background: #3C7571; color: #fff; border: none; padding: 4px 16px; border-radius: 4px; font-size: 0.65rem; font-family: inherit; cursor: pointer; transition: 0.3s; width: auto;}
.karte_comment_save:hover{ opacity: 0.7;}

.karte_empty{ font-size: 0.85rem; color: #8B7B73; text-align: center; padding: 40px 0;}

@media screen and (max-width:768px){
.karte_records_title{ font-size: 1rem;}
.karte_table{ font-size: 0.75rem;}
.karte_table th{ font-size: 0.65rem; padding: 8px 6px;}
.karte_table td{ padding: 10px 6px;}
}



/* =============================================
   講師ダッシュボード — サマリー・受講者リスト

   page-member.php — 講師ログイン時
   ============================================= */

/* --- サマリーカード --- */
.instructor_summary{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 40px;}
.instructor_summary_item{ background: #fff; padding: 24px; border-radius: 12px; text-align: center; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);}
.instructor_summary_warn{ border-top: 3px solid #B8847F;}
.instructor_summary_num{ display: block; font-size: 2rem; font-weight: 700; color: #3C7571; font-family: "Jost", sans-serif; line-height: 1.2;}
.instructor_summary_warn .instructor_summary_num{ color: #B8847F;}
.instructor_summary_label{ display: block; font-size: 0.7rem; color: #8B7B73; margin-top: 4px;}

/* --- セクションタイトル --- */
.instructor_section_title{ font-size: 1rem; color: #3C7571; font-weight: 700; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 1px solid #E2BFB6;}

/* --- 受講者リスト --- */
.instructor_students{ margin-top: 30px;}
.instructor_student_list{ display: flex; flex-direction: column; gap: 0;}
.instructor_student_row{ display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid #F5ECE8; cursor: pointer; transition: 0.3s;}
.instructor_student_row:hover{ background: #FDFBFA;}
.instructor_student_avatar{ width: 40px; height: 40px; background: #3C7571; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.85rem; font-weight: 700; flex-shrink: 0;}
.instructor_student_info{ flex: 1;}
.instructor_student_name{ font-size: 0.85rem; font-weight: 500; color: #4F3C34;}
.instructor_student_sub{ font-size: 0.65rem; color: #8B7B73; margin-top: 2px;}

.instructor_student_badge{ display: inline-block; padding: 3px 10px; border-radius: 4px; font-size: 0.6rem; font-weight: 500;}
.instructor_badge_pending{ background: #FEF2F2; color: #B8847F;}
.instructor_badge_done{ background: #ECFDF5; color: #059669;}
.instructor_badge_new{ background: #E6F1FB; color: #185FA5;}

@media screen and (max-width:768px){
.instructor_summary{ grid-template-columns: repeat(3, 1fr); gap: 2.5vw;}
.instructor_summary_item{ padding: 5% 3.75%; border-radius: 3.75vw;}
.instructor_summary_num{ font-size: 1.5rem;}
.instructor_summary_label{ font-size: 0.65rem;}
.instructor_student_row{ padding: 3.75% 0;}
}



/* =============================================
   動画教材一覧

   archive-video.php — セクション別リスト表示
   ============================================= */

/* --- セクションブロック --- */
.video_section_block{ margin-bottom: 50px;}
.video_section_block:last-child{ margin-bottom: 0;}

.video_section_header{ display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 2px solid #3C7571;}
.video_section_title{ font-size: 1.1rem; font-weight: 700; color: #3C7571;}
.video_section_desc{ font-size: 0.7rem; color: #8B7B73;}
.video_section_progress{ margin-left: auto; font-size: 0.7rem; color: #B8847F; font-weight: 500; font-family: "Jost", sans-serif;}

/* --- 動画リスト --- */
.video_list{ list-style: none; padding: 0; margin: 0;}
.video_list_item{ border-bottom: 1px solid #F5ECE8;}
.video_list_item:last-child{ border-bottom: none;}

.video_list_link{ display: flex; align-items: center; gap: 12px; padding: 14px 8px; text-decoration: none; color: #4F3C34; transition: 0.3s;}
.video_list_link:hover{ background: #FDFBFA;}

.video_list_status{ flex-shrink: 0; width: 24px; height: 24px; border: 2px solid #E2BFB6; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.7rem; color: transparent; transition: 0.3s;}
.video_list_status.is-watched{ background: #3C7571; border-color: #3C7571; color: #fff;}

.video_list_title{ flex: 1; font-size: 0.85rem; font-weight: 500;}
.video_list_done .video_list_title{ color: #8B7B73;}

.video_list_duration{ flex-shrink: 0; font-size: 0.7rem; color: #8B7B73; font-family: "Jost", sans-serif; min-width: 40px; text-align: right;}

/* 動画未設定（準備中） */
.video_list_novideo{ opacity: 0.5;}
.video_list_disabled{ cursor: default;}
.video_list_disabled:hover{ background: transparent;}
.video_list_badge_soon{ flex-shrink: 0; display: inline-block; background: #F5ECE8; color: #8B7B73; font-size: 0.6rem; padding: 2px 8px; border-radius: 3px;}

/* --- 戻るリンク --- */
.video_back_link{ margin-top: 50px;}
.video_back_link .tmpl_btn_secondary{ margin-top: 0;}

@media screen and (max-width:768px){
.video_section_header{ gap: 2vw; margin-bottom: 3.75vw; padding-bottom: 2.5vw;}
.video_section_title{ font-size: 1rem;}
.video_section_block{ margin-bottom: 7.5%;}
.video_list_link{ padding: 3.75vw 2vw; gap: 2.5vw;}
.video_list_title{ font-size: 0.8rem;}
.video_back_link{ margin-top: 7.5%;}
}



/* =============================================
   事前登録ページ

   page-before-apply.php — 決済説明 + 動画一覧
   ============================================= */

/* --- 説明コンテンツ --- */
.before_apply_content{ max-width: 800px; margin: 0 auto;}
.before_apply_section{ margin-bottom: 36px;}
.before_apply_section:last-child{ margin-bottom: 0;}
.before_apply_section p{ font-size: 0.85rem; line-height: 2;}

.before_apply_h3{ font-size: 1.05rem; font-weight: 700; color: #3C7571; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 2px solid #3C7571;}

.before_apply_item{ display: flex; gap: 10px; margin-bottom: 16px;}
.before_apply_item:last-child{ margin-bottom: 0;}
.before_apply_num{ flex-shrink: 0; color: #B8847F; font-weight: 700; font-size: 0.9rem; line-height: 2;}
.before_apply_item p{ font-size: 0.85rem; line-height: 2; margin: 0;}

.before_apply_highlight{ background: #FEF9F8; border-left: 4px solid #B8847F; padding: 20px 24px; border-radius: 0 8px 8px 0;}
.before_apply_highlight p{ font-size: 0.85rem; font-weight: 500; line-height: 2; margin: 0;}

/* before-apply ページの入会ボタン：センター寄せ */
.page-before-apply .tmpl_btn_primary,
.page-id-before-apply .tmpl_btn_primary { justify-content: center; }
.page-before-apply .tmpl_btn_primary a,
.page-id-before-apply .tmpl_btn_primary a { margin: 0; }

/* --- 凡例 --- */
.before_apply_legend{ display: flex; gap: 20px; justify-content: center; margin-bottom: 36px;}
.before_apply_legend_item{ display: inline-flex; align-items: center; gap: 6px; font-size: 0.75rem; color: #4F3C34;}
.before_apply_legend_item::before{ content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 50%;}
.before_apply_legend_ok::before{ background: #3C7571;}
.before_apply_legend_soon::before{ background: #D5C8C3;}

/* --- セクションブロック --- */
.before_apply_video_section{ margin-bottom: 50px;}
.before_apply_video_section:last-child{ margin-bottom: 0;}

.before_apply_video_header{ display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 2px solid #3C7571;}
.before_apply_video_title{ font-size: 1.1rem; font-weight: 700; color: #3C7571;}
.before_apply_video_desc{ font-size: 0.7rem; color: #8B7B73;}
.before_apply_video_count{ margin-left: auto; font-size: 0.7rem; color: #B8847F; font-weight: 500; font-family: "Jost", sans-serif;}

/* --- 動画リスト --- */
.before_apply_video_list{ list-style: none; padding: 0; margin: 0;}
.before_apply_video_item{ display: flex; align-items: center; gap: 12px; padding: 14px 8px; border-bottom: 1px solid #F5ECE8; color: #4F3C34;}
.before_apply_video_item:last-child{ border-bottom: none;}

.before_apply_video_status{ flex-shrink: 0; font-size: 0.6rem; width: 24px; text-align: center;}
.before_apply_video_item.is_published .before_apply_video_status{ color: #3C7571;}
.before_apply_video_item.is_soon .before_apply_video_status{ color: #D5C8C3;}
.before_apply_video_item.is_soon{ opacity: 0.5;}

.before_apply_video_name{ flex: 1; font-size: 0.85rem; font-weight: 500;}
.before_apply_video_dur{ flex-shrink: 0; font-size: 0.7rem; color: #8B7B73; font-family: "Jost", sans-serif; min-width: 40px; text-align: right;}

@media screen and (max-width:768px){
.before_apply_content{ max-width: 100%;}
.before_apply_h3{ font-size: 1rem;}
.before_apply_highlight{ padding: 16px 18px;}
.before_apply_video_section{ margin-bottom: 7.5%;}
.before_apply_video_header{ gap: 2vw; margin-bottom: 3.75vw; padding-bottom: 2.5vw;}
.before_apply_video_title{ font-size: 1rem;}
.before_apply_video_item{ padding: 3.75vw 2vw; gap: 2.5vw;}
.before_apply_video_name{ font-size: 0.8rem;}
}



/* =============================================
   動画詳細ページ

   single-video.php — Vimeo + 概要 + 教材
   ============================================= */

/* --- Vimeoプレーヤー（16:9レスポンシブ） --- */
.video_player{ margin-bottom: 30px;}
.video_player_wrap{ position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 12px; background: #000;}
.video_player_wrap iframe{ position: absolute; top: 0; left: 0; width: 100%; height: 100%;}

/* --- メタ情報 --- */
.video_detail_meta{ display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 20px;}
.video_detail_section{ display: inline-block; background: #3C7571; color: #fff; padding: 3px 12px; border-radius: 4px; font-size: 0.7rem; font-weight: 500;}
.video_detail_duration{ font-size: 0.75rem; color: #8B7B73; font-family: "Jost", sans-serif; display: flex; align-items: center;}
.video_detail_instructor{ font-size: 0.75rem; color: #4F3C34; display: flex; align-items: center;}

/* --- 視聴ステータス（詳細ページ・自己申告） --- */
.video_watched_area{ margin-bottom: 30px; padding: 24px; border-radius: 12px; text-align: center;}

.video_watched_todo{ background: #FDF6EC; border: 2px dashed #E2BFB6; border-radius: 12px; padding: 24px;}
.video_watched_prompt{ font-size: 0.8rem; color: #8B7B73; margin-bottom: 16px;}
.video_watched_complete{ display: inline-block; background: #3C7571; color: #fff; border: none; padding: 14px 40px; border-radius: 8px; font-size: 0.9rem; font-weight: 700; font-family: inherit; cursor: pointer; transition: 0.3s; width: auto; letter-spacing: 0.04em;}
.video_watched_complete:hover{ opacity: 0.8;}

.video_watched_done{ background: #ECFDF5; border: 2px solid #059669; border-radius: 12px; padding: 24px; display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap;}
.video_watched_check{ display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: #059669; color: #fff; border-radius: 50%; font-size: 1.2rem; font-weight: 700; flex-shrink: 0;}
.video_watched_label{ font-size: 0.9rem; font-weight: 700; color: #065f46;}
.video_watched_undo{ background: none; border: none; color: #8B7B73; font-size: 0.7rem; font-family: inherit; cursor: pointer; text-decoration: underline; padding: 0; width: auto; margin-left: 8px;}
.video_watched_undo:hover{ color: #B8847F;}

@media screen and (max-width:768px){
.video_watched_todo,
.video_watched_done{ padding: 5%; border-radius: 3.75vw;}
.video_watched_complete{ padding: 3.75vw 7.5vw; font-size: 0.85rem;}
.video_watched_done{ flex-direction: column; gap: 2.5vw;}
}

/* --- 概要 --- */
.video_detail_overview{ margin-bottom: 40px;}
.video_detail_h2{ font-size: 1rem; color: #3C7571; font-weight: 700; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 1px solid #E2BFB6;}
.video_detail_body{ font-size: 0.85rem; color: #4F3C34; line-height: 1.8;}
.video_detail_body p{ margin-bottom: 1em;}
.video_detail_body p:last-child{ margin-bottom: 0;}

/* --- 教材ダウンロード --- */
.video_detail_materials{ margin-bottom: 40px;}
.video_material_list{ list-style: none; padding: 0; margin: 0;}
.video_material_item{ border-bottom: 1px solid #F5ECE8;}
.video_material_link{ display: flex; align-items: center; gap: 12px; padding: 14px 8px; text-decoration: none; color: #4F3C34; transition: 0.3s;}
.video_material_link:hover{ background: #FDFBFA; color: #3C7571;}
.video_material_link i{ font-size: 1.2rem; color: #3C7571; flex-shrink: 0;}
.video_material_link span{ flex: 1; font-size: 0.85rem; font-weight: 500;}
.video_material_link small{ font-size: 0.65rem; color: #8B7B73; flex-shrink: 0;}

/* --- 前後ナビ --- */
.video_detail_nav{ display: flex; justify-content: space-between; gap: 20px; margin-bottom: 30px; padding-top: 20px; border-top: 1px solid #E2BFB6;}
.video_nav_prev,
.video_nav_next{ font-size: 0.75rem; color: #3C7571; text-decoration: none; transition: 0.3s; max-width: 45%;}
.video_nav_prev:hover,
.video_nav_next:hover{ color: #B8847F;}
.video_nav_next{ text-align: right; margin-left: auto;}

@media screen and (max-width:768px){
.video_player_wrap{ border-radius: 3.75vw;}
.video_detail_meta{ gap: 2vw;}
.video_detail_overview,
.video_detail_materials{ margin-bottom: 7.5%;}
.video_detail_nav{ flex-direction: column; gap: 3.75vw;}
.video_nav_prev,
.video_nav_next{ max-width: 100%; text-align: left;}
}



/* =============================================
   コラム — 会員限定

   archive-column.php — タブ・バッジ
   single-column.php — プレビュー・入会CTA
   ============================================= */

/* --- カテゴリナビの「会員限定」タブ --- */
.column_cat_member{ background: #B8847F !important; color: #fff !important; padding: 2px 10px; border-radius: 4px;}
.tmpl_column_cat_nav ul li.active .column_cat_member{ background: #9A6B66 !important;}

/* --- 記事ヘッダーの「会員限定」バッジ --- */
.column_member_badge{ display: inline-block; background: #B8847F; color: #fff; padding: 3px 10px; border-radius: 4px; font-size: 0.65rem; font-weight: 500; margin-left: 8px;}

/* --- 一覧サムネイル上の「会員限定」バッジ --- */
.tmpl_column_media{ position: relative;}
.column_member_badge_thumb{ position: absolute; top: 10px; left: 10px; background: rgba(184, 132, 127, 0.9); color: #fff; padding: 3px 10px; border-radius: 4px; font-size: 0.6rem; font-weight: 500; z-index: 1;}

/* --- 記事プレビュー（フェードアウト） --- */
.column_preview{ position: relative; max-height: 9999px; overflow: hidden;}

/* --- 入会促進エリア --- */
.column_member_wall{ position: relative; margin-top: 0; padding-top: 0;}
.column_member_fade{ height: 0; background: none; position: absolute; top: 0; left: 0; right: 0; pointer-events: none;}

.column_member_cta{ background: #F5ECE8; border-radius: 20px; padding: 50px 40px; text-align: center;}
.column_member_cta_title{ font-size: 1.2rem; font-weight: 700; color: #3C7571; margin-bottom: 16px;}
.column_member_cta_text{ font-size: 0.85rem; color: #4F3C34; line-height: 1.8; margin-bottom: 30px;}

.column_member_cta_btns{ display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap;}
.column_member_cta_btns .tmpl_btn_primary,
.column_member_cta_btns .tmpl_btn_secondary{ margin-top: 0;}

@media screen and (max-width:768px){
.column_preview{ max-height: 9999px;}
.column_member_cta{ padding: 7.5% 5%; border-radius: 3.75vw;}
.column_member_cta_title{ font-size: 1rem;}
.column_member_cta_text{ font-size: 0.8rem;}
.column_member_cta_btns{ flex-direction: column; gap: 3.75vw;}
.column_member_badge_thumb{ top: 2vw; left: 2vw; font-size: 0.55rem; padding: 2px 6px;}
}



/* =============================================
   お申込前に必ずお読みください

   page-before-apply.php
   ============================================= */

/* --- 注意事項コンテンツ --- */
.ba_content{ max-width: 800px; margin: 0 auto;}

.ba_h3{ font-size: 1.1rem; font-weight: 700; color: #3C7571; margin-top: 48px !important; margin-bottom: 20px; padding-left: 16px; border-left: 4px solid #3C7571;}

/* 番号付きリスト */
.ba_ol{ list-style: none; counter-reset: ba-counter; padding: 0; margin: 0 0 40px 0;}
.ba_ol li{ counter-increment: ba-counter; display: flex; gap: 12px; margin-bottom: 20px; line-height: 1.8; font-size: 0.85rem; color: #4F3C34;}
.ba_ol li:last-child{ margin-bottom: 0;}
.ba_ol li::before{ content: counter(ba-counter); flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; background: #3C7571; color: #fff; border-radius: 50%; font-size: 0.75rem; font-weight: 700; line-height: 1; margin-top: 2px;}

/* ハイライトボックス */
.ba_highlight{ background: #FDF6EC; border: 2px solid #DFA229; border-radius: 12px; padding: 24px 30px !important; margin-top: 40px;}
.ba_highlight p{ font-weight: 500; color: #856404; font-size: 0.85rem; line-height: 1.8;}

/* チケットリスト（ulリスト）フォントサイズ上書き */
.ba_content .wp-block-list li{ font-size: 1rem !important; line-height: 1.9; margin-bottom: 6px; color: #4F3C34;}

@media screen and (max-width:768px){
.ba_h3{ font-size: 1rem; padding-left: 12px;}
.ba_ol li{ gap: 2.5vw; font-size: 0.8rem;}
.ba_ol li::before{ width: 6vw; height: 6vw; font-size: 0.7rem;}
.ba_highlight{ padding: 5%; border-radius: 3.75vw;}
}

/* --- 凡例 --- */
.vlist_legend{ display: flex; gap: 20px; margin-bottom: 24px; justify-content: center;}
.vlist_legend_item{ font-size: 0.75rem; display: flex; align-items: center; gap: 6px;}
.vlist_legend_ok::before{ content: "●"; color: #3C7571; font-size: 0.6rem;}
.vlist_legend_soon::before{ content: "○"; color: #C4B5AD; font-size: 0.6rem;}

/* --- アコーディオン --- */
.vlist_accordion{ display: flex; flex-direction: column; gap: 0;}
.vlist_section{ border-bottom: 1px solid #E2BFB6;}
.vlist_section:first-child{ border-top: 1px solid #E2BFB6;}
.vlist_section[open] .vlist_arrow{ transform: rotate(90deg);}

.vlist_header{ display: flex; align-items: center; gap: 12px; padding: 18px 8px; cursor: pointer; list-style: none; user-select: none; transition: 0.2s;}
.vlist_header:hover{ background: rgba(60, 117, 113, 0.04);}
.vlist_header::-webkit-details-marker{ display: none;}

.vlist_title{ font-size: 0.95rem; font-weight: 700; color: #3C7571; flex-shrink: 0;}
.vlist_meta{ flex: 1; display: flex; align-items: center; gap: 12px; justify-content: flex-end;}
.vlist_desc{ font-size: 0.65rem; color: #8B7B73;}
.vlist_count{ font-size: 0.7rem; color: #B8847F; font-weight: 500; font-family: "Jost", sans-serif; flex-shrink: 0;}
.vlist_arrow{ flex-shrink: 0; width: 8px; height: 8px; border-right: 2px solid #8B7B73; border-bottom: 2px solid #8B7B73; transform: rotate(0deg); transition: transform 0.2s;}

/* --- リスト --- */
.vlist_items{ list-style: none; padding: 0 0 12px 0; margin: 0;}
.vlist_item{ display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 20px; font-size: 0.8rem; color: #4F3C34;}
.vlist_item.vlist_soon{ opacity: 0.45;}
.vlist_status{ flex-shrink: 0; font-size: 0.5rem; width: 16px; text-align: center;}
.vlist_ok .vlist_status{ color: #3C7571;}
.vlist_soon .vlist_status{ color: #C4B5AD;}
.vlist_name{ flex: 1; font-weight: 400;}
.vlist_dur{ flex-shrink: 0; font-size: 0.65rem; color: #8B7B73; font-family: "Jost", sans-serif; min-width: 36px; text-align: right;}

@media screen and (max-width:768px){
.vlist_header{ padding: 3.75vw 2vw; gap: 2vw;}
.vlist_title{ font-size: 0.85rem;}
.vlist_meta{ gap: 2vw;}
.vlist_desc{ display: none;}
.vlist_item{ font-size: 0.75rem; padding: 2vw 2vw 2vw 5vw; gap: 2vw;}
}
