@charset "UTF-8";
/*--------------------------------
    import
--------------------------------*/
@import url(./html5reset.css);
@import url(./cssreset.css);
@import url(./basic.css);
@import url(./animation.css);
@import url(./snippet.css);
:root {
  --inner:700px;
  --wrap:990px;
  --box:1080px;
  --container:1280px;
  --maxWidth:1440px;
  --spHeaderHeight:50px;
  --pcHeaderHeight:80px;
  --baseColor:#ffffff;
  --mainColor:#450369;
  --subColor:#EAE8FA;
  --accentColor:#FF55DD;
  --whiteColor:#ffffff;
  --blackColor:#262626;
  --grayColor:#707070;
  --darkGrayColor:#383546;
  --beigeColor:#eadfcd;
  --beigeLightColor:#F7F6F3;
  --textColor:var(--blackColor);
  --textHoverColor:var(--mainColor);
  --blogPurple:#BE9AD1;
  --blogOrange:#D29826;
  --blogYellow:#BEC23F;
  --blogBlue:#9BC4C4;
  --blogRed:#CB4042;
  --blogPurpleBg:#F9F5FC;
  --blogOrangeBg:#FBF5E9;
  --blogYellowBg:#F9F9EB;
  --blogBlueBg:#F7F9F9;
  --blogRedBg:#FCF6F5;
  --animationSpeed:0.4s;
  --ioAnimationSpeed:1s;
  --spMargin:100px;
  --pcMargin:130px;
  --fontSerif:"Shippori Mincho","游明朝",YuMincho,"ヒラギノ明朝 ProN W3","Hiragino Mincho ProN","HG明朝E","ＭＳ Ｐ明朝","ＭＳ 明朝",serif;
  --fontGothic:"Noto Sans JP","游ゴシック体",YuGothic,"ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","メイリオ",Meiryo,sans-serif;
  --fontFamily:var(--fontGothic);
  --fontTitle:var(--fontSerif);
  --fontEn:"Lusitana", serif;
}

/*============================================================

    BASIC

============================================================*/
/*--------------------------------
    基本設定
--------------------------------*/
body {
  line-height: 1.8;
  color: var(--textColor);
  font-family: var(--fontFamily);
  font-size: 1.4rem;
  font-weight: normal;
  text-align: justify;
  letter-spacing: 0.1em;
}
/*============================================================

    loader

============================================================*/
:root {
  --loaderBgColor:var(--baseColor);
  --loaderColor:rgb(from var(--mainColor) r g b / 0.8);
  --loaderActiveColor:rgb(from var(--mainColor) r g b / 0.2);
}

/*--------------------------------
	ページ遷移のトランジション + ローディング
--------------------------------*/
body #loader-wrapper {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 99999;
  background-color: var(--loaderBgColor);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.8s ease;
  will-change: opacity;
}
body #loader-wrapper #loader {
  position: absolute;
  top: calc(50% - 22px);
  left: calc(50% - 22px);
  border-radius: 50%;
  width: 44px;
  height: 44px;
  border-top: 3px solid var(--loaderColor);
  border-right: 3px solid var(--loaderColor);
  border-bottom: 3px solid var(--loaderColor);
  border-left: 3px solid var(--loaderActiveColor);
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation: loader 1.1s infinite linear;
  animation: loader 1.1s infinite linear;
}
body.transition #loader-wrapper {
  opacity: 1;
}

@keyframes loader {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/*============================================================

    LINK

============================================================*/
/*--------------------------------
    リンク基本スタイル
--------------------------------*/
a:link, a:visited {
  color: var(--mainColor);
  text-decoration: none;
}
a svg {
  fill: var(--mainColor);
}
@media print, screen and (min-width: 813px) {
  a:hover, a:active {
    text-decoration: none;
  }
}

/*--------------------------------
	SNS一覧
--------------------------------*/
.sns_lists {
  display: flex;
  align-items: center;
  gap: 1em;
}
.sns_lists li a {
  display: block;
  width: 1.7em;
  height: 1.7em;
}
.sns_lists li a svg {
  width: 100%;
  height: 100%;
  vertical-align: bottom;
  fill: var(--blackColor);
}
.sns_lists li.sns_x a {
  width: 1.5em;
  height: 1.5em;
}
.sns_lists li.sns_x a svg {
  vertical-align: text-top;
}
/*--------------------------------
	リンクテキスト
--------------------------------*/
.link_txt {
  display: flex;
  align-items: center;
  column-gap: 0.5em;
}
.link_txt > a {
  color: var(--blackColor);
  letter-spacing: 0.2em;
}
.link_txt > a > span {
  display: inline-block;
  position: relative;
}
.link_txt > a > span i {
  display: flex;
  align-items: center;
  width: 2em;
  height: 2em;
  padding-left: calc((2em - min(4vw, 16px)) / 2);
  border: solid 1px var(--blackColor);
  background-color: transparent;
  position: absolute;
  top: calc(50% - 1em);
  left: 0;
  z-index: 0;
}
.link_txt > a > span i svg {
  width: 4vw;
  max-width: 16px;
  height: 5px;
  fill: var(--blackColor);
  stroke: var(--blackColor);
  stroke-width: 5px;
}
.link_txt > a > span span {
  display: block;
  font-size: 1.3rem;
  padding-left: 2.8em;
}
.link_txt[data-link*=center] {
  justify-content: center;
}
.link_txt[data-link*=right] {
  justify-content: end;
}
.link_txt[data-link*=left] {
  justify-content: start;
}
@media print, screen and (min-width: 813px) {
  .link_txt > a > span {
    padding-right: 0.5em;
  }
  .link_txt > a > span i {
    transition: width var(--animationSpeed), border-color var(--animationSpeed), background-color var(--animationSpeed);
  }
  .link_txt > a > span i svg {
    width: 1.3vw;
  }
  .link_txt > a > span span {
    position: relative;
    z-index: 1;
    transition: opacity var(--animationSpeed);
    backface-visibility: hidden;
    will-change: opacity;
  }
  .link_txt > a:hover {
    color: var(--whiteColor);
  }
  .link_txt > a:hover > span i {
    width: 100%;
    border-color: var(--mainColor);
    background-color: var(--mainColor);
  }
  .link_txt > a:hover > span i svg {
    fill: var(--whiteColor);
    stroke: var(--whiteColor);
  }
}

/*--------------------------------
	矢印リンク
--------------------------------*/
.link_arrow {
  display: flex;
}
.link_arrow a, .link_arrow > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2em;
  height: 2em;
  border: solid 1px var(--blackColor);
  background-color: var(--whiteColor);
}
.link_arrow a svg, .link_arrow > span svg {
  width: 4vw;
  max-width: 16px;
  height: 5px;
  fill: var(--blackColor);
  stroke: var(--blackColor);
  stroke-width: 5px;
}
@media print, screen and (min-width: 813px) {
  .link_arrow a:hover {
    background-color: var(--mainColor);
  }
  .link_arrow a:hover svg {
    fill: var(--whiteColor);
    stroke: var(--whiteColor);
  }
}

/*--------------------------------
	リンクボタン
--------------------------------*/
.link_btn a, .link_btn > span {
  display: inline-block;
  color: var(--blackColor);
  text-align: left;
  text-decoration: none;
  padding: 0.5em 1em;
  border: solid 1px var(--blackColor);
  background-color: var(--whiteColor);
}
.link_btn a span, .link_btn > span span {
  display: block;
}
.link_btn a[data-arrow*=line], .link_btn > span[data-arrow*=line] {
  --arrowLineWidth:1.4em;
  --arrowLineHeight:0.3em;
}
.link_btn[data-link*=purple] a {
  color: var(--mainColor);
  border-color: var(--mainColor);
}
.link_btn[data-link*=purple] a[data-arrow*=line] > span:after {
  background-color: var(--mainColor);
}
.link_btn[data-link*=center] a {
  text-align: center;
}
.link_btn[data-link*=center] a[data-arrow*=line] > span {
  padding-left: calc(var(--arrowLineWidth) + 1em + var(--arrowLineHoverMove));
}
.link_btn[data-link*=center] a[data-arrow*=doglegged] > span {
  padding-left: calc(var(--arrowDogleggedHoverMove) + 1em + var(--arrowDogleggedHoverMove));
}
.link_btn[data-link*=wide] a, .link_btn[data-link*=wide] > span {
  display: block;
}
.link_btn[data-link*=wide] a > *:last-child, .link_btn[data-link*=wide] > span > *:last-child {
  margin-bottom: 0;
}
.link_btn[data-link*=wide] a[data-arrow*=line], .link_btn[data-link*=wide] > span[data-arrow*=line] {
  --arrowLineHeight:0.4em;
}
.link_btn[data-link*=wide] a .tt_main, .link_btn[data-link*=wide] > span .tt_main {
  line-height: 1.4;
}
@media print, screen and (max-width: 812px) {
  .link_btn a, .link_btn > span {
    min-width: 215px;
  }
  .link_btn[data-link*=wide] a, .link_btn[data-link*=wide] > span {
    padding-top: 1.1em;
    padding-bottom: 1.1em;
  }
  .link_btn[data-link*=wide] a[data-arrow*=line], .link_btn[data-link*=wide] > span[data-arrow*=line] {
    --arrowLineWidth:1.2em;
  }
  .link_btn[data-link*=wide] a[data-arrow*=line] > span, .link_btn[data-link*=wide] > span[data-arrow*=line] > span {
    padding-right: calc(var(--arrowLineWidth) + 0.2em + var(--arrowLineHoverMove));
    padding-left: calc(var(--arrowLineWidth) + 0.2em + var(--arrowLineHoverMove));
  }
}
@media print, screen and (min-width: 813px) {
  .link_btn a, .link_btn > span {
    min-width: 260px;
  }
  .link_btn a:hover {
    color: var(--whiteColor);
    background-color: var(--mainColor);
  }
  .link_btn a:hover[data-arrow] > span:after {
    background-color: var(--whiteColor);
  }
  .link_btn[data-link*=wide] a, .link_btn[data-link*=wide] > span {
    padding: 3em;
  }
}

/*============================================================

    LAYOUT

============================================================*/
/*--------------------------------
	MAIN
--------------------------------*/
main p, main ol, main ul, main dl {
  margin-bottom: 1.6rem;
}
main picture {
  display: block;
}
main section > *:last-child, main div > *:last-child, main article > *:last-child, main ul > *:last-child, main ol > *:last-child, main dl > *:last-child {
  margin-bottom: 0;
}
@media print, screen and (max-width: 812px) {
  main {
    padding-top: var(--spHeaderHeight);
  }
}
@media print, screen and (min-width: 813px) {
  main {
    padding-top: var(--pcHeaderHeight);
  }
}

/*--------------------------------
    汎用コンテナ
--------------------------------*/
.container {
  margin-right: auto;
  margin-left: auto;
}
.container.wide {
  max-width: none;
  min-width: 0;
  padding-left: 0;
  padding-right: 0;
}
.container .box, .container .wrap, .container .inner {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
@media print, screen and (max-width: 812px) {
  .container {
    max-width: calc(var(--container) + 10%);
    min-width: 0;
    padding-left: 5%;
    padding-right: 5%;
  }
}
@media print, screen and (min-width: 813px) {
  .container {
    max-width: calc(var(--container) + 76px);
    padding-left: 38px;
    padding-right: 38px;
  }
}

/*--------------------------------
	汎用box
--------------------------------*/
.box {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}
@media print, screen and (max-width: 812px) {
  .box {
    max-width: calc(var(--box) + 10%);
    padding-left: 5%;
    padding-right: 5%;
  }
}
@media print, screen and (min-width: 813px) {
  .box {
    max-width: calc(var(--box) + 76px);
    padding-left: 38px;
    padding-right: 38px;
  }
}

/*--------------------------------
	汎用wrap
--------------------------------*/
.wrap {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}
@media print, screen and (max-width: 812px) {
  .wrap {
    max-width: calc(var(--wrap) + 10%);
    padding-left: 5%;
    padding-right: 5%;
  }
}
@media print, screen and (min-width: 813px) {
  .wrap {
    max-width: calc(var(--wrap) + 76px);
    padding-left: 38px;
    padding-right: 38px;
  }
}

/*--------------------------------
	汎用インナー
--------------------------------*/
.inner {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}
@media print, screen and (max-width: 812px) {
  .inner {
    max-width: calc(var(--inner) + 10%);
    padding-left: 5%;
    padding-right: 5%;
  }
}
@media print, screen and (min-width: 813px) {
  .inner {
    max-width: calc(var(--inner) + 76px);
    padding-left: 38px;
    padding-right: 38px;
  }
}

/*============================================================

    HEADER

============================================================*/
header {
  display: block;
  width: 100%;
  border-bottom: solid 1px rgba(56, 53, 70, 0.2);
  background-color: var(--baseColor);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9990;
}
header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  height: 100%;
  margin: 0;
}
header .container #header_nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
header .container #header_nav #header_language {
  display: flex;
  gap: 0;
}
header .container #header_nav #header_language li {
  color: var(--mainColor);
  font-size: min(1.1rem, 11px);
}
header .container #header_nav #header_language li:after {
  content: "/";
  padding: 0 0.3em;
}
header .container #header_nav #header_language li:last-child:after {
  display: none;
}
header .container #header_nav #header_language li a, header .container #header_nav #header_language li span {
  border-bottom: solid 1px transparent;
}
header .container #header_nav #header_language li span {
  border-bottom-color: var(--mainColor);
}
header .container #header_nav p a {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--whiteColor);
  text-align: center;
  padding: 0 2.5em;
  border-right: solid 1px var(--mainColor);
  border-left: solid 1px var(--mainColor);
  background-color: var(--mainColor);
}
@media print, screen and (max-width: 812px) {
  header {
    height: var(--spHeaderHeight);
  }
  header .container.wide {
    padding-right: var(--spHeaderHeight);
    padding-left: 3%;
  }
  header .container #header_logo {
    width: 155px;
  }
  header .container #header_nav {
    gap: 0 1em;
    width: calc(100% - 165px);
  }
  header .container #header_nav p a {
    height: var(--spHeaderHeight);
    line-height: 1.4;
    font-size: min(1.2rem, 12px);
    padding: 0 1.3em;
  }
  header .container #header_nav #nav_btnwrapper {
    width: var(--spHeaderHeight);
  }
}
@media print, screen and (max-width: 320px) {
  header .container #header_nav p a {
    letter-spacing: normal;
    padding: 0 0.5em;
  }
}
@media print, screen and (min-width: 813px) {
  header {
    height: var(--pcHeaderHeight);
  }
  header .container.wide {
    padding-right: var(--pcHeaderHeight);
    padding-left: 5%;
  }
  header .container #header_logo {
    width: 18%;
  }
  header .container #header_nav {
    gap: 0 2.5vw;
    width: calc(82% - 20px);
  }
  header .container #header_nav #header_language li {
    font-size: min(1.4rem, 14px);
  }
  header .container #header_nav #header_language li:after {
    padding: 0 0.5em;
  }
  header .container #header_nav #header_language li a:hover {
    border-bottom-color: var(--mainColor);
  }
  header .container #header_nav p a {
    height: var(--pcHeaderHeight);
    font-size: min(1.4rem, 14px);
  }
  header .container #header_nav p a:hover {
    color: var(--mainColor);
    background-color: var(--subColor);
  }
  header .container #header_nav #nav_btnwrapper {
    width: var(--pcHeaderHeight);
  }
}
header #header_logo {
  position: relative;
  z-index: 10001;
}
header #header_logo img {
  height: auto;
  margin: 0;
}
@media print, screen and (max-width: 812px) {
  header #header_logo {
    width: 100%;
    max-width: 155px;
  }
}
@media print, screen and (min-width: 813px) {
  header #header_logo a img {
    width: 258px;
    transition: filter var(--animationSpeed);
  }
  header #header_logo a:hover img {
    filter: none;
  }
}

/*--------------------------------
	ナビゲーション
--------------------------------*/
#navigation {
  width: 50%;
  height: 100vh;
  height: 100dvh;
  padding-top: var(--pcHeaderHeight);
  background-color: rgba(255, 255, 255, 0.95);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1010;
}
#navigation .nav_cnt {
  height: 100%;
  padding: 4vh 10%;
  overflow-y: auto;
}
#navigation .nav_cnt #nav_list {
  position: relative;
}
#navigation .nav_cnt #nav_list #nav_main li a {
  font-size: 1.4rem;
}
#navigation .nav_cnt #nav_list #nav_main li a:not(:hover) {
  color: var(--blackColor);
}
#navigation .nav_cnt #nav_list #nav_main li:nth-child(n+7) {
  grid-column: 1/-1;
}
#navigation .nav_cnt #nav_list #nav_main > li {
  flex-wrap: wrap;
  align-items: start;
  font-size: 1.8rem;
}
#navigation .nav_cnt #nav_list #nav_main > li:last-child {
  margin-bottom: 0;
}
#navigation .nav_cnt #nav_list #nav_main > li > a {
  width: auto;
  font-family: var(--fontTitle);
  font-weight: 500;
  letter-spacing: 0.05em;
}
#navigation .nav_cnt #nav_list #nav_main > li > a > span {
  padding-right: 0;
}
#navigation .nav_cnt #nav_list #nav_main > li > a > span i {
  width: 1.2em;
  height: 1.2em;
  padding-left: calc((1.2em - 1px - min(0.6em, 16px)) / 2);
  top: calc(50% - 0.6em);
}
#navigation .nav_cnt #nav_list #nav_main > li > a > span i svg {
  width: 0.6em;
}
#navigation .nav_cnt #nav_list #nav_main > li > a > span > span {
  font-size: inherit;
  padding-left: 1.7em;
}
#navigation .nav_cnt #nav_list #nav_main > li > ul {
  width: 100%;
  font-size: 1.4rem;
  padding-left: 1.7em;
}
#navigation .nav_cnt #nav_list #nav_main > li > ul li {
  line-height: 2;
  font-size: inherit;
}
#navigation .nav_cnt #nav_list #nav_main > li > ul li:last-child {
  margin-bottom: 0;
}
#navigation .nav_cnt #nav_list #nav_main > li > ul li a {
  font-size: 1.4rem;
  border-bottom: solid 1px transparent;
}
#navigation .nav_cnt #nav_list #nav_link {
  width: calc((100% - 1.6em) / 2);
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 1;
}
#navigation .nav_cnt #nav_list #nav_link li {
  margin-bottom: 2vh;
}
#navigation .nav_cnt #nav_list #nav_link li:last-child {
  margin-bottom: 0;
}
#navigation .nav_cnt #nav_list #nav_link li a {
  width: 100%;
  min-width: initial;
  font-family: var(--fontTitle);
  font-size: 1.6rem;
  text-align: left;
}
#navigation .nav_cnt #nav_list #nav_link li a span {
  padding-left: 0;
}
#navigation .nav_cnt #nav_list #nav_link li a span:after {
  min-height: 7px;
}
#navigation .nav_cnt #nav_list #nav_link li:nth-child(1) a {
  line-height: 1.6;
}
#navigation .nav_cnt #nav_sub {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 1.6em;
}
#navigation .nav_cnt #nav_sub li a {
  color: var(--blackColor);
  font-size: 1.4rem;
  border-bottom: solid 1px transparent;
}
#navigation .nav_cnt #nav_info {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  column-gap: 2em;
  border-top: solid 1px var(--blackColor);
}
#navigation .nav_cnt #nav_info #nav_contact {
  width: 100%;
}
#navigation .nav_cnt #nav_info #nav_contact a:not(:hover):not(.active) {
  color: var(--blackColor);
}
#navigation .nav_cnt #nav_info #nav_contact > div > dt {
  margin-bottom: 0.3em;
}
#navigation .nav_cnt #nav_info #nav_contact > div > dt a {
  border-bottom-style: solid;
  border-bottom-width: 1px;
}
#navigation .nav_cnt #nav_info #nav_contact > div > dt a:not(:hover):not(.active) {
  border-bottom-color: transparent;
}
#navigation .nav_cnt #nav_info #nav_contact > div > dd dl > div {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 0.3em;
}
#navigation .nav_cnt #nav_info #nav_contact > div > dd dl > div:last-child {
  margin-bottom: 0;
}
#navigation .nav_cnt #nav_info #nav_contact > div > dd dl > div:last-child > dt {
  line-height: 1.4;
}
#navigation .nav_cnt #nav_info #nav_access p a {
  display: flex;
  align-items: center;
  gap: 0 0.3em;
  color: var(--blackColor);
  text-align: left;
}
#navigation .nav_cnt #nav_info #nav_access p a > * {
  display: block;
}
#navigation .nav_cnt #nav_info #nav_access p a span {
  border-bottom: solid 1px var(--blackColor);
}
#navigation .nav_cnt #nav_info #nav_access p a svg {
  width: 1.5em;
  height: 1.5em;
  fill: var(--blackColor);
}
#navigation .nav_cnt #nav_list #nav_main > li > a.active {
  color: var(--mainColor);
}
#navigation .nav_cnt #nav_list #nav_main > li > a.active > span i {
  background-color: var(--mainColor);
}
#navigation .nav_cnt #nav_list #nav_main > li > a.active > span i svg {
  fill: var(--whiteColor);
  stroke: var(--whiteColor);
}
#navigation .nav_cnt #nav_link li a.active {
  color: var(--whiteColor);
  background-color: var(--mainColor);
}
#navigation .nav_cnt #nav_link li a.active span:after {
  background-color: var(--whiteColor);
}
#navigation .nav_cnt #nav_list #nav_main > li > ul > li > a.active, #navigation .nav_cnt #nav_sub li a.active, #navigation .nav_cnt #nav_contact dt a.active {
  color: var(--mainColor);
  border-bottom-color: var(--mainColor);
}
@media print, screen and (max-width: 812px) {
  #navigation {
    width: 100%;
    height: 100vh !important;
    height: 100dvh !important;
    padding-top: var(--spHeaderHeight);
  }
  #navigation .nav_cnt {
    padding: 4vh 6vw;
  }
  #navigation .nav_cnt #nav_list, #navigation .nav_cnt #nav_main, #navigation .nav_cnt #nav_sub, #navigation .nav_cnt #nav_contact {
    margin-bottom: 2.5vh;
  }
  #navigation .nav_cnt #nav_info {
    padding-top: 2.5vh;
  }
  #navigation .nav_cnt #nav_list #nav_main {
    gap: 1em;
  }
  #navigation .nav_cnt #nav_list #nav_main > li a {
    letter-spacing: 0.05em;
  }
  #navigation .nav_cnt #nav_list #nav_main > li ul {
    margin-top: 5px;
  }
  #navigation .nav_cnt #nav_list #nav_main > li ul li a {
    font-size: 1.2rem;
  }
  #navigation .nav_cnt #nav_list #nav_link li a {
    font-size: 1.4rem;
  }
  #navigation .nav_cnt #nav_list #nav_link li:nth-child(1) a {
    line-height: 1.2;
  }
  #navigation .nav_cnt #nav_sub li a {
    font-size: 1.2rem;
  }
  #navigation .nav_cnt #nav_info #nav_contact {
    font-size: 1.2rem;
  }
  #navigation .nav_cnt #nav_info #nav_access {
    font-size: 1.2rem;
  }
  #navigation .nav_cnt #nav_info #nav_access p a {
    font-size: 1.2rem;
  }
}
@media print, screen and (min-width: 813px) {
  #navigation .nav_cnt {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-content: start;
    padding-bottom: 8vh;
  }
  #navigation .nav_cnt > * {
    width: 100%;
  }
  #navigation .nav_cnt #nav_list {
    margin-bottom: 5vh;
  }
  #navigation .nav_cnt #nav_sub {
    margin-bottom: 3vh;
  }
  #navigation .nav_cnt #nav_info {
    padding-top: 3vh;
  }
  #navigation .nav_cnt #nav_contact {
    margin-bottom: 4vh;
  }
  #navigation .nav_cnt #nav_list {
    padding: 3vh 0 0;
  }
  #navigation .nav_cnt #nav_list #nav_main > li > a {
    font-size: 1.8rem;
  }
  #navigation .nav_cnt #nav_list #nav_main > li > ul {
    width: 100%;
    font-size: 1.8rem;
    padding-left: 1.7em;
    margin-top: 0.3em;
  }
  #navigation .nav_cnt #nav_list #nav_main > li > ul li {
    line-height: 1.6;
    margin-bottom: 0;
  }
  #navigation .nav_cnt #nav_list #nav_main > li > ul li a {
    transition: border-bottom-color var(--animationSpeed);
  }
  #navigation .nav_cnt #nav_list #nav_main > li > ul li a:hover {
    color: var(--blackColor);
    border-bottom-color: var(--blackColor);
  }
  #navigation .nav_cnt #nav_list #nav_link li {
    margin-bottom: 1.2em;
  }
  #navigation .nav_cnt #nav_sub li a {
    transition: border-bottom-color var(--animationSpeed);
  }
  #navigation .nav_cnt #nav_sub li a:hover {
    border-bottom-color: var(--blackColor);
  }
  #navigation .nav_cnt #nav_info #nav_contact > div {
    display: flex;
    column-gap: 2em;
  }
  #navigation .nav_cnt #nav_info #nav_contact > div > dt {
    flex-shrink: 0;
    width: 7em;
    margin-bottom: 0;
  }
  #navigation .nav_cnt #nav_info #nav_contact > div > dd {
    width: calc(100% - 9em);
  }
  #navigation .nav_cnt #nav_info #nav_access p span {
    transition: border-bottom-color var(--animationSpeed);
  }
  #navigation .nav_cnt #nav_info #nav_access p a:hover span {
    border-bottom-color: transparent;
  }
  #navigation .nav_cnt #nav_list #nav_main > li > a:hover {
    color: var(--mainColor);
  }
  #navigation .nav_cnt #nav_list #nav_main > li > ul > li > a:hover, #navigation .nav_cnt #nav_sub li a:hover, #navigation .nav_cnt #nav_contact dt a:hover {
    color: var(--mainColor);
    border-bottom-color: var(--mainColor);
  }
  #navigation .nav_cnt .sns_lists li a:hover {
    opacity: 0.6;
  }
}
@media print, screen and (min-width: 1440px) {
  #navigation .nav_cnt {
    padding: 4vh 12.5% 8vh;
  }
}

/*--------------------------------
	サイドナビゲーション
--------------------------------*/
#side_navigation {
  position: fixed;
  z-index: 10000;
  transform: translateY(-50%);
}
#side_navigation ul li {
  width: 220px;
  margin-bottom: 1px;
}
#side_navigation ul li:last-child {
  margin-bottom: 0;
}
#side_navigation ul li a {
  display: flex;
  align-items: center;
  color: var(--whiteColor);
  font-size: 1.5rem;
  background-color: var(--sideNavColor);
}
#side_navigation ul li a i {
  display: flex;
  align-items: center;
  justify-content: center;
}
#side_navigation ul li a i svg {
  width: 100%;
  height: 100%;
  fill: var(--whiteColor);
}
#side_navigation ul li a i svg.icon_bell {
  max-width: 24px;
  max-height: 24px;
}
#side_navigation ul li a i svg.icon_calendar {
  max-width: 20px;
  max-height: 18px;
}
#side_navigation ul li a i svg.icon_tel {
  max-width: 23px;
  max-height: 23px;
}
#side_navigation ul li a i svg.icon_reserve {
  max-width: 22px;
  max-height: 20px;
}
#side_navigation ul li a i svg.icon_mail {
  max-width: 22px;
  max-height: 17px;
}
#side_navigation ul li a i svg.icon_pin {
  max-width: 20px;
  max-height: 24px;
}
#side_navigation ul li a span {
  line-height: 1;
}
@media print, screen and (max-width: 812px) {
  #side_navigation {
    top: auto;
    bottom: 0;
    right: 0;
    transform: none;
  }
  #side_navigation ul {
    display: flex;
    flex-wrap: wrap;
    gap: 1px;
    background-color: var(--whiteColor);
  }
  #side_navigation ul li {
    width: calc(50% - 1px);
  }
  #side_navigation ul li a {
    display: flex;
    align-items: center;
    color: var(--whiteColor);
    font-size: 1.5rem;
  }
  #side_navigation ul li a span {
    display: block;
    width: calc(100% - 50px);
    font-size: 1.3rem;
    text-align: center;
    padding-right: 25px;
  }
  #side_navigation ul li a i {
    width: 50px;
    height: 50px;
  }
  #side_navigation ul li.campaign, #side_navigation ul li.calendar {
    display: none;
  }
  #side_navigation {
    opacity: 0;
    transform: translateY(100%);
    transition: var(--animationSpeed);
  }
  body.nav-show #side_navigation, #side_navigation.show, #side_navigation.up {
    opacity: 1;
    transform: translateY(0%);
  }
}
@media print, screen and (min-width: 813px) {
  #side_navigation {
    transition: right var(--animationSpeed);
    right: calc((220px - min(6rem, 60px)) * -1);
    top: 50%;
  }
  #side_navigation:hover {
    right: 0 !important;
  }
  #side_navigation ul li a:hover {
    background-color: var(--sideNavHoverColor);
  }
  #side_navigation ul li a i {
    width: 6rem;
    height: 6rem;
    max-width: 60px;
    max-height: 60px;
  }
  #side_navigation ul li a i svg {
    width: 40%;
    height: 40%;
  }
  #side_navigation ul li.tel {
    display: none;
  }
  header.hide:not(.show) + #side_navigation {
    right: -220px;
  }
}
@media only screen and (min-width: 1280px) {
  header.hide:not(.show) + #side_navigation {
    right: calc((220px - min(6rem, 60px)) * -1);
  }
}

/*--------------------------------
	ハンバーガーメニュー
--------------------------------*/
#nav_btnwrapper {
  height: calc(var(--pcHeaderHeight) - 1px);
  background-color: transparent;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 10001;
  cursor: pointer;
}
#nav_btnwrapper #nav_btn {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: relative;
}
#nav_btnwrapper #nav_btn #nav_btn_icon, #nav_btnwrapper #nav_btn:before, #nav_btnwrapper #nav_btn:after {
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--mainColor);
  position: absolute;
  left: 0;
}
#nav_btnwrapper #nav_btn #nav_btn_icon {
  top: 50%;
  transform: translateY(-50%);
}
#nav_btnwrapper #nav_btn:before, #nav_btnwrapper #nav_btn:after {
  content: "";
  transition: transform 0.3s, background-color var(--animationSpeed);
  backface-visibility: hidden;
  will-change: transform;
}
#nav_btnwrapper #nav_btn:before {
  top: 0;
}
#nav_btnwrapper #nav_btn:after {
  bottom: 0;
}
body.nav-show #nav_btnwrapper #nav_btn #nav_btn_icon {
  background-color: transparent !important;
}
body.nav-show #nav_btnwrapper #nav_btn:before {
  top: 50%;
  transform: rotate(-32deg);
}
body.nav-show #nav_btnwrapper #nav_btn:after {
  top: 50%;
  bottom: auto;
  transform: rotate(32deg);
}
@media print, screen and (max-width: 812px) {
  #nav_btnwrapper {
    height: calc(var(--spHeaderHeight) - 1px);
    padding: 16px 13px;
  }
  #nav_btnwrapper #nav_btn #nav_btn_icon, #nav_btnwrapper #nav_btn:before, #nav_btnwrapper #nav_btn:after {
    height: 1px;
  }
}
@media print, screen and (min-width: 813px) {
  #nav_btnwrapper {
    padding: 27px 22px;
    transition: background-color var(--animationSpeed);
    cursor: pointer;
  }
  #nav_btnwrapper:hover {
    background-color: var(--subColor);
  }
  body.nav-show #nav_btnwrapper:hover #nav_btn #nav_btn_icon {
    background-color: transparent;
  }
}

/*--------------------------------
ナビゲーション表示スタイル
--------------------------------*/
#navigation[data-sp-nav-type], #navigation[data-pc-nav-type] {
  backface-visibility: hidden;
  will-change: opacity, transform;
}
@media print, screen and (max-width: 812px) {
  #navigation[data-sp-nav-type=modal] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: scale(0.95);
    transition: var(--animationSpeed);
  }
  body.nav-show #navigation[data-sp-nav-type=modal] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: scale(1);
  }
  #navigation[data-sp-nav-type=slideDown] {
    transform: translate3d(0, -100%, 0);
    transition: var(--animationSpeed);
  }
  body.nav-show #navigation[data-sp-nav-type=slideDown] {
    transform: translate3d(0, 0, 0);
  }
  #navigation[data-sp-nav-type=slideRight] {
    height: calc(100% - var(--spHeaderHeight));
    height: calc(100dvh - var(--spHeaderHeight));
    transform: translate3d(100%, 0, 0);
    transition: var(--animationSpeed);
  }
  body.nav-show #navigation[data-sp-nav-type=slideRight] {
    transform: translate3d(0, 0, 0);
  }
  #navigation[data-sp-nav-type=slideLeft] {
    height: calc(100% - var(--spHeaderHeight));
    height: calc(100dvh - var(--spHeaderHeight));
    transform: translate3d(-100%, 0, 0);
    transition: var(--animationSpeed);
  }
  body.nav-show #navigation[data-sp-nav-type=slideLeft] {
    transform: translate3d(0, 0, 0);
  }
}
@media print, screen and (min-width: 813px) {
  #navigation[data-pc-nav-type=modal] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: scale(0.95);
    transition: var(--animationSpeed);
  }
  body.nav-show #navigation[data-pc-nav-type=modal] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: scale(1);
  }
  #navigation[data-pc-nav-type=slideDown] {
    visibility: hidden;
    transform: translate3d(0, -100%, 0);
    transition: var(--animationSpeed);
  }
  body.nav-show #navigation[data-pc-nav-type=slideDown] {
    visibility: visible;
    transform: translate3d(0, 0, 0);
  }
  #navigation[data-pc-nav-type=slideRight] {
    transform: translate3d(200%, 0, 0);
    transition: var(--animationSpeed);
  }
  body.nav-show #navigation[data-pc-nav-type=slideRight] {
    transform: translate3d(100%, 0, 0);
  }
  #navigation[data-pc-nav-type=slideLeft] {
    transform: translate3d(-100%, 0, 0);
    transition: var(--animationSpeed);
  }
  body.nav-show #navigation[data-pc-nav-type=slideLeft] {
    transform: translate3d(0, 0, 0);
  }
}

/*--------------------------------
	nav表示時の透過背景
--------------------------------*/
body main, body footer, body .parallax-mirror {
  transition: filter var(--animationSpeed) ease 0s;
}
body #navigation_bg {
  visibility: hidden;
  opacity: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  background-color: #463D2A;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 998;
  transition: opacity var(--animationSpeed) ease 0s;
  backface-visibility: hidden;
  will-change: opacity;
}
body.nav-show main, body.nav-show footer, body.nav-show .parallax-mirror {
  filter: blur(10px);
}
body.nav-show #navigation_bg {
  visibility: visible;
  opacity: 0.16;
  cursor: pointer;
}
@media print, screen and (max-width: 812px) {
  body main, body .parallax-mirror {
    transition: none;
  }
  body #navigation_bg {
    display: none;
  }
  body.nav-show main {
    filter: none;
  }
}
/*--------------------------------
	nav スクロール禁止
--------------------------------*/
body.nav-show {
  overflow: hidden;
  height: 100%;
}
/*--------------------------------
	ナビゲーション animation
--------------------------------*/
#navigation {
  transition-duration: 0.2s;
}
#navigation .nav_cnt > div .io:not(.order), #navigation .nav_cnt > div .io.order > * {
  transition-duration: 0.6s, 0.6s, 0.6s;
}
#navigation .nav_cnt > div .io.order > * {
  transition-delay: initial;
}
#navigation .nav_cnt > div .io.move.nav_main li:nth-child(1) {
  transition-delay: 0.1s;
}
#navigation .nav_cnt > div .io.move.nav_main li:nth-child(2) {
  transition-delay: 0.2s;
}
#navigation .nav_cnt > div .io.move.nav_main li:nth-child(3) {
  transition-delay: 0.3s;
}
#navigation .nav_cnt > div .io.move.nav_main li:nth-child(4) {
  transition-delay: 0.4s;
}
#navigation .nav_cnt > div .io.move.nav_main li:nth-child(5) {
  transition-delay: 0.5s;
}
#navigation .nav_cnt > div .io.move.nav_main li:nth-child(6) {
  transition-delay: 0.6s;
}
#navigation .nav_cnt > div .io.move.nav_main li:nth-child(7) {
  transition-delay: 0.7s;
}
#navigation .nav_cnt > div .io.move.nav_main li:nth-child(8) {
  transition-delay: 0.8s;
}
#navigation .nav_cnt > div .io.move.nav_info {
  transition-delay: 0.9s;
}
#navigation .nav_cnt > div .io.move.nav_banner {
  transition-delay: 1s;
}
#navigation .nav_cnt > div .io.move.nav_sns {
  transition-delay: 1.1s;
}
/*============================================================

    FOOTER

============================================================*/
footer {
  /*--------------------------------
  	基本設定
  --------------------------------*/
  /*--------------------------------
  footer-info
  --------------------------------*/
  /*--------------------------------
  footer-extra
  --------------------------------*/
  /*--------------------------------
  footer-nav
  --------------------------------*/
  /*--------------------------------
  	copyright
  --------------------------------*/
}
footer {
  color: var(--mainColor);
  padding: 0 0 30px;
  background-color: var(--whiteColor);
}
footer #footer-info {
  margin-bottom: 40px;
}
footer #footer-info section a {
  display: block;
  color: var(--blackColor);
  text-align: center;
  border: solid 4px transparent;
}
footer #footer-info section a div {
  position: relative;
}
footer #footer-info section a div .tt_main {
  margin-bottom: 0.2em;
}
footer #footer-info section a div .arrow_right {
  fill: currentColor;
  position: absolute;
}
footer #footer-info section:nth-child(1) a {
  border-color: var(--beigeColor);
  background-color: var(--beigeColor);
}
footer #footer-info section:nth-child(2) a {
  border-color: var(--subColor);
  background-color: var(--subColor);
}
@media print, screen and (max-width: 812px) {
  footer #footer-info section a {
    padding: 20px 0;
  }
  footer #footer-info section a div p {
    font-size: 1.2rem;
  }
  footer #footer-info section a div .arrow_right {
    width: 8vw;
    height: 3vw;
    top: calc(50% - 1.5vw - 20px);
    right: 5%;
  }
}
@media print, screen and (min-width: 813px) {
  footer #footer-info section a {
    padding: 50px 0;
    transition: background-color var(--animationSpeed), color var(--animationSpeed), border-color var(--animationSpeed);
  }
  footer #footer-info section a .arrow_right {
    width: 3vw;
    height: 1vw;
    max-width: 43px;
    max-height: 12px;
    top: calc(50% - min(0.5vw, 6px));
    right: 38px;
  }
  footer #footer-info section a:hover {
    background-color: var(--whiteColor);
  }
  footer #footer-info section:nth-child(1) a:hover {
    border-color: #B99960;
  }
  footer #footer-info section:nth-child(2) a:hover {
    border-color: var(--mainColor);
  }
}
footer #footer-extra {
  margin-bottom: 30px;
}
footer #footer-extra section a {
  display: block;
  color: var(--whiteColor);
  text-align: center;
  border: solid 4px var(--mainColor);
  background-color: var(--mainColor);
  position: relative;
}
footer #footer-extra section a h6 {
  margin-bottom: 0.2em;
}
footer #footer-extra section a .arrow_right {
  fill: currentColor;
}
@media print, screen and (max-width: 812px) {
  footer #footer-extra section {
    margin-top: 20px;
  }
  footer #footer-extra section:first-child {
    margin-top: 0;
  }
  footer #footer-extra section a {
    padding: 20px 0;
  }
  footer #footer-extra section a p {
    font-size: 1.2rem;
    margin-top: 0.7em;
  }
  footer #footer-extra section a .arrow_right {
    width: 8vw;
    height: 3vw;
    position: absolute;
    top: calc(50% - 1.5vw);
    right: 5%;
  }
}
@media print, screen and (min-width: 813px) {
  footer #footer-extra {
    display: flex;
    column-gap: 4%;
  }
  footer #footer-extra section {
    width: 48%;
  }
  footer #footer-extra section a {
    text-align: left;
    padding: 50px 38px 50px calc(38px + 1em);
    transition: background-color var(--animationSpeed), color var(--animationSpeed);
  }
  footer #footer-extra section a .arrow_right {
    width: 3vw;
    height: 1vw;
    max-width: 43px;
    max-height: 12px;
    position: absolute;
    top: calc(50% - min(0.5vw, 6px));
    right: 38px;
  }
  footer #footer-extra section a:hover {
    color: var(--mainColor);
    background-color: var(--baseColor);
  }
  footer #footer-extra section a:hover .arrow_right {
    fill: var(--mainColor);
  }
}
footer #footer-nav {
  margin-bottom: 30px !important;
}
footer #footer-nav .footer_link {
  display: flex;
  align-items: center;
  gap: 0 1em;
}
footer #footer-nav .footer_link li a {
  font-size: 1.1rem;
}
footer #footer-nav .footer_sns svg {
  fill: var(--mainColor);
}
@media print, screen and (max-width: 812px) {
  footer #footer-nav {
    display: flex;
    flex-wrap: wrap;
  }
  footer #footer-nav .footer_link, footer #footer-nav .footer_sns {
    width: 100%;
    justify-content: center;
  }
  footer #footer-nav .footer_link {
    order: 2;
    margin-top: 1.5em;
  }
  footer #footer-nav .footer_sns {
    order: 1;
  }
}
@media print, screen and (min-width: 813px) {
  footer #footer-nav {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 4vw;
  }
  footer #footer-nav .footer_link li a {
    color: var(--mainColor);
    font-size: min(1.2rem, 12px);
  }
  footer #footer-nav .footer_link li a:hover {
    text-decoration: underline;
  }
  footer #footer-nav .footer_sns li a:hover {
    opacity: 0.8;
  }
}
footer .footer_copyright {
  font-size: 1.1rem;
  text-align: center;
}
/*============================================================

    COMMON

============================================================*/
*[data-padding*=vertical] {
  padding-top: var(--pcMargin);
  padding-bottom: var(--pcMargin);
}
*[data-padding*=top] {
  padding-top: var(--pcMargin);
}
*[data-padding*=bottom] {
  padding-bottom: var(--pcMargin);
}
*[data-margin*=vertical] {
  margin-top: var(--pcMargin);
  margin-bottom: var(--pcMargin);
}
*[data-margin*=top] {
  margin-top: var(--pcMargin);
}
*[data-margin*=bottom] {
  margin-bottom: var(--pcMargin);
}
*[data-padding*=half][data-padding*=vertical] {
  padding-top: calc(var(--pcMargin) / 2);
  padding-bottom: calc(var(--pcMargin) / 2);
}
*[data-padding*=half][data-padding*=top] {
  padding-top: calc(var(--pcMargin) / 2);
}
*[data-padding*=half][data-padding*=bottom] {
  padding-bottom: calc(var(--pcMargin) / 2);
}
*[data-margin*=half][data-margin*=vertical] {
  margin-top: calc(var(--pcMargin) / 2);
  margin-bottom: calc(var(--pcMargin) / 2);
}
*[data-margin*=half][data-margin*=top] {
  margin-top: calc(var(--pcMargin) / 2);
}
*[data-margin*=half][data-margin*=bottom] {
  margin-bottom: calc(var(--pcMargin) / 2);
}
@media print, screen and (max-width: 812px) {
  *[data-padding*=vertical] {
    padding-top: var(--spMargin);
    padding-bottom: var(--spMargin);
  }
  *[data-padding*=top] {
    padding-top: var(--spMargin);
  }
  *[data-padding*=bottom] {
    padding-bottom: var(--spMargin);
  }
  *[data-margin*=vertical] {
    margin-top: var(--spMargin);
    margin-bottom: var(--spMargin);
  }
  *[data-margin*=top] {
    margin-top: var(--spMargin);
  }
  *[data-margin*=bottom] {
    margin-bottom: var(--spMargin);
  }
  *[data-padding*=half][data-padding*=vertical] {
    padding-top: calc(var(--spMargin) / 2);
    padding-bottom: calc(var(--spMargin) / 2);
  }
  *[data-padding*=half][data-padding*=top] {
    padding-top: calc(var(--spMargin) / 2);
  }
  *[data-padding*=half][data-padding*=bottom] {
    padding-bottom: calc(var(--spMargin) / 2);
  }
  *[data-margin*=half][data-margin*=vertical] {
    margin-top: calc(var(--spMargin) / 2);
    margin-bottom: calc(var(--spMargin) / 2);
  }
  *[data-margin*=half][data-margin*=top] {
    margin-top: calc(var(--spMargin) / 2);
  }
  *[data-margin*=half][data-margin*=bottom] {
    margin-bottom: calc(var(--spMargin) / 2);
  }
}
body {
  transition: background-color var(--animationSpeed) ease-in-out;
}
body .bg_change_cnt {
  transition: color var(--animationSpeed) ease-in-out;
}
body.bg_change {
  background-color: var(--mainColor);
}
body.bg_change header {
  background-color: var(--mainColor);
}
body.bg_change header, body.bg_change header #header_logo img,
body.bg_change header #header_nav #header_language li:after,
body.bg_change header #header_nav #header_language li > *,
body.bg_change header #header_nav p a,
body.bg_change header #nav_btnwrapper #nav_btn #nav_btn_icon,
body.bg_change header #nav_btnwrapper #nav_btn:before,
body.bg_change header #nav_btnwrapper #nav_btn:after {
  transition: color var(--animationSpeed) ease-in-out, background-color var(--animationSpeed) ease-in-out, border-bottom-color var(--animationSpeed) ease-in-out;
}
body.bg_change header #header_logo img {
  filter: grayscale(1) brightness(0) invert(1);
}
body.bg_change header #header_nav #header_language li:after {
  color: var(--whiteColor);
}
body.bg_change header #header_nav #header_language li > * {
  color: var(--whiteColor);
}
body.bg_change header #header_nav #header_language li > span {
  border-bottom-color: var(--whiteColor);
}
body.bg_change header #header_nav p a {
  color: var(--mainColor);
  background-color: var(--whiteColor);
}
body.bg_change header #header_nav #nav_btnwrapper #nav_btn #nav_btn_icon, body.bg_change header #header_nav #nav_btnwrapper #nav_btn:before, body.bg_change header #header_nav #nav_btnwrapper #nav_btn:after {
  background-color: var(--whiteColor);
}
@media print, screen and (min-width: 813px) {
  body.bg_change header #header_nav #header_language li a:hover {
    border-bottom-color: var(--whiteColor);
  }
}

.page_header {
  padding-top: 3em;
}
.page_header .tt_main a {
  color: var(--blackColor);
}
.page_header .page_excerpt {
  margin-top: 1em;
  margin-bottom: 0;
}
@media print, screen and (max-width: 812px) {
  .page_header[data-logo=bottom] {
    padding-bottom: calc(var(--spMargin) * 2);
  }
}
@media print, screen and (min-width: 813px) {
  .page_header {
    padding-top: 3em;
  }
  .page_header[data-logo=bottom] {
    padding-bottom: var(--pcMargin);
  }
}

.page_nav {
  background-color: var(--baseColor);
}
.page_nav ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.page_nav ul li {
  text-align: center;
}
.page_nav ul li a {
  display: block;
  color: var(--blackColor);
  padding: 0.7em;
}
.page_nav ul li a i {
  font-style: normal;
}
@media print, screen and (max-width: 812px) {
  .page_nav ul {
    gap: 0 4%;
  }
  .page_nav ul li {
    width: 48%;
  }
  .page_nav ul li a {
    display: flex;
    align-items: center;
    height: 100%;
    text-align: left;
    border-bottom: solid 1px var(--darkGrayColor);
  }
  .page_nav ul li a > span {
    display: block;
    width: 100%;
  }
}
@media print, screen and (min-width: 813px) {
  .page_nav {
    border-bottom: solid 1px rgba(56, 53, 70, 0.2);
    position: sticky;
    top: calc(var(--pcHeaderHeight) - 1px);
    z-index: 5;
  }
  .page_nav ul {
    gap: 0;
  }
  .page_nav ul li {
    flex-shrink: 0;
  }
  .page_nav ul li a {
    padding: 1em calc(2em - var(--arrowDogleggedWidth)) 1em 2em;
    position: relative;
  }
  .page_nav ul li a:after {
    display: block;
    content: "";
    width: 100%;
    height: 2px;
    position: absolute;
    bottom: -1px;
    left: 0;
    transition: background-color var(--animationSpeed);
  }
  .page_nav ul li.current a, .page_nav ul li a:hover {
    color: var(--mainColor);
  }
  .page_nav ul li.current a[data-arrow] > span:after, .page_nav ul li a:hover[data-arrow] > span:after {
    background-color: var(--mainColor);
  }
  .page_nav ul li.current a:after, .page_nav ul li a:hover:after {
    background-color: var(--mainColor);
  }
}

.page_mainvisual {
  width: 100%;
  height: 65vh;
  overflow: hidden;
}
@media print, screen and (max-width: 812px) {
  .page_mainvisual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
@media print, screen and (min-width: 813px) {
  .page_mainvisual {
    height: 67vh;
  }
}

.lead_txt {
  margin-bottom: 3em;
}
.line_cnt {
  padding-top: 2em;
  padding-bottom: 2em;
  margin-top: 2em;
  border-top: solid 2px var(--blackColor);
  border-bottom: solid 2px var(--blackColor);
}
.border_cnt {
  padding: 2em;
  border: solid 1px var(--mainColor);
}
.border_cnt > *:last-child {
  margin-bottom: 0;
}
@media print, screen and (min-width: 813px) {
  .border_cnt {
    padding: 4em;
  }
}

*[data-arrow] > span {
  position: relative;
}
*[data-arrow] > span:after {
  display: block;
  content: "";
  background-color: var(--blackColor);
  aspect-ratio: 1;
  position: absolute;
}
*[data-arrow][data-arrow*=kunoji] {
  --arrowWidth:1.2em;
  position: relative;
}
*[data-arrow][data-arrow*=kunoji]:after {
  width: var(--arrowWidth);
  height: var(--arrowWidth);
  display: block;
  content: "";
  background-color: var(--blackColor);
  aspect-ratio: 1;
  position: absolute;
}
*[data-arrow][data-arrow*=kunoji][data-arrow*=right] {
  padding-right: var(--arrowWidth);
}
*[data-arrow][data-arrow*=kunoji][data-arrow*=right]:after {
  width: calc(var(--arrowWidth) / 2);
  top: calc(50% - var(--arrowWidth) / 2.5);
  right: calc(var(--arrowWidth) / 4);
  clip-path: polygon(7% 0, 100% 50%, 7% 100%, 0 93%, 80% 50%, 0 7%);
}
*[data-arrow][data-arrow*=kunoji][data-arrow*=down] {
  padding-bottom: var(--arrowWidth);
}
*[data-arrow][data-arrow*=kunoji][data-arrow*=down]:after {
  height: calc(var(--arrowWidth) / 2);
  bottom: calc(var(--arrowWidth) / 4);
  left: calc(50% - var(--arrowWidth) / 2);
  clip-path: polygon(100% 7%, 50% 100%, 0% 7%, 7% 0%, 50% 80%, 93% 0%);
}
*[data-arrow][data-arrow*=doglegged] {
  --arrowDogleggedWidth:1.2em;
  --arrowDogleggedHoverMove:3px;
}
*[data-arrow][data-arrow*=doglegged] > span:after {
  width: var(--arrowDogleggedWidth);
  height: var(--arrowDogleggedWidth);
}
*[data-arrow][data-arrow*=doglegged][data-arrow*=up] > span {
  padding-right: calc(var(--arrowDogleggedWidth) + 1em + var(--arrowDogleggedHoverMove));
}
*[data-arrow][data-arrow*=doglegged][data-arrow*=up] > span:after {
  height: calc(var(--arrowDogleggedWidth) / 2);
  top: calc(50% - var(--arrowDogleggedWidth) / 5);
  right: var(--arrowDogleggedHoverMove);
  clip-path: polygon(0% 93%, 50% 0%, 100% 93%, 93% 100%, 50% 20%, 7% 100%);
}
*[data-arrow][data-arrow*=doglegged][data-arrow*=right] > span {
  padding-right: calc(var(--arrowDogleggedWidth) / 2 + 1em + var(--arrowDogleggedHoverMove));
}
*[data-arrow][data-arrow*=doglegged][data-arrow*=right] > span:after {
  width: calc(var(--arrowDogleggedWidth) / 2);
  top: calc(50% - var(--arrowDogleggedWidth) / 2.5);
  right: var(--arrowDogleggedHoverMove);
  clip-path: polygon(7% 0, 100% 50%, 7% 100%, 0 93%, 80% 50%, 0 7%);
}
*[data-arrow][data-arrow*=doglegged][data-arrow*=down] > span {
  padding-right: calc(var(--arrowDogleggedWidth) + 1em + var(--arrowDogleggedHoverMove));
}
*[data-arrow][data-arrow*=doglegged][data-arrow*=down] > span:after {
  height: calc(var(--arrowDogleggedWidth) / 2);
  top: calc(50% - var(--arrowDogleggedWidth) / 5);
  right: var(--arrowDogleggedHoverMove);
  clip-path: polygon(100% 7%, 50% 100%, 0% 7%, 7% 0%, 50% 80%, 93% 0%);
}
*[data-arrow][data-arrow*=doglegged][data-arrow*=left] > span {
  padding-left: calc(var(--arrowDogleggedWidth) / 2 + 1em + var(--arrowDogleggedHoverMove));
}
*[data-arrow][data-arrow*=doglegged][data-arrow*=left] > span:after {
  width: calc(var(--arrowDogleggedWidth) / 2);
  top: calc(50% - var(--arrowDogleggedWidth) / 2.5);
  left: var(--arrowDogleggedHoverMove);
  clip-path: polygon(93% 0, 0% 50%, 93% 100%, 100% 93%, 20% 50%, 100% 7%);
}
*[data-arrow][data-arrow*=line] {
  --arrowLineWidth:2.2em;
  --arrowLineHeight:0.7em;
  --arrowLinePositionGap:0px;
  --arrowLineHoverMove:3px;
}
*[data-arrow][data-arrow*=line] > span:after {
  width: var(--arrowLineWidth);
  height: var(--arrowLineHeight);
}
*[data-arrow][data-arrow*=line][data-arrow*=right] > span {
  padding-right: calc(var(--arrowLineWidth) + 1em + var(--arrowLineHoverMove));
}
*[data-arrow][data-arrow*=line][data-arrow*=right] > span:after {
  top: calc(50% - (var(--arrowLineHeight) / 2 + var(--arrowLinePositionGap)));
  right: var(--arrowLineHoverMove);
  clip-path: polygon(74% 0, 78% 0, 100% 89%, 100% 100%, 0 100%, 0 89%, 96% 89%);
}
*[data-arrow][data-arrow*=line][data-arrow*=left] > span {
  padding-left: calc(var(--arrowLineWidth) + 1em + var(--arrowLineHoverMove));
}
*[data-arrow][data-arrow*=line][data-arrow*=left] > span:after {
  top: calc(50% - (var(--arrowLineHeight) / 2 + var(--arrowLinePositionGap)));
  left: var(--arrowLineHoverMove);
  clip-path: polygon(26% 0, 22% 0, 0% 89%, 0% 100%, 100% 100%, 100% 89%, 4% 89%);
}
@media print, screen and (min-width: 813px) {
  *[data-arrow] > span {
    backface-visibility: hidden;
    will-change: opacity, transform;
  }
  *[data-arrow] > span:after {
    transition: var(--animationSpeed);
  }
}

.banner_cnt {
  position: relative;
}
.banner_cnt > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-content: center;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 1;
  transform: translateY(-50%);
}
.banner_cnt > div > * {
  width: 100%;
}
.banner_cnt > div .tt_main {
  color: var(--whiteColor);
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
  margin-bottom: 0;
}
.banner_cnt > div .link_btn {
  margin-top: 1em;
}
.banner_cnt > div .link_btn a {
  min-width: initial;
  color: var(--whiteColor);
  text-align: left;
  border-color: var(--whiteColor);
  background-color: transparent;
  position: static;
  will-change: auto;
}
.banner_cnt > div .link_btn a > span:after {
  background-color: var(--whiteColor);
}
.banner_cnt > div .link_btn a:after {
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
@media print, screen and (max-width: 812px) {
  .banner_cnt > div .tt_main {
    line-height: 1.4;
    font-size: 2rem;
  }
  .banner_cnt > div .link_btn a {
    padding-top: 0.4em;
    padding-bottom: 0.4em;
  }
}
@media print, screen and (min-width: 813px) {
  .banner_cnt picture {
    overflow: hidden;
  }
  .banner_cnt picture img {
    transition: transform var(--animationSpeed), filter var(--animationSpeed);
    backface-visibility: hidden;
    will-change: opacity, transform;
  }
  .banner_cnt:hover picture img {
    transform: scale(1.05);
    filter: contrast(110%) brightness(130%);
  }
  .banner_cnt:hover > div .link_btn a {
    color: var(--blackColor);
    background-color: var(--whiteColor);
  }
  .banner_cnt:hover > div .link_btn a > span:after {
    background-color: var(--blackColor);
  }
}

.number_cnt {
  counter-increment: number;
}
.number_cnt .number:before, .number_cnt .number:after {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.8em;
  height: 1.8em;
  line-height: 1;
  color: var(--mainColor);
  font-weight: 500;
  padding-bottom: 0.15em;
  border: solid 1px var(--mainColor);
  background-color: var(--whiteColor);
}
.number_cnt .number:before {
  content: counter(number);
}
/*----------------------------------------------------------------
	厄年表 / 歳祝表
----------------------------------------------------------------*/
table {
  border-collapse: collapse;
  border-spacing: 0;
  border: solid 1px var(--blackColor);
}
table tr th, table tr td {
  padding: 1em;
  border: solid 1px var(--blackColor);
}
/*--------------------------------
	厄年表
--------------------------------*/
.yakudoshi_cnt > div {
  margin-top: 3em;
  margin-bottom: 3em;
}
.yakudoshi_cnt > div .tt_main {
  font-size: 1.6rem;
  margin-bottom: 0.5em;
}
.yakudoshi_cnt > div table {
  width: 100%;
  text-align: center;
}
.yakudoshi_cnt > div table th {
  width: 33.3333333333%;
  font-weight: normal;
  padding: 0.5em 1em;
  background-color: var(--beigeColor);
}
.yakudoshi_cnt > div table th:nth-child(2n) {
  color: var(--whiteColor);
  background-color: var(--mainColor);
}
.yakudoshi_cnt > div table td div:first-child {
  font-family: var(--fontTitle);
  font-size: 1.5rem;
  margin-bottom: 0.5em;
}
.yakudoshi_cnt > div table td div:first-child em {
  line-height: 1;
  font-size: 3.6rem;
  font-weight: bold;
}
.yakudoshi_cnt > div table td time {
  display: block;
  font-size: 1.1rem;
  line-height: 1.5;
}
.yakudoshi_cnt > div table td:nth-child(2n) {
  color: var(--mainColor);
  background-color: #F8F7FE;
}
@media print, screen and (max-width: 812px) {
  .yakudoshi_cnt > div {
    width: 100%;
  }
  .yakudoshi_cnt > div table th, .yakudoshi_cnt > div table td {
    padding: 0.5em;
  }
  .yakudoshi_cnt > div table td time {
    letter-spacing: 0.05em;
    font-size: 0.9rem;
  }
}
@media print, screen and (min-width: 813px) {
  .yakudoshi_cnt {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .yakudoshi_cnt > div {
    width: 48%;
    margin-top: 1em;
    margin-bottom: 1em;
  }
  .yakudoshi_cnt > div table td div:first-child {
    font-size: 2rem;
  }
  .yakudoshi_cnt > div table td div:first-child em {
    font-size: 4.2rem;
  }
}

/*--------------------------------
	歳祝表
--------------------------------*/
.toshiiwai_cnt {
  margin-top: 3em;
}
.toshiiwai_cnt table tr th, .toshiiwai_cnt table tr td {
  width: 50% !important;
  padding: 0.7em;
}
.toshiiwai_cnt table tr th {
  color: var(--whiteColor);
  font-weight: normal;
  background-color: var(--mainColor);
}
.toshiiwai_cnt table tr td {
  text-align: center;
}
.toshiiwai_cnt table tr:first-child > *:not(:last-child) {
  border-right-color: var(--whiteColor);
}
.toshiiwai_cnt table tr:nth-child(2n) {
  background-color: #F8F7FE;
}
@media print, screen and (max-width: 812px) {
  .toshiiwai_cnt {
    margin-top: 1em;
  }
}
@media print, screen and (min-width: 813px) {
  .toshiiwai_cnt table {
    max-width: 500px;
  }
}

/*--------------------------------
    カラムわけ
--------------------------------*/
.column {
  display: grid;
}
.column > * img {
  width: 100%;
  max-width: none;
  min-width: 0;
  height: auto;
  margin: 0 auto;
}
.column > * img + p {
  margin-top: 1em;
}
.column.align-top {
  align-items: flex-start;
}
.column.align-center {
  align-items: center;
}
.column.align-bottom {
  align-items: flex-end;
}
.column.justify-left {
  justify-content: flex-start;
}
.column.justify-center {
  justify-content: center;
}
.column.justify-right {
  justify-content: flex-end;
}
.column.reverse {
  direction: rtl;
}
.column.reverse > * {
  direction: ltr;
}
@media print, screen and (max-width: 812px) {
  .column.align-sp-top {
    align-items: flex-start;
  }
  .column.align-sp-center {
    align-items: center;
  }
  .column.align-sp-bottom {
    align-items: flex-end;
  }
  .column.justify-sp-left {
    justify-content: flex-start;
  }
  .column.justify-sp-center {
    justify-content: center;
  }
  .column.justify-sp-right {
    justify-content: flex-end;
  }
  .column.reverse-sp {
    direction: rtl;
  }
  .column.reverse-sp > * {
    direction: ltr;
  }
  .column[data-sp-col="1"] {
    row-gap: 1.6em;
    grid-template-columns: 1fr;
  }
  .column[data-sp-col="1"][class*=justify] {
    grid-template-columns: auto;
  }
  .column[data-sp-col="2"] {
    gap: 1.6em;
    grid-template-columns: 1fr 1fr;
  }
  .column[data-sp-col="2"][class*=justify] {
    grid-template-columns: auto auto;
  }
  .column[data-sp-col="3"] {
    gap: 1.6em;
    grid-template-columns: 1fr 1fr 1fr;
  }
  .column[data-sp-col="3"][class*=justify] {
    grid-template-columns: auto auto auto;
  }
}
@media print, screen and (min-width: 813px) {
  .column.align-pc-top {
    align-items: flex-start;
  }
  .column.align-pc-center {
    align-items: center;
  }
  .column.align-pc-bottom {
    align-items: flex-end;
  }
  .column.justify-pc-left {
    justify-content: flex-start;
  }
  .column.justify-pc-center {
    justify-content: center;
  }
  .column.justify-pc-right {
    justify-content: flex-end;
  }
  .column.reverse-pc {
    direction: rtl;
  }
  .column.reverse-pc > * {
    direction: ltr;
  }
  .column[data-pc-col="2"] {
    gap: 1.6em;
    grid-template-columns: 1fr 1fr;
  }
  .column[data-pc-col="2"][class*=justify] {
    grid-template-columns: auto auto;
  }
  .column[data-pc-col="3"] {
    gap: 1.6em;
    grid-template-columns: 1fr 1fr 1fr;
  }
  .column[data-pc-col="3"][class*=justify] {
    grid-template-columns: auto auto auto;
  }
  .column[data-pc-col="4"] {
    gap: 1.6em;
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
  .column[data-pc-col="4"][class*=justify] {
    grid-template-columns: auto auto auto auto;
  }
  .column[data-pc-col="5"] {
    gap: 1.6em;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
  }
  .column[data-pc-col="5"][class*=justify] {
    grid-template-columns: auto auto auto auto auto;
  }
  .column[data-pc-col="1:2"] {
    gap: 1.6em 4%;
    grid-template-columns: 1fr 2fr;
  }
  .column[data-pc-col="1:2"][class*=justify] {
    grid-template-columns: auto auto;
  }
  .column[data-pc-col="1:3"] {
    gap: 1.6em 4%;
    grid-template-columns: 1fr 3fr;
  }
  .column[data-pc-col="1:3"][class*=justify] {
    grid-template-columns: auto auto;
  }
  .column[data-pc-col="1:4"] {
    gap: 1.6em 4%;
    grid-template-columns: 1fr 4fr;
  }
  .column[data-pc-col="1:4"][class*=justify] {
    grid-template-columns: auto auto;
  }
  .column[data-pc-col="1:5"] {
    gap: 1.6em 4%;
    grid-template-columns: 1fr 5fr;
  }
  .column[data-pc-col="1:5"][class*=justify] {
    grid-template-columns: auto auto;
  }
  .column[data-pc-col="2:1"] {
    gap: 1.6em 4%;
    grid-template-columns: 2fr 1fr;
  }
  .column[data-pc-col="2:1"][class*=justify] {
    grid-template-columns: auto auto;
  }
  .column[data-pc-col="3:1"] {
    gap: 1.6em 4%;
    grid-template-columns: 3fr 1fr;
  }
  .column[data-pc-col="3:1"][class*=justify] {
    grid-template-columns: auto auto;
  }
  .column[data-pc-col="4:1"] {
    gap: 1.6em 4%;
    grid-template-columns: 4fr 1fr;
  }
  .column[data-pc-col="4:1"][class*=justify] {
    grid-template-columns: auto auto;
  }
  .column[data-pc-col="5:1"] {
    gap: 1.6em 4%;
    grid-template-columns: 5fr 1fr;
  }
  .column[data-pc-col="5:1"][class*=justify] {
    grid-template-columns: auto auto;
  }
}

*[data-bg*=white] {
  background-color: var(--whiteColor);
}
*[data-bg*=beige] {
  background-color: #F7F6F3;
}
*[data-bg*=purple] {
  background-color: #F2EFFD;
}
*[data-bg*=taizen] {
  background-image: url("/cms/wp-content/themes/kego-taizen/images/taizen_bg_sp.png");
  background-repeat: repeat-y;
  background-position: center top;
  background-size: 100% auto;
}
*[data-bg*=logo] {
  position: relative;
}
*[data-bg*=logo]:before {
  display: block;
  content: "";
  width: 100%;
  height: 30px;
  background-image: url("../images/logomark.svg");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: auto 100%;
  position: absolute;
  top: -15px;
  left: 0;
  z-index: -1;
  transition: all var(--ioAnimationSpeed);
  backface-visibility: hidden;
  will-change: opacity, transform;
}
body.bg_change *[data-bg*=logo]:before {
  filter: grayscale(1) brightness(0) invert(1);
}
.io *[data-bg*=logo]:before, *[data-bg*=logo].io:before {
  opacity: 0;
}
.move *[data-bg*=logo]:before, *[data-bg*=logo].move:before {
  opacity: 1;
}
@media print, screen and (max-width: 812px) {
  *[data-bg*=logo] {
    padding-top: calc(var(--spMargin) / 2);
  }
}
@media print, screen and (min-width: 813px) {
  *[data-bg*=taizen] {
    background-image: url("/cms/wp-content/themes/kego-taizen/images/taizen_bg.png");
  }
  *[data-bg*=logo] {
    padding-top: calc(var(--pcMargin) / 2);
  }
}

/*--------------------------------
	強調
--------------------------------*/
/*--------------------------------
	テキスト汎用性
--------------------------------*/
.txt-left {
  text-align: left;
}
.txt-center {
  text-align: center;
}
.txt-right {
  text-align: right;
}
.txt-bold {
  font-weight: bold;
}
@media print, screen and (max-width: 812px) {
  .txt-sp-left {
    text-align: left;
  }
  .txt-sp-center {
    text-align: center;
  }
  .txt-sp-right {
    text-align: right;
  }
  .txt-sp-bold {
    font-weight: bold;
  }
}
@media print, screen and (min-width: 813px) {
  .txt-pc-left {
    text-align: left;
  }
  .txt-pc-center {
    text-align: center;
  }
  .txt-pc-right {
    text-align: right;
  }
  .txt-pc-bold {
    font-weight: bold;
  }
}

/*--------------------------------
	テキスト縦書き
--------------------------------*/
*[data-text*=vertical]:not([data-text*="pc:"]):not([data-text*="sp:"]) {
  writing-mode: vertical-rl;
  font-feature-settings: normal;
}
@media print, screen and (max-width: 812px) {
  *[data-text*="sp:vertical"] {
    writing-mode: vertical-rl;
    font-feature-settings: normal;
  }
}
@media print, screen and (min-width: 813px) {
  *[data-text*="pc:vertical"] {
    writing-mode: vertical-rl;
    font-feature-settings: normal;
  }
}

/*--------------------------------
	ruby
--------------------------------*/
ruby {
  ruby-align: center;
  -webkit-ruby-align: center;
}
@media print, screen and (min-width: 813px) {
  ruby ruby > rt {
    padding-bottom: 0.2em;
  }
}

/*--------------------------------
	箇条書きリスト
--------------------------------*/
ul[data-list] > li {
  margin-bottom: 0.5em;
}
ul[data-list] > li:last-child {
  margin-bottom: 0;
}
ul[data-list=disc] {
  list-style-type: disc;
  padding-left: 1.5em;
}
ul[data-list=diamond] > li {
  text-indent: -1.35em;
  padding-left: 1.5em;
  margin-bottom: 0.5rem;
}
ul[data-list=diamond] > li:before {
  content: "◆ ";
}
ul[data-list=squareline] > li {
  padding-left: 1.5em;
  margin-bottom: 0.5rem;
  position: relative;
  z-index: -1;
}
ul[data-list=squareline] > li:before {
  display: inline-block;
  content: "";
  width: 1em;
  height: 1em;
  border: solid 1px var(--beigeColor);
  position: absolute;
  top: 0.7rem;
  left: 0;
  z-index: 0;
}
@media print, screen and (max-width: 812px) {
  ul[data-list=squareline] > li:before {
    top: 0.6rem;
  }
}
ul[data-list=notes] > li {
  text-align: left;
  letter-spacing: normal;
  text-indent: -1em;
  padding-left: 1em;
  margin-bottom: 0.3rem;
}
ul[data-list=notes] > li:before {
  content: "※";
}
/*--------------------------------
	番号付きリスト
--------------------------------*/
ol[data-list=decimal] {
  list-style-type: decimal;
  padding-left: 1.5em;
}
ol[data-list=decimal] > li {
  margin-bottom: 0.5rem;
}
ol[data-list=decimal] > li:last-child {
  margin-bottom: 0;
}
ol[data-list=katakana] {
  list-style-type: katakana;
  padding-left: 2em;
}
/*--------------------------------
	定義リスト
--------------------------------*/
dl[data-list] > div {
  margin-bottom: 0.3rem;
}
dl[data-list] > div:last-child {
  margin-bottom: 0;
}
dl[data-list*=bracket] > div > dt:before {
  content: "〈 ";
}
dl[data-list*=bracket] > div > dt:after {
  content: " 〉";
}
dl[data-list*=space] > div {
  display: flex;
  gap: 0 1em;
}
dl[data-list*=space] > div > dt {
  flex-shrink: 0;
}
@media print, screen and (max-width: 812px) {
  dl[data-list*=space] > div {
    display: block;
  }
  dl[data-list*=space] > div > dt, dl[data-list*=space] > div > dd {
    display: inline;
  }
}
dl[data-list*=colon] > div {
  display: flex;
}
dl[data-list*=colon] > div > dt {
  flex-shrink: 0;
}
dl[data-list*=colon] > div > dt:after {
  content: "：";
}
@media print, screen and (max-width: 812px) {
  dl[data-list*=colon] > div {
    display: block;
  }
  dl[data-list*=colon] > div > dt, dl[data-list*=colon] > div > dd {
    display: inline;
  }
}
dl[data-list*=square] > div {
  margin-bottom: 3rem;
}
dl[data-list*=square] > div:last-child {
  margin-bottom: 0;
}
dl[data-list*=square] > div > dt:before {
  content: "■ ";
}
.toggles .toggle_cnt {
  display: none;
}
.accordion {
  --accordionPadding:1em;
}
.accordion .accordion_btn {
  padding-right: 1.5em;
  padding-left: 1.5em;
  border-bottom: solid 1px var(--baseColor);
}
.accordion .accordion_btn:last-child, .accordion .accordion_btn.open {
  border-bottom: none;
}
.accordion .accordion_cnt {
  display: none;
}
.accordion[data-accordion*=plus] .accordion_btn {
  --accordionIconWidth:1.2em;
  --accordionIconWeight:1px;
  padding-right: calc(var(--accordionPadding) + var(--accordionIconWidth) + 1em);
  position: relative;
}
.accordion[data-accordion*=plus] .accordion_btn:before, .accordion[data-accordion*=plus] .accordion_btn:after {
  display: block;
  content: "";
  position: absolute;
  top: 50%;
  background-color: var(--blackColor);
  transition: transform var(--animationSpeed);
  transform: translateY(-50%);
}
.accordion[data-accordion*=plus] .accordion_btn:before {
  width: var(--accordionIconWidth);
  height: var(--accordionIconWeight);
  right: var(--accordionPadding);
}
.accordion[data-accordion*=plus] .accordion_btn:after {
  width: var(--accordionIconWeight);
  height: var(--accordionIconWidth);
  right: calc(var(--accordionPadding) + var(--accordionIconWidth) / 2 - var(--accordionIconWeight) / 2);
}
.accordion[data-accordion*=plus] .accordion_btn.open:after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.accordion[data-accordion*=faq] .accordion_btn {
  padding-top: 1em;
  padding-bottom: 1em;
  padding-left: var(--accordionPadding);
  margin-bottom: 0;
  border: solid 1px var(--beigeColor);
  background-color: var(--beigeColor);
}
.accordion[data-accordion*=faq] .accordion_btn > span:before {
  content: "Q ";
}
.accordion[data-accordion*=faq] .accordion_cnt {
  padding: 1.5em var(--accordionPadding);
  background-color: #FBFAF9;
  position: relative;
}
.accordion[data-accordion*=faq] .accordion_cnt > div {
  display: flex;
  column-gap: 0.5em;
}
.accordion[data-accordion*=faq] .accordion_cnt > div:before {
  display: block;
  content: "A.";
  flex-shrink: 0;
}
.accordion[data-accordion*=faq] .accordion_cnt > div dl[data-list] > div {
  margin-bottom: 0;
}
.accordion[data-accordion*=faq] .accordion_cnt > div ul[data-list=notes] {
  margin-top: 0.3em;
}
.accordion[data-accordion*=faq] .accordion_cnt > div a:not([href^="tel:"], .link_btn a, .link_txt a) {
  color: var(--blackColor);
}
.accordion[data-accordion*=faq] .accordion_cnt > div a:not([href^="tel:"], .link_btn a, .link_txt a):not([href^="tel:"]) {
  text-decoration: underline;
}
.accordion[data-accordion*=faq] .accordion_cnt > div a[href^="tel:"] {
  color: var(--blackColor);
}
.accordion[data-accordion*=faq] .accordion_cnt .link_btn {
  margin-top: 1em;
}
@media print, screen and (min-width: 813px) {
  .accordion {
    --accordionPadding:3em;
  }
  .accordion .accordion_btn {
    padding-right: 3em;
    padding-left: 3em;
    cursor: pointer;
    transition: background-color var(--animationSpeed), color var(--animationSpeed);
  }
  .accordion[data-accordion*=plus] .accordion_btn {
    --accordionIconWidth:1.2em;
  }
  .accordion[data-accordion*=faq] .accordion_btn {
    padding-top: 1.2em;
    padding-bottom: 1.2em;
  }
  .accordion[data-accordion*=faq] .accordion_btn:hover {
    border-color: #B99960;
    background-color: var(--whiteColor);
  }
}

/*------------------------------------------------------------
	form common
------------------------------------------------------------*/
/*--------------------------------
	フォーム変数
--------------------------------*/
:root {
  /* 必須 */
  --form-required: var(--mainColor);
  --form-required-text: #fff;
  /* 入力部分 */
  --form-input-border: var(--blackColor);
  --form-input-bgcolor: #F8F7FE;
  --form-checked-bgcolor: #666;
  --form-select-arrow: #333;
  --form-placeholder: #ccc;
  /* ボタン */
  --form-btn-text:var(--blackColor);
  --form-btn-bgcolor:var(--whiteColor);
  --form-btn-bgcolor-hover:var(--mainColor);
  /* エラー */
  --form-error-bgcolor:#ffe7e7;
  --form-error-text:#f00;
  /* プライバシーポリシー */
  --form-privacy-text: #666;
  --form-privacy-border:#ccc;
}

/*--------------------------------
	フォーム基本レイアウト
--------------------------------*/
form > dl {
  margin-bottom: 3em;
}
form > dl > div {
  margin-bottom: 2em;
}
form > dl > div:last-child {
  margin-bottom: 0;
}
form > dl > div i {
  font-style: normal;
}
form > dl > div > dt {
  display: flex;
  align-items: center;
  gap: 0 0.5em;
}
form > dl > div > dt i {
  color: var(--form-required-text);
  font-size: 1.2rem;
  padding: 0 0.5em 0.05em;
  background-color: var(--form-required);
}
form > dl > div > dd .radioWrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 1em;
}
form > dl > div > dd .radioWrapper > * {
  flex-shrink: 0;
}
@media print, screen and (max-width: 812px) {
  form > dl > div > dt {
    margin-bottom: 0.5em;
  }
  form > dl > div > dd i {
    display: block;
  }
}
@media print, screen and (min-width: 813px) {
  form > dl > div {
    align-items: start;
  }
  form > dl > div > dt {
    justify-content: space-between;
    padding-top: 0.9em;
  }
  form > dl > div > dd i {
    padding-left: 1em;
  }
}

/*--------------------------------
	フォーム要素スタイル
--------------------------------*/
form input {
  border-radius: 0;
}
form input[type=text], form input[type=email], form input[type=tel], form input[type=number], form input[type=date] {
  width: 100%;
  display: inline-block;
  vertical-align: middle;
  padding: 0.75em 1em;
  border: none;
  border-bottom: solid 1px var(--form-input-border);
  background-color: var(--form-input-bgcolor);
  outline: none;
}
form input.zip {
  width: 50%;
}
form input.num {
  width: 6em;
}
form input[type=file] {
  line-height: 1;
  font-size: 1.3rem;
  outline: none;
}
form input[type=file] + img {
  margin-top: 15px;
}
form input[type=radio], form input[type=checkbox] {
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.3em;
  border: solid 1px var(--form-input-border);
  position: relative;
  top: -1px;
  cursor: pointer;
}
form input[type=submit] {
  outline: 0;
}
form button {
  outline: 0;
}
form textarea {
  display: block;
  width: 100%;
  height: 12em;
  border-radius: 0;
  border: none;
  border-bottom: solid 1px var(--form-input-border);
  background-color: var(--form-input-bgcolor);
  padding: 0.5em 1em;
  outline: none;
  resize: none;
}
form label {
  margin: 0 1.5em 0 0;
  cursor: pointer;
}
form label:last-of-type {
  margin-right: 0;
}
form .radioWrapper, form .checkWrapper {
  padding: 0.75em 0;
}
form .selectWrapper {
  width: 50%;
  display: inline-block;
  margin: 0 auto;
  border: none;
  border-bottom: solid 1px var(--form-input-border);
  position: relative;
}
form .selectWrapper:after {
  content: "";
  width: 8px;
  height: 8px;
  border-bottom: solid 1px var(--form-select-arrow);
  border-right: solid 1px var(--form-select-arrow);
  transform: rotate(45deg);
  position: absolute;
  top: calc(50% - 5px);
  right: 1em;
  z-index: 2;
  pointer-events: none;
}
form .selectWrapper select {
  width: 100%;
  color: #000;
  padding: 0.75em 1em;
  border-radius: 4px;
  border: none;
  background-color: var(--form-input-bgcolor);
  position: relative;
  z-index: 1;
  outline: none;
  appearance: none;
}
form .selectWrapper select::-ms-expand {
  display: none;
}
form input::placeholder, form textarea::placeholder {
  color: var(--form-placeholder);
}
form input::-webkit-input-placeholder, form textarea::-webkit-input-placeholder {
  color: var(--form-placeholder);
}
form input:-ms-input-placeholder, form textarea:-ms-input-placeholder {
  color: var(--form-placeholder);
}
form input::-ms-input-placeholder, form textarea::-ms-input-placeholder {
  color: var(--form-placeholder);
}
@media print, screen and (max-width: 812px) {
  form input[type=text], form input[type=email], form input[type=tel], form input[type=number], form input[type=date] {
    width: 100%;
    font-size: 16px;
    padding: 0.6em;
    appearance: none;
  }
  form input.zip {
    width: 100%;
  }
  form input.num {
    width: 5em;
  }
  form input[type=radio], form input[type=checkbox] {
    top: -2px;
  }
  form input[type=radio]:checked, form input[type=checkbox]:checked {
    background-color: var(--form-checked-bgcolor) !important;
  }
  form input[type=submit] {
    border-radius: 0px;
    appearance: none;
  }
  form textarea {
    width: 100%;
    height: 8em;
    font-size: 16px;
    padding: 0.3em 0.6em;
    appearance: none;
  }
  form .radioWrapper, form .checkWrapper {
    padding: 0.6em 0;
  }
  form .selectWrapper {
    width: 100%;
  }
  form .selectWrapper select {
    font-size: 16px;
    padding: 0.6em;
  }
}
/*--------------------------------
    メッセージ
--------------------------------*/
.message {
  margin: 0 0 4em;
}
/*--------------------------------
    プライバシーポリシー
--------------------------------*/
#privacypolicy .privacypolicy_checkbox {
  font-size: 1.5rem;
  text-align: center;
  margin-bottom: 2em;
}
#privacypolicy .privacypolicy_checkbox a {
  text-decoration: underline;
}
@media print, screen and (min-width: 813px) {
  #privacypolicy .privacypolicy_checkbox {
    display: flex;
    justify-content: center;
    column-gap: 3em;
  }
  #privacypolicy .privacypolicy_checkbox a:hover {
    text-decoration: none;
  }
}

/*--------------------------------
	内容確認ボタン
--------------------------------*/
.confirmBtn button {
  color: var(--form-btn-text);
  text-decoration: none;
  padding: 0.7em;
  border: solid 1px var(--blackColor);
  background-color: var(--form-btn-bgcolor);
}
.confirmBtn button span {
  display: block;
}
.confirmBtn button[data-arrow*=line] {
  --arrowLineWidth:1em;
  --arrowLineHeight:0.3em;
}
.confirmBtn button:disabled {
  opacity: 0.3;
  cursor: default;
  pointer-events: none;
}
.confirmBtn[data-link*=center] button {
  text-align: center;
}
.confirmBtn[data-link*=center] button[data-arrow*=line] > span {
  padding-left: calc(var(--arrowLineWidth) + 1em + var(--arrowLineHoverMove));
  padding-right: calc(var(--arrowLineWidth) + 1em + var(--arrowLineHoverMove));
}
@media print, screen and (max-width: 812px) {
  .confirmBtn button {
    min-width: 215px;
  }
}
@media print, screen and (min-width: 813px) {
  .confirmBtn button {
    min-width: 260px;
    transition: all var(--animationSpeed);
    cursor: pointer;
    backface-visibility: hidden;
    will-change: opacity, transform;
  }
  .confirmBtn button:hover {
    color: var(--whiteColor);
    background-color: var(--form-btn-bgcolor-hover);
  }
  .confirmBtn button:hover[data-arrow] > span:after {
    background-color: var(--whiteColor);
  }
}

/*--------------------------------
    戻るボタン + 送信ボタン
--------------------------------*/
.contactBtnWapper {
  display: block;
  text-align: center;
  margin: 0 auto;
}
@media print, screen and (max-width: 812px) {
  .contactBtnWapper > * {
    margin-bottom: 1em;
  }
  .contactBtnWapper > *:last-child {
    margin-bottom: 0;
  }
}
@media print, screen and (min-width: 813px) {
  .contactBtnWapper {
    display: flex;
    justify-content: center;
    flex-direction: row-reverse;
    gap: 0.5em;
  }
}

/*--------------------------------
	戻るボタン
--------------------------------*/
.backBtn a {
  padding-top: 0.7em;
  padding-bottom: 0.7em;
}
.backBtn a[data-arrow*=line] {
  --arrowLineWidth:1em;
  --arrowLineHeight:0.3em;
}
.backBtn[data-link*=center] a {
  text-align: center;
}
.backBtn[data-link*=center] a[data-arrow*=line] > span {
  padding-left: calc(var(--arrowLineWidth) + 1em + var(--arrowLineHoverMove));
  padding-right: calc(var(--arrowLineWidth) + 1em + var(--arrowLineHoverMove));
}
@media print, screen and (min-width: 813px) {
  .backBtn a {
    display: inline-block;
    min-width: initial;
    padding-right: 1em;
    padding-left: 1em;
  }
}

/*--------------------------------
	送信ボタン
--------------------------------*/
.submitBtn {
  display: inline-block;
  width: 50%;
  min-width: 400px;
  height: 60px;
  line-height: 60px;
  vertical-align: top;
}
.submitBtn input {
  display: block;
  width: 100%;
  height: 100%;
  color: var(--form-btn-text);
  font-size: 1.6rem;
  text-align: center;
  border-radius: 4px;
  border: none;
  background-color: var(--form-btn-bgcolor);
  cursor: pointer;
  transition: var(--animationSpeed);
}
@media print, screen and (max-width: 812px) {
  .submitBtn {
    width: 100%;
    height: 50px;
    min-width: 0;
    line-height: 50px;
  }
}
@media print, screen and (min-width: 813px) {
  .submitBtn input:hover {
    background-color: var(--form-btn-bgcolor-hover);
  }
}

/*--------------------------------
	トップに戻るボタン
--------------------------------*/
/*--------------------------------
	エラー
--------------------------------*/
form dl > div dd.error input, form dl > div dd.error textarea, form dl > div dd.error label, form dl > div dd.error select {
  background-color: var(--form-error-bgcolor);
}
form dl > div dd.error b {
  display: block;
  color: var(--form-error-text);
  font-size: 1.2rem;
  font-weight: normal;
  margin-top: 0.3em;
}
@media print, screen and (max-width: 812px) {
  form dl > div dd.error b {
    font-size: 1.1rem;
    margin-top: 0.2em;
  }
}
/*============================================================

    HEADING

============================================================*/
/*--------------------------------
.tt_main
--------------------------------*/
.tt_main {
  font-family: var(--fontTitle);
  font-weight: 500;
  margin-bottom: 0.5em;
  line-height: 1.7;
}
.tt_main[data-title*=bracket]:before {
  content: "〈 ";
}
.tt_main[data-title*=bracket]:after {
  content: " 〉";
}
@media print, screen and (max-width: 812px) {
  .tt_main {
    line-height: 1.2;
    font-size: 2rem;
    margin-bottom: 0.7em;
  }
  .tt_main[data-title*=small] {
    font-size: 1.7rem;
  }
  .tt_main[data-title*=large] {
    font-size: 2.3rem;
  }
}
@media print, screen and (min-width: 813px) {
  .tt_main {
    font-size: 2.6rem;
  }
  .tt_main[data-title*=small] {
    font-size: 2rem;
  }
  .tt_main[data-title*=large] {
    font-size: 3.2rem;
  }
}

/*--------------------------------
.tt_sub
--------------------------------*/
.tt_sub {
  font-weight: 500;
  margin-bottom: 0.7em;
}
@media print, screen and (max-width: 812px) {
  .tt_sub {
    font-size: 1.6rem;
  }
}
@media print, screen and (min-width: 813px) {
  .tt_sub {
    font-size: 2rem;
  }
}

/*============================================================

    POSTS LIST

============================================================*/
/*--------------------------------
	記事一覧 共通
--------------------------------*/
*[data-post-lists] article > div {
  position: relative;
}
*[data-post-lists] article > div picture img {
  width: 100%;
  object-fit: cover;
}
@media all and (-ms-high-contrast: none) {
  *[data-post-lists] article > div picture img {
    font-family: "object-fit: cover;";
  }
}
*[data-post-lists] article > div .postTitle a:after, *[data-post-lists] article > div .link_txt a:after {
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
*[data-post-lists] article > div .postTag a, *[data-post-lists] article > div .postCategory a, *[data-post-lists] article > div .postTerm a {
  position: relative;
  z-index: 3;
}
@media print, screen and (min-width: 813px) {
  *[data-post-lists] article > div picture {
    overflow: hidden;
  }
  *[data-post-lists] article > div picture img {
    transition: transform var(--animationSpeed), filter var(--animationSpeed);
    backface-visibility: hidden;
    will-change: opacity, transform;
  }
  *[data-post-lists] article:hover > div picture img {
    transform: scale(1.05);
    filter: brightness(105%);
  }
}

/*--------------------------------
	記事一覧 タイプ
--------------------------------*/
/*--------- リストタイプ ---------*/
*[data-post-lists*=list] article > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5em 1em;
  padding: 1em;
  border-bottom: solid 1px var(--subColor);
}
*[data-post-lists*=list] article > div .postDate {
  width: 9.5em;
  margin-bottom: 0;
}
*[data-post-lists*=list] article > div .postCategory {
  width: calc(100% - 1em - 10em);
  margin-bottom: 0;
}
*[data-post-lists*=list] article > div .postTitle {
  width: 100%;
}
*[data-post-lists*=list] article > div .postTitle a {
  color: var(--blackColor);
}
@media print, screen and (min-width: 813px) {
  *[data-post-lists*=list] article > div {
    gap: 0.5em;
    padding: 1.6em;
    transition: border-bottom-color var(--animationSpeed);
  }
  *[data-post-lists*=list] article > div:hover {
    border-bottom-color: var(--mainColor);
  }
}

/*--------- カードタイプ ---------*/
*[data-post-lists*=card] article > div {
  height: 100%;
}
*[data-post-lists*=card] article > div > div {
  padding: 1em 1.6em 1.6em;
}
*[data-post-lists*=card] article > div > div .postTitle {
  font-size: 1.2rem;
  font-size: min(1.2rem, 12px);
  margin-bottom: 0.5em;
}
*[data-post-lists*=card] article > div > div .postTitle a {
  color: var(--blackColor);
}
*[data-post-lists*=card] article > div > div .postDate {
  font-size: 1.1rem;
  font-size: min(1.1rem, 11px);
  margin-bottom: 0;
}
*[data-post-lists*=card] article > div > div .postTag {
  margin-bottom: 0.5em;
}
*[data-post-lists*=card] article > div > div .postTag li a {
  font-size: 1.1rem;
  font-size: min(1.1rem, 11px);
}
*[data-post-lists*=card] article > div > div .postCategory {
  margin-top: 0.5em;
  margin-bottom: 0;
}
*[data-post-lists*=card] article > div > div .postCategory li a {
  font-size: 1.1rem;
  font-size: min(1.1rem, 11px);
}
*[data-post-lists*=card] article[data-article*=culture] > div {
  background-color: var(--blogPurpleBg);
}
*[data-post-lists*=card] article[data-article*=diary] > div {
  background-color: var(--blogOrangeBg);
}
*[data-post-lists*=card] article[data-article*=word] > div {
  background-color: var(--blogYellowBg);
}
*[data-post-lists*=card] article[data-article*=episode] > div {
  background-color: var(--blogBlueBg);
}
*[data-post-lists*=card] article[data-article*=life] > div {
  background-color: var(--blogRedBg);
}
*[data-post-lists*=card] article[data-article*=new] > div:before {
  display: block;
  content: "新着";
  color: var(--whiteColor);
  writing-mode: vertical-rl;
  padding: 0.7em 0.2em;
  background-color: #F76B4C;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  transform: translate(-10px, -10px);
  pointer-events: none;
}
*[data-post-lists*=card].slick-slider article:not(:hover) > div {
  background-color: var(--whiteColor) !important;
}
@media print, screen and (max-width: 812px) {
  *[data-post-lists*=card] article[data-article*=new] > div:before {
    font-size: 1.2rem;
  }
}
@media print, screen and (min-width: 813px) {
  *[data-post-lists*=card] article > div > div .postTitle {
    font-size: 1.6rem;
    font-size: min(1.6rem, 16px);
  }
  *[data-post-lists*=card] article > div > div .postDate, *[data-post-lists*=card] article > div > div .postTag, *[data-post-lists*=card] article > div > div .postCategory {
    padding-right: 3em;
  }
  *[data-post-lists*=card] article > div > div .link_arrow {
    pointer-events: none;
    position: absolute;
    right: 1.6em;
    bottom: 1.6em;
  }
  *[data-post-lists*=card] article > div > div .link_arrow > span {
    transition: background-color var(--animationSpeed);
  }
  *[data-post-lists*=card] article > div > div .link_arrow > span svg {
    transition: all var(--animationSpeed);
    backface-visibility: hidden;
    will-change: opacity, transform;
  }
  *[data-post-lists*=card] article[data-article*=new] > div:before {
    font-size: min(1.4rem, 14px);
  }
  *[data-post-lists*=card] article {
    padding: 0 1.9px 2px 0;
    position: relative;
  }
  *[data-post-lists*=card] article:after {
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    border-right: solid 2px transparent;
    border-bottom: solid 2px transparent;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    transition: border-right-color var(--animationSpeed), border-bottom-color var(--animationSpeed);
  }
  *[data-post-lists*=card] article:hover[data-article*=culture]:after {
    border-right-color: var(--blogPurple);
    border-bottom-color: var(--blogPurple);
  }
  *[data-post-lists*=card] article:hover[data-article*=diary]:after {
    border-right-color: var(--blogOrange);
    border-bottom-color: var(--blogOrange);
  }
  *[data-post-lists*=card] article:hover[data-article*=word]:after {
    border-right-color: var(--blogYellow);
    border-bottom-color: var(--blogYellow);
  }
  *[data-post-lists*=card] article:hover[data-article*=episode]:after {
    border-right-color: var(--blogBlue);
    border-bottom-color: var(--blogBlue);
  }
  *[data-post-lists*=card] article:hover[data-article*=life]:after {
    border-right-color: var(--blogRed);
    border-bottom-color: var(--blogRed);
  }
  *[data-post-lists*=card] article:hover > div > div .link_arrow > span {
    background-color: var(--mainColor);
  }
  *[data-post-lists*=card] article:hover > div > div .link_arrow > span svg {
    fill: var(--whiteColor);
    stroke: var(--whiteColor);
  }
  *[data-post-lists*=card] article[data-article*=culture]:hover .link_arrow > span {
    border-color: var(--blogPurple);
    background-color: var(--blogPurple);
  }
  *[data-post-lists*=card] article[data-article*=diary]:hover .link_arrow > span {
    border-color: var(--blogOrange);
    background-color: var(--blogOrange);
  }
  *[data-post-lists*=card] article[data-article*=word]:hover .link_arrow > span {
    border-color: var(--blogYellow);
    background-color: var(--blogYellow);
  }
  *[data-post-lists*=card] article[data-article*=episode]:hover .link_arrow > span {
    border-color: var(--blogBlue);
    background-color: var(--blogBlue);
  }
  *[data-post-lists*=card] article[data-article*=life]:hover .link_arrow > span {
    border-color: var(--blogRed);
    background-color: var(--blogRed);
  }
}

/*--------------------------------
	カテゴリ
--------------------------------*/
.postCategory {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.postCategory li {
  line-height: 1;
}
.postCategory li a, .postCategory li > span {
  display: block;
  color: var(--whiteColor);
  padding: 0.5rem 1rem 0.7rem;
  border: solid 1px var(--mainColor);
  background-color: var(--mainColor);
}
.news .postCategory li a, *[data-post-lists*=list] .postCategory li a {
  color: var(--mainColor);
  border-color: var(--subColor);
  background-color: var(--subColor);
}
.postCategory li.culture a, .postCategory li.culture > span {
  border-color: var(--blogPurple);
  background-color: var(--blogPurple);
}
.postCategory li.diary a, .postCategory li.diary > span {
  border-color: var(--blogOrange);
  background-color: var(--blogOrange);
}
.postCategory li.word a, .postCategory li.word > span {
  border-color: var(--blogYellow);
  background-color: var(--blogYellow);
}
.postCategory li.episode a, .postCategory li.episode > span {
  border-color: var(--blogBlue);
  background-color: var(--blogBlue);
}
.postCategory li.life a, .postCategory li.life > span {
  border-color: var(--blogRed);
  background-color: var(--blogRed);
}
@media print, screen and (max-width: 812px) {
  .postCategory li a, .postCategory li > span {
    font-size: 1.1rem;
  }
}
@media print, screen and (min-width: 813px) {
  .postCategory li a:hover, .postCategory li a:active, .postCategory li > span:hover, .postCategory li > span:active {
    color: var(--mainColor);
    background-color: var(--whiteColor);
  }
  .news .postCategory li a:hover, *[data-post-lists*=list] .postCategory li a:hover {
    color: var(--whiteColor);
    border-color: var(--mainColor);
    background-color: var(--mainColor);
  }
  .postCategory li.culture a:hover, .postCategory li.culture a:active {
    color: var(--blogPurple);
  }
  .postCategory li.diary a:hover, .postCategory li.diary a:active {
    color: var(--blogOrange);
  }
  .postCategory li.word a:hover, .postCategory li.word a:active {
    color: var(--blogYellow);
  }
  .postCategory li.episode a:hover, .postCategory li.episode a:active {
    color: var(--blogBlue);
  }
  .postCategory li.life a:hover, .postCategory li.life a:active {
    color: var(--blogRed);
  }
}

/*--------------------------------
	タグ
--------------------------------*/
.postTag {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  line-height: 1;
}
.postTag li {
  flex-shrink: 0;
  padding-bottom: 0.2em;
}
.postTag li a {
  color: var(--blackColor);
}
@media print, screen and (max-width: 812px) {
  .postTag li a {
    font-size: 1.1rem;
  }
}
@media print, screen and (min-width: 813px) {
  *[data-article=culture] .postTag > li a:hover {
    color: var(--blogPurple);
  }
  *[data-article=diary] .postTag > li a:hover {
    color: var(--blogOrange);
  }
  *[data-article=word] .postTag > li a:hover {
    color: var(--blogYellow);
  }
  *[data-article=episode] .postTag > li a:hover {
    color: var(--blogBlue);
  }
  *[data-article=life] .postTag > li a:hover {
    color: var(--blogRed);
  }
}

/*--------------------------------
	hashtag
--------------------------------*/
.hashtag:before {
  content: "# ";
}

/*--------------------------------
	日付
--------------------------------*/
.postDate {
  color: var(--blackColor);
}
@media print, screen and (max-width: 812px) {
  .postDate {
    font-size: 1.1rem;
  }
}
/*--------------------------------
    検索結果なし
--------------------------------*/
.noresult, .nopost {
  text-align: center;
}

.nopost {
  padding: 0 0 3em 0;
}
@media print, screen and (min-width: 813px) {
  .nopost {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 0 3em 0;
  }
}

/*--------------------------------
	記事詳細コンテンツ
--------------------------------
.post{
	// width:100%;
	// max-width:990px;
	// margin:0 auto;

	//記事情報（日付・カテゴリー）
	// .postInfo{
	// 	margin:0 0 10px 0;
	// 	span {
	// 		display: inline-block;
	// 		font-size: 1.5rem;
	// 		margin: 0 2em 0 0;
	// 	}
	// 	em {
	// 		display: inline-block;
	// 		font-size: 1.5rem;
	// 		margin: 0 1.5em 0 0;
	// 		&:last-of-type {
	// 			margin: 0;
	// 		}
	// 		a{
	// 			&:link,&:visited{
	// 				color:#999;
	// 			}
	// 		}
	// 	}
	// }
	.postDate{
		display:flex;
		flex-wrap:wrap;
		gap:0 1rem;
		font-size:1.5rem;
		font-size:min(1.5rem,15px);
		margin-bottom:1rem;
		&>div{
			flex-shrink:0;
			margin-bottom:0;
			&.release_date>dt{display:none;}
		}
	}
	//記事タイトル
	.postTitle{
		line-height:1.6;
		font-size:3.6rem;
		font-size:min(3.6rem,36px);
		font-weight:normal;
		text-align:left;
		margin:0 auto 2rem;
	}
	//サムネイル
	.postThumb{
		margin:4rem auto;
	}
	//タグ
	// .postTag{
	// 	//margin:100px 0 0;
	// 	em{
	// 		display:inline-block;
	// 		font-size:1.6rem;
	// 		margin:0 1.5em 0 0;
	// 		&:last-of-type{
	// 			margin:0;
	// 		}
	// 		a{
	// 			&:before {
	// 				content:"#";
	// 			}
	// 			&:link,&:visited{
	// 				color:#999;
	// 			}
	// 		}
	// 	}
	// }
	//記事部分
	// .postContents{
	// 	// font-size:1.6rem;
	// 	line-height:2;
	// 	// letter-spacing:0.08em;
	// 	word-break:break-all; //英語の時は消す
	// 	overflow-wrap:break-word;
	// 	&:after{
	// 		content:"";
	// 		display:block;
	// 		clear:both;
	// 	}

	// 	//記事内のスタイル
	// 	a{
	// 		&:link,&:visited{
	// 			color:var(--linkColor);
	// 			text-decoration:underline;
	// 		}
	// 	}
	// 	img{
	// 		display:block;
	// 		max-width:100%;
	// 		height:auto;
	// 	}
	// 	p{
	// 		margin:0 auto 1.5em;
	// 		// clear:both; //回り込みを禁止する場合
	// 		&>img{margin:0 auto 1.5em;}
	// 	}
	// 	strong{
	// 		color:var(--accentColor);
	// 		font-weight:bold;
	// 	}
	// 	em{
	// 		color:var(--textAccentColor);
	// 		font-style:italic;
	// 	}
	// 	figure{
	// 		&.wp-caption{
	// 			margin:0 auto 1.5em;
	// 			img{
	// 				margin:0 auto;
	// 			}
	// 			figcaption{
	// 				&.wp-caption-text{
	// 					margin:0.8em auto 0;
	// 					font-size:90%;
	// 					text-align:center;
	// 				}
	// 			}
	// 		}
	// 	}
	// 	.align{
	// 		&center{
	// 			margin:0 auto 1em;
	// 		}
	// 		&left{
	// 			float:left;
	// 			margin:0 1em 1em 0;
	// 		}
	// 		&right{
	// 			float:right;
	// 			margin:0 0 1em 1em;
	// 		}
	// 	}
	// 	blockquote{
	// 		color:#666;
	// 		font-style:italic;
	// 		margin:1.12em 40px;
	// 	}
	// 	pre{
	// 		white-space:normal;
	// 	}
	// 	ul,ol{
	// 		margin:1.12em 0;
	// 	}
	// 	ul{
	// 		list-style-type:disc;
	// 		padding-left:1em;
	// 		//li{list-style-type:disc;}
	// 	}
	// 	ol{
	// 		list-style-type:decimal;
	// 		padding-left:1.2em;
	// 		//li{list-style-type:decimal;}
	// 	}
	// 	h1,h2,h3,h4,h5,h6{
	// 		color:var(--textAccentColor);
	// 		//font-weight:bold;
	// 		text-align:left;
	// 		margin:2em 0 .75em;
	// 	}
	// 	h1{font-size:2.4rem;}
	// 	h2{font-size:2.2rem;}
	// 	h3{font-size:1.8rem;}
	// 	h4{font-size:1.7rem;}
	// 	h5,h6{font-size:1.6rem;}
	// 	iframe{
	// 		&[src*="youtube"]{
	// 			display:block;
	// 			width:100%;
	// 			height:auto;
	// 			min-height:474px; //ポストエリア幅843pxのとき画角16:9想定で
	// 			margin:0 auto;
	// 		}
	// 	}
	// 	*:last-child{margin-bottom:0;}
	// }

	//======== mobile ========
	@include mq('sp') {
		// padding:0 0 40px;
		// margin:0 0 40px;

		//記事情報（日付・カテゴリー）
		.postDate{
			font-size:1.2rem;
			font-size:min(1.2rem,12px);
			//&>div{width:100%;}
		}
		// .postInfo{
		// 	margin:0 0 5px 0;
		// 	span{
		// 		font-size:1.2rem;
		// 		margin:0 2em 0 0;
		// 	}
		// 	em{
		// 		font-size:1.2rem;
		// 		margin:0 1em 0 0;
		// 	}
		// }
		//サムネイル
		.postThumb{
			margin-top:2rem;
		}
		//記事タイトル
		.postTitle{
			font-size:2rem;
			margin:0 auto 0.8em;
		}
		//タグ
		// .postTag{
		// 	margin:50px 0 0;
		// 	em{
		// 		font-size:1.3rem;
		// 	}
		// }
		//記事部分
		// .postContents{
		// 	//font-size:1.5rem;
		// 	h1{font-size:2.2rem;}
		// 	h2{font-size:2rem;}
		// 	h3{font-size:1.8rem;}
		// 	h4{font-size:1.6rem;}
		// 	h5,h6{font-size:1.5rem;}
		// 	iframe{
		// 		&[src*="youtube"]{
		// 			min-height:190px; //ポストエリア幅337pxのとき画角16:9想定で
		// 		}
		// 	}
		// }
	}
	//======== pc ========
	@include mq('pc') {
		//記事情報（日付・カテゴリー）
		.postInfo{
			em{
				a{
					&:hover,&:active{
						color:#333;
					}
				}
			}
		}
		//記事タイトル
		.postTitle{

		}
		//タグ
		.postTag{
			em{
				a{
					&:hover,&:active{
						color:#333;
					}
				}
			}
		}
		//記事部分
		// .postContents{
		// 	a{
		// 		&:hover,&:active{
		// 			color:var(--linkHoverColor);
		// 			text-decoration:none;
		// 		}
		// 	}
		// }
	}
}*/
/*--------------------------------
	pagelink
--------------------------------*/
.pagelink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  margin-bottom: 0;
}
.pagelink li a {
  display: flex;
  align-items: center;
  gap: 0.5em;
  color: var(--blackColor);
  font-size: 1.4rem;
}
.pagelink li a.pagedisable {
  opacity: 0;
  pointer-events: none;
}
.pagelink li:nth-child(1) a, .pagelink li:nth-child(1) > span, .pagelink li:nth-child(3) a, .pagelink li:nth-child(3) > span {
  display: flex;
}
.pagelink li:nth-child(1) a i, .pagelink li:nth-child(1) > span i, .pagelink li:nth-child(3) a i, .pagelink li:nth-child(3) > span i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2em;
  height: 2em;
  border: solid 1px var(--blackColor);
  background-color: var(--whiteColor);
}
.pagelink li:nth-child(1) a i svg, .pagelink li:nth-child(1) > span i svg, .pagelink li:nth-child(3) a i svg, .pagelink li:nth-child(3) > span i svg {
  width: 4vw;
  max-width: 16px;
  height: 5px;
  fill: var(--blackColor);
  stroke: var(--blackColor);
  stroke-width: 5px;
}
@media print, screen and (max-width: 812px) {
  .pagelink {
    flex-wrap: wrap;
    gap: 0.5em 1em;
  }
  .pagelink li {
    width: calc((100% - 1em) / 2);
    position: relative;
  }
  .pagelink li a.pageprev {
    justify-content: flex-start;
  }
  .pagelink li a.pagenext {
    justify-content: flex-end;
  }
  .pagelink li.pageindex {
    order: 3;
    width: 100%;
  }
  .pagelink li.pageindex a {
    justify-content: center;
  }
}
@media print, screen and (min-width: 813px) {
  .pagelink {
    max-width: 700px;
  }
  .pagelink li a span {
    transition: color var(--animationSpeed);
  }
  .pagelink li a i {
    transition: background-color var(--animationSpeed);
  }
  .pagelink li a:hover span {
    color: var(--mainColor);
  }
  .pagelink li a:hover i {
    background-color: var(--mainColor);
  }
  .pagelink li a:hover i svg {
    fill: var(--whiteColor);
    stroke: var(--whiteColor);
  }
}

/*--------------------------------
	Editor
--------------------------------*/
.postContents {
  line-height: 2;
  word-break: break-all;
  overflow-wrap: break-word;
}
.postContents:after {
  content: "";
  display: block;
  clear: both;
}
.postContents > *:first-child {
  margin-top: 0;
}
.postContents a:not(.link_btn a):not(.link_txt a):link, .postContents a:not(.link_btn a):not(.link_txt a):visited {
  color: var(--blackColor);
  text-decoration: underline;
}
.postContents img {
  display: block;
  max-width: 100%;
  height: auto;
}
.postContents p {
  margin: 0 auto 1.5em;
}
.postContents p > img {
  margin: 0 auto 1.5em;
}
.postContents strong {
  color: var(--accentColor);
  font-weight: bold;
}
.postContents em {
  color: var(--textAccentColor);
  font-style: italic;
}
.postContents .wp-caption {
  max-width: 100%;
}
.postContents figure.wp-caption {
  margin: 0 auto 1.5em;
}
.postContents figure.wp-caption img {
  margin: 0 auto;
}
.postContents figure.wp-caption .wp-caption-text {
  margin: 0.8em auto 0;
  font-size: 90%;
  text-align: center;
}
.postContents .aligncenter {
  margin: 0 auto 1em;
}
.postContents .alignleft {
  float: left;
  margin: 0 1em 1em 0;
}
.postContents .alignright {
  float: right;
  margin: 0 0 1em 1em;
}
.postContents blockquote {
  color: #666;
  font-style: italic;
  margin: 1.12em 40px;
}
.postContents pre {
  white-space: normal;
}
.postContents ul, .postContents ol {
  margin: 1.12em 0;
}
.postContents ul {
  list-style-type: disc;
  padding-left: 1em;
}
.postContents ol {
  list-style-type: decimal;
  padding-left: 1.2em;
}
.postContents h1:not(.tt_sub), .postContents h2:not(.tt_sub), .postContents h3:not(.tt_sub), .postContents h4:not(.tt_sub), .postContents h5:not(.tt_sub), .postContents h6:not(.tt_sub) {
  color: var(--blackColor);
  font-weight: 500;
  text-align: left;
}
.postContents h1:not(.tt_sub), .postContents h2:not(.tt_sub) {
  margin: 2em 0 0.75em;
}
.postContents h3:not(.tt_sub), .postContents h4:not(.tt_sub) {
  margin: 1.2em 0 0.75em;
}
.postContents h5:not(.tt_sub), .postContents h6:not(.tt_sub) {
  margin: 1em 0 0.75em;
}
.postContents h1:not(.tt_sub) {
  font-size: 2.2rem;
}
.postContents h2:not(.tt_sub) {
  font-size: 2rem;
  padding: 0.2em 1em;
  background-color: var(--subColor);
}
.postContents h3:not(.tt_sub) {
  font-size: 2rem;
}
.postContents h4:not(.tt_sub) {
  font-size: 1.8rem;
}
.postContents h5:not(.tt_sub) {
  font-size: 1.6rem;
}
.postContents h6:not(.tt_sub) {
  font-size: 1.6rem;
}
.postContents iframe[src*=youtube] {
  display: block;
  width: 100%;
  height: auto;
  min-height: 474px;
  margin: 0 auto;
}
.postContents *:last-child {
  margin-bottom: 0;
}
@media print, screen and (max-width: 812px) {
  .postContents h1:not(.tt_sub) {
    font-size: 1.6rem;
  }
  .postContents h2:not(.tt_sub) {
    font-size: 1.6rem;
  }
  .postContents h3:not(.tt_sub) {
    font-size: 1.6rem;
  }
  .postContents h4:not(.tt_sub) {
    font-size: 1.4rem;
  }
  .postContents h5:not(.tt_sub), .postContents h6:not(.tt_sub) {
    font-size: 1.4rem;
  }
  .postContents iframe[src*=youtube] {
    min-height: 190px;
  }
}
@media print, screen and (min-width: 813px) {
  .postContents a:not(.link_btn a):not(.link_txt a):hover, .postContents a:not(.link_btn a):not(.link_txt a):active {
    color: var(--accentColor);
    text-decoration: none;
  }
}

/*--------------------------------
	目次（TOC）
--------------------------------*/
#toc_container {
  padding: 3rem 6rem;
  margin: 6rem 0;
  background-color: #F7F6F3;
}
#toc_container .toc_title {
  display: none;
}
#toc_container .toc_list {
  padding: 0;
  margin-top: 0;
}
#toc_container .toc_list a {
  color: var(--linkColor);
  text-decoration: none;
}
#toc_container .toc_list > li {
  margin-bottom: 1.5em;
  list-style-type: none;
}
#toc_container .toc_list > li:last-child {
  margin-bottom: 0;
}
#toc_container .toc_list > li > a {
  font-size: 2rem;
  font-size: min(2rem, 20px);
  font-weight: 500;
}
#toc_container .toc_list > li ul {
  padding-left: 1em;
  margin-top: 0;
  margin-bottom: 0;
}
#toc_container .toc_list > li ul li {
  margin-bottom: 0.75em;
  list-style-type: none;
}
#toc_container .toc_list > li ul li:last-child {
  margin-bottom: 0;
}
#toc_container .toc_list > li ul li a {
  font-size: 1.6rem;
  font-size: min(1.6rem, 16px);
  font-weight: 500;
}
#toc_container .toc_list > li ul li ul {
  padding-left: 1em;
  margin-top: 0;
  margin-bottom: 0;
}
#toc_container .toc_list > li ul li ul li {
  margin-bottom: 0;
  list-style-type: none;
}
#toc_container .toc_list > li ul li ul li:last-child {
  margin-bottom: 0;
}
#toc_container .toc_list > li ul li ul li a {
  font-size: 1.4rem;
  font-size: min(1.4rem, 14px);
  font-weight: normal;
}
@media print, screen and (max-width: 812px) {
  #toc_container {
    padding: 2.5rem 2rem;
    margin: 5rem 0;
  }
  #toc_container .toc_list > li {
    margin-bottom: 1em;
  }
  #toc_container .toc_list > li > a {
    font-size: 1.6rem;
  }
  #toc_container .toc_list > li ul {
    margin-top: 0.5em;
  }
  #toc_container .toc_list > li ul li a {
    font-size: 1.4rem;
  }
  #toc_container .toc_list > li ul li ul {
    margin-top: 0.5em;
  }
  #toc_container .toc_list > li ul li ul li a {
    font-size: 1.4rem;
  }
}
@media print, screen and (min-width: 813px) {
  #toc_container .toc_list a:hover {
    opacity: 0.7;
  }
  #toc_container .toc_list > li {
    margin-bottom: 1.5em;
    list-style-type: none;
  }
  #toc_container .toc_list > li:last-child {
    margin-bottom: 0;
  }
  #toc_container .toc_list > li ul {
    padding-left: 2em;
  }
}

/*--------------------------------
blog_logo
--------------------------------*/
.blog_logo img {
  max-width: 255px;
}
@media print, screen and (min-width: 813px) {
  .blog_logo img {
    max-width: 477px;
  }
}

/*============================================================

    BUG

============================================================*/
/*----------------------------------------------------
	バグ対応
----------------------------------------------------*/
::-webkit-full-page-media, :future, :root ruby > rt {
  transform: translateY(0.3em) !important;
}

::-webkit-full-page-media, :future, :root *[data-text=vertical] ruby > rt {
  transform: translate(-0.5em, 0) !important;
}

@media print, screen and (max-width: 812px) {
  .is-ios ruby > rt {
    transform: translateY(0.5em) !important;
  }
  .is-ios *[data-text="sp:vertical"] ruby > rt {
    transform: translate(-0.5em, 0) !important;
  }
  .is-ios body.kitou .pray_flow ruby {
    transform: translateY(-0.25em);
  }
  .is-ios body.juyohin .page_nav ul li:nth-child(1) a {
    position: relative;
  }
  .is-ios body.juyohin .page_nav ul li:nth-child(1) a span {
    height: 100%;
  }
  .is-ios body.juyohin .page_nav ul li:nth-child(1) a span i {
    display: block;
    position: absolute;
    top: -0.77em;
    left: 0;
  }
}
@media print, screen and (min-width: 813px) {
  ::-webkit-full-page-media, :future, :root ruby > rt {
    padding-bottom: 0;
  }
  ::-webkit-full-page-media, :future, :root *[data-text="pc:vertical"] ruby > rt {
    transform: translate(-0.5em, 0) !important;
  }
  ::-webkit-full-page-media, :future, :root a, ::-webkit-full-page-media, :future, :root .page_nav a span {
    will-change: auto !important;
  }
  ::-webkit-full-page-media, :future, :root body.juyohin .page_nav ul li:nth-child(1) a {
    padding: 0.42em 2em 1em !important;
  }
  ::-webkit-full-page-media, :future, :root body.juyohin .page_nav ul li:nth-child(1) a ruby > rt {
    padding-bottom: 0 !important;
  }
  .faq_cnt {
    background-color: var(--beigeColor);
  }
}

/*# sourceMappingURL=com.css.map */
