:root {
  --main-bk: #222;
  --main-color: #bea393;
  --sub-color: #eeecee;
  --sub-color2: #cdcace;
  --brdr-color: #aeaeae;
  --st-easing: cubic-bezier(0, 0.315, 0.155, 0.995);
}

html,
body {
  background-color: var(--main-color);
  font-family: noto-sans-cjk-jp, "Helvetica Neue", Arial, "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  /*font-family: '游明朝','Yu Mincho', '游明朝体', 'YuMincho','ヒラギノ明朝 Pro W3', 'Hiragino Mincho Pro', 'ＭＳ Ｐ明朝', 'MS PMincho', serif;*/
  font-weight: 400;
  font-size: 62.5%;
  line-height: 1.75;
  letter-spacing: 0.1rem;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "palt";
}

/*html {
  visibility: hidden;
}

html.wf-active,
html.loading-delay {
  visibility: visible;
}*/

body.hidden {
  overflow: hidden;
}

figure {
  margin: 40px 0;
}

figcaption {
  font-size: 1.3rem;
  color: rgb(50,50,50);
  text-align: center;
}

::selection
{
    background: #222;
    color: var(--main-color);
}

.pc-only {
  display: block;
}

.sp-only {
  display: none;
}

/*共通css*/
.Space-Grotesk-r {
  font-family: 'Space Grotesk', serif;
  font-weight: 400;
}

.Space-Grotesk {
  font-family: 'Space Grotesk', serif;
  font-weight: 500;
}

/*カレンダー*/
#calendar {
  border-top: 1px solid #5a311b;
  padding-top: 30px;
}

#calendar p,
#calendar a {
  color: #5a311b;
}

.fc-daygrid-event-dot { 
  display: none !important;
}

.fc-daygrid-dot-event { 
  padding: 1px 3px !important;
}

.fc .fc-button-primary:not(:disabled):active,
.fc .fc-button-primary:not(:disabled).fc-button-active {
  background-color: #5c3a28;
  border: none;
}

.fc-direction-ltr .fc-button-group > .fc-button:not(:first-child) {
  background-color: #644638;
  border: none;
}

.fc-direction-ltr .fc-button-group>.fc-button,
.fc-direction-ltr .fc-toolbar>*>:not(:first-child) {
  background-color: #836659;
  border: none;
}

.fc-theme-standard .fc-scrollgrid,
.fc-theme-standard td,
.fc-theme-standard th {
  border: 1px solid #a28e80;
}

.fc-theme-standard .fc-scrollgrid {
  border-right: none;
  border-bottom: none;
}

.retocos-cal { 
  background-color: #4f4948;
  color: #fff; 
}

.fc .fc-toolbar-title {
  font-size: 2.4rem!important;
  margin-bottom: 5px!important;
  color: #5a311b;
}

.fc-direction-ltr .fc-button-group>.fc-button,
.fc-direction-ltr .fc-toolbar>*>:not(:first-child) {
  font-size: 1.5rem!important;
}

.fc-direction-ltr .fc-daygrid-event.fc-event-start,
.fc-direction-rtl .fc-daygrid-event.fc-event-end,
.fc-direction-ltr .fc-daygrid-event.fc-event-end,
.fc-direction-rtl .fc-daygrid-event.fc-event-start {
  border: none;
  padding: 0.5em;
}

.fc-daygrid-block-event .fc-event-time,
.fc-daygrid-block-event .fc-event-title {
  letter-spacing: 0;
}

p {
  font-size: 1.6rem;
  color: var(--main-bk);
}

a {
  font-size: 1.4rem;
  color: var(--main-bk);
  text-decoration: none;
  transition: color .3s;
  cursor: pointer;
  transition: .5s var(--st-easing);
}

a:hover {
  color: var(--main-bk);
  opacity: 0.5;
  text-decoration: none;
}

a.line {
  text-decoration: underline;
}

.btn {
  margin: 10px 0 0;
  padding: 10px 50px;
  position: relative;
  display: inline-block;
  font-size: 1.2rem;
  border: 1px solid var(--main-bk);
  cursor: pointer;
  margin-bottom: 10px;
}

/*.btn:after {
  content: "";
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  bottom: 0;
  background-color: #838383;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform .4s var(--st-easing);
}*/

.comingsoon .btn:after {
  display: none;
}

.box:hover,
.btn:hover {
  opacity: 1;
}

.box:hover .btn:after,
.btn:hover:after {
  transform-origin: left top;
  transform: scale(1, 1);
}

.btn.bk {
  background-color: #000;
  color: var(--main-color);
}

.btn.bk:hover {
  background-color: var(--main-color);
  color: #333;
}

.btn-sq {
  border: 1px solid var(--brdr-color);
  border-radius: 2px;
  padding: 7px 70px 5px;
  display: inline-block;
  text-align: center;
}

.btn-sq:hover {
  opacity: 1;
  background-color: rgb(240,240,240);
}

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

img {
  width: 100%;
  margin-bottom: 20px;
  display: block;
}

.thum {
  background: no-repeat center center / cover;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.5;
  font-weight: 400;
  color: var(--main-bk);
  letter-spacing: 0.2rem;
}

h1 {
  font-size: 5.4rem;
  margin-bottom: 30px;
}

h2 {
  font-size: 3.6rem;
  line-height: 1.5;
  margin-bottom: 35px;
}

h2 span {
  font-size: 0.65em;
  display: block;
}

h2.title {
  font-size: 3.5vw;
}

h2.title .sub {
  font-size: 0.65em;
  display: block;
  margin-bottom: 20px;
}

h3.title {
  font-size: 2.8rem;
  margin-bottom: 60px;
}

h3.title .sub {
  font-size: 1.3rem;
  display: block;
  font-family: 'Space Grotesk', noto-sans-cjk-jp, "Helvetica Neue", Arial, "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-weight: 500;
  letter-spacing: 0;
}

h3 {
  font-size: 2.8rem;
  margin-bottom: 20px;
}

h4 {
  font-size: 2.1rem;
  letter-spacing: 0.1rem;
  margin-bottom: 20px;
}

h4 span {
  font-size: 0.9em;
}

h5 {
  font-size: 1.8rem;
  margin-bottom: 10px;
}

h6 {
  font-size: 1.6rem;
  margin-bottom: 10px;
}

.bk-head {
  padding: 5px 10px;
  background-color: #000;
  color: var(--main-color);
  display: inline-block;
}

.brdr-btm-head {
  font-weight: 700;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(0,0,0,1);
  display: inline-block;
}

.section {
  width: 94%;
  /*max-width: 960px;*/
  margin: 0 auto 100px;
  padding-top: 80px;
}

dl {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
}

dl dt {
  font-size: 1.6rem;
  width: 100px;
  margin-right: 20px;
}

dl dd {
  font-size: 1.6rem;
  width: calc(100% - 120px);
}

.col2,
.col3,
.col4 {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
}

/*2列レイアウト*/
.col2 .box {
  width: calc(50% - 10px);
  margin-right: 20px;
}

.col2 .box:nth-of-type(2n) {
  margin-right: 0;
}

/*3列レイアウト*/
.col3 .box {
  width: calc((100% / 3) - 60px);
  margin-right: 90px;
  margin-bottom: 20px;
}

.col3 .box:nth-of-type(3n) {
  margin-right: 0;
}

/*4列レイアウト*/
.col4 {
  width: 100%;
  margin-bottom: 30px;
}

.col4  .box {
  width: calc(25% - 30px);
  margin-right: 40px;
  margin-bottom: 30px;
}

.col4 .box:nth-of-type(4n) {
  margin-right: 0;
}

.col4 .box img {
  width: 100%;
  height: calc(25vw - 55px);
  max-height: 205px;
  object-fit: cover;
  margin-bottom: 10px;
}

.col4 .box p {
  font-size: 1.2rem;
}

.col4 .box p.min {
  font-size: 1rem;
}

/*3:7のコンテンツ*/
.left-container {
  width: 300px;
  margin-right: 50px;
}

.right-container {
  width: calc(100% - 350px);
}

.right-container .info-container {
  margin-bottom: 60px;
}

.right-container .info-container .btn {
  font-size: 1.6rem;
}

.hero-image {
  width: 100%;
  height: 100vh;
  position: relative;
  background: no-repeat center center / cover;
  align-items: center;
  justify-content: center;
  margin-bottom: 70px;
}

.hero-image h1 {
  font-size: 7rem;
  line-height: 1;
  color: #fff;
  text-align: center;
  display: inline-block;
  letter-spacing: 0.5rem;
}

.hero-image h1 span {
  font-size: 0.4em;
  letter-spacing: 0.25rem;
  display: block;
}

.title-wrapper {
  margin-top: 120px;
}

.title-wrapper h2 {
  font-size: 5.4rem;
  line-height: 1.25;
  border: none;
  text-align: center;
}

.title-wrapper h2 span {
  font-size: 0.35em;
}

.vertical-title {
  writing-mode: vertical-rl;
  font-feature-settings: normal;
  position: absolute;
  top: 80px;
}

.vertical-title.left {
  left: 40px;
}

.vertical-title.right {
  right: 40px;
}

.cover-image.inview {
  overflow: hidden;
  position: relative;
}

.cover-image.inview:after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: #0f1518;
  z-index: 50;
  transition: 1s var(--st-easing) .1s;
}

.cover-image.inview.is-show:after {
  transform: translateX(100%);
}

.inview.normalanm {
  opacity: 0;
  transition: opacity .5s ease-in-out 3s;
}

.inview.normalanm.is-show {
  opacity: 1;
}

/*個別css*/
header {
  width: 100%;
  height: 80px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
}

header .logo {
  display: block;
  width: 105px;
  position: absolute;
  top: 25px;
  left: 30px;
  bottom: 0;
  margin: auto 0;
}

header .logo img {
  margin: 0;
}

header .menu-btn {
  width: 40px;
  height: 20px;
  position: absolute;
  top: 32px;
  right: 20px;
  cursor: pointer;
  display: none;
}

header .menu-btn span {
  width: 30px;
  height: 1px;
  background-color: var(--main-bk);
  position: absolute;
  right: 5px;
  transition: .3s var(--st-easing);
}

header .menu-btn span:nth-of-type(1) {
  top: 5px;
}

header .menu-btn span:nth-of-type(2) {
  bottom: 5px;
}

header .menu-btn.active span:nth-of-type(1) {
  top: 9px;
  transform: rotate(-30deg);
}

header .menu-btn.active span:nth-of-type(2) {
  bottom: 9px;
  transform: rotate(30deg);
}

header .g-menu {
  position: absolute;
  top: 45px;
  right: 50px;
  bottom: 0;
  margin: auto 0;
}

header .g-menu a {
  margin-left: 30px;
  letter-spacing: 0;
  position: relative;
}

header .g-menu a:hover {
  opacity: 1;
}

header .g-menu a:after {
  content: "";
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  bottom: 0;
  background-color: var(--main-bk);
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform .3s;
}

header .g-menu a:hover:after {
  transform-origin: left top;
  transform: scale(1, 1);
}

.menu {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 900;
  background-color: #cdcace;
  overflow-y: scroll;
  opacity: 0;
  pointer-events: none;
  transition: .3s var(--st-easing);
}

.menu.active {
  opacity: 1;
  pointer-events: auto;
}

.menu .menu-list {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  margin-left: 5px;
  margin-right: 70px;
}

.menu .section .menu-list a {
  font-size: 2.4rem;
  line-height: 1.5;
  margin: 0 0 10px;
}

content {
  width: 100%;
}

.top {
  width: 100%;
  height: 100vh;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.top .logotype {
  width: 3.5vw;
  height: 35vh;
  object-fit: contain;
  position: absolute;
  top: 18%;
  right: 20%;
  z-index: 1000;
}

.top .mark-v {
  width: 70%;
  max-width: 70vw;
  max-height: 62vh;
  transform: translate3d(2%,-3%,0);
  object-fit: contain;
  margin-bottom: 0;
}

.top .mark-v.pc {
  display: block;
}

.top .mark-v.sp {
  display: none;
}

.top .mark-v.inview {
  opacity: 0;
  filter: blur(10px);
  transition: opacity .5s ease-in-out 1s, filter .5s ease-in-out 1s;
}

.top .mark-v.inview.is-show {
  opacity: 1;
  filter: blur(0);
}

.top .sns-flowt,
.top .brdr-down {
  position: absolute;
}

.sns-flowt {
  width: 50px;
  height: 100px;
  top: 0;
  right: 30px;
  bottom: 10%;
  margin: auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.top .brdr-down {
  right: 45px;
  bottom: 50px;
  margin: 0 auto;
  padding-bottom: 80px;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  pointer-events: auto;
}

.top .brdr-down p {
  display: block;
  writing-mode: vertical-rl;
  font-size: 1rem;
}

.top .brdr-down:after {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 3px;
  content: '';
  width: 1px;
  height: 60px;
  background: rgb(90,90,90);
  transform: scale(1, 0);
  transform-origin: right top;
  margin: 0 auto;
  animation: scrDownLoop 4s infinite;
}

@keyframes scrDownLoop {
  0% {
      transform: scale(1, 0);
      transform-origin: right top;
    }
  20% {
      transform: scale(1, 1);
    }
  80% {
      transform: scale(1, 1);
    }
  100% {
      transform-origin: right bottom;
      transform: scale(1, 0);
    }
}

.scr-trg {
  width: 60px;
  height: 60px;
  border: none;
  border-radius: 50%;
  background-color: #000;
  position: fixed;
  left: 40px;
  bottom: 40px;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: .5s;
}

.scr-trg .arrow-container {
  width: 100%;
  height: 100%;
  overflow: hidden;
  text-align: center;
}

.scr-trg .arrow-container div {
  width: 100%;
  height: 100%;
  position: relative;
  transition: .5s;
}

.scr-trg span {
  width: 10px;
  height: 1px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  background-color: var(--main-color);
}

.scr-trg .go-main-slide span:nth-of-type(1) {
  transform: rotate(-135deg);
  top: 4px;
  left: -7px;
}

.scr-trg .go-main-slide span:nth-of-type(2) {
  transform: rotate(135deg);
  top: 4px;
  right: -7px;
}

.scr-trg .go-top span:nth-of-type(1) {
  transform: rotate(-45deg);
  left: -7px;
}

.scr-trg .go-top span:nth-of-type(2) {
  transform: rotate(45deg);
  right: -7px;
}

.scr-trg.active .arrow-container div {
  transform: translateY(-100%);
  transition: .5s;
}

.main-slide {
  width: 100%;
  height: 55vw;
  margin-bottom: 0;
  position: relative;
}

.main-slide .swiper-container {
  width: 100%;
  height: 100%;
}

.main-slide .swiper-container .swiper-slide .image-container {
  width: 100%;
  height: 100%;
  background: no-repeat center center / cover;
}

.main-slide .swiper-ctr-wrapper {
  width: 60px;
  height: 20px;
  position: absolute;
  top: 0;
  left: 50px;
  bottom: 0;
  margin: auto 0;
  z-index: 500;
  padding-right: 50px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.main-slide .swiper-pagination {
  color: var(--main-color);
  font-style: italic;
  font-size: 1.3rem;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  position: static;
}

.main-slide .swiper-ctr-wrapper .button-next {
  width: 50px;
  height: 10px;
  position: relative;
  bottom: 3px;
  cursor: pointer;
}

.main-slide .swiper-ctr-wrapper .button-next:hover {
  opacity: 0.5;
}

.main-slide .swiper-ctr-wrapper .button-next:before {
  content: "";
  width: 20px;
  height: 1px;
  background-color: var(--main-color);
  position: absolute;
  right: 0;
  bottom: 0;
}

.main-slide .swiper-ctr-wrapper .button-next:after {
  content: "";
  width: 11px;
  height: 1px;
  background-color: var(--main-color);
  position: absolute;
  right: 0;
  bottom: 3px;
  transform: rotate(30deg);
}

.message .text-block {
  width: 100%;
  height: 40vw;
  writing-mode: vertical-rl;
  font-feature-settings: normal;
}

.message .text-block p {
  font-size: 2.1vw;
  line-height: 1.735;
  text-align: justify;
}

.tour {
  width: 100%;
  position: relative;
}

.tour .col2 {
  align-items: flex-end;
}

.tour.program2 .col2 {
  flex-direction: row-reverse;
}

.tour .cover-image {
  width: 55%;
  height: 43vw;
  background: no-repeat center center / cover;
}

.tour.program1 .cover-image {
  background-image: url(assets/img/top/tour1.jpg);
}

.tour.program2 .cover-image {
  background-image: url(assets/img/top/tour2.jpg);
}

.tour .info-block {
  width: 24%;
  margin: 0 0 0 4%;
}

.tour.program2 .info-block {
  margin: 0 4% 0 0;
}

.tour .vertical-title span {
  font-size: 1vw;
}

.tour .vertical-title h2 {
  font-size: 3vw;
}

.tour .info-block p {
  font-size: 1vw;
  margin-bottom: 20px;
  text-align: justify;
}

.tour .info-block .btn {
  width: 100%;
  padding: 10px 0;
  text-align: center;
  margin-bottom: 0;
}

.concept {
  justify-content: space-between;
  flex-direction: row-reverse;
  position: relative;
}

.concept:after {
  content: "";
  width: 1px;
  height: calc(100% - 80px);
  top: 80px;
  left: 0;
  right: 0;
  margin: 0 auto;
  background-color: rgb(100,100,100);
  position: absolute;
}

.concept .info-block {
  width: calc(50% - 50px);
  height: 40vw;
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-start;
  align-items: flex-start;
}

.concept .info-block .title {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  width: 7vw;
  margin-left: 1vw;
}

.concept .info-block .title img {
  transform: translateX(1vw);
  margin-bottom: 0;
}

.concept .info-block .title h4 {
  writing-mode: vertical-rl;
  font-feature-settings: normal;
  margin: 0;
}

.concept .info-block .title h4 span {
  font-size: 0.6em;
}

.concept .info-block .text-block {
  width: calc(100% - 7vw);
  height: 100%;
  writing-mode: vertical-rl;
  font-feature-settings: normal;
}

.concept .info-block p {
  font-size: 1.4vw;
  text-align: justify;
}

.concept .info-block p span {
  font-size: 0.6em;
}

footer {
  width: calc(100% - 100px);
  position: relative;
  background-color: #000;
  padding: 80px 50px 120px;
}

footer .info-block {
  width: 40%;
  margin-bottom: 60px;
}

footer .poet-block {
  color: var(--main-color);
  font-size: 2.7vw;
  letter-spacing: 0;
  line-height: 1.25;
  margin-bottom: 25px;
}

footer .member-list {
  color: var(--main-color);
  font-size: 1vw;
  margin-bottom: 30px;
}

footer .logo {
  width: 175px;
  position: absolute;
  top: 80px;
  right: 50px;
}

footer .link-wrapper {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 200px;
}

footer .link-wrapper .sns-list {
  text-align: right;
}

footer .link-wrapper .link-list a {
  margin-bottom: 5px;
  position: relative;
  padding-right: 15px;
}

footer .link-wrapper .link-list a:after {
  content: "";
  width: 10px;
  height: 10px;
  background: no-repeat center center / contain url(assets/img/svg/arrow.svg);
  top: 1px;
  right: 0;
  bottom: 0;
  position: absolute;
  margin: auto 0;
}

footer .link-wrapper .link-list a,
footer .link-wrapper .sns-list a,
footer .link-wrapper .sns-list h5 {
  display: block;
  color: var(--main-color);
}

footer .go-up {
  width: 50px;
  height: 55px;
  position: absolute;
  right: 55px;
  bottom: 90px;
  margin: 0;
  cursor: pointer;
}

footer .go-up span {
  width: 30px;
  height: 1px;
  background-color: var(--main-color);
  position: absolute;
  top: 10px;
  transition: .3s var(--st-easing);
}

footer .go-up span:nth-of-type(1) {
  left: -7px;
  transform: rotate(-45deg);
}

footer .go-up span:nth-of-type(2) {
  right: -7px;
  transform: rotate(45deg);
}

footer .go-up p {
  font-size: 1rem;
  color: var(--main-color);
  text-align: center;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  transition: .3s var(--st-easing);
}

footer .go-up:hover span {
  top: -1px;
}

footer .go-up:hover span:nth-of-type(1) {
  left: -1px;
}

footer .go-up:hover span:nth-of-type(2) {
  right: 0;
}

footer .go-up:hover p {
  transform: rotate(90deg);
}

.copyright {
  width: 100%;
  text-align: left;
  font-size: 1.2rem;
  color: var(--main-color);
}

/*column PAGE*/
.column.page .main-slide {
  height: 25vw
}

.column.page .main-info .name {
  font-size: 1.6rem;
  margin-top: 20px;
  padding-left: 25px;
  position: relative;
}

.column.page .main-info .name:after {
  content: '';
  width: 15px;
  height: 1px;
  position: absolute;
  top: 12px;
  left: 0;
  background-color: rgb(100,100,100);
}

.column.page .main-container p {
  margin-bottom: 20px;
}

.column.page .main-container .pagination {
  display: flex;
  align-items: center;
  justify-content: center;
}

.column.page .main-container .pagination a {
  font-size: 1.6rem;
  font-style: italic;
  /*margin: 0 10px;*/
  padding:  0 10px 0px;
}

.column.page .main-container .pagination a.current {
  position: relative;
}

.column.page .main-container .pagination a.current:after {
  content: "";
  width: 70%;
  height: 1px;
  background: rgba(100,100,100);
  position: absolute;
  left: 14%;
  bottom: 0;
}

.column.page .main-container .pagination .pn-btn {
  width: 100px;
  text-align: center;
}

/*TOUR PAGE*/
.tour-content {
  margin-bottom: 120px;
}

.tour-content .main-info {
  max-width: 1060px;
  margin: 0 auto;
}

.tour-content .main-info h2.title {
  margin-bottom: 70px;
}

.tour-content .main-info h2.title .en {
  font-size: 1.4rem;
  letter-spacing: 0.1rem;
  margin-bottom: 30px;
}

.tour-content .main-info h2.title {
  /*font-weight: 600;*/
}

.tour-content .main-info .main-text {
  margin-bottom: 120px;
}

.tour-content .main-info .main-text p {
  font-size: 2.4rem;
  line-height: 2;
  /*font-weight: 600;*/
}

.tour-content .main-container {
  max-width: 1060px;
  margin: 0 auto;
  position: relative;
}

.tour-content .main-container .vertical-title {
  top: 0;
  left: auto;
  right: auto;
  font-size: 2.1rem;
}

.tour-content .main-container .vertical-title span {
  font-size: 0.5em;
}

.tour-content .main-container .block {
  width: calc(100% - 100px);
  margin: 0 auto 80px;
}

.tour-content .main-container .block.gallery .box {
  margin-bottom: 60px;
}

.tour-content .main-container .block.gallery p {
  font-size: 1.3rem;
  text-align: left;
}

.tour-content .main-container .block.gallery .col2 {
  margin-bottom: 60px;
}

.tour-content .main-container .block.gallery .col2 .box {
  margin-bottom: 0px;
}

.tour-content .main-container .block.gallery .col2 p {
  width: 100%;
}

/*TOUR2*/
.tour-content .main-container .block.gallery .title .step {
  font-size: 1.3rem;
}

.tour-content .main-container .block.gallery .box p {
  text-align: center;
}

.tour-content .main-container .block.gallery .col2 {
  margin-bottom: 10px;
}

.tour-content .main-container .block .box.per30 {
  width: 30%;
  margin: 0;
}

.tour-content .main-container .block .box.per40 {
  width: 40%;
  margin: 0;
}

.tour-content .main-container .block .box.per30 p {
  font-size: 1.5rem;
}

.tour-content .main-container .block .box.per70 {
  width: 65%;
  margin: 0;
  margin-left: 5%;
}

.tour-content .main-container .block .box.per60 {
  width: 57%;
  margin: 0;
  margin-right: 3%;
}

.tour-content .main-container .block.gallery .prof .box .name {
  margin-bottom: 15px;
}

.tour-content .main-container .block.gallery .prof .box .name h5 {
    border-bottom: 1px solid rgba(0,0,0,0.4);
    padding-bottom: 5px;
    margin-bottom: 5px;
}

.tour-content .main-container .block.gallery .prof .box .name h5 span {
  font-size: 0.65em;
}

.tour-content .main-container .block.gallery .prof .box p{
  text-align: left;
}

.tour-content .main-container .block.desc-info {
  margin-bottom: 40px;
}

.block.about-info p {
  margin-bottom: 20px;
}

.tour-content .main-container .block.gallery .box.point {
  border-top: 1px solid rgba(0,0,0,0.5);
  border-bottom: 1px solid rgba(0,0,0,0.5);
  padding: 20px 0;
}

.tour-content .main-container .block.gallery .box.point p {
  text-align: left;
  font-size: 1.5rem;
}

.block.desc-info dl {
  width: calc(100% - 40px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 20px 20px;
  border-bottom: 1px solid rgb(70,70,70);
}

.block.desc-info dl:nth-of-type(1) {
  border-top: 1px solid rgb(70,70,70);
}

.block.desc-info dl dt {
  width: 200px;
  font-size: 1.3rem;
  font-weight: 600;
}

.block.desc-info dl dd {
  font-size: 1.3rem;
  width: calc(100% - 220px);
}

.block.desc-info dl.normal {
  width: 100%;
  border: none;
  padding: 0;
}

.block.desc-info dl.normal dt {
  width: 100px;
  margin-right: 20px;
  font-weight: 400;
}

.block.desc-info dl.normal dd {
  width: calc(100% - 120px);
  margin-bottom: 5px;
}

.block.desc-info ul {
  padding-left: 1.4em;
}

.block.desc-info iframe {
  filter: grayscale(100);
  margin-bottom: 10px;
}

/*一覧ページ*/
.tour-content .main-container .block.list {
  margin-top: 60px;
}

.block.list .col2 {
  border-bottom: 1px solid rgba(0,0,0,0.5);
  padding-bottom: 20px;
  margin-bottom: 20px;
  padding-top: 20px;
}

.block.list .col2:hover {
  opacity: 1;
}

.block.list .col2:hover *:not(img) {
  opacity: 0.75;
  filter: grayscale(100);
}

.block.list .col2 .per60 {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.block.list .col2 h3.title {
  margin-bottom: 40px;
}

.block.list .col2 h3.title .sub {
  margin-bottom: 15px;
  font-size: .7em;
}

.block.list .col2 .image-inner {
  width: 130px;
  margin-right: 20px;
  position: relative;
}

.block.list .col2 .image-inner:before {
  content: "";
  width: 40px;
  height: 40px;
  background: no-repeat center center / contain url(/assets/img/svg/arrow-down.svg);
  position: absolute;
  top: 130px;
  left: 0;
  right: 0;
  margin: 0 auto;
}

.block.list .col2:nth-of-type(4) .image-inner:before {
  display: none;
}

.block.list .col2 .image-inner img {
  mix-blend-mode: multiply;
}

.block.list .col2 .inner {
  width: calc(100% - 150px);
}

.block.process .col4 .box {
  width: calc(25% - 45px);
  margin-right: 60px;
  position: relative;
}

.block.process .col4 .box:before {
  content: "";
  width: 40px;
  height: 20px;
  background: no-repeat center center / contain url(assets/img/svg/arrow-down.svg);
  position: absolute;
  top: 100px;
  right: -45px;
  margin: auto 0;
  transform: rotate(-90deg);
}

.block.process .col4 .box:nth-of-type(4) {
  margin-right: 0;
}

.block.process .col4 .box:nth-of-type(4):before {
  display: none;
}

.block.process .col4 .box img {
  object-fit: contain;
  mix-blend-mode: multiply;
  margin-bottom: 0;
}

.block.process .col4 .box:nth-of-type(1) img {
  width: 90%;
}

.block.process .col4 .box:nth-of-type(4) img {
  transform: translateX(-10%);
}

.block.process .col4 .box h3 {
  font-size: 2.4rem;
}

.block.process .col4 .box h3 span {
  font-size: 0.5em;
  letter-spacing: 0;
  display: block;
}

.single-content {
  margin-top: 80px;
}

.single-content .main-info {
  max-width: 1060px;
  margin: 0 auto;
}

.single-content .main-info h2.title {
  margin-bottom: 70px;
  display: inline-block;
}

.single-content .main-info h2.title .en {
  display: inline-block;
}

.singlecontent .main-info h2.title {
  /*font-weight: 600;*/
}

.single-content .main-info .main-text {
  margin-bottom: 120px;
}

.single-content .main-info .main-text p {
  font-size: 2.4rem;
  line-height: 2;
  /*font-weight: 600;*/
}

.single-content .main-container {
  max-width: 1060px;
  margin: 0 auto;
  position: relative;
}

.single-content .main-container .col3 .box {
  width: calc((100% / 3) - 30px);
  margin-right: 45px;
  margin-bottom: 40px;
  position: relative;
}

.single-content .main-container .col3 .box:nth-of-type(3n) {
  margin-right: 0;
}

.single-content .main-container .col3 .box .cat {
  background: var(--main-bk);
  padding: 5px 5px 7px;
  color: var(--main-color);
  position: absolute;
  top: -10px;
  left: -10px;
  z-index: 200;
  font-size: 1.8rem;
  line-height: 1;
}

.single-content .main-container .column {
  width: calc(100% - 30px);
  margin: 0 auto;
}

.single-content .main-container .col3 .box img  {
  margin-bottom: 10px;
  position: relative;
  z-index: 100;
}

.single-content .main-container .col3 h3 {
  font-size: 1.8rem;
  font-weight: 400;
}

@media screen and (max-width: 960px) {
	.section {
    margin: 0 auto 50px;
    padding-top: 50px;
  }

  footer .poet-block {
    font-size: 3.2vw;
  }

  footer .info-block {
	  width: 50%;
	}

  footer .member-list {
	  font-size: 1.2rem;
	}

	.message .text-block p {
    font-size: 2vw;
    line-height: 1.8;
  }
}

@media screen and (max-width: 830px) {
	.section {
    width: 89vw;
    margin: 0 auto 50px;
    padding-top: 50px;
  }

  .vertical-title {
    top: 50px;
  }

  .message .text-block {
  	height: 45vw;
  }

  .message .text-block p {
    font-size: 2.1vw;
    line-height: 1.85;
  }

  .tour {
    width: 100%;
  }

  .tour .info-block p {
    font-size: 1.3rem;
  }

  .concept {
    flex-wrap: wrap;
  }

  .concept:after {
    display: none;
  }

  .concept .info-block {
    width: 100%;
    height: 27vw;
    margin-bottom: 50px;
  }

  .concept .info-block .title {
    width: 6vw;
    margin-left: 2vw;
  }

  .concept .info-block .title h4 {
    font-size: 1.8rem;
  }

  .concept .info-block p {
    font-size: 1.4rem;
  }

  /*.tour-content .main-container .block {
    width: calc(100% - 125px);
    margin: 0 0 80px 125px;
  }*/

  .tour-content .main-container .block {
    width: calc(100% - 80px);
    margin: 0 auto 80px;
  }

  .tour-content .main-container .vertical-title h2 {
    font-size: 2.8rem;
  }

  .block.desc-info dl {
    flex-wrap: wrap;
  }

  .block.desc-info dl dt,
  .block.desc-info dl dd {
    width: 100%;
    margin-right: 0;
  }

  .block.desc-info dl dt {
    font-size: 1.5rem;
    margin-bottom: 5px;
  }

  .tour-content .main-container .block .box.per40 {
    width: calc(100% - 150px);
    margin: 0 0 0 150px;
  }

  .tour-content .main-container .block .box.per60 {
    width: 100%;
    margin: 0 0 20px;
  }
}

@media screen and (max-width: 480px) {
  figure {
    margin: 20px 0;
  }

  .pc-only {
    display: none;
  }

  .sp-only {
    display: block;
  }

  .fc-direction-ltr {
    height: 400px !important;
  }

  .fc .fc-button .fc-icon,
  .fc-direction-ltr .fc-button-group>.fc-button,
  .fc-direction-ltr .fc-toolbar>*>:not(:first-child) {
    font-size: 1.2rem !important;
  }

  .fc .fc-toolbar-title {
    font-size: 1.4rem !important;
    letter-spacing: 0 !important;
  }

  header .logo {
    display: none;
  }

  .section {
    padding-top: 30px;
  }

  .vertical-title {
    top: 30px;
  }

  .vertical-title.left {
    left: 20px;
  }

  .vertical-title.right {
    right: 20px;
  }

  h2.title {
    font-size: 3.2rem;
    margin-bottom: 20px;
  }

  h3 {
    font-size: 2.1rem;
  }

  h3.title {
    margin-bottom: 30px;
    font-size: 2.1rem;
  }

  header .logo {
    top: 20px;
    left: 15px;
  }

  header .g-menu,
  header .g-menu.inview.is-show {
    position: fixed;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-start;
    top: 74px;
    right: 0px;
    pointer-events: none;
    opacity: 0;
    transition: .3s ease-in-out;
  }

  header .g-menu.active,
  header .g-menu.inview.is-show.active {
    pointer-events: auto;
    opacity: 1;
  }

  header .g-menu a {
    margin: 0;
    padding: 0 15px 0 10px;
    color: var(--main-color);
    background-color: #000;
  }

  header .menu-btn {
    display: block;
  }

  .top .mark-v {
    width: 88%;
    max-width: 88%;
  }

  .top .mark-v.pc {
    display: none;
  }

  .top .mark-v.sp {
    display: block;
  }

  .scr-trg {
    left: 20px;
    bottom: 30px;
  }

  .top .brdr-down {
    right: 6.5%;
    bottom: 30px;
    padding-bottom: 60px;
  }

  .top .brdr-down  p {
    letter-spacing: 0;
  }

  .top .brdr-down:after {
    height: 40px;
  }

  .sns-flowt {
    width: 100px;
    height: 20px;
    top: 31px;
    right: 60px;
    bottom: auto;
    flex-direction: row;
  }

  .sns-flowt a {
    margin-left: 10px;
  }

  .main-slide .swiper-ctr-wrapper {
    left: 20px;
  }

  .message .text-block p {
    font-size: 1.6rem;
  }

  .message .text-block {
    height: auto;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
  }

  .message .text-block p {
    width: 100%;
    height: 105vw;
    margin-bottom: 30px;
    font-size: 4.4vw;
    line-height: 1.9;
  }

  .message .text-block p:nth-last-of-type(1) {
    margin-bottom: 0;
  }

  .tour .vertical-title h2 {
    font-size: 6.5vw;
  }

  .tour .vertical-title span {
    font-size: 1rem;
  }

  .tour .col2 {
    width: calc(100% - 100px);
    flex-direction: column;
  }

  .tour .cover-image {
    width: 100%;
    height: calc(81vw - 100px);
    margin-bottom: 30px;
  }

  .tour .info-block {
    width: 90%;
    margin: 0 0 0 10%;
  }

  .tour.program2 .col2 {
    margin-left: 100px;
  }

  .tour.program2 .info-block {
    margin: 0 10% 0 0;
  }

  .concept .info-block {
    margin-bottom: 30px;
  }

  .concept .info-block .title {
    width: 100%;
    margin-left: 0;
    flex-direction: row;
    align-items: flex-end;
    margin-bottom: 20px;
  }

  .concept .info-block .title img {
    width: 70px;
  }

  .concept .info-block .title h4 {
    writing-mode: horizontal-tb;
    transform: translateX(-20px);
  }

  .concept .info-block {
    height: auto;
    display: block;
  }

  .concept .info-block .text-block {
    width: 100%;
    height: auto;
    display: block;
    writing-mode: horizontal-tb;
    font-feature-settings: "palt";
  }

  .concept .info-block:nth-last-of-type(1),
  .concept .info-block .text-block p:nth-last-of-type(1) {
    margin-bottom: 0;
  }

  .concept .info-block p {
    width: 100%;
    height: auto;
    font-size: 1.5rem;
    line-height: 1.85;
    margin-bottom: 0;
  }

  footer {
    width: calc(100% - 60px);
    padding: 50px 30px 100px;
  }

  footer .info-block {
    width: 100%;
  }

  footer .poet-block {
    font-size: 5.8vw;
    line-height: 1.4;
  }

  footer .member-list {
    font-size: 1.2rem;
  }

  footer .logo {
    width: 150px;
    position: static;
    transform: translate3d(-11px,0,0);
    margin-bottom: 40px;
  }

  footer .go-up {
    right: 40px;
    bottom: 104px;
  }

  .column.page .main-slide {
    height: 50vw
  }

  .tour-content .main-info {
    margin-bottom: 50px;
  }

  .tour-content .main-container h2 {
    font-size: 2.8rem;
    margin-bottom: 20px;
  }

  .tour-content .main-info h2.title {
    font-size: 2.4rem;
    margin-bottom: 30px;
  }

  .tour-content .main-info h2.title .en {
    font-size: 1.2rem;
    margin-bottom: 10px;
  }

  .tour-content .main-info .main-text {
    margin-bottom: 30px;
  }

  .tour-content .main-info .main-text p {
    font-size: 1.6rem;
    line-height: 1.75;
  }

  .tour-content .main-container .vertical-title {
    writing-mode: horizontal-tb;
    position: static;
  }

  .tour-content .main-container .vertical-title h2 {
    font-size: 2.4rem;
  }

  .tour-content .main-container .block {
    width: 100%;
    margin: 0 auto 40px;
  }

  .tour-content .main-container .block.gallery .box {
    margin-bottom: 30px;
  }

  .tour-content .main-container .block.gallery .box img {
    margin-bottom: 10px;
  }

  .tour-content .main-container .block.gallery .col2 {
    margin-bottom: 30px;
  }

  .tour-content .main-container .block.gallery .col2 .box,
  .tour-content .main-container .block.gallery .col2.prof .box .col2 .box {
    width: calc(50% - 5px);
    margin-right: 10px;
    margin-bottom: 0;
  }

  .tour-content .main-container .block.gallery .col2 .box:nth-of-type(2n),
  .tour-content .main-container .block.gallery .col2.prof .box .col2 .box:nth-of-type(2n) {
    margin-right: 0;
  }

  .block.desc-info dl {
    width: calc(100% - 20px);
    padding: 20px 10px;
  }

  .block.desc-info iframe {
    height: 300px;
  }

  /*TOUR2*/
  .tour-content .main-container .block.gallery .box.per30,
  .tour-content .main-container .block.gallery .box.per70,
  .tour-content .main-container .block.gallery .col2.prof .box {
    width: 100%;
    margin: 0;
  }

  .tour-content .main-container .block.gallery .box p {
    margin-bottom: 20px;
  }

  .block.process .col4 {
    width: 90%;
    margin: 0 auto;
  }

  .block.process .col4 .box {
    width: calc(50% - 10px);
    margin-right: 20px;
    text-align: center;
  }

  .block.process .col4 .box img {
    width: 70% !important;
    height: auto;
    margin: 0 auto 10px;
  }

  .block.process .col4 .box:nth-of-type(4) img {
    transform: translateX(0);
  }

  .block.process .col4 .box h3 {
    font-size: 2.1rem;
  }

  .block.process .col4 .box:nth-of-type(2n) {
    margin-right: 0;
  }

  .block.process .col4 .box:nth-of-type(n+3) {
    margin-bottom: 0;
  }

  .block.process .col4 .box:before {
    width: 30px;
    height: 20px;
    top: 40px;
    right: -30px;
  }

  .block.process .col4 .box:nth-of-type(2):before {
    right: -10px;
  }

  .tour-content .main-container .block.list {
    margin-top: 0px;
  }

  .block.list .col2 .image-inner {
    width: 80px;
  }

  .block.list .col2 .inner {
    width: calc(100% - 100px);
  }

  .tour-content .main-container .block .box.per40 {
    width: calc(100% - 100px);
    margin: 0 0 0 100px;
  }

  .block.list .col2 h3.title {
    font-size: 1.8rem;
    margin-bottom: 30px;
  }

  .block.list .col2 p {
    font-size: 1.4rem;
  }

  .tour-content .main-container .block.list .col2 .box {
    width: 100%;
  }

  .tour-content .main-container .block.list .col2 .box img {
    margin-top: 20px;
  }

  .single-content {
    margin-top: 40px;
  }

  .single-content .main-container .col3 .box {
    width: 100%;
    margin-right: 0;
    margin-bottom: 30px;
    position: relative;
  }

}

@media screen and (max-width: 380px) {
	.message .text-block p {
    height: 106vw;
    font-size: 4.4vw;
    line-height: 1.85;
  }
}