/******************
追加CSS
各種サイトレイアウト用の汎用CSSセット
説明：新旧テンプレート、セミオリジナル、プレミアム、他社制作サイトなどへのページ追加・修正時に、個別サイトのCSS逐次解析を回避、作業効率化の目的で以下定義するもの。
極力、既存サイトのCSSレイアウトを用い、各段落内容など全体の構成に影響が出にくい部分に適用。
クラス名が既存CSSと競合して問題となる場合など、適宜当該箇所調整の上使用。

(URL for Local test only)
http://localhost:81/web-test/experiment/ucolumn/

設置例：
<link rel='stylesheet' href='/<?= $dir; ?>css/style_subs_v05.css'>


 2023年1月4日 style_subs_v01.css
 2023年2月3日 style_subs_v02.css menu_btn追加
 2023年7月12日 style_subs_v02.css checklist flex-borderのレイアウト調整
 2023年11月 style_subs_v03.css 見出し項目を上位配置のgrid layout追加
 2024年1月24日 ul.checklist.check li p::before の表示位置を上下中央から「上」に修正
 2024年1月24日 menu_btnの構造修正。横並び個数は記述数に応じ、1100pxブレークで縦並びに。
 2024年2月19日 style_subs_v03.css スマホ時のborder07の横棒表示を調整
 2025年1月16日 style_subs_v04.css 共通カラーの main-color　を、他CSSと被らないよう main-color-subs に変更
 2025年1月22日 style_subs_v05.css .wrapを、他CSSと被らないよう .wrap_box に変更

******************/


/**********************************************************
PC/SP 共用CSS
**********************************************************/

/** 共通カラー設定 **/
:root {
  --main-color-subs: #2F2460;
  --txt-color-on-bg: #fff; /* メインカラーを背景とした時のテキストカラー */
}

.mt_10  { margin-top:10px!important }
.mt_20  { margin-top:20px!important }
.mt_30  { margin-top:30px!important }
.mt_50  { margin-top:50px!important }
.mt_70  { margin-top:70px!important }
.mt_100 { margin-top:100px!important }
.mb_10  { margin-bottom:10px!important }
.mb_20  { margin-bottom:20px!important }
.mb_30  { margin-bottom:30px!important }
.mb_50  { margin-bottom:50px!important }
.mb_70  { margin-bottom:70px!important }
.mb_100 { margin-bottom:100px!important }
.center { text-align:center }
.under  { border-bottom:1px solid #000 }
.red    {color:#dc143c;}
b {
font-family:"Hiragino Kaku Gothic ProN","メイリオ", sans-serif;
font-size:110%;
}


/* TITLE装飾 下線1色100px */
.border01 {
  position:relative;
  line-height:1.3;
  padding:0px;
  text-align:center;
  padding-bottom:10px;
  }
.border01:after {
  position:absolute;
  bottom:0;
  left:calc(50% - 50px);
  content: '';
  width:100px;
  border-bottom: 5px solid #ccc;
  }

/* TITLE装飾 下線2色100px */
.border02 {
  position:relative;
  line-height:1.3;
  padding:0;
  text-align:center;
  padding-bottom:10px;
  }
.border02:before {
  position:absolute;
  bottom:-10px;
  left:calc(50% - 50px);
  content: '';
  width:50px;
  border-bottom: 5px solid #ccc;
  }
.border02:after {
  position:absolute;
  bottom:-10px;
  left:50%;
  content: '';
  width:50px;
  border-bottom: 5px solid #FAD910;
  }

/* TITLE装飾 下線2色100px */
.border02b {
  position:relative;
  line-height:1.3;
  padding:0;
  text-align:center;
  padding-bottom:10px;
  }
.border02b:before {
  position:absolute;
  bottom:-10px;
  left:calc(50% - 50px);
  content: '';
  width:50px;
  border-bottom: 5px solid #ccc;
  }
.border02b:after {
  position:absolute;
  bottom:-10px;
  left:50%;
  content: '';
  width:50px;
  border-bottom: 5px solid #2F2460;
  }


/* TITLE装飾 カギ括弧 */
.border03 {
  display:inline-block;
  position:relative;
  line-height:1.3;
  padding:20px 30px;
  text-align:center;
  }
.border03:before {
  position:absolute;
  top:0;
  left:0;
  content: '';
  width:50px;
  height:20px;
  border-top: 1px solid var(--main-color-subs);
  border-left: 1px solid var(--main-color-subs);
  }
.border03:after {
  position:absolute;
  bottom:0;
  right:0;
  content: '';
  width:50px;
  height:20px;
  border-right: 1px solid var(--main-color-subs);
  border-bottom: 1px solid var(--main-color-subs);
  }

/* TITLE装飾 縦ラインマーカー */
.border04{
  border-left:5px solid var(--main-color-subs);
  padding-left:10px;
  margin:0;
  text-align:left;
  }
/* TITLE装飾 下線 */
.border05{
  border-bottom:1px solid #000;
  }
/* TITLE装飾 下線-inline- */
.border06{
  display:inline-block;
  border-bottom:1px solid #000;
  }
/* TITLE装飾 横中央線 */
.border07 {
  display: flex;
  align-items: center;
  font-weight:300;
  }
.border07::before,.border07::after {
  display: block;
  content: ' ';
  flex-grow: 1;
  margin: 0 1em;
  height: 2px;
  background-color: #fff;
  }
@media screen and (max-width: 768px) {
.border07::before,.border07::after {
  margin: 0 3px;
  }
}

/* TITLE装飾 下線・ドット */
.border08 {
  background-image : linear-gradient(to right, var(--main-color-subs) 4px, transparent 2px);
  background-size: 10px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
  }

/**********************************************************
media
**********************************************************/

@media screen and (min-width: 769px) {
  .pc_none {display:none;}
  .wrap_box {width:1200px; margin:0 auto;}
  }
@media screen and (max-width: 768px) {
  .sp_none {display:none;}
  .wrap_box {width:100%;}
  }


/***************************************************************
ucolumnSec (utility column section)
各種サイトレイアウトに柔軟に設置・適応する為の汎用Sectionクラスセット

■設置イメージ

<section class="c-layout09">(←各サイトのレイアウトタグ例）
  <div class="m-inner">(←各サイトのレイアウトタグ例）
（この中に下のように設置）

<section class="ucolumnSec">
<div class="outerbox">
<div class="numb">01</div>
<div class="center mb_30"><h2>TITLE</h2></div>
<div class="ucolumnFlex">
  <div class="photo"><img src="" /></div>
  <div class="txt">
    <h3>TITLE</h3>
    <p>説明文</p>
  </div>
</div>
</div><!-- end outerbox -->
</section>

  </div>(←各サイトのレイアウトタグ例）
</section>(←各サイトのレイアウトタグ例）

■クラス説明

・ucolumnSec：Section全体のクラス
・outerbox：囲み枠、不要なら削除
・numb：囲み枠右上に番号等、不要なら削除
・ucolumnFlex：フレックス配置用
  --- verticalクラス追加で縦配置、横長画像使用時等用
  --- スマホ(max 768px）はdisplay:blockで縦配置
・txt：説明文、そのほかを適宜配置
  --- .txtをorder:2に指定
・photo：画像用枠
  --- 必ずright/leftクラスを指定
  --- .photoの.leftをorder:1、.rightをorder:3に指定、.txtをorder:2に指定で左右表示分け
  --- .txtの下に.photo配置でスマホ時H3や説明文の下に画像
  --- .halfで半分サイズ
****************************************************************/




/*** outerbox 汎用囲み枠 ***/
.outerbox {
  border:1px solid #555;
  padding:30px;
  box-sizing:border-box;
  position:relative;
  }
.outerbox_bg {
  background:#1D1D1D;
  padding:30px;
  box-sizing:border-box;
  position:relative;
  }
.outerbox .numb{
  position:absolute;
  top:-50px;
  right:30px;
  font-size:70px;
  color:#ccc;
  font-weight:700;
  font-style:italic;
  }

/*** ucolumnFlex - Flex配置の画像とテキストボックス ***/
.ucolumnFlex{
  margin:0px auto;
  padding:0;
  max-width:100%;
  display:flex;
  }
.ucolumnFlex .photo{
  flex-basis: 40%;
  }
.ucolumnFlex .photo.half{
  flex-basis: 20%;
  /** display:block; margin:0 auto 20px!important; **/
  }
.ucolumnFlex .photo.left{
  /** photo枠用のマージン **/
  margin-left:0px;
  margin-right:50px;
  order:1;
  }
.ucolumnFlex .photo.right{
  /** photo枠が右端のときのマージン **/
  margin-left:50px;
  margin-right:0px;
  order:3;
  }
.ucolumnFlex .photo img{
  width:100%;
  }
.ucolumnFlex.vertical {
  /** verticalクラス、画像はオリジナルサイズの縦並びでセンタリング **/
  display:block;
  }
.ucolumnFlex.vertical .photo{
  width: 100%;
  text-align:center;
  margin-top:20px;
  order:3;
  }
.ucolumnFlex.vertical .photo img{
  max-width:100%;
  width:auto;
  }
.ucolumnFlex .txt{
  /** テキストボックス部分はリキッドレイアウト **/
  flex: 1;
  overflow:hidden;
  order:2;
  }
.ucolumnFlex p{
  line-height:1.7;
  margin:0;
  }

/************ ucolumnSec スマホ ************/

@media screen and (max-width: 768px) {

.ucolumnSec {
  padding:10px;
  box-sizing:border-box;
  }

.ucolumnSec{
  padding:10px;
  box-sizing:border-box;
  }
.outerbox {
  border:1px solid #555;
  padding:10px;
  box-sizing:border-box;
  position:relative;
  }
.outerbox_bg {
  background:#1D1D1D;
  padding:10px;
  box-sizing:border-box;
  position:relative;
  }
.outerbox .numb{
  position:absolute;
  top:10px;
  right:10px;
  font-size:30px;
  color:#ccc;
  font-weight:700;
  font-style:italic;
  }

.ucolumnFlex{
  margin:0px auto;
  padding:10px;
  box-sizing:border-box;
  max-width:100%;
  display:block;
  }
.ucolumnFlex .photo,.ucolumnFlex .photo.left,.ucolumnFlex .photo.right{
  width: 100%;
  text-align:center;
  margin:0 0 20px;
  }
.ucolumnFlex .photo img{
  max-width:100%;
  width:auto;
  }
.ucolumnFlex .photo.half img{
  width: 50%;
  }

.ucolumnFlex .txt{
  overflow:hidden;
  margin-bottom:20px;
  }
.ucolumnFlex p{
  line-height:1.7;
  margin:0;
  }

}

/************ ucolumnSec スマホ ここまで ************/
/************ ucolumnSec        ここまで ************/



/**********************************************************
checklist
・各種サイトレイアウトに柔軟に設置・適応する為の汎用リスト
・従来のcheckbox2,checkbox3,checkbox4を統合
・ul.checklist.xxxx クラス設定
  circle:●を冒頭に表示
  check:チェックボックスを冒頭に表示
  num:連番
  flex:要素数分横並び、スマホは解除
  border:ボーダーで全体を囲む

■設置イメージ
<ul class="checklist circle flex border">
<li><p>テストテストテスト</p></li>
<li><p>テストテストテスト</p></li>
</ul>
**********************************************************/

ul.checklist{
  padding:0;
  margin:0;
  }
ul.checklist.border{
  padding:20px;
  border:1px solid #555;
  }
ul.checklist.flex{
  display:flex;
  flex-wrap:wrap;
  }
ul.checklist.flex.border{
  padding-bottom:30px;
  }
ul.checklist.flex li{
  flex-basis:50%;
  }
ul.checklist li{
  list-style:none;
  margin:0 0 10px;
  flex:1;
  padding-left:0!important;
  }
ul.checklist li:before{
  display:none;
  }
ul.checklist li:last-child{
  margin:0;
  }
ul.checklist li p{
  padding:0 0 0 2em;
  font-size:16px;
  position:relative;
  line-height:21px;
  }
ul.checklist.circle li p::before{
  position:absolute;
  left:0;
  top:0;
  content:"●";
  font-size:21px;
  color:var(--main-color-subs);
  }

ul.checklist li p span{
	display:block;
	font-size:24px;
	margin-bottom:20px;
	}
@media screen and (max-width: 768px) {
ul.checklist li p span{
	font-size:18px;
	}
}

ul.checklist.check li p::before{
  position:absolute;
  left:0;
  top:4px;
  margin:auto;
  content:"";
  width: 16px;
  height: 16px;
  border-radius:4px;
  border:1px solid #492E12;
  }
ul.checklist.check li p::after{
  position:absolute;
  left:3px;
  top:6px;
  margin:auto;
  content: '';
  width: 14px;
  height:5px;
  border-top: 3px solid var(--main-color-subs);
  border-right: 3px solid var(--main-color-subs);
  transform: rotate(135deg);
  }
ul.checklist.num{
  counter-reset: chapter;
  }
ul.checklist.num li {
  margin:10px 0 20px;
  }
ul.checklist.num li p{
  padding-left:2.5em;
  position:relative;
  }
ul.checklist.num li p::before{
  position:absolute;
  left:0;
  top:-3px;
  content: counter(chapter) "";
  counter-increment: chapter;
  display:inline-block;
  width:30px;
  height:30px;
  border-radius:15px;
  color:var(--txt-color-on-bg);
  text-align:center;
  background:var(--main-color-subs);
  line-height:30px;
  font-size:21px;
  margin-right:10px;
  }

@media screen and (max-width: 768px) {
  ul.checklist.flex {
  display:block;
  }
}



/************ 横並びボックス list_box    ************/

/***** ■設置例
<ul class="list_box">
<li><p class="title">サンプル</p><img src="img/img01.jpg" /><p>テストテスト</p></li>
<li><p class="title">サンプル</p><img src="img/img01.jpg" /><p>テストテスト</p></li>
<li><p class="title">サンプル</p><img src="img/img01.jpg" /><p>テストテスト</p></li>
</ul>
*****/

.list_box{
  width:100%;
  max-width:100%;
  margin:0 0 10px;
  padding:20px;
  box-sizing:border-box;
  display:flex;
  gap:20px;
  }
.list_box li{
  display:block;
  list-style:none;
  margin-bottom:30px;
  flex:1;
  }
.list_box li .title{
  margin:0 0 10px;
  text-align:center;
  font-size:18px;
  background:var(--main-color-subs);
  color:var(--txt-color-on-bg);
  }
.list_box li img{
  flex-shrink: 1;
  width:100%;
  margin-bottom:20px;
  }
.list_box li p{
  margin:0;
  line-height:1.7;
  }

@media screen and (max-width:768px){
  .list_box{
  display:block;
  }
  }

/************ 横並びボックス list_box ここまで      ************/


/************ LINK BUTTON                           ************/
/************ 設置例
  <a href="" class="button01">ボタンデザイン</a>
********************/

.button01 {
  display:block;
  color: var(--txt-color-on-bg);
  background-color: var(--main-color-subs);
  padding: 0.5rem 2rem;
  box-sizing:border-box;
  margin: 20px auto;
  width: 500px;
  max-width: calc(100% - 20px);
  font-size: 16px;
  text-decoration:none;
  text-align:center;
  position:relative;
  }
.button01:hover {
  background-color: #bbbbbb;
  transition:0.5s;
  }
.button01::after {
  position:absolute;
  right:2em;
  top:0;
  bottom:0;
  margin:auto;
  content: '';
  width: 5px;
  height: 5px;
  border-top: 3px solid var(--txt-color-on-bg);
  border-right: 3px solid var(--txt-color-on-bg);
  transform: rotate(45deg);
}

/*
横向き三角
	width: 0;
	height: 0;
	border-left: 30px solid var(--main-color-subs);
	border-top: 30px solid transparent;
	border-bottom: 30px solid transparent;
下向き三角
	width: 0;
	height: 0;
	border-left: 7px solid transparent;
	border-right: 7px solid transparent;
	border-top: 10px solid var(--main-color-subs);
*/


/************ LINK BUTTON ここまで                  ************/


/************ DOWN ARROW                            ************/
/************ 設置例
<div class="arrow"></div>
********************/

.arrow{
  margin:0 auto 10px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 30px 100px 0 100px;
  border-color: #cccccc transparent transparent transparent;
  }

/************ TABLE SAMPLE                          ************/
/************ 設置例
<table class="sample">
<tr><th>テスト</th><td>テスト</td></tr>
<tr><th>テスト</th><td>テスト</td></tr>
<tr><th>テスト</th><td>テスト</td></tr>
</table>
********************/

table.sample {
  border-collapse:collapse;
  width:100%;
  }
table.sample th,
table.sample td{
  padding:10px;
  border:1px solid #000;
  }
table.sample th {
  text-align:center;
  background: var(--main-color-subs);
  color:var(--txt-color-on-bg);
  }
table.sample th:first-child {
	width:100px;
	}




/*** _menu_btn ***/
/*** 設置例
<div class="menu_btn">
	<button><a href="#service01">テスト</a></button>
	<button><a href="#service02">テスト</a></button>
	<button><a href="#service03">テスト</a></button>
</div>
<div class="menu_btn">
	<button><a href="#service01">テスト</a></button>
	<button><a href="#service03">テスト</a></button>
</div>
***/

.menu_btn{
	margin:0 0 10px;
	padding:0;
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
    }
.menu_btn button{
	border:none;
	background:var(--main-color-subs);
	position:relative;
	flex-basis:48%;
	margin-bottom:20px;
	}
.menu_btn button a{
	display:block;
	padding:10px 40px 10px 10px;
	text-decoration:none;
	color:#fff;
	}
.menu_btn button:hover{
	background-color: #bbbbbb;
	transition:0.5s;
	}
.menu_btn button a:after{
	position:absolute;
	right:10px;
	top:0; /* 上下中央に */
	bottom:0; /* 上下中央に */
	margin:auto; /* 上下中央に */
	content: '';
	width: 5px;
	height: 5px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform: rotate(135deg);
	margin-right:10px;
	}

@media screen and (max-width: 1100px) {
.menu_btn{
	display:block;
	margin:0;
	}
.menu_btn button{
	margin-bottom:10px;
	width:100%;
	}
}




/************ その他SAMPLES 適宜追加 ここから       ************

-----DIRECT LINK ADJ-----
[id^="service0"] { margin-top:-80px; padding-top:80px;}
-----MINCHO-----
font-family: "Times New Roman","YuMincho","Hiragino Mincho ProN","Yu Mincho","MS PMincho","Noto Serif JP",serif;
-----CLEARFIX-----（不使用）
.clearfix::after { content: "";	display: block;	clear: both;}
-----MEDIA QUERY-----
@media screen and (min-width: 769px) {
  }
@media screen and (max-width: 768px) {
  }
-----WRAP-----
.wrap {	width:1024px; margin:0 auto;}
-----COLOR-----
.red {color:#dc143c;}
-----arrow （横向き）-----
.arrow{
  width:50px;
  margin:0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 50px 0 50px 30px;
  border-color: transparent transparent transparent #6AA7CD;
  margin:100px 20px 0 20px;
  }
************ SAMPLES ここまで ************/


/** http://localhost:81/web-test/experiment/ucolumn/  **/

/***************************************************************
GRIDBOX
■設置イメージ
<div class="gridbox">
<h3 class="title">ABC</h3>
<div class="photo"><img src="img/img01.jpg" /></div>
<div class="text">testtesttest</div>
</div>
****************************************************************/

.gridbox {
	width:100%;
	display:grid;
	gap: 10px;
	grid-template-columns:4fr 6fr;
	grid-template-rows: 30px auto;
/*
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(2, 1fr);*/
	}
.gridbox .photo {
	grid-column:1;
	grid-row:1 / 3;
/*grid-area: 1 / 1 / 3 / 2;*/
	}
.gridbox .photo img{
	width:100%;
	}
.gridbox .title {
	grid-column:2;
	grid-row:1; 
	margin:0;
/*
height:50px;
grid-area: 1 / 2 / 2 / 3;*/
	}
.gridbox .text {
	margin:0;
	grid-column:2;
	grid-row:2; 
	}

@media screen and (max-width:768px){
.gridbox {
	display:block;
	}
.gridbox .photo {
	margin:20px 0;
	}
}


dl.faq dt,
dl.faq dd{
    display:flex;
    }
dl.faq div {
    width:30px;
    height:30px;
    text-align:center;
    line-height:30px;
    border-radius:5px;
    color:#fff;
    margin-right:10px;
    margin-bottom:20px;
    }
dl.faq dt div {
    background:#807363;
    }
dl.faq dd div {
    background:#AAA197;
    }
dl.faq p{
    line-height:30px;
    flex:1;
    }