@charset "utf-8";

/*****************************************
*
* パーツ
*
******************************************/

/*------------------------------------------*/
/* section
/*------------------------------------------*/

.section,
.section-wide,
.section-back,
.section-back-wide {
  text-align: left;
  width: calc(100% - 40px);
  margin: 0 auto;
  margin-top: 80px;
}

.section-back,
.section-back-wide {
  background: rgba(255, 255, 255, 0.3);
  border-radius: 20px;
  padding: 40px 20px;
}

.section-back.green,
.section-back-wide.green {
  background: rgba(140, 251, 140, 0.3);
}

@media screen and (min-width: 768px), print {

  .section,
  .section-wide,
  .section-back,
  .section-back-wide {
    width: calc(100% - 80px);
  }

  .section-back,
  .section-back-wide {
    padding: 60px 40px;
  }
}

@media screen and (min-width: 834px), print {

  .section,
  .section-wide,
  .section-back,
  .section-back-wide {
    width: calc(100% - 120px);
    margin-top: 160px;
  }

  .section-back,
  .section-back-wide {
    border-radius: 40px;
    padding: calc(calc(60 / 1400) * 100vw);
  }
}

@media screen and (min-width: 1240px), print {

  .section,
  .section-back {
    width: 1100px;
  }

  .section-back,
  .section-back-wide {
    padding: calc(calc(90 / 1400) * 100vw);
  }
}

@media screen and (min-width: 1400px), print {

  .section-wide,
  .section-back-wide {
    width: 1280px;
  }

  .section-back,
  .section-back-wide {
    padding: 90px;
  }
}

.container .section:first-child,
.container .section-wide:first-child,
.container .section-back:first-child,
.container .section-back-wide:first-child {
  margin-top: 0;
}


/*------------------------------------------*/
/* 地図
/*------------------------------------------*/

.map_wrapper {
  margin: 0;
}

.map_wrapper iframe {
  width: 100%;
  height: 200px;
}

@media screen and (min-width: 768px), print {
  .map_wrapper iframe {
    width: 100%;
    height: 400px;
  }
}

/*------------------------------------------*/
/* コンテンツ 大見出し
/*------------------------------------------*/

.page-large-heading {
  position: relative;
  text-align: center;
  color: var(--color-main);
  font-size: 1.1rem;
  font-weight: bold;
  margin-top: 20px;
  margin-bottom: 80px;
  z-index: 2;
}

.page-large-heading::before {
  content: '';
  display: inline-block;
  background: url('../img/common/heading_back.svg') no-repeat;
  background-size: 100%;
  aspect-ratio: 6/1;
  width: 100%;
  height: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: all .5s ease;
  z-index: -1;
}

@media screen and (min-width: 768px), print {
  .page-large-heading {
    font-size: 1.4rem;
  }

  .page-large-heading::before {
    width: calc(calc(600 / 1400) * 100vw);
  }
}

@media screen and (min-width: 834px), print {
  .page-large-heading {
    font-size: 2.2rem;
    margin-bottom: 160px;
  }
}

@media screen and (min-width: 1400px), print {
  .page-large-heading::before {
    width: 600px;
  }
}


/*------------------------------------------*/
/* H2
/*------------------------------------------*/

h2.wp-block-heading,
.heading-secondary {
  position: relative;
  text-align: left;
  width: 100%;
  color: var(--color-main);
  font-size: 1.1rem;
  font-weight: bold;
  padding-bottom: 20px;
  margin-top: 3em;
  margin-bottom: 2em;
}

h2.wp-block-heading::before,
.heading-secondary::before {
  content: '';
  display: inline-block;
  background: url('../img/common/line_wave.svg') repeat-x;
  background-size: auto 12px;
  aspect-ratio: 20/12;
  width: 100%;
  height: 12px;
  position: absolute;
  bottom: 0;
  left: 0;
  transition: all .5s ease;
}

@media screen and (min-width: 768px), print {

  h2.wp-block-heading,
  .heading-secondary {
    font-size: 1.4rem;
  }
}

@media screen and (min-width: 834px), print {

  h2.wp-block-heading,
  .heading-secondary {
    font-size: 2.2rem;
    padding-bottom: 30px;
  }
}


/*------------------------------------------*/
/* H3
/*------------------------------------------*/

h3.wp-block-heading,
.heading-tertiary {
  background: var(--color-main);
  border-radius: 10px;
  width: 100%;
  text-align: left;
  color: white;
  font-size: 1.2rem;
  font-weight: bold;
  line-height: 1.2;
  padding: 10px 15px;
  margin-top: 3em;
  margin-bottom: 2em;
}

@media screen and (min-width: 834px), print {

  h3.wp-block-heading,
  .heading-tertiary {
    border-radius: 20px;
    font-size: 1.6rem;
  }
}


/*------------------------------------------*/
/* H4
/*------------------------------------------*/

h4.wp-block-heading,
.heading-quaternary {
  position: relative;
  text-align: left;
  width: 100%;
  font-size: 1.1rem;
  font-weight: 500;
  padding-bottom: 10px;
  margin-top: 3em;
  margin-bottom: 2em;
}

h4.wp-block-heading::before,
.heading-quaternary::before {
  content: '';
  display: inline-block;
  background: var(--color-main);
  width: 100%;
  height: 2px;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

@media screen and (min-width: 834px), print {

  h4.wp-block-heading,
  .heading-quaternary {
    font-size: 1.6rem;
  }
}

/*------------------------------------------*/
/* H5
/*------------------------------------------*/

h5.wp-block-heading,
.heading-quinary {
  position: relative;
  text-align: left;
  width: 100%;
  border-bottom: dashed 2px var(--color-main);
  font-size: 1rem;
  font-weight: 500;
  padding-bottom: 10px;
  margin-top: 3em;
  margin-bottom: 2em;
}

@media screen and (min-width: 834px), print {

  h5.wp-block-heading,
  .heading-quinary {
    font-size: 1.4rem;
  }
}



/*------------------------------------------*/
/* 吹き出し
/*------------------------------------------*/


.balloon-type-cloud,
.balloon-type-cross {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  text-align: center;
  color: var(--color-main);
  font-weight: bold;
  letter-spacing: -0.05em;
  z-index: 10;
}

.balloon-type-cloud {
  background: url('../img/common/balloon_cloud.svg') no-repeat;
  background-size: 100%;
  aspect-ratio: 34/28;
  width: 240px;
  font-size: 1rem;
  line-height: 1.8;
}

.balloon-type-cross {
  background: url('../img/common/balloon_cross.svg') no-repeat;
  background-size: 100%;
  aspect-ratio: 20/16;
  width: 120px;
  font-size: 0.8rem;
  line-height: 1.4;
}

@media screen and (max-width: 767px) {
  .balloon-type-cloud {
    margin: 0 auto;
    margin-top: 30px;
  }
}

@media screen and (min-width: 768px), print {
  .balloon-type-cloud {
    width: calc(calc(340 / 1400) * 100vw);
    font-size: calc(calc(22 / 1400) * 100vw);
  }

  .balloon-type-cross {
    width: calc(calc(200 / 1400) * 100vw);
    font-size: calc(calc(20 / 1400) * 100vw);
  }
}

@media screen and (min-width: 1400px), print {
  .balloon-type-cloud {
    font-size: 1.4rem;
    width: 340px;
  }

  .balloon-type-cross {
    width: 200px;
    font-size: 1.4rem;
  }
}




/*------------------------------------------*/
/* 外部リンク
/*------------------------------------------*/

.link-blank {
  color: var(--color-main);
}

.link-blank::after {
  content: '';
  display: inline-block;
  background: url('../img/link_blank.svg') no-repeat;
  background-size: 100%;
  aspect-ratio: 1/1;
  width: 10px;
  height: auto;
  margin-left: 3px;
  margin-right: 3px;
}


/*------------------------------------------*/
/* ボタン wrap
/*------------------------------------------*/

.btn-type-wrap {
  display: inline-block;
  width: 100%;
  text-align: center;
  margin-top: 50px
}

@media screen and (min-width: 834px), print {
  .btn-type-wrap {
    margin-top: 80px;
  }
}


/*------------------------------------------*/
/* ボタン 角丸
/*------------------------------------------*/

.btn-type-rounded {
  position: relative;
  display: inline-block;
  background: var(--color-main);
  border-radius: 40px;
  border: solid 2px var(--color-main);
  text-align: left;
  color: white;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.4;
  padding: 15px 80px 15px 40px;
  transition: all .5s ease;
}

.btn-type-rounded.orange {
  background: var(--color-orange);
  border-color: var(--color-orange);
}

.btn-type-rounded.min {
  font-size: 0.8rem;
  padding: 8px 50px 8px 20px;
}

.btn-type-rounded::after {
  content: '';
  display: inline-block;
  background: url('../img/common/arrow_white.svg') no-repeat;
  background-size: 100%;
  aspect-ratio: 20/19;
  width: 20px;
  height: auto;
  opacity: 1;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 20px;
  transition: all .5s ease;
}

.btn-type-rounded.min::after {
  width: 12px;
  right: 15px;
}

.btn-type-rounded.blank::after {
  background: url('../img/common/icon_blank.svg') no-repeat;
  background-size: 100%;
  aspect-ratio: 1/1;
  width: 18px;
}

.btn-type-rounded.pdf::after {
  background: url('../img/common/icon_pdf.svg') no-repeat;
  background-size: 100%;
  aspect-ratio: 17/20;
  width: 17px;
}

.btn-type-rounded:visited {
  color: white;
}

.btn-type-rounded:hover {
  text-decoration: none;
  background: transparent;
  color: var(--color-main);
}

.btn-type-rounded:hover::after {
  background: url('../img/common/arrow.svg') no-repeat;
  background-size: 100%;
}

.btn-type-rounded.orange:hover {
  color: var(--color-orange);
}

.btn-type-rounded.orange:hover::after {
  background: url('../img/common/arrow_orange.svg') no-repeat;
  background-size: 100%;
}


/*------------------------------------------*/
/* リスト 黒丸
/*------------------------------------------*/

.list-type-circle-black li {
  position: relative;
  text-align: left;
  padding-left: 1em;
}

.list-type-circle-black li::before {
  content: '・';
  position: absolute;
  top: 0;
  left: 0;
}


/*------------------------------------------*/
/* リスト 色丸
/*------------------------------------------*/

.list-type-circle {
  margin-top: 1em;
}

.list-type-circle li {
  position: relative;
  text-align: left;
  padding-left: 15px;
}

.list-type-circle li::before {
  content: '';
  display: inline-block;
  background: var(--color-main);
  border-radius: 50%;
  width: 6px;
  height: 6px;
  position: absolute;
  top: 0.5em;
  left: 0;
}

.list-type-circle.pink li::before {
  background: var(--color-pink);
}

.list-type-circle li+li {
  margin-top: 0.5em;
}

@media screen and (min-width: 768px), print {
  .list-type-circle li::before {
    top: 0.6em;
  }
}


/*------------------------------------------*/
/* 表 デフォルト
/*------------------------------------------*/

.wp-block-table,
.table-type-background {
  margin-top: 40px;
}

.wp-block-table table,
.table-type-background {
  border-collapse: collapse;
  width: 100%;
}

@media screen and (min-width: 834px), print {

  .wp-block-table,
  .table-type-background {
    margin-top: 60px;
  }
}

.wp-block-table table th,
.wp-block-table table td,
.table-type-background th,
.table-type-background td {
  border: 1px solid var(--color-light-main);
  padding: 10px;
}

.wp-block-table table th,
.table-type-background th {
  background: var(--color-bright-main);
}

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

  .wp-block-table.scrollable table,
  .table-type-background.scrollable {
    /*テーブルスマホで横スクロールさせる場合*/
    display: block;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
  }
}


/*------------------------------------------*/
/* 表 下線
/*------------------------------------------*/

.is-style-table-underline,
.table-type-underline {
  margin-top: 40px;
}

@media screen and (min-width: 834px), print {

  .is-style-table-underline,
  .table-type-underline {
    margin-top: 60px;
  }
}

.is-style-table-underline table,
.table-type-underline {
  border-collapse: collapse;
  width: 100%;
}

.is-style-table-underline table th,
.is-style-table-underline table td,
.table-type-underline th,
.table-type-underline td {
  text-align: left;
  font-size: 1rem;
  border: 0;
  border-bottom: dashed 2px var(--color-bright-main);
  padding: 10px 0;
}

.is-style-table-underline table th,
.table-type-underline th {
  font-weight: bold;
}


/*------------------------------------------*/
/* 表 下線 スマホで1列
/*------------------------------------------*/

.is-style-table-underline-responsive,
.table-type-underline-responsive {
  margin-top: 40px;
}

.is-style-table-underline-responsive table,
.table-type-underline-responsive {
  border-collapse: collapse;
  width: 100%;
}

@media screen and (min-width: 834px), print {

  .is-style-table-underline-responsive,
  .table-type-underline-responsive {
    margin-top: 60px;
  }
}

.is-style-table-underline-responsive table th,
.is-style-table-underline-responsive table td,
.table-type-underline-responsive th,
.table-type-underline-responsive td {
  text-align: left;
  border: 0;
  border-bottom: dashed 2px var(--color-bright-main);
  padding: 20px 0;
}

.is-style-table-underline-responsive table th,
.table-type-underline-responsive th {
  font-weight: bold;
}

.is-style-table-underline-responsive table td,
.table-type-underline-responsive td {
  text-align: left;
}

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

  .is-style-table-underline-responsive table tr,
  .is-style-table-underline-responsive table th,
  .is-style-table-underline-responsive table td,
  .table-type-underline-responsive tr,
  .table-type-underline-responsive th,
  .table-type-underline-responsive td {
    display: block;
    width: auto;
  }

  .is-style-table-underline-responsive table th,
  .is-style-table-underline-responsive table td,
  .table-type-underline-responsive th,
  .table-type-underline-responsive td {
    font-size: 0.9rem;
    border-bottom: 1px solid var(--color-bright-main);
    padding: 10px 0;
  }

  .is-style-table-underline-responsive table th,
  .table-type-underline-responsive th {
    border-bottom: 1px dotted var(--color-bright-main);
  }
}

@media screen and (min-width: 768px), print {

  .is-style-table-underline-responsive table th,
  .table-type-underline-responsive th {
    width: 10em;
  }
}



/*------------------------------------------*/
/* リスト 下線
/*------------------------------------------*/

/* PC用（通常のテーブル） */
.is-style-table-underline-column table,
.table-type-underline-column {
  width: 100%;
  border-collapse: collapse;
}

.is-style-table-underline-column table td,
.table-type-underline-column td {
  text-align: left;
  border: 0;
  border-bottom: dashed 2px var(--color-bright-main);
  width: 25%;
  padding: 15px 0;
}

/* スマホ用（2列にする） */
@media (max-width: 767px) {

  .is-style-table-underline-column table,
  .is-style-table-underline-column table tbody,
  .is-style-table-underline-column table tr,
  .is-style-table-underline-column table td,
   .table-type-underline-column,
  .table-type-underline-column tbody,
  .table-type-underline-column tr,
  .table-type-underline-column td {
    display: block;
    width: 100%;
  }

  .is-style-table-underline-column table tr,
  .table-type-underline-column tr {
    display: flex;
    flex-wrap: wrap;
  }

  .is-style-table-underline-column table td,
  .table-type-underline-column td {
    width: 50%;
    box-sizing: border-box;
    padding: 8px 0;
  }

  /* JSで付与するクラスで制御 */
  .is-style-table-underline-column table td.no-border,
  .table-type-underline-column td.no-border {
    border-bottom: none;
  }
}



/*------------------------------------------*/
/* テキスト
/*------------------------------------------*/

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.text-bold {
  font-weight: bold;
}

.text-red {
  color: var(--color-red);
}

.text-min {
  font-size: 1rem;
}



/*------------------------------------------*/
/* 改行
/*------------------------------------------*/

/* 強制改行 --------------------------------*/
.break-word {
  word-wrap: break-word;
}

/* 改行消し --------------------------------*/
@media screen and (max-width: 767px) {
  .br-sp-non {
    display: none;
  }
}

@media screen and (min-width: 768px), print {
  .br-pc-non {
    display: none;
  }
}