@charset "UTF-8";
/*
※※※※※※※※※※※※※※※※

フォント

※※※※※※※※※※※※※※※※
*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;700&display=swap');
/*@font-face
{
font-family:"こころ明朝" ;
src: url('https://cdn.leafscape.be/kokoro/Kokoro_web.woff2')
     format("woff2");
}*/
@font-face
{
font-family:"helvetica" ;
src: url('../assets/font/Helvetica-Neue-Interface.ttf.woff')
     format("woff2");
}

/*
＊＊＊＊＊＊＊＊＊＊

要素をフワッと表示する。
classにfadeinを記述する

＊＊＊＊＊＊＊＊＊＊
*/
.fadein {
	opacity : 0;
	transform : translate(0, 50px);
	transition : all 1s;
}
.fadein.scrollin {
	opacity : 1;
	transform : translate(0, 0);
}

/*
※※※※※※※※※※※※※※※※

共通

※※※※※※※※※※※※※※※※
*/
.cf:after {
    content: "";
    display: block;
    clear: both;
}

* {
	box-sizing: border-box;
}

html {
	font-size:62.5%;
	}

#home{
  animation: fadeIn 2.5s ease 0s 1 normal;
  -webkit-animation: fadeIn 2.5s ease 0s 1 normal;
}
@keyframes fadeIn {
  0% {opacity: 0}
   30% {opacity: 0}
  100% {opacity: 1}
}

@-webkit-keyframes fadeIn {
  0% {opacity: 0}
  30% {opacity: 0}
  100% {opacity: 1}
}

body {
	font-size: 16px;
  font-size: 1.6rem;
	font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', sans-serif;
}

body.menu_active {
  overflow-y: hidden;
}

a {
  color:inherit;
}
/*a {
	text-decoration: none;
	color:inherit;
}

a:hover,
a img:hover{
	filter: alpha(opacity=70);
	-ms-filter: "alpha(opacity=70)"; 
	-moz-opacity:0.7; 
	-khtml-opacity: 0.7; 
	opacity:0.7;
	zoom:1;
}*/

p {
	margin-bottom:1.2em;
	line-height: 1.6em;
}

.flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.inner {
  margin: 0 auto;
  width: 100%;
  max-width: calc(930px + 10%);
  padding: 0 5%;
}

.sec_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 4.8rem;
}

@media screen and (max-width:767px) {
  .sec_title {
  text-align: center;
  font-size: 10vw;
}
}

/*
※※※※※※※※※※※※※※※※

メニュー

※※※※※※※※※※※※※※※※
*/
header .logo {
  width: 113px;
  margin: 3vw;
}

.menu_wrap {
  position: fixed;
  width: 100vw;
  min-height: 100vh;
  background-color: #2667bb;
  z-index: -1;
  opacity: 0;
  transition: all .4s;
  padding-top: 20vh;
  pointer-events: none;
}

.menu_active .menu_wrap {
  display: block;
  opacity: 1;
  pointer-events: all;
  overflow-y:scroll;
  z-index: 999;
}

.menu_wrap .menu {
  column-count: 2;
}

.menu_wrap .menu li {
  font-size: 3.4rem;
  font-family: 'Noto Serif JP', serif;
  line-height: 2.5em;
}

.menu_wrap .menu li a {
  text-decoration: none;
  color: #fff;
  position: relative;
  display:inline-block;
}

.menu_wrap .menu li a:before {
  content:'';
  display: block;
  background-color: #fff;
  height: 1px;
  width: 100%;
  position: absolute;
  bottom: 0.5em;
   transition: all .4s;
  opacity: 0;
}

.menu_wrap .menu li a:hover:before {
  opacity: 1;
}

.menu_wrap .btn_area {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  flex-direction: row;
  margin-top: 50px;
}

.menu_wrap .btn_area li {
  width: 50%;
}

.menu_wrap .btn_area .btn2,
.menu_wrap .btn_area .btn3 {
  float: left;
  margin:0;
}

.menu_wrap .time_info {
  font-size: 1.55rem;
  color: #fff;
  clear: both;
  letter-spacing: 0.2em;
  padding-top: 1em;
}

.openbtn3{
  position: fixed;
  cursor: pointer;
    width: 60px;
    height:60px;
  border-radius: 5px;
  right: 50px;
  top: 50px;  
  z-index: 9999;
}

/*ボタン内側*/
.openbtn3 span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 0;
    height: 1px;
    background: #fff;
    width: 100%;
  }


.openbtn3 span:nth-of-type(1) {
  top:0; 
}

.openbtn3 span:nth-of-type(2) {
  top:20px;
}

.openbtn3 p {
  color: #fff;
  text-align: center;
  margin-bottom: 0;
  padding-top: 30px;
  letter-spacing: 0.25em;
}

.openbtn3.black span {
  background: #000;
}

.openbtn3.black p {
  color: #000;
}

.menu_active .openbtn3 span:nth-of-type(1) ,
.menu_active .openbtn3 span:nth-of-type(2){
    top: 20px;
}

@media screen and (max-width:767px) {
  header .logo {
  width: 56px;
}
  
  .menu_wrap {
  padding-top: 15vh;
}

  .menu_wrap .inner {
    width: 100%;
    max-width: 434px;
  }
  .menu_wrap .menu {
    column-count: 1;
  }
  
  .menu_wrap .menu li {
  font-size: 7vw;
  line-height: 1.5em;
}
  
  .menu_wrap .btn_area li {
  width: 100%;
}
  
  .menu_wrap .menu li a:before {
  bottom: 0;
}
  
  .menu_wrap .btn_area .btn2 {
  float: left;
  margin:0 0 30px;
}
  
.openbtn3{
    width: 40px;
    height:30px;
  right: 25px;
  top: 25px;  
}
  
.openbtn3 span:nth-of-type(1) {
  top:0; 
}

.openbtn3 span:nth-of-type(2) {
  top:10px;
}

.openbtn3 p {
  color: #fff;
  text-align: center;
  margin-bottom: 0;
  padding-top: 20px;
  letter-spacing: 0.25em;
  font-size: 0.8rem;
}
  
.menu_active .openbtn3 span:nth-of-type(1) ,
.menu_active .openbtn3 span:nth-of-type(2){
    top: 10px;
}
  
}

/*
※※※※※※※※※※※※※※※※

ボタン

※※※※※※※※※※※※※※※※
*/

.btn1,.btn2,.btn3 {
  width: 380px;
  line-height: 70px;
  text-align: center;
  text-decoration: none;
  border-radius: 10px;
  display: block;
  transition: .5s ;
  margin: 0 auto;
  font-weight: bold;
  pointer-events: all;
}

a.btn1 {
  color: #fff;
  background-color: #ffdd5c;
  border:1px solid #ffdd5c;
  font-size: 1.7rem;
  letter-spacing: 0.1em;
}

a.btn1:hover {
  color: #ffdd5c;
  background-color: #fff; 
}

a.btn2 {
  color: #fff;
  background-color: #317ec8;
  border:1px solid #c9caca;
  font-size: 1.8rem;
  letter-spacing: 0.2em;
  background-image: url("../images/icon_form.png");
  background-repeat: no-repeat;
  background-size: 20px auto;
  background-position: center left 30px ;
  text-indent: 1em;
}

a.btn2:hover {
  color: #231815;
  background-color: #fff; 
  background-image: url("../images/icon_form_on.png");
}

a.btn3 {
  color: #3e3a39;
  background-color: #fff;
  border:1px solid #c9caca;
  font-size: 1.8rem;
  letter-spacing: 0.2em;
  background-image: url("../images/icon_phone.png");
  background-repeat: no-repeat;
  background-size: 12px auto;
  background-position: center left 35px ;
  text-indent: 1em;
}

a.btn3:hover {
  color: #fff;
  background-color: #317ec8; 
  background-image: url("../images/icon_phone_on.png");
}

@media screen and (max-width:767px) {
  .btn1,.btn2,.btn3 {
  width: 100%;
  max-width: 380px;
  line-height: 52px;
}
}

/*
※※※※※※※※※※※※※※※※

メインビジュアル

※※※※※※※※※※※※※※※※
*/

.mainvisual {
  background-image: url("../images/mainvisual.png");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100vw auto;
  height: 77vw;
  position: relative;
}

.mainvisual .text {
  text-align: right;
  position: absolute;
  z-index: 2;
  right: 9vw;
  top: 8vw;
  animation: fadeIn 5s ease 0s 1 normal;
  -webkit-animation: fadeIn 5s ease 0s 1 normal;
}

.mainvisual .text p{
  font-size: 3vw;
  color: #fff;
  font-family: 'Noto Serif JP', serif;
}

@media screen and (max-width:767px) {
  .mainvisual {
  background-image: url("../images/mainvisual_sp.png");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  height: 102vw;
}
  
.mainvisual .text {
  top: 11vw;
}
  
.mainvisual .text p{
  font-size: 4.5vw;
}
}

/*
※※※※※※※※※※※※※※※※

TOPページ

※※※※※※※※※※※※※※※※
*/

#home .sec01 {
  position: relative;
  padding-top: 45px;
  overflow-x: hidden;
}

#home .sec01 .text {
  width: 41.5%;
  margin-top: 60px;
  font-size: 1.7rem;
}

#home .sec01 .text p {
  line-height: 2em;
  letter-spacing: 0.05em;
}

#home .sec01 .btn1 {
  margin: 0;
}
#home .sec01 .img_sec01_01 {
  width: 45vw;
  max-width: 764px;
  min-width: 130%;
}

#home .sec01 .imgarea {
  width: 55%;
  margin-top: -30px; 
}

#home .sec02 {
  background-image: url("../images/bg_gray.png");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% 1295px;
  margin-top: -320px;
  position: relative;
  z-index: 2;
  height: 1295px;
  padding-top: 250px;
  pointer-events: none;
}

#home .sec02 .flex {
  margin: 50px 0;
}

#home .sec02 figure {
  width: 46%;
}

#home .sec02 figure img {
  width: 100%;
}

#home .sec02 figcaption h3 {
  font-size: 2.8rem;
  color: #317ec8;
  text-align: center;
  margin-top: 1.5em;
}

#home .sec02 figcaption .text {
  width: 64%;
  margin: 3em auto 0;
  line-height: 2;
}

#home .sec03{
  padding-bottom: 250px;
}

#home .sec03 .sec_title{
  text-align: center;
}

#home .sec03 .info_list,
#news-index .sec01 .info_list{
  width: 100%;
  margin: 50px auto 80px;
}

#home .sec03 .info_list li,
#news-index .sec01 .info_list li{
  border-top: 1px solid #efefef;
  width: 100%;
}

#home .sec03 .info_list li:last-child,
#news-index .sec01 .info_list li:last-child{
  border-bottom: 1px solid #efefef;
}



#home .sec03 .info_list li a,
#news-index .sec01 .info_list li a{
  padding: 1em 0;
  display: block;
}

#home .sec03 .info_list li p,
#news-index .sec01 .info_list li p{
  float: left;
  margin:0;
  padding: 10px 0;
  line-height: 20px;
  
}

#home .sec03 .info_list li .tag,
#news-index .sec01 .info_list li .tag{
  width: 17%;
  text-align: center;
  border-radius: 10px;
  border: 1px solid #9fa0a0;
  font-weight: bold;
  margin-right: 30px;
}

#home .sec03 .info_list li .date,
#news-index .sec01 .info_list li .date{
  width: 11%;
  font-weight: bold;
  margin-right: 30px;
}

#home .sec03 .info_list li .title,
#news-index .sec01 .info_list li .title{
  width: 65%;
  float: left;
}

@media screen and (max-width:1599px) {
  #home .sec02 {
  margin-top: -270px;
}
}

@media screen and (max-width:1099px) {
  #home .sec01 .imgarea {
  width: 55%;
  margin-top: 0; 
}
  
  #home .sec01 .text {
  width: 45%;
}
  
  #home .sec02 {
  margin-top: -300px;
}
}

@media screen and (max-width:949px) {
  #home .sec01 .imgarea {
    width: 50%;
    margin-top: 0; 
    z-index: -1;
}
  
    #home .sec01 .text {
  width: 50%;
}
  
  #home .sec02 {
  margin-top: -15vw;
}
}

@media screen and (max-width:767px) {

#home .sec01 {
  padding-bottom: 30vw;
}

#home .sec01 .text {
  width: 100%;
  margin-top: 40px;
}

#home .sec01 .btn1 {
  margin: 50px auto 0;;
}

#home .sec01 .imgarea {
  display: none;
}
  
#home .sec02 {
  background-image: url("../images/bg_gray_sp.png");
  background-position: center top;
  background-size: 100% 100%;
  margin-top: -100px;
  height: auto;
  padding: 130px 0;
}

#home .sec02 .flex {
  margin: 50px 0 0;
}

#home .sec02 figure {
  width: 100%;
  text-align: center;
  margin-bottom: 50px;
}

#home .sec02 figure img {
  width: 100%;
  max-width: 435px;
}

#home .sec02 figcaption .text {
  width: 100%;
  max-width: 435px;
}

#home .sec03 .info_list li .tag,
#news-index .sec01 .info_list li .tag{
  width: 6em;
  text-align: center;
  border-radius: 10px;
  border: 1px solid #9fa0a0;
  font-weight: bold;
  margin-right: 20px;
}
  
  
}
/*
※※※※※※※※※※※※※※※※

共通フッター

※※※※※※※※※※※※※※※※
*/

footer {
  background-image: url("../images/footer_img01.png"),url("../images/bg_gray2.png");
  background-repeat: no-repeat;
  background-size: 473px auto,cover;
  background-position: left calc(50% + 230px) top 300px, center top;
  max-height: 1045px;
  padding-top: 300px;
  padding-bottom: 50px;
  margin-top: -300px;
}

footer .btn_area {
  float: left;
  margin: 70px 0;
}

footer .btn_area a {
  margin-bottom: 20px;
}

footer .btn_area .text {
  font-size: 1.55rem;
  text-align: left;
  letter-spacing: 0.1em;
  margin-bottom: 0;
}

footer .footer_menu {
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap;
  flex-direction: row;
  clear: both;
}

footer .footer_menu li {
  width: 30%;
}

footer .footer_menu figure {
  width: 100%;
  position: relative;
  color: #fff;
  height: 100%;
  margin:0;
}

footer .footer_menu figure img {
  width: 100%;
  vertical-align: bottom;
}

footer .footer_menu figcaption {
  position: absolute;
  top: 0;
  left: 0;
  display: table;
  width: 100%;
  height: 100%;
  font-size: 2.2rem;
  vertical-align: middle;
  text-align: center;
  background-color: rgba(49,126,200,0.6);
  border-radius: 12px;
  transition: .5s ;
  letter-spacing: 0.1em;
}

footer .footer_menu figcaption span {
  vertical-align: middle;
  display:table-cell;
}

footer .footer_menu figcaption:hover {
  opacity: 0;
}

footer small {
  display:block;
  text-align: center;
  margin-top: 4em;
}

footer .scroll-hint {
  clear: both;
}

@media screen and (max-width:1029px) {
  footer {
  background-image: url("../images/footer_img01.png"),url("../images/bg_gray2.png");
  background-repeat: no-repeat;
  background-size: 40vw auto,cover;
  background-position: right 10% top calc(250px + 8vw), center top;
  max-height: 1045px;
  padding-top: 250px;
  padding-bottom: 50px;
  margin-top: -250px;
}
}

@media screen and (max-width:767px) {
  footer {
  background-image: url("../images/bg_gray2_sp.png");
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: center top;
  max-height: none;
  padding-top: 100px;
  padding-bottom: 50px;
  margin-top: -200px;
}
  
  footer .btn_area {
  float: none;
  margin: 40px 0;
}
  
  footer .btn_area .text {
  text-align: center;
}
  
footer .footer_menu {
  width: 138vw;
}
  
  footer .footer_menu figcaption {
  font-size: 4.5vw;
}
  
footer small {
  font-size: 1.2rem;
}
  
}

/*
※※※※※※※※※※※※※※※※

共通下層ビジュアル

※※※※※※※※※※※※※※※※
*/
.visual {
  height: 33vw;
  background-image: url("../images/under_visual.jpg");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
}

.contents {
  background-color: #f8fbfd;
  padding: 80px 0 250px;
}

@media screen and (max-width:767px) {
  .contents {
  padding: 40px 0 250px;
}
}

/*
※※※※※※※※※※※※※※※※

施設紹介
Facility

※※※※※※※※※※※※※※※※
*/

#facility section .sec_title {
  margin-bottom: 1em;
}

#facility .img_sec01_01{
  width: 100%;
  margin-bottom: 180px;
}

#facility .sec01 .text {
  margin-bottom: 50px;
}

#facility .sec01 .text p {
  line-height: 2em;
  letter-spacing: 0.05em;
}

#facility .box {
  position: relative;
  height: 572px;
  margin-bottom: 70px;
}

#facility .box img {
  position: absolute;
  width: 496px;
}

#facility .box .textarea {
  position: absolute;
  width: 496px;
  height: 496px;
  background-color: rgba(255,255,255,0.8);
  padding: 18% 4% 0;
}

#facility .box .adjustment01 {
  padding-left: 13%;
}

#facility .type1 img,
#facility .type2 .textarea{
  right: 0;
  bottom: 0;
}

#facility .type1 .textarea,
#facility .type2 img{
  left: 0;
  top: 0;
}

#facility .textarea .catch {
  font-size: 3.2rem;
  font-weight: bold;
  color: #2768bb;
  line-height: 1.5em;
  margin-bottom: 1em;
}

#facility .textarea .text {
  line-height: 2em;
  margin-bottom: 0;
}

#facility .sec02 {
  padding-top: 50px;
}

#facility .floor_img {
  width: 100%;
}

@media screen and (max-width:767px) {
#facility .img_sec01_01{
  margin-bottom: 90px;
}
  
#facility .box {
  position: static;
  height: auto;
  margin-bottom: 70px;
  width: 100%;
}

#facility .box img {
  position: static;
  width: 100%;
}

#facility .box .textarea {
  position: static;
  width: 100%;;
  height: auto;
  background-color: rgba(255,255,255,0.8);
  padding: 10% 5%;
}

#facility .type1 img,
#facility .type2 .textarea{
  right: 0;
  bottom: 0;
}

#facility .type1 .textarea,
#facility .type2 img{
  left: 0;
  top: 0;
}

#facility .textarea .catch {
  font-size: 6vw;
  line-height: 1.2em;
}

#facility .textarea .text {
  line-height: 1.5em;
}

}

/*
※※※※※※※※※※※※※※※※

会社概要
company

※※※※※※※※※※※※※※※※
*/

#company section .sec_title {
  margin-bottom: 1em;
}

#company .info_table {
  width: 100%;
  font-size: 1.7rem;
  letter-spacing: 0.1em;
}

#company .info_table tr {
  border: 3px solid #F6F8FA;
}

#company .info_table tr:nth-child(odd) {
  background-color: #fff;
}

#company .info_table th {
  width: 15%;
  padding-left: 2em;
  text-align: left;
}

#company .info_table td {
  width: 85%;
  padding-left: 2em;
  padding: 2em;
}

@media screen and (max-width:767px) {
  #company .info_table {
  width: 100%;
  font-size: 1.4rem;
  letter-spacing: 0.1em;
}
  
  #company .info_table th {
  width: 25%;
  padding-left: 1em;
  text-align: left;
}

#company .info_table td {
  width: 85%;
  padding: 1.5em 1em;
}
}

/*
※※※※※※※※※※※※※※※※

アクセス
access

※※※※※※※※※※※※※※※※
*/
#access section .sec_title {
  margin-bottom: 1em;
}

#access .map {
  width: 100%;
  margin-bottom: 50px;
}

#access .flex .text p{
  letter-spacing: 0.1em;
}

#access .btn1 {
  letter-spacing: 0.2em;
}

@media screen and (max-width:767px) {
  #access .btnarea,
  #access .text{
    width: 100%;
  }
  
  #access .map {
  margin-bottom: 30px;
}
  
}

/*
※※※※※※※※※※※※※※※※

サービス内容
service

※※※※※※※※※※※※※※※※
*/
#service section .sec_title {
  margin-bottom: 1em;
}

#service .mini_title {
  font-size: 2.8rem;
  color: #2768bb;
  font-weight: bold;
  margin-bottom: 2em;
  line-height: 1.2em;
}

#service .mini_title.no-margin {
  margin-bottom: 0.5em;;
}

#service .img01 {
  width: 100%;
  max-width: 687px;
  display: block;
  margin: 0 auto 80px;
}

#service .table-caption {
  font-size: 1.4rem;
  text-align: right;
  margin-bottom: 1em;
}

#service table {
  caption-side: bottom;
  margin-bottom: 50px;
  font-size: 1.5rem;
}

#service table caption {
  text-align: right;
  font-size: 1.4rem;
  margin-top: 1em;
}

#service .table1 {
  width: 100%;
}

#service .table1 tr > * {
  width: 20%;
  font-size: 1.4rem;
  text-align: center;
  height: 5.5em;
  vertical-align: middle;
  border: 1px solid #868686;
  line-height: 1.2em;
}

#service .table1 th {
  font-weight: bold;
  background-color: #eaeaea;
  
}

#service .flex1 > div {
  width: 48%;
  height: 145px;
  color: #fff;
  padding: 15px;
}

#service .flex1 .shintai {
  background-color: #6bbc6e;
}

#service .flex1 .seikatsu {
  background-color: #fdd74b;
}

#service .flex1 .title {
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.2em;
  width: 115px;
  height: 115px;
  text-align: center;
  display: table;
  float: left;
}

#service .flex1 .title span {
  display: table-cell;
  vertical-align: middle;
}

#service .flex1 .shintai .title {
  background-color: #62a965;
}

#service .flex1 .seikatsu .title {
  background-color: #e4c34b;
}

#service .flex1 ul {
  height: 115px;
  padding-top: 15px;
  float: left;
  margin-left: 1em;
}

#service .flex1 li {
  font-size: 1.8rem;
  line-height: 1.5em;
}

#service .flex1 li:before {
  content: '●';
  margin-right: 0.5em;
}

#service .table2 {
  width: 100%;
  caption-side: bottom;
  margin-top: 50px;
}

#service .table2 tr > * {
  vertical-align: middle;
  padding: 1.5em 1em;
  border: 1px solid #000;
  text-align: center;
}

#service .table2 th {
  font-weight: bold;
  text-align: center;
  letter-spacing: 0.1em;
}

#service .table2 th.shintai {
  background-color: #6bbc6e;
}

#service .table2 th.seikatsu {
  background-color: #fdd74b;
}

#service .table2 tbody th {
  color: #fff;
  width: 15%;
}

#service .table2 tbody td {
  width: 28%;
}

#service .sec02 .price_blue {
  width: 100%;
  height: 80px;
  background-color: #2768bb;
  display: table;
  text-align: center;
  position: relative;
  margin-bottom: 100px;
}

#service .sec02 .price_blue span {
  display: table-cell;
  vertical-align: middle;
  color: #fff;
  font-size: 2.8rem;
  letter-spacing: 0.1em;
  font-weight: bold;
}

#service .sec02 .price_blue:after {
  content:'';
  display: block;
  background-image: url("../images/service/plus.png");
  width: 54px;
  height: 54px;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  position: absolute;
  bottom: -80px;
  left: calc(50% - 27px);
}

#service .sec02 .flex2 > div {
  width: 48%;
}

#service .sec02 .plan_name {
  font-size: 2.8rem;
  text-align: center;
  color: #fff;
  width: 100%;
  line-height: 1.2em;
  padding: 20px 0;
}

#service .sec02 .plan_name span {
  display: block;
  font-size: 1.4rem;
  line-height: 1em;
}

#service .sec02 .plan_a  .plan_name {
  background-color: #6bbc6e;
}

#service .sec02 .plan_b  .plan_name {
  background-color: #fdd74b;
}

#service .sec02 .flex2 table {
  width: 100%;
  margin-top: 20px;
}

#service .sec02 .flex2 table tr > * {
  border: 1px solid #000;
  text-align: center;
  line-height: 45px;
  letter-spacing: 0.05em;
}

#service .sec02 .flex2 table th {
  width: 30%;
}

#service .sec02 .flex2 table td {
  width: 70%;
}

#service .sec02 .flex2 table .total > * {
  font-weight: bold;
  font-size: 2.0rem;
  line-height: 55px;
}

#service .sec02 .flex2 .plan_a .total {
  background-color: #e7f1e4;
}

#service .sec02 .flex2 .plan_b .total {
  background-color: #fdf4d9;
}

#service .sec03 .text {
  font-size: 2.0rem;
  margin-bottom: 2em;
}

#service .sec03 .flex3 {
  margin-bottom: 50px;
}

#service .sec03 .flex3  figure {
  width: 47%;
  position: relative;
}

#service .sec03 .flex3 figure img {
  width: 100%;
  vertical-align: bottom;
}

#service .sec03 .flex3 figcaption {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(39,104,187,0.8);
  display:table;
  text-align: center;
  color: #fff;
  opacity: 0;
  transition: all .4s;
  pointer-events: none;
}

#service .sec03 .flex3 figure:hover figcaption{
  opacity: 1;
}

#service .sec03 .flex3 figcaption div {
  display: table-cell;
  vertical-align: middle;
}

#service .sec03 .flex3 figcaption .item_name {
  font-size: 3.2rem;
  margin-bottom: .5em;
}

#service .sec03 .flex3 figcaption .item_detail {
  font-size: 1.8rem;
  margin-bottom: 0;
}

#service .sec04 .flex4 {
  margin-bottom: 50px;
}

#service .sec04 .flex4 li{
  width: 23%;
}

#service .sec04 .flex4 li img {
  width: 100%;
}

#service .sec05 dl {
  font-size: 1.8rem;
  background-color: #fff;
  margin-bottom: 10px;
}

#service .sec05 dl > * {
  padding: 2em  1em 2em 80px;
  background-repeat: no-repeat;
  line-height: 1.6em;
}

#service .sec05 dt {
  background-image: url("../images/service/text_q.png"),url("../images/service/arrow.png");
  background-size: 30px auto, 20px auto;
  background-position: left 30px top 30px, right 30px top 30px;
  cursor: pointer;
  transition: .2s;
}

#service .sec05 dt.open {
  background-image: url("../images/service/text_q.png"),url("../images/service/arrow_on.png");
   background-size: 30px auto, 40px auto;
  background-position: left 30px top 30px, right 30px top 40px;
}

#service .sec05 dd {
  background-image: url("../images/service/text_a.png");
  background-size: 34px auto;
  background-position: left 30px top 30px;
  display: none;
}

#service .sec05 dd p:last-child {
  margin-bottom: 0;
}

@media screen and (max-width:920px) and (min-width:768px) {
  #service .flex1 .title {
  font-size: 2.2rem;
  width: 60px;
  height: 115px;
}
  
#service .flex1 ul {
  padding-top: 20px;
}

#service .flex1 li {
  font-size: 1.6rem;
}
}

@media screen and (max-width:767px) {
  #service .table-caption {
  width: 480px;
}

#service .table1 {
  width: 480px;
}
  
  #service .flex1 .title {
  font-size: 2.2rem;
}
  
#service .flex1 ul {
  padding-top: 20px;
}
  
#service .flex1 li {
  font-size: 1.6rem;
}
  
#service .flex1 > div {
  padding: 15px;
  width: 100%;
} 
  
  #service .flex1 .shintai {
    margin-bottom: 20px;
  }
  
#service .sec02 .price_blue {
  width: 100%;
  height: 60px;
  background-color: #2768bb;
  display: table;
  text-align: center;
  position: relative;
  margin-bottom: 80px;
}
  
  
  #service .sec02 .price_blue span {
  font-size: 4.5vw;
}
  
#service .sec02 .price_blue:after {
  width: 40px;
  height: 40px;
  bottom: -60px;
  left: calc(50% - 20px);
}
  
  
#service .sec02 .plan_name {
  font-size: 4.5vw;
  text-align: center;
  color: #fff;
  width: 100%;
  line-height: 1.2em;
  padding: 10px 0;
}

#service .sec02 .plan_name span {
  display: block;
  font-size: 1.4rem;
  line-height: 1em;
}
  
#service .sec02 .flex2 table .total > * {
  font-size: 1.4rem;
}

  #service .sec02 .flex2 table .total > td {
    font-size: 1.8rem;
  }
  
#service .sec03 .flex3 figcaption .item_name {
  font-size: 6vw;
  margin-bottom: .5em;
}

#service .sec03 .flex3 figcaption .item_detail {
  font-size: 3vw;
  margin-bottom: 0;
}
  
#service .sec04 .flex4 li{
  width: 47%;
  margin-bottom: 3%;
}
  
#service .sec05 dl {
  font-size: 1.8rem;
  background-color: #fff;
  margin-bottom: 10px;
}

#service .sec05 dl > * {
  padding: 1em  2em 1em 60px;
  background-repeat: no-repeat;
  line-height: 1.6em;
}

#service .sec05 dt {
  background-size: 20px auto, 14px auto;
  background-position: left 20px top 20px, right 20px top 20px;
  }

#service .sec05 dt.open {
   background-size: 20px auto, 27px auto;
  background-position: left 20px top 20px, right 20px top 30px;
}

#service .sec05 dd {
  background-image: url("../images/service/text_a.png");
  background-size: 22px auto;
  background-position: left 20px top 20px;
  display: none;
}
  
}

@media screen and (max-width:500px) {
  #service .flex1 ul {
  padding-top: 5px;
}
  
   #service .flex1 .title {
  width: 80px;
  height: 80px;
}
  
#service .flex1 > div {
  height: 115px;
} 
  

}

/*
※※※※※※※※※※※※※※※※

お知らせ
news-article

※※※※※※※※※※※※※※※※
*/

#news-article section .sec_title {
  margin-bottom: 1em;
}
#news-article .date {
  font-size: 1.7rem;
  font-weight: bold;
  letter-spacing: 0.1em;
}

#news-article .text p {
  line-height: 3.2em;
}

@media screen and (max-width:767px) {
  
}

/*
※※※※※※※※※※※※※※※※

お問い合わせ
contact

※※※※※※※※※※※※※※※※
*/

#contact section .sec_title {
  margin-bottom: 1em;
}

#contact .sec01 .number {
  font-size: 4.6rem;
  font-weight: bold;
  font-family: 'helvetica';
  letter-spacing: 0.2em;
  margin-bottom: .5em;
}

#contact .sec01 .number li {
  line-height: 1.2em;
  background-repeat: no-repeat;
  padding-left: 50px;
}
#contact .sec01 .time {
  font-size: 1.55rem;
  margin-bottom: 80px;
}

#contact .sec01 .tel {
  background-image: url("../images/contact/icon_tel.png");
  background-size: 12px auto;
  background-position: left 10px center;
}

#contact .sec01 .fax {
  background-image: url("../images/contact/icon_fax.png");
  background-size: 33px auto;
  background-position: left center;
}

#contact footer {
  background-image: none;
  background-color: #f8fbfd;
  max-height: none;
  padding-top: 0;
  padding-bottom: 50px;
  margin-top: 0;
}

#contact table {
  width: 100%;
  margin-bottom: 50px;
}

#contact table th {
  width: 15%;
  vertical-align: middle;
  text-align: left;
  font-size: 1.7rem;
}

#contact table th span {
  display: block;
  width: 4em; 
  text-align: center;
  color: #fff;
  background-color: #ffdd5c;
  line-height: 1.5em;
  font-size: 1.2rem;
  margin-top: 0.5em;
}

#contact table td {
  width: 85%;
  padding:5px 0;
}

#contact input[type=text],
#contact input[type=email]{
  width: 100%;
  height: 65px;
  border: none;
  border-radius: 5px;
  font-size: 1.6rem;
  padding: 1em;
}

#contact textarea {
  width: 100%;
  height: 320px;
  border: none;
  border-radius: 5px;
  font-size: 1.7rem;
  padding: 1em;
}

#contact .wpcf7-list-item-label {
  line-height: 20px;
  display: block;
  float: left;
  margin-left: 1em;
}

#contact input[type=checkbox] {
  height: 20px;
  width: 20px;
  margin: 0;
  float: left;
}

#contact .privacy-title {
  font-size: 2.8rem;
  font-weight: bold;
}

#contact .privacy-text-box {
  clear: both;
  height: 270px;
  width: 100%;
  background-color: #fff;
  border:1px solid #dcdddd;
  margin-top: 80px;
  padding: 2em;
  overflow-y: scroll;
}

#contact .btnarea {
  justify-content: space-around;
  margin-top: 80px;
}

#contact .btnarea div{
  width: 40%;
}

#contact .btnarea input {
  width: 100%;
  height: 71px;
  background-color: #FFDD5C;
  border:1px solid #FFDD5C;
  color: #fff;
  border-radius: 10px;
  text-align: center;
  transition: .5s;
  cursor: pointer;
  font-size: 1.7rem;
}

#contact .btnarea input:hover {
  color: #FFDD5C;
  background-color: #fff;
}

#contact .contents {
  padding-bottom: 80px;
}

#contact .wpcf7-not-valid-tip {
  margin: 0.5em 0;
  
}

#contact .wpcf7 form .wpcf7-response-output {
  padding:1em;
}

@media screen and (max-width:767px) {
  #contact section .sec_title {
  font-size: 6.5vw;
}
  
#contact .sec01 .number {
  font-size: 3rem;
}
  
  #contact .sec01 .time {
  margin-bottom: 40px;
}
  
  #contact table {
  margin-bottom: 30px;
}
  
  #contact table tr > * {
    display: block;
    width: 100%;
  }
  
  #contact table th span {
    display: inline-block;
    margin-left: 1em;
  }
  
#contact table td {
  padding:5px 0 15px;
}

#contact input[type=text],
#contact input[type=email]{
  height: 50px;
  padding: 0.8em;
}

#contact textarea {
  height: 250px;
  padding: 0.8em;
}
  
  #contact .privacy-title {
  font-size: 6vw;
  font-weight: bold;
}
  
  #contact .privacy-text-box {
  height: 200px;
  margin-top: 30px;
  padding: 1em;
}
  
#contact .btnarea {
  justify-content: space-between;
  margin-top: 40px;
}

#contact .btnarea div{
  width: 47%;
}
  
#contact .contents {
  padding-bottom: 50px;
}
  
}