@charset "utf-8";

/*--------------------------------------------------------------------
	font
--------------------------------------------------------------------*/

.textVertical {
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  -o-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
}

.textShadow01 {
  text-shadow: 0 0 10px #000;
}

.textShadow02 {
  text-shadow: 0 0 10px #FFF;
}


/*--------------------------------------------------------------------
	font color
--------------------------------------------------------------------*/

.fcWhite {
  color: #FFF !important;
}

.fcWhite a { text-decoration: none; color: #FFF; }
.fcWhite a:link { text-decoration: none; color: #FFF; }
.fcWhite a:visited { text-decoration: none; color: #FFF; }
.fcWhite a:hover { text-decoration: underline; color: #FFF; }
.fcWhite a:active { text-decoration: underline; color: #FFF; }

.fcBlack {
  color: #333 !important;
}

.fcBlack a { text-decoration: none; color: #333; }
.fcBlack a:link { text-decoration: none; color: #333; }
.fcBlack a:visited { text-decoration: none; color: #333; }
.fcBlack a:hover { text-decoration: underline; color: #333; }
.fcBlack a:active { text-decoration: underline; color: #333; }

.fcGray01 {
  color: #999 !important;
}

.fcGray01 a { text-decoration: none; color: #999; }
.fcGray01 a:link { text-decoration: none; color: #999; }
.fcGray01 a:visited { text-decoration: none; color: #999; }
.fcGray01 a:hover { text-decoration: underline; color: #999; }
.fcGray01 a:active { text-decoration: underline; color: #999; }

.fcGray02 {
  color: #646464 !important;
}

.fcGray02 a { text-decoration: none; color: #646464; }
.fcGray02 a:link { text-decoration: none; color: #646464; }
.fcGray02 a:visited { text-decoration: none; color: #646464; }
.fcGray02 a:hover { text-decoration: underline; color: #646464; }
.fcGray02 a:active { text-decoration: underline; color: #646464; }


/*--------------------------------------------------------------------
	bg color
--------------------------------------------------------------------*/

.bgWhite {
  background-color: #FFF !important;
}

.bgGray01 {
  background-color: #F3F3F3 !important;
}

.bgGray02 {
  background-color: #F7F5F1 !important;
}

.bgGray03 {
  background-color: #292725 !important;
}

.bgGray04 {
  background-color: #6A6965 !important;
}


/*--------------------------------------------------------------------
	border
--------------------------------------------------------------------*/

.borderCommon01 {
  border: 1px solid #DDD;
}

.borderWhite01 {
  border: 1px solid #FFF;
}

.borderCommon03 {
  border: 1px solid #333;
}

.borderCommon04 {
  border: 5px solid #FFF;
}

.borderGray01 {
  border-color: #DDD;
}

.borderDouble {
  border: 1px solid #999;
  outline: 1px solid #999;
  outline-offset: 3px;
}

.borderBottom {
  border-bottom: 1px solid #666;
  margin-bottom: .2em;
  padding-bottom: .2em;
}

.borderBottom2 {
  border-bottom: 1px solid #CCC;
  padding-bottom: 3em;
}


/*--------------------------------------------------------------------
	size
--------------------------------------------------------------------*/

@media screen and (min-width: 1251px) {
  [class*="sizeCommon"] { line-height: 1.8; }
  .sizeCommon01 { font-size: 1.6rem; }
  .sizeCommon02 { font-size: 1.0rem; }
  .sizeCommon03 { font-size: 1.2rem; }
  .sizeCommon04 { font-size: 2.2rem; }
  .sizeCommon05 { font-size: 4.0rem; }
  .sizeCommon06 { font-size: 0.9rem; }
}

@media screen and (max-width: 1250px) and (min-width: 768px) {
  [class*="sizeCommon"] { line-height: 1.6; }
  .sizeCommon01 { font-size: 1.5rem; }
  .sizeCommon02 { font-size: 1.0rem; }
  .sizeCommon03 { font-size: 1.2rem; }
  .sizeCommon04 { font-size: 1.8rem; }
  .sizeCommon05 { font-size: 3.0rem; }
  .sizeCommon06 { font-size: 0.85rem; }
}

@media screen and (max-width: 767px) {
  [class*="sizeCommon"] { line-height: 1.6; }
  .sizeCommon01 { font-size: 1rem; }
  .sizeCommon02 { font-size: 0.9rem; }
  .sizeCommon03 { font-size: 1.1rem; }
  .sizeCommon04 { font-size: 1.5rem; }
  .sizeCommon05 { font-size: 2.4rem; }
  .sizeCommon06 { font-size: 0.8rem; }
}


/*--------------------------------------------------------------------
	padding
--------------------------------------------------------------------*/

@media screen and (min-width: 1251px) {
  .paddingCommon30A { padding: 30px; }
  .paddingCommon20A { padding: 20px; }
  .paddingCommon20B { padding: 40px 20px; }
  .paddingCommon15A { padding: 15px; }
  .paddingCommon15B { padding: 10px 15px; }
  .paddingCommon10A { padding: 10px; }
  .paddingCommon05A { padding: 5px; }
}

@media screen and (max-width: 1250px) and (min-width: 768px) {
  .paddingCommon30A { padding: 25px; }
  .paddingCommon20A { padding: 15px; }
  .paddingCommon20B { padding: 30px 15px; }
  .paddingCommon15A { padding: 15px; }
  .paddingCommon15B { padding: 10px 15px; }
  .paddingCommon10A { padding: 10px; }
  .paddingCommon05A { padding: 5px; }
}

@media screen and (max-width: 767px) {
  .paddingCommon30A { padding: 15px; }
  .paddingCommon20A { padding: 10px; }
  .paddingCommon20B { padding: 20px 10px; }
  .paddingCommon15A { padding: 10px; }
  .paddingCommon15B { padding: 5px 10px; }
  .paddingCommon10A { padding: 10px; }
  .paddingCommon05A { padding: 5px; }
}


/*--------------------------------------------------------------------
	space
--------------------------------------------------------------------*/

@media screen and (min-width: 1251px) {
  .spaceCommonA80 { margin-bottom: 80px; }
  .spaceCommonA50 { margin-bottom: 50px; }
  .spaceCommonA40 { margin-bottom: 40px; }
  .spaceCommonA30 { margin-bottom: 30px; }
  .spaceCommonA20 { margin-bottom: 20px; }
  .spaceCommonA15 { margin-bottom: 15px; }
  .spaceCommonB50 { margin-bottom: 50px; }
  .spaceCommonB40 { margin-bottom: 40px; }
  .spaceCommonB30 { margin-bottom: 30px; }
  .spaceCommonB20 { margin-bottom: 20px; }
  .spaceCommonB15 { margin-bottom: 15px; }
}

@media screen and (max-width: 1250px) and (min-width: 768px) {
  .spaceCommonA80 { margin-bottom: 70px; }
  .spaceCommonA50 { margin-bottom: 40px; }
  .spaceCommonA40 { margin-bottom: 30px; }
  .spaceCommonA30 { margin-bottom: 20px; }
  .spaceCommonA20 { margin-bottom: 15px; }
  .spaceCommonA15 { margin-bottom: 10px; }
  .spaceCommonB50 { margin-bottom: 40px; }
  .spaceCommonB40 { margin-bottom: 30px; }
  .spaceCommonB30 { margin-bottom: 20px; }
  .spaceCommonB20 { margin-bottom: 15px; }
  .spaceCommonB15 { margin-bottom: 10px; }
}

@media screen and (max-width: 767px) {
  .spaceCommonA80 { margin-bottom: 50px; }
  .spaceCommonA50 { margin-bottom: 25px; }
  .spaceCommonA40 { margin-bottom: 20px; }
  .spaceCommonA30 { margin-bottom: 15px; }
  .spaceCommonA20 { margin-bottom: 10px; }
  .spaceCommonA15 { margin-bottom: 7px; }
  .spaceCommonB50 { margin-bottom: 0; }
  .spaceCommonB40 { margin-bottom: 0; }
  .spaceCommonB30 { margin-bottom: 0; }
  .spaceCommonB20 { margin-bottom: 0; }
  .spaceCommonB15 { margin-bottom: 0; }
}


/*--------------------------------------------------------------------
	structure
--------------------------------------------------------------------*/

.structureCommonA05>*:nth-child(n+2),
.structureCommonA05>li:nth-child(n+2) {
  margin-top: 5px;
}

.structureCommonA10>*:nth-child(n+2),
.structureCommonA10>li:nth-child(n+2) {
  margin-top: 10px;
}

.structureCommon01>*.noPadding,
.structureCommon01Box.noPadding,
.structureCommon01a>*.noPadding,
.structureCommon01aBox.noPadding {
  padding: 0;
}

.structureCommon01>*.noPaddingBottom,
.structureCommon01Box.noPaddingBottom,
.structureCommon01a>*.noPaddingBottom,
.structureCommon01aBox.noPaddingBottom {
  padding: 0;
}

.structureCommon01>*.miniPadding,
.structureCommon01Box.miniPadding,
.structureCommon01a>*.miniPadding,
.structureCommon01aBox.miniPadding {
  padding: 30px 0;
}

@media screen and (min-width: 1251px) {
  .structureCommon01>*,
  .structureCommon01Box,
  .structureCommon01a>*,
  .structureCommon01aBox {
    padding-top: 60px;
    padding-bottom: 60px;
  }

  .structureCommon02>*,
  .structureCommon02Box {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

@media screen and (max-width: 1250px) and (min-width: 768px) {
  .structureCommon01>*,
  .structureCommon01Box,
  .structureCommon01a>*,
  .structureCommon01aBox {
    padding-top: 50px;
    padding-bottom: 50px;
  }

  .structureCommon02>*,
  .structureCommon02Box {
    padding-top: 30px;
    padding-bottom: 30px;
  }
}

@media screen and (max-width: 767px) {
  .structureCommon01>*,
  .structureCommon01Box,
  .structureCommon01a>*,
  .structureCommon01aBox {
    padding-top: 50px;
    padding-bottom: 50px;
  }

  .structureCommon02>*,
  .structureCommon02Box {
    padding-top: 20px;
    padding-bottom: 20px;
  }
}


/*--------------------------------------------------------------------
	title
--------------------------------------------------------------------*/

.titleSet {
  position: absolute;
  top: 0;
  width: 100%;
}

.titleCommon01 {
  line-height: 1.4;
  padding: 0 10px;
}

h2 {
  letter-spacing: .15em;
}

h3 {
  font-weight: bold;
  text-align: left;
  border-bottom: 1px solid #333;
}

.titleCommon01>*:first-child {
  letter-spacing: 3px;
}

.titleCommon02>.text {
  border-bottom: 1px dotted #333;
  padding: 0 10px 10px;
  font-weight: bold;
}

@media screen and (min-width: 1251px) {
  h2 { font-size: 1.65em; }
  h3 { font-size: 1.45em; }
  .titleCommon01>*:nth-child(2) { font-size: 2.0rem; }
  .titleCommon02 { font-size: 1.2rem; }
  .titleCommon02>.icon { width: 76px; }
}

@media screen and (min-width: 768px) and (max-width: 1250px) {
  h2 { font-size: 1.15em; }
  h3 { font-size: 1.15em; }
  .titleCommon01>*:nth-child(2) { font-size: 1.5rem; }
  .titleCommon02 { font-size: 1.3rem; }
  .titleCommon02>.icon { width: 50px; }
}

@media screen and (max-width: 767px) {
  h2 { font-size: 1em; }
  h3 { font-size: 1em; }
  .titleCommon01>*:nth-child(2) { font-size: 1.3rem; }
  .titleCommon02 { font-size: 1.2rem; }
  .titleCommon02>.icon { width: 30px; }
}


/*--------------------------------------------------------------------
	flex img
--------------------------------------------------------------------*/

.flexImgCommon01 {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}

.flexImgCommon01.typeA {
  border-radius: 5px;
  overflow: hidden;
}

.imgCover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/*--------------------------------------------------------------------
	radius
--------------------------------------------------------------------*/

.radius05 {
  border-radius: 5px;
  overflow: hidden;
}

.radius10 {
  border-radius: 10px;
  overflow: hidden;
}

.radius50p {
  border-radius: 50%;
  overflow: hidden;
}


/*--------------------------------------------------------------------
	icon
--------------------------------------------------------------------*/

.iconCommon01 {
  border-radius: 50%;
  text-align: center;
  z-index: 2;
}

.iconCommon01.typeA {
  width: 60px;
  height: 60px;
  font-size: 1.3rem;
  position: absolute;
}

@media screen and (min-width: 1251px) {
  .iconCommon01.typeA { top: -20px; left: -20px; }
}

@media screen and (min-width: 768px) and (max-width: 1250px) {
  .iconCommon01.typeA { top: -15px; left: -15px; }
}

@media screen and (max-width: 767px) {
  .iconCommon01.typeA { top: -15px; left: -15px; }
}


/*--------------------------------------------------------------------
	chapter
--------------------------------------------------------------------*/

.chapterCommon01>p:nth-child(2) {
  text-align: center;
  line-height: 1.4em;
}

@media screen and (min-width: 1251px) { .chapterCommon01 { font-size: 1.4rem; } }
@media screen and (min-width: 768px) and (max-width: 1250px) { .chapterCommon01 { font-size: 1.3rem; } }
@media screen and (max-width: 767px) { .chapterCommon01 { font-size: 1.2rem; } }


/*--------------------------------------------------------------------
	hr
--------------------------------------------------------------------*/

.hrCommon01 {
  display: block;
  height: 1px;
  border: 0;
  margin: 0 auto;
  padding: 0;
}

.hrGray01 {
  border-top: 1px solid #999;
}


/*--------------------------------------------------------------------
	box
--------------------------------------------------------------------*/

.boxCommon01 {
  border-radius: 5px;
}

.boxShadow01 {
  box-shadow: 1px 1px 10px rgba(10, 0, 0, 0.2);
}


/*--------------------------------------------------------------------
	movie
--------------------------------------------------------------------*/

.movieCommon01 {
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.movieCommon01 iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  vertical-align: bottom;
}


/*--------------------------------------------------------------------
	table
--------------------------------------------------------------------*/

.tableCommon01 {
  border-collapse: collapse;
}

.tableCommon01 th,
.tableCommon01 td {
  padding: 10px;
  border: 1px solid #DDD;
  vertical-align: middle;
  font-weight: normal;
  text-align: left;
}

.tableCommon01 th {
  text-align: center;
  background-color: #F7F7F7;
}

.tableCommon01 td {
  background-color: #FFF;
}

.tableMenu01 {
  font-weight: normal;
  margin-left: auto;
  margin-right: auto;
}

.tableMenu01 th,
.tableMenu01 td {
  border-bottom: 1px solid #EEE;
  vertical-align: middle;
  font-weight: normal;
  text-align: left;
}

@media screen and (min-width: 768px) {
  .tableMenu01 { width: 100%; }
  .tableMenu01 th, .tableMenu01 td { padding: 10px 15px; }
  .tableMenu01 th { width: 100px; }
}

@media screen and (max-width: 767px) {
  .tableCommon01,
  .tableCommon01 thead,
  .tableCommon01 tbody,
  .tableCommon01 tfoot,
  .tableCommon01 tr,
  .tableCommon01 th,
  .tableCommon01 td {
    display: block;
  }

  .tableCommon01 { border-top: 1px solid #DDD; }
  /* 縦積み時に w100pu（幅100%）を付けたセルへ padding・枠線が上乗せされ、エリア幅を突き抜けるため枠線込みで100%に収める */
  .tableCommon01 th, .tableCommon01 td { border-top: none; box-sizing: border-box; }

  /* 行×列の対応で読む表（料金表など）は、縦積みにすると見出しとセルの対応が崩れるため、SPでも表組みを維持する */
  .tableCommon01.typeMatrix { display: table; border-top: none; }
  .tableCommon01.typeMatrix thead { display: table-header-group; }
  .tableCommon01.typeMatrix tbody { display: table-row-group; }
  .tableCommon01.typeMatrix tr { display: table-row; }
  .tableCommon01.typeMatrix th,
  .tableCommon01.typeMatrix td {
    display: table-cell;
    border-top: 1px solid #DDD;
    padding: 8px 3px;
    font-size: 0.75rem;
    line-height: 1.4;
    text-align: center;
    /* 「利用人/数」「リフト券付/き」のような語の途中での折り返しを防ぐ（改行は<br>と括弧の前のみ） */
    word-break: keep-all;
  }

  /* 列が多く横スクロール（.scroll01）で見せる表は幅に余裕があるため、文字と余白を詰めすぎない */
  .scroll01Obj.typeMatrix th,
  .scroll01Obj.typeMatrix td {
    padding: 8px;
    font-size: 0.85rem;
  }

  /* 横スクロールしても行の見出し（1列目）を見失わないよう、左端に固定する。
     border-collapse下では固定セルの枠線がスクロール時に消えるため、左右の線は影で描く */
  .scroll01Obj.typeMatrix th:first-child,
  .scroll01Obj.typeMatrix td:first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    box-shadow: inset 1px 0 0 #DDD, inset -1px 0 0 #DDD, 4px 0 6px -4px rgba(0, 0, 0, .25);
  }
}


/*--------------------------------------------------------------------
	scroll
--------------------------------------------------------------------*/

.scroll02Wrap01 {
  overflow: hidden;
}

@media screen and (min-width: 1251px) {
  .scroll02Wrap01, .scroll02, .scroll02 img { height: 200px; }
}

@media screen and (min-width: 768px) and (max-width: 1250px) {
  .scroll02Wrap01, .scroll02, .scroll02 img { height: 150px; }
}

@media screen and (max-width: 767px) {
  .scroll01 {
    overflow-x: scroll;
    overflow-y: hidden;
    padding-bottom: 10px;
  }

  .scroll01::-webkit-scrollbar { height: 8px; }
  .scroll01::-webkit-scrollbar-track { border-radius: 4px; background: #EFEFEF; }
  .scroll01::-webkit-scrollbar-thumb { border-radius: 4px; background: #666; }

  .scroll01Obj { min-width: 768px; }

  .scroll02Wrap01, .scroll02, .scroll02 img { height: 100px; }
}


/*--------------------------------------------------------------------
	layout
--------------------------------------------------------------------*/

.textLayout01>*:nth-child(n+2) { margin-top: 0.15em; }
.textLayout03>*:nth-child(n+2) { margin-top: 0.3em; }
.textLayout05>*:nth-child(n+2) { margin-top: 0.6em; }
.textLayout08>*:nth-child(n+2) { margin-top: 0.9em; }
.textLayout10>*:nth-child(n+2) { margin-top: 1.2em; }
.textLayout15>*:nth-child(n+2) { margin-top: 1.6em; }
.textLayout25>*:nth-child(n+2) { margin-top: 2.6em; }
.textLayout35>*:nth-child(n+2) { margin-top: 3.6em; }
.textLayout50>*:nth-child(n+2) { margin-top: 4.6em; }
.textLayout75>*:nth-child(n+2) { margin-top: 6.0em; }


/*--------------------------------------------------------------------
	button
--------------------------------------------------------------------*/

.buttonCommon01 {
  padding: 0 15px;
  transition-property: all;
  transition: 0.1s linear;
  box-sizing: border-box;
  display: inline-block;
  vertical-align: bottom;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  border-radius: 5px;
  overflow: hidden;
}

.buttonCommon01.size30 { height: 30px; line-height: 30px; font-size: 0.8rem; padding: 0 5px; }
.buttonCommon01.size35 { height: 35px; line-height: 35px; font-size: 0.9rem; padding: 0 10px; }
.buttonCommon01.size50 { height: 50px; line-height: 50px; font-size: 1.0rem; padding: 0 10px; }
.buttonCommon01.size55 { height: 55px; line-height: 52px; font-size: 1.0rem; }
.buttonCommon01.size65 { height: 65px; line-height: 62px; font-size: 1.1rem; }

.buttonCommon02,
.buttonCommon02 a {
  width: 140px;
  height: 140px;
}

.buttonCommon02 a {
  border-radius: 50%;
}

.buttonWhite01 { background-color: #FFF; color: #333 !important; }
.buttonWhite02 { background-color: #FFF; color: #333 !important; border: 1px solid #333; }
.buttonBlack01 { background-color: #000; color: #FFF !important; }
.buttonBlack02 { border: 1px solid #333; color: #333 !important; }
.buttonGray01  { background-color: #534E49; color: #FFF !important; }
.buttonRed01   { background-color: #C13221; color: #FFF !important; }
.buttonGreen01 { background-color: #98C451; color: #FFF !important; }
.buttonBlue01  { background-color: #717d94; color: #FFF !important; }

.buttonFont01 {
  font-size: 1.6rem;
}

.buttonCommon01.typeRound {
  border-radius: 100px;
}

@media screen and (min-width: 1251px) {
  .buttonCommon01:hover,
  .buttonCommon02:hover,
  a:hover .buttonCommon01 {
    opacity: 0.8;
  }

  .buttonCommon01.typeA {
    font-size: 0.86rem;
  }
}


/*--------------------------------------------------------------------
	ul
--------------------------------------------------------------------*/

.ulCommon01 {
  list-style: disc outside;
  padding-left: 1.5em;
}

.ulCommon01 li:nth-child(n+2) { margin-top: 3px; }

.ulCommon02>li { padding-left: 1.5em; }
.ulCommon02>li:before { content: "◆"; position: absolute; left: 0; }
.ulCommon02>li:nth-child(n+2) { margin-top: 3px; }

.ulCommon03>li { padding-left: 1.5em; }
.ulCommon03>li:before { content: "★"; position: absolute; left: 0; }
.ulCommon03>li:nth-child(n+2) { margin-top: 3px; }

.ulCommon04>li { padding-left: 1.5em; }
.ulCommon04>li:before { content: "※"; position: absolute; left: 0; }
.ulCommon04>li:nth-child(n+2) { margin-top: 3px; }

.olCommon01>li {
  margin-left: 2em;
  list-style: decimal-leading-zero outside;
}


/*--------------------------------------------------------------------
	mark
--------------------------------------------------------------------*/

.textMark01 {
  padding-left: 1.2em;
}

.textMark01:before {
  content: '※';
  position: absolute;
  left: 0;
}

.textMark02 {
  counter-reset: number;
  list-style: none;
}

.textMark02 li {
  padding-left: 1.8em;
  text-indent: -1.5em;
  position: relative;
}

.textMark02 li:nth-child(n+2) { margin-top: 3px; }

.textMark02 li:before {
  display: inline;
  counter-increment: number;
  content: "※"counter(number)"";
}

p.indent-1 {
  padding-left: 1em;
  text-indent: -1em;
}

.ffs { font-feature-settings: "palt"; }


/*--------------------------------------------------------------------
	toggle
--------------------------------------------------------------------*/

.toggleCommon01Contents {
  display: none;
}

.toggleCommon01Contents.isOpen {
  display: block;
}

.faqList01 {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.faqToggleWrap01 {
  border: 1px solid #DDD;
  background-color: rgba(255, 255, 255, 0.9);
}

.faqToggleWrap01 + .faqToggleWrap01 {
  margin-top: 12px;
}

.faqToggleQ01 {
  position: relative;
  cursor: pointer;
}

.faqToggleQ01:focus-visible {
  outline: 2px solid var(--brand-main);
  outline-offset: 2px;
}

.faqToggleQ01:before {
  content: "Q.";
  position: absolute;
  color: var(--brand-main);
}

.faqToggleQ01:after {
  content: "▼";
  position: absolute;
  right: 13px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.4rem;
  color: var(--brand-main);
}

.faqToggleQ01.activeToggle:after {
  content: "▲";
}

.faqToggleA01 {
  position: relative;
}

.faqToggleA01:before {
  content: "A.";
  position: absolute;
  font-weight: bold;
  color: var(--brand-sub);
}

.faqToggleA01:after {
  content: "";
  width: calc(100% - 20px);
  height: 1px;
  position: absolute;
  left: 10px;
  top: 0;
  background-color: #DDD;
}

@media screen and (min-width: 1251px) {
  .faqToggleQ01, .faqToggleA01 { padding: 15px 40px; }
  .faqToggleQ01:before, .faqToggleA01:before { left: 15px; }
}

@media screen and (min-width: 768px) and (max-width: 1250px) {
  .faqToggleQ01, .faqToggleA01 { padding: 10px 30px; }
  .faqToggleQ01:before, .faqToggleA01:before { left: 10px; }
}

@media screen and (max-width: 767px) {
  .faqToggleQ01, .faqToggleA01 { padding: 10px 30px; }
  .faqToggleQ01:before, .faqToggleA01:before { left: 10px; }
}


/*--------------------------------------------------------------------
	floatSlide
--------------------------------------------------------------------*/

.floatSlider {
  width: 100%;
  overflow: hidden;
}

.slideImg {
  float: left;
}

@media screen and (min-width: 1025px) {
  .floatSlider, .floatSlider img { height: 200px; }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .floatSlider, .floatSlider img { height: 130px; }
}

@media screen and (max-width: 767px) {
  .floatSlider, .floatSlider img { height: 80px; }
}


/*--------------------------------------------------------------------
	flex layout
--------------------------------------------------------------------*/

@media screen and (min-width: 1251px) {
  .flexCommonLayout01>*:first-child { width: 60%; }
  .flexCommonLayout01>*:last-child { width: calc(40% - 0.1px); }
  .flexCommonLayout01.typeA>*:first-child { width: calc(50% - 0.1px); }
  .flexCommonLayout01.typeA>*:last-child { width: 50%; }

  .flexCommon01.orderA>*:first-child,
  .flexCommon01.orderB>*:first-child { order: 2; }
  .flexCommon01.orderA>*:last-child,
  .flexCommon01.orderB>*:last-child { order: 1; }
}

@media screen and (max-width: 1250px) and (min-width: 768px) {
  .flexCommonLayout01>*:first-child { width: 60%; }
  .flexCommonLayout01>*:last-child { width: calc(40% - 0.1px); }
  .flexCommonLayout01.typeA>*:first-child { width: calc(50% - 0.1px); }
  .flexCommonLayout01.typeA>*:last-child { width: 50%; }

  .flexCommon01.orderA>*:first-child { order: 2; }
  .flexCommon01.orderA>*:last-child { order: 1; }
}

@media screen and (max-width: 767px) {
  .flexCommonLayout01>*:first-child { width: 100%; }
  .flexCommonLayout01>*:last-child { width: 100%; }
}


/*--------------------------------------------------------------------
	flex columns
--------------------------------------------------------------------*/

.flexList01>*:not(:last-child) {
  margin-right: 1em;
}

.flex2ColumnD>* { width: calc((100% - 10.1px) / 2); }
.flex2ColumnD>*:not(:nth-child(2n)) { margin-right: 10px; }
.flex2ColumnD>*:nth-child(n+3) { margin-top: 10px; }
.flex2ColumnD.typeA>*:first-child { display: none; }
.flex2ColumnD.typeA>*:not(:nth-child(2n)) { margin-right: 0; margin-left: 10px; }
.flex2ColumnD.typeA>*:nth-child(n+3) { margin-top: 0; }
.flex2ColumnD.typeA>*:nth-child(n+4) { margin-top: 10px; }

@media screen and (min-width: 1251px) {
  .flex2ColumnA>* { width: calc((100% - 40.1px) / 2); }
  .flex2ColumnA>*:nth-child(n+3) { margin-top: 40px; }

  .flex2ColumnB>* { width: calc((100% - 10.1px) / 2); }
  .flex2ColumnB>*:not(:nth-child(2n)) { margin-right: 10px; }
  .flex2ColumnB>*:nth-child(n+3) { margin-top: 10px; }

  .flex2ColumnC>* { width: calc((100% - 10.1px) / 2); }
  .flex2ColumnC>*:not(:nth-child(2n)) { margin-right: 10px; }
  .flex2ColumnC>*:nth-child(n+3) { margin-top: 10px; }

  .flex2ColumnF>* { width: calc((100% - 20.1px) / 2); }
  .flex2ColumnF>*:not(:nth-child(2n)) { margin-right: 20px; border-right: 1px dotted #7a7a7a; padding-right: 20px; }
  .flex2ColumnF>*:nth-child(n+3) { margin-top: 10px; }

  .flex3ColumnA>* { width: calc((100% - 60.1px) / 3); }
  .flex3ColumnA>*:not(:nth-child(3n)) { margin-right: 30px; }
  .flex3ColumnA>*:nth-child(n+4) { margin-top: 30px; }

  .flex3ColumnB>* { width: calc((100% - 40.1px) / 3); }
  .flex3ColumnB>*:not(:nth-child(3n)) { margin-right: 20px; }
  .flex3ColumnB>*:nth-child(n+4) { margin-top: 20px; }

  .flex4ColumnA>* { width: calc((100% - 60.1px) / 4); }
  .flex4ColumnA>*:not(:nth-child(4n)) { margin-right: 20px; }
  .flex4ColumnA>*:nth-child(n+5) { margin-top: 20px; }

  .flex4ColumnB>* { width: calc((100% - 60.1px) / 4); }
  .flex4ColumnB>*:not(:nth-child(4n)) { margin-right: 20px; }
  .flex4ColumnB>*:nth-child(n+5) { margin-top: 20px; }

  .flex5ColumnA>* { width: calc((100% - 40.1px) / 5); }
  .flex5ColumnA>*:not(:nth-child(5n)) { margin-right: 10px; }
  .flex5ColumnA>*:nth-child(n+6) { margin-top: 15px; }

  .flex6ColumnA>* { width: calc((100% - 50.1px) / 6); }
  .flex6ColumnA>*:not(:nth-child(6n)) { margin-right: 10px; }
  .flex6ColumnA>*:nth-child(n+7) { margin-top: 15px; }

  .flex6ColumnB>* { width: calc((100% - 100.1px) / 6); }
  .flex6ColumnB>*:not(:nth-child(6n)) { margin-right: 20px; }
  .flex6ColumnB>*:nth-child(n+7) { margin-top: 25px; }
}

@media screen and (max-width: 1250px) {
  .flex2ColumnB>* { width: 100%; }
  .flex2ColumnB>*:nth-child(n+2) { margin-top: 10px; }
}

@media screen and (max-width: 1250px) and (min-width: 768px) {
  .flex2ColumnA>* { width: calc((100% - 30.1px) / 2); }
  .flex2ColumnA>*:nth-child(n+3) { margin-top: 30px; }

  .flex2ColumnC>* { width: calc((100% - 10.1px) / 2); }
  .flex2ColumnC>*:not(:nth-child(2n)) { margin-right: 10px; }
  .flex2ColumnC>*:nth-child(n+3) { margin-top: 10px; }

  .flex2ColumnF>* { width: calc((100% - 30.1px) / 2); }
  .flex2ColumnF>*:not(:nth-child(2n)) { margin-right: 20px; border-right: 1px dotted #7a7a7a; padding-right: 20px; }
  .flex2ColumnF>*:nth-child(n+3) { margin-top: 30px; }

  .flex3ColumnA>* { width: calc((100% - 30.1px) / 3); }
  .flex3ColumnA>*:not(:nth-child(3n)) { margin-right: 15px; }
  .flex3ColumnA>*:nth-child(n+4) { margin-top: 15px; }

  .flex3ColumnB>* { width: calc((100% - 20.1px) / 3); }
  .flex3ColumnB>*:not(:nth-child(3n)) { margin-right: 10px; }
  .flex3ColumnB>*:nth-child(n+4) { margin-top: 20px; }

  .flex4ColumnA>* { width: calc((100% - 45.1px) / 4); }
  .flex4ColumnA>*:not(:nth-child(4n)) { margin-right: 15px; }
  .flex4ColumnA>*:nth-child(n+5) { margin-top: 15px; }

  .flex4ColumnB>* { width: calc((100% - 45.1px) / 4); }
  .flex4ColumnB>*:not(:nth-child(4n)) { margin-right: 15px; }
  .flex4ColumnB>*:nth-child(n+5) { margin-top: 15px; }

  .flex5ColumnA>* { width: calc((100% - 40.1px) / 5); }
  .flex5ColumnA>*:not(:nth-child(5n)) { margin-right: 10px; }
  .flex5ColumnA>*:nth-child(n+6) { margin-top: 10px; }

  .flex6ColumnA>* { width: calc((100% - 40.1px) / 5); }
  .flex6ColumnA>*:not(:nth-child(5n)) { margin-right: 10px; }
  .flex6ColumnA>*:nth-child(n+6) { margin-top: 10px; }

  .flex6ColumnB>* { width: calc((100% - 40.1px) / 3); }
  .flex6ColumnB>*:not(:nth-child(3n)) { margin-right: 20px; }
  .flex6ColumnB>*:nth-child(n+4) { margin-top: 30px; }
}

@media screen and (max-width: 1250px) {
  .flex2ColumnA.orderA>:nth-child(2) { order: 2; }
  .flex2ColumnA.orderA>*:nth-child(2) { order: 1; }
}

@media screen and (max-width: 767px) {
  .flex2ColumnA>* { width: 100%; }
  .flex2ColumnA>*:nth-child(n+2) { margin-top: 25px; }

  .flex2ColumnC>* { width: 100%; }
  .flex2ColumnC>*:nth-child(n+2) { margin-top: 10px; }

  .flex2ColumnF>* { width: 100%; }
  .flex2ColumnF>*:nth-child(n+2) { margin-top: 25px; }

  .flex3ColumnA>* { width: 100%; }
  .flex3ColumnA>*:nth-child(n+2) { margin-top: 25px; }

  .flex3ColumnB>* { width: calc((100% - 10.1px) / 2); }
  .flex3ColumnB>*:not(:nth-child(2n)) { margin-right: 10px; }
  .flex3ColumnB>*:nth-child(n+3) { margin-top: 10px; }

  .flex4ColumnA>* { width: 100%; }
  .flex4ColumnA>*:nth-child(n+2) { margin-top: 15px; }

  .flex4ColumnB>* { width: calc((100% - 10.1px) / 2); }
  .flex4ColumnB>*:not(:nth-child(2n)) { margin-right: 10px; }
  .flex4ColumnB>*:nth-child(n+3) { margin-top: 10px; }

  .flex5ColumnA>* { width: calc((100% - 10.1px) / 2); }
  .flex5ColumnA>*:not(:nth-child(2n)) { margin-right: 10px; }
  .flex5ColumnA>*:nth-child(n+3) { margin-top: 10px; }

  .flex6ColumnA>* { width: calc((100% - 10.1px) / 2); }
  .flex6ColumnA>*:not(:nth-child(2n)) { margin-right: 10px; }
  .flex6ColumnA>*:nth-child(n+3) { margin-top: 10px; }

  .flex6ColumnB>* { width: calc((100% - 20.1px) / 2); }
  .flex6ColumnB>*:not(:nth-child(2n)) { margin-right: 20px; }
  .flex6ColumnB>*:nth-child(n+3) { margin-top: 25px; }
}


/*--------------------------------------------------------------------
	loading
--------------------------------------------------------------------*/

.loading01All {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--brand-cream);
  z-index: 1000;
  transition: opacity 0.3s;
  pointer-events: none;
}

.loader01 {
  position: fixed;
  z-index: 1001;
  transition: opacity 0.8s;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.loaderLogo {
  position: relative;
  display: inline-block;
  white-space: nowrap;
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 6vw, 2.4rem);
  letter-spacing: 0.06em;
}

.loaderLogoBase {
  display: block;
  color: rgba(168, 84, 25, 0.18);
}

.loaderLogoFillWrap {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0;
  overflow: hidden;
  animation: loaderFill 1.8s cubic-bezier(0.65, 0, 0.35, 1) 1.5s forwards;
}

.loaderLogoFill {
  display: block;
  color: var(--brand-main);
}

@keyframes loaderFill {
  0%   { width: 0; }
  100% { width: 100%; }
}

/* 宿名を中心に8方向へ均等配置し、時計回りに順番にふわっと出現させる（0.18s刻み）。
   配置（.loaderDecoPos）と出現アニメーション（.loaderDeco）を分離し、
   文字の大きさに関わらず一定の間隔を保つ。 */

.loaderDecoPos {
  position: absolute;
  top: 50%;
  left: 50%;
}

.loaderDecoPosN  { transform: translate(-50%, calc(-50% - clamp(8.6rem, 7.5rem + 9vw, 14.4rem))); }
.loaderDecoPosNE { transform: translate(calc(-50% + clamp(7.7rem, 6.1rem + 8vw, 12.6rem)), calc(-50% - clamp(6.1rem, 4.8rem + 7vw, 10rem))); }
.loaderDecoPosE  { transform: translate(calc(-50% + clamp(11rem, 8.5rem + 11vw, 17rem)), -50%); }
.loaderDecoPosSE { transform: translate(calc(-50% + clamp(7.7rem, 6.1rem + 8vw, 12.6rem)), calc(-50% + clamp(6.1rem, 4.8rem + 7vw, 10rem))); }
.loaderDecoPosS  { transform: translate(-50%, calc(-50% + clamp(8.6rem, 7.5rem + 9vw, 14.4rem))); }
.loaderDecoPosSW { transform: translate(calc(-50% - clamp(7.7rem, 6.1rem + 8vw, 12.6rem)), calc(-50% + clamp(6.1rem, 4.8rem + 7vw, 10rem))); }
.loaderDecoPosW  { transform: translate(calc(-50% - clamp(11rem, 8.5rem + 11vw, 17rem)), -50%); }
.loaderDecoPosNW { transform: translate(calc(-50% - clamp(7.7rem, 6.1rem + 8vw, 12.6rem)), calc(-50% - clamp(6.1rem, 4.8rem + 7vw, 10rem))); }

.loaderDeco {
  display: block;
  width: clamp(56px, 10.5vw, 106px);
  height: auto;
  opacity: 0;
  animation: loaderDecoIn 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.loaderDecoSnow     { animation-delay: 0.18s; }
.loaderDecoMountain { animation-delay: 0.36s; }
.loaderDecoBird     { animation-delay: 0.54s; }
.loaderDecoSki       { animation-delay: 0.72s; }
.loaderDecoMaple     { animation-delay: 0.9s; }
.loaderDecoSansai    { animation-delay: 1.08s; }
.loaderDecoMushroom  { animation-delay: 1.26s; }

@keyframes loaderDecoIn {
  0%   { opacity: 0; transform: translateY(14px) scale(0.92); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

.loader01.isDone {
  opacity: 0;
  pointer-events: none;
}

.loading01All.isDone {
  opacity: 0;
  pointer-events: none;
}


/*--------------------------------------------------------------------
	inview
--------------------------------------------------------------------*/

.effectCommon01 {
  opacity: 0;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.070, 0.910, 0.620, 0.940);
}

.loading01Out .effectCommon01.inviewOn { opacity: 1; }

.effectCommon02 {
  opacity: 0;
  top: 20px;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.070, 0.910, 0.620, 0.940);
}

.loading01Out .effectCommon02.inviewOn { opacity: 1; top: 0; }

.effectCommon03 {
  opacity: 0;
  left: 20px;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.070, 0.910, 0.620, 0.940);
}

.loading01Out .effectCommon03.inviewOn { opacity: 1; left: 0; }

.effectCommon04 {
  opacity: 0;
  right: 20px;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.070, 0.910, 0.620, 0.940);
}

.loading01Out .effectCommon04.inviewOn { opacity: 1; right: 0; }

.effectCommon05 {
  opacity: 0;
  bottom: 20px;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.070, 0.910, 0.620, 0.940);
}

.loading01Out .effectCommon05.inviewOn { opacity: 1; bottom: 0; }

.tsSpeed01, .psSpeed01:before, .psSpeed01:after { transition-duration: .1s; }
.tsSpeed02, .psSpeed02:before, .psSpeed02:after { transition-duration: .2s; }
.tsSpeed03, .psSpeed03:before, .psSpeed03:after { transition-duration: .3s; }
.tsSpeed04, .psSpeed04:before, .psSpeed04:after { transition-duration: .4s; }
.tsSpeed05, .psSpeed05:before, .psSpeed05:after { transition-duration: .5s; }
.tsSpeed06, .psSpeed06:before, .psSpeed06:after { transition-duration: .6s; }
.tsSpeed07, .psSpeed07:before, .psSpeed07:after { transition-duration: .7s; }
.tsSpeed08, .psSpeed08:before, .psSpeed08:after { transition-duration: .8s; }
.tsSpeed09, .psSpeed09:before, .psSpeed09:after { transition-duration: .9s; }
.tsSpeed10, .psSpeed10:before, .psSpeed10:after { transition-duration: 1.0s; }
.tsSpeed11, .psSpeed11:before, .psSpeed11:after { transition-duration: 1.1s; }
.tsSpeed12, .psSpeed12:before, .psSpeed12:after { transition-duration: 1.2s; }
.tsSpeed13, .psSpeed13:before, .psSpeed13:after { transition-duration: 1.3s; }
.tsSpeed14, .psSpeed14:before, .psSpeed14:after { transition-duration: 1.4s; }
.tsSpeed15, .psSpeed15:before, .psSpeed15:after { transition-duration: 1.5s; }
.tsSpeed16, .psSpeed16:before, .psSpeed16:after { transition-duration: 1.6s; }
.tsSpeed17, .psSpeed17:before, .psSpeed17:after { transition-duration: 1.7s; }
.tsSpeed18, .psSpeed18:before, .psSpeed18:after { transition-duration: 1.8s; }
.tsSpeed19, .psSpeed19:before, .psSpeed19:after { transition-duration: 1.9s; }
.tsSpeed20, .psSpeed20:before, .psSpeed20:after { transition-duration: 2.0s; }
.tsSpeed21, .psSpeed21:before, .psSpeed21:after { transition-duration: 2.1s; }
.tsSpeed22, .psSpeed22:before, .psSpeed22:after { transition-duration: 2.2s; }
.tsSpeed23, .psSpeed23:before, .psSpeed23:after { transition-duration: 2.3s; }
.tsSpeed24, .psSpeed24:before, .psSpeed24:after { transition-duration: 2.4s; }
.tsSpeed25, .psSpeed25:before, .psSpeed25:after { transition-duration: 2.5s; }
.tsSpeed26, .psSpeed26:before, .psSpeed26:after { transition-duration: 2.6s; }
.tsSpeed27, .psSpeed27:before, .psSpeed27:after { transition-duration: 2.7s; }
.tsSpeed28, .psSpeed28:before, .psSpeed28:after { transition-duration: 2.8s; }
.tsSpeed29, .psSpeed29:before, .psSpeed29:after { transition-duration: 2.9s; }
.tsSpeed30, .psSpeed30:before, .psSpeed30:after { transition-duration: 3.0s; }

.tsDelay01,  .psDelay01:before,  .psDelay01:after  { transition-delay: .1s; }
.tsDelay011, .psDelay011:before, .psDelay011:after  { transition-delay: .11s; }
.tsDelay012, .psDelay012:before, .psDelay012:after  { transition-delay: .12s; }
.tsDelay013, .psDelay013:before, .psDelay013:after  { transition-delay: .13s; }
.tsDelay014, .psDelay014:before, .psDelay014:after  { transition-delay: .14s; }
.tsDelay015, .psDelay015:before, .psDelay015:after  { transition-delay: .15s; }
.tsDelay016, .psDelay016:before, .psDelay016:after  { transition-delay: .16s; }
.tsDelay017, .psDelay017:before, .psDelay017:after  { transition-delay: .17s; }
.tsDelay018, .psDelay018:before, .psDelay018:after  { transition-delay: .18s; }
.tsDelay019, .psDelay019:before, .psDelay019:after  { transition-delay: .19s; }
.tsDelay02,  .psDelay02:before,  .psDelay02:after   { transition-delay: .2s; }
.tsDelay021, .psDelay021:before, .psDelay021:after  { transition-delay: .21s; }
.tsDelay022, .psDelay022:before, .psDelay022:after  { transition-delay: .22s; }
.tsDelay023, .psDelay023:before, .psDelay023:after  { transition-delay: .23s; }
.tsDelay024, .psDelay024:before, .psDelay024:after  { transition-delay: .24s; }
.tsDelay025, .psDelay025:before, .psDelay025:after  { transition-delay: .25s; }
.tsDelay026, .psDelay026:before, .psDelay026:after  { transition-delay: .26s; }
.tsDelay027, .psDelay027:before, .psDelay027:after  { transition-delay: .27s; }
.tsDelay028, .psDelay028:before, .psDelay028:after  { transition-delay: .28s; }
.tsDelay029, .psDelay029:before, .psDelay029:after  { transition-delay: .29s; }
.tsDelay03,  .psDelay03:before,  .psDelay03:after   { transition-delay: .3s; }
.tsDelay031, .psDelay031:before, .psDelay031:after  { transition-delay: .31s; }
.tsDelay032, .psDelay032:before, .psDelay032:after  { transition-delay: .32s; }
.tsDelay033, .psDelay033:before, .psDelay033:after  { transition-delay: .33s; }
.tsDelay034, .psDelay034:before, .psDelay034:after  { transition-delay: .34s; }
.tsDelay035, .psDelay035:before, .psDelay035:after  { transition-delay: .35s; }
.tsDelay036, .psDelay036:before, .psDelay036:after  { transition-delay: .36s; }
.tsDelay037, .psDelay037:before, .psDelay037:after  { transition-delay: .37s; }
.tsDelay038, .psDelay038:before, .psDelay038:after  { transition-delay: .38s; }
.tsDelay039, .psDelay039:before, .psDelay039:after  { transition-delay: .39s; }
.tsDelay04,  .psDelay04:before,  .psDelay04:after   { transition-delay: .4s; }
.tsDelay05,  .psDelay05:before,  .psDelay05:after   { transition-delay: .5s; }
.tsDelay06,  .psDelay06:before,  .psDelay06:after   { transition-delay: .6s; }
.tsDelay07,  .psDelay07:before,  .psDelay07:after   { transition-delay: .7s; }
.tsDelay08,  .psDelay08:before,  .psDelay08:after   { transition-delay: .8s; }
.tsDelay09,  .psDelay09:before,  .psDelay09:after   { transition-delay: .9s; }
.tsDelay10,  .psDelay10:before,  .psDelay10:after   { transition-delay: 1.0s; }
.tsDelay11,  .psDelay11:before,  .psDelay11:after   { transition-delay: 1.1s; }
.tsDelay12,  .psDelay12:before,  .psDelay12:after   { transition-delay: 1.2s; }
.tsDelay13,  .psDelay13:before,  .psDelay13:after   { transition-delay: 1.3s; }
.tsDelay14,  .psDelay14:before,  .psDelay14:after   { transition-delay: 1.4s; }
.tsDelay15,  .psDelay15:before,  .psDelay15:after   { transition-delay: 1.5s; }
.tsDelay16,  .psDelay16:before,  .psDelay16:after   { transition-delay: 1.6s; }
.tsDelay17,  .psDelay17:before,  .psDelay17:after   { transition-delay: 1.7s; }
.tsDelay18,  .psDelay18:before,  .psDelay18:after   { transition-delay: 1.8s; }
.tsDelay19,  .psDelay19:before,  .psDelay19:after   { transition-delay: 1.9s; }
.tsDelay20,  .psDelay20:before,  .psDelay20:after   { transition-delay: 2.0s; }

@media screen and (min-width: 768px) {
  .tsDelay01po, .psDelay01po:before, .psDelay01po:after { transition-delay: .1s; }
  .tsDelay02po, .psDelay02po:before, .psDelay02po:after { transition-delay: .2s; }
  .tsDelay03po, .psDelay03po:before, .psDelay03po:after { transition-delay: .3s; }
  .tsDelay04po, .psDelay04po:before, .psDelay04po:after { transition-delay: .4s; }
  .tsDelay05po, .psDelay05po:before, .psDelay05po:after { transition-delay: .5s; }
  .tsDelay06po, .psDelay06po:before, .psDelay06po:after { transition-delay: .6s; }
  .tsDelay07po, .psDelay07po:before, .psDelay07po:after { transition-delay: .7s; }
  .tsDelay08po, .psDelay08po:before, .psDelay08po:after { transition-delay: .8s; }
  .tsDelay09po, .psDelay09po:before, .psDelay09po:after { transition-delay: .9s; }
  .tsDelay10po, .psDelay10po:before, .psDelay10po:after { transition-delay: 1.0s; }
}


/*--------------------------------------------------------------------
	inview – title animation
--------------------------------------------------------------------*/

.mastTitle01 span { opacity: 0; }
.loading01Out .mastTitle01.inviewOn span { animation: letter-glow 1.6s 0s ease both; }
.loading01Out .mastTitle01.typeA.inviewOn span { animation: letter-glow2 1.6s 0s ease both; }

.loading01Out .mastTitle01.inviewOn span:nth-child(1)  { animation-delay: 0.05s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(2)  { animation-delay: 0.1s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(3)  { animation-delay: 0.15s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(4)  { animation-delay: 0.2s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(5)  { animation-delay: 0.25s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(6)  { animation-delay: 0.3s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(7)  { animation-delay: 0.35s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(8)  { animation-delay: 0.4s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(9)  { animation-delay: 0.45s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(10) { animation-delay: 0.5s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(11) { animation-delay: 0.55s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(12) { animation-delay: 0.6s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(13) { animation-delay: 0.65s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(14) { animation-delay: 0.7s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(15) { animation-delay: 0.75s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(16) { animation-delay: 0.8s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(17) { animation-delay: 0.85s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(18) { animation-delay: 0.9s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(19) { animation-delay: 0.95s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(20) { animation-delay: 1s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(21) { animation-delay: 1.05s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(22) { animation-delay: 1.1s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(23) { animation-delay: 1.15s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(24) { animation-delay: 1.2s; }
.loading01Out .mastTitle01.inviewOn span:nth-child(25) { animation-delay: 1.25s; }

.effectTxt01 span { opacity: 0; display: inline-block; }
.loading01Out .effectTxt01.inviewOn span { animation: letter-glow3 1.6s 0s ease both; }

.loading01Out .effectTxt01.inviewOn span:nth-child(1)  { animation-delay: 0.05s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(2)  { animation-delay: 0.1s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(3)  { animation-delay: 0.15s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(4)  { animation-delay: 0.2s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(5)  { animation-delay: 0.25s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(6)  { animation-delay: 0.3s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(7)  { animation-delay: 0.35s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(8)  { animation-delay: 0.4s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(9)  { animation-delay: 0.45s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(10) { animation-delay: 0.5s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(11) { animation-delay: 0.55s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(12) { animation-delay: 0.6s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(13) { animation-delay: 0.65s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(14) { animation-delay: 0.7s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(15) { animation-delay: 0.75s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(16) { animation-delay: 0.8s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(17) { animation-delay: 0.85s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(18) { animation-delay: 0.9s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(19) { animation-delay: 0.95s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(20) { animation-delay: 1s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(21) { animation-delay: 1.05s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(22) { animation-delay: 1.1s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(23) { animation-delay: 1.15s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(24) { animation-delay: 1.2s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(25) { animation-delay: 1.25s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(26) { animation-delay: 1.3s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(27) { animation-delay: 1.35s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(28) { animation-delay: 1.4s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(29) { animation-delay: 1.45s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(30) { animation-delay: 1.5s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(31) { animation-delay: 1.55s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(32) { animation-delay: 1.6s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(33) { animation-delay: 1.65s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(34) { animation-delay: 1.7s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(35) { animation-delay: 1.75s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(36) { animation-delay: 1.8s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(37) { animation-delay: 1.85s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(38) { animation-delay: 1.9s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(39) { animation-delay: 1.95s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(40) { animation-delay: 2s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(41) { animation-delay: 2.05s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(42) { animation-delay: 2.1s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(43) { animation-delay: 2.15s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(44) { animation-delay: 2.2s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(45) { animation-delay: 2.25s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(46) { animation-delay: 2.3s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(47) { animation-delay: 2.35s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(48) { animation-delay: 2.4s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(49) { animation-delay: 2.45s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(50) { animation-delay: 2.5s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(51) { animation-delay: 2.55s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(52) { animation-delay: 2.6s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(53) { animation-delay: 2.65s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(54) { animation-delay: 2.7s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(55) { animation-delay: 2.75s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(56) { animation-delay: 2.8s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(57) { animation-delay: 2.85s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(58) { animation-delay: 2.9s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(59) { animation-delay: 2.95s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(60) { animation-delay: 3s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(61) { animation-delay: 3.05s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(62) { animation-delay: 3.1s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(63) { animation-delay: 3.15s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(64) { animation-delay: 3.2s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(65) { animation-delay: 3.25s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(66) { animation-delay: 3.3s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(67) { animation-delay: 3.35s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(68) { animation-delay: 3.4s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(69) { animation-delay: 3.45s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(70) { animation-delay: 3.5s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(71) { animation-delay: 3.55s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(72) { animation-delay: 3.6s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(73) { animation-delay: 3.65s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(74) { animation-delay: 3.7s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(75) { animation-delay: 3.75s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(76) { animation-delay: 3.8s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(77) { animation-delay: 3.85s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(78) { animation-delay: 3.9s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(79) { animation-delay: 3.95s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(80) { animation-delay: 4s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(81) { animation-delay: 4.05s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(82) { animation-delay: 4.1s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(83) { animation-delay: 4.15s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(84) { animation-delay: 4.2s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(85) { animation-delay: 4.25s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(86) { animation-delay: 4.3s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(87) { animation-delay: 4.35s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(88) { animation-delay: 4.4s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(89) { animation-delay: 4.45s; }
.loading01Out .effectTxt01.inviewOn span:nth-child(90) { animation-delay: 4.5s; }

@keyframes letter-glow {
  0%   { opacity: 0; text-shadow: 0px 0px 1px rgba(255,255,255,0.1); }
  66%  { opacity: 0.9; text-shadow: 0px 0px 20px rgba(255,255,255,0.9); }
  77%  { opacity: 0.5; }
  100% { opacity: 1; text-shadow: 0px 0px 20px rgba(255,255,255,0); }
}

@keyframes letter-glow2 {
  0%   { opacity: 0; text-shadow: 0px 0px 1px rgba(255,255,255,0.1); }
  66%  { opacity: 0.9; text-shadow: 0px 0px 20px rgba(255,255,255,0.9); }
  77%  { opacity: 0.5; }
  85%  { opacity: 1; text-shadow: 0px 0px 20px rgba(255,255,255,0); }
  100% { opacity: 1; }
}

@keyframes letter-glow3 {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}


/*--------------------------------------------------------------------
	modal
--------------------------------------------------------------------*/

.modalBox01 {
  display: none;
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 20001;
  overflow-y: scroll;
}

.modalBg01 {
  background-color: rgba(255, 255, 255, 0.7);
  height: 100%;
  width: 100%;
}

.modalInner01 {
  background-color: #FFF;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 15px rgba(100, 100, 100, 0.1);
}

.modalClose01 {
  cursor: pointer;
  position: absolute;
  right: 0;
  top: -40px;
  font-size: 3rem;
  color: #666;
}

@media screen and (min-width: 768px) {
  .modalInner01 { font-size: 0.9rem; line-height: 1.6em; }
  .modalInner01Pack01 { width: 700px; padding: 20px; }
}

@media screen and (max-width: 767px) {
  .modalInner01 { font-size: 0.8rem; line-height: 1.4em; margin: 40px 0 20px; }
  .modalInner01Pack01 { width: 90vw; padding: 15px; }
}


/*--------------------------------------------------------------------
	brand color（サイト固有：ペンションかおる リニューアル用）
	既存の fcGray01/02, bgGray01〜04, buttonWhite01 等の命名連番に倣い追記。
	値は common/css/structure.css の :root --brand-* を参照する。
--------------------------------------------------------------------*/

.fcBrand01 { color: var(--brand-main) !important; }
.fcBrand02 { color: var(--brand-sub) !important; }
.fcBrand03 { color: var(--brand-ice) !important; }
.fcBrand05 { color: var(--brand-food) !important; }
.fcBrand06 { color: var(--brand-spring) !important; }
.fcBrand07 { color: var(--brand-autumn) !important; }

.bgBrand01 { background-color: var(--brand-main) !important; }
.bgBrand02 { background-color: var(--brand-sub) !important; }
.bgBrand03 { background-color: var(--brand-cream) !important; }

.borderBrand01 { border-color: var(--brand-main); }
.borderBrand02 { border-color: var(--brand-sub); }

.buttonBrand01 { background-color: var(--brand-main); color: #FFF !important; }
.buttonBrand02 { background-color: var(--brand-sub); color: #FFF !important; }
.buttonBrand03 { background-color: #FFF; color: var(--brand-main) !important; border: 1px solid var(--brand-main); }
.buttonBrand04 { background-color: var(--brand-ice); color: #FFF !important; }
.buttonBrand05 { background-color: var(--brand-food); color: #FFF !important; }


/*--------------------------------------------------------------------
	photo gallery zoom（.galleryZoom 内の写真をクリックで拡大表示）
--------------------------------------------------------------------*/

.galleryZoom img { cursor: zoom-in; transition: transform .3s; }
.galleryZoom img:hover { transform: scale(1.05); }

.galleryZoomBox {
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 20001;
  background-color: rgba(0, 0, 0, .85);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s;
}
.galleryZoomBox.isOpen { opacity: 1; visibility: visible; }

.galleryZoomImg {
  max-width: 90vw;
  max-height: 85vh;
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(0, 0, 0, .4);
}

.galleryZoomClose,
.galleryZoomPrev,
.galleryZoomNext {
  position: absolute;
  color: #FFF;
  background: none;
  border: none;
  cursor: pointer;
  line-height: 1;
}
.galleryZoomClose { top: 15px; right: 20px; font-size: 2.5rem; }
.galleryZoomPrev,
.galleryZoomNext { top: 50%; transform: translateY(-50%); font-size: 3rem; padding: 10px; }
.galleryZoomPrev { left: 10px; }
.galleryZoomNext { right: 10px; }

@media screen and (max-width: 767px) {
  .galleryZoomClose { font-size: 2rem; top: 10px; right: 12px; }
  .galleryZoomPrev,
  .galleryZoomNext { font-size: 2rem; top: auto; bottom: 20px; transform: none; }
}


/*--------------------------------------------------------------------
	料金表（.tableCommon01.typePrice）：金額を読み比べやすいよう、PCでもセルを中央揃えにする
--------------------------------------------------------------------*/
.tableCommon01.typePrice td { text-align: center; }


/*--------------------------------------------------------------------
	メニュー一覧（.menuList01）：品名＋補足を左、価格を右に並べ、点線で区切る
--------------------------------------------------------------------*/
.menuList01Item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px dotted #BBB;
}
.menuList01Name { font-weight: bold; }
.menuList01Note {
  display: block;
  font-weight: normal;
  font-size: 0.8em;
  color: #666;
}
.menuList01Price {
  flex-shrink: 0;
  font-weight: bold;
  color: var(--brand-food);
}


/*--------------------------------------------------------------------
	お知らせ枠（.noticeBox01）：営業期間・値上げ予定など、特に目立たせたい案内用
--------------------------------------------------------------------*/
.noticeBox01 { border: 2px solid var(--brand-food); }
