@charset "UTF-8";

/*-----------------------------------------------------
	common
-----------------------------------------------------*/
a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0}
.mt10{margin-top:10px;}.mt20{margin-top:20px;}.mt30{margin-top:30px;}.mt40{margin-top:40px;}.mt50{margin-top:50px;}.mt60{margin-top:60px;}.mt70{margin-top:70px;}.mb10{margin-bottom:10px;}.mb20{margin-bottom:20px;}.mb30{margin-bottom:30px;}.mb40{margin-bottom:40px;}.mb50{margin-bottom:50px;}.mb60{margin-bottom:60px;}.mb70{margin-bottom:70px;}.pt10{padding-top:10px;}.pt20{padding-top:20px;}.pt30{padding-top:30px;}.pt40{padding-top:40px;}.pt50{padding-top:50px;}.pt60{padding-top:60px;}.pt70{padding-top:70px;}.pb10{padding-bottom:10px;}.pb20{padding-bottom:20px;}.pb30{padding-bottom:30px;}.pb40{padding-bottom:40px;}.pb50{padding-bottom:50px;}.pb60{padding-bottom:60px;}.pb70{padding-bottom:70px;}

* {
    word-break: normal !important;
    word-wrap: break-word;
    box-sizing: border-box;
}
body, input, textarea, select, option {
    font-family: "BIZ UDPGothic", '游ゴシック体', Yu Gothic, '游ゴシック', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 16px;
    line-height: 1.5;
    color: #292F4A;
}
body {
    margin: 0 auto;
    max-width: 1920px;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    background: #FFF;
}
img {
    max-width: 100%;
    height: auto;
    border: 0;
    vertical-align: bottom;
    -webkit-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    backface-visibility: hidden;
}
a {
    text-decoration: underline;
    color: #399C90;
    -webkit-transition: all 250ms ease-in-out;
    -moz-transition: all 250ms ease-in-out;
    -ms-transition: all 250ms ease-in-out;
    -o-transition: all 250ms ease-in-out;
    transition: all 250ms ease-in-out;
}
a:hover {
    text-decoration: none;
}
a,
a img,
button,
button img,
.scale,
header nav .sub,
header nav .main li > .btn,
header nav .search_btn,
header .search_content .search_form form button,
#toppage #faq ul li .que,
.single-post .shere dd button,
.post-content-single dl.article-menu > dt,
#toppage #faq ul li,
#toppage #faq ul li .que:before,
#toppage #faq ul li .que:after,
.supervisor_list li a:hover .right .prof,
.supervisor_list li a:hover .right div,
#faq ul.pdown li,
#faq ul.pdown li .que:before,
#faq ul.pdown li .que:after,
input[type="submit"],
#reserve input[type="radio"] + span,
#reserve input[type="radio"] + span::after,
#reserve input[type="checkbox"]:not([name="accept[]"]) + span,
#reserve input[type="checkbox"]:not([name="accept[]"]) + span::after,
#reserve .button,
#contact button,
#page-top span,
.floatlink a {
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -ms-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}
a:hover img,
header .search_content .search_form form button:hover,
.post-content-single .supervisor .btn a:hover,
#contact button:hover,
#page-top span:hover,
.floatlink a:hover {
    text-decoration: none;
    opacity: 0.7;
    filter: alpha(opacity=70);
    -ms-filter: "alpha(opacity=70)";
}
iframe {
    vertical-align: bottom;
}
table {
    width: 100%;
}
th {
    text-align: left;
}
input[type="button"],
input[type="submit"] {
    -webkit-appearance: none;
    border-radius: 0;
}
.content-inner {
    display: block;
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
    max-width: 1320px;
    box-sizing: content-box;
    padding-top: 40px;
    padding-bottom: 200px;
}
.inner {
    display: block;
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
    max-width: 1100px;
    box-sizing: content-box;
}
.w800 {
    margin: 0 auto;
    max-width: 800px;
}
.sp,
.tab {
    display: none;
}
.ib {
    display: inline-block;
}
.fb {
    font-weight: 600;
}
.sans {
    font-family: 'Noto Sans JP', '游ゴシック体', Yu Gothic, '游ゴシック', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
}
.serif {
    font-family: "Noto Serif JP", "游明朝体", "Yu Mincho", "游明朝", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
}
.ymi {
    font-family: "游明朝体", "Yu Mincho", "游明朝", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "Noto Serif JP", "MS P明朝", "MS PMincho", serif;
    font-weight: 400;
}
.ygo {
    font-family: "游ゴシック体", Yu Gothic, "游ゴシック", "YuGothic", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;
    font-weight: 500;
}
.mro {
    font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-weight: 400;
}
.mgo {
    font-family: "ヒラギノ丸ゴ Pro W4","ヒラギノ丸ゴ Pro","Hiragino Maru Gothic Pro","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","HG丸ｺﾞｼｯｸM-PRO","HGMaruGothicMPRO";
}
.zen {
    font-family: "Zen Kaku Gothic New", '游ゴシック体', Yu Gothic, '游ゴシック', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 400;
    font-style: normal;
}
.zen.m {
    font-weight: 500;
}
.zen.b {
    font-weight: 700;
}
.budp {
    font-family: "BIZ UDPGothic", '游ゴシック体', Yu Gothic, '游ゴシック', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 400;
    font-style: normal;
}
.budp.b {
    font-weight: 700;
}
.ppn {
    font-family: "Poppins", '游ゴシック体', Yu Gothic, '游ゴシック', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 400;
    font-style: normal;
}
.ppn.m {
    font-weight: 500;
}
.clearfix {
    zoom: 1;
}
.clearfix:after {
    content: "";
    display: block;
    clear: both;
}
.clearfix:after {
    height: 0;
    visibility: hidden;
}
.d-contents{
    display: contents;
}
@media only screen and (max-width: 959px) {
    .d-lg-contents{
        display: contents;
    }
}
@media only screen and (max-width: 767px) {
    .d-md-contents{
        display: contents;
    }
}
.cnt-up {
    counter-reset: item;
    list-style: none;
    padding-left: 1.5em;
}
.cnt-up li:before {
    counter-increment: item;
    content: counter(item) ".";
    margin-left: -1.7em;
    margin-right: 0.5em;
    width: 1.2em;
    display: inline-block;
    text-align: center;
}
.flex {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    justify-content: space-between;
}
.ifrm {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 56.25%;
}
.ifrm iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.scale:hover img {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
}
.btn_efc {
    overflow: hidden;
}
.btn_efc a:hover img,
button.btn_efc:hover img {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -ms-filter: "alpha(opacity=100)";
    transform: translateY(3px);
}
.tbl01,
#contact table {
    border-spacing: 0 1px;
    font-size: 15px;
}
.tbl01 th,
#contact th {
    padding: 25px 15px 25px 25px;
    vertical-align: middle;
    border: 1px solid #d6d6d6;
    background: #ccc;
}
.tbl01 td,
#contact td {
    padding: 25px 30px 25px 25px;
    text-align: left;
    vertical-align: middle;
    border: 1px solid #d6d6d6;
    background: #fff;
}
.bg01 {
    background: #FFF url(../img/common/bg01.webp) repeat center top;
}
.udl {
    line-height: 1;
    background-image: linear-gradient(transparent 40%, #ffe115 0%);
    display: inline-block;
}
.pnk {
	color: #ED90A3;
}
.grn {
    color: #399C90;
}
.article_list li .title a:hover,
.single-post .recommend .slick-slide .title a:hover,
.search_content .article ul.wpp-list li a:hover {
    color: #399C90;
}

/* プレースホルダー
-----------------------------------------------------*/
/* 各ベンダープレフィックスが取れた標準版！！(http://caniuse.com/#search=placeholder-shown) */ :placeholder-shown {
                                                                              color: #a2a1a1;
                                                                          }
/* Google Chrome, Safari, Opera 15+, Android, iOS */ ::-webkit-input-placeholder {
                                                         color: #a2a1a1;
                                                     }
/* Firefox 18- */ :-moz-placeholder {
                      color: #a2a1a1;
                      opacity: 1;
                  }
/* Firefox 19+ */ ::-moz-placeholder {
                      color: #a2a1a1;
                      opacity: 1;
                  }
/* IE 10+ */ :-ms-input-placeholder {
                 color: #a2a1a1;
             }
input:focus::-webkit-input-placeholder {
    color: transparent;
}
input:focus:-moz-placeholder {
    color: transparent;
}
input:focus::-moz-placeholder {
    color: transparent;
}

/* ラジオボタン
-----------------------------------------------------*/
input[type="radio"] {
    display: none;
}
input[type="radio"] + span {
    display: inline-block;
    position: relative;
    margin-right: 30px;
    padding-left: 25px;
    cursor: pointer;
}
input[type="radio"] + span::before,
.wpcf7-form-control-wrap[data-name="sex"] input[type="checkbox"] + span::before {
    content: "";
    display: block;
    position: absolute;
    top: 5px;
    left: 0;
    width: 16px;
    height: 16px;
    border: 1px solid #67BEB5;
    border-radius: 50%;
    background: #FFF;
}
input[type="radio"]:checked + span,
.wpcf7-form-control-wrap[data-name="sex"] input[type="checkbox"]:checked + span {
    font-weight: bold;
}
input[type="radio"]:checked + span::after,
.wpcf7-form-control-wrap[data-name="sex"] input[type="checkbox"]:checked + span::after,
#reserve input[type="radio"] + span:hover::after,
#reserve input[type="checkbox"]:not([name="accept[]"]) + span:hover::after,
#reserve input[type="checkbox"]:not([name="accept[]"]):checked + span::after {
    content: "";
    display: block;
    position: absolute;
    top: 9px;
    left: 4px;
    width: 8px;
    height: 8px;
    background: #67BEB5;
    border-radius: 50%;
}

#reserve input[type="radio"] + span::before,
#reserve input[type="checkbox"]:not([name="accept[]"]) + span:before {
    top: 43px;
    left: 68px;
    width: 28px;
    height: 28px;
	border-radius: 50%;
}
#reserve input[type="radio"] + span:hover::after,
#reserve input[type="radio"]:checked + span::after,
#reserve input[type="checkbox"]:not([name="accept[]"]) + span:hover::after,
#reserve input[type="checkbox"]:not([name="accept[]"]):checked + span::after {
    top: 49px;
    left: 74px;
    width: 16px;
    height: 16px;
}
#reserve input[type="radio"] + span:hover,
#reserve input[type="radio"]:checked + span,
#reserve input[type="checkbox"]:not([name="accept[]"]) + span:hover,
#reserve input[type="checkbox"]:not([name="accept[]"]):checked + span {
    background-color: rgba(103, 190, 181, .1);
}

/* チェックボックス
-----------------------------------------------------*/
input[type="checkbox"] {
    display: none;
}
input[type="checkbox"] + span {
    display: inline-block;
    position: relative;
    margin-right: 30px;
    padding-left: 25px;
    cursor: pointer;
}
input[type="checkbox"] + span:before {
    content: '';
    display: inline-block;
    width: 16px;
    height: 16px;
    position: absolute;
    top: 5px;
    left: 0;
    border: 1px solid #67BEB5;
    background: #FFF;
}
input[type="checkbox"]:checked + span {
    font-weight: bold;
}
input[type="checkbox"]:checked + span:after {
    content: '';
    position: absolute;
    top: 5px;
    left: 5px;
    width: 6px;
    height: 12px;
    border: 2px solid #67BEB5;
    border-radius: 0;
    border-top-color: transparent;
    border-left-color: transparent;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

#reserve .wpcf7-form-control-wrap[data-name="accept"] .wpcf7-list-item input[type="checkbox"] + span:before {
    top: 8px;
    width: 20px;
    height: 20px;
}
#reserve .wpcf7-form-control-wrap[data-name="accept"] .wpcf7-list-item input[type="checkbox"] + span:after {
    width: 9px;
    height: 18px;
    top: 6px;
}

/*-----------------------------------------------------
	h1
-----------------------------------------------------*/
h1 {
    background: url(../img/common/h1_bg.webp) no-repeat left top / 155px auto;
    padding: 2.5em 2em;
}
h1 .ja {
    display: block;
    font-family: "Zen Kaku Gothic New", '游ゴシック体', Yu Gothic, '游ゴシック', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 40px;
    margin-bottom: .1em;
}
h1 .en {
    display: block;
    font-family: "Poppins", '游ゴシック体', Yu Gothic, '游ゴシック', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 16px;
    color: #399C90;
    letter-spacing: .06em;
}

h1 + .exp {
	margin-bottom: 74px;
}

/*-----------------------------------------------------
	header
-----------------------------------------------------*/
#wrapper {
    overflow: hidden;
}
header {
    padding: 18px 20px;
    border-radius: 0 0 20px 20px;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 0 16px rgba(0, 0, 0, .1);
}
header.fixed,
header.fixed_pc {
    position: fixed;
    z-index: 10001;
    top: 0;
    left: 0;
    right: 0;
}
header::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	background: #FFF;
	z-index: 2;
	border-radius: 0 0 20px 20px;
	bottom: 0;
	box-shadow: 0 0 16px rgba(0, 0, 0, .1);
}
header.abs {
    position: absolute;
    z-index: 9999;
    top: 0;
    left: 0;
    right: 0;
}
.logged-in.admin-bar header {
    top: 32px;
}
header .site-logo {
	position: relative;
	z-index: 3;
}
header nav {
    display: flex;
    align-items: center;
    z-index: 2;
}
header nav .main > li:nth-child(n+2) {
	margin-left: 40px;
}
header nav .main li > .btn,
header nav li a {
    font-size: 18px;
    text-decoration: none;
    color: #292F4A;
}
header nav .sub li a {
	font-size: 16px;
}
header nav .sub li a:hover {
	color: #399C90;
}
header nav .main li > .btn,
header nav .main > li > a,
header nav .sub li a:hover {
    position: relative;
    font-weight: 700;
}
header nav .main li:hover > .btn,
header nav .main > li:hover > a {
	color: #399C90;
}
header nav .main li > .btn {
	position: relative;
	padding-right: 15px;
	cursor: pointer;
}
header nav .main li > .btn::after {
    content: '';
    position: absolute;
    z-index: 2;
    right: 0;
    top: 9px;
    width: 7px;
    height: 7px;
    border-right: 2px solid #399C90;
    border-bottom: 2px solid #399C90;
    transform: rotate(45deg);
}

header nav .sub {
	position: absolute;
	top: 95px;
	background: #E9F3F4;
	display: none;
	opacity: 0;
	border-radius: 8px;
	margin: auto;
	z-index: 2;
	font-size: 18px;
}
header nav .sub .label {
	font-weight: 700;
    border-right: 1px solid #B4E1DC;
    width: 9%;
    padding: 25px 10px 25px 0;
}
header nav .sub li {
	margin-right: 1.5em;
}
header nav .sub li:nth-child(n+2) {
}
header nav .main > li:hover .sub {
    display: flex;
    opacity: 100%;
}
header nav .main > li:hover .sub::before {
	content: '';
	position: absolute;
	bottom: 100%;
	left: 0;
	right: 0;
	height: 41px;
}
header nav li.category .sub {
	left: 5%;
	right: 5%;
	padding: 10px 2%;
}
header nav li.category .sub ul {
	width: 91%;
	padding: 25px 3%;
	justify-content: flex-start;
}
header nav li.contact .sub {
	flex-wrap: wrap;
	padding: 25px;
	width: 393px;
}
header nav .search_btn {
	position: relative;
    width: 88px;
    height: 44px;
    text-indent: -9999px;
    border-radius: 22px;
    overflow: hidden;
    background: #E9F3F4 url(../img/common/search_icon.webp) no-repeat center center / 24px auto;
    margin-left: 41px;
    cursor: pointer;
}
header nav .search_btn:hover {
	background-color: rgba(103, 190, 181, .1);
}
header nav .search_btn.open {
	background-image: none;
}
header nav .search_btn.open::before,
header nav .search_btn.open::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 26px;
	border: 2px solid #399C90;
	margin: auto;
	bottom: 0;
	height: 0;
	right: 0;
}
header nav .search_btn.open::before {
   transform: rotate(45deg);
}
header nav .search_btn.open::after {
   transform: rotate(-45deg);
}

header .menu_content {
    position: fixed;
    left:0;
    right:0;
    top: 0;
    padding: 143px 20px;
    background: #FFF;
    display: none;
    z-index: 1;
    bottom: 0;
    overflow: scroll;
}
header .menu_content > * {
    margin: 0 auto;
    max-width: 1320px;
}
header .menu_content .article {
	display: none;
}
header .menu_content .banner {
    max-width: 343px;
    margin: 0 auto;
}
header .sp_menu{
    gap:3vw;
    position: fixed;
    z-index: 1;
}
header .sp_menu span{
	vertical-align:top;
}
header .search_content > * + * {
    margin-top: 7vw;
}
header .btnbox {
	margin-top: 10px;
	display: flex;
	justify-content: space-between;
	width: 100%;
}
header .btnbox li {
	width: 49%;
	margin: 0 !important;
}	
header .btnbox li:nth-child(n+2) {
	margin-top: 8px;
}
header .btnbox li a {
	position: relative;
	display: block;
	height: 108px;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	border: 1px solid #B4E1DC;
	background: #FFF;
	border-radius: 12px;
	padding: 5px 5px 15px;
	color: #000;
	text-decoration: none;
}
header .btnbox li a::before {
	content: '';
	position: absolute;
	z-index: 1;
	right: 5px;
	bottom: 5px;
	width: 24px;
	height: 24px;
	border: 1px solid #E9F3F4;
	border-radius: 100%;
	background: #FFF;
}
header .btnbox li a::after {
	content: '';
	position: absolute;
	z-index: 2;
	right: 15px;
	bottom: 13px;
	width: 7px;
	height: 7px;
	border-right: 2px solid #399C90;
	border-bottom: 2px solid #399C90;
	transform: rotate(-45deg);
}
header .btnbox li:nth-child(2) a {
    padding-right: 10px;
}

/*-----------------------------------------------------
	content
-----------------------------------------------------*/
.bcnbox {
    font-size: 14px;
    margin-bottom: 3.5em;
}
main article .inner {
    margin-top: 24px;
}

/* セクション共通  */
.section_title{
    margin-bottom: 30px;
    padding-bottom: 5px;
    font-size: 22px;
    font-weight: bold;
    border-bottom: 1px solid #67BEB5;
    letter-spacing: 0.08em;
}
.section_title:before{
    content: "";
    display: inline-block;
    border: 4px solid #67BEB5;
    width: 0.7em;
    height: 0.7em;
    border-radius: 1em;
    margin-right: 0.3em;
}

/* #メインビジュアル
-----------------------------------------------------*/
#mainvisual {
    min-height: 400px;
    text-align: center;
    background-image: url(../img/mv_bg.jpg);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: auto 100%;
}
.sec {
    min-height: 125px;
    text-align: center;
    background-repeat: no-repeat;
    background-position: center top;
    background-size: auto 100%;
}

/* .cv コンバージョンエリア
-----------------------------------------------------*/
.cv01 {
    min-height: 660px;
    color: #FFF;
    background: url(../img/common/cv01_bg.webp) no-repeat center top / 1920px auto;
    position: relative;
    z-index: 1;
    overflow: hidden;
}
.cv01::after {
	content: '';
	position: absolute;
	z-index: 2;
	bottom: -132px;
	left: 0;
	right: 0;
	height: 200px;
	background: url(../img/common/cv01_bg-b.webp) no-repeat center top / 1920px auto;
	z-index: 2;
}

.cv01 .inner {
	padding-top: 80px;
	padding-bottom: 130px;
	flex-wrap: wrap;
}
.cv01 .txtbox {
	width: 52%;
}
.cv01 .txtbox .catch .min {
	display: block;
	font-size: 24px;
}
.cv01 .txtbox .catch .lrg {
	margin-top: .1em;
	display: block;
	font-size: clamp(10px, 5vw, 56px);
}
.cv01 .txtbox .txt {
	font-size: 18px;
	margin-top: 2em;
	line-height: 1.7;
	letter-spacing: .05em;
}
.cv01 .icnbox {
	width: 40%;
}
.cv01 .icnbox .pic {
	margin: 0 auto;
	max-width: 300px;
	position: relative;
	z-index: 1;
}
.cv01 .icnbox .cclbox {
    font-size: 19px;
    text-align: center;
    margin-top: -57px;
    position: relative;
    z-index: 2;
}
.cv01 .icnbox .cclbox li {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 136px;
	height: 136px;
	border-radius: 100%;
	background: #288479;
	letter-spacing: .05em;
}
.cv01 .mail {
    margin-top: 46px;
    width: 44%;
}
.cv01 .tel {
    margin-top: 55px;
    width: 51%;
    line-height: 1;
}

/* section セクション
-----------------------------------------------------*/
.ttlbox {
    background: no-repeat center top;
    background-size: auto 100%;
}
.ttlbox h2{
    font-size:36px;
}
.ttlbox.nobg {
    background: none;
}
.cntbox h3{
    font-size:28px;
}
#sec09 .inner {
    position: relative;
}
#sec09 .ifrmbox {
    position: absolute;
    left: 0;
    bottom: 3%;
    right: 0;
    max-width: 30%;
    margin: auto;
}

/* #ctm 新型コロナウィルス感染拡大防止対策について
-----------------------------------------------------*/
#ctm {

}
#ctm .ttlbox .inner {
	padding-top: 100px;
    padding-bottom: 50px;
}
#ctm .ttlbox h2 {
	font-weight: bold;
	font-size: 24px;
}
#ctm .ttlbox h2 .lrg {
	font-size: 24px;
}
#ctm .cntbox .inner {
    padding-top: 0;
	padding-bottom: 100px;
}
#ctm .ctmbox {
	flex-wrap: wrap;
}
#ctm .ctmbox li .frm {
	padding: 20px 10px;
	height: 100%;
	border: 1px solid #292F4A;
	border-radius: 5px;
}
#ctm .ctmbox li .title {
	margin-bottom: 10px;
	font-weight: bold;
	font-size: 16px;
}
#ctm .ctmbox li .pic {
	margin-bottom: 10px;
}
#ctm .ctmbox li .txt {
	font-size: 14px;
}

/* #reason 選ばれる理由
-----------------------------------------------------*/
#reason {

}
#reason .ttlbox .inner {
    padding-top: 0px;
    padding-bottom: 0px;
}
#reason .cntbox .inner {
	padding-top: 100px;
    padding-bottom: 100px;
}
#reason .exp {
	margin-bottom: 50px;
}
#reason .rsnbox {
	flex-wrap: wrap;
}
#reason .rsnbox .rsn {
	flex: 0 0 48%;
	max-width: 48%;
	position: relative;
	padding-top: 175px;
}
#reason .rsnbox .rsn:nth-of-type(n+3) {
	margin-top: 50px;
}
#reason .rsnbox .rsn .txtbox {
	flex: 0 0 100%;
    max-width: 100%;
	position: relative;
	z-index: 2;
	text-align: left;
}
#reason .rsnbox .rsn .txtbox .title {
	flex-direction: column;
}
#reason .rsnbox .rsn .txtbox .title dt {
	margin: 0 auto 20px;
}
#reason .rsnbox .rsn .txtbox .title dd {
	font-weight: bold;
	font-size: 28px;
	text-align: center;
}
#reason .rsnbox .rsn .txtbox .txt {
    font-size: 18px;
}
#reason .rsnbox .rsn .pic {
	flex: 0 0 100%;
    max-width: 100%;
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	right: 0;
}

/* タイプ別スタイル */
#reason .rsnbox.type-b {
	flex-direction: column;
}
#reason .rsnbox.type-b .rsn {
	flex: 0 0 100%;
	max-width: 100%;
	padding-top: 0;
}
#reason .rsnbox.type-b .rsn:nth-of-type(2) {
	margin-top: 50px;
}
#reason .rsnbox.type-b .rsn .txtbox {
	flex: 0 0 calc(100% - 360px);
	max-width: calc(100% - 360px);
}
#reason .rsnbox.type-b .rsn .pic {
	flex: 0 0 310px;
	max-width: 310px;
	position: static;
}
#reason .rsnbox.type-b .rsn .txtbox .title {
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	margin-bottom: 30px;
}
#reason .rsnbox.type-b .rsn .txtbox .title dt {
	margin: 0 20px 0 0;
}
#reason .rsnbox.type-b .rsn .txtbox .title dd {
	text-align: left;
}
#reason .rsnbox.type-b.altn .rsn:nth-of-type(2n) .txtbox {
	order: 2;
}
#reason .rsnbox.type-b.altn .rsn:nth-of-type(2n) .pic {
	order: 1;
}

/* #caution 悪徳業者に注意
-----------------------------------------------------*/
#caution {
	color: #FFF;
	background: #292F4A;
}
#caution .ttlbox .inner {
	padding-top: 100px;
	padding-bottom: 50px;
}
#caution .ttlbox h2 {
	font-weight: bold;
	font-size: 28px;
}
#caution .cntbox .inner {
    padding-top: 0;
	padding-bottom: 100px;
}
#caution .exp {
	margin-bottom: 50px;
}
#caution .txtbox {
	text-align: left;
}

/* タイプ別スタイル */
#caution.type-b {
	margin: 0 auto 100px;
	padding-left: 20px;
	padding-right: 20px;
	max-width: 1100px;
	box-sizing: content-box;
}
/* #service サービス紹介
-----------------------------------------------------*/
#service {

}
#service .ttlbox .inner {
    padding-top: 0px;
    padding-bottom: 0px;
}
#service .cntbox .inner {
    padding-top: 100px;
    padding-bottom: 100px;
}
#service .flex {
    flex-wrap: wrap;
}
#service .srv {
    flex: 0 0 48%;
    max-width: 48%;
    padding: 18px 12px;
    border: 3px solid #292F4A;
    border-radius: 10px;
    background: #FFF;
}
#service .srv:nth-child(n+3) {
    margin-top: 30px;
}
#service .srv .picbox {
    position: relative;
}
#service .srv .picbox .txt {
    position: absolute;
    z-index: 2;
    top: 44px;
    left: 30px;
}
#service .srv .picbox .ini {
    margin-bottom: 15px;
    margin-left: 5px;
    padding: 4px 10px;
    width: 217px;
    font-weight: bold;
    font-size: 24px;
    text-align: center;
    border-radius: 22px;
    color: #FFF;
    background: #292F4A;
}
#service .srv .picbox .title {
    line-height: 1.2;
    font-weight: bold;
    font-size: 44px;
    text-shadow:
            #fff 2px 0px, #fff -2px 0px, #fff 0px -2px, #fff 0px 2px,
            #fff 2px 2px, #fff -2px 2px, #fff 2px -2px, #fff -2px -2px,
            #fff 1px 2px, #fff -1px 2px, #fff 1px -2px, #fff -1px -2px,
            #fff 2px 1px, #fff -2px 1px, #fff 2px -1px, #fff -2px -1px,
            #292F4A 4px 0px 1px, #292F4A -4px 0px 1px, #292F4A 0px -4px 1px, #292F4A 0px 4px 1px,
            #292F4A 4px 4px 1px, #292F4A -4px 4px 1px, #292F4A 4px -4px 1px, #292F4A -4px -4px 1px,
            #292F4A 2px 4px 1px, #292F4A -2px 4px 1px, #292F4A 2px -4px 1px, #292F4A -2px -4px 1px,
            #292F4A 4px 2px 1px, #292F4A -4px 2px 1px, #292F4A 4px -2px 1px, #292F4A -4px -2px 1px;
    color: #292F4A;
}
#service .srv .picbox .pic {
    position: relative;
    z-index: 1;
}
#service .srv .inn {
    padding: 20px 10px 0;
}
#service .srv ul {
    position: relative;
    margin-top: 10px;
    padding-bottom: 33px;
}
#service .srv ul li {
    font-weight: bold;
    font-size: 20px;
    padding-left: 30px;
    text-align: left;
}
#service .srv ul li:nth-child(n+2) {
    margin-top: 5px;
}
#service .srv ul li.etc {
    position: absolute;
    right: 0;
    bottom: 0;
    padding-left: 0;
    background: none;
}
#service .srv:nth-child(7) .picbox .txt {
    top: 18px;
}
#service .inner > .pic {
    margin-top: 60px;
    text-align: center;
}

/* #maker 取り扱いメーカー
-----------------------------------------------------*/
#maker {

}
#maker .ttlbox .inner {
    padding-top: 0px;
    padding-bottom: 0px;
}
#maker .cntbox .inner {
	padding-top: 100px;
	padding-bottom: 100px;
}
#maker .mkbox {
	flex-wrap: wrap;
	justify-content: center;
}
#maker .mkbox:nth-of-type(n+2) {
	margin-top: 50px;
}
#maker .mkbox li {
	flex: 0 0 19.0909090909091%;
	max-width: 19.0909090909091%;
	margin-left: 1.13636363636364%;
}
#maker .mkbox li:nth-child(5n+1) {
	margin-left: 0;
}
#maker .mkbox li:nth-child(n+6) {
	margin-top: 10px;
}

/* タイプ別スタイル */
#maker .mkbox.txt li {
	display: -webkit-box;
	display: -webkit-flex;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 80px;
	border: 1px solid #ddd;
}

/* #voice お客様の声
-----------------------------------------------------*/
#voice {

}
#voice .ttlbox .inner {
    padding-top: 0px;
    padding-bottom: 0px;
}
#voice .cntbox .inner {
	padding-top: 100px;
	padding-bottom: 100px;
}
#voice .exp {
	margin-bottom: 50px;
}
#voice .psn {
    text-align: left;
}
#voice .psn:nth-of-type(n+2) {
	margin-top: 50px;
}
#voice .psn .blc {
	align-items: center;
	margin-bottom: 30px;
}
#voice .psn .txtbox {
	font-weight: bold;
	flex: 0 0 calc(100% - 200px);
	max-width: calc(100% - 200px);
}
#voice .psn .cat {
	font-size: 16.8px;
	text-align: center;
	border-radius: 7px;
	color: #FFF;
	background: #292F4A;
	padding: 3px 12px;
	margin-bottom: 10px;
	display: inline-block;
}
#voice .psn .title {
	font-size: 24px;
	flex: 0 0 70%;
	margin-bottom: 10px;
}
#voice .psn .prf {
	font-size: 14px;
}
#voice .psn .pic {
	flex: 0 0 165px;
}
#voice .psn .detail {
	justify-content: flex-start;
	align-items: center;
	margin-top: 26px;
	font-weight: bold;
	margin-left: 13px;
}
#voice .psn .detail dt {
	padding: 2px 5px;
	font-size: 14px;
	color: #FFF;
	background: #f52601;
}
#voice .psn .detail dd {
	font-size: 20px;
	color: #0347ac;
	margin-left: 15px;
}
#voice .psn .txt {
	line-height: 1.56470588235294;
	font-size: 17px;
}

/* タイプ別スタイル */
#voice .psnbox.type-col {
	display: -webkit-box;
	display: -webkit-flex;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
#voice .psnbox.type-col .psn {
    flex: 0 0 48%;
    max-width: 48%;
}
#voice .psnbox.type-col .psn:nth-of-type(-n+2) {
	margin-top: 0;
}
#voice .psnbox.frmbox .psn {
	padding: 30px 3%;
	border: 1px solid #ccc;
	border-radius: 5px;
}

/* #flow ～の流れ
-----------------------------------------------------*/
#flow {

}
#flow .ttlbox .inner {
    padding-top: 0px;
    padding-bottom: 0px;
}
#flow .cntbox .inner {
	padding-top: 100px;
	padding-bottom: 100px;
}
#flow .exp {
    margin-bottom: 50px;
}
#flow ol li {
	position: relative;
}
#flow ol li:nth-child(n+2) {
	margin-top: 50px;
}
#flow ol li .ini {
	padding: 3px 10px;
    margin-right: 10px;
	line-height: 1.2;
	font-weight: bold;
	font-size: 24px;
	color: #fff;
	background: #292F4A;
}
#flow ol li .ini .min {
	font-size: 18px;
}
#flow ol li .flex {
	background: #FFF;
	align-items: center;
	padding: 30px 3%;
}
#flow ol li .flex .txtbox {
	flex: 0 0 calc(100% - 360px);
	max-width: calc(100% - 360px);
	text-align: left;
}
#flow ol li .flex .txtbox .title {
	font-size: 32px;
	font-weight: bold;
	color: #292F4A;
	margin-bottom: 10px;
}
#flow ol li .flex .txtbox .txt {
	font-size: 21px;
}
#flow ol li .flex .pic {
	flex: 0 0 310px;
	max-width: 310px;
}

/* タイプ別スタイル */
#flow ol.type-b li,
#flow ol.type-d li {
	padding: 45px 0 0 50px;
}
#flow ol.type-c li,
#flow ol.type-e li {
	padding: 0 0 0 50px;
}
#flow ol.type-b li .ini,
#flow ol.type-c li .ini,
#flow ol.type-d li .ini,
#flow ol.type-e li .ini {
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	display: -webkit-box;
	display: -webkit-flex;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	padding: 0;
    margin-right: 0;
	width: 92px;
	height: 92px;
}
#flow ol.type-c li .ini,
#flow ol.type-e li .ini {
	bottom: 0;
	margin: auto;
}
#flow ol.type-c li .flex,
#flow ol.type-e li .flex {
	padding: 30px 3% 30px 6%;
}
#flow ol.type-d li .ini,
#flow ol.type-e li .ini {
	border-radius: 100%;
}

/* #area 対応エリア
-----------------------------------------------------*/
#area {
    background: #666;
}
#area .ttlbox .inner {
    padding-top: 0px;
    padding-bottom: 0px;
}
#area .cntbox .inner {
    padding-top: 100px;
    padding-bottom: 100px;
}
#area .exp {
    margin-bottom: 50px;
    color: #FFF;
}
#area .pref:nth-of-type(n+2) {
    margin-top: 50px;
}
#area .pref .cap {
    font-size: 30px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 23px;
    color: #FFF;
}
#area .pref dl {
    border-radius: 0 0 3px 3px;
    overflow: hidden;
}
#area .pref dl:nth-of-type(n+2) {
    margin-top: 10px;
}
#area .pref dl dt {
    font-size: 24px;
    font-weight: bold;
    background: #ccc;
    padding: 15px 28px;
}
#area .pref dl dd {
    font-size: 18px;
    background: #f1f1f1;
    padding: 9px 28px 22px;
}
#area .pref dl dd.min {
    font-size: 15px;
}

/* 縦一列 */
#area .type-row {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    justify-content: space-between;
}
#area .type-row .pref {
    margin-top: 0;
	flex: 0 0 48%;
	max-width: 48%;
}
#area .type-row .pref:nth-of-type(n+3) {
    margin-top: 50px;
}

/* #faq よくあるご質問
-----------------------------------------------------*/
#faq .ttlbox .inner {
    padding-top: 0px;
    padding-bottom: 0px;
}
#faq .cntbox .inner {
    padding-top: 100px;
    padding-bottom: 100px;
}

/* .wpcf7 ステップフォーム
-----------------------------------------------------*/
#reserve .wpcf7,
#reserve .form-container {
    margin: 0 auto;
    max-width: 800px;
}
#reserve .wpcf7 .form-container {
    overflow: hidden;
    width: 800px;
    transition: height 0.5s ease;
    position: relative;
}
.wpcf7 .form-slider {
    display: flex;
    align-items: flex-start;
    width: 4000px;
    transition: transform 0.5s ease;
}
.wpcf7 .form-step {
    width: 800px;
    box-sizing: border-box;
}
.wpcf7 .btn-group {
    display: flex;
    justify-content: space-between;
    margin: 30px auto 0;
    max-width: 500px;
}
.wpcf7 .btn-group.single {
	justify-content: center;
}
.wpcf7 .box + .box {
	margin-top: 27px;
}
#reserve .wpcf7 .box + .box {
	margin-top: 57px;
}
.wpcf7 .box .label .req {
    width: 45px;
    font-size: 12px;
    border-radius: 5px;
    color: #EC6D87;
    background: #FCE9ED;
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    margin-right: 10px;
}
.wpcf7 .box .label + p {
    margin-top: 10px;
}
.wpcf7 .box input[type="text"],
.wpcf7 .box input[type="tel"],
.wpcf7 .box input[type="email"],
.wpcf7 .box select,
.wpcf7 .box textarea {
	border: 1px solid #67BEB5;
	border-radius: 5px;
}
.wpcf7 .box input[type="text"],
.wpcf7 .box input[type="tel"],
.wpcf7 .box input[type="email"],
.wpcf7 .box textarea {
	padding: 12px;
	width: 100%;
}
.wpcf7 .box select {
	padding: 15px 18px;
	text-align: center;
}
.wpcf7 .box input[name="postcode"] {
	width: 200px;
}
.wpcf7 .box input[name="city"] {
	margin-left: 10px;
	width: 400px;
}
.wpcf7-form-control-wrap[data-name="pref"],
.wpcf7-form-control-wrap[data-name="town"],
.wpcf7-form-control-wrap[data-name="building"] {
	margin-top: 10px;
}
.wpcf7-form-control-wrap[data-name="pref"] {
	display: inline-block;
}
.wpcf7-form-control-wrap[data-name="town"],
.wpcf7-form-control-wrap[data-name="building"] {
	display: block;
}
#reserve .wpcf7 .box input[type="text"],
#reserve .wpcf7 .box input[type="tel"],
#reserve .wpcf7 .box input[type="email"],
#reserve .wpcf7 .box textarea {
	padding: 14px;
	font-size: 20px;
}
.wpcf7 .box select {
    cursor: pointer;
}
.wpcf7 .box textarea {
    height: 150px;
    vertical-align: bottom;
}
.wpcf7 .box.tc {
    text-align: center;
}
.wpcf7 .box .note {
    margin-top: 10px;
}
.wpcf7 #step05 .box + .box {
}
#reserve .wpcf7-radio .wpcf7-list-item,
#reserve .wpcf7-checkbox .wpcf7-list-item {
	display: block;
	font-size: 20px;
	margin: 0;
}
#reserve .wpcf7-radio .wpcf7-list-item + .wpcf7-list-item,
#reserve .wpcf7-checkbox .wpcf7-list-item + .wpcf7-list-item {
	margin-top: 20px;
}
#reserve .wpcf7-radio .wpcf7-list-item span,
#reserve .wpcf7-checkbox .wpcf7-list-item input:not([name="accept[]"]) + span {
	border: 1px solid #67BEB5;
	border-radius: 5px;
	display: block;
	padding: 40px 20px 40px 124px;
	cursor: pointer;
	margin: 0;
}
.wpcf7 .sbmbox {
    position: relative;
    margin-top: 0;
}
.wpcf7 .button,
.wpcf7 .sbmbox input[type="submit"] {
    position: relative;
    padding: 10px 70px 10px 10px;
    width: 240px;
    display: flex;
    height: 80px;
    border-radius: 40px;
    font-size: 18px;
    background: #399C90;
    justify-content: center;
    align-items: center;
    color: #FFF;
    cursor: pointer;
    box-shadow: 6px 6px 2px rgba(0, 0, 0, .06);
    border: 1px solid #399C90;
    margin: 0;
}
.wpcf7 .button:hover,
.wpcf7 .sbmbox input[type="submit"]:hover {
    background-color: rgba(103, 190, 181, .8);
}
.wpcf7 .button::before,
.wpcf7 .sbmbox::before {
    content: '';
    position: absolute;
    top: 0;
    right: 73px;
    bottom: 0;
    margin: auto;
    width: 24px;
    height: 24px;
    border-radius: 100%;
    background: #FFF;
    z-index: 2;
}
.wpcf7 .button::after,
.wpcf7 .sbmbox::after {
    content: '';
    position: absolute;
    top: 0;
    right: 82px;
    bottom: 0;
    width: 8px;
    height: 8px;
    border-right: 2px solid #399C90;
    border-bottom: 2px solid #399C90;
    transform: rotate(-45deg);
    margin: auto;
    z-index: 3;
}
.wpcf7 .button.prevStep {
	border-color: #C2E5E1;
	color: #399C90;
	background: #FFF;
	padding: 10px 10px 10px 70px;
}
.wpcf7 .button.prevStep::before {
	background: #C2E5E1;
	left: 73px;
	right: inherit;
}
.wpcf7 .button.prevStep::after {
	border-right-color: #FFF;
	border-bottom-color: #FFF;
	transform: rotate(135deg);
	right: inherit;
	left: 82px;
}
.wpcf7 .button.prevStep:hover,
header .btnbox li a:hover,
footer .btnbox li a:hover,
footer .outbox a:hover,
#about .lnkbox li a:hover {
    background-color: rgba(103, 190, 181, .1);
    color: #399C90;
}

.wpcf7 .button.disabled,
.wpcf7 .sbmbox.disabled input[type="submit"] {
    color: #FFF;
    border-color: #CCC;
    background-color: #ccc;
    cursor: not-allowed;
    pointer-events: none; /* クリック無効 */
}
.wpcf7 .button.disabled::after,
.wpcf7 .sbmbox.disabled::after {
    border-right-color: #ccc;
    border-bottom-color: #ccc;
}
.wpcf7-spinner {
	position: absolute !important;
	left: 0;
	right: 0;
	margin: 20px auto 0 !important;
}


#reserve .wpcf7 .box .label {
    font-size: 20px;
}
#reserve .wpcf7 .box .label .req {
    width: 50px;
    font-size: 14px;
}

/* プログレスバー */
.statusbox {
    text-align: center;
    margin-bottom: 57px;
}
.statusbox .progress-bar {
    margin: 0 auto;
    max-width: 600px;
    height: 24px;
    background-color: #eee;
    border-radius: 15px;
    background: #E9F3F4;
    overflow: hidden;
}
.statusbox .bar {
    width: 16.66%; /* 初期値 */
    height: 100%;
    border-radius: 12px;
    background-color: #399C90;
    transition: width 0.5s ease;
}

.form-step .intro {
    font-size: 24px;
    text-align: center;
}
.form-step .intro::after {
    content: '';
    display: inline-block;
    width: 162px;
    height: 139px;
    background: url(../img/reserve/reserve_img.webp) no-repeat center center / 100% auto;
    vertical-align: middle;
    margin-left: 16px;
}

#thanks .form-step {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.form-container.complete .form-step .intro::after {
    background-image: url(../img/reserve/reserve_img_complete.webp);
}

.form-container.complete .statusbox .bar {
    width: 100%;
}

/* #contact フォーム
-----------------------------------------------------*/
#contact .cntbox .inner {
    padding-top: 100px;
    padding-bottom: 100px;
    min-height: 500px;
}
#contact .title {
	font-weight: bold;
	font-size: 32px;
	text-align: center;
	margin-bottom: 20px;
}
#contact .exp {
    margin-bottom: 50px;
    text-align: center;
}
#contact form {
    margin: 0 auto;
    text-align: left;
}
#contact table {
    margin: 0 auto 30px;
    max-width: 1000px;
}
#contact th,
#contact td {
    vertical-align: top;
}
#contact th,
#contact td dl dt {
    font-size: 16px;
    font-weight: bold;
}
#contact th {
    padding: 21px 20px;
    width: 30%;
}
#contact th label {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
#contact th .req,
#contact td .req {
    margin-left: 5px;
    padding: 3px 4px;
    font-size: 12px;
    color: #FFF;
    background: #e21f1d;
    min-width: 35px;
    text-align: center;
}
#contact td {
    padding: 12px 20px;
    width: 70%;
}
#contact td dl:nth-of-type(n+2) {
    margin-top: 10px;
}
#contact td input,
#contact td select,
#contact td textarea {
    margin: 3px 0;
    padding: 5px 8px;
    font-size: 16px;
    vertical-align: bottom;
    border: 1px solid #cbcbcb;
    border-radius: 5px;
    background: #FFF;
}
#contact td input {
    width: 50%;
}
#contact td input[type="radio"],
#contact td input[type="checkbox"] {
    width: auto;
}
#contact td input.lng {
    width: 75%;
}
#contact td .rdoset {
    margin: 10px 30px 10px 0;
    display: inline-block;
}
#contact td select {
    width: 120px;
    height: 36px;
    cursor: pointer;
}
#contact td input[name="address_zip1"] {
    width: 80px;
    margin-right: 5px;
}
#contact td input[name="address_zip2"] {
    width: 90px;
}
#contact td select[name="address_pref"] {
    display: block;
    margin: 10px 0;
}
#contact td button[name="address_zipbtn"] {
    margin: 3px 0 3px 10px;
    height: 36px;
    font-size: 16px;
    vertical-align: sub;
    border: 0;
    color: #FFF;
    background: #000;
    cursor: pointer;
    display: inline-block;
}
#contact td input[name="address_address"] {
    width: 90%;
}
#contact td textarea {
    width: 100%;
    height: 190px;
    min-height: 190px;
    resize: none;
}
#contact td .note {
    margin: 15px 0;
    font-size: 15px;
    font-weight: bold;
}
#contact td .timetable {
    margin-bottom: 15px;
}
#contact p.validation-error,
#contact p.require-error {
    color: #c90000;
}
#contact button[type="submit"],
#contact button[type="button"] {
    display: block;
    margin: 0 auto;
    border: 0;
    background: none;
    cursor: pointer;
}

/* 縦一列 */
#contact .type-col tr {
    display: block;
    padding: 12px 0;
}
#contact .type-col th,
#contact .type-col td {
    display: block;
    padding: 0;
    width: auto;
}
#contact .type-col th {
    margin-bottom: 5px;
}

/* datepicker */
.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
    cursor: pointer;
}

/* #review 口コミ一覧
-----------------------------------------------------*/
#review .ttlbox .inner {
    padding-top: 100px;
}
#review .cntbox .inner  {
    padding-top: 80px;
    padding-bottom: 100px;
}
#review .review_list li {
    display: grid;
    grid-gap: 30px;
    padding: 20px;
    display: flex;
    background: #aaa;
    align-items: center;
    border-radius: 15px;
    text-align: left;
}
#review .review_list li + li {
    margin-top: 15px;
}
#review .review_list li.star-5 p::before {
    content: "★★★★★";
    display: block;
    color: #cc9;
    padding-bottom: 0.3em;
}
#review .review_list li.star-4 p::before {
    content: "★★★★";
    display: block;
    color: #cc9;
    padding-bottom: 0.3em;
}



/* #ancher_section アンカーリンク付きコンテンツ
-----------------------------------------------------*/
#ancher_section .ttlbox .inner {
    padding-top: 100px;
}
#ancher_section .cntbox .inner {
    padding-top: 80px;
    padding-bottom: 60px;
}
#ancher_section .cntbox .inner .ancher {
    padding-bottom: 50px;
}
#ancher_section .cntbox .inner .ancher a {
    display: block;
    padding: 40px;
    background: #eee;
}
#ancher_section .cntbox .inner .subsec + .subsec{
    margin-top: 15px;
}

/* #infinite_scroll 無限logoスクロール
-----------------------------------------------------*/
#infinite_scroll .cntbox {
    padding-top: 80px;
    padding-bottom: 0px;
}
/* #store 店舗紹介
-----------------------------------------------------*/
#store .ttlbox .inner {
    padding-top: 100px;
}
#store .cntbox .inner  {
    padding-top: 80px;
    padding-bottom: 100px;
}
#store .cntbox .inner h3 {
    margin: 60px 0 40px;
}
#store .cntbox .inner p {
    margin: 0 auto 40px;
}

/*-----------------------------------------------------
	.error404
-----------------------------------------------------*/
.error404 article {
    text-align: center;
}
.error404 h1 {
    font-size: 24px;
    background: none;
    padding-top: 3.5em;
    font-weight: 700;
    padding-bottom: 2em;
}

/*-----------------------------------------------------
	footer
-----------------------------------------------------*/
footer .cv01 {
    border-radius: 40px 40px 0 0;
}
footer .btmbox {
	background: #E9F3F4;
}
footer .btmbox a {
	text-decoration: none;
	color: #292F4A;
}
footer .btmbox .content-inner {
	padding-top: 32px;
	display: grid;
	grid-template-columns: 23.5% 34% 24%;
	justify-content: space-between;
	padding-bottom: 100px;
}
footer .site-logo {
	grid-row: 1 / 2;
	grid-column: 1 / 2;
}
footer .btnbox {
	grid-row: 2 / 3;
	grid-column: 1 / 2;
	margin-top: 39px;
}
footer nav {
	grid-row: 1 / 3;
	grid-column: 2 / 3;
}
footer .cmpbox {
	grid-row: 3 / 4;
	grid-column: 1 / 2;
}
footer .outbox {
	grid-row: 1 / 3;
	grid-column: 3 / 4;
}
footer .copyright {
	grid-row: 3 / 4;
	grid-column: 3 / 4;
	font-size: 10px;
	color: #A3A3A3;
	align-items: flex-end;
	display: flex;
	justify-content: flex-end;
	letter-spacing: .04em;
}

/* .btnbox */
footer .btnbox li:nth-child(n+2) {
    margin-top: 8px;
}
footer .btnbox li a {
    position: relative;
    display: block;
    border: 1px solid #B4E1DC;
    border-radius: 8px;
    background: #FFF;
    padding: 19px 10px 19px 16px;
}
footer .btnbox li a::before {
    content: '';
    position: absolute;
    z-index: 1;
    right: 5px;
    bottom: 5px;
    width: 24px;
    height: 24px;
    border: 1px solid #E9F3F4;
    border-radius: 100%;
    background: #FFF;
}
footer .btnbox li a::after {
    content: '';
    position: absolute;
    z-index: 2;
    right: 15px;
    bottom: 13px;
    width: 7px;
    height: 7px;
    border-right: 2px solid #399C90;
    border-bottom: 2px solid #399C90;
    transform: rotate(-45deg);
}

/* nav */
footer nav li a:hover,
footer .cmpbox li a:hover {
    color: #399C90;
}
footer nav .main {
    display: grid;
    grid-template-columns: 48% 48%;
    justify-content: space-between;
}
header nav .main li > .btn a,
header .menu_content nav .main > li > a,
footer nav .main > li .btn a,
footer nav .main > li > a {
    position: relative;
    display: block;
    padding: 8px 30px 8px 0;
}
header nav .main li > .btn a::before,
header .menu_content nav .main > li > a::before,
footer nav .main > li .btn a::before,
footer nav .main > li > a::before,
#about .lnkbox ul li a::before {
    content: '';
    position: absolute;
    z-index: 1;
    right: 5px;
    top: 0;
    width: 24px;
    height: 24px;
    border: 1px solid #E9F3F4;
    border-radius: 100%;
    background: #FFF;
    bottom: 0;
    margin: auto;
}
header nav .main li > .btn a::after,
header .menu_content nav .main > li > a::after,
footer nav .main > li .btn a::after,
footer nav .main > li > a::after,
#about .lnkbox ul li a::after {
    content: '';
    position: absolute;
    z-index: 2;
    right: 15px;
    top: 0;
    width: 7px;
    height: 7px;
    border-right: 2px solid #399C90;
    border-bottom: 2px solid #399C90;
    transform: rotate(-45deg);
    bottom: 0;
    margin: auto;
}
footer nav .main > li:nth-child(1) {
	grid-row: 1 / 5;
	grid-column: 1 / 2;
}
footer nav .main > li:nth-child(2) {
	grid-row: 1 / 2;
	grid-column: 2 / 3;
}
footer nav .main > li:nth-child(3) {
	grid-row: 2 / 3;
	grid-column: 2 / 3;
}
footer nav .main > li:nth-child(4) {
	grid-row: 3 / 4;
	grid-column: 2 / 3;
}
footer nav .main > li:nth-child(n+3) {
	margin-top: 1.25em;
}
footer nav .sub li {
	margin-top: .85em;
}
footer nav .sub li a:hover,
footer .cmpbox li a:hover {
	text-decoration: underline;
}

/* cmpbox */
footer .cmpbox {
	font-size: 12px;
	margin-top: 60px;
}
footer .cmpbox li:nth-child(n+2) {
	margin-top: 1em;
}

/* outbox */
footer .outbox .label {
	font-size: 12px;
	display: block;
	margin-bottom: .5em;
}
footer .outbox a {
	position: relative;
	display: block;
	padding: 20px 40px 20px 35px;
	font-size: 14px;
	border: 1px solid #B4E1DC;
	border-radius: 32px;
	background: #FFF;
}
footer .outbox a::after {
	content: '';
	position: absolute;
	top: 0;
	right: 26px;
	bottom: 0;
	width: 12px;
	height :12px;
	background: url(../img/common/arw.webp) no-repeat center center / 100% auto;
	margin: auto;
}

footer .copyright .inner {
    padding-top: 12px;
    padding-bottom: 12px;
}
#page-top {
    display: none;
    position: fixed;
    z-index: 10000;
    bottom: 120px;
    right: 2%;
}
#page-top span {
    display: block;
    cursor: pointer;
    background: #FFF;
    border: 1px solid #E5E5E5;
    border-radius: 100%;
    width: 60px;
    height: 60px;
}
#page-top span::after {
    content: '';
    position: absolute;
    z-index: 2;
    right: 0;
    top: 0;
    width: 10px;
    height: 10px;
    border-right: 2px solid #B4B4B4;
    border-bottom: 2px solid #B4B4B4;
    transform: rotate(-135deg);
    margin: auto;
    left: 0;
    bottom: 0;
}
#page-top span:hover {
    border-color: #399C90;
    background: rgba(103, 190, 181, .1);
}
#page-top span:hover::after {
    border-right-color: #399C90;
    border-bottom-color: #399C90;
}

.floatlink {
    display: none;
    position: fixed;
    z-index: 10000;
    bottom: 20px;
    right: 2%;
}
.floatlink a {
    display: block;
    padding: 13px 10px;
    width: 240px;
    text-align: center;
    color: #FFF;
    background: #F6AC3F;
    border-radius: 40px;
    text-decoration: none;
}
.floatlink a .min {
    display: block;
    font-size: 16px;
}
.floatlink a .lrg {
    display: block;
    font-size: 20px;
}

.floatbox {
    padding-bottom: env(safe-area-inset-bottom);
}
.floatbox.fixed,
.floatbox.fixed_pc {
    position: fixed;
    z-index: 9998;
    bottom: 0;
    left: 0;
    right: 0;
}
.floatbox .inner {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    justify-content: center;
    align-items: flex-end;
    padding: 11vw 2% 1vw;
}
.floatbox .button + .button {
    margin-left: 1vw;
}
.floatbox:after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: env(safe-area-inset-bottom);
    background: #ccc;
}

/*-----------------------------------------------------
	confirm 内容確認 / thanks 送信完了
-----------------------------------------------------*/
.confirm header .inner,
.thanks header .inner {
    justify-content: center;
}
.confirm header .info,
.thanks header .info {
    display: none;
}
.confirm #contact .exp,
.thanks #contact .exp {
    text-align: center;
}
.confirm #contact td {
    padding: 22px 20px;
}
.confirm #contact .btnbox {
    justify-content: center;
    margin-top: 50px;
}
.confirm #contact button[type="submit"],
.confirm #contact button[type="button"] {
    margin: 0;
}
.confirm #contact button[type="submit"] {
    order: 2;
}
.confirm #contact button[type="button"] {
    order: 1;
}
.confirm #contact>.inner,
.thanks #contact>.inner {
    padding-top: 100px;
    padding-bottom: 100px;
    min-height: 300px;
}
.confirm #contact form {
    margin-top: 50px;
}
.confirm .totop,
.thanks .totop {
    margin-top: 1.5em;
    text-align: center;
}
.confirm .totop a,
.thanks .totop a {
    text-decoration: underline;
}
.confirm .totop a:hover,
.thanks .totop a:hover {
    text-decoration: none;
}

/*-----------------------------------------------------
	modal
-----------------------------------------------------*/
#modalBackground {
    position: fixed;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: rgba(0, 0, 0, 0);
    visibility: hidden;
    z-index: 10001;
}
#modalBackground.visible {
    background: rgba(0, 0, 0, .75);
    visibility: visible;
}

#modalCloseArea {
    position: fixed;
    width: 100%;
    height: 0;
    left: 0;
    top: 0;
    opacity: 0;
    visibility: hidden;
    z-index: 10003;
}
#modalCloseArea.visible {
    opacity: 1;
    visibility: visible;
}
#modalCloseArea .inner {
    position: relative;
    max-width: 1000px;
    padding-left: 50px;
    padding-right: 50px;
}
#modalCloseArea span.modalClose {
    position: absolute;
    top: 35px;
    right: 50px;
    cursor: pointer;
    max-width: 50px;
}

#modalForm {
    position: fixed;
    top: 35px !important;
    right: 50px !important;
    bottom: 35px !important;
    left: 50px !important;
    max-width: 1000px;
    padding: 30px 20px 60px;
    margin: auto !important;
    background: #fff;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    z-index: 10002;
}

/*スクロールバー全体*/
#modalForm::-webkit-scrollbar {
	-webkit-appearance: none;
    width: 12px;
    border-radius: 0 0 10px 0;
}

/*スクロールバーの軌道*/
#modalForm::-webkit-scrollbar-track {
  box-shadow: inset 0 0 6px rgba(0, 0, 0, .1);
}

/*スクロールバーの動く部分*/
#modalForm::-webkit-scrollbar-thumb {
  background-color: #666;
  box-shadow:0 0 0 1px rgba(255, 255, 255, .3);
}

#modalForm.visible {
    opacity: 1;
    visibility: visible;
}

#modalForm.fromTop {
    left: 50%;
    top: -200%;
}
#modalForm.fromRight {
    left: 200%;
    top: 0;
}
#modalForm.fromBottom {
    left: 50%;
    top: 200%;
}
#modalForm.fromLeft {
    left: -100%;
    top: 0;
}
#modalForm.fade {
    left: 50%;
    top: 0;
}

#modalForm #ajaxLoading {
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .25);
    text-align: center;
    z-index: 1;
    display: none;
}
#modalForm #ajaxLoading svg {
    position: fixed;
    width: 100px;
    height: 100%;
    margin: -50px 0 0 -50px;
}

#modalForm form {
    position: relative;
}

#modalForm .btnbox .button {
    width: 45%;
    color: #fff;
    font-weight: bold;
    font-size: 20px;
    border-radius: 40px;
    height: 80px;
    background: #F00;
}

#modalForm .btnbox .button.modalClose {
	background: #999;
}

@media screen and (max-width: 767px) {
    #modalForm .btnbox.flex {
        display: block;
    }
    #modalForm .btnbox .button {
        width: 75% !important;
        margin-top: 10px;
        height: 65px;
        font-size: 18px;
    }
    #modalForm .btnbox .button:after {
        display: block;
        clear: both;
        content: '';
    }
}

/* サイドメニュー */
*:has(> aside){
    display: flex;
    gap: 130px;
}
*:has(> aside) > *:not(aside){
    flex: 1 1 calc(100% - 450px);
}
*:has(> aside) > *:not(aside) h1 + *{
    margin-top: 30px;
}
aside{
    flex:0 0 320px;
}
aside > * + *{
    margin-top: 45px;
}
aside > * > *{
    padding:0 8px;
}
.search_content h3{
    font-size: 20px;
    font-weight: bold;
    border-bottom:1px solid #65BDB6;
    padding: 0.1em 0.3em 0.4em;
    margin-bottom: 1.4em;
    line-height: 1.6;
}
.search_content h3:before{
    content:"";
    display: inline-block;
    width: 0.8em;
    height: 0.8em;
    margin-right: 0.6em;
    border: 4px solid #65BDB6;
    border-radius: 1em;
    vertical-align: middle;
    margin-bottom: .1em;
}
.search_content .search_form p{
    font-size:18px;
    font-weight: bold;
}
.search_content .search_form form{
    margin-top: 1em;
    display: flex;
    align-items: center;
    position: relative;
}
.search_content .search_form form input{
    background: #F1F1F1;
    padding: 12px 75px 12px 20px;
    border-radius: 2em;
    border:none;
    width: 100%;
}
.search_content .search_form form input:focus {
    outline: none;
}
.search_content .search_form form button {
	width: 56px;
	height: 34px;
	text-indent: -9999px;
	border: 0;
	border-radius: 17px;
	overflow: hidden;
	background: #FFF url(../img/common/ico_search.svg) no-repeat center center;
	position: absolute;
	top: 0;
	right: 20px;
	bottom: 0;
	margin: auto;
	cursor: pointer;
}
aside .search_content .search_form form button:hover {
	background-color: rgba(103, 190, 181, .1);
}
header .search_content .search_form form input{
    padding: 1em;
    font-size: 18px;
    flex:1 1 auto;
}
header .search_content .search_form form button {
	height: 34px;
	width: 88px;
	border: 0;
	color: #FFF;
	border-radius: 17px;
	padding-right: 25px;
	margin-left: 25px;
	cursor: pointer;
	background: #399C90 url(../img/common/search_btn_icon.webp) no-repeat center right 15px / 14px auto;
	position: static;
	text-indent: 0;
}

.search_content dl {
    display: flex;
    flex-wrap: wrap;
    gap:5px;
}
.search_content dl dt{
    flex: 0 0 100%;
    font-size:18px;
    font-weight: bold;
    margin-bottom: .5em;
}
.search_content dl dt a {
	text-decoration: none;
	color: #292F4A;
}
.search_content dl dt a:hover {
	color: #399C90;
}
.search_content dl dt .inn {
	position: relative;
	padding-right: .75em;
}
.search_content dl dt .inn::after{
	content: '';
	position: absolute;
	z-index: 2;
	right: 0;
	top: 11px;
	width: 7px;
	height: 7px;
	border-right: 2px solid #399C90;
	border-bottom: 2px solid #399C90;
	transform: rotate(-45deg);
}
.search_content dl dd{
    padding:0;
}
.search_content dl dd a,
.single-post .cat-tag li a {
    background: #FFF;
    border:1px solid #E9F3F4;
    color: #65BDB6;
    border-radius: 1.2em;
    font-size:14px;
    padding:0.3em 1em;
    text-decoration: none;
    display: block;
}
.search_content dl dd a:hover,
.single-post .cat-tag li a:hover {
    border-color: #65BDB6;
    background: rgba(103, 190, 181, .1);
}
.search_content dl dd.link_all a{
	padding: 0;
	color: #292F4A;
	background: none;
}
.search_content .search_category_list dd a,
.single-post .cat-tag .catbox li a{
    background: #FCE9ED;
    border-color: #FCE9ED;
    color: #EC6D87;
}
.search_content .search_category_list dd a:hover,
.single-post .cat-tag .catbox li a:hover{
    border-color: #EC6D87;
}
.search_content dl dd.link_all,
.search_content .search_category_list dd.link_all {
	width: 100%;
	text-align: right;
}
.search_content dl dd.link_all a,
.search_content .search_category_list dd.link_all a{
	position: relative;
	padding: .5em 1em .5em 0;
	border: 0;
	color: #292F4A;
	background: none;
	display: inline-block;
}
.search_content dl dd.link_all a::after,
.search_content .search_category_list dd.link_all a::after{
    content: '';
    position: absolute;
    z-index: 2;
    right: 0;
    top: 13px;
    width: 7px;
    height: 7px;
    border-right: 2px solid #399C90;
    border-bottom: 2px solid #399C90;
    transform: rotate(-45deg);
}
.search_content .article {
	margin-left: auto;
	margin-right: auto;
	max-width: 500px;	
}
.search_content .article .wpp-shortcode {
	padding: 0;
}
.search_content .article ul.wpp-list {
    counter-reset: item;
    list-style: none;
}
.search_content .article ul.wpp-list li {
    position: relative;
}
.search_content .article ul.wpp-list li:before {
    counter-increment: item;
    content: counter(item);
    font-family: "Poppins", '游ゴシック体', Yu Gothic, '游ゴシック', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
    font-weight: 400;
    font-style: normal;
    width: 24px;
    height: 24px;
    line-height: 24px;
    border-radius: 100%;
    color: #FFF;
    background: #67BEB5;
    display: inline-block;
    text-align: center;
    left: -10px;
    position: absolute;
    top: -10px;
    z-index: 2;
}
.search_content .article ul.wpp-list li:nth-child(1)::before {
    background: #ED90A3;
}
.search_content .article ul.wpp-list li + li{
    margin-top: 1em;
}
.search_content .article ul.wpp-list li a{
    display: grid;
    grid-template-columns: 37% auto;
    gap: 0 8px;
    color: #000;
    text-decoration: none;
    position: relative;
    z-index: 1;
}
.search_content .article ul.wpp-list li .date{
    font-size:12px;
    grid-row: 1;
    grid-column: 2;
}
.search_content .article ul.wpp-list li .title{
    font-size:14px;
    grid-row: 2;
    grid-column: 2;
}
.search_content .article ul.wpp-list li .img{
    grid-row: 1/3;
    border-radius: 6px;
    overflow: hidden;
    min-width: 112px;
    height: 0;
    padding-top: 59%;
    position: relative;
}
.search_content .article ul.wpp-list li .img img{
    position: absolute;
    top: -100%;
    right: -100%;
    bottom: -100%;
    left: -100%;
    min-width: 100%;
    min-height: 100%;
	max-height: 100%;
    margin: auto;
    max-width: 125%;
}


/* 記事一覧 */
.article_list{
	display: flex;
	flex-wrap: wrap;
}
.article_list > li {
	margin-left: 2%;
	width: 32%;
}
.article_list > li:nth-child(3n+1) {
	margin-left: 0;
}
.article_list > li:nth-child(n+4) {
	margin-top: 50px;
}
.article_list a{
    text-decoration: none;
    color: #000;
    display: block;
}
.article_list a:hover{
	text-decoration: underline;
}
.article_list .img,
.single-post .recommend .slick-slide .img {
    position: relative;
    height:0;
    padding-top: 62.5%;
    width: 100%;
    display: block;
}
.article_list .img:first-of-type img,
.single-post .recommend .slick-slide .img:first-of-type img {
    position: absolute;
    top:0;
    left:0;
    height: 100%;
    width: 100%;
    object-fit: cover;
    -webkit-mask-image: url("../img/common/thumnail_clip.svg");
    mask-image: url("../img/common/thumnail_clip.svg");
    mask-position: center;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}
.article_list .img:first-of-type::after,
.single-post .recommend .slick-slide .img:first-of-type::after {
    content:"";
    background: url('../img/common/arrow_circle2.svg') center no-repeat;
    background-size:70%;
    display: inline-block;
    position: absolute;
    border-radius: 20px 0 0;
    bottom: 0;
    right: 0;
    width: 2.5em;
    height: 2.5em;
    z-index: 2;
}
.article_list .pst{
    margin-top: 10px;
}
.article_list .date,
.single-post .recommend .slick-slide .date {
    margin-top: 0.4em;
    font-size: 12px;
    display: block;
}
.article_list li .title,
.single-post .recommend .slick-slide .title {
    margin-top: 0.4em;
    font-size:18px;
    line-height: 1.28;
    display: block;
    font-weight: 700;
}
.article_list li .title a,
.single-post .recommend .slick-slide .title a {
	color: #292F4A;
}
.article_list .post-categories{
    display: flex;
    padding-top: 0.3em;
    gap:0.3em;
    flex-wrap: wrap;
}
.article_list .post-categories a {
    display: inline-block;
    color: #EC6D87;
    border: 1px solid #FCE9ED;
    padding: 0.2em 0.7em;
    border-radius: 1em;
    background: #FCE9ED;
    font-size: 0.87em;
}
.article_list .post-categories a:before {
    content:"・";
    font-weight: bold;
}
.article_list .post-categories a:hover {
    text-decoration: none;
    border-color: #EC6D87;
}
.article_list + .more{
    margin-top:60px;
    text-align:center;        
}
.article_list + .more span{
    display: inline-block;
    padding:0.3em;
    cursor: pointer;
}
.article_list + .more span:hover {
	text-decoration: underline;
	color: #399C90;
}
.article_list + .more span i{
    transform:rotate(90deg);
    display: inline-block;
    color: #399C90;
    font-size:1em;
    margin-left: 0.7em;
}


/* 投稿詳細 */
.post-content-single {
    padding-bottom: 88px;
}
.post-content-single * {
	letter-spacing: .1em;
}
.mce-content-body.post-type-post table th,
.mce-content-body.post-type-post table td,
.post-content-single th,
.post-content-single td {
    vertical-align: middle;
}
.post-content-single .blog_detail_thumbnail{
    border-radius: 20px;
    overflow: hidden;
}
.post-content-single .article_title{
    font-size: 36px;
    font-weight: bold;
    padding: 26px 0 0;
    line-height: 1.35;
    background: none;
}
.post-content-single .article_lead{
    margin-top: 10px;
    line-height: 1.65;
    font-size:17px;
}
.post-content-single .date{
    margin-top: 20px;
    font-size:14px;
    display: flex;
    gap: 1em;
}
.post-content-single .section_lead {
    margin-top: 1em;
}
.post-content-single .supervisor{
    margin-top: 35px;
    padding: 25px 30px 40px;
    border:1px solid #67BEB5;
    border-radius: 15px;
}
.post-content-single .supervisor .supervisor_info{
    margin-top: 17px;
    display: flex;
    gap:15px;
}
.post-content-single .supervisor .supervisor_info .image {
	border-radius: 6px;
	overflow: hidden;
}
.post-content-single .supervisor .supervisor_info .image img{
	height: 4.5em;
	width:auto;
}
.post-content-single .supervisor .supervisor_info .name{
    font-size:20px;
    line-height:1;
    font-weight:bold;
}
.post-content-single .supervisor .supervisor_info .prof{
    font-size: 14px;
    margin:5px 0 0;
}
.post-content-single .supervisor .txt{
    font-size:16px;
    margin-top: 12px;
}
.post-content-single .supervisor .btn {
    text-align: center;
}
.post-content-single .supervisor .btn a {
    background: #67BEB5;
    color: #FFF;
    text-decoration: none;
    padding: 1.2em 1.5em 1em 3.5em;
    border-radius: 2em;
    font-size: 15.3px;
}
.post-content-single .supervisor .btn a:after {
    content:"";
    display: inline-block;
    width:1.4em;
    height:1.4em;
    margin-left: 1.7em;
    background: url('../img/common/arrow_circle.svg');
    vertical-align: sub;
    background-size: contain;
}

.post-content-single dl.article-menu{
    margin: 65px 40px 0;
    border-radius: 10px;
	overflow: hidden;
    background: #E9F3F4;
}
.post-content-single dl.article-menu a{
    color: #000;
    text-decoration: none;
}
.post-content-single dl.article-menu a:hover{
	text-decoration: underline;
	color: #399C90;
}
.post-content-single dl.article-menu dt{
    font-size:18px;
    font-weight: bold;
}
.post-content-single dl.article-menu > dt{
    text-align: center;
    padding:16px;
    position: relative;
    cursor: pointer;
}
.post-content-single dl.article-menu > dt:hover {
	background-color: rgba(103, 190, 181, .1);
    color: #399C90;
}
.post-content-single dl.article-menu > dt:before,
.post-content-single dl.article-menu > dt:after {
    content: '';
    position: absolute;
    top: 0;
    right: 20px;
    bottom: 0;
    margin: auto;
    background: no-repeat center center
}
.post-content-single dl.article-menu > dt:before {
	border-top:3px solid #389C90;
	width: 20px;
	height: 0;
}
.post-content-single dl.article-menu > dt:after  {
	border-left:3px solid #389C90;
	width: 12px;
	height: 20px;
}
.post-content-single dl.article-menu > dt:before {
    opacity: 1.0;
    filter: alpha(opacity=0);
    -ms-filter: "alpha(opacity=0)";
}
.post-content-single dl.article-menu > dt.open:after  {
    opacity: 0.0;
    filter: alpha(opacity=100);
    -ms-filter: "alpha(opacity=100)";
}.post-content-single .talk li + li{
    margin-top: 50px;
}
.post-content-single .talk li{
    display: flex;
    gap:40px;
}
.post-content-single .talk li .person {
    text-align: center;
}
.post-content-single .talk li .person p + p{
    margin-top: 0.5em;
}
.post-content-single .talk li .talk_body{
    flex: 1 1 auto;
    border:1px solid #67BEB5;
    padding:15px;
    border-radius: 15px;
    position: relative;
}
.post-content-single .talk li .talk_body:before{
    content:"";
    display: inline-block;
    background: #fff;
    height: 1.1em;
    width: 0.9em;
    clip-path: polygon(0 50%,100% 0,100% 100%);
    position: absolute;
    right: 100%;
    top:1.7em;
}
.post-content-single .talk li .talk_body:after{
    content:"";
    display: inline-block;
    background: #67BEB5;
    height: 1.2em;
    width: 1em;
    clip-path: polygon(0 50%,100% 0,100% 10%,15% 50%,100% 90%,100% 100%);
    position: absolute;
    right: 100%;
    top:1.7em;
}
.post-content-single .talk li:nth-of-type(2n){
    flex-direction: row-reverse;
}
.post-content-single .talk li:nth-of-type(2n) .talk_body:after,
.post-content-single .talk li:nth-of-type(2n) .talk_body:before{
    transform:scale(-1,1);
    right: unset;
    left:calc(100% - 1px);
}


@media only screen and (max-width: 767px) {
    .post-content-single dl.article-menu > dt:before,
    .post-content-single dl.article-menu > dt:after {
		right: 3%;
		width: 7vw;
		height: 7vw;
		background-size: 100% auto;
	}
	.post-content-single dl.article-menu > dt:before {
		border-top:2px solid #389C90;
		width: 5.5vw;
		height: 0;
	}
	.post-content-single dl.article-menu > dt:after  {
		border-left:2px solid #389C90;
		width: 3vw;
		height: 5.5vw;
	}
}
.post-content-single dl.article-menu > dt + dd{
    padding-top: 25px;
    border-top:1px solid #B4E1DC;
}
.post-content-single dl.article-menu > dd:last-of-type{
    padding-bottom: 25px;
}
.post-content-single dl.article-menu > dd{
    padding: 7px 35px;
}
.post-content-single dl.article-menu > dd dt{
    padding-bottom: 6px;
}
.post-content-single dl.article-menu > dd dd{
    padding: 4px 10px ;
}
.post-content-single h2.section_title{
    margin-top: 75px;
    font-size:32px;
    font-weight: bold;
}
.post-content-single h2.section_title:before{
    content:"";
    border: 0;
    border-right: 4px solid #67BEB5;
    line-height: 1;
    height:1em;
    width:0;
    vertical-align: text-bottom;
    margin-right: 0.3em;
    border-radius: 0;
}
.post-content-single .subsection h3{
    margin-top: 50px;
    font-size:24px;
    font-weight: bold;
}
.post-content-single .sub_contents{
    margin-top: 1em;
    margin-bottom: 1em;
}
.post-content-single .sub_image{
    padding-top: 15px;
    padding-bottom: 20px;
    text-align: center;
}

.post-content-single .article_link{
    margin-top: 1em;
    border:1px solid #67BEB5;
    border-radius: 10px;
    overflow: hidden;
}
.post-content-single .article_link a{
    display: flex;
    text-decoration: none;
    padding: 23px;
    color: #292F4A;
    gap:15px;
    font-weight: bold;
    font-size:18px;
    align-items: center;
}
.post-content-single .article_link a:hover {
	background: #B4E1DC;
}
.post-content-single .article_link a .img + p{
    margin-top: 0;
}
.post-content-single .article_link img{
    height:6.15em;
    width:auto;
}
.post-content-single .sub_contents b,
.post-content-single .sub_contents strong {
    font-weight: 700;
}
.post-content-single .sub_contents > ol,
.post-content-single .sub_contents > ul:not(.talk){
    margin: 1em 0;
    padding: 23px 23px;
    border:1px solid #67BEB5;
    border-radius: 10px;
}
.post-content-single .sub_contents ol > br,
.post-content-single .sub_contents ul > br{
    display: none;
}
.post-content-single .sub_contents ol{
    list-style: decimal;
}

.post-content-single .sub_contents > ul{
    list-style: disc;
}
.post-content-single .sub_contents ol li,
.post-content-single .sub_contents ul li{
    margin-left: 1.5em;
}
.post-content-single .sub_contents ol li:nth-child(n+2),
.post-content-single .sub_contents ul li:nth-child(n+2){
    margin-top: 1em;
}

.post-content-single .sub_contents.frame {
    margin: 1em 0;
    padding: 20px;
    border: 1px solid #67BEB5;
    border-radius: 8px;
}
.post-content-single .sub_contents.reference {
    margin: 1em 0;
    padding: 20px 20px 20px 35px;
    border-radius: 8px;
    background: #F1F1F1;
    position: relative;
}
.post-content-single .sub_contents.reference::before {
	content: '';
	position: absolute;
	top: 20px;
	left: 20px;
	bottom: 20px;
	border-left: 3px solid #67BEB5;
}
.post-content-single .sub_contents.table td {
    text-align: center;
}
.post-content-single .sub_contents.reviews {
    margin: 1em 0;
    padding: 20px;
    border: 1px solid #67BEB5;
    border-radius: 8px;
}
.post-content-single .sub_contents.talkbox {
    margin: 1em 0;
}
.post-content-single .sub_contents.reviews .ttlbox {
    border-bottom: 1px solid #E9F3F4;
    align-items: center;
    padding-bottom: 1em;
    margin-bottom: 1em;
}
.post-content-single .sub_contents.reviews .ttlbox .image,
.post-content-single .sub_contents.talkbox .person .image {
    position: relative;
    margin-left: 1em;
    width: 60px;
    height: 60px;
    overflow: hidden;
    border-radius: 100%;
    margin: 0;
}
.post-content-single .sub_contents.reviews .ttlbox .image {
    width: 60px;
    height: 60px;
}
.post-content-single .sub_contents.talkbox .person .image {
    width: 80px;
    height: 80px;
}
.post-content-single .sub_contents.reviews .ttlbox .image img,
.post-content-single .sub_contents.talkbox .person .image img {
    position: absolute;
    top: -100%;
    right: -100%;
    bottom: -100%;
    left: -100%;
    margin: auto;
    min-width: 100%;
    min-height: 100%;
    max-width: 200%;
}
.post-content-single .sub_contents.reviews .ttlbox .image img.noimage,
.post-content-single .sub_contents.talkbox .person .image img.noimage {
    max-width: 100%;
}
.post-content-single .sub_contents.talkbox .person .name {
    font-size: 14px;
}

.single-post article .cv {
    border-radius: 40px;
    background: #399C90;
    min-height: inherit;
}
.single-post article .cv::after {
	content: none;
}
.single-post article .cv .inner {
	margin: 0;
	padding: 41px 4.5% 39px;
	position: relative;
}
.single-post article .cv .txtbox {
	position: absolute;
	z-index: 2;
	top: 41px;
	left: 4.5%;
	right: 4.5%;
	width: auto;
}
.single-post article .cv .txtbox .catch .lrg {
	margin-top: -.1em;
	font-size: 44px;
}
.single-post article .cv .txtbox .catch .lrg br {
	display: none;
}
.single-post article .cv .txtbox .txt {
	width: 62%;
}
.single-post article .cv .icnbox {
	position: relative;
	z-index: 1;
	width: 100%;
	display: flex;
	flex-direction: row-reverse;
	padding-top: 140px;
	justify-content: space-between;
}
.single-post article .cv .icnbox .pic {
	margin: 0;
	width: 35%;
}
.single-post article .cv .icnbox .cclbox {
	margin-top: 90px;
	width: 49%;
}
.single-post article .cv .icnbox .cclbox li {
	width: 119px;
	height: 119px;
	font-size: 16px;
}
.single-post article .cv .mail {
	margin-top: 36px;
	width: 49%;
}
.single-post article .cv .tel {
	margin-top: 46px;
	width: 48%;
}
.single-post article .cv .tel a::before {
	width: 19px;
}
.single-post article .cv .tel .num {
	font-size: 40px;
}

.single-post article .to-about {
	margin-top: 40px;
	border-radius: 40px;
	background: #E9F3F4 url(../img/common/to-about_bg.webp) no-repeat right 6% center / 221px auto;
	padding: 40px 5%;
}
.single-post article .to-about .txtbox .catch .min {font-size: 24px;display: block;}
.single-post article .to-about .txtbox .catch .lrg {font-size: 44px;display: block;}
.single-post article .to-about .txtbox .txt {font-size: 18px;margin-top: 28px;max-width: 500px;letter-spacing: .04em;line-height: 2;}
.single-post article .to-about .mail {margin-top: 22px;max-width: 380px;}
.single-post article .to-about .mail a {font-size: 18px;padding: 25px 60px 25px 34px;text-align: left;background: #389C90;}
.single-post article .to-about .mail a:hover {background: #118a7b;}

.single-post article .to-about .mail a::after {
    border-right-color: #389C90;
	border-bottom-color: #389C90;
}
.single-post .shere {
    display: flex;
    flex-wrap: wrap;
    margin-top: 80px;
    text-align: center;
    justify-content: space-between;
}
.single-post .shere dt {
    width: 100%;
    margin-bottom: 20px;
}
.single-post .shere dd {
    width: 24%;
}
.single-post .shere dd a,
.single-post .shere dd button {
	display: block;
	padding: 14px 10px;
	background: #E9F3F4;
	border-radius: 28px;
}
.single-post .shere dd a:hover,
.single-post .shere dd button:hover {
	background: rgba(103, 190, 181, .1);
}
.single-post .shere dd a img {
	width: 28px;
}
.single-post .shere dd button {
	border: 0;
	width: 100%;
	height: 56px;
	cursor: pointer;
}
.single-post .shere dd button img {
	width: 14px;
	vertical-align: text-top;
	margin-right: 10px;
}

.single-post .cat-tag {
    margin-top: 60px;
    border: 1px solid #E9F3F4;
    border-radius: 8px;
    padding: 30px 3.5%;
}
.single-post .cat-tag dt {
    width: 170px;
}
.single-post .cat-tag dd {
    width: calc(100% - 190px);
}
.single-post .cat-tag .catbox {
    margin-bottom: 30px;
}
.single-post .cat-tag dd ul {
    flex-wrap: wrap;
    gap: 5px;
    justify-content: flex-start;
}

/* 監修者一覧 */
.supervisor_list{
    margin-top: 50px;
}
.supervisor_list li{
    margin-top: 35px;
    border:1px solid #67BEB5;
    border-radius: 10px;
}
.supervisor_list li a{
    display: flex;
    gap:20px;
    padding: 23px 23px 23px;
    color: #000;
    text-decoration: none;
    align-items: center;
}
.supervisor_list li a:hover {
	background: rgba(103, 190, 181, .1);
}
.supervisor_list li .image{
    flex: 0 0 auto;
}
.supervisor_list li .image img{
    height:10.8em;
    width:auto;
    border-radius: 10px;
    overflow: hidden;
}
.supervisor_list li .name{
    font-size:22px;
    letter-spacing: 0.1em;
    line-height: 1;
}
.supervisor_list li .name:after{
    content:"";
    display: inline-block;
    width: 1.1em;
    height: 1.1em;
    margin-left: 1em;
    background: url('../img/common/arrow_circle2.svg');
    background-size: contain;
    vertical-align: bottom;
}

.supervisor_list li .prof{
    font-size:14px;
    margin: 0;
    margin-top: 4px;
}
.supervisor_list li div.right > div{
    margin-top: 14px;
    line-height: 1.3;
}

/* 監修者詳細 */
.supervisor-content-single .supervisor_info{
    margin-top: 35px;
    display: flex;
    gap: 25px;
}
.supervisor-content-single .supervisor_info .photo{
    border-radius: 15px;
    overflow: hidden;
    width: 40%;
}
.supervisor-content-single .supervisor_info h1{
    background: none;
    font-size: 34px;
    font-weight: bold;
    line-height: 1;
    padding:0;
}
.supervisor-content-single .supervisor_info .prof{
    font-size:15px;
    margin-top: 15px;
}
.supervisor-content-single .supervisor_info ul{
    margin-top: 24px;
    display: flex;
    gap:10px;
}
.supervisor-content-single .supervisor_info ul li a{
    display: inline-block;
    border: 1px solid #E4EEEF;
    padding:6px;
    border-radius: 2em;
    width: 44px;
}
.supervisor-content-single .supervisor_info ul li a img {
	height: 30px;
}
.supervisor-content-single .supervisor_info ul li a.site{
    padding: 8px 20px;
    width: auto;
}
.supervisor-content-single .supervisor_info ul li a.site img {
	height: 20px;
	vertical-align: middle;
}
.supervisor-content-single .supervisor_text{
    margin-top: 26px;
    line-height: 1.77;
}
.supervisor-content-single .supervisor_history,
.supervisor-content-single .supervisor_credential,
.supervisor-content-single .supervisor_media{
	margin-top: 50px;
	background: #E9F3F4;
	border-radius: 10px;
	padding: 20px 23px 23px;
}
.supervisor-content-single .supervisor_history dt,
.supervisor-content-single .supervisor_credential dt,
.supervisor-content-single .supervisor_media dt{
	margin-bottom:15px;
	border-bottom: 1px solid #B4E1DC;
	padding: 0 0 5px;
	font-size:18px;
}

.supervisor-content-single .supervisor_history dd,
.supervisor-content-single .supervisor_credential dd,
.supervisor-content-single .supervisor_media dd{
	padding: 4px 0;
	font-size:16px;
}
.supervisor-content-single .supervisor_history dd {
	display: flex;
}
.supervisor-content-single .supervisor_history dd .year {
	width: 5em;
}
.supervisor-content-single .supervisor_history dd .content {
	width: calc(100% - 5em);
}
.supervisor-content-single .posted_article{
	margin-top: 60px;
}

/* カテゴリ一覧 */
.category_list ,
.tag_list {
    margin-top: 60px;
    display: flex;
    gap:10px;
    flex-wrap: wrap;
}
.category_list li a {
    display: inline-block;
    color: #EC6D87;
    padding: 0.2em 0.7em;
    border-radius: 1em;
    background: #FCE9ED;
    text-decoration: none;
}
.category_list a:before {
    content:"・";
    font-weight: bold;
}
.tag_list li a {
    display: inline-block;
    border:1px solid #E9F3F4;
    color: #399C90;
    padding: 0.2em 0.7em;
    border-radius: 1em;
    text-decoration: none;
}
.tag_list li a:hover {
    background: #E9F3F4;
}

/* recommend */
.single-post .recommend {
    position: relative;
    margin-top: 40px;
}
.single-post .recommend::before {
    content: '';
    position: absolute;
    top: 0;
    right: 100%;
    bottom: 0;
    width: 100%;
    background: #FFF;
    z-index: 2;
}
.single-post .recommend h3 {
    position: relative;
    padding-left: 20px;
    font-size: 24px;
    color: #292F4A;
    padding-bottom: .4em;
    margin-bottom: 1.5em;
}
.single-post .recommend h3::before {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    width: 16px;
    height: 16px;
    border: 4px solid #67BEB5;
    border-radius: 100%;
}
.single-post .recommend h3::after {
	content: '';
	position: absolute;
	left: 0;
	width: 1320px;
	border-bottom: 1px solid #67BEB5;
	bottom: 0;
}
#voice .slick-list,
.single-post .recommend .slick-list {
    cursor: grab;
    overflow: inherit;
}
.single-post .recommend .article_list {
    max-width: 872px;
}
.single-post .recommend .slick-track {
    min-width: 100%;
}
.single-post .recommend .slick-slide {
    margin-right: 25px;
}
.search .note.tc {
    text-align: center;
}
