@charset "utf-8";
/* CSS Document */


/*===============================

    base

================================*/
/* base */
.container_main{
  color: #333;
  font: 400 15px "Helvetica Neue", "Noto Sans JP", "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", Arial, メイリオ, Meiryo, sans-serif;
  line-height: 1.6;
  letter-spacing: .1em;
  text-align: left;
}

/* 既存CSSより */
#base { width: 1220px; }
div#cont { margin: 0; }
.wrapper_main {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  margin: 20px auto 0;
  width: 100%;
}
.header { margin: 20px 0; }
.container_main {
  position: relative;
  width: 970px;
}
@media screen and (max-width:768px) {
  #base { width: 100%; }
  .container_main { width: 100%; }
}
.sideNav { width: 200px; }
@media screen and (max-width:768px) {
  .sideNav { display: none; }
}

/*===============================

    layout

================================*/
/* 節 */
.l_section{}
.l_section__item{}
.l_section--primary > .l_section__item + .l_section__item{
  margin-top: 80px;
}
.l_section--secondary > .l_section__item + .l_section__item{
  margin-top: 40px;
}
/* グリッド */
.l_grid{
  display: flex;
  aling-items: stretch;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin: -15px;
}
.l_grid__item{
  display: flex;
  padding: 15px;
}
.l_grid__inner{
  display: block;
  width: 100%;
}
/*===============================

    module

================================*/
/* 見出し */
.m_heading{}
.m_heading__ttl{
  line-height: 1.4;
  font-weight: bold;
}
.m_heading--primary{
  margin-bottom: 20px;
  padding-bottom: 6px;
  border-bottom: 3px solid #A11F24;
}
.m_heading--primary .m_heading__ttl{
  position: relative;
  font-size: 24px;
  padding-left: 130px;
}
.m_heading--primary .m_heading__ttl::before{
  content: url("../../img/dougahyakkaten/special-1000contents/ico_heading.png");
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  line-height: 0;
}
@media screen and (max-width: 768px){
  .m_heading--primary .m_heading__ttl{
    font-size: 20px;
  }
}
@media screen and (max-width: 599px){
  .m_heading--primary .m_heading__ttl{
    padding-left: 0;
    font-size: 18px;
  }
  .m_heading--primary .m_heading__ttl::before{
    position: static;
    margin-bottom: 15px;
    text-align: center;
  }
}
/* ボタンのラッパー */
.m_btnWrap{}
.m_btnWrap__lead{
  display: flex;
  align-items: center;
  justify-content: center;
  color: #A11F24;
  font-weight: bold;
  font-size: 20px;
}
.m_btnWrap__lead::before,
.m_btnWrap__lead::after{
  content: "";
  display: block;
  width: 2px;
  height: 1em;
  background: #A11F24;
}
.m_btnWrap__lead::before{
  margin-right: 15px;
  transform: rotate(-20deg);
}
.m_btnWrap__lead::after{
  margin-left: 15px;
  transform: rotate(20deg);
}
.m_btnWrap__lead + .m_btnWrap__body {
  margin-top: 16px;
}
.m_btnWrap__body{
  display: flex;
  justify-content: center;
}
/* ボタン */
.m_btn{
  display: flex;
  align-items: stretch;
}
.m_btn::before{
  content: "";
  width: 0;
  display: block;
}
.m_btn__target{
  display: flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  transition: .3s opacity;
}
.m_btn__target:hover{
  opacity: .7;
}
.m_btn--cta{}
.m_btn--cta::before{
  height: 72px;
}
.m_btn--cta .m_btn__target{
  width: 100%;
  max-width: 520px; 
  border-radius: 9px;
  background: #A11F24;
  color: #fff;
  font-size: 15px;
  font-weight: bold;
}
/* アイコン(追加分) */
.m_hasIco--dot{
  padding-left: 1em;
}
.m_hasIco--dot::before{
  content: "・";
}
.m_hasIco--anotherLink{
  padding-right: 24px;
}
.m_hasIco--anotherLink::after{
  content: "\f08e";
  font-family: FontAwesome;
}
/* リンクボックス */
.m_linkBox{
  display: flex;
}
.m_linkBox--right{
  justify-content: flex-end;
}
/* リンク */
.m_link{
  color: #00087D;
  text-decoration: underline;
}
.m_link:hover{
  opacity: .7;
}
.m_link--hasIco{
  position: relative;
  display: block;
  padding-right: 20px;
}
.m_link--hasIco::before{
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  display: block;
  width: 8px;
  height: 8px;
  margin: auto 0;
  border-right: 2px solid;
  border-top: 2px solid;
  transform: rotate(45deg); 
}

/* 脚注 */
.m_footnote{
  position: relative;
  padding-left: 1em;
  font-size: 13px;
}
.m_footnote::before{
  content: "※";
  position: absolute;
  left: 0;
}

/* Lead */
.m_lead {
  padding-bottom: 74px;
  background: url("../../img/dougahyakkaten/special-1000contents/img_ribbon.png") no-repeat center bottom;
  line-height: 2.2;
  font-weight: bold;
  text-align: center;
  font-size: 18px;
  font-family: 'Noto Serif JP', serif;
}
@media screen and (max-width: 768px){
  .m_lead {
    line-height: 1.8;
    text-align: left;
    font-size: 15px;
  }
  .m_lead br{
    display: none;
  }
}
/* 詳細の表 */
.m_detailsTable{
  border: 1px solid #C5C5C5;
}
.m_detailsTable__item{
  display: flex;
  align-items: stretch;
}
.m_detailsTable__item + .m_detailsTable__item{
  border-top: 1px solid #C5C5C5;
}
.m_detailsTable__heading{
  flex: 0 0 185px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px;
  background: #A11F24;
}
.m_detailsTable__ttl{
  color: #fff;
  font-weight: bold;
  font-size: 15px;
}
.m_detailsTable__body{
  flex: 1 1 auto;
  padding: 18px;
}
.m_detailsTable__msg + .m_detailsTable__msg{
  margin-top: 5px;
}
.m_detailsTable__msg--date{
  font-weight: bold;
  font-size: 20px;
}
@media screen and (max-width: 768px){
  .m_detailsTable__item{
    display: block;
  }
  .m_detailsTable__body{
    padding: 15px 10px;
  }
  .m_detailsTable__ttl br{
    display: none;
  }
}



/* Point */
.m_leadPoint{}
.m_leadPoint__lead{
  padding-left: 130px;
}
.m_leadPoint__lead + .m_leadPoint__list{
  margin-top: 15px;
}
.m_leadPoint__list{
  border-top: 2px dashed #a11f24;  
  border-bottom: 2px dashed #a11f24;  
}
.m_leadPoint__item {
  display: flex;
  align-items: flex-start;
  gap: 30px;
  padding: 20px 0;
}
.m_leadPoint__item + .m_leadPoint__item {
  border-top: 2px dashed #a11f24;
}
.m_leadPoint__num {
  flex-shrink: 0;
  display: block;
  padding: 10px 20px;
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 20px;
  font-weight: 900;
  background-color: #a11f24;
}
.m_leadPoint__ttl {
  margin-bottom: 15px;
  color: #A11F24;
  font-size: 20px;
  font-weight: 900;
}
.m_leadPoint__txt {
  font-size: 15px;
}
@media screen and (max-width: 768px) {
  .m_leadPoint__item {
    align-items: start;
    gap: 15px;
  }
  .m_leadPoint__cont {
    -ms-grid-row-align: center;
    align-self: center;
  }
  .m_leadPoint__num {
    padding: 5px 10px;
    font-size: 15px;
  }
  .m_leadPoint__ttl {
    font-size: 15px;
  }
  .m_leadPoint__txt {
    font-size: 15px;
  }
}

/* ヒーローズエリア */
.m_herosArea{
  margin-bottom:  48px;
}
.m_herosArea__keyvisual{
  line-height: 0;
  text-align: center;
}
.m_herosArea__keyvisual img{
  max-width: 100%;
  height: auto;
}
.m_herosArea__keyvisual + .m_herosArea__lead{
  margin-top: 32px;
}
@media screen and (max-width: 599px){
  .m_herosArea{
    margin-bottom: 40px;
  }
}
/* ランキング */
.m_ranking{}
.m_ranking__box {
  padding: 25px 35px;
  border: 2px dashed #a11f24;
  border-radius: 15px;
}
.m_ranking__boxTtl {
  display: flex;
  justify-content: center;
  font-size: 20px;
}
.m_ranking__boxTxt {
  display: flex;
  justify-content: center;
  font-weight: 700;
}
.m_ranking__btns {
  display: flex;
  gap: 10px;
  justify-content: center;
}
.m_ranking__btn {
  width: 100%;
}
.m_ranking__btn a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 45px;
  color: #fff;
  font-size: 18px;
  background-color: #a11f24;
  border-radius: 22px;
  transition: opacity 0.3s;
}
.m_ranking__btn a::after {
  content: "";
  position: absolute;
  display: block;
  width: 10px;
  height: 12px;
  top: 0;
  bottom: 0;
  right: 30px;
  margin: auto;
  background-color: #fff;
  -webkit-clip-path: polygon(100% 50%, 0 100%, 0 0);
  clip-path: polygon(100% 50%, 0 100%, 0 0);
}
.m_ranking__btn a:hover {
  opacity: 0.6;
}

@media screen and (max-width: 768px) {
  .l_grid_contLineup {
    flex-wrap: wrap;
    gap: 20px;
  }

  .m_ranking__box {
    padding: 20px 15px;
    border-radius: 10px;
  }
  .m_ranking__boxTtl {
    font-size: 18px;
  }
  .m_ranking__boxTxt {
    font-weight: 700;
  }
  .m_ranking__btns {
    flex-direction: column;
  }
  .m_ranking__btn {
    max-width: 350px;
    margin: auto;
  }
  .m_ranking__btn a {
    height: 40px;
    font-size: 15px;
  }
}


/* WEBins Flow */
.m_webins_flow_head_ttl {
  display: flex;
  align-items: center;
  gap: 30px;
  padding-bottom: 10px;
  border-bottom: 3px solid #a11f24;
}

.m_webins_flow_head_img {
  width: 183px;
  line-height: 0;
}

.m_webins_flow_head_txt {
  position: relative;
  display: inline-block;
  padding: 10px 20px;
  color: #fff;
  background-color: #a11f24;
}

.m_webins_flow_head_txt::before {
  content: "";
  position: absolute;
  display: block;
  width: 15px;
  height: 20px;
  top: 0;
  bottom: 0;
  left: -12px;
  margin: auto;
  background-color: #a11f24;
  -webkit-clip-path: polygon(100% 100%, 0 50%, 100% 0);
  clip-path: polygon(100% 100%, 0 50%, 100% 0);
}

.m_webins_flow_lst {
  position: relative;
}

.m_webins_flow_lst::before {
  content: "";
  position: absolute;
  display: block;
  width: 6px;
  height: 100%;
  left: 38px;
  background-color: #a11f24;
}

.m_webins_flow_itm {
  position: relative;
  display: flex;
  gap: 30px;
  z-index: 1;
}
.m_webins_flow_itm + .m_webins_flow_itm{
  margin-top: 30px;
  padding-top: 30px;
  border-top: 1px solid;
}
.m_webins_flow_itm_step {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 83px;
  height: 100%;
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  background-color: #a11f24;
  border-radius: 50%;
  aspect-ratio: 1 / 1;
}

.m_webins_flow_itm_cont_ttl {
  margin-bottom: 20px;
  color: #a11f24;
  font-size: 20px;
  font-weight: 700;
}
.m_webins_flow_itm_cont_body{}
.m_webins_flow_itm_cont_item + .m_webins_flow_itm_cont_item{
  margin-top: 40px;
}
.m_webins_flow_itm_cont_subTtl{
  position: relative;
  margin-bottom: 5px;
  padding-left: 1em;
  font-weight: bold;
}
.m_webins_flow_itm_cont_subTtl::before{
  content: "●";
  position: absolute;
  left: 0;
  display: block;
}
.m_webins_flow_itm_cont_txt{}

@media screen and (max-width: 768px) {
  .m_webins_flow_head_ttl {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  .m_webins_flow_head_img {
    width: 80%;
  }

  .m_webins_flow_head_txt {
    position: relative;
    display: block;
    width: 100%;
    text-align: center;
  }

  .m_webins_flow_head_txt::before {
    width: 20px;
    height: 15px;
    top: -12px;
    bottom: auto;
    left: 0;
    right: 0;
    -webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  }

  .m_webins_flow_lst::before {
    width: 3px;
    left: 28px;
  }

  .m_webins_flow_itm {
    gap: 20px;
  }

  .m_webins_flow_itm_step {
    width: 60px;
    font-size: 14px;
  }

  .m_webins_flow_itm_cont_ttl {
    font-size: 18px;
  }
}


/* FAQ */
.m_faq{}
.m_faq__q{
  position: relative;
  margin-bottom: 12px;
  padding: 4px 0 4px 40px;
  color: #a11f24;
  font-weight: bold;
  font-size: 18px;
}
.m_faq__q::before{
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  display: block;
  width: 33px;
  height: 33px;
  margin: auto 0;
  background: url("../../img/dougahyakkaten/about/icon_q.svg") no-repeat center center / contain;
}
.m_faq__a{
  position: relative;
  padding-left: 40px;
}
.m_faq__a::before{
  content: "";
  position: absolute;
  top: 0;
  left: 15px;
  display: block;
  width: 18px;
  height: 24px;
  background: url("../../img/dougahyakkaten/about/icon_a.svg") no-repeat center center / contain;
}
.m_faq__aMsg + .m_faq__aMsg{
  margin-top: 10px;
}

/* QAへのリンク */
.m_qaLink{
  text-align: center;
}
.m_qaLink__ttl{
  position: relative;
  display: inline-block;
  padding: 0 2em;
  font-weight: bold;
  font-size: 20px;
}
.m_qaLink__ttl::before,
.m_qaLink__ttl::after{
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  display: block;
  width: 1.4em;
  height: 2px;
  margin: auto 0;
  border-radius: 100px;
  background: #333;
}
.m_qaLink__ttl::before{
  left: 0;
  transform: rotate(45deg);
}
.m_qaLink__ttl::after{
  right: 0;
  transform: rotate(-45deg);
}
.m_qaLink__ttl + .m_qaLink__bn{
  margin-top: 12px;
}
.m_qaLink__target{
  display: inline-block;
  line-height: 0;
  transition: .3s opacity;
}
.m_qaLink__target:hover{
  opacity: .7;
}
.m_qaLink__target img{
  max-width: 100%;
  height: auto;
}
@media screen and (max-width: 768px){
  .m_qaLink__ttl{
    font-size: 18px;
  }
}
@media screen and (max-width: 599px){
  .m_qaLink__ttl{
    font-size: 16px;
  }
}

/*webinsourceバナー*/
.m_webinsBn{
  display: flex;
  align-items: center;
  padding: 12px;
  border: 2px solid #A11F24;
  border-radius: 4px;
  transition: .3s opacity;
}
.m_webinsBn:hover{
  opacity: .7;
}
.m_webinsBn__ttl{
  width: 50%;
  padding: 12px;
  line-height: 0;
}
.m_webinsBn__ttl img{
  max-width: 100%;
  height: auto;
}
.m_webinsBn__msg{
  width: 50%;
  padding: 12px;
  line-height: 0;
}
.m_webinsBn__msg img{
  max-width: 100%;
  height: auto;
}
@media screen and (max-width: 768px){
  .m_webinsBn{
    padding: 6px;
  }
  .m_webinsBn__ttl{
    padding: 6px;
  }
  .m_webinsBn__msg{
    padding: 6px;
  }
}

/* Footer */
.m_migrationWrap {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  margin: -12px;
}

.m_migrationWrap__item {
  display: flex;
  max-width: 360px;
  width: 33.333%;
  margin: 0 auto;
  padding: 12px;
}

.m_migrationWrap__inner {
  display: block;
  width: 100%;
}

@media screen and (max-width: 768px) {
  .m_migrationWrap {
    display: block;
  }

  .m_migrationWrap__item {
    width: 100%;
  }
}

.m_migrationBtn {
  display: flex;
  align-items: stretch;
}

.m_migrationBtn::before {
  content: "";
  display: block;
  height: 96px;
}

.m_migrationBtn__target {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  border: 3px solid #e5002d;
  border-radius: 4px;
  box-shadow: 3px 3px 6px rgba(48, 48, 48, 0.3);
  color: #333;
  font-weight: 700;
  font-size: 18px;
  transition: 0.3s opacity;
}

.m_migrationBtn__target:hover {
  opacity: 0.7;
}

.m_migrationBtn__catch {
  position: absolute;
  top: 0;
  left: 50%;
  display: block;
  padding: 0 12px;
  background: #fff;
  line-height: 1.2;
  text-align: center;
  font-weight: 700;
  font-size: 13px;
  white-space: nowrap;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}


/* ==========================================================================
   ここから下：動画教材セットプラン一覧ページ 専用CSS
   （旧 video_set_plan.css の内容。全て .m_dougaSetPlan 配下でスコープしており、
   上の土台CSSのクラスとは衝突しない）
   ========================================================================== */
/* ==========================================================================
   動画教材セットプラン（ページ専用CSS）
   既存サイトの規約に追従：m_ / l_ / u_ / js_ の4系統・BEMは__1階層＋以降は_連結
   既存サイトにCSS変数の基盤が無いため、変数は .m_dougaSetPlan スコープのローカル（--_）で持つ
   ========================================================================== */

/* --------------------------------------------------------------------------
   枠の調整（このページのみ）
   既存の列体系は #cont > #c3_lrr(970px) + #sideNav(200px) だが、
   2カラム化の flex 宣言が共通CSSから読み取れないため本ページで補う。
   サイドバーは order で左に寄せる（HTML の inline style は使わない）。
   -------------------------------------------------------------------------- */
/* 既存CSSが div#cont div#c3_lrr（要素+id）で幅を指定しているため、同じ形で上書きする */
div#cont {
  display: flex;
  align-items: flex-start;
  gap: 30px;
  padding: 0 10px;
}
/* #cont は clearfix（float前提）。flex化すると疑似要素が3つ目の子として余白を作るため止める */
div#cont::before,
div#cont::after { display: none; }

/* 幅は残り幅で確保する（#base 1220 − 左右10 − サイド200 − gap30 ＝ 既存と同じ970px） */
div#cont > div#c3_lrr {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
}
div#sideNav { order: -1; }

@media screen and (max-width: 768px) {
  div#cont {
    flex-wrap: wrap;
    gap: 24px;
  }
  div#cont > div#c3_lrr { width: 100%; }
  div#sideNav {
    order: 1;
    width: 100%;
  }
}

.m_dougaSetPlan {
  /* 既存サイト（動画百貨店・インソース）のブランド赤に統一 */
  --_red: #980416;
  --_redDark: #7a0311;
  --_txt: #333;
  --_txtSub: #6b7280;
  --_line: #d1d5db;
  --_lineLight: #e5e7eb;
  --_bgLight: #f8fafc;
  --_bgGray: #f3f4f6;
  /* 価格ラベル・価格文字の濃紺。既存サイトで使われている紺 #052674 に合わせている */
  --_priceLabel: #052674;
  --_gutter: 20px;
  --_radius: 4px;
  /* カード等のアクセント色（ここ1行で全カードの色が変わる） */
  --_accent: var(--_red);
  color: var(--_txt);
  font-size: 14px;
  line-height: 1.7;
  /* 土台CSS（.container_main）の letter-spacing: .1em を、このページ内では打ち消す */
  letter-spacing: normal;
}

/* --------------------------------------------------------------------------
   レイアウトprimitive（既存 video_kodawari.css と同値の定義を同梱）
   本ページ以外へ移設しても段組みが崩れないよう自己完結させている
   -------------------------------------------------------------------------- */
.m_dougaSetPlan .l_section__item + .l_section__item { margin-top: 48px; }
/* リード文の次に来るセクションも、セクション間と同じ間隔を確保する */
.m_dougaSetPlan .m_dougaSetPlan__lead + .l_section__item { margin-top: 48px; }

.m_dougaSetPlan .l_grid {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-wrap: wrap;
}
.m_dougaSetPlan .l_grid__item { display: flex; }
.m_dougaSetPlan .l_grid__inner { display: block; width: 100%; }
/* gutter の相殺は左右のみ（上下 margin の同時付与を避ける） */
.m_dougaSetPlan .l_grid--dougaSetPlan { margin-inline: calc(var(--_gutter) / -2); margin-top: 0; }
.m_dougaSetPlan .l_grid--dougaSetPlan > .l_grid__item { padding: calc(var(--_gutter) / 2); }
/* 横並びのカードの高さを揃える（l_grid__item の stretch をカードまで伝える） */
.m_dougaSetPlan .l_grid--dougaSetPlan > .l_grid__item > .l_grid__inner { display: flex; }

.m_dougaSetPlan .u_col4 { width: 33.333%; }
.m_dougaSetPlan .u_col6 { width: 50%; }
.m_dougaSetPlan .u_col12 { width: 100%; }

@media screen and (max-width: 768px) {
  .m_dougaSetPlan .u_resMdCol6 { width: 50%; }
  .m_dougaSetPlan .u_resMdCol12 { width: 100%; }
}
@media screen and (max-width: 599px) {
  .m_dougaSetPlan .u_resSmCol12 { width: 100%; }
}

/* --------------------------------------------------------------------------
   ファーストビュー
   -------------------------------------------------------------------------- */
/* 全スライド共通で 10:3。JSが動かない環境でも1枚目が静止画として表示される */
.m_dougaSetPlan__fv { position: relative; }
.m_dougaSetPlan__fv_slider {
  overflow: hidden;
  border-radius: var(--_radius);
}
.m_dougaSetPlan__fv_track {
  display: flex;
  align-items: stretch;
  transition-property: transform;
  transition-duration: .45s;
  transition-timing-function: ease;
}
.m_dougaSetPlan__fv_slide {
  display: flex;
  flex: 0 0 100%;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  aspect-ratio: 10 / 3;
  overflow: hidden;
}
.m_dougaSetPlan__fv_slide--main {
  padding: 28px 32px;
  color: #fff;
  background-color: var(--_red);
}
.m_dougaSetPlan__fv_slide--img { padding: 0; }
.m_dougaSetPlan__fv_img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 背景が赤の単色になったため、バッジは白地×赤文字で反転させる
   （スライドが縦並びのflexなので align-self で文字幅に留める） */
.m_dougaSetPlan__fv_badge {
  display: inline-block;
  align-self: flex-start;
  margin-bottom: 16px;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 700;
  color: var(--_red);
  background-color: #fff;
  border-radius: 999px;
}
.m_dougaSetPlan__fv_ttl {
  margin: 0;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.35;
  color: #fff;
}
.m_dougaSetPlan__fv_ttlSub {
  display: block;
  margin-top: 8px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
}
.m_dougaSetPlan__fv_points {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}
.m_dougaSetPlan__fv_point {
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 700;
  background-color: rgba(255, 255, 255, .15);
  border: 1px solid rgba(255, 255, 255, .4);
  border-radius: var(--_radius);
}

/* 前後の矢印・ドット（JSで生成するため、JS無効時は表示されない） */
.m_dougaSetPlan__fv_arrow {
  position: absolute;
  top: calc(15% - 16px);
  z-index: 2;
  width: 32px;
  height: 32px;
  overflow: hidden;
  text-indent: -9999px;
  cursor: pointer;
  background-color: rgba(0, 0, 0, .38);
  border: 0;
  border-radius: 50%;
  transition-property: background-color;
  transition-duration: .2s;
}
.m_dougaSetPlan__fv_arrow:hover,
.m_dougaSetPlan__fv_arrow:focus-visible { background-color: rgba(0, 0, 0, .6); }
.m_dougaSetPlan__fv_arrow--prev { left: 12px; }
.m_dougaSetPlan__fv_arrow--next { right: 12px; }
.m_dougaSetPlan__fv_arrow::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  content: "";
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}
.m_dougaSetPlan__fv_arrow--prev::before { transform: translate(-40%, -50%) rotate(-135deg); }
.m_dougaSetPlan__fv_arrow--next::before { transform: translate(-60%, -50%) rotate(45deg); }

.m_dougaSetPlan__fv_dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}
.m_dougaSetPlan__fv_dot {
  display: block;
  width: 10px;
  height: 10px;
  padding: 0;
  overflow: hidden;
  text-indent: -9999px;
  cursor: pointer;
  background-color: var(--_line);
  border: 0;
  border-radius: 50%;
  transition-property: background-color, width;
  transition-duration: .2s;
}
.m_dougaSetPlan__fv_dot[aria-current="true"] {
  width: 26px;
  background-color: var(--_red);
  border-radius: 999px;
}

@media screen and (max-width: 768px) {
  .m_dougaSetPlan__fv_slide--main { padding: 20px; }
  .m_dougaSetPlan__fv_ttl { font-size: 22px; }
  .m_dougaSetPlan__fv_ttlSub { font-size: 13px; }
  .m_dougaSetPlan__fv_points { gap: 8px; margin-top: 14px; }
  .m_dougaSetPlan__fv_point { padding: 4px 10px; font-size: 11px; }
}
@media screen and (max-width: 599px) {
  /* 10:3 のままだと文字が入らないため、SPだけ比率を緩める */
  .m_dougaSetPlan__fv_slide { aspect-ratio: auto; }
  .m_dougaSetPlan__fv_slide--img { aspect-ratio: 10 / 3; }
  .m_dougaSetPlan__fv_slide--main { padding: 20px 16px; }
  .m_dougaSetPlan__fv_ttl { font-size: 19px; }
  .m_dougaSetPlan__fv_ttlSub { font-size: 12px; }
}

/* --------------------------------------------------------------------------
   リード文
   -------------------------------------------------------------------------- */
.m_dougaSetPlan__lead {
  margin: 24px 0 0;
  padding: 0 0 0 16px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.9;
  border-left: 4px solid var(--_red);
}

/* --------------------------------------------------------------------------
   セクション見出し（共通）
   -------------------------------------------------------------------------- */
.m_dougaSetPlan__heading {
  margin: 0 0 20px;
  padding: 0 0 8px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--_txt);
  border-bottom: 2px solid var(--_red);
}
.m_dougaSetPlan__heading--pickup { border-bottom-color: var(--_line); }
.m_dougaSetPlan__heading_ttl { display: block; }

@media screen and (max-width: 599px) {
  .m_dougaSetPlan__heading { font-size: 18px; }
}

/* --------------------------------------------------------------------------
   悩み抽出（課題から探す）
   -------------------------------------------------------------------------- */
.m_dougaSetPlan__issue_picker {
  padding: 24px;
  background-color: var(--_bgGray);
  border-radius: var(--_radius);
}
.m_dougaSetPlan__issue_pickerTtl {
  margin: 0 0 16px;
  font-size: 15px;
  font-weight: 700;
}
.m_dougaSetPlan__issue_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.m_dougaSetPlan__issue_tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  color: var(--_txt);
  cursor: pointer;
  background-color: #fff;
  border: 1px solid var(--_line);
  border-radius: 999px;
  transition-property: color, background-color, border-color;
  transition-duration: .2s;
}
.m_dougaSetPlan__issue_tag:hover,
.m_dougaSetPlan__issue_tag:focus-visible {
  color: var(--_red);
  border-color: var(--_red);
}
.m_dougaSetPlan__issue_tag[aria-pressed="true"] {
  color: #fff;
  background-color: var(--_red);
  border-color: var(--_red);
}
.m_dougaSetPlan__issue_tagCount {
  padding: 1px 8px;
  font-size: 11px;
  color: var(--_txtSub);
  background-color: var(--_bgGray);
  border-radius: 999px;
}
.m_dougaSetPlan__issue_tagLabel{
  text-align:left;
}
.m_dougaSetPlan__issue_tag[aria-pressed="true"] .m_dougaSetPlan__issue_tagCount {
  color: var(--_red);
  background-color: #fff;
}
.m_dougaSetPlan__issue_note {
  margin: 16px 0 0;
  font-size: 12px;
  color: var(--_txtSub);
}

/* --------------------------------------------------------------------------
   定番プラン
   -------------------------------------------------------------------------- */
.m_dougaSetPlan__pickup_msg { margin: 0 0 20px; font-size: 14px; }

/* --------------------------------------------------------------------------
   すべてのプラン（カテゴリ単位）
   -------------------------------------------------------------------------- */
/* 課題タグの真下に置く結果エリア */
.m_dougaSetPlan__issue_result { margin-top: 32px; }
.m_dougaSetPlan__all_cat[hidden] { display: none; }
/* 絞り込みで隠れた要素を飛ばして余白を付ける（押した課題によって位置がずれないように） */
.m_dougaSetPlan__all_cat:not([hidden]) + .m_dougaSetPlan__all_cat:not([hidden]) { margin-top: 40px; }
.m_dougaSetPlan__all_catTtl {
  margin: 0 0 8px;
  padding: 0 0 0 12px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  border-left: 4px solid var(--_red);
  scroll-margin-top: 72px;
}
.m_dougaSetPlan__all_catLead {
  margin: 0 0 20px;
  font-size: 13px;
  color: var(--_txtSub);
}

@media screen and (max-width: 599px) {
  .m_dougaSetPlan__all_catTtl { font-size: 16px; }
}

/* --------------------------------------------------------------------------
   プランカード
   アクセント色は --_accent の1色に統一している（カテゴリごとに色を持たせない）。
   カテゴリが増えても CSS の追記は不要。色を変えるときは .m_dougaSetPlan の
   --_accent だけを差し替える。
   -------------------------------------------------------------------------- */
.m_dougaSetPlan__planCard {
  display: flex;
  width: 100%;
  background-color: #fff;
  border: 1px solid var(--_lineLight);
  border-top: 1px solid var(--_accent);
  transition-property: border-color, box-shadow;
  transition-duration: .2s;
}
.m_dougaSetPlan__planCard:hover { box-shadow: 0 2px 8px rgba(0, 0, 0, .12); }
.m_dougaSetPlan__planCard[hidden] { display: none; }
/* カード全体を1つのリンクにする（詳細ページへ丸ごと遷移。ホバーだけで押せない状態を防ぐ） */
.m_dougaSetPlan__planCard_link {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 10px 16px;
  color: inherit;
  text-decoration: none;
}

/* カテゴリタグとKV画像を同じ行に（並び順はHTML側の並び順どおり、左詰め） */
.m_dougaSetPlan__planCard_catRow {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  margin: 0 0 6px;
}
.m_dougaSetPlan__planCard_thumb {
  flex-shrink: 0;
  margin: 0;
}
.m_dougaSetPlan__planCard_thumbImg {
  display: block;
  width: auto;
  max-height: 40px;
  object-fit: contain;
}
.m_dougaSetPlan__planCard_cat {
  display: inline-block;
  align-self: flex-start;
  margin: 0;
  padding: 1px 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--_accent);
  background-color: #fff;
  border: 1px solid currentColor;
  border-radius: var(--_radius);
}
.m_dougaSetPlan__planCard_ttl {
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}
/* タイトルの色は、カード全体のリンク（.planCard_link）のホバーに合わせて変わる */
.m_dougaSetPlan__planCard_link:hover .m_dougaSetPlan__planCard_ttl,
.m_dougaSetPlan__planCard_link:focus-visible .m_dougaSetPlan__planCard_ttl {
  color: var(--_accent);
  text-decoration: underline;
}
.m_dougaSetPlan__planCard_courseTtl {
  margin: 0 0 6px;
  padding: 0 0 4px;
  font-size: 10px;
  font-weight: 700;
  color: var(--_txtSub);
  border-bottom: 1px solid var(--_lineLight);
}
.m_dougaSetPlan__planCard_courses {
  margin: 0 0 12px;
  padding: 0 0 0 1.5em;
  font-size: 11px;
  line-height: 1.5;
  /* 既存のリセットCSSが ol の番号を消しているため、ここで戻す */
  list-style-type: decimal;
}
/* 総本数のカウント専用（JSが件数を数える対象。画面には出さない） */
.js_dougaSetPlanCourses--count { display: none; }
/* 講座番号（1. 2. 3. …）をアクセント色の太字にする */
.m_dougaSetPlan__planCard_courseItem::marker {
  color: var(--_accent);
  font-weight: 700;
}
.m_dougaSetPlan__planCard_courseItem + .m_dougaSetPlan__planCard_courseItem { margin-top: 2px; }
/* 表示は4件まで。5件目以降はJSが「ほか○講座」に集約する。
   「ほか」の行自体は5番目以降に追加されるため :not() で対象外にする
   （.courseItem--more 単独では nth-child の詳細度に負けて消えてしまう） */
.m_dougaSetPlan__planCard_courseItem:nth-child(n+5):not(.m_dougaSetPlan__planCard_courseItem--more) { display: none; }
.m_dougaSetPlan__planCard_courseItem--more {
  list-style: none;
  color: var(--_txtSub);
}
.m_dougaSetPlan__planCard_courseTime {
  margin-left: 6px;
  font-size: 11px;
  color: var(--_txtSub);
  white-space: nowrap;
}

/* 価格（買い切り／レンタル）：ラベルは濃紺バッジ、価格は同色の太字で横並び。
   タイトルの行数がカードごとに違っても、価格から下（価格・件数・更新日・ボタン）の
   位置が横並びで揃うように、余った縦のすき間はここ（価格の上）に集める */
.m_dougaSetPlan__planCard_price {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin: auto 0 6px;
  padding: 8px 0 0;
  border-top: 1px solid var(--_lineLight);
}
.m_dougaSetPlan__planCard_priceRow {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.m_dougaSetPlan__planCard_priceTtl {
  flex-shrink: 0;
  padding: 2px 8px;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.4;
  color: #fff;
  background-color: var(--_priceLabel);
  border-radius: var(--_radius);
}
.m_dougaSetPlan__planCard_priceVal {
  margin: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--_priceLabel);
  white-space: nowrap;
}
/* 価格未入力（prices.json が空）のプレースホルダー表示 */
.m_dougaSetPlan__planCard_priceVal--unset {
  font-size: 12px;
  font-weight: 400;
  color: #9ca3af;
}

.m_dougaSetPlan__planCard_foot {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 0;
}
/* 件数・合計時間は1行にまとめる */
.m_dougaSetPlan__planCard_meta {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px;
}
.m_dougaSetPlan__planCard_count {
  font-size: 12px;
  font-weight: 700;
  color: var(--_txtSub);
}
.m_dougaSetPlan__planCard_totalTime {
  font-size: 12px;
  font-weight: 500;
  color: var(--_txtSub);
}
/* ボタンは左寄せ、更新日はその右側に配置 */
/* ボタンの文字は絶対に折り返さない。幅が足りない場合は更新日を次の行に落とす
   （ボタン・更新日ともに flex-shrink:0 にし、それでも収まらない分だけ wrap で改行させる） */
.m_dougaSetPlan__planCard_actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 8px;
}
.m_dougaSetPlan__planCard_updated {
  flex-shrink: 0;
  align-self: flex-end;
  font-size: 12px;
  font-weight: 700;
  color: #d66c00;
  white-space: nowrap;
}
/* 更新日が未入力（updated.json が空）のときの表示 */
.m_dougaSetPlan__planCard_updated--unset { color: #b6bcc5; }
/* 見た目だけのボタン（実体はカード全体を覆う .planCard_link）。
   ホバー色はリンク側の :hover に連動させる */
.m_dougaSetPlan__planCard_btn {
  display: inline-block;
  flex-shrink: 0;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  background-color: var(--_accent);
  border-radius: var(--_radius);
  transition-property: opacity;
  transition-duration: .2s;
}
.m_dougaSetPlan__planCard_link:hover .m_dougaSetPlan__planCard_btn,
.m_dougaSetPlan__planCard_link:focus-visible .m_dougaSetPlan__planCard_btn { opacity: .82; }

/* --------------------------------------------------------------------------
   選び方・お申込みについて（下部バナー）
   -------------------------------------------------------------------------- */
.m_dougaSetPlan__howto {
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 28px 32px;
  color: #fff;
  background-color: var(--_red);
  border-radius: var(--_radius);
}
/* 左ブロック（バッジ＋見出し＋説明文）。右のボタンと2段組みにする */
.m_dougaSetPlan__howto_body {
  flex: 1 1 auto;
  min-width: 0;
}
.m_dougaSetPlan__howto_badge {
  display: inline-block;
  margin: 0 0 10px;
  padding: 3px 12px;
  font-size: 11px;
  font-weight: 700;
  color: #7c2d12;
  background-color: #fde047;
  border-radius: 999px;
}
.m_dougaSetPlan__howto_ttl {
  margin: 0 0 10px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  color: #fff;
}
.m_dougaSetPlan__howto_msg {
  margin: 0;
  font-size: 13px;
  line-height: 1.8;
}
.m_dougaSetPlan__howto_btns { flex-shrink: 0; margin: 0; }
.m_dougaSetPlan__howto_btn {
  display: block;
  padding: 14px 24px;
  font-size: 14px;
  font-weight: 700;
  color: var(--_red);
  text-align: center;
  text-decoration: none;
  background-color: #fff;
  border-radius: var(--_radius);
  transition-property: background-color, color;
  transition-duration: .2s;
}
.m_dougaSetPlan__howto_btn:hover,
.m_dougaSetPlan__howto_btn:focus-visible {
  color: #fff;
  background-color: var(--_redDark);
}

@media screen and (max-width: 768px) {
  .m_dougaSetPlan__howto {
    flex-wrap: wrap;
    padding: 24px 20px;
  }
  .m_dougaSetPlan__howto_btns { width: 100%; }
  .m_dougaSetPlan__howto_ttl { font-size: 17px; }
}

/* --------------------------------------------------------------------------
   絞り込み結果が0件のときの案内（JSが hidden を外して表示）
   -------------------------------------------------------------------------- */
.m_dougaSetPlan__empty {
  margin: 24px 0 0;
  padding: 24px;
  font-size: 14px;
  text-align: center;
  color: var(--_txtSub);
  background-color: var(--_bgGray);
  border-radius: var(--_radius);
}
.m_dougaSetPlan__empty[hidden] { display: none; }

/* --------------------------------------------------------------------------
   フォーカス表示・モーション配慮（floor）
   -------------------------------------------------------------------------- */
.m_dougaSetPlan a:focus-visible,
.m_dougaSetPlan button:focus-visible {
  outline: 2px solid var(--_red);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .m_dougaSetPlan__issue_tag,
  .m_dougaSetPlan__planCard,
  .m_dougaSetPlan__planCard_btn,
  .m_dougaSetPlan__howto_btn {
    transition-duration: 0s;
  }
}

/* ==========================================================================
   元CSSのUtilityクラス（u_で始まる汎用スタイリ）を末尾に移動
   内容は変えていない（元CSS自体は一切未変更）
   ========================================================================== */
/*===============================

    Utility

================================*/

/*横幅*/
.u_col1{width:8.333%;}
.u_col2{width:16.667%;}
.u_col3{width:25%;}
.u_col4{width:33.333%;}
.u_col5{width:41.666%;}
.u_col6{width:50%;}
.u_col7{width:58.333%;}
.u_col8{width:66.666%;}
.u_col9{width:75%;}
.u_col10{width:83.33%;}
.u_col11{width:91.666%;}
.u_col12{width:100%;}
@media screen and (max-width:768px){
  .u_resMdCol1{width:8.333%;}
  .u_resMdCol2{width:16.667%;}
  .u_resMdCol3{width:25%;}
  .u_resMdCol4{width:33.333%;}
  .u_resMdCol5{width:41.666%;}
  .u_resMdCol6{width:50%;}
  .u_resMdCol7{width:58.333%;}
  .u_resMdCol8{width:66.666%;}
  .u_resMdCol9{width:75%;}
  .u_resMdCol10{width:83.33%;}
  .u_resMdCol11{width:91.666%;}
  .u_resMdCol12{width:100%;}
}
@media screen and (max-width:599px){
  .u_resSmCol1{width:8.333%;}
  .u_resSmCol2{width:16.667%;}
  .u_resSmCol3{width:25%;}
  .u_resSmCol4{width:33.333%;}
  .u_resSmCol5{width:41.666%;}
  .u_resSmCol6{width:50%;}
  .u_resSmCol7{width:58.333%;}
  .u_resSmCol8{width:66.666%;}
  .u_resSmCol9{width:75%;}
  .u_resSmCol10{width:83.33%;}
  .u_resSmCol11{width:91.666%;}
  .u_resSmCol12{width:100%;}
}

/* color */
.u_color-coral { color: #ff7f50 !important; }
.u_color-rouge { color: #ec2c43 !important; }
.u_color-crimson { color: #e6002d !important; }

/* display */
.u_d-b { display: block !important; }
.u_d-ib { display: inline-block!important; }
.u_d-fx { display: flex !important; }

@media screen and (max-width: 599px){
  .u_res_d-n { display: none; }
  .u_res_d-b { display: block; }
}

/* float */
.u_fl-n { float: none !important; }
.u_fl-l { float: left !important; }
.u_fl-r { float: right !important; }

/* font-size */
.u_fz-xs { font-size: .75em !important; }
.u_fz-sm { font-size: .875em !important; }
.u_fz-md { font-size: 1em !important; }
.u_fz-lg { font-size: 1.25em !important; }
.u_fz-xl { font-size: 1.5em !important; }
.u_fz-sr { font-size: smaller !important; }
.u_fz-lr { font-size: larger !important; }

.u_fz10 { font-size: 10px !important; }
.u_fz11 { font-size: 11px !important; }
.u_fz12 { font-size: 12px !important; }
.u_fz13 { font-size: 13px !important; }
.u_fz14 { font-size: 14px !important; }
.u_fz15 { font-size: 15px !important; }
.u_fz16 { font-size: 16px !important; }
.u_fz17 { font-size: 17px !important; }
.u_fz18 { font-size: 18px !important; }
.u_fz19 { font-size: 19px !important; }
.u_fz20 { font-size: 20px !important; }

/* font-weigth */
.u_fw-b { font-weight: bold !important; }
.u_fw-n { font-weight: normal !important; }

/* line-height */
.u_lh-nm { line-height: normal !important; }
.u_lh-ih { line-height: inherit !important; }
.u_lh0 { line-height: 0 !important; }
.u_lh1 { line-height: 1 !important; }
.u_lh2 { line-height: 2 !important; }
.u_lh3 { line-height: 3 !important; }
.u_lh4 { line-height: 4 !important; }
.u_lh5 { line-height: 5 !important; }
.u_lh6 { line-height: 6 !important; }
.u_lh-xs { line-height: 1.25 !important; }
.u_lh-sm { line-height: 1.33 !important; }
.u_lh-md { line-height: 1.5 !important; }
.u_lh-lg { line-height: 1.75 !important; }
.u_lh-xl { line-height: 2 !important; }

/* padding */
.u_py0 { padding-top: 0 !important; padding-bottom: 0 !important; }

/* margin */
.u_mt0 { margin-top: 0 !important; }
.u_mt-a { margin-top: auto !important; }
.u_mt-xs { margin-top: 0.2rem !important; }
.u_mt-sm { margin-top: 0.5rem !important; }
.u_mt-md { margin-top: 1rem !important; }
.u_mt-lg { margin-top: 1.5rem !important; }
.u_mt-xl { margin-top: 3rem !important; }

.u_ml0 { margin-left: 0 !important; }
.u_ml-a { margin-left: auto !important; }
.u_ml-xs { margin-left: 0.2rem !important; }
.u_ml-sm { margin-left: 0.5rem !important; }
.u_ml-md { margin-left: 1rem !important; }
.u_ml-lg { margin-left: 1.5rem !important; }
.u_ml-xl { margin-left: 3rem !important; }

.u_mb0 { margin-bottom: 0 !important; }
.u_mb-a { margin-bottom: auto !important; }
.u_mb-xs { margin-bottom: 0.2rem !important; }
.u_mb-sm { margin-bottom: 0.5rem !important; }
.u_mb-md { margin-bottom: 1rem !important; }
.u_mb-lg { margin-bottom: 1.5rem !important; }
.u_mb-xl { margin-bottom: 3rem !important; }

.u_mr0 { margin-right: 0 !important; }
.u_mr-a { margin-right: auto !important; }
.u_mr-xs { margin-right: 0.2rem !important; }
.u_mr-sm { margin-right: 0.5rem !important; }
.u_mr-md { margin-right: 1rem !important; }
.u_mr-lg { margin-right: 1.5rem !important; }
.u_mr-xl { margin-right: 3rem !important; }

.u_my0 { margin-top: 0 !important; margin-bottom: 0 !important; }
.u_my10 { margin-top: 10px !important; margin-bottom: 10px !important; }
.u_my20 { margin-top: 20px !important; margin-bottom: 20px !important; }
.u_my30 { margin-top: 30px !important; margin-bottom: 30px !important; }

.u_mt5 { margin-top: 5px !important; }
.u_mt10 { margin-top: 10px !important; }
.u_mt15 { margin-top: 15px !important; }
.u_mt20 { margin-top: 20px !important; }
.u_mt30 { margin-top: 30px !important; }
.u_mt50 { margin-top: 50px !important; }
.u_mt100 { margin-top: 100px !important; }

.u_mt-5 { margin-top: -5px !important; }
.u_mt-10 { margin-top: -10px !important; }
.u_mt-15 { margin-top: -15px !important; }
.u_mt-20 { margin-top: -20px !important; }
.u_mt-30 { margin-top: -30px !important; }
.u_mt-50 { margin-top: -50px !important; }
.u_mt-100 { margin-top: -100px !important; }

.u_mb5 { margin-bottom: 5px !important; }
.u_mb10 { margin-bottom: 10px !important; }
.u_mb15 { margin-bottom: 15px !important; }
.u_mb20 { margin-bottom: 20px !important; }
.u_mb30 { margin-bottom: 30px !important; }
.u_mb50 { margin-bottom: 50px !important; }
.u_mb100 { margin-bottom: 100px !important; }

.u_mb-5 { margin-bottom: -5px !important; }
.u_mb-10 { margin-bottom: -10px !important; }
.u_mb-15 { margin-bottom: -15px !important; }
.u_mb-20 { margin-bottom: -20px !important; }
.u_mb-30 { margin-bottom: -30px !important; }
.u_mb-50 { margin-bottom: -50px !important; }
.u_mb-100 { margin-bottom: -100px !important; }

.u_m-a { margin: auto !important; }

/* position */
.u_pos-r { position: relative !important; }
.u_pos-a { position: absolute !important; }

/* text-align */
.u_ta-c { text-align: center !important; }
.u_ta-r { text-align: right !important; }
.u_ta-l { text-align: left !important; }

/* text-indent */
.u_ti--1 { text-indent: -1em !important; padding-left: 1em !important; }
.u_ti-0 { text-indent: 0em !important; padding-left: 0em !important; }

/* text-decoration */
.u_td-n { text-decoration: none !important; }
.u_td-u { text-decoration: underline !important; }
.u_td-o { text-decoration: overline !important; }
.u_td-l { text-decoration: line-through !important; }

/* vertical-align */
.u_va-sup { vertical-align: super !important; }
.u_va-t { vertical-align: top !important; }

.u_va-tt { vertical-align: text-top !important; }
.u_va-m { vertical-align: middle !important; }
.u_va-bl { vertical-align: baseline !important; }
.u_va-b { vertical-align: bottom !important; }
.u_va-tb { vertical-align: text-bottom !important; }
.u_va-sub { vertical-align: sub !important; }

/* flexbox */
.u_ac-fs { align-content: flex-start !important; }
.u_ac-fe { align-content: flex-end !important; }
.u_ac-c { align-content: center !important; }
.u_ac-sb { align-content: space-between !important; }
.u_ac-sa { align-content: space-around !important; }
.u_ac-s { align-content: stretch !important; }
.u_ai-fs { align-items: flex-start !important; }
.u_ai-fe { align-items: flex-end !important; }
.u_ai-c { align-items: center !important; }
.u_ai-b { align-items: baseline !important; }
.u_ai-s { align-items: stretch !important; }
.u_as-a { align-self: auto !important; }
.u_as-fs { align-self: flex-start !important; }
.u_as-fe { align-self: flex-end !important; }
.u_as-c { align-self: center !important; }
.u_as-b { align-self: baseline !important; }
.u_as-s { align-self: stretch !important; }
.u_jc-fs { justify-content: flex-start !important; }
.u_jc-fe { justify-content: flex-end !important; }
.u_jc-c { justify-content: center !important; }
.u_jc-sb { justify-content: space-between !important; }
.u_jc-sa { justify-content: space-around !important; }
.u_fx0-1-a { flex: 0 1 auto !important; }
.u_fx1-0-a { flex: 1 0 auto !important; }
.u_fx1-1-a { flex: 1 1 auto !important; }
.u_fx0-0-a { flex: 0 0 auto !important; }
.u_fx1-0-0 { flex: 1 0 0% !important; }

/* order */
.u_ord0 { order: 0 !important; }
.u_ord1 { order: 1 !important; }
.u_ord2 { order: 2 !important; }
.u_ord3 { order: 3 !important; }
.u_ord4 { order: 4 !important; }
.u_ord5 { order: 5 !important; }
.u_ord6 { order: 6 !important; }
.u_ord9999 { order: 9999 !important; }
.u_ord-1 { order: -1 !important; }

/* table-layout */
.u_tbl-a { table-layout: auto !important; }
.u_tbl-f { table-layout: fixed !important; }

/* width */
.u_w350 { width: 350px !important; }
.u_w400 { width: 400px !important; }

.u_w40p { width: 40% !important; }
.u_w45p { width: 45% !important; }
.u_w50p { width: 50% !important; }
.u_w100p { width: 100% !important; }

.u_maW70p { max-width: 70% !important; }
.u_maW75p { max-width: 75% !important; }
.u_maW80p { max-width: 80% !important; }

.u_disNon-pc { display: none; }
.u_disNon-sp { display: block; }

.sp { display: none; }

/* color */
.u_colorTheme{
  color: #A11F24;
}

/* 画像のみ要素 */
.u_onlyImg{
  text-align: center;
  line-height: 0;
}
.u_onlyImg img{
  max-width: 100%;
  height: auto;
}

@media screen and (max-width: 768px){
  .u_disNon-tb { display: none; }
}
@media screen and (max-width:599px){
  .res_sm_w100p { width: 100% !important; }
  .u_disNon-pc { display: block; }
  .u_disNon-sp { display: none; }
}
