@charset "utf-8";

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
修正
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

/* PC用グロナビのはみだしを修正 */
/* .l-header__nav {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
} */
/* サイドバー バナーの間隔を修正 */
/* 自由HTML （TOP）バナー_26に記載 */
/* @media (max-width: 768px) {
  .l-sidebar__list {
      gap: 16px;
  }
} */

/* フォームのセレクトがセンターになっているものを修正 */
.ct-form .contac-tbl select {
  justify-content: space-between;
  padding-inline: 10px;
}

.rzf-wrap dt{
  font-weight: 600;
}
.rzf-wrap li, .rzf-wrap dd {
    font-weight: 500!important;
}

.rzf-wrap {
  p {font-weight: 500;}
  p a{font-width: 700;}
}

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
色設定
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
:root {
  --primary-color: #0B318F;
  --second-color: #e60020;
  --accent-color: #FFEA5E;
  --text-color: #555;
  --white-color: #fff;

  --rsunz-color: #EF9090;
  --rsunzjr-color: #F08500;
}

.rzf-color-bl {
  color: var(--primary-color);
}

.rzf-color-wh {
  color: var(--white-color);
}

.rzf-color-rd {
  color: var(--second-color);
}

.rzf-color-yel {
  color: var(--accent-color);
}

.rzf-wrap.rzf-color-rsunz {
  color: var(--rsunz-color) !important;
}

.rzf-color-rsunzjr {
  color: var(--rsunzjr-color) !important;
}

.rzf-bg-bl {
  background-color: var(--primary-color);
}

.rzf-bg-wh {
  background-color: var(--white-color);
}

.rzf-bg-rd {
  background-color: var(--second-color);
}

.rzf-bg-yel {
  background-color: var(--accent-color);
}

.rzf-bg-rsunz {
  background-color: var(--rsunz-color) !important;
}

.rzf-bg-rsunzjr {
  background-color: var(--rsunzjr-color) !important;
}

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ヘッダー
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*--------------------------------------------
  ヘッダー・ポップアップナビ Bチケ
---------------------------------------------*/
.team-nav-bticket {
  position: absolute;
  top: 38px;
  right: 240px;
}

.team-nav-bticket a, .tsns-bticket a {
  display: block;
  padding: 2px;
}

.team-nav-bticket img {
  max-width: 140px;
  vertical-align: bottom;
}

.tsns-bticket {
  width: 100% !important;
  position: absolute;
  top: 35px;
  left: calc(50% + 80px);
}

.tsns-bticket img {
  max-width: 200px;
  vertical-align: bottom;
}

@media screen and (min-width: 768px) and (max-width: 1450px) {
  .team-nav-bticket {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .team-nav-bticket {
    top: 16px;
    right: 80px;
  }

  .team-nav-bticket img {
    max-width: 80px;
  }

  .tsns-bticket {
    width: 134px !important;
    top: -44px;
    left: inherit;
    right: 16px;
  }

  .tsns-bticket img {
    max-width: 130px;
  }
}

.team-sns a:hover, .team-nav-bticket a:hover {
  opacity: 0.7;
  transition: 0.2s;
}





/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
フッター
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/* ページトップへ戻る */
/* #pagetop {
position: fixed;
bottom: 10px;
right: 10px;
z-index: 999999;
}
#pagetop a {
display: block;
text-align: center;
color: #efefef;
font-size: 4em;
text-decoration: none;
line-height: 1;
opacity: 0.5;
}
#pagetop a:hover {opacity: 1;} */

/* 追従バナー大きさ、ボタンカスタム */
@media screen and (min-width: 640px) {
  #footerbanner.rzf-fixed-banner a {
    height: 150px;
  }

  #footerbanner.rzf-fixed-banner a img {
    height: 150px;
  }
}

@media screen and (max-width: 640px) {
  #footerbanner.rzf-fixed-banner {
    width: 78%;
  }

  #footerbanner.rzf-fixed-banner a {
    width: 100%;
  }
}

#footerbanner.rzf-fixed-banner {
  display: inherit;
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: 999999 !important;
}

#footerbanner.rzf-fixed-banner a {
  display: block;
  height: auto;
  transition: 0.2s;
}

#footerbanner.rzf-fixed-banner a:not(.bnr_btn) {
  max-height: 120px;
}

#footerbanner.rzf-fixed-banner a:not(.bnr_btn) img {
  max-height: 120px;
  vertical-align: bottom;
}

#footerbanner.rzf-fixed-banner a:hover {
  filter: brightness(1.1);
  cursor: pointer;
}

#footerbanner.rzf-fixed-banner a.bnr_btn {
  position: absolute;
  width: 20px;
  height: 20px;
  top: 0;
  right: 0;
  border: 2px solid #fff;
  background-color: var(--primary-color) !important;
  z-index: 1;
  transition: 0.2s;
}

#footerbanner.rzf-fixed-banner a.bnr_btn:hover {
  background-color: var(--accent-color) !important;
}

#footerbanner.rzf-fixed-banner a.bnr_btn:before {
  content: "";
  position: absolute;
  width: 13px;
  height: 2px;
  margin: auto;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #fff;
  transform: rotate(-46deg);
}

#footerbanner.rzf-fixed-banner a.bnr_btn:after {
  content: "";
  position: absolute;
  width: 13px;
  height: 2px;
  margin: auto;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #fff;
  transform: rotate(46deg);
}

#footerbanner.rzf-fixed-banner a.bnr_btn:hover:before,
#footerbanner.rzf-fixed-banner a.bnr_btn:hover:after {
  background-color: var(--primary-color);
}

/*--------------------------------------------
  フッタースポンサー
---------------------------------------------*/
/* .foot-sponsor-wrap{
width:100%;
padding: 0 30px;
box-sizing: border-box;
background-color: #fff;
}
.foot-sponsor-title{
display: flex;
justify-content: space-between;
align-items: center;
margin: 0 -30px 3em;
padding: 10px 40px;
color: #FFF;
background-color: var(--primary-color) !important;
}
.foot-sponsor-title h2{
margin-right: 10px;
font-size: 33px;
letter-spacing: .2em;
color: #FFF;
}
.foot-sponsor-titlelink{
border: 1px solid;
}
.foot-sponsor-titlelink a{
display: block;
width: 100%;
padding: 0.5em 1.5em;
color: #fff;
box-sizing: border-box;
transition: .2s;
}
.foot-sponsor-titlelink a::after {
content:"≫";
font-family: "Font Awesome 5 Free";
content: '\f101';
font-weight: 900;
padding-left: 0.5em;
}
.foot-sponsor-titlelink a:hover{
color: var(--primary-color) !important;
background-color: var(--white-color);
}
.foot-sponsor-wrap h3 {
margin: 1.5em 0 !important;
padding: 0.5em 0.3em;
font-size: 1.2rem !important;
font-weight: 500;
color: var(--primary-color) !important;
border-top: 2px solid var(--primary-color);
border-bottom: 2px solid var(--primary-color);
}
.foot-sponsor-grid{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
margin-bottom: 3em;

box-sizing: border-box;

display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
grid-auto-rows: 1fr;
gap: 0 2.5%;
}
.foot-sponsor-grid li {
padding: 0.7em 0.5em;
text-align: center;
font-size: 1.2em;
box-sizing: border-box;
}
.foot-sponsor-grid li img{
width: 150px;
height: auto;
max-height: 65px;
vertical-align: bottom;
object-fit: contain;
box-sizing: border-box;
}
.foot-sponsor-grid li a{
transition: opacity .2s;
}
.foot-sponsor-grid li a:hover{
opacity: 0.7;
}

@media screen and (max-width: 767px) {
.foot-sponsor-wrap{padding: 20px 10px;}
.foot-sponsor-title{
margin: 1em -10px 2em;
padding: 10px 15px;
}
.foot-sponsor-title h2{
font-size: 25px;
letter-spacing: 3px;
}
.foot-sponsor-wrap h3 {font-size: 1.0rem !important;}
.foot-sponsor-grid{
justify-content: space-around;
margin-bottom: 2em;
}
.foot-sponsor-grid {grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));}
.foot-sponsor-grid li {padding: 0.5em;}
.foot-sponsor-grid li img{
width: 110px;
max-height: 45px;
}
}
@media screen and (max-width: 450px) {
.foot-sponsor-wrap{padding: 10px 10px;}
.foot-sponsor-title{
margin-top: 0.5em;
padding: 5px 15px;
}
.foot-sponsor-titlelink a{
padding: 0.3em 1.5em;
font-size: 0.9em;
}
.foot-sponsor-grid {grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));}
.foot-sponsor-grid li {padding: 0.4em;}
.foot-sponsor-grid li img{
width: 90px;
max-height: 35px;
}
} */


.foot-sponsor-wrap {
  width: 100%;
  padding: 10px 30px;
  background: #fff;
}

.foot-sponsor-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 -30px 3em;
  padding: 12px 40px;
  color: #FFF;
  background-color: #0b318f !important;
}

.foot-sponsor-title h2 {
  margin-right: 10px;
  font-size: 28px;
  line-height: 1.25;
  color: #fff;
}

.foot-sponsor-titlelink {
  border: 1px solid;
}

.foot-sponsor-titlelink a {
  display: block;
  width: 100%;
  padding: 0.3em 1.5em;
  font-weight: 700;
  color: #fff;
  transition: .2s;
}

.foot-sponsor-titlelink a::after {
  content: "≫";
  font-family: "Font Awesome 5 Free";
  content: '\f101';
  font-weight: 900;
  padding-left: 0.5em;
}

.foot-sponsor-titlelink a:hover {
  color: #0b318f !important;
  background-color: #fff;
  opacity: 1;
}

.foot-sponsor-wrap h3 {
  margin: 1.5em 0 !important;
  padding: 0.5em 0.3em;
  font-weight: 700;
  color: #0b318f !important;
  border-top: 2px solid #0b318f;
  border-bottom: 2px solid #0b318f;
  font-size: 18px;
}

.foot-sponsor-grid {
  margin-bottom: 3em;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  grid-auto-rows: 1fr;
  align-items: center;
  gap: 0 2.5%;
}

.foot-sponsor-grid li {
  padding: 11.76px 8.4px;
  text-align: center;
  font-size: 1.2em;
}

.foot-sponsor-grid li img {
  width: 100%;
  max-width: 150px;
  height: auto;
  max-height: 55px;
  vertical-align: bottom;
  object-fit: contain;
}

.foot-sponsor-grid li a {
  transition: opacity .2s;
}

.foot-sponsor-grid li a:hover {
  opacity: 0.7;
}

@media screen and (max-width: 767px) {
  .foot-sponsor-wrap {
    padding: 10px 16px;
  }

  .foot-sponsor-title {
    margin: 0 -16px 2em;
    padding: 10px 22px;
  }

  .foot-sponsor-title h2 {
    font-size: 24px;
  }

  .foot-sponsor-wrap h3 {
    font-size: 16px;
  }

  .foot-sponsor-titlelink a {
    padding: 0.2em 1.5em;
  }

  .foot-sponsor-grid {
    justify-content: space-around;
    margin-bottom: 28px;
  }

  .foot-sponsor-grid {
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  }

  .foot-sponsor-grid li {
    padding: 6.72px;
  }

  .foot-sponsor-grid li img {
    max-width: 110px;
    max-height: 40px;
  }
}

@media screen and (max-width: 450px) {
  .foot-sponsor-wrap h3 {
    font-size: 15px;
  }

  .foot-sponsor-titlelink a {
    padding: 0.1em 1.3em;
    font-size: 0.9em;
  }

  .foot-sponsor-grid {
    grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
  }

  .foot-sponsor-grid li {
    padding: 6.72px;
  }

  .foot-sponsor-grid li img {
    max-width: 90px;
    max-height: 33px;
  }
}

/*--------------------------------------------
  ユース、車いす、神くん、RsunZパートナーなど
---------------------------------------------*/
.foot-sponsor-grid.partner-otherpage {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.foot-sponsor-grid.partner-otherpage li img {
  width: 100%;
  max-width: 200px;
  max-height: 80px;
}

@media screen and (max-width: 767px) {
  .foot-sponsor-grid.partner-otherpage {
    justify-content: space-around;
    margin-bottom: 2em;
  }

  .foot-sponsor-grid.partner-otherpage {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  }

  .foot-sponsor-grid.partner-otherpage li {
    padding: 0.7em 0.5em;
  }

  .foot-sponsor-grid.partner-otherpage li img {
    max-width: 180px;
    max-height: 60px;
  }
}

@media screen and (max-width: 450px) {
  .foot-sponsor-grid.partner-otherpage {
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  }

  .foot-sponsor-grid.partner-otherpage li {
    padding: 0.7em 0.5em;
  }

  .foot-sponsor-grid.partner-otherpage li img {
    max-width: 130px;
    max-height: 50px;
  }
}

/*--------------------------------------------
  フッターSNS
---------------------------------------------*/
.foot-sns {
  display: flex;
  justify-content: space-between;
}

.foot-sns li {
  font-size: 2em;
  width: calc(100% / 6);
  text-align: center;
  box-sizing: border-box;
}

.foot-sns li a {
  display: block;
  width: 100%;
  padding: 0.3em;
  color: var(--primary-color);
  border-top: 1px solid;
  border-bottom: 1px solid;
  border-right: 1px solid;
  box-sizing: border-box;
  transition: .2s;
}

.foot-sns li:first-child a {
  border-left: 1px solid;
}

.foot-sns li a:hover {
  color: #fff;
  background: var(--primary-color);
  border: 1px solid;
}

@media screen and (max-width: 767px) {
  .foot-sns li {
    font-size: 1.8em;
  }
}

.foot-sns-title {
  margin: 0;
  padding: 0.7em;
  font-size: 1.2em;
  font-weight: 500;
  text-align: center;
  color: #fff;
  background-color: var(--primary-color);
}

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
サイドカラム
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/* サイド小バナー設定 */
.side-banner {
  margin-top: 50px;
}

/*成績が入るまで一時的に調整*/
.side-banner li {
  margin-bottom: 12px;
  text-align: center;
}

.side-banner img {
  vertical-align: bottom;
}

.side-banner a {
  transition: 0.2s ease-in-out;
}

.side-banner a:hover {
  filter: brightness(115%);
}

.side-banner__sns-block {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: center;
}

.side-banner__sns-block_bottom {
  display: flex;
  justify-content: center;
}

@media screen and (max-width: 767px) {
  .side-banner {
    margin-top: 0;
  }

  /*成績が入るまで一時的に調整*/
  .side-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 3px 5px;
    padding: 0 10px;
  }

  .side-banner li {
    width: calc(50% - 2.5px);
    margin-bottom: 5px;
  }

  .side-banner__sns-block {
    flex-wrap: nowrap;
    flex-direction: row;
    width: 100% !important;
  }
}

/* サイドFC応援団設定 */
.side-fc-oendan {
  max-width: 315px;
  margin: 0 auto;
  padding: 0.3em;
  background-color: #fff;
  box-sizing: border-box;
}

.side-fc-oendan-cont {
  max-width: 315px;
  margin: 0 auto;
  padding: 1em 0.3em;
  border: 2px solid var(--primary-color);
  color: var(--primary-color);
}

.side-fc-oendan p {
  margin-bottom: 0.8em;
  font-size: 0.9em;
  text-align: center;
}

.side-fc-oendan-mymap {
  height: 100%;
  min-height: 100%;
  overflow: hidden;
}

.side-fc-oendan-mymap iframe {
  height: 260px;
  margin-top: -59px;
}

.side-fc-oendan-button {
  width: 90%;
  margin: 0 auto;
  margin-top: 0.8em;
  border: 1px solid;
}

.side-fc-oendan-button a {
  display: block;
  width: 100%;
  padding: 0.5em 1em;
  text-align: center;
  color: var(--primary-color);
  box-sizing: border-box;
  transition: .2s;
}

.side-fc-oendan-button a::after {
  content: "≫";
  font-family: "Font Awesome 5 Free";
  content: '\f101';
  font-weight: 900;
  padding-left: 0.5em;
}

.side-fc-oendan-button a:hover {
  color: #fff !important;
  background-color: var(--primary-color);
}

.side-fc-oendan-logo {
  max-width: 250px;
  padding: 0 3.5em;
  margin: 0 auto 0.5em;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .side-fc-oendan {
    width: 100% !important;
    max-width: 100%;
    margin: 0 auto;
    padding: 0.5em;
    background-color: #e6e7e7;
    box-sizing: border-box;
  }

  .side-fc-oendan-cont {
    max-width: 100%;
    background-color: #fff;
    margin: 0 auto;
    padding: 1em 0.5em;
  }

  .side-fc-oendan-logo img {
    max-width: 150px;
  }
}

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
固定ページのみ
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

.rzf-wrap {
  *, *::before, *::after {
    box-sizing: border-box;
    word-wrap: break-word;
  }

  /* a {
    text-decoration: none;
    transition: 0.2s ease-in-out;
    cursor: pointer;
    color: #2a6496;

      &:hover {
        text-decoration: underline;
        text-underline-offset: 0.3em;
        backface-visibility: hidden;
        opacity: 0.7;
      }
  } */
  p a, td > a, dd > a {
    text-decoration: underline;
    text-underline-offset: 0.3em;
    color: inherit;
    border-bottom: none !important;

    &:hover {
      text-decoration: none;
    }
  }

  img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
  }

  i.fa-space {
    margin: 0 0.2em;
  }

  section {
    margin-bottom: 5.0em !important;
  }

  section:last-child {
    margin-bottom: 0 !important;
  }

  /* googlemap用 */
  iframe {
    width: 100%;
  }
}

/* ページヘッダー色変更 */
/* .second-header-layout .top, .second-header-layout .top, .slice, .second-header-layout .btm{
background-color: var(--primary-color) !important;
}
.second-header-layout, .second-header-layout .btm, .title-wrap h1{color: #fff; font-weight: 500;}
.l-container--contents .layout-module .second-header .title-wrap .title{color: #727272 !important; font-weight: 600;} */


/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
見出し設定
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
.rzf-head-wrap {
  position: relative;
  margin-bottom: 2em;
}

.rzf-head-wrap::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: var(--primary-color);
  opacity: 0.8;
  display: block
}

h1.rzf-head-title {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-right: -50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  color: #fff !important;
  font-size: 3.2em !important;
  font-weight: 900;
  text-align: center;
  line-height: 1.2;

  @media screen and (min-width: 1200px) {
    font-size: 4em !important;
  }

  @media screen and (max-width: 767px) {
    font-size: 2.6em !important;
  }

  @media screen and (max-width: 450px) {
    font-size: 2.0em !important;
  }
}

@media screen and (min-width: 1200px) {
  .rzf-head-wrap .rzf-ofi-11:before, .rzf-head-wrap .rzf-ofi-32:before, .rzf-head-wrap .rzf-ofi-43:before {
    padding-top: 56.25%;
  }
}


.rzf-wrap, .mfp-wrap {
  h2 {
    margin: 2.5em 0 1.5em;
    padding: 0.9em 1.2em;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.4;
    /* color: var(--primary-color);
    border-top: 6px solid;
    border-bottom: 2px solid; */

    background-color: var(--primary-color);
    color: #fff;

    @media screen and (max-width: 767px) {
      font-size: 1.15rem;
      padding: 0.6em 0.8em;
    }

    @media screen and (max-width: 450px) {
      margin: 2em 0 1.3em;
      font-size: 1.1rem;
    }
  }

  &:first-child > section:first-child h2 {
    margin: 0.7em 0 2em;
  }

  /* 小さな文字 */
  .rzf-h2-span {
    font-size: 0.8em;
    margin-left: 1.0em;

    @media screen and (max-width: 450px) {
      display: block;
      margin-left: 0;
    }
  }

  h3 {
    margin: 2em 0 1.2em;
    padding: 0.4em 0.8em 0.5em;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--primary-color);
    line-height: 1.4;
    /* border: 2px solid; */

    border-left: 8px solid;
    border-bottom: 2px solid #ddd;

    @media screen and (max-width: 767px) {
      font-size: 1.15rem;
      padding: 0.4em 0.6em 0.5em;
    }

    @media screen and (max-width: 450px) {
      margin: 1.5em 0 1em;
      font-size: 1.1rem;
    }
  }

  h2 + h3 {
    margin-top: -0.2em;
  }

  h4 {
    margin: 1.2em 0 0.8em;
    font-size: 1.16rem;
    font-weight: 700;
    color: var(--primary-color);

    @media screen and (max-width: 767px) {
      font-size: 1.08rem;
    }

    @media screen and (max-width: 450px) {
      margin: 1em 0 0.3em;
      font-size: 1.05rem;
    }

    &::before {
      content: "■";
      padding-right: 0.2em;
    }
  }

  h5 {
    margin: 1.1em 0 0.7em;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--primary-color);

    @media screen and (max-width: 767px) {
      font-size: 0.95rem;
    }

    @media screen and (max-width: 450px) {
      margin: 0.8em 0 0.2em;
      font-size: 0.9rem;
    }
  }

  h6 {
    margin: 0.7em 0 0.7em;
    font-size: 1.05rem;
    font-weight: 800;

    @media screen and (max-width: 767px) {
      font-size: 0.9rem;
    }

    @media screen and (max-width: 450px) {
      margin: 0.5em 0 0.2em;
      font-size: 0.86rem;
    }
  }

  p {
    margin: 0 0 1.2em;
    /* font-size: 1.14em; */
    line-height: 1.8;
    /* text-align: justify; */
  }
}

h2.rzf-centertitle {
  text-align: center;
  border: none;
  background-color: transparent;

  margin: 3em 0 1.2em!important;
  padding: 0.5em 0.5em;
  color: var(--primary-color);
  font-size: 2.4em !important;
  font-weight: 900 !important;
  line-height: 1.4;
  letter-spacing: 0;

  @media (min-width: 768px) {
    margin: 4em 0 2em !important;
    padding: 0.5em 0.1em;
  }
  /* @media (min-width: 1400px) {
    margin: 5em 0 3em !important;
    font-size: 3.6em !important;
  } */
  @media screen and (max-width: 767px) {
    font-size: 2.0em !important;
  }
  @media (max-width: 450px) {
    font-size: 1.8em !important;
  }

  &::after {
    content: "";
    display: block;
    width: 70px;
    margin: 15px auto 0;
    border-bottom: 4px solid var(--accent-color);
    
    @media (max-width: 450px) {
      width: 50px;
      margin: 12px auto 0;
    }
  }
}
.rzf-wrap section h2:first-of-type{
  margin-top: 0em!important;
}
.rzf-wrap .rzf-bg-bl h2.rzf-centertitle {
  color: var(--white-color)!important;
}

h3.midashi-border-gray, h4.midashi-border-gray {
  background-color: #e0e0e0;
  border: none;
  color: #333;
  /* font-weight:700;
font-size:1.0em; */
  /* margin: 2.4em 0 1.2em; */
  padding: 0.6em 0.9em;
}

h4.midashi-border-gray::before {
  content: none;
}

/* 左寄せセンター */
p.rzf-centerleft {
  display: table;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: left !important;
}

/* 大きな文字 */
/* .rzf-bigtext{
font-size: 1.8rem;
font-weight: 900;
color: var(--primary-color);
  @media screen and (max-width: 767px) {font-size: 1.3em;}
} */

/* 可変の大きなテキスト */
p.rzf-big-text, p.rzf-bigtext {
  font-size: 20px;
  font-weight: 800;
  /* line-height: 1.4; */
  line-height: 1.7;
  color: var(--primary-color);

  @media (min-width: 767px) {
    font-size: 26px;
    font-size: calc(1rem + ((1vw - 7.67px) * 1.2638));
    /* font-size: calc(1.2rem + ((1vw - 7.67px) * 1.5)); */
    min-height: 0vw;
    /* line-height: 1.6;
    line-height: 2; */
  }
  @media (min-width: 1400px) {
    font-size: 32px;
  }
  @media (max-width: 450px) {
    font-size: 16.5px;
  }
}

p.rzf-mid-text, p.rzf-middle-text {
  font-size: 15px;
  font-weight: 600;

  @media (min-width: 767px) {
    font-size: 16px; 
  }
  @media (min-width: 1400px) {
    font-size: 20px;
  }
  @media (max-width: 450px) {
    font-size: 13px;
  }
}

p.rzf-middle-text {
  font-weight: 700;
  /* font-size:1.1em; */
  text-align: center;
  margin-top: 1.0em !important;
}

p.rzf-middle-text span {
  font-size: 1.4em;
  margin-left: 0.1em;
}

/* 下線マーカー */
.rzf-text-marker {
  background: linear-gradient(transparent 85%, var(--accent-color) 85%);
}

.rzf-wrap sup {
font-size: 80%;
font-weight: 400!important;
vertical-align: top;
letter-spacing: 0;
}


/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
共通パーツ設定
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
@media screen and (min-width: 768px) {
  .br-767 {
    display: none;
  }

  .br-767sp {
    display: block;
  }
}

@media screen and (max-width: 767px) {
  .br-767 {
    display: block;
  }

  .br-767sp {
    display: none;
  }
}

@media screen and (min-width: 451px) {
  .br-450 {
    display: none;
  }

  .br-450sp {
    display: block;
  }
}

@media screen and (max-width: 450px) {
  .br-450 {
    display: block;
  }

  .br-450sp {
    display: none;
  }
}

@media screen and (min-width: 768px) {
  .rzf-wrap .mb-xs {
    margin-bottom: 7.5px !important;
  }
  .rzf-wrap .mb-s {
    margin-bottom: 15px !important;
  }
  .rzf-wrap .mb-m {
    margin-bottom: 30px !important;
  }
  .rzf-wrap .mb-l {
    margin-bottom: 60px !important;
  }
  .rzf-wrap .mb-xl {
    margin-bottom: 80px !important;
  }
}

@media screen and (max-width: 767px) {
  .rzf-wrap .mb-xs {
    margin-bottom: 5px !important;
  }
  .rzf-wrap .mb-s {
    margin-bottom: 10px !important;
  }
  .rzf-wrap .mb-m {
    margin-bottom: 20px !important;
  }
  .rzf-wrap .mb-l {
    margin-bottom: 40px !important;
  }
  .rzf-wrap .mb-xl {
    margin-bottom: 50px !important;
  }
}

/*文字の位置*/
.rzf-wrap .tac {
  text-align: center !important;
}

.rzf-wrap .tal {
  text-align: left !important;
}

.rzf-wrap .tar {
  text-align: right !important;
}


.rzf-border-cont {
  border: 1px solid var(--primary-color);
  margin-top: 1.5em;
  padding: 0 1.5em;

  h2 {
    border: none;
    margin-top: 0.5em !important;
    background-color: var(--primary-color);
    color: #fff !important;

    span {
      font-size: 0.8em;
    }
  }
}

.rzf-bg-cont {
  background-color: #eee;
  margin-top: 1.5em;
  padding: 0 1.5em;
}

/* リスト用 */
.list-mark{
  display: inline-block;
}
ul.li-disc, .li-disc > li {
  list-style-type: disc;
  list-style-position: outside;
  margin-bottom: 0.2em!important;
  margin-left: 0.7em!important;
}
.li-decimal, .li-decimal > li {
  list-style-type: decimal;
  list-style-position: outside;
  margin-bottom: 0.2em!important;
  margin-left: 0.7em!important;
}

.li-parenthesis > li {
  text-indent: -1.6em!important;
  padding-left: 1.6em!important;
  margin-bottom: 0.2em!important;

  & > ul > li{
  text-indent: 0;
  padding-left: 0;
  }
}

.li-square li::before {
  content: "■";
  padding-right: 0.2em!important;
}

/* レイアウトコンポネート */
.rzf-flex-layout {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 100%;
  margin: 0;
  padding: 0;
}

.rzf-flex-layout img {
  margin: 0;
  padding: 0;
  vertical-align: bottom;
}

.rzf-flex-layout > li, .rzf-flex-layout > div {
  width: 100%;
  margin-bottom: 10px;
}

.rzf-layout-1 > li, .rzf-layout-1 > div {
  width: 100%;
}

.rzf-layout-2 > li, .rzf-layout-2 > div {
  width: calc(100% / 2 - 5px);
}

.rzf-layout-3 > li, .rzf-layout-3 > div {
  width: calc(100% / 3 - 5px);
}

.rzf-layout-4 > li, .rzf-layout-4 > div {
  width: calc(100% / 4 - 5px);
}

.rzf-layout-5 > li, .rzf-layout-5 > div {
  width: calc(100% / 5 - 5px);
}

@media screen and (min-width:1200px) {
  .rzf-layout-xl-1 > li, .rzf-layout-xl-1 > div {
    width: 100% !important;
  }

  .rzf-layout-xl-2 > li, .rzf-layout-xl-2 > div {
    width: calc(100% / 2 - 5px);
  }

  .rzf-layout-xl-3 > li, .rzf-layout-xl-3 > div {
    width: calc(100% / 3 - 5px);
  }

  .rzf-layout-xl-4 > li, .rzf-layout-xl-4 > div {
    width: calc(100% / 4 - 5px);
  }

  .rzf-layout-xl-5 > li, .rzf-layout-xl-5 > div {
    width: calc(100% / 5 - 5px);
  }

  .rzf-layout-xl-6 > li, .rzf-layout-xl-6 > div {
    width: calc(100% / 6 - 5px);
  }
}

@media screen and (max-width:1109px) {
  .rzf-layout-lg-1 > li, .rzf-layout-lg-1 > div {
    width: 100% !important;
  }

  .rzf-layout-lg-2 > li, .rzf-layout-lg-2 > div {
    width: calc(100% / 2 - 5px);
  }

  .rzf-layout-lg-3 > li, .rzf-layout-lg-3 > div {
    width: calc(100% / 3 - 5px);
  }

  .rzf-layout-lg-4 > li, .rzf-layout-lg-4 > div {
    width: calc(100% / 4 - 5px);
  }

  .rzf-layout-lg-5 > li, .rzf-layout-lg-5 > div {
    width: calc(100% / 5 - 5px);
  }
}

@media screen and (max-width:767px) {
  .rzf-layout-md-1 > li, .rzf-layout-md-1 > div {
    width: 100% !important;
  }

  .rzf-layout-md-2 > li, .rzf-layout-md-2 > div {
    width: calc(100% / 2 - 5px);
  }

  .rzf-layout-md-3 > li, .rzf-layout-md-3 > div {
    width: calc(100% / 3 - 5px);
  }

  .rzf-layout-md-4 > li, .rzf-layout-md-4 > div {
    width: calc(100% / 4 - 5px);
  }

  .rzf-layout-md-5 > li, .rzf-layout-md-5 > div {
    width: calc(100% / 5 - 5px);
  }
}

@media screen and (max-width:640px) {
  .rzf-flex-layout > li, .rzf-flex-layout > div {
    margin-bottom: 10px;
  }

  .rzf-layout-sm-1 > li, .rzf-layout-sm-1 > div {
    width: 100% !important;
  }

  .rzf-layout-sm-2 > li, .rzf-layout-sm-2 > div, .rzf-layout-2 > li, .rzf-layout-2 > div {
    width: calc(100% / 2 - 2.5px);
  }

  .rzf-layout-sm-3 > li, .rzf-layout-sm-3 > div, .rzf-layout-3 > li, .rzf-layout-3 > div {
    width: calc(100% / 3 - 2.5px);
  }

  .rzf-layout-sm-4 > li, .rzf-layout-sm-4 > div, .rzf-layout-4 > li, .rzf-layout-4 > div {
    width: calc(100% / 4 - 2.5px);
  }
}

@media screen and (max-width:450px) {
  .rzf-layout-xs-1 > li, .rzf-layout-xs-1 > div {
    width: 100%;
  }

  .rzf-layout-xs-2 > li, .rzf-layout-xs-2 > div {
    width: calc(100% / 2 - 2.5px);
  }

  .rzf-layout-xs-3 > li, .rzf-layout-xs-3 > div {
    width: calc(100% / 3 - 2.5px);
  }
}

.rzf-caption, p.rzf-caption {
  width: 100%;
  margin: 0 !important;
  padding: 10px;
  font-size: 0.9em;
  text-align: center;
  line-height: 1.2 !important;
  color: #fff;
  background-color: var(--primary-color);
}

@media screen and (max-width:640px) {
  .rzf-caption, p.rzf-caption {
    padding: 7px;
    font-size: 0.8em;
    text-align: left;
  }
}

/* 最大幅変更 */
.rzf-layout-maxwidth-1800, .rzf-layout-maxwidth-1200, .rzf-layout-maxwidth-1000, .rzf-layout-maxwidth-800, .rzf-narrow-layout, .rzf-layout-maxwidth-640 {
  margin: 0 auto;
}

.rzf-layout-maxwidth-1800 {
  max-width: 1800px;
}

.rzf-layout-maxwidth-1200 {
  max-width: 1200px;
}

.rzf-layout-maxwidth-1000 {
  max-width: 1000px;
}

.rzf-layout-maxwidth-800, .rzf-narrow-layout {
  max-width: 800px;
}

.rzf-layout-maxwidth-640 {
  max-width: 640px;
}

/* 大枠のパディング打消し用 */
@media print, screen and (min-width: 768px) {
  .rzf-layout-offset {
    margin-left: -50px;
    margin-right: -50px;
  }

  .rzf-layout-head-offset {
    margin-top: -30px;
    margin-left: -30px;
    margin-right: -30px;
  }

  .rzf-layout-footerarea-offset, .rzf-layout-footeraria-offset {
    margin-bottom: -50px;
    padding: 50px;
  }
}

@media screen and (max-width: 1218px) {
  .rzf-layout-offset {
    margin-left: -25px;
    margin-right: -25px;
  }

  .rzf-layout-head-offset {
    margin-top: -10px;
    margin-left: -10px;
    margin-right: -10px;
  }

  .rzf-layout-footerarea-offset, .rzf-layout-footeraria-offset {
    margin-bottom: -25px;
    padding: 25px;
  }
}

@media screen and (max-width: 767px) {
  .rzf-layout-offset {
    margin-left: -1em;
    margin-right: -1em;
  }

  .rzf-layout-head-offset {
    margin-top: -1em;
    margin-left: -1em;
    margin-right: -1em;
  }

  .rzf-layout-footerarea-offset, .rzf-layout-footeraria-offset {
    margin-bottom: -1em;
    padding: 1em;
  }
}

/* 画像オブジェクトフィット */
.rzf-ofi-11 img, .rzf-ofi-43 img, .rzf-ofi-32 img, .rzf-ofi-169 img {
  object-fit: cover;
  width: 100% !important;
}

.rzf-ofi-11 img {
  aspect-ratio: 1 / 1;
}

.rzf-ofi-43 img {
  aspect-ratio: 4 / 3;
}

.rzf-ofi-32 img {
  aspect-ratio: 3 / 2;
}

.rzf-ofi-169 img {
  aspect-ratio: 16 / 9;
}

.rzf-ofi-contain img {
  object-fit: contain;
}

@media screen and (max-width: 450px) {
.rzf-ofi-sp-11 img {
  aspect-ratio: 1 / 1;
}
.rzf-ofi-sp-insta img {
  aspect-ratio: 4 / 5;
}
}

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
共通パーツ設定
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/* Youtube */
.rzf-youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;

  iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important;
  }
}

/* アコーディオンCSS版 */
.rzf-accordion {
  position: relative;
  overflow: hidden;
  width: 100%;
  margin: 0 auto 0.7em;
  /*color: #fff;*/
}

.rzf-accordion input {
  position: absolute!important;
  z-index: -1;
  opacity: 0;
}

.rzf-accordion label {
  cursor: pointer;
  display: flex;
  justify-content: left;
  align-items: center;
  margin: 0 !important;
  padding: 0.5em 0.6em;
  font-size: 1.1rem !important;
  font-weight: 600;
  color: #fff;
  background-color: #555;
  transition: 0.5s;
}

.rzf-accordion input:checked + label {
  margin: 0 0 1em !important;
}

.rzf-accordion input[type=checkbox] + label::after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f13a";
  margin: auto 0 auto auto;
  padding: 0 0.5em;
  font-size: 1.4em;
  line-height: 1.4;
  transform: rotate(0);
  transition: .5s;
}

.rzf-accordion input[type=checkbox]:checked + label::after {
  transform: rotate(180deg);
  transition: .5s;
}

.rzf-accordion .rzf-accordion-cont {
  overflow: hidden;
  max-height: 0;
  -webkit-transition: max-height 0.35s;
  transition: max-height 0.35s;
}

.rzf-accordion input:checked ~ .rzf-accordion-cont {
  max-height: 100%;
}

.rzf-accordion-wrap {
  margin: 0 0 1em !important;
}

.rzf-accordion-wrap > label {
  padding: 0.6em 0.6em;
  font-size: 1.2rem !important;
  font-weight: 800;
  background-color: var(--primary-color);
}


/* JSアコーディオン カスタマイズ */
.rzf-wrap section.js-pulldown,
.rzf-wrap section.js-pulldown-faq {
  margin-bottom: 0.7em !important;
}

.rzf-wrap .js-pulldown h3, .rzf-wrap .js-pulldown dt,
.rzf-wrap .js-pulldown-faq h3, .rzf-wrap .js-pulldown-faq dt {
  display: flex;
  justify-content: left;
  align-items: center;
  margin: 0 !important;
  padding: 0.5em 0.6em;
  border: none;
  font-size: 1.1rem !important;
  font-weight: 600;
}

.rzf-wrap .js-pulldown h3:after, .rzf-wrap .js-pulldown dt:after,
.rzf-wrap .js-pulldown-faq h3:after, .rzf-wrap .js-pulldown-faq dt:after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f13a";
  margin: auto 0 auto auto;
  padding: 0 0.5em;
  font-size: 1.4em;
  line-height: 1.4;
  transform: rotate(0);
  transition: .5s;
}

.rzf-wrap .js-pulldown.show h3::after, .rzf-wrap .js-pulldown.show dt::after,
.rzf-wrap .js-pulldown-faq.show h3::after, .rzf-wrap .js-pulldown-faq.show dt::after {
  transform: rotate(180deg);
  transition: .5s;
}

.rzf-wrap .js-pulldown h3:hover,
.rzf-wrap .js-pulldown dt:hover,
.rzf-wrap .js-pulldown-faq h3:hover,
.rzf-wrap .js-pulldown-faq dt:hover {
  cursor: pointer;
}

.rzf-wrap .js-pulldown .pulldown, .rzf-wrap .js-pulldown-faq .pulldown {
  display: none;
  padding: 1.5em 1.2em;
  border: 5px solid;
  border-top: none;
}

.rzf-wrap .js-pulldown h4, .rzf-wrap .js-pulldown-faq h4 {
  padding: 0.2em 0;
  font-size: 1.1rem;
}

.rzf-wrap .js-pulldown p:not(.rzf-cautiontext), .rzf-wrap .js-pulldown-faq p:not(.rzf-cautiontext) {
  margin-bottom: 1.2em !important;
}

@media screen and (max-width: 767px) {

  .rzf-wrap .js-pulldown h3, .rzf-wrap .js-pulldown dt,
  .rzf-wrap .js-pulldown-faq h3, .rzf-wrap .js-pulldown-faq dt {
    font-size: 1.2em !important;
  }
}
@media screen and (max-width: 640px) {

  .rzf-wrap .js-pulldown h3, .rzf-wrap .js-pulldown dt,
  .rzf-wrap .js-pulldown-faq h3, .rzf-wrap .js-pulldown-faq dt {
    font-size: 1em !important;
  }

  .rzf-wrap .js-pulldown .pulldown, .rzf-wrap .js-pulldown-faq .pulldown {
    border: 3px solid;
  }
}


/* 続きを見るボタン */
.rzf-readmore {
  position: relative;
}

.rzf-readmore label {
  height: 180px;
  /* グラデーションの高さ */
  cursor: pointer;
  text-align: center;
  font-size: 12px;
  position: absolute;
  bottom: 0;
  width: 100%;
  z-index: 999;
  /* 以下グラデーションは「背景が白」に併せて設定しています */
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.95) 90%);
}

.rzf-readmore input:checked + label {
  background: inherit;
  /* 開いた時には背景グラデーションを消す */
}

.rzf-readmore label:after {
  content: "続きを見る";
  /* ラベルの文字 */
  letter-spacing: .05em;
  line-height: 2.5rem;
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translate(-50%, 0);
  color: #fff;
  background-color: #555;
  width: 18.75rem;
  border-radius: 20px;
}

.rzf-readmore label:before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f067";
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translate(-140px, 0);
  background-color: #fff;
  z-index: 1;
  border-radius: 100%;
  width: 20px;
  height: 20px;
  line-height: 20px;
}

.rzf-readmore input {
  display: none;
}

.rzf-readmore .rzf-readmore-container {
  overflow: hidden;
  height: 430px;
  /* 開く前に見えている部分の高さ */
  transition: all 0.1s;
}

.rzf-readmore input:checked + label {
  display: none;
  /*閉じるボタンは要らないとき*/
  display: block;
}

.rzf-readmore input:checked + label:after {
  content: "閉じる";
}

.rzf-readmore input:checked + label:before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f062";
}

.rzf-readmore input:checked ~ .rzf-readmore-container {
  height: auto;
  padding-bottom: 80px;
  /* 閉じるボタンのbottomからの位置 */
  transition: all 0.1s;
}

/* リンク */
.rzf-link {
  color: var(--primary-color);
  border-bottom: 1px solid;
  transition: 0.3s;
}

.rzf-link:hover {
  border: none;
  opacity: 0.7;
}


/* ボタン */
.rzf-btn {
  width: 100%;
  max-width: 500px;
  margin: 2.5em auto 2em;
  padding: 0 1em;

  @media screen and (min-width: 1200px) {
    max-width: 800px;
    margin: 3em auto 2em;
  }

  a {
    display: block;
    position: relative;
    padding: 1.4em 25px 1.4em 5px;
    text-align: center;
    font-size: 1.1em;
    font-weight: 600;
    line-height: 1.6em;
    transition: 0.3s;
    color: #fff;
    background-color: var(--primary-color);
    border-radius: 3px;

    @media screen and (max-width: 767px) {
      font-size: 1em;
      padding: 1.4em 26px 1.4em 5px;
    }

    &::after {
      content: '';
      width: 10px;
      height: 10px;
      border: 0px;
      border-top: solid 3px #fff;
      border-right: solid 3px #fff;
      -webkit-transform: rotate(45deg);
      transform: rotate(45deg);
      position: absolute;
      top: 50%;
      right: 15px;
      margin-top: -5px;
      transition: 0.3s;
    }
  }
}

.rzf-btn-grayout {
  display: block;
  position: relative;
  padding: 1.6em 5px;
  text-align: center;
  font-size: 1.1em;
  font-weight: 600;
  line-height: 1.6em;
  transition: 0.3s;
  color: #fff;
  background-color: #aaa;
  border-radius: 3px;
}

.rzf-btn a.rzf-btn-arrow-none:hover, .rzf-bottom-btn ul li a.rzf-btn-arrow-none:hover {
  opacity: 1 !important;
}

.rzf-btn a.rzf-btn-arrow-none::after, .rzf-bottom-btn ul li a.rzf-btn-arrow-none::after {
  content: "";
  padding-left: none;
}

.rzf-btn-wrap {
  margin-bottom: 2.5em;
  text-align: center;

  .rzf-btn {
    margin-bottom: 0.5em;
  }

  p {
    margin: 0.3em;
    line-height: 1.4;
    text-align: center;

    & + p {
      margin: 0.8em;
    }

    a {
      /*text-decoration: underline;*/
      padding: 0 0.2em;
      border-bottom: 1px solid;

      &::after {
        content: "＞";
        font-family: "Font Awesome 5 Free";
        content: '\f105';
        font-weight: 900;
        padding-left: 0.3em;
      }

      &:hover {
        border-bottom: none;
      }
    }
  }
}

.rzf-btn-img-maxwidth500 {
  max-width: 500px;
  margin: 2.5em auto 2em;
  padding: 0 1em;

  @media screen and (min-width: 1200px) {
    max-width: 800px;
    margin: 3em auto 2em;
  }
}

.rzf-bottom-btn ul {
  display: flex;
  flex-wrap: wrap;
  align-content: stretch;

  li {
    width: 50%;
    text-align: center;

    a {
      display: block;
      width: 100%;
      height: 100%;
      margin: 0 auto;
      padding: 1em 0.8em;
      font-size: 1.1em;
      font-weight: 600;
      color: #fff !important;
      border: 1px solid #fff;
      background-color: var(--primary-color);
      box-sizing: border-box;

      &::after {
        content: '';
        width: 10px;
        height: 10px;
        border: 0px;
        border-top: solid 3px #fff;
        border-right: solid 3px #fff;
        -webkit-transform: rotate(45deg);
        transform: rotate(45deg);
        position: absolute;
        top: 50%;
        right: 15px;
        margin-top: -5px;
        transition: 0.3s;
      }
    }

    &:last-child {
      width: 100%;

      a {
        padding: 1.4em 0.8em;
      }
    }
  }
}


/* 画像用矢印マーク */
.rzf-img-arrow {
  position: relative;

  &:before {
    border-color: transparent transparent rgba(255, 255, 255, 0.9) transparent;
    border-style: solid;
    border-width: 0 0 20px 20px;
    content: "";
    position: absolute;
    bottom: 5px;
    right: 5px;
    z-index: 2;

    @media screen and (min-width: 768px) {
      border-width: 0 0 30px 30px;
    }

    @media screen and (max-width: 450px) {
      bottom: 4px;
      right: 4px;
    }
  }
}


/* ページ内ナビ */
/* .rzf-nav{
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
width: 100%;
margin: 0;
text-align: center;
}
.rzf-nav li{
display: flex;
align-items: center;
width: 100%;
border: 1px solid #fff;
}
.rzf-nav li a{
display: block;
width: 100%;
height: 100%;
margin: 0;
padding: 1.0em 0.5em;
font-size: 0.9em;
color: #fff!important;
background-color: var(--primary-color);
}
.rzf-nav a::after {
content:"▼";
font-family: "Font Awesome 5 Free";
content: '\f0d7';
font-weight: 900;
padding-left: 0.3em;
}
@media screen and (max-width: 767px) {
.rzf-nav{flex-wrap: wrap;}
.rzf-nav li{width: 50%;}
.rzf-nav a{
padding: 0.7em 0.1em!important;
font-size: 0.8em!important;
}
} */

/* ページ内ナビ NEW */
.rzf-page-nav, .page-nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  grid-gap: 8px;
  margin-bottom: 5em;

  @media screen and (max-width: 767px) {
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    grid-gap: 7px;
  }

  li {
    font-size: 1.1em;
    font-weight: 600;
    text-align: center;
    line-height: 1.4;
    color: var(--primary-color);
    border-left: 2px solid var(--primary-color);
    border-right: 2px solid var(--primary-color);
    border-top: 2px solid var(--primary-color);
    border-radius: 6px 6px 0 0 / 6px 6px 0 0;
    word-break: break-all;
    letter-spacing: 0;

    @media screen and (max-width: 767px) {
      font-size: 0.9em;
    }

    a {
      width: 100%;
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      min-height: 6em;
      text-decoration: none;

      &::after {
        display: block;
        font-family: "Font Awesome 5 Free";
        content: '\f078';
        font-weight: 900;
        color: #fff;
        background-color: var(--primary-color);
        width: 100%;
        padding: 2px;
        box-sizing: border-box;
        margin-top: auto;

        @media screen and (max-width: 767px) {
          padding: 0;
        }
      }

      &:hover {
        background-color: var(--primary-color);
        color: #fff;
        opacity: 1;
        transition: 0.3s;
      }

      span {
        display: flex;
        justify-content: center;
        align-items: center;
        align-content: center;
        width: 100%;
        height: 100%;
        min-height: 3em;
        padding: 0.5em;
        font-weight: 600;

        @media screen and (max-width: 767px) {
          padding: 0.3em 0.5em;
        }
      }
    }
  }
}


/* ページフッター用 ナビゲーションボタン */
.rzf-footerarea, .rzf-layout-footeraria {
  img {
    vertical-align: bottom;
  }

  section {
    margin-bottom: 0;
  }

  a {
    transition: opacity .2s;

    &:hover {
      opacity: .7;
    }
  }

  .rzf-flex-layout {
    max-width: 1700px;
    margin: 0 auto;
  }
}

p.rzf-icon-btn-title {
  width: 100%;
  display: block;
  margin-bottom: 0.5em !important;
  padding: 0.4em 0.3em 0.3em 0.5em;
  font-size: 1.2em;
  font-weight: 600;
  text-align: left;
  border-left: 7px solid;
  border-top: 2px solid;
  color: var(--primary-color);
}

.rzf-icon-btn {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  grid-auto-rows: auto;
  grid-gap: 7.5px;
  margin: 0 0 15px !important;
  text-align: center;
  border: 15px solid var(--primary-color);
  padding: 0.5em;
}

.rzf-icon-btn li {
  width: 100%;
  font-weight: 500;
}

.rzf-icon-btn li a {
  display: block;
  width: 100%;
  height: 100%;
  padding: 1.5em 0.5em;
  color: #fff !important;
  background-color: var(--primary-color);
}

.rzf-icon-btn li p {
  margin: 0 !important;
  text-align: center !important;
  line-height: 1.4;
}

.rzf-icon-btn li img {
  width: 80px;
  height: auto;
  margin-bottom: 1em;
}

/* 画像用矢印マーク */
.rzf-icon-btn li {
  position: relative;
}

.rzf-icon-btn li:before {
  border-color: transparent transparent #fff transparent;
  border-style: solid;
  border-width: 0 0 25px 25px;
  content: "";
  position: absolute;
  bottom: 5px;
  right: 5px;
  z-index: 2;
}

@media print, screen and (max-width: 450px) {
  p.rzf-icon-btn-title {
    padding: 0.2em 0.2em 0.1em 0.4em;
  }

  .rzf-icon-btn {
    grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
    grid-gap: 5px;
    margin: 0 0 10px !important;
    border: 10px solid var(--primary-color);
    padding: 0.4em;
  }

  .rzf-icon-btn li a {
    padding: 1.0em 0.2em;
  }

  .rzf-icon-btn li p {
    font-size: 0.68em;
    line-height: 1.2;
  }

  .rzf-icon-btn li img {
    width: 40px;
    margin-bottom: 0.5em;
  }

  .rzf-icon-btn li:before {
    border-width: 0 0 12px 12px;
    bottom: 4px;
    right: 4px;
  }
}


/* お問い合わせ用 */
.contact-info {
  margin-top: 2.0em;
  border: 1px solid var(--primary-color);
  border-radius: 6px;
  overflow: hidden;

  p {
    margin: 0;
    padding: 0.5em 0.7em;
    font-size: 1.2em;
    color: #fff !important;
    background-color: var(--primary-color);
  }

  ul {
    margin: 0;
    padding: 1.0em;

    strong {
      line-height: 2.0;
    }
  }

  .rzf-btn {
    margin: 1.2em auto 0.5em;
    padding: 0;
    max-width: 800px;

    a {
      padding: 0.8em 25px 0.8em 5px;
      color: var(--primary-color);
      background-color: #fff;
      border: 1px solid;

      &::after {
        border-top: solid 3px var(--primary-color);
        border-right: solid 3px var(--primary-color);
      }

      &:hover {
        color: #fff;
        background-color: var(--primary-color);
        border: 1px solid var(--primary-color);
        opacity: 1;

        &::after {
          border-top: solid 3px #fff;
          border-right: solid 3px #fff;
        }
      }
    }
  }
}

/* 注意事項用文字 */
.rzf-cautiontext, p.rzf-cautiontext, .news-article .second-body .body p.rzf-cautiontext {
  display: block;
  width: stretch;
  font-size: 0.85em !important;
  font-weight: 500;
  text-indent: -1em;
  padding-left: 1em;
  margin-bottom: 0.3em !important;
  line-height: 1.4 !important;
}
p span.rzf-cautiontext{margin-top: 0.5em;}
.rzf-cautiontext i, p.rzf-cautiontext i, .list-mark i {text-indent: 0;}
.rzf-cautiontext-wrap .rzf-cautiontext, .rzf-cautiontext-wrap p.rzf-cautiontext { margin-bottom: 0 !important;}

/* 目立たせ用ボックス */
.rzf-textbox {
  position: relative;
  margin: 2em 0;
  padding: 0.5em 1em 0.5em 1em;
  border: 2px solid #ccc;
  text-align: left;
  color: var(--text-color);
  background-color: var(--white-color);
  letter-spacing: 0;

  @media screen and (max-width: 450px){
    padding-inline: 0.7em;
  }
}
.rzf-wrap .rzf-textbox p a{
  color: var(--primary-color);
  padding: 0 0.2em;
}
.rzf-cautiontext i, p.rzf-cautiontext i, .list-mark i {text-indent: 0;}
.rzf-cautiontext-wrap .rzf-cautiontext, .rzf-cautiontext-wrap p.rzf-cautiontext {margin-bottom: 0!important;}
.rzf-textbox p:not(.rzf-cautiontext) {
  margin-bottom: 0.5em !important;
  text-align: justify;
}
.rzf-textbox:has(.rzf-textbox-title) {
  padding-top: 2.8em;
  border-color: var(--primary-color);
}

.rzf-textbox-title {
  font-size: 1.1em;
  position: absolute;
  top: 0;
  left: 0;
  background-color: var(--primary-color);
  color: #fff;
  font-weight: 600;
  border-radius: 0 0 2px 0;
  padding: 4px 6px 6px;
  line-height: 1.4;
}
.rzf-textbox-title::before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  margin-right: 5px;
}

.rzf-textbox:has(.rzf-textbox-title).rzf-textbox-caution {
  border-color: #F388B6;
}
.rzf-textbox-caution > .rzf-textbox-title {
  background-color: #F388B6;
}
.rzf-textbox-caution > .rzf-textbox-title::before {
  content: '\f071';
}
.rzf-textbox:has(.rzf-textbox-title).rzf-textbox-info {
  border-color: #69B1DF;
}
.rzf-textbox-info > .rzf-textbox-title {
  background-color: #69B1DF;
}
.rzf-textbox-info > .rzf-textbox-title::before {
  content: '\f05a';
}
.rzf-textbox:has(.rzf-textbox-title).rzf-textbox-point {
  border-color: #5ECC5D;
}
.rzf-textbox-point > .rzf-textbox-title {
  background-color: #5ECC5D;
}
.rzf-textbox-point > .rzf-textbox-title::before {
  content: '\f304';
}



/* プロフィール用左右分割 */
.rzf-profile {
  margin: 1em 0 2em !important;
}

.rzf-profile .rzf-profile-img {
  width: 25%;
  max-width: 400px;
}

.rzf-profile .rzf-profile-img img {
  width: 100%
}

@media screen and (max-width: 640px) {
  .rzf-profile .rzf-profile-img {
    width: 100%;
    max-width: inherit;
    margin-bottom: 0.8em;
  }

  .rzf-profile .rzf-profile-img img {
    max-width: 200px;
  }
}

.rzf-profile .rzf-profile-text {
  width: calc(100% - 25% - 15px);
}

p.rzf-profile-name, h3.rzf-profile-name {
  font-size: 1.1em;
  font-weight: 600;
  margin: 0 !important;
  margin-bottom: 0.2em !important;
  padding: 0.5em 0.8em;
  color: #fff !important;
  background-color: #555;
  border: none;
}

.rzf-profile-text .school-list {
  margin: 0 !important;
}


/* ポップアップ
------------------------------------------------------------*/
.mfp-bg {
  opacity: 0;
  transition: all 0.15s ease-out;
  z-index: 9999998;
}

.mfp-bg.mfp-ready {
  opacity: 0.8;
}

.mfp-bg.mfp-removing {
  opacity: 0;
}

.mfp-wrap .mfp-content {
  opacity: 0;
  transition: all 0.15s ease-out;
}

.mfp-wrap.mfp-ready .mfp-content {
  opacity: 1;
}

.mfp-wrap.mfp-removing .mfp-content {
  opacity: 0;
}

.mfp-wrap {
  overflow: hidden auto;
  z-index: 9999999;
}

.mfp-container {
  padding: 60px 2%;
  padding: 0 2%;

  padding: 0 6%!important;
  max-width: fit-content;
  right: 0;
  bottom: 0;
  margin: auto;

  @media screen and (max-width: 767px) {
    padding: 0 5%!important;
  }
  @media screen and (max-width: 450px) {
    max-width: inherit;
    padding: 10px!important;
  }
}

/*.mfp-content {width: auto !important;}*/

.inline-modal {
  position: relative;
  max-width: 900px;
  min-width: 250px;
  /*min-width: 60vw;*/
  margin: 5em auto 5em;
  padding: 3em 2em 1.5em;
  text-align: center;
  background-color: #fff;
  color: #555;

  width: 60vw;
    @media screen and (max-width: 1200px) {
      width: 80vw;
    }
    @media screen and (max-width: 767px) {
      width: 90vw;
    }
    @media screen and (max-width: 450px) {
      width: 92vw;
      padding: 2em 1.2em 0.5em;
    }

  a {
    color: var(--primary-color);
    text-decoration: underline;
    transition: 0.2s;

    &:hover {
      opacity: 0.7;
    }
  }
}

.popup-modal > img {
  max-width: 300px !important;
  height: auto;
}

.popup-modal > p {
  margin-top: 0.5em;
  line-height: 1.4 !important;
  text-align: justify;
}

.mfp-content p {
  text-align: justify !important;
}

.inline-modal > h1, .inline-modal > h2, .inline-modal > h3 {
  margin-top: 0 !important;
}

.inline-modal .image img {
  height: auto;
}

.mfp-close-btn-in .mfp-close {
  color: #fff !important;
}

.inline-modal .mfp-close {
  right: -15px !important;
  top: -50px !important;
}

.popup-modal-dismiss {
  margin-top: 2em;

  a {
    color: var(--primary-color);
    font-size: 2.5em;
    transition: 0.2s;

    &:hover {
      opacity: 0.7;
    }
  }
}

.mfp-wrap {
  .gallery-arrow {
    display: flex;
    justify-content: center;
    position: absolute;
    top: 50%;
    margin-top: -30px;
    /* display: block; */
    padding: 0.3em 0.5em;
    font-size: 2em;
    text-align: center;
    line-height: 30px;
    cursor: pointer;
    z-index: 10000000;
    opacity: 0.8;
    transition: 0.2s;

    @media screen and (max-width: 450px) {
      margin-top: -40px;
      /* padding: 0.2em; */
      padding: 0.3em 0.35em;
      font-size: 1.6em;
    }

    &:hover {
      opacity: 1;
    }
  }

  .gallery-arrow-left, .gallery-arrow-right {
    border-radius: 3px;
    @media screen and (max-width: 640px) {
      background-color: var(--text-color);
    }
  }
  .gallery-arrow-left {
    left: 0;
    /* border-left: none; */
    @media screen and (max-width: 640px) {
      border-radius: 0 3px 3px 0;
    }
  }
  .gallery-arrow-right {
    right: 0;
    /* border-right: none; */
    @media screen and (max-width: 640px) {
      border-radius: 3px 0 0 3px;
    }
  }

  .gallery-arrow-left:before, .gallery-arrow-right:before {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: #fff;
    opacity: 1;
  }

  .gallery-arrow-left:before {
    content: "\f053";
  }

  .gallery-arrow-right:before {
    content: "\f054";
  }
}


/* 画像スライド
------------------------------------------------------------*/
.rzf-loop-slide-wrapper {
  display: flex;
  overflow: hidden;
}

.rzf-loop-slide {
  animation: scroll-left 40s infinite linear .10s both;
  display: flex;
}

.rzf-loop-slide-reverse {
  animation: scroll-right 40s infinite linear .10s both;
}

.rzf-loop-slide li {
  width: calc(100vw / 5);

  @media screen and (max-width: 767px) {
    width: calc(100vw / 3.4);
  }

  @media screen and (max-width: 450px) {
    width: calc(100vw / 2.2);
  }
}

.rzf-loop-slide li img {
  display: block;
  width: 100%;
}

@keyframes scroll-left {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-100%);
  }
}

@keyframes scroll-right {
  from {
    transform: translateX(-100%);
  }

  to {
    transform: translateX(0);
  }
}
