﻿@charset "UTF-8";
/**************************
common
***************************/

@media screen and (min-width: 769px) {
  .sp {display: none !important;}
  .forcms_block {
     min-width: 1000px;
  }
}

@media screen and (max-width: 768px) {
  .pc {display: none !important;}
  .wrapper_ {
    background: #00041C;
    overflow-x: hidden
  }
}
.forcms_block {
  background: #00041C;
  position: relative;
}
.mainframe_ {
  background: #00041C;
  overflow-x: hidden
}
.forcms_block:has(#header_wrap) {
  background: #fff;
}

.content-header {
  text-align: center;
  font-family: "Noto Serif JP", sans-serif;
  position: relative;
  color: #0A1F4A;
  z-index: 1;
}


.content-ttl::before {
  content: none;
}

.content-ttl {
  font-size: 36px;
  color: #fff;
  font-weight: 400;
  margin: 0;
}

.common-content {
  max-width: 1200px;
  width: 95%;
  margin: 60px auto 130px;
}



.common-item {
  width: 100%;
}
.common-item-inner {
  position: relative;
}
.common-item-status {
  background: #DBDBDB;
  position: absolute;
  color: #707070;
  text-align: right;
  clip-path: polygon(0 0, 100% 0%, 100% 100%, 20% 100%);
  font-weight: bold;
}
.common-item-status[data-status="予約受付中"] {
  background: #22AC7C;
  color: #fff;
}

.common-item-img-wrapper {
  position: relative;
}

.common-item-imgs {
  width: 100%;
  height: auto;
}

.common-item-imgs img {
  width: 100%;
  height: auto;
}
.common-item-imgs .slick-dots {
  bottom: -30px;
}
.common-item-imgs .slick-dots li {
  width: 10px;
}
.common-item-imgs .slick-dots li button {
  width: 10px;
  height: 10px;
}
.common-item-imgs .slick-dots li button:before {
  font-size: 0;
  border: 1px solid #fff;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  opacity: 1;
}
.common-item-imgs .slick-dots li.slick-active button:before {
  background: #6CE8FF;
  border-color: #6CE8FF;
}


.common-item-content {
  margin: 30px auto 0;
  width: 100%;
  border: 1px solid #37A6CB;
  border-top: none;
  position: relative;
}
.common-item-content::before {
  content:"";
  height: 1px;
  width: 30px;
  background: #37A6CB;
  position: absolute;
}
.common-item-content::after {
  content:"";
  height: 1px;
  width: 270px;
  background: #37A6CB;
  position: absolute;
  right: 0;
  top: 0;
}
.common-item-content-ttl {
  font-size: 18px;
  left: 70px;
  position: absolute;
  top: -14px;
}
.common-item-content-ttl::before {
  content:"";
  background: url(/cms/feature/grandhandlingtour/img/icon_flug.png) no-repeat;
  width: 14px;
  height: 24px;
  display: block;
  position: absolute;
  left: -25px;
}

.common-item-ttl {
  font-size: 20px;
  font-weight: 400;
  line-height: 1.5;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 1px;
}

.common-item-event-term-area {
  background: #399BB7;
  display: inline-block;
  padding: 5px 15px;
  font-size: 17px;
  font-weight: bold;
  margin-top: 16px;
  color: #fff;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
}
.common-item-content-ttl {
  font-family: "Noto Serif JP", sans-serif;
}
.common-item-event-term {
  font-size: 21px;
  color: #ffffff;
}
.common-item-pref {
  color: #fff;
  border-bottom: 1px solid #fff;
  font-family: "Noto Serif JP", sans-serif;
}
.common-item-pref-img {
  position: absolute;
  transform: translateX(-50%);
}
.common-item-content-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 12px;
}
.common-item-content-flex p {
  font-size: 15px;
  width: 100%;
}
.common-item-content-flex:has(img) p {
  width: calc(100% - 120px)
}
.common-item-content-flex img {
  width: 100px;
  height: 100px;
}
.common-item-link {
  width: 345px;
  height: 56px;
  font-size: 22px;
  border-radius: 28px;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 30px auto 0;
}
/* .common-item-link[data-status="予約受付前"] {
  background: transparent;
  border: 4px double #fff;
} */
.common-item-link a {
  font-family: "Noto Serif JP", sans-serif;
  color: #003093;
  width: 100%;
  text-align: center;
  position: relative;
  font-weight: 600;
}
/* .common-item-link[data-status="予約受付前"] a {
  color: #fff;
} */
.common-item-link a::after {
  content:"";
  border-right: 2px solid #003093;
  border-bottom: 2px solid #003093;
  position: absolute;
  top: 52%;
  width: 10px;
  height: 10px;
  right: 25px;
  transform: translateY(-50%) rotate(-45deg);
}
/* .common-item-link[data-status="予約受付前"] a::after {
  content: none;
} */

@media screen and (min-width: 769px) {
  .common-item {
    width: 100%;
    position: relative;
  }
  .common-item + .common-item {
    margin-top: 80px;
  }
  .common-item-inner {
    width: 880px;
    background: linear-gradient(135deg, #091C55,#0B7A95 );
    position: relative;
    padding: 47.5px 315px 72.5px 50px;
    color: #fff;
  }
  .common-item-pref {
    font-size: 25px;
    font-weight: 400;
    padding-bottom: 15px;
    letter-spacing: 2.5px;
  }
  .common-item-ttl {
  padding-top: 20px;
  }
  .common-item-imgs {
    position:absolute;
    width: 600px;
    left: 600px;
    top: 50%;
    transform: translateY(-50%);
  }
  .common-item-pref-img {
    display: none;
  }
  .common-item-status {
    width: 145px;
    height: 34px;
    font-size: 16px;
    line-height: 34px;
    padding-right: 1.3em;
    left: 420px;
    letter-spacing: 1px;
    /* top: 0; */
  }
  .common-item-status[data-status="予約終了"] {
    width: 130px;
    left: 435px;
  }
  .common-item-imgs img {
    aspect-ratio: 600 / 340;
    object-fit: cover;
  }
  .common-item-imgs .slick-dots {
    text-align: left;
  }
}
@media screen and (max-width: 1240px) {
  .common-item-inner {
    width: 80%;
    max-width: 880px;
    position: relative;
  }
  .common-item-status {
    left: initial;
    right: 315px;
  }
  
  .common-item-imgs img {
    width: 100%;
  }
  
}
@media screen and (max-width: 1150px) {
  .common-item-content::after {
    max-width: 43%;
  }
}
@media screen and (max-width: 1240px) and (min-width: 769px) {
  .common-item-imgs {
    left: calc(105% - 315px);
  }
  .common-item-status[data-status="予約終了"] {
    left: initial;
    right: 315px;
  }
}
@media screen and (max-width: 768px) {
  .content-ttl-en {
    text-align: left;
    font-size: calc((36 / 390) *100vw);
  }

  .content-ttl {
    font-size: calc((35 / 390) *100vw);
    margin-top: 0;
    margin-bottom: 0;
  }

  .common-content {
    /* margin: calc((30 / 390) *100vw) auto calc((40 / 390) *100vw); */
    width: 100%;
  }
  .common-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px 80px;
  }

  .common-list {
    gap: calc((20 / 390) *100vw);
  }

  .common-item {
    width: 100%;
    padding: 0 calc((20 / 390) *100vw);
  }
  .common-item + .common-item {
    margin-top: calc((30 / 390) *100vw);
  }
  .common-item-inner {
    width: calc((350 / 390) *100vw);
    background: linear-gradient(145deg, #091C55, #0B7A95);
    padding: calc((13 / 390) *100vw) calc((20 / 390) *100vw) calc((20 / 390) *100vw);
    color: #fff;
  }


  .common-item-ttl {
    font-size: calc((18 / 390) *100vw);
    margin-top: calc((12 / 390) *100vw);
    letter-spacing: 0.05em;
    display: -webkit-box;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }

  .common-item-status {
    position: absolute;
    right:0;
    top: -20px;
    text-align: right;
    clip-path: polygon(0 0, 100% 0%, 100% 100%, 20% 100%);
  }

  .common-item-event-term-area {
    padding: calc((3 / 390) *100vw) calc((7 / 390) *100vw);
    margin-top: calc((12 / 390) *100vw);
    font-size: calc((13 / 390) *100vw);
  }

  .common-item-event-term {
    font-size: calc((16 / 390) *100vw);
  }

  .common-item-pref {
    font-size: calc((18 / 390) *100vw);
    padding-bottom: calc((15 / 390) *100vw);
    margin-bottom: calc((15 / 390) *100vw);
    margin-top: 15px;
  }
  .common-item-pref-img {
    right: calc((-20 / 390) *100vw);
    top: calc((285 / 390) *100vw);
    max-width: calc((100 / 390) * 100vw);
    max-height: calc((80 / 390) * 100vw);
    width: 100%;
    height: 100%;
  }
  .common-item:has(.slick-dots) .common-item-pref-img {
    top: calc((300 / 390) *100vw);
  }
  .common-item-pref-img::after {
    content: "";
    max-width: calc((100 / 390) * 100vw);
    max-height: calc((80 / 390) * 100vw);
    width: 100%;
    height: 100%;
    display: block;
  }
  .common-item-pref-img[data-pref="千葉県"]::after {
    background: url(/cms/feature/grandhandlingtour/img/img-pref-chiba.png) no-repeat;
    background-size: contain;
    background-position: center;
  }
  .common-item-pref-img[data-pref="香川県"]::after {
    background: url(/cms/feature/grandhandlingtour/img/img-pref-kagawa.png) no-repeat;
    background-size: contain;
    background-position: center;
  }
  
  .common-item-pref-img img {
    max-width: calc((100 / 390) * 100vw);
    max-height: calc((80 / 390) * 100vw);
  }
  .common-item-content {
    width: 100%;
    margin-top: calc((35 / 390) *100vw);
    border: 1px solid #37A6CB;
    border-top: none;
    position: relative;
  }
  .common-item-content::before {
    content:"";
    height: 1px;
    width: 30px;
    background: #37A6CB;
    position: absolute;
  }
  .common-item-content::after {
    content:"";
    height: 1px;
    width: 130px;
    background: #37A6CB;
    position: absolute;
    right: 0;
    top: 0;
  }
  .common-item-content-ttl {
    font-size: calc((15 / 390) *100vw);
    left: calc((55 / 390) *100vw);
    position: absolute;
    top: calc((-11 / 390) *100vw);
  }
  .common-item-content-ttl::before {
    content:"";
    background: url(/cms/feature/grandhandlingtour/img/icon_flug.png) no-repeat;
    width: calc((14 / 390) *100vw);
    height: calc((23.5 / 390) *100vw);
    display: block;
    position: absolute;
    left: calc((-20 / 390) *100vw);
  }
  .common-item-content-flex {
    padding: calc((18 / 390) *100vw) calc((16 / 390) *100vw) calc((12 / 390) *100vw);
    gap: calc((12 / 390) *100vw);
    justify-content: center;
  }
  
  .common-item-content-flex p {
    font-size: calc((12 / 390) *100vw);
    width: 100%;
  }
  .common-item-content-flex:has(img) p {
    width: calc(100% - ((90 / 390) *100vw))
  }
  .common-item-content-flex img {
    width: calc((78 / 390) *100vw);
    height: calc((78 / 390) *100vw);
  }
  .common-item-status {
    top: calc((-8 / 390) *100vw);
    width: calc((135 / 390) *100vw);
    height: calc((35 / 390) *100vw);
    font-size: calc((16 / 390) *100vw);
    line-height: calc((35 / 390) *100vw);
    padding-right: calc((15 / 390) *100vw);
  }
  .common-item-status[data-status="予約終了"] {
    width: calc((115 / 390) *100vw);
  }
  .common-item-imgs .slick-dots {
    bottom: calc((-30 / 390) *100vw);
  }
  .common-item-imgs .slick-dots li {
    width: calc((7 / 390) *100vw);
  }
  .common-item-imgs .slick-dots li button {
    width: calc((7 / 390) *100vw);
    height: calc((7 / 390) *100vw);
  }
  .common-item-imgs .slick-dots li button:before {
    width: calc((7 / 390) *100vw);
    height: calc((7 / 390) *100vw);
  }
  .common-item-link {
    margin-top: calc((15 / 390) *100vw);
    border-radius: calc((18 / 390) *100vw);
    width: calc((150 / 390) *100vw);
    height: calc((35 / 390) *100vw);
    font-size: calc((14 / 390) *100vw);
  }
  .common-item-link a::after {
    border-width: 1px;
    right: calc((20 / 390) *100vw);
    transform: translateY(-50%) rotate(-45deg);
    width: calc((7 / 390) *100vw);
    height: calc((7 / 390) *100vw);
  }
}


/**************************
mv
***************************/
.mv {
  position: relative;
  height: auto;
  z-index: 4;
}
.mv_bk img {
  width: 100%;
}
.mv-header-wrapper {
  position: relative;
}
.mv-header h1 {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 35%;
  text-align: center;
}


@media screen and (min-width: 769px) {
  .mv-header > img {
    position: absolute;
    top: 75%;
    left: 10%;
    transform: translateX(-50%);
    width: calc((777 / 1920) * 100vw);
  }
}

@media screen and (max-width: 768px) {
  .mv-header-wrapper {
    width: 100%;
  }
  .mv-header h1 {
    width: 90%;
  }
  .content-header {
    width: 95%;
    margin: 0 auto;
  }
  .mv-header > img {
    position: absolute;
    top: 13%;
    left: -25%;
  }
}


/**************************
about
***************************/

.about {
  /* position: relative; */
  /* z-index: 4; */
}


.about_content {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
  padding: 100px 0px 75px;
}

.content_catch-wrapper {
  color: #fff;
  font-family: "Noto Serif JP", sans-serif;
}

.content_catch {
  color: #fff;
  font-size: 60px;
  line-height: 1.666;
}

.about_content_ttl {
  color: #fff;
  font-size: 28px;
  text-align: left;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.56;
}
.about_content_ttl span.sm {
  font-size: 27px;
}
h2.about_content_ttl::before{
  content: none;
}


.about_content_desc {
  font-size: 18px;
  margin-top: 40px;
  line-height: 2;
  font-family: "Noto Sans JP", sans-serif
}
.about_img img {
  width: 100%;
}
.about_icon {
  position: absolute;
  transform: translateX(-50%);
}

@media screen and (max-width: 1024px) {
  .content_catch-wrapper {
  }

  .content_catch {
    font-size: 50px;
  }

  .content_catch span {
    font-size: 40px;
  }
  .about_content_desc {
    font-size: 16px;
  }
}
@media screen and (min-width: 769px) {
  .about_content {
    display: flex;
    width: 95%;
  }
  .about_overlay {
    background: url(/cms/feature/grandhandlingtour/img/about_bk.png) no-repeat;
    width: 200%;
    height: 200%;
    position: absolute;
    left: 40%;
    top: -65%;
    transform: translateX(-50%);
    background-size: cover;
    z-index: 2;
    display: block;
  }
  .content_catch-wrapper {
    width: 660px;
  }
  .about_imgs {
    position: absolute;
    left: 700px;
    display: flex;
    gap: 32px;
  }
  .about_img {
    width: 302px;
  }
  .about_img-02 {
    margin-top: 100px;
  }
  .about_icon {
    position: absolute;
    transform: translateX(-50%);
  }
  .about_icon img {
    width: 100%;
  }
  .about_icon-01 {
    max-width: 332px;
    bottom: -66px;
    left: 90%;
    width: 27vw;
  }
  .about_icon-02 {
    max-width: 600px;
    bottom: -300px;
    left: -15%;
    width: 60vw;
  }
  .about_icon-03 {
    width: calc((233 / 390) * 100vw);
    top: calc((760 / 390) * 100vw);
    left: calc(50% + ((196 / 390) * 100vw));
  }
}
@media screen and (max-width: 768px) {
  .about_content {
    padding: calc((100 / 390) *100vw) calc((25 / 390) *100vw) calc((75 / 390) *100vw);
  }
  .about_overlay {
    background: url(/cms/feature/grandhandlingtour/img/about_bk_sp.png) no-repeat;
    width: calc((2000 / 390) * 100vw);
    height: calc((1818 / 390) * 100vw);
    position: absolute;
    left: 50%;
    top: calc((122 / 390) * 100vw);
    transform: translateX(-50%);
    background-size: cover;
    z-index: 2;
    display: block;
  }

  .about_content_ttl {
    font-size: calc((17 / 390) *100vw);
    text-align: center;
    line-height: 1.56;
  }
  .about_content_ttl span.lg {
    font-size: calc((23 / 390) *100vw);
    margin-top: calc((10 / 390) *100vw);
    display: inline-block;
  }
  .about_content_ttl span.md {
    font-size: calc((19 / 390) *100vw);
    margin-bottom: calc((10 / 390) * 100vw);
    display: inline-block;
  }

  .content_catch span {
    font-size: calc((21 / 390) *100vw);
  }

  .about_content_desc {
    font-size: calc((14 / 390) *100vw);
    width: 95%;
    margin: calc((30 / 390) *100vw) auto 0;
    letter-spacing: 1px;
    text-align: center;
  }

  .about_imgs {
    display: flex;
    width: max-content;
    gap: 7px;
    margin-top: calc((40 / 390) * 100vw);
  }

  .about_img {
    width: calc((142 / 390) * 100vw);
  }

  .about_img-02 {
    margin-top: calc((45 / 390) * 100vw);
  }
  .about_icon-01 {
    width: calc((277 / 390) * 100vw);
    top: calc((-41 / 390) * 100vw);
    left: calc(50% + ((136 / 390) * 100vw));
  }
  .about_icon-02 {
    width: calc((205 / 390) * 100vw);
    top: calc((996 / 390) * 100vw);
    left: calc(50% - ((136 / 390) * 100vw));
  }
  .about_icon-03 {
    width: calc((233 / 390) * 100vw);
    top: calc((1049 / 390) * 100vw);
    left: calc(50% + ((196 / 390) * 100vw));
  }
}



/**************************
pick up
***************************/

.tour {
  padding-top: 300px;
  padding-bottom: 100px;
}

.tour-map {
  /* margin-top: 100px; */
  z-index: 3;
  position: relative;
}
.tour-map-wrapper {
  text-align: center;
  position: relative;
  width: 1040px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .tour {
    padding-top: calc((60 / 390) *100vw);
    padding-bottom: calc((0 / 390) *100vw);
  }
  .tour-map {
    display: none;
  }
  .tour-header img {
    width: calc((124 / 390) * 100vw);
  }
}
svg path {transition: 0.3s;}
.tour-map-wrapper:has(.tourMap-item[data-pref="愛知県"] .tourMap-map-event-link:hover) #map-aichi { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="秋田県"] .tourMap-map-event-link:hover) #map-akita { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="青森県"] .tourMap-map-event-link:hover) #map-aomori { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="千葉県"] .tourMap-map-event-link:hover) #map-chiba { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="愛媛県"] .tourMap-map-event-link:hover) #map-ehime { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="福井県"] .tourMap-map-event-link:hover) #map-fukui { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="福岡県"] .tourMap-map-event-link:hover) #map-fukuoka { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="福島県"] .tourMap-map-event-link:hover) #map-fukushima { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="岐阜県"] .tourMap-map-event-link:hover) #map-gifu { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="群馬県"] .tourMap-map-event-link:hover) #map-gunma { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="広島県"] .tourMap-map-event-link:hover) #map-hiroshima { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="北海道"] .tourMap-map-event-link:hover) #map-hokkaido { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="兵庫県"] .tourMap-map-event-link:hover) #map-hyogo { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="茨城県"] .tourMap-map-event-link:hover) #map-ibaraki { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="石川県"] .tourMap-map-event-link:hover) #map-ishikawa { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="岩手県"] .tourMap-map-event-link:hover) #map-iwate { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="香川県"] .tourMap-map-event-link:hover) #map-kagawa { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="鹿児島県"] .tourMap-map-event-link:hover) #map-kagoshima { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="神奈川県"] .tourMap-map-event-link:hover) #map-kanagawa { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="高知県"] .tourMap-map-event-link:hover) #map-kochi { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="熊本県"] .tourMap-map-event-link:hover) #map-kumamoto { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="京都府"] .tourMap-map-event-link:hover) #map-kyoto { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="三重県"] .tourMap-map-event-link:hover) #map-mie { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="宮城県"] .tourMap-map-event-link:hover) #map-miyagi { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="宮崎県"] .tourMap-map-event-link:hover) #map-miyazaki { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="長野県"] .tourMap-map-event-link:hover) #map-nagano { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="長崎県"] .tourMap-map-event-link:hover) #map-nagasaki { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="奈良県"] .tourMap-map-event-link:hover) #map-nara { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="新潟県"] .tourMap-map-event-link:hover) #map-niigata { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="大分県"] .tourMap-map-event-link:hover) #map-oita { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="岡山県"] .tourMap-map-event-link:hover) #map-okayama { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="沖縄県"] .tourMap-map-event-link:hover) #map-okinawa { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="大阪府"] .tourMap-map-event-link:hover) #map-osaka { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="佐賀県"] .tourMap-map-event-link:hover) #map-saga { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="埼玉県"] .tourMap-map-event-link:hover) #map-saitama { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="滋賀県"] .tourMap-map-event-link:hover) #map-shiga { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="島根県"] .tourMap-map-event-link:hover) #map-shimane { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="静岡県"] .tourMap-map-event-link:hover) #map-shizuoka { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="栃木県"] .tourMap-map-event-link:hover) #map-tochigi { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="徳島県"] .tourMap-map-event-link:hover) #map-tokushima { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="東京都"] .tourMap-map-event-link:hover) #map-tokyo { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="鳥取県"] .tourMap-map-event-link:hover) #map-tottori { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="富山県"] .tourMap-map-event-link:hover) #map-toyama { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="和歌山県"] .tourMap-map-event-link:hover) #map-wakayama { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="山形県"] .tourMap-map-event-link:hover) #map-yamagata { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="山口県"] .tourMap-map-event-link:hover) #map-yamaguchi { fill: rgba(108,232,255,0.3); }
.tour-map-wrapper:has(.tourMap-item[data-pref="山梨県"] .tourMap-map-event-link:hover) #map-yamanashi { fill: rgba(108,232,255,0.3); }



/**************************
participate
***************************/
.forcms_block:has(.participate) {
  padding-bottom: 175px;
}

.participate {
  padding: 100px 0 150px;
  width: 100%;
  background: #001955;
  margin: 0 auto;
  position: relative;
}

.participate-content {
  width: 100%;
  max-width: initial;
  overflow: hidden;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.participate-slider {
  overflow-x: visible;
  padding: 0 calc((100% - 780px) / 2);
  margin-top: 75px;
}

.participate-slider .slick-list {
  overflow: visible !important;
}

.participate-slider .slick-track {
  display: flex;
  align-items: stretch;
}

.participate-slide {
  width: 780px;
  margin: 0 50px;
  box-sizing: border-box;
  height: 100%;
  background: #fff;
}
.participate-slide-step {
  color: #003093;
  font-family: "Noto Serif JP", sans-serif;
}
.participate-slide-text {
  line-height: 1.8;
}

.participate-slider .slick-arrow {
  width: 60px;
  height: 60px;
  background: #0B7A95;
  border-radius: 50%;
  font-size: 0;
  border: 1px solid #0B7A95;
  z-index: 2;
}

.participate-slider .slick-arrow::before {
  content: "";
  width: 15px;
  height: 15px;
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
  position: absolute;
  top: 50%;
}

.participate-slider .slick-prev {
  left: calc(50% - 420px);
}

.participate-slider .slick-prev::before {
  left: 55%;
  transform: translate(-50%, -50%) rotate(-45deg)
}
.participate-slider  .slick-next {
  right: calc(50% - 420px);
}
.participate-slider .slick-next::before {
  left: 45%;
  transform: translate(-50%, -50%) rotate(135deg)
}
.participate-slider .slick-prev.slick-disabled:before, .slick-next.slick-disabled:before {
  opacity: 1;
}
.participate-slider .slick-prev.slick-disabled , .slick-next.slick-disabled {
  opacity: 0.7;
}
@media screen and (min-width: 769px) {
  .participate {
    z-index: 4;
    margin-top: 200px;
  }
  .participate::before {
    content:"";
    width: 900px;
    height: 900px;
    background: #001955;
    border-radius: 50%;
    position: absolute;
    top: -90px;
    left: 50%;
    transform: translateX(-50%);
  }
  .participate::after {
    content:"";
    width: 900px;
    height: 900px;
    background: #001955;
    border-radius: 50%;
    position: absolute;
    bottom: -90px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 0;
  }
  .participate-slide {
    display: grid !important;
    grid-template-columns: 272px 280px;
    grid-template-rows: 50px 1fr;
    padding: 74px 60px 74px 40px;
    column-gap: 28px;
  }
  .participate-slide-step {
    grid-column: 2 / 3;
    grid-row: 1 / 2;
    font-size: 26px;
  }
  .participate-slide-img {
    grid-column: 1 / 2;
    grid-row: 1 / 3;
  }
  .participate-slide-img img {
    width: 100%;
  }
  .participate-slide-text {
    grid-column: 2 / 3;
    grid-row: 2 / 3;
    font-size: 14px;
    line-height: 1.56;
  }
}
@media screen and (max-width: 768px) {
  .forcms_block:has(.participate) {
    padding-bottom: 100px;
  }
  .participate {
    padding: calc((75 / 390) *100vw) 0 calc((130 / 390) *100vw);
    width: 120%;
    border-radius: calc((225 / 390) *100vw);
    margin-left: -10%;
  }
  .participate-content {
    width: 83.33333333%;
    max-width: initial;
    overflow: hidden;
    margin: 0 auto;
  }
  .participate-header img {
    width: calc((225 / 390) * 100vw)
  }

  .participate-slider {
    padding: 0 calc((20 / 390) *100vw);
    margin-top: calc((40 / 390) *100vw);
  }
  .participate-slide {
    width: 100%;
    margin: 0 10px;
    border-radius: 0;
    padding: calc((20 / 390) * 100vw);
  }
  /* .participate-slider .slick-arrow { */
  .participate-slider .slick-arrow {
    width: 27px;
    height: 27px;
    background: #0B7A95 !important;
    border: none;
  }
  .participate-slider .slick-arrow::before {
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff !important;
    border-left: 2px solid #fff !important;
  }
  .participate-slider .slick-prev {
    left: 5px;
  }  
  .participate-slider .slick-next {
    right: 5px;
  }
  .participate-slide-step {
    font-size: calc((28 / 390) * 100vw);
  }
  .participate-slide-step span {
    font-size: calc((31 / 390) * 100vw);
  }
  .participate-slide-img {
    width: calc((162 / 390) * 100vw);
    margin: calc((20 / 390) * 100vw) auto 0;
    text-align: center;
  }
  .participate-slide-img img {
    margin: 0 auto;
  }
  .participate-slide-text {
    font-size: calc((12 / 390) * 100vw);
    margin-top: calc((15 / 390) * 100vw)
  }
  
  .participate-slider .slick-prev {
    left: 0
  }
  
  .participate-slider .slick-prev::before {
    left: 55%;
    transform: translate(-50%, -50%) rotate(-45deg)
  }
  .participate-slider  .slick-next {
    right: 0
  }
  .participate-slider .slick-next::before {
    left: 45%;
    transform: translate(-50%, -50%) rotate(135deg)
  }
}



/**************************
attention
***************************/
.forcms_block:has(.attention) {
  padding-bottom: 100px;
  
}
.bottom-content {
  position: relative;
  height: 100%;
}
.bottom-content:before {
  content:"";
  background: linear-gradient(180deg, rgba(11,122,149,0.38), rgba(9,28,85,0.38));
  border-radius: calc((225 / 390) *100vw) calc((225 / 390) *100vw)  0 0;
  width: 120%;
  height: 100%;
  margin-left: -10%;
  display: block;
  position: absolute;
}
.bottom-content .forcms_block {
  background: transparent;
}
.attention {
  padding: 200px 0 50px;
  width: 83.333333%;
  margin: 0 auto;
}

.attention-content {
  width: 100%;
  max-width: initial;
  overflow: hidden;
  max-width: 787px;
  margin: 60px auto 0;
  padding: 40px 40px 40px;
  color: white;
}
.attention-content-ttl {
  font-weight: bold;
  font-size: 20px;
}
.attention-content-desc {
  font-size: 16px;
  margin-top: 10px;
}
.attention-content-desc + .attention-content-ttl {
  margin-top: 30px;
}
.attention-content-list {
   margin-top: 10px;
}
.attention-content-list li {
  font-size: 16px;
}
.attention-content-list li + li {
  margin-top: 10px;
}
.attention-content-list li span {
  padding-left:1em
}
.attention-content-list li:before {
  content:"・"
}
@media screen and (max-width: 1250px) {
  .attention {
    max-width: 750px;
  }
}
@media screen and (max-width: 768px) {
  .forcms_block:has(.attention) {
    padding-bottom: 0px;
  }
  .bottom-content {
    border-radius: calc((225 / 390) *100vw) calc((225 / 390) *100vw)  0 0;
    width: 120%;
    margin-left: -10%;
  }
  .attention {
    padding: calc((100 / 390) *100vw) 0 calc((40 / 390) *100vw);
    width: 83.33333333%;
  }
  .attention-content {
    width: calc(100% - 20px);
    margin: 30px auto 0;
    padding: 16px 23px;
  }
  .attention-content-ttl {
    font-size: calc((16 / 390) *100vw);
  }
  .attention-content-desc {
    font-size: calc((14 / 390) *100vw);
    margin-top: calc((8 / 390) *100vw);
  }
  .attention-content-desc + .attention-content-ttl {
    margin-top: calc((12 / 390) *100vw);
  }
  .attention-content-list {
     margin-top: calc((8 / 390) *100vw);
  }
  .attention-content-list li {
    font-size: calc((14 / 390) *100vw);
  }
  .attention-content-list li + li {
    margin-top: calc((8 / 390) *100vw);
  }
  .attention-content-list li span {
    padding-left:0em
  }
}


/**************************
event
***************************/
.event {
  background: #0A1F4A;
}
.event-header {
  color: #fff;
  text-align: left;
  max-width: 1440px;
  margin: 0 auto;
  width: 95%;
  font-family: "Noto Serif JP", sans-serif;
}

.event-ttl-en {
  color: #fff;
  text-align: left;
  font-size: 68px;
  letter-spacing: 0
}

.event-ttl-en span {
  font-size: 50px;
}

.event-ttl-en::before {
  content: none;
}

.event-ttl {
  font-size: 21px;
}

@media screen and (max-width: 768px) {
  .event-ttl-en {
    font-size: calc((36 / 390) *100vw);
  }

  .event-ttl-en span {
    font-size: calc((26 / 390) *100vw);
  }

  .event-ttl {
    font-size: calc((14 / 390) *100vw);
  }
}


/**************************
first event
***************************/
.firstEvent {
  padding-top: 130px;
  padding-bottom: 100px;
}
.tourMap-content {
  width: calc(100% - 40px);
  background: #F2F2F2;
  padding: 170px 0 60px;
  margin: 40px auto;
  border-radius: 60px;
  text-align: center;
  position: relative;
}
.tourMap-content svg {
  max-width: 100%;
}
.tourMap-inner {
  max-width: 1200px;
  width: 95%;
  margin: 0 auto;
  position: relative;
}

.tourMap-pin {
  position: absolute;
  background: url(/cms/feature/grandhandlingtour/img/icon_map-pin.png) no-repeat;
  width: 39px;
  height: 52.45px;
  transition: 0.3s;
}
.tourMap-item:has(.tourMap-map-event-link:hover) .tourMap-pin {
  background: url(/cms/feature/grandhandlingtour/img/icon_map-pin-blue.png) no-repeat;
  transform: translateY(-5px);
  z-index: 2;
}

.tourMap-map-event {
  position: absolute;
  /* transform: translate(-50%, -50%); */
  text-align: left;
  padding: 5px 5px 10px;
  max-width: 350px;
  font-family: "Noto Serif JP", serif;
  width: 100%;
}

.tourMap-map-event-cat {
  color: #fff;
  font-size: 15px;
  font-weight: bold;
  margin-bottom: 4px;
}

.tourMap-map-event-content {
  background: linear-gradient(135deg, #091C55,#0B7A95 );
  padding: 10px;
  color: #fff;
}

.tourMap-map-event-place {
  display: flex;
  justify-content: left;
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid;
  padding-bottom: 6px;
  letter-spacing: 2.5px;
  margin: 16px 0 6px;
}

.tourMap-map-event-place-num {
  color: #fff;
  border-radius: 50%;
  font-size: 18px;
  display: flex;
  width: 32px;
  height: 32px;
  justify-content: center;
  align-items: center;
  font-family: "Century", serif;
}

.tourMap-map-event-status {
  background: #DBDBDB;
  position: absolute;
  color: #707070;
  clip-path: polygon(0 0, 100% 0%, 100% 100%, 20% 100%);
  font-weight: 500;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  top: -5px;
  right: 6px;
  font-size: 16px;
  width: 135px;
  text-align: right;
  padding-right: 1em;
  height: 35px;
  line-height: 35px;
  font-weight: bold;
  letter-spacing: 1px;
}
.tourMap-map-event-status[data-status="予約受付中"] {
  background: #22AC7C;
  color: #fff;
}
.tourMap-map-event-status[data-status="予約終了"] {
  width: 120px;
}

.tourMap-map-event-place-area {
  font-size: 18px;
  font-weight: bold;
}

.tourMap-map-event-ttl {
  font-size: 15px;
  margin-top: 6px;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  letter-spacing: 1px;
  margin: 10px 0;
}

.tourMap-map-event-term-area {
  background: #399BB7;
  display: inline-block;
  padding: 5px 10px;
  font-size: 13px;
  font-weight: bold;
  margin-top: 8px;
  color: #fff;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  margin-bottom: 18px;
}

.tourMap-map-event-term {
  font-size: 16px;
}

.tourMap-map-event-link {
  text-align: right;
  color: #003093;
  background: #fff;
  font-size: 14px;
  position: absolute;
  bottom: -6px;
  right: 15px;
  padding: 8px 32px 8px;
  border-radius: 20px;
  opacity: 1;
  transition: 0.3s;
}
.tourMap-map-event-link:hover {
  opacity: 1;
  transform: translateY(-5px);
}
.tourMap-map-event-link::after {
  content:"";
  width: 7px;
  height: 7px;
  border-top: 1px solid #003093;
  border-right: 1px solid #003093;
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%) rotate(45deg);
  
}

@media screen and (max-width: 1340px) and (min-width: 769px) {
  .tourMap-inner {
    width: 1300px;
    transform-origin: top left;
    transform: scale(var(--scale, 1));
  }

  .tourMap-content {
    width: calc(1300px * var(--scale, 1));
    overflow: hidden;
    max-height: 105vw;
    padding: 10vw 20px 10vw;
  }
}

@media screen and (max-width: 768px) {
  .firstEvent {
    padding-top: calc((35 / 390) *100vw);
    padding-bottom: calc((50 / 390) *100vw);
  }
  .tourMap-content {
    background: transparent;
    width: calc(100% - ((40 / 390) *100vw));
    padding: 0;
    border-radius: 0;
    margin: calc((10 / 390) *100vw) auto;
  }

  .tourMap-content svg {
    display: none;
  }

  .tourMap-inner {
    width: 100%;
  }

  .tourMap-item+.tourMap-item {
    margin-top: calc((12 / 390) *100vw);
  }

  .tourMap-pin {
    display: none;
  }

  .tourMap-map-event {
    position: relative;
    top: initial !important;
    left: initial !important;
    max-width: initial;
    padding: calc((6 / 390) *100vw) calc((6 / 390) *100vw) calc((10 / 390) *100vw);
  }

  .tourMap-map-event-cat {
    font-size: calc((15 / 390) *100vw)
  }
  .tourMap-map-event-content {
    padding: calc((8 / 390) *100vw)
  }
  .tourMap-map-event-place-num {
    width: calc((32 / 390) *100vw);
    height: calc((32 / 390) *100vw);
    font-size: calc((18 / 390) *100vw);
  }
  .tourMap-map-event-place-area {
    font-size: calc((16 / 390) *100vw)
  }
  .tourMap-map-event-ttl {
    font-size: calc((15 / 390) *100vw)
  }
  .tourMap-map-event-term-area {
    font-size: calc((13 / 390) *100vw);
    padding: calc((5 / 390) *100vw) calc((10 / 390) *100vw);
    margin-top: calc((8 / 390) *100vw);
  }
  .tourMap-map-event-term {
    font-size: calc((16 / 390) *100vw);
  }
  .tourMap-map-event-link {
    font-size: calc((12 / 390) *100vw);
    bottom: calc((15 / 390) *100vw);
    right: calc((11 / 390) *100vw);
    padding: calc((2 / 390) *100vw) calc((10 / 390) *100vw) calc((3 / 390) *100vw);
    border-radius: calc((20 / 390) *100vw);
  }
}

/**************************
second event
***************************/
.secondEvent {
  padding-bottom: 130px;
}
@media screen and (max-width: 768px) {
  .secondEvent {
    padding-bottom: calc((40 / 390) *100vw)
  }
}



/**************************
finished campaign
***************************/
.finishedCampaign {
  padding-top: 100px;
  padding-bottom: 130px;
}
.campaign-tabs {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-bottom: 60px;
}

.campaign-tab {
  font-size: 18px;
  font-weight: bold;
  color: #A4A4A4;
  border-bottom: 2px solid #A4A4A4;
  padding: 0 8px;
  cursor: pointer;
  transition: 0.2s;
  font-family: "Noto Serif JP", serif;
}

.campaign-tab[data-id="1"].-current,
.campaign-tab[data-id="1"]:hover {
  color: #D10707;
  border-color: #D10707;
}

.campaign-tab[data-id="2"].-current,
.campaign-tab[data-id="2"]:hover {
  color: #2E921B;
  border-color: #2E921B;
}

.campaign-tab[data-id="3"].-current,
.campaign-tab[data-id="3"]:hover {
  color: #D1B607;
  border-color: #D1B607;
}

.campaign-tab[data-id="4"].-current,
.campaign-tab[data-id="4"]:hover {
  color: #D29300;
  border-color: #D29300;
}

.campaign-tab[data-id="5"].-current,
.campaign-tab[data-id="5"]:hover {
  color: #530CA4;
  border-color: #530CA4;
}


.campaign-content {
  display: none;
}

.campaign-content.-current {
  display: block;
}

.campaign-list {
  gap: 80px 60px;
}


@media screen and (max-width: 1024px) {
  .campaign-list {
    gap: 30px 40px;
  }
 
}
@media screen and (max-width: 768px) {
  .finishedCampaign {
    padding-top: calc((60 / 390) *100vw);
    padding-bottom: 10px;
  }
  .finishedCampaign-header .content-ttl {
    left: calc((95 / 390) * 100vw);
  }
  .finishedCampaign .common-content {
    margin-top: calc((48 / 390) * 100vw);
  }
  .campaign-list {
    gap: calc((20 / 390) *100vw);
  }
  .campaign-tab-wrapper {
    overflow-x: scroll;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    margin-bottom: calc((10 / 390) *100vw);
    padding-bottom: calc((10 / 390) *100vw);
    padding-left: calc((10 / 390) *100vw);
    padding-right: calc((10 / 390) *100vw);
  }
  .campaign-tab-wrapper::-webkit-scrollbar {
    -webkit-appearance: none;
    display: none;
  }
  .campaign-tabs {
    gap: calc((6 / 390) *100vw);;
    width: max-content;
    margin-bottom: 0;
  }
  .campaign-tab {
    font-size: calc((14 / 390) *100vw);
  }
}





/************************
detail
************************/
.donationandfly-detail .forcms_block {
  background: #F5F5F5;
}


.content-inner {
  max-width: 1200px;
  width: 95%;
  margin: 0 auto;
}

.detail-mv {
  padding-top: 54px;
  /* background: #fff; */
}
.mv-inner {
  position: relative;
}
.mv-info {
  display: flex;
  gap: 20px;
  justify-content: left;
  align-items: center;
  margin-bottom: 12px;
}

.mv-event-cat {
  font-size: 18px;
  font-family: "Noto Serif JP", sans-serif;
  background: #FFEF74;
  border-radius: 18px;
  padding: 0 12px;
}
.mv-event-term-area {
  font-size: 19px;
  font-weight: bold;
  color: #7D7D7D;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
}

.mv-event-term {
  font-size: 28px;
  color: #333333;
}

.mv-event-item-modified {
  position: absolute;
  top:0;
  right: 0;
  font-size: 20px;
  color: #959595;
  font-family: "Bebas Neue", sans-serif;
}
.mv-event-ttl {
  font-family: "Noto Serif JP", serif;
  font-size: 31px;
  font-weight: bold;
  text-align: left;
  color: #333333;
  margin-bottom: 36px;
}
.mv-event-ttl:before {
  content: none;
}

.mv-event-img-wrapper {
  position: relative;
  width: 720px;
  margin: 0 auto 100px;
}
.mv-event-img {
  width: 100%;
  height: auto;
  margin: 0 auto
}
.mv-event-img img {
  width: 100%;
}
.mv-event-pref-img {
  position: absolute;
  right: -60px;
  bottom: -40px;
  width: 225px;
}
.mv-event-pref-img img {
  width: 100%;
}
.mv-event-desc {
  font-size: 20px;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.6;
  letter-spacing: 0.05em;
}


@media screen and (max-width: 768px) {
  .mv-inner {
    padding-top: 30px;
  }
  .mv-info {
    gap: 10px;
  }
  .mv-event-cat {
    font-size: 16px;
  }
  .mv-event-term-area {
    font-size: 13px;
  }
  .mv-event-term {
    font-size: 19px;
  }
  .mv-event-item-modified {
    font-size:14px;
  }
  .mv-event-ttl {
    font-size: 20px;
    margin-bottom: 10px;
  }
  .mv-event-img-wrapper {
    width: 100%;
    margin-bottom: 30px;
  }
  .mv-event-pref-img {
    width: 103px;
    bottom: -20px;
    right: 10px;
  }
  .mv-event-desc {
    font-size: 14px;
  }
}


.article {
  font-family: "Noto Sans JP", sans-serif;
  /* background: #fff; */
  padding-top: 80px;
}
.article-full {
  width: 100%;
}
.article img {
  margin-bottom: 30px;
}
.article p {
  font-size: 16px;
  margin-bottom: 30px;
}

.article-half {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}
.article-half > div {
  width: calc((100% - 20px) / 2)
}
@media screen and (max-width: 768px) {
  .article {
    padding-top: 40px;
  }
  .article img {
    margin-bottom: 12px;
  }
  .article p {
    font-size: 14px;
    margin-bottom: 20px;
  }
  .article-half {
    gap: 12px;
    flex-wrap: wrap;
  }
  .article-half > div {
    width: 100%;
  }
  .article-half > div:has(img) {
    order: 1;
  }
  .article-half > div:has(p) {
    order: 2;
  }
}


.galley {
  /* background: #fff; */
}

.galley-slider {
  overflow-x: visible;
  padding: 0 calc((100% - 1200px) / 2);
  padding-top: 75px;
}

.galley-slider .slick-list {
  overflow: visible;
}

.galley-slider .slick-track {
  display: flex;
  align-items: stretch;
}

.galley-slide {
  width: 560px;
  margin: 0 10px;
  border-radius: 10px;
  box-sizing: border-box;
  height: auto;
}

@media screen and (max-width: 768px) {
  .galley-slider {
    padding: 40px 2.5% 0;
  }
  .galley-slide {
    width: 280px;
  }
  .galley-slide:first-of-type {
    margin-left: 0;
  }
}


.detail {
  /* background: #fff; */
  padding: 50px 0;
}
.detail-inner {
  max-width: 1000px;
  margin: 140px auto 40px;
  background: #EFEBE8;
  padding: 40px 175px;
  font-family: "Noto Serif JP", serif;
}
.detail-ttl {
  font-size: 24px;
  text-align: center;
  font-weight: bold;
  
  color: #0A1F4A;
  margin-bottom: 24px;
}
.detail-inner table {
  width: 470px;
  margin: 0 auto;
  font-size: 14px;
  margin-bottom: 40px
}
.detail-inner table tr + tr th,
.detail-inner table tr + tr td {
  padding-top: 16px;
}
.detail-inner table th {
  width: 60px;
  font-weight: bold;
}
.detail-inner table td {
  width: calc(100% - 60px);
  padding-left: 10px;
}
.detail-inner iframe {
  width: 100%;
  height: 375px;
  margin: 0 auto;
  max-width: 600px;
  display: block;
}

@media screen and (max-width: 768px) {
  .detail {
    
  }
  .detail-inner {
    margin: 0 auto;
    padding: 20px 20px 40px;
  }
  .detail-ttl {
    font-size: 19px;
    margin-bottom: 10px;
  }
  .detail-inner table {
    width: 100%;
    max-width: 470px;
    margin-bottom: 20px;
  }
  .detail-inner table tr + tr th, .detail-inner table tr + tr td {
    padding-top: 12px;
  }
  .detail-inner iframe {
    width: 100%;
    aspect-ratio: 31 / 18;
    height: auto;
  }
}

.registration {
  /* background: #fff; */
  text-align: center;
  padding-bottom:  100px;
}
.registration-button {
  background: #0A1F4A;
  width: 350px;
  height: 70px;
  display: flex;
  justify-content: center;
  margin:  0 auto;
  color:  #fff;
  align-items: center;
  font-size:  17px;
  font-family: "Noto Serif JP", serif;
  position: relative;
}
.registration-button::after {
  content:"";
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  position: absolute;
  top: 50%;
  right: 30px;
  transform: translateY(-50%) rotate(45deg);
}
@media screen and (max-width: 768px){
  .registration {
    padding-bottom: 50px;
  }
}





.returnGift {
  /* background: #EFEBE8; */
  padding-top: 100px;
}
.returnGift-content {
  max-width: 1050px;
  padding-bottom: 30px;
  margin:  30px auto 0;
}
.returnGift-content .block-event-page--goods {
  padding-bottom: 60px;
}
.returnGift-content .block-event-page--goods .block-ranking-r--goods {
  max-width: 240px;
  margin-right: 30px;
  flex:  0 0 240px;
  width: 240px;
  margin-top: 20px;
  margin-bottom: 10px;
}
.returnGift-content  .block-event-page--goods .block-ranking-r--goods:nth-child(4n) {
  margin-right: 0;
}
.returnGift-add-box-inner {
  width: 1000px;
  padding: 50px;
  margin: 0 auto 0;
  background: #F5F5F5;
  display: flex;
  gap: 30px;
  font-family: "Noto Serif JP", serif;
}
.returnGift-add-box-img {
  width: 390px;
}
.returnGift-add-box-img img {
  width: 100%;
}
.returnGift-add-box-text {
  width: calc(100% - 420px);
}
.returnGift-add-box-ttl {
  font-size: 20px;
  margin-bottom: 20px;
  font-weight: bold;
}
.returnGift-add-box-desc {
  font-size: 15px;
}

@media screen and (max-width: 768px) {
  .returnGift {
    padding-top: 0;
  }
  .returnGift-content {
    width: 95%;
  }
  .returnGift-content .block-event-page--goods .block-ranking-r li {
    justify-content: center;
    gap: 20px 18px;
  }
  .returnGift-content .block-event-page--goods .block-ranking-r--goods {
    width: calc((100% - 18px) / 2);
    margin-right: 0;
    margin-top: 0;
    margin-bottom: 0;
    flex: 0 0 calc((100% - 18px) / 2);
  }
  .returnGift-content .block-event-page--goods .block-ranking-r--goods:nth-child(2n) {
    margin-left: 0;
  }
  .returnGift-add-box-inner {
    width: 95%;
    background: #EFEBE8;
    flex-wrap: wrap;
    padding: 20px 20px 30px;
  }
  .returnGift-add-box-img {
    width: 100%;
  }
  .returnGift-add-box-text {
    width: 100%;
  }
  .returnGift-add-box-ttl {
    font-size: 18px;
    margin-bottom: 10px;
  }
  .returnGift-add-box-desc {
    font-size: 14px;
  }
}





.currentEvent {
  padding-top: 100px;
}

.currentEvent .common-content {
  max-width: initial;
  width: 100%;
}
.currentEvent  .common-item {
  margin: 0 20px;
}

.currentEvent .common-list {
  overflow-x: visible;
  padding: 0 calc((100% - 1200px) / 2);
  display: block;
}

.currentEvent .slick-list {
  overflow: visible;
}

.currentEvent .slick-track {
  display: flex;
  align-items: stretch;
}
@media screen and (max-width: 768px) {
  .currentEvent {
    padding-top: 50px;
    padding-bottom: 75px;
  }
  .currentEvent .common-content {
    margin: 0;
  }
  .currentEvent .common-list {
    padding: 0 0 0 5%;
  }
}


.fixedItem {
  position: fixed;
  bottom: -60px;
  left: -53px;
  color: #fff;
  background: #0A1F4A;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  z-index: 999;
}
.fixedItem-inner {
  width: 155px;
  height: 155px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-image: repeating-conic-gradient(currentColor 0% 1%, transparent 1% 2%);
  -webkit-mask-image: radial-gradient(transparent 69%, currentColor 69% 70%, transparent 70%);
  mask-image: radial-gradient(transparent 69%, currentColor 69% 70%, transparent 70%);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.fixedItem a {
  color: #fff;
  text-align: center;
  font-size: 14px;
  position: absolute;
  top: 25px;
  right: 25px;
  z-index: 100000;
}
@media screen and (min-width: 769px) {
  .fixedItem {
    display: none;
  }
}



/**************************
other
***************************/

.other-content {
  width: 100%;
  max-width: initial;
  overflow: hidden;
}

.other-slider {
  overflow-x: visible;
  padding: 0 calc((100% - 1040px) / 2);
  margin-top: 75px;
}

.other-slider .slick-list {
  overflow: visible !important;
}

.other-slider .slick-track {
  display: flex;
  align-items: stretch;
}

.other-slide {
  width: 1040px;
  margin: 0 50px;
  border-radius: 10px;
  box-sizing: border-box;
  height: auto;
  /* display: flex !important; */
}
.other-slide-step {
  color: #003093;
  font-family: "Noto Serif JP", sans-serif;
}
.other-slide-text {
  line-height: 1.8;
}

.other-slider .slick-arrow {
  width: 60px;
  height: 60px;
  background: #0B7A95;
  border-radius: 50%;
  font-size: 0;
  border: 1px solid #0B7A95;
  z-index: 2;
}
.other-slider .slick-arrow::before {
  content: "";
  width: 15px;
  height: 15px;
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
  position: absolute;
  top: 50%;
}

.other-slider .slick-prev {
  left: calc(50% - 540px);
}

.other-slider .slick-prev::before {
  left: 55%;
  transform: translate(-50%, -50%) rotate(-45deg)
}
.other-slider 
.slick-next {
  right: calc(50% - 540px);
}

.other-slider .slick-next::before {
  left: 45%;
  transform: translate(-50%, -50%) rotate(135deg)
}
.other-slider .slick-prev.slick-disabled:before, .slick-next.slick-disabled:before {
  opacity: 1;
}
.other-slider .slick-prev.slick-disabled , .slick-next.slick-disabled {
  opacity: 0.7;
}

.other-slider .slick-dots {
  position: relative;
}
.other-slider .slick-dots li {
  width: 12px;
  height: 12px;
}
.other-slider .slick-dots li button::before {
  background: #fff;
  content: "";
  border-radius: 50%;
  width: 12px;
  height: 12px;
  opacity: 1;
}
.other-slider .slick-dots li.slick-active button::before {
  background: #6CE8FF;
}

.other-slide {
  position: relative;
}
.other-slide-inner {
  background: #001955;
  color: #fff;
  padding: 54px 40px;
  margin-top: 70px;
}
.other-slide-ttl {
  font-family: "Noto Serif JP", serif;
  border-bottom: 1px solid #fff;
  font-size: 25px;
  padding-bottom: 10px;
}
.other-slide-desc {
  font-size: 23px;
  font-family: "Noto Serif JP", serif;
  margin-top: 20px;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.other-slide-btn {
  display: block;
  background: #fff;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  width: 315px;
  height: 53px;
  line-height: 53px;
  font-size: 22px;
  font-weight: 600;
  color: #003093;
  border-radius: 27px;
  margin-top: 45px;
  position: relative;
}
.other-slide-btn::after {
  content:"";
  width: 10px;
  height: 10px;
  border-top:2px solid #003093;
  border-right: 2px solid #003093;
  position: absolute;
  top: 54%;
  right: 20px;
  transform: translateY(-50%) rotate(45deg);
}
.other-slide-img {
  position: absolute;
  top: 0;
  right: 50px;
}
.other-slide-img img {
  width: 100%;
}
.other-slide-text {
  width: 100%;
}

@media screen and (min-width: 769px) {
  .other {
    padding-bottom: 150px;
  }
  .other-slide-text {
    width: 515px;
  }
  .other-slide-desc {
    display: -webkit-box;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }
}
@media screen and (max-width: 768px) {
  .other-slider {
    padding: 0 calc((20 / 390) * 100vw);
    margin-top: calc((40 / 390) * 100vw);
  }
}

@media screen and (max-width: 768px) {
  .forcms_block:has(.other) {
    padding-bottom: 0px;
  }
  .other {
    padding: calc((40 / 390) *100vw) 0 calc((30 / 390) *100vw);
    width: 83.333333333%;
    margin: 0 auto;
  }
  .other-header img {
    width: calc((175 / 390) * 100vw)
  }

  .other-slider {
    padding: 0 calc((15px / 390) *100vw);
    margin-top: calc((40 / 390) *100vw);
  }
  .other-slide {
    overflow: visible;
    width: 100%;
    margin: 0 0px;
    border-radius: 0;
    margin-right: 10px;
  }
  .other-slider .slick-arrow {
    width: 27px;
    height: 27px;
    background: #0B7A95 !important;
    border: none;
  }
  .other .slick-arrow::before {
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff !important;
    border-left: 2px solid #fff !important;
  }
  .other-slider .slick-prev {
    left: 5px;
  }  
  .other-slider .slick-next {
    right: 5px;
  }
  .other-slide-step {
    font-size: calc((28 / 390) * 100vw);
  }
  .other-slide-step span {
    font-size: calc((31 / 390) * 100vw);
  }
  .other-slide-inner {
    margin-top: calc((10 / 390) * 100vw);
    padding: calc((20 / 390) * 100vw);
  }
  .other-slide-img {
    width: calc((136 / 390) * 100vw);
    position: absolute;
    top: 0;
    right: calc((18 / 390) * 100vw);
  }
  .other-slide-img img {
    border-radius:  calc((50 / 390) * 100vw);
  }
  .other-slide-ttl {
    font-size: calc((18 / 390) * 100vw);
    padding-bottom: calc((6 / 390) * 100vw);
  }
  .other-slide-desc {
    font-size: calc((14 / 390) * 100vw);
    width: 50%;
    margin-top: calc((6 / 390) * 100vw);
    display: -webkit-box;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }
  .other-slide-btn {
    width: calc((142 / 390) * 100vw);
    height: calc((36 / 390) * 100vw);
    line-height: calc((36 / 390) * 100vw);
    font-size: calc((14 / 390) * 100vw);
    border-radius: calc((18 / 390) * 100vw);
    margin-top: calc((12 / 390) * 100vw);
  }
}





/**************************
second event
***************************/
.second-tour {
  position: relative;
}
.second-tour::before {
  content:"";
  /*background: linear-gradient(180deg, #000938, rgba(23,51,93,0.52), #1F4974,rgba(10,30,87,0.64), #00093D);*/
  width: 100%;
  height: 100%;
  /*position: absolute;*/
  z-index: 1;
}
.second-tour-header {
  /*position: absolute;*/
  top: 50%;
  left: 50%;
  transform :translate(-50%,10%)
}
@media screen and (max-width: 768px) {
  .second-tour {
    max-height: 1700px;
    overflow-y: hidden;
    margin-bottom: 100px;
  }
  .second-tour-header img {
    width: calc((124 / 390) * 100vw);
  }
}