.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:0px;
  text-align:center;
  padding-bottom:10px;
  }
.border02:before {
  position:absolute;
  bottom:0;
  left:calc(50% - 50px);
  content: '';
  width:50px;
  border-bottom: 5px solid #ccc;
  }
.border02:after {
  position:absolute;
  bottom:0;
  left:50%;
  content: '';
  width:50px;
  border-bottom: 5px solid var(--main-color-subs);
  }

/* 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;
  }
.border07::before,.border07::after {
  display: block;
  content: ' ';
  flex-grow: 1;
  margin: 0 1em;
  height: 2px;
  background-color: var(--main-color-subs);
  }
@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:1024px; margin:0 auto;}
  }
@media screen and (max-width: 768px) {
  .sp_none {display:none;}
  .wrap_box {width:100%;}
  }




/*** h2 ***/
.ucolumnSec h2{
  margin-top:0;
  font-size:30px;
  }
/*** h3 ***/
.ucolumnSec h3{
  font-size:21px;
  margin-top:0;
  }

/*** outerbox 汎用囲み枠 ***/
.outerbox {
  border:1px solid #555;
  padding:30px;
  box-sizing:border-box;
  position:relative;
  }
.outerbox_bg {
  background:#223C4C;
  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 h2{
  font-size:24px;
  }
.ucolumnSec h3{
  font-size:18px;
  }
.ucolumnSec{
  padding:10px;
  box-sizing:border-box;
  }
.outerbox {
  border:1px solid #555;
  padding:10px;
  box-sizing:border-box;
  position:relative;
  }
.outerbox_bg {
  background:#223C4C;
  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{
  margin:0!important;
  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;
	}


table.recruit {
  border-collapse:collapse;
  width:100%;
  }
table.recruit th,
table.recruit td{
  padding:10px;
  border:1px solid #fff;
  }
table.recruit th {
  text-align:center;
  background: #223C4C;
  color:var(--txt-color-on-bg);
  }
table.recruit th:first-child {
	width:200px;
	}
@media screen and (max-width:768px){
table.recruit 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;
    }


.color-red {
  color:#ffa07a;
}

#main .c-layout_pattern .wp-block-button.implant-maker-buttons {
  flex-basis: 30%;
}
@media screen and (max-width:768px){
  #main .c-layout_pattern .wp-block-button.implant-maker-buttons {
    flex-basis: 80%;
  }
  #main .c-layout_pattern .wp-block-button.implant-maker-buttons:nth-of-type(even) {
    margin: 0;
  }
  #main .c-layout_pattern .wp-block-button__link {
    padding: 15px 30px 15px 10px;
    font-size: 3.0vw;
  }
}

@media screen and (max-width:768px){
  #main .c-layout_pattern .wp-block-button__link {
    padding: 15px 30px 15px 10px;
    font-size: 3.0vw;
  }
}


#main .c-layout_pattern .implant-maker-buttons .wp-block-button__link:before {
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

#main .c-layout_pattern .implant-maker-buttons .wp-block-button__link.is-hover::before,
#main .c-layout_pattern .implant-maker-buttons .wp-block-button__link:hover::before {
  top: 50%;
}

#main .c-layout_pattern .uagb-section__inner-wrap h3 {
  font-weight: bold;
  font-size: 2rem;
  margin-top: 30px;
}

#p-second.p-implant #main .c-layout_pattern .flow .wp-block-media-text .wp-block-media-text__content h4 {
  font-size: 2.4rem;
  font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", "Noto Serif JP", serif;
  color: #fff;
  padding-bottom: 5px;
  border-bottom: solid 1px #fff;
  box-sizing: border-box;
}


.bg-implant-head {
  background-color: #f0f8ff;
  color: #002d42;
}
.alignleft {
  text-align: left !important;
}

#main .c-layout_pattern .wp-block-table table tr.tr_img td {
  text-align: center;
}

#main .c-layout_pattern .wp-block-table table th {
  font-size: 2rem;
}
#main .c-layout_pattern .uagb-section__inner-wrap h3.wp-block-media-text__content__ttl {
  font-size: 2.2rem;
  margin-top:0;
}
.implant_price {
  margin: 50px auto;
}
.implant_price table {
  margin: 0 auto;
}
.implant_price table tr th {
  border: solid 1px #fff;
  padding: 10px;
}
.implant_price table tr td {
  background: #fff;
  color:#091f29;
  border: solid  1px #091f29;
  padding: 10px;
}

#main .c-layout_pattern .uagb-section__inner-wrap ul.implant_faq {
  text-align: left;
  margin-top: 40px;
}
#main .c-layout_pattern .uagb-section__inner-wrap ul.implant_faq li::before{
  content: none;
}
#main .c-layout_pattern .uagb-section__inner-wrap ul.implant_faq li.que {
  font-size: 2rem;
}
#main .c-layout_pattern .uagb-section__inner-wrap ul.implant_faq li.ans {
  font-weight: normal;
  margin-bottom: 30px;
}

.koujo_shiki {
  font-size: 20px;
  font-weight: bold;
  margin: 10px 0;
}

@media screen and (max-width:768px){
  .table-scroll {
    overflow: scroll;
  }
  .table-scroll table {
    width: 600px;
  }
  #main .c-layout_pattern .wp-block-table table th {
    font-size: 1.8rem;
  }
  #main .c-layout_pattern .uagb-section__inner-wrap h3.wp-block-media-text__content__ttl {
    font-size: 2.2rem;
    margin-top:20px;
  }
  #main .c-layout_pattern .uagb-section__inner-wrap ul.implant_faq li {
    padding-left: 0;
  }
  #main .c-layout_pattern .uagb-section__inner-wrap ul.implant_faq li.que {
    font-size: 1.8rem;
  }
}

.center {
  text-align: center;
}