/*--------------------------------------------------
  company共通
-------------------------------------------------- */
:root{
  --font-maru-sans-serif: "Zen Maru Gothic", system-ui;;
  --font-color: #354055;
  --font-color2: #BFD6E2;
  --back-gray-color: #F8F8F8;
  --sub-color : #627695;
  --table-sub-bg : #E7EDF0;
  --content-width: 1000px;
}

.content-wrap{
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 1.5rem 0.5rem;
}

.mw-1200{
  max-width: 1200px!important;
}

.mw-950{
  max-width: 950px!important;
}

.mw-900{
  max-width: 900px!important;
}

.mw-720{
  max-width: 720px!important;
}

.mw-600{
  max-width: 600px!important;
}

.mw-500{
  max-width: 500px!important;
}

.anchor{
  padding-top: 170px;
}

.text-justify{
  text-align: justify;
  word-break: break-all;
}

/*--------------------------------------------------
  border
-------------------------------------------------- */
.border{
  border: solid 1px var(--font-color);
}

.border-grey{
  border: solid 1px #dcdcdc;
}


/*--------------------------------------------------
  ボタンデザイン
-------------------------------------------------- */
.btn, .btn1, .btn2, .btn2{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  padding: 0.5rem 1.5rem;
  border-radius: 500px;
  color: #fff;
  width: 100%;
  max-width: 350px;
  text-align: left;
}

.btn1, .btn2, .btn2{
  background: var(--font-color);
  border-color: var(--font-color);
}

.btn i, .btn1 i, .btn2 i, .btn2 i{
  transition: transform 0.2s;
}

a.btn:hover, a.btn:active,
a.btn1:hover, a.btn1:active,
a.btn2:hover, a.btn2:active,
a.btn2:hover, a.btn2:active{
  opacity: 0.8;
}

.btn2{
  background: unset;
  color: var(--font-color);
  border: solid 1px var(--font-color);
}

.btn.icon::after, .btn1.icon::after, .btn2.icon::after, .btn.icon::after, .btn2.icon::after{
  font: var(--fa-font-solid);
  content: "\f138";
  padding-top: 0.2rem;
  transition: transform 0.2s;
}

.btn:is(.icon), .btn:has(i),
.btn1:is(.icon), .btn1:has(i),
.btn2:is(.icon), .btn2:has(i),
.btn2:is(.icon), .btn2:has(i){
  justify-content: space-between;
}

.btn-center{
  justify-content: center!important;
}

/*--------------------------------------------------
  見出しの共通デザイン
-------------------------------------------------- */
h3{
  font-size: clamp(1.125rem, 0.989rem + 0.68vw, 1.5rem);
}

.title-bg{
  background-color: var(--font-color);
  padding: 0.8rem 1rem;
  color: #fff;
}

.box-line{
  display: inline-block;
  padding: 0.5rem 0.8rem;
  border: solid 1px var(--font-color);
  border-radius: 5px;
}

.box-maru-line{
  display: inline-block;
  padding: 0.5rem 0.8rem;
  border: solid 1px var(--font-color);
  border-radius: 500px;
}

h2.main-heading,
.top-heading-info{
  font-size: clamp(2.625rem, 1.943rem + 3.41vw, 4.5rem);
  color: var(--font-color2);
  font-family: var(--font-maru-sans-serif);
  position: relative;
}

h2.main-heading::before{
  content: '';
  width: 100%;
  height: 1px;
  display: block;
  background: var(--font-color);
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: -1;
}

.top-heading-info{
  border-bottom: solid 1px var(--font-color);
  padding-bottom: 0.5rem;
  margin-bottom: 0.8rem;
}

h2.main-heading span{
  display: inline-block;
  background-color: #fff;
  padding-right: 0.5rem;
}

h2.main-heading small,
.top-heading-info small{
  display: block;
  color: var(--font-color);
  font-size: clamp(0.875rem, 0.648rem + 1.14vw, 1.5rem);
  font-family: var(--font-family-sans-serif);
  margin-top: 0.5rem;
}

/*--------------------------------------------------
  listの形式
-------------------------------------------------- */
ul.list li:not(:last-child),
ul.ast-list li:not(:last-child),
ol.round li:not(:last-child){
  margin-bottom: 0.5rem;
}

ul.ast-list{
  list-style: none;
}

ul.ast-list li{
  position: relative;
}

ul.ast-list li::before{
  content: '※';
  position: absolute;
  left: -1.5rem;
}

ol.round {
  list-style-type: none;
  padding: 0;
}
ol.round li {
  position: relative;
  padding-left: 1.5rem;
}

ol.round li::before {
  position: absolute;
  left: 2px;
}

ol.round li:nth-of-type(1)::before{
  content: '\02460';
}
ol.round li:nth-of-type(2)::before {
  content: '\02461';
}
ol.round li:nth-of-type(3)::before {
  content: '\02462';
}
ol.round li:nth-of-type(4)::before {
  content: '\02463';
}
ol.round li:nth-of-type(5)::before {
  content: '\02464';
}
ol.round li:nth-of-type(6)::before {
  content: '\02465';
}
ol.round li:nth-of-type(7)::before {
  content: '\02466';
}
ol.round li:nth-of-type(8)::before {
  content: '\02467';
}
ol.round li:nth-of-type(9)::before {
  content: '\02468';
}
ol.round li:nth-of-type(10)::before {
  content: '\02469';
}


/*--------------------------------------------------
  details/summaryの共通デザイン
-------------------------------------------------- */
details{
  padding: 0.8rem 0.5rem;
  transition: all .5s;
  border-top: solid 1px;
}

details:last-of-type{
  border-bottom: solid 1px;
}

details > summary{
  list-style: none;
  padding-right: 2rem;
  position: relative;
  cursor: pointer;
}

details > summary::after{
  font: var(--fa-font-solid);
  content: '\f055';
  position: absolute;
  right: 0.5rem;
  top: 50%;
  font-size: 1.5rem;
  transform: translateY(-50%);
}

details[open] > summary::after{
  content: '\f056';
}

/* マーカーを消す(safari) */
details > summary::-webkit-details-marker {
  display:none;
}

details > .content-box{
  margin-top: 1rem;
}

details > .content-box .img-center{
  max-width: 250px;
  margin: 1rem auto;
}

details > .content-box .img-left,
details > .content-box .img-right{
  width: 30%;
  max-width: 200px;
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}
details > .content-box .img-left{
  float: left;
  margin-right: 0.5rem;
}
details > .content-box .img-right{
  float: right;
  margin-left:0.5rem;
}

details > .content-box p{
  margin-bottom: 0;
}

/*--------------------------------------------------
  dl-tableのオーバーライド
-------------------------------------------------- */
.dl-table dt{
  border-left-color: var(--font-color);
  background-color: var(--table-sub-bg);
}

.dl-table dd{
  background-color: var(--back-gray-color);
}

.dl-table .item-flex{
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}

/* 追加デザイン */
.dl-table2{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.dl-table2 dt{
  padding: 0.8rem 1rem;
  width: 50%;
  align-items: start;
  background-color: var(--table-sub-bg);
}

.ul-dash-bottom{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem 0;
}

.dl-dash-bottom{
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 0.5rem 0;
}

.dl-dash-bottom dt,
.ul-dash-bottom li{
  padding-bottom: 5px;
}

.dl-dash-bottom dd{
  padding: 0 1rem 5px 1rem;
}

.ul-dash-bottom li:not(:last-of-type),
.dl-dash-bottom dt:not(:last-of-type),
.dl-dash-bottom dd:not(:last-of-type){
  border-bottom: dashed 1px var(--font-color2);
}

/*--------------------------------------------------
  tableデザインのオーバーライド
-------------------------------------------------- */
.table-wrap{
  margin: 1rem 0;
}

table th{
  background-color: var(--sub-color)!important;
  color: #fff;
}

table td.head{
  background-color: var(--table-sub-bg)!important;
  color: var(--font-color)!important;
  font-weight: bold;
}

table .weekdays{
  background-color: var(--blue-color)!important;
}

table .holidays{
  background-color: var(--red-color)!important;
}

table th.w100{
  width: 100px;
}

table th.w200{
  width: 200px;
}

table th.w500{
  width: 500px;
}

table td.parking{
  text-align: left;
  padding-right: 75px;
  position: relative;
}

table td.parking .map{
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.7rem;
  border: solid 1px var(--font-color);
  border-radius: 5px;
  padding: 2px 3px;
}

table td.parking .map a{
  color: var(--font-color);
}

table td.parking .map a::before{
  font: var(--fa-font-solid);
  content: "\f3c5";
  margin-right: 2px;
}

/*--------------------------------------------------
  boxのデザイン
-------------------------------------------------- */
.box1{
  border: solid 2px var(--font-color);
  border-radius: 5px;
}

.box1 .title,
.box4 .title{
  text-align: center;
  background: var(--font-color);
  color: #fff;
  padding: 0.5rem;
}

.box1 .body,
.box4 .body{
  /* font-size: 1rem; */
  padding: 0.8rem;
}

.box2{
  border: solid 1px var(--font-color);
  padding: calc(1rem * 1.5);
  border-radius: 5px;
}

.box3{
  padding: calc(1rem * 1.5);
  background-color: var(--back-gray-color);
  border-radius: 5px;
}

.box4{
  border: solid 2px var(--sub-color);
  border-radius: 5px;
}

.box4 .title{
  background: var(--sub-color);
  color: #fff;
}

.box5{
  padding: calc(1rem * 1.5)!important;
  background-color: var(--blue-color);
  color: #fff;
  border-radius: 5px;
}

.iframe-box iframe{
  width: 100%;
  min-height: 350px;
  border-style: none;
}

/*--------------------------------------------------
  border のデザイン
-------------------------------------------------- */
.border-bottom-dott{
  border-bottom: dotted 2px var(--font-color2);
  padding-bottom: 0.5rem;
}

.border-bottom-dash{
  border-bottom: dashed 1px var(--font-color2);
  padding-bottom: 0.5rem;
}

/*--------------------------------------------------
  header-menu のデザイン
-------------------------------------------------- */
.header-menu-wrap{
  position: fixed;
  top: 1.2rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  padding: 0 0.5rem;
  --menu-width: 1200px;
  --padding-value: calc((100dvw - var(--menu-width))/2);
  z-index: 900;
  font-size: 1rem;
}

.header-menu-wrap a{
  color: var(--font-color);
}

@media screen and (min-width: 1200px) {
  .header-menu-wrap{
    padding: 0 var(--padding-value);
  }
}

.header-logo{
  width: 100%;
  max-width: 170px;
}

.header-menu{
  background: #ffffff99 0% 0% no-repeat padding-box;
  border: 1px solid #FFF;
  box-shadow: 0px 3px 6px #00000029;
  border-radius: 500px;
  opacity: 1;

  width: 100%;
  max-width: var(--menu-width);
  margin: 0 auto;
  padding: 0.3rem 1rem;

  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;

  position: relative;
}

.header-menu h1{
  margin: 0;
}

@media screen and (min-width: 768px) {
  .header-menu{
    padding: 0.5rem 1.2rem;
  }
}

.header-menu::before{
  content: '';
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  position: absolute;
  border-radius: 40px;
}

.header-menu > ul{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 1.5rem;
  align-items: center;
  position: relative;
}

.hamburger-space{
  width: 50px;
  height: 50px;
}

#hamburger-btn{
  cursor: pointer;
  width: 50px;
  height: 50px;
  border-radius: 5px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  justify-content: center;
  align-items: center;
  position: absolute;
  z-index: 1000;
}

#hamburger-btn span{
  display: inline-block;
  transition: all .5s;
  height: 3px;
  border-radius: 2px;
  background: var(--font-color);
  width: 50%;
}

#hamburger-btn.active span:nth-of-type(1) {
  transform: translateY(9px) rotate(-45deg);
  width: 45%;
}

#hamburger-btn.active span:nth-of-type(2) {
  opacity: 0;
}

#hamburger-btn.active span:nth-of-type(3){
  transform: translateY(-9px) rotate(45deg);
  width: 45%;
}

/* メニューのデザイン*/
.nav-content {
  max-width: 320px;
  width: 100%;
  height: 100dvh;
  position: fixed;
  top: -1.2rem;
  right: -100dvw;
  z-index: 99;
  background: #ffffffd6;

  transition: all .5s;
  opacity: 0;

  padding: 80px 8px 32px;

  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
}

.nav-content::before{
  content: '';
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  position: absolute;
}

.nav-content.active {
  right: 0;
  opacity: 1;
}

@media screen and (min-width: 1200px) {
  #hamburger-btn.active{
    transition: all .5s;
  }
  .nav-content {
    max-width: unset;
    width: calc(320px + var(--padding-value));
  }
}

/*--------------------------------------------------
  ハンバーガーメニュー＆フッターメニューの共通化
-------------------------------------------------- */
.nav-content .menu-list-wrap{
  max-width: 320px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem 1rem;
}

.footer-menu-wrap .menu-list-wrap{
  display: none;
}

@media screen and (min-width: 768px) {
  .footer-menu-wrap .menu-list-wrap{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-auto-flow: dense;
    gap: 2rem 1rem;
    margin: 1rem 0;
  }

  .footer-menu-wrap .menu-list-wrap > dl:nth-child(2),
  .footer-menu-wrap .menu-list-wrap > dl:nth-child(3),
  .footer-menu-wrap .menu-list-wrap > dl:nth-child(4){
    grid-row-end: span 2;
  }
}

.menu-list-wrap > dl > dt{
  font-size: 18px;
  font-weight: bold;
  max-width: 200px;
  margin: 0 auto;
}

.nav-content .menu-list-wrap > dl > dt{
  border-top: solid 1px;
  padding-top: 24px;
}

.footer-menu-wrap .menu-list-wrap > dl > dt{
  border-bottom: solid 1px;
  padding-bottom: 0.5rem;
}

.menu-list-wrap > dl > dd{
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-width: 200px;
  margin: 0.5rem auto 0;
}

.menu-list-wrap > dl > dd a{
  font-size: 1rem;
  color: var(--font-color);
}

.menu-btn-list{
  list-style: none;
  padding: 0;
  margin: 1rem 0;
  max-width: 320px;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  grid-auto-rows: min-content;
  align-items: center;
  gap: 1rem 1.5rem;
}

.nav-content .menu-btn-list{
  margin-top: 2rem;
}

.menu-btn-list > li{
  text-align: center;
}

.nav-content .menu-btn-list > li{
  width: 100%;
  max-width: 200px;
  margin: 0 auto;
}

/*--------------------------------------------------
  top以外のheader共通デザイン
-------------------------------------------------- */
.header-wrap{
  height: 200px;
  background-image: url(../images/header-bg-img.jpg);
  background-repeat: no-repeat;
  max-width: 100%;
  background-position: center;
  background-size: cover;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.header-wrap::before{
  content:'';
  width: 100%;
  height: 100%;
  position: absolute;
  display: block;
  z-index: -1;
  background-color: #1ce0ff4d;
}

.header-wrap h2{
  position: absolute;
  bottom: 15%;
  text-align: center;
  display: block;
  width: 100%;
  color: #FFFFFF;
}

/*--------------------------------------------------
  footer.phpのデザイン
-------------------------------------------------- */
footer{
  position: relative;
}

footer::before{
  content: "";
  background-image: url(../images/wave_bg.svg);
  background-size: 100% auto;
  background-repeat: no-repeat;
  position: absolute;
  top: -50px;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

footer::after{
  background-color: #e4eaec;
  content: "";
  position: absolute;
  top: 120px;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -2;
}

.footer-wrap{
  max-width: 1200px;
  margin: 5rem auto 0;
  padding: 1rem 0.5rem;
}

.footer-wrap a{
  color: var(--font-color);
}

.footer-logo{
  width: 100%;
  max-width: 250px;
  padding: 0 0.5rem;
}

.footer-menu-wrap{
  display: grid;
}

.footer-menu-wrap .menu-btn-list{
  margin: 1rem auto;
}

@media screen and (min-width: 768px) {
  .footer-menu-wrap{
    grid-template-columns: 4fr 1fr;
    gap: 1rem;
  }
}

.copyright-box{
  background-color: var(--font-color2);
  padding: 1rem 0.5rem;
}

#page_top{
  position: fixed;
  right: 10px;
  bottom: 10px;
  background-color: var(--font-color);
  border-radius: 10px;
  z-index: 50;
  transition: all .5s;
  transform: translateY(80px);
  opacity: 0;
}

#page_top.active{
  opacity: 0.8;
  transform: translateY(0px);
}

#page_top a{
  width: 50px;
  height: 50px;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #fff;
}

#page_top a::before{
  font: var(--fa-font-solid);
  content: "\f077";
}

#page_top a::after{
  content: 'Top';
  font-size: 0.75rem;
}

/*--------------------------------------------------
  index.phpのデザイン
-------------------------------------------------- */
.top-header-wrap{
  position: relative;
}

.top-header-wrap::before{
  content: "";
  background: transparent linear-gradient(197deg, #1CE0FF 0%, #042454 100%) 0% 0% no-repeat padding-box;
  opacity: 0.6;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
}

.top-motto{
  position: absolute;
  width: 100%;
  max-width: 1200px;
  top: 40vh;
  left: 50%;
  transform: translateX(-50%);
  z-index: 800;
  padding-left: 1rem;
  font-family: var(--font-maru-sans-serif);
}

.top-motto h2{
  font-size: clamp(1.75rem, 0.932rem + 4.09vw, 4rem);
}

.topBgSwiper {
  position: relative;
  z-index: -1;
  height: 90vh;
  perspective: 1px;
}

.topBgSwiper .swiper-slide img{
  display: block;
  height: 90vh;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

@media screen and (min-width: 768px) {
  .topBgSwiper .swiper-slide img{
    width: 100%;
  }
}

.topBgSwiper .swiper-slide[class*=-prev] img {
  opacity: 0;
}

.topBgSwiper .swiper-slide[class*=-active] img {
  transition-delay: 0s;
  transform: scale(1.10);
  transition: all 9s;
}

.top-first-wrap{
  position: relative;
  background: #e3e9eb;
}

.top-first-wrap::before{
  content: "";
  background-image: url(../images/wave_bg.svg);
  background-size: 100% auto;
  background-repeat: no-repeat;
  position: absolute;
  top: -70px;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.top-squar-menu{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-columns: repeat(auto-fit, minmax(100px,1fr));
  gap: 1.5rem 1rem;
  padding: 0 0.5rem;
  position: relative;
  z-index: 1;
  top: -100px;
  max-width: 1200px;
  margin: 0 auto;
}

.top-squar-menu a{
  color: var(--font-color);
}

.squar-menu-box{
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.5rem 0.4rem;
  max-width: 180px;
  margin: 0 auto;

  font-size: clamp(0.75rem, 0.659rem + 0.45vw, 1rem);

  background: #ffffff66 0% 0% no-repeat padding-box;
  box-shadow: 0px 3px 10px #00000029;
  border: 1px solid #FFFFFF;
  border-radius: 10px;
  opacity: 1;
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
}

.squar-menu-box img{
  margin-bottom: 0.2rem;
}

.info-wrap{
  position: relative;
  background: #e3e9eb;
  z-index: 1;
  top: -70px;
}

.info-box {
  width: 100%;
  min-height: 230px;
  border-style: none;
  overflow: hidden;
}

.news-box{
  margin: 0 auto;
  font-family: 游ゴシック, Yu Gothic, 游ゴシック体, YuGothic, ヒラギノ角ゴ Pro, Hiragino Kaku Gothic Pro, sans-serif;
  font-size: 1rem;
}

.news-box p{
  margin: 0;
}

.news-box ul{
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1.5rem 1rem;
  padding: 0;
  margin: 0;
}

.news-box ul a{
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  text-decoration: none;
  color: #354055;
  font-weight: bold;
}

.news-box ul li .date{
  display: inline-block;
  width: 7rem;
}

.news-box ul li .label{
  display: inline-block;
  font-size: 0.8rem;
  border: solid 1px;
  padding: 0.1rem 0.3rem;
  border-radius: 5px;
  width: 80px;
  height: 100%;
  text-align: center;
}

.news-box ul li .text{
  display: inline-block;
  width: 100%;
  text-decoration: underline;
}

@media screen and (min-width: 768px){
  .news-box ul li .text{
    width: calc(100% - 7rem - 80px - 2rem);
  }
}

.swiper-one{
  padding: 2rem 1rem;
  margin-bottom: 2rem;
}

.swiper-one .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
}
.swiper-one .swiper-pagination-bullet-active{
  background-color: var(--font-color);
}

.swiper-one .swiper-wrapper{
  margin-bottom: 0.5rem;
  align-items: center;
}

.swiper-one img{
  border-radius: 10px;
  opacity: 1!important;
  border: solid 1px var(--font-color2);
}

.top-message-box img{
  width: 400px;
}

.top-message-title{
  max-width: 400px;
  margin: 0 auto;
}

@media screen and (min-width: 768px){
  .top-message-box{
    position: relative;
  }

  .top-message-box img{
    width: unset;
  }

  .top-message-title{
    position: absolute;
    bottom: 20px;
    right: 20px;
    max-width: 100%;
    filter: drop-shadow(0 0 10px var(--back-gray-color));
  }
}

.sns-wrap{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  justify-content: center;
  gap: 1.5rem 1rem;
  margin: 3rem 0;
}

.sns-wrap .sns-box{
  width: 100%;
  max-width: 230px;
  border: solid 2px var(--blue-color);
  padding: 1rem;
  border-radius: 5px;
  margin: 0 auto;
}

.sns-wrap .sns-box h5{
  font-size: 18px;
  text-align: center;
  color: var(--blue-color);
  border-bottom: solid 2px;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
}

.sns-wrap .sns-box .icon-wrap{
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 0.5rem;
  justify-content: center;
  align-items: center;
  height: calc(100% - 55px);
}

.sns-wrap .sns-box .icon-wrap img{
  width: 40px;
  height: auto;
}

.swiper-second{
  padding: 2rem 1rem;
  margin-bottom: 2rem;
}

.swiper-second .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
}
.swiper-second .swiper-pagination-bullet-active{
  background-color: var(--font-color);
}

.swiper-second .swiper-wrapper{
  margin-bottom: 0.5rem;
  align-items: center;
}

.swiper-second img{
  border-radius: 10px;
  opacity: 1!important;
  border-radius: 10px;
}

.banner-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 1.5rem 1rem;
  align-items: center;
  justify-content: center;
}

.banner-list .banner-item{
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}

.banner-list .banner-item.border{
  border: solid 1px #dcdcdc;
}

.unit-box-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 2rem 1rem;
  align-items: center;
  justify-content: center;
}

.unit-box-list .unit-item{
  width: 100%;
  max-width: 230px;
  margin: 0 auto;
}

.unit-box-list .unit-item a{
  display: flex;
  align-items: center;
  color: var(--font-color);
}

.unit-box-list .unit-item a img{
  width: 50px;
  height: auto;
}

.unit-box-list .unit-item.border a img{
  border: solid 1px #dcdcdc;
}


.unit-box-list .unit-item a .title{
  font-weight: bold;
  font-size: 1rem;
  width: calc(100% - 50px);
  padding: 0 0.5rem;
  word-break: break-all;
}

/*--------------------------------------------------
  contact-list.phpのデザイン
-------------------------------------------------- */
.contact-wrap{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 1.5rem 1rem;
}

/*--------------------------------------------------
  ichinoseki-kaigi.phpのデザイン
-------------------------------------------------- */
.menu-list{
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

/*--------------------------------------------------
  essay.phpのデザイン
-------------------------------------------------- */
.award-box{
  background-color: var(--back-gray-color);
  border-radius: 5px;
  padding: 1rem 0.6rem;
  font-size: 1rem;
}

.award-dl{
  display: flex;
  flex-wrap: wrap;
}

.award-dl > dt{
  width: 100%;
}

.award-dl > dd{
  width: 100%;
  padding-left: 1rem;
  margin-bottom: 0.8rem;
}

.award-dl > dd span:nth-of-type(odd){
  width: 250px;
  display: inline-block;
}

.award-dl > dd span:nth-of-type(even){
  min-width: 200px;
  padding-left: 0.4rem;
  display: inline-block;
  margin-bottom: 0.5rem;
}

/*--------------------------------------------------
  education.phpのデザイン
-------------------------------------------------- */
.edu-card{
  font-size: 1rem;
}

.edu-card .img{
  padding: 0.5rem;
  /* border-radius: 10px;
  overflow: hidden; */
}

.edu-card .img img{
  border-radius: 10px;
}

/*--------------------------------------------------
  education.phpのデザイン
-------------------------------------------------- */
.history-list{
  margin:  1rem 0;
  padding-left: 30px;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
}

.history-list dt{
  display: flex;
  flex-wrap: wrap;
  justify-content: start;
  align-items: baseline;
  font-size: 32px;
  /* width: 180px; */
  position: relative;
  padding-top: 0.5px;
}

.history-list dt::before,
.history-list dt::after,
.history-list dd::before{
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  background-color: var(--font-color);

  position: absolute;
  top: 23px;
  left: -20px;
}

.history-list dt::after,
.history-list dd::before{
  height: 100%;
  background-color: var(--back-gray-color);
  z-index: -1;
}

.history-list dd:last-of-type::before{
  height: calc(100% - 23px);
}

.history-list dt small{
  display: inline-block;
  font-size: 1rem;
  padding-left: 0.5rem;
}

.history-list dd{
  display: flex;
  width: 100%;
  flex-direction: column;
  padding: 0.5rem 0 2rem;
  position: relative;
}

.history-list dd:last-of-type{
  padding: 0.5rem 0 0;
}

.history-list dd time{
  display: inline-block;
  width: 100%;
}

.history-list dd .text{
  width: 100%;
}

@media screen and (min-width: 768px) {
  .history-list{
    flex-direction: row;
    padding-left: 0;
  }

  .history-list dt{
    width: 110px;
    justify-content: end;
  }

  .history-list dt:not(:last-of-type){
    padding-bottom: 2rem;
  }

  .history-list dt::before,
  .history-list dt::after{
    left: unset;
    right: -20px;
  }

  .history-list dt:last-of-type::after{
    height: calc(100% - 23px);
  }


  .history-list dd::before{
    content: unset;
  }

  .history-list dd{
    flex-direction: row;
    width: calc(100% - 110px);
    padding: 0.8rem 0 2rem 30px;
  }

  .history-list dd:last-of-type{
    padding: 0.8rem 0 0 30px;
  }

  .history-list dd time{
    width: 50px;
  }

  .history-list dd .text{
    width: calc(100% - 50px);
    padding-left: 0.5rem;
  }
}

/* --------------------------------------------------
  luminousのカスタマイズ
-------------------------------------------------- */
.luminous img{
  position: relative;
  display: block;
}

.luminous img::after{
  display: block;
  position: absolute;
  top: 10px;
  right: 0;
  font: var(--fa-font-solid);
  content: '\f00e';
  color: var(--blak-color);
  width: 30px;
  height: 30px;
}

.lum-lightbox.lum-open{
  z-index: 9999;
}

.luminous small{
  color: var(--font-color);
}

.lum-img{
  max-width: 100%!important;
}

.lum-next-button:after,
.lum-previous-button:after{
  font: var(--fa-font-solid);
  border: unset;
  box-shadow: unset;
  top: 10px;
  transform: unset;
  width: 0;
  height: 0;
  font-size: 3rem;
  color: var(--font-color);
}

.lum-next-button:after{
  content: "\f138";
  right: 3rem;
}

.lum-previous-button:after{
  content: "\f137";
  left: 0;
}
