@charset "utf-8";

/* CSS Document */

@import 'https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap';
/*
  font-family: 'Roboto', sans-serif;
*/


/**********************
ベース
**********************/
html,
body {
  height: 100%;
  min-height: 100%;
  font-feature-settings: "palt";
  font-size: 13px;
  font-weight: normal;
  font-family: Hiragino Sans,Hiragino Kaku Gothic ProN,YuGothic,"Yu Gothic",Meiryo,sans-serif;
  line-height: 1.5;
  letter-spacing: 0.02em;
/*
  font-family: "Yu Gothic UI","Meiryo UI","Yu Gothic""メイリオ",sans-serif;
  font-family: "Hiragino Mincho ProN","游明朝",YuMincho,serif;
*/
}

@media screen and (max-width:834px) {
  body{
    font-size:calc(9px + 1vmin);
    -webkit-tap-highlight-color:transparent;
  }
}


@media all and (-ms-high-contrast:none) {
/* meiryo only IE */
  body {
    font-family: Meiryo,sans-serif;
  }
}

a {
  color: #0599d9 ;
  text-decoration: underline;
  transition:all 0.2s ease;
}

a:visited{
}
a:hover,
a:active {
  color: ;
  text-decoration: none;
}

img {
  width: auto;
  max-width: 100%;
  height: auto;
}

/* = Selected Text
----------------------------------------------- */
::selection {
  background: rgba(0, 144, 202, 0.5); /* Safari */
}

::-moz-selection {
  background: rgba(0, 144, 202, 0.5); /* Firefox */
}


/**********************
layout
**********************/

/***********
common
************/

.relative {  position: relative !important; }

.right,.alignright {  float: right !important; }
.left,.alignleft  {  float: left !important; }
.aligncenter  { display: block; margin-left:auto; margin-right:auto; }

.textAlign-center {  text-align: center !important; }
.textAlign-right  {  text-align: right !important; }
.textAlign-left   {  text-align: left !important; }

.l-bottom-xxsmall {  margin-bottom: 5px  !important; }
.l-bottom-xsmall  {  margin-bottom: 10px !important; }
.l-bottom-small   {  margin-bottom: 15px !important; }
.l-bottom         {  margin-bottom: 20px !important; }
.l-bottom-large   {  margin-bottom: 30px !important; }
.l-bottom-xlarge  {  margin-bottom: 50px !important; }
.l-bottom-xxlarge {  margin-bottom: 80px !important; }

.l-top-xxsmall {  margin-top: 5px  !important; }
.l-top-xsmall  {  margin-top: 10px !important; }
.l-top-small   {  margin-top: 15px !important; }
.l-top         {  margin-top: 20px !important; }
.l-top-large   {  margin-top: 30px !important; }
.l-top-xlarge  {  margin-top: 50px !important; }
.l-top-xxlarge {  margin-top: 80px !important; }

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

  .l-bottom-xxsmall {  margin-bottom: 5px  !important; }
  .l-bottom-xsmall  {  margin-bottom: 7px !important; }
  .l-bottom-small   {  margin-bottom: 10px !important; }
  .l-bottom         {  margin-bottom: 15px !important; }
  .l-bottom-large   {  margin-bottom: 20px !important; }
  .l-bottom-xlarge  {  margin-bottom: 30px !important; }
  .l-bottom-xxlarge {  margin-bottom: 40px !important; }

  .l-top-xxsmall {  margin-top: 5px  !important; }
  .l-top-xsmall  {  margin-top: 7px !important; }
  .l-top-small   {  margin-top: 10px !important; }
  .l-top         {  margin-top: 15px !important; }
  .l-top-large   {  margin-top: 20px !important; }
  .l-top-xlarge  {  margin-top: 30px !important; }
  .l-top-xxlarge {  margin-top: 40px !important; }

}

/***********
column
************/

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

.l-firstColumn{
  width: 68%;
}

.l-secondColumn{
  width: 25%;
}

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

  .l-column{
    display: block;
  }

  .l-firstColumn{
    width: auto;
    float: none;
  }

  .l-secondColumn{
    width: auto;
    float: none;
  }

}

/***********
base
************/

.l-base {
  width: auto;
  max-width: 1060px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 30px;
  padding-right: 30px;
}

.l-base-wide {
  width: auto;
  max-width: 1360px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 30px;
  padding-right: 30px;
}

.l-base-small {
  width: auto;
  max-width: 824px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 12px;
  padding-right: 12px;
}

.l-block {
  padding-top: 100px;
  padding-bottom: 100px;
}

.l-block-top {
  padding-top: 100px;
}

.l-block-bottom {
  padding-bottom: 100px;
}

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

  .l-base {
    box-sizing: border-box;
    padding-left: 0;
    padding-right: 0;
  }

  .l-base-wide {
    box-sizing: border-box;
    padding-left: 0;
    padding-right: 0;
  }

  .l-base-small {
    box-sizing: border-box;
    padding-left: 0;
    padding-right: 0;
  }

  .l-base:not(.l-base-noOffset),
  .l-base-wide:not(.l-base-noOffset),
  .l-base-small:not(.l-base-noOffset){
    padding-left: 5%;
    padding-right: 5%;
  }

  .l-base-wide .l-base,
  .l-base-wide .l-base-small,
  .l-base .l-base-small {
    padding-left: 0;
    padding-right: 0;
  }

  .l-block {
    padding-top: 60px;
    padding-bottom: 60px;
  }

  .l-block-top {
    padding-top: 60px;
  }

  .l-block-bottom {
    padding-bottom: 60px;
  }

}


/**********************
module
**********************/


/***********
common
************/



/***********
module-zoom
************/

.zoomHover{
  overflow: hidden;
  z-index: 2;
  position: relative;

}
.zoomHover img{
  transform:scale(1) ;
  transition:all 0.5s ease;
}
a:hover .zoomHover img:hover{
  transform:scale(1.03) ;
  opacity: 0.8;
}

/***********
module-text
************/

.textMain{
  font-size: 124%;
  line-height: 2;
}

.textLead{
  font-size: 154%;
  line-height: 2;
  padding-bottom: 80px;
  text-align: center;
}

.lead{
  font-size: 154%;
  font-weight: 600;
  line-height: 1.5;
  padding-bottom: 20px;
}




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

  .textMain{
    font-size: 116%;
    line-height: 1.7;
  }

  .textLead{
    font-size: 116%;
    line-height: 1.8;
    padding-bottom: 40px;
    text-align: center;
  }

  .lead{
    font-size: 131%;
  }
}

/***********
module-btn
************/

.linkWrap{
  padding: 20px 0 20px;
  text-align: center;
}

.btn {
  display: inline-block;
  width: 100%;
  max-width: 360px;
  padding: 15px 40px 15px 40px;
  font-size: 139%;
  color: #000;
  text-decoration: none !important;
  border: 1px solid #333;
  border-radius: 100px;
  transition: all 0.2s ease;
  position: relative;
}

.btn::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-top: 1px solid #333;
  border-right: 1px solid #333;
  position: absolute;
  right: 20px;
  top: 50%;
  margin-top: -6px;
  transform: rotate(45deg);
}

.btn:hover {
  background-color: #000;
  color: #fff;
}

.btn-small {
  font-size: 108%;
  padding: 8px 30px 8px 30px;
}

.btn-large {
  font-size: 154%;
  padding: 17px 40px 17px 40px;
}

.btn-block {
  padding-left: 0;
  padding-right: 0;
  display: block;
  text-align: center;
}

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

  .btn {
    width: 100%;
    max-width: 280px;
    font-size: 116%;
    box-sizing: border-box;
    padding: 12px 0px 12px 0px;
    text-align: center;
  }

}

/***********
module-header
************/

.header {
}

.header-inner {
  display: flex;
  justify-content: space-between;
  position: relative;
}

.header-logo {
  width: 430px;
  padding: 20px 0 20px;
}


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

  .header {
    background-size: 100% 5px;
  }

  .header-logo {
    width: 240px;
    padding: 18px 0 15px;
  }


}


/***********
module-navi
************/


/***********
module-mainVisual
************/

/***********
module-contents
************/

/***********
module-heading
************/

.heading{
  text-align: center;
  padding-bottom: 60px;
}
.heading-title {
  display: inline-block;
  font-size: 250%;
  font-weight: 600;
  position: relative;
}
.heading-title::before,
.heading-title::after {
  content: "";
  display: block;
  width: 65px;
  height: 5px;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  margin-top: -3px;
}
.heading-subTitle {
  font-family: 'Roboto', sans-serif;
  font-weight: 500;
  font-size: 108%;
}
.heading-lead {
  padding-top: 40px;
  font-size: 124%;
  line-height: 2;
}

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

  .heading{
    padding-bottom: 40px;
  }
  .heading-title {
    font-size: 154%;
  }
  .heading-subTitle {
    font-weight: 400;
    font-size: 85%;
  }
  .heading-lead {
    padding-top: 20px;
    font-size: 108%;
    line-height: 1.8;
    text-align: center;
  }


}

/***********
module-gridList
************/


/***********
module-footer
************/

.copyright{
  display: block;
  background-color: #318B2B;
  color: #fff;
  padding: 15px 0;
  font-size: 100%;
  text-align: center;
}

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

}


/***********
module-jumpTop
************/

.jumpTop{
  position: fixed;
  right: 10px;
  bottom: 80px;
  z-index: 999;
}
.jumpTop a{
  display: block;
  width: 80px;
  height: 160px;
  position: relative;
}
.jumpTop a::before{
  content: "";
  display: block;
  width: 2px;
  height: 60px;
  position: absolute;
  left: 50%;
  top: 80px;
  background-color: #000;
  transition: all 0.3s ease;
}
.jumpTop a::after{
  content: "";
  display: block;
  width: 10px;
  height: 2px;
  position: absolute;
  left: 50%;
  top: 80px;
  background-color: #000;
  transform-origin: left top;
  transform: skewY(45deg);
  transition: all 0.3s ease;
}

.jumpTop a:hover::before,
.jumpTop a:hover::after{
  top: 10px;
}
.jumpTop a:hover::before{
  height: 130px;
}

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

  .jumpTop{
    display: none !important;
  }

}

/***********
module-mobile
************/

/***********
module-mobile
************/

/***********
module-pageHeading
************/

.pageHeading{
  background-color: #eee;
  padding: 60px 0;
  overflow: hidden;
}
.pageHeading .heading{
  padding-bottom: 0;
}

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

  .pageHeading{
    padding: 30px 0;
  }

}


/***********
module-article
************/


/***********
module-post
************/


.post {
  font-size: 1.24rem;
  line-height: 2;
  padding-bottom: 20px;
}

.post p:not([class]) {
  font-size: 1.24rem;
  line-height: 2;
  padding-bottom: 1em;
}

.post h2:not([class]) {
  font-size: 2rem;
  margin: 40px 0 20px 0;
  border-left: 5px solid #222;
  padding: 0 0 0 20px;
  line-height: 1.3;
}

.post h3:not([class]) {
  font-size: 1.7rem;
  background-color: rgba(0, 0, 0, 0.05);
  padding: 6px 20px;
  border-radius: 8px;
  margin: 30px 0 20px 0;
}

.post h4:not([class]) {
  font-size: 1.54rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  padding-bottom: 8px;
  margin: 30px 0 20px 0;
}

.post h5:not([class]) {
  font-size: 1.39rem;
  padding: 20px 0 15px 0;
}

.post h6:not([class]) {
  font-size: 1.31rem;
  padding: 15px 0 8px 0;
}

.post img:not([class]) {
  padding-bottom: 20px;
}

.post blockquote:not([class]) {
  background-color: rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.2);
  padding: 25px 3%;
  border-radius: 15px;
  margin: 30px 0;
}

.post table:not([class]) {
  border: 1px solid rgba(0, 0, 0, 0.2);
}

.post table:not([class]) thead th,
.post table:not([class]) thead td {
  border: 1px solid rgba(0, 0, 0, 0.2);
  font-size: 1.24rem;
  padding: 12px 3%;
  text-align: center;
  font-weight: 500;
  line-height: 1.7;
  background-color: rgba(0, 0, 0, 0.8);
  color: #fff;
}

.post table:not([class]) tbody th {
  border: 1px solid rgba(0, 0, 0, 0.2);
  font-size: 1.24rem;
  padding: 12px 3%;
  text-align: left;
  vertical-align: top;
  line-height: 1.7;
  background-color: rgba(0, 0, 0, 0.05);
}

.post table:not([class]) tbody td {
  border: 1px solid rgba(0, 0, 0, 0.2);
  font-size: 1.24rem;
  padding: 12px 3%;
  text-align: left;
  vertical-align: top;
  font-weight: 500;
  line-height: 1.7;
  background-color: #fff;
}



.post ul:not([class]){
  font-size: 1.24rem;
  line-height: 1.8;
  list-style: disc;
  margin-left: 1.5em;
  padding: 20px 0;
}
.post ol:not([class]){
  font-size: 1.24rem;
  line-height: 1.8;
  list-style: decimal;
  margin-left: 1.5em;
  padding: 20px 0;
}


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

  .post {
    font-size: 1.08rem;
    line-height: 1.8;
    padding-bottom: 10px;
  }

  .post p:not([class]) {
    font-size: 1.08rem;
    line-height: 1.8;
  }

  .post h2:not([class]) {
    font-size: 1.31rem;
    margin: 30px 0 20px 0;
    border-left: 3px solid #222;
    padding: 0 0 0 10px;
    line-height: 1.3;
  }

  .post h3:not([class]) {
    font-size: 1.24rem;
    padding: 10px 10px;
    margin: 20px 0 14px 0;
    line-height: 1.3;
  }

  .post h4:not([class]) {
    font-size: 1.24rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
    margin: 20px 0 10px 0;
    line-height: 1.3;
  }

  .post h5:not([class]) {
    font-size: 1.16rem;
    padding: 20px 0 10px 0;
  }

  .post h6:not([class]) {
    font-size: 1.16rem;
    padding: 15px 0 8px 0;
  }

  .post img:not([class]) {
    padding-bottom: 10px;
  }

  .post blockquote:not([class]) {
    padding: 15px 3%;
    margin: 20px 0;
  }

  .post table:not([class]) {
    border: 1px solid rgba(0, 0, 0, 0.2);
  }

  .post table:not([class]) thead th,
  .post table:not([class]) thead td {
    font-size: 0.93rem;
    padding: 5px 2%;
    line-height: 1.5;
  }

  .post table:not([class]) tbody th {
    font-size: 0.93rem;
    padding: 5px 2%;
    line-height: 1.5;
  }

  .post table:not([class]) tbody td {
    font-size: 0.93rem;
    padding: 5px 2%;
    line-height: 1.5;
  }


  .post ul:not([class]){
    font-size: 1.08rem;
    line-height: 1.8;
    padding: 10px 0;
  }
  .post ol:not([class]){
    font-size: 1.08rem;
    line-height: 1.8;
    padding: 10px 0;
  }

}

/***********
module-paging
************/


/***********
module-acfSeparate
************/

.acfSeparate{
  display: flex;
  justify-content: space-between;
}
.acfSeparate:not(:last-of-type){
  padding-bottom: 60px;
}

.acfSeparate.acfSeparate-right{
  flex-direction: row-reverse;
}

.acfSeparate-img {
  width: 50%;
}
.acfSeparate-inner {
  width: 50%;
  flex: 1;
}

.acfSeparate.acfSeparate-right .acfSeparate-img {
  padding-left: 50px;
}
.acfSeparate.acfSeparate-left .acfSeparate-img {
  padding-right: 50px;
}

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

  .acfSeparate{
    display: block;
  }
  .acfSeparate:not(:last-of-type){
    padding-bottom: 40px;
  }

  .acfSeparate-img {
    width: auto;
    padding-bottom: 20px;
  }
  .acfSeparate-inner {
    width: auto;
  }

  .acfSeparate.acfSeparate-right .acfSeparate-img {
    padding-left: 0;
  }
  .acfSeparate.acfSeparate-left .acfSeparate-img {
    padding-right: 0;
  }

}

/***********
module-xxxxx
************/

/***********
module-xxxxx
************/

/***********
module-xxxxx
************/

/***********
module-xxxxx
************/

/***********
module-xxxxx
************/




/**********************
status
**********************/

.is-hide {
  display: none;
}

.is-out{
  position: absolute;
  left: -9999999px;
}

.is-pc-hide {
  display: none;
}

.is-pc-inline {
  display: inline;
}

.is-sp-inline {
  display: none;
}

.is-pc-noevent {
  pointer-events: none;
}

.is-step > *{
  opacity: 0;
  transition: opacity 1.2s ease;
}
.is-step.is-show > *{
  opacity: 1;
}

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

  .is-pc-hide {
    display: block;
  }

  .is-sp-hide {
    display: none;
  }

  .is-sp-inline {
    display: inline;
  }

  .is-pc-inline {
    display: none;
  }

  .is-pc-noevent {
    pointer-events: auto;
  }

}
