@charset "UTF-8";
/*-----------------------------------------------------
Reset
----------------------------------------------------- */
html, body, div, span,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0; padding: 0; border: 0; font-size: 100%; vertical-align: baseline;
}

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section , main {
	display: block;
}

a:link, a:visited, a:hover, a:active { color: #323232; text-decoration: none; }

html { scroll-behavior:smooth; scrollbar-gutter: stable; }
/*[id] {scroll-margin-top:40px;}*/
body { line-height: 1; text-align: justify; background: #fff; color: #323232; font-family: "M PLUS 1p", sans-serif; }
ol, ul { list-style: none; }
table { border-collapse: collapse; border-spacing: 0; }

* { margin: 0; padding: 0; }
img { max-width: 100%; width: 100%; height: auto; vertical-align: bottom; flex-shrink: 0; }
picture { display: block; }
p.small { margin-top: 15px; text-align: center; font-size: 12px; }

/*滞在色変*/
#Index nav.localnav #menu01 a , #Outline nav.localnav #menu02 a , #Plan nav.localnav #menu03 a , #Location nav.localnav #menu04 a , #Quality nav.localnav #menu05 a { color: #515151; }

/*オーバーレイ*/
.overlay { background: #fff; position: fixed; top: 0; left: 0; height: 100%; width: 100%; z-index: 10000; }

/*fade*/
.fade { opacity: 0; transition: opacity 1.5s; }
.fade.is_inview { opacity: 1; transition-delay: .8s; }

.fade_early { opacity: 0; transition: opacity 1s; }
.fade_early.is_inview { opacity: 1; transition-delay: .1s; }

.fadeup { opacity: 0; transform: translateY(30px); transition: opacity 2s, transform .8s; }
.fadeup.is_inview { opacity: 1; transform: translateY(0); transition-delay: .1s; }
.fadeup02 { opacity: 0; transform: translateY(30px); transition: opacity 2s, transform .8s; }
.fadeup02.is_inview  { opacity: 1; transform: translateY(0); transition-delay: .2s; }
.fadeup03 { opacity: 0; transform: translateY(30px); transition: opacity 2s, transform 1s; }
.fadeup03.is_inview  { opacity: 1; transform: translateY(0); transition-delay: .3s; }

.center { text-align: center; }
.left { text-align: left; }
.right { text-align: right; }

/*-----------------------------------------------------

common

----------------------------------------------------- */
#Stamp_rally, #Panel, #Card, #Goods, #Parking {content-visibility:auto; contain-intrinsic-size: 1px 1200px;}

h1 , h2 , h3 , h4 , h5 { font-feature-settings: "palt"; font-weight: initial; line-height: 1.5; }
.pc { display: block; }
.tab { display: none; }
.sp { display: none; }
p { font-feature-settings: "palt"; line-height: 1.6; }

/*[data-overDirection="full"] { width: 100vw; margin: 0 calc(50% - 50vw); }*/
[data-size="w750"]{ max-width: 750px; margin: 0 auto; }
[data-size="w800"]{ max-width: 800px; margin: 0 auto; }
[data-size="w900"]{ max-width: 900px; width: 90%; margin: 0 auto; }
[data-size="w1000"]{ max-width: 1000px; width: 90%; margin: 0 auto; }
[data-size="w1200"]{ max-width: 1200px; width: 90%; margin: 0 auto; }
[data-size="padding_inner"]{ padding-left: 20px; padding-right: 20px; box-sizing: border-box; margin: 0 auto; }


:root {
	--blue-color: #3331ba;
/*  --purple-color: #87217b;*/
  --pink-color: #f757a3;
  --purple-color: #4c3598;
}

.line { border:solid #bb915c82 .3px; margin-bottom: 40px; }
.center { text-align: center; }
.left { text-align: left; }
.right { text-align: right; }

.kv { background: url("../img/kv_bg.png")no-repeat; background-size: cover; width: 100%; height: 100vh; position: relative; animation: slideBackground 8s ease-out forwards; background-position: left; }
@keyframes slideBackground {
  0% {
    background-position: 0% center;   /* 左端 */
  }
  100% {
    background-position: 20% center;  /* 少しだけ右へ */
  }
}
.kv .kv_catch { position:absolute; top:10%; left:30%; transform:translateX(-50%); width:90vw; max-width:640px; z-index:2; }
.kv .kv_catch img { width:100%; height:auto; }
.kv .kv_set { width: 100%; position: absolute; bottom: 0; }
.kv .kv_bg_sp { display: none; }

.news { position: relative; z-index: 1; margin-bottom: 80px; }
.news .news_inner {display:flex; align-items:flex-start;}
.news h3 { font-size: clamp(1.25rem, 1.172rem + 0.39vw, 1.563rem); font-weight: 700; margin-right: 30px; padding-top: 8px; }
.news h3::before { content: ''; display: inline-block; background: url("../img/icon_news.svg")no-repeat; width: 10px; height: 11px; background-size: contain; vertical-align: 4px; margin-right: 10px; }
.news .typing {position:relative; display:inline-block; flex:0 0 auto; padding-left:20px;}
.news .typing::before {content:''; position:absolute; left:0; top:0.8em; width:10px; height:11px; background:url("../img/icon_news.svg") no-repeat; background-size:contain;}
.news .typing__text {display:inline-block; position:relative;}
.news .typing__text span { display:inline-block; opacity:0; transform:translateY(0.1em); animation:reveal 4.2s ease-in-out infinite; }
.news .typing__text span:nth-child(1) { animation-delay:0s; }
.news .typing__text span:nth-child(2) { animation-delay:0.2s; }
.news .typing__text span:nth-child(3) { animation-delay:0.4s; }
.news .typing__text span:nth-child(4) { animation-delay:0.6s; }
@keyframes reveal {
  0% { opacity:0; transform:translateY(0.1em); }
  15% { opacity:1; transform:translateY(0); }
  60% { opacity:1; transform:translateY(0); }
  80% { opacity:0; transform:translateY(0.1em); }
  100% { opacity:0; transform:translateY(0.1em); }
}

.news dl { overflow-y:auto; box-sizing:border-box; padding-top:15px; width: 100%; }
.news dl div { display: flex; align-items: baseline; }
.news dl div:not(:last-child) { margin-bottom: 20px; }
.news dl dt { color: var(--purple-color); background: #fff; padding: 5px 10px; box-sizing: border-box; font-size: clamp(0.875rem, 0.844rem + 0.16vw, 1rem); font-weight: 700; margin-right: 20px; max-width: 190px; width: 100%; text-align: center; }
.news dl dt::before { content: ''; display: inline-block; background: url("../img/icon_date.svg")no-repeat; background-size: contain; width: 12px; height: 13px; margin-right: 3px; vertical-align: -1px; }
.news dl dd { line-height: 1.4; font-size: clamp(0.938rem, 0.891rem + 0.23vw, 1.125rem);  }
.news dl dd a { text-decoration: underline; }
.news svg { fill:#e6daf5 }

.intro_container { background: url("../img/intro_bg.png")no-repeat; background-size: cover; background-position: center; padding: 60px 0 350px; position: relative; }
.intro_container .kv_chara_img { margin-bottom: 50px; }
.intro_container .txt { text-align: center; font-size: clamp(0.938rem, 0.828rem + 0.55vw, 1.375rem); font-weight: 600; margin-bottom: 120px; }
.intro_container .btn_wrap { position: relative; /*z-index: 1;*/ }
.intro_container .btn_wrap a.btn_main { max-width: 550px; width: 100%; display: block; margin: 0 auto 80px; filter: drop-shadow(0px 7px 7px rgba(79, 67, 177, 0.6)); }
.intro_container .btn_wrap .btn_anchor { display: flex; align-items: center; justify-content: center; gap: 30px; }
.intro_container .btn_wrap .btn_anchor:not(:last-child) { margin-bottom: 25px; }
.intro_container .btn_wrap .btn_anchor a { filter: drop-shadow(0px 2px 5px rgba(479, 47, 37, 0.6)); }
.intro_container .btn_wrap .btn_anchor a.btn01 , .intro_container .btn_wrap .btn_anchor a.btn03 { max-width: 335px; }
.intro_container .btn_wrap .btn_anchor a.btn02 , .intro_container .btn_wrap .btn_anchor a.btn04 { max-width: 288px; }
.intro_container .btn_wrap a { transition: .15s; }
.intro_container .btn_wrap a:hover { filter: none; transform: translateY(5px); }
@media (hover: none) and (pointer: coarse) {
  .intro_container .btn_wrap a, .cv_area .btn_wrap a { filter: none !important; }
}
/*馬蹄パーツ*/
.intro_container img.parts_bg01 { position: absolute; top: 10%; width: 180px; left: 50px; }
.intro_container img.parts_bg02 { position: absolute; top: 20%; width: 112px; left: 160px; }
.intro_container img.parts_bg03 { position: absolute; top: 30%; width: 77px; left: 100px; }
.intro_container img.parts_bg04 { position: absolute; top: 50%; width: 200px; left: 50px; }
.intro_container img.parts_bg05 { position: absolute; top: 55%; width: 90px; left: 100px; }
.intro_container img.parts_bg06 { position: absolute; top: 70%; width: 200px; left: 130px; }
.intro_container img.parts_bg07 { position: absolute; top: 10%; width: 105px; right: 80px; }
.intro_container img.parts_bg08 { position: absolute; top: 20%; width: 230px; right: 20px; }
.intro_container img.parts_bg09 { position: absolute; top: 35%; width: 133px; right: 50px; }
.intro_container img.parts_bg10 { position: absolute; top: 40%; width: 60px; right: 10px; }
.intro_container img.parts_bg11 { position: absolute; top: 50%; width: 165px; right: 50px; }
.intro_container img.parts_bg12 { position: absolute; bottom: 8%; width: 240px; right: 5%; }
.intro_container img.parts_bg13 { position: absolute; bottom: 5%; width: 150px; right: 2%; }

/*スライド（写真）*/
#Slider_wrapper { position: relative; }
/*#Slider_wrapper .slide_logo { position: absolute; right: 0; left: 0; margin: auto; z-index: 2; max-width: 700px; width: 90%; top: -70%; }*/
#Slider_wrapper .slide_logo { position: absolute; right: 0; left: 0; margin: auto; z-index: 2; top: -200px; max-width: 700px; width: 90%; }
#Slider img { width: 100%; }

/*スライド（パネル）*/
#Slider_panel .slick-slide { padding:0 12px; height:215px; display:flex; align-items:center; justify-content:center; }
#Slider_panel img { max-height:100%; width:auto; object-fit:contain; display:block; }

/*スタンプラリー*/
#Stamp_rally { background: url("../img/border_bg.png")repeat; padding: 100px 0; }
#Stamp_rally .sec_container { border: 5px solid #87217b; border-radius: 70px; background: #fff; padding: 80px; box-sizing: border-box; }
#Stamp_rally .sec_intro { margin-bottom: 50px; }
#Stamp_rally .sec_container .sr_date { width: 80%; margin: 0 auto 30px; }
#Stamp_rally .flex { display: flex; justify-content: space-between; align-items: center; gap: 30px; }
#Stamp_rally .txt { font-size: clamp(1.125rem, 0.969rem + 0.78vw, 1.75rem); font-weight: 700; line-height: 1.5; margin-bottom: 15px; }
#Stamp_rally .txt_big { font-size: clamp(1.375rem, 1.172rem + 1.02vw, 2.188rem); font-weight: 700; line-height: 1.3; }
#Stamp_rally .sec_intro picture { max-width: 300px; width: 100%; }
#Stamp_rally .present h2.en::before { content:''; background: url("../img/en_present.svg")no-repeat; display: block; background-size: contain; aspect-ratio: 132 / 68; width: 132px; margin: 0 auto; }
#Stamp_rally .spot h2.en::before { content:''; background: url("../img/en_spot.svg")no-repeat; display: block; background-size: contain; aspect-ratio: 76 / 68; width: 76px; margin: 0 auto; }
#Stamp_rally h2.en { text-align: center; font-size: clamp(1.875rem, 1.563rem + 1.56vw, 3.125rem); font-weight: 700; margin-bottom: 30px; }

#Stamp_rally .present_wrap { display: flex; justify-content: space-between; flex-wrap: wrap; margin-bottom: 50px; margin-top: 60px; }
#Stamp_rally .present_item { position: relative; border-radius: 10px; width: 47%; }
#Stamp_rally .present_item:first-of-type .ttl::before { content: ''; position: absolute; background: url("../img/sr_pre1_icon.svg")no-repeat; background-size: contain; aspect-ratio: 124 / 124; width: 124px; display: block; left: -20px; top: -80px; z-index: 1; }
#Stamp_rally .present_item:last-of-type .ttl::before { content: ''; position: absolute; background: url("../img/sr_pre2_icon.svg")no-repeat; background-size: contain; aspect-ratio: 205 / 90; width: 205px; display: block; left: -20px; top: -65px; z-index: 1; }
#Stamp_rally .present_item .item_inner { background: #f9f6fd; padding: 25px;
 box-sizing: border-box; border-radius: 0 0 10px 10px; }
#Stamp_rally .present_item .item_inner p.small { margin-top: 5px; }
#Stamp_rally .present_wrap .ttl { background: #3F3396; background: linear-gradient(70deg, rgba(63, 51, 150, 1) 0%, rgba(247, 0, 128, 0.85) 100%); color: #fff; text-align: center; padding: 10px 20px; box-sizing: border-box; font-size: clamp(1.563rem, 1.328rem + 1.17vw, 2.5rem); font-weight: 700; border-radius: 10px 10px 0 0; line-height: 1; }
#Stamp_rally .present_wrap .ttl span { font-size: clamp(2.5rem, 2.188rem + 1.56vw, 3.75rem); vertical-align: -3px; }
#Stamp_rally .present_wrap .name { font-size: clamp(1.25rem, 1.031rem + 1.09vw, 2.125rem); font-weight: 700; text-align: center; color: var(--blue-color);}
#Stamp_rally .date { font-size: clamp(0.875rem, 0.813rem + 0.31vw, 1.125rem); font-weight: 700; text-align: center; margin-bottom: 15px; line-height: 1.4; }
#Stamp_rally .present_item .sub_txt { text-align: center; font-size: clamp(0.875rem, 0.844rem + 0.16vw, 1rem); color: #fb59a5; font-weight: 700; margin-top: 10px; }

/*common annotation*/
.annotation p::before { content: ''; display: inline-block; background: url("../img/icom_an.svg")no-repeat; aspect-ratio: 19 / 18; width: 19px; vertical-align: -3px; margin-right: 3px; }
.annotation p { font-size: clamp(0.688rem, 0.641rem + 0.23vw, 0.875rem); color: #f50006; background: #fffbe2; padding: 5px 20px; margin: 10px 0; box-sizing: border-box; }

/*common location*/
.location { max-width: 1000px; margin: 0 auto; border-radius: 10px; }
.location .flex { display: flex; justify-content: space-between; gap: 20px; }
.location .location_inner { padding: 40px; border-radius: 0 0 10px 10px; margin-bottom: 80px; background: #fff; }

.location .ttl { font-size: clamp(1.125rem, 0.938rem + 0.94vw, 1.875rem); font-weight: 700; text-align: center;  color: #fff; border-radius: 10px 10px 0 0; padding: 3px 0 1px }
.location .mihohureai_plaza { max-width: 450px; width: 100%; }
.location .mihohureai_plaza img { border-radius: 10px; }
.location .name { font-size: clamp(1.125rem, 1.016rem + 0.55vw, 1.563rem); font-weight: 700; margin-bottom: 5px; }
.location .addoress { font-size: clamp(0.813rem, 0.781rem + 0.16vw, 0.938rem); }

#Stamp_rally .location .location_inner , #Goods .location .location_inner{ border: 3px solid var(--blue-color); }
#Stamp_rally .location .ttl , #Goods .location .ttl { background: var(--blue-color); }
#Stamp_rally .location .name , #Goods .location .name { color: var(--blue-color); }
#Panel .location .location_inner { border: 3px solid var(--pink-color); margin-bottom: 0; }
#Panel .location .ttl { background: var(--pink-color); }

/*common map_spot*/
.spot { max-width: 800px; margin: 0 auto; }
.spot iframe { border-style: none; margin-bottom: 30px; }

/*iframe埋め込み*/
.map-embed { width:100%; max-width:100%; overflow:hidden; aspect-ratio: 16/9; min-height:240px; }
#mymap-fallback { font-size: 14px; }
.map_annotation { font-size: 13px; }
@supports not (aspect-ratio: 1) {
  .map-embed{ position:relative; height:0; padding-top:56.25%; } /* 16:9 */
  .map-embed > iframe{ position:absolute; inset:0; width:100%; height:100%; display:block; }
}

.spot_details { display: flex; flex-wrap: wrap; justify-content: space-between; margin-top: 30px; }
.spot_details .detail { width: 48%; counter-increment: item-count; margin-bottom: 30px; }
.spot_details .detail .name::before { content: counter(item-count) ". "; display: inline-block; background: url("../img/icon_spot.svg")no-repeat; background-size: contain; aspect-ratio: 21 / 31; padding-left: 50px; }
.spot_details .detail .name { font-size:clamp(1rem, 0.906rem + 0.47vw, 1.375rem); font-weight: 700; border-bottom: 1px solid; color: var(--blue-color); margin-bottom: 10px; text-indent: -1em; padding-left: 1em; }
.spot_details .info { font-size: clamp(0.813rem, 0.797rem + 0.08vw, 0.875rem);}
.spot_details .detail:nth-last-child(n+2) { margin-bottom: 30px; }

ul.annotation_list li { font-size: clamp(0.75rem, 0.719rem + 0.16vw, 0.875rem); line-height: 1.4; }
ul.annotation_list li::before { content: '・'; display: inline-block; font-size: clamp(0.75rem, 0.719rem + 0.16vw, 0.875rem); }

.cv_area { background: url("../img/cv_bg.png")no-repeat; background-position: center; background-size: cover; width: 100%; box-sizing: border-box; }
.cv_area .cv_area_inner::before { content: ''; display: inline-block; background: url("../img/cv_chara01.png")no-repeat; background-size: contain; aspect-ratio: 174 / 224; width: 174px; position: absolute;}
.cv_area .cv_area_inner::after { content: ''; display: inline-block; background: url("../img/cv_chara02.png")no-repeat; background-size: contain; aspect-ratio: 328 / 380; width: 290px; position: absolute; bottom: 0; right: 0; }
.cv_area .cv_area_inner { max-width: 1300px; width: 100%; margin: 0 auto;  position: relative; padding: 50px 5%; box-sizing: border-box; }
.cv_area .cv_ttl { max-width: 690px; width: 90%; margin: 0 auto 30px; /*z-index: 1;*/position: relative; }
.cv_area .btn_wrap { margin-bottom: 30px; }
.cv_area .btn_wrap a.btn_main { max-width: 550px; width: 100%; display: block; margin: 0 auto; filter: drop-shadow(0px 7px 7px rgba(79, 67, 177, 0.6)); transition: .15s; z-index: 1;*/ position: relative; }
.cv_area .btn_wrap a:hover { filter: none; transform: translateY(5px); }
.cv_area .precautions { text-align: center; }
.cv_area .modal { position:fixed; inset:0; display:none; z-index: 9999; }
.cv_area .modal.is-open { display:block; }
.cv_area .modal__overlay { position:absolute; inset:0; background:rgba(0,0,0,.5); }
.cv_area .modal__panel { position:relative; max-width:800px; width:90vw; max-height:80vh; overflow:auto; margin:10vh auto 0; background:#fff; border-radius:18px; padding:35px 25px; box-shadow:0 20px 60px rgba(0,0,0,.25); transform-origin:center top; box-sizing: border-box; }
.cv_area .modal__close { position:absolute; top:8px; right:12px; font-size:24px; background:transparent; border:0; cursor:pointer; color: #a1a1a1; }
body.-modalOpen { overflow:hidden; }
.cv_area .js-open-modal { appearance:none; display:block; font-size:clamp(16px,1.3vw,24px); letter-spacing:.02em; line-height:1.3; text-align:center; border:0; border-radius:0; position:relative; cursor:pointer;     background: none; display: inline-block; border-bottom: 2px solid #333333; padding-bottom: 3px; color: #333333; }

.cv_area .js-open-modal::before { content:"＋"; position:absolute; right:-20px; top:43%; transform:translateY(-50%); width: 16px; height: 16px; border-radius:50%; background:#777; color:#fff; font-weight:700; font-size: 11px; line-height: 17px; text-align:center; }
.cv_area .js-open-modal:hover { filter:brightness(1.2); opacity: .5; transition: .3s; }
.cv_area .js-open-modal:hover::before { transform:translateY(-50%) scale(1.2); transition: .3s; }
.cv_area .js-open-modal:focus-visible { outline:3px solid rgba(135,33,123,.4); outline-offset:3px; }
.cv_area .modal .modal__content article:not(:last-child) { margin-bottom: 30px; }
.cv_area .modal .modal__content p.modal__subttl { font-size: clamp(1.125rem, 1.094rem + 0.16vw, 1.25rem); margin-bottom: 10px; font-weight: 700; position: relative; padding-left: 18px; }
.cv_area .modal .modal__content p.modal__subttl::before { content: ''; display: inline-block; width: 4px; height: 100%; background: #bebebe; padding-right: 3px; position: absolute; left: 0; }
.cv_area .modal .modal__content p.txt { font-size: clamp(0.875rem, 0.828rem + 0.23vw, 1.063rem); }

#Slider_panel { margin-bottom: 60px; }
#Panel { background: var(--pink-color); background-size: 100%; padding: 30px; }
#Panel .panel_inner { padding: 70px 0; box-sizing: border-box; border-radius: 30px; background: url("../img/panel_bg.png")no-repeat; background-size: cover; overflow: hidden; }
#Panel h2 { text-align: center; margin-bottom: 30px; }
#Panel h2.en::before { content:''; background: url("../img/en_panel.svg")no-repeat; display: block; background-size: contain; aspect-ratio: 92 / 68; width: 92px; margin: 0 auto; }
#Panel h2 img { max-width: 620px; width: 100%; }
#Panel .txt { font-size: clamp(1rem, 0.875rem + 0.63vw, 1.5rem); font-weight: 700; text-align: center; margin-bottom: 30px; }
#Panel .panel_subttl { max-width: 985px; width: 90%; margin: 0 auto 30px; }
#Panel .panel_main { max-width: 400px; width: 100%; margin: 0 auto; }
#Panel .panel_main img { opacity: 1 !important; transform: none !important; }
#Panel .slider_kv { margin-bottom: 60px; }

#Card { background: #F2EFFC; background: linear-gradient(180deg, rgba(242, 239, 252, 1) 0%, rgba(199, 189, 243, 0.85) 100%); padding: 80px 0; box-sizing: border-box; }
#Card h2 { text-align: center; margin-bottom: 30px; }
#Card h2.en::before { content:''; background: url("../img/en_card.svg")no-repeat; display: block; background-size: contain; aspect-ratio: 91 / 68; width: 91px; margin: 0 auto; }
#Card h2 img { max-width: 675px; width: 100%; }
#Card .txt { font-size: clamp(1rem, 0.875rem + 0.63vw, 1.5rem); font-weight: 700; text-align: center; }
#Card ul.card_wrap {display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px; margin:50px auto 120px; max-width:1200px;}
#Card ul.card_wrap li {flex-shrink:0; width:calc((100% - (20px * 4)) / 5); list-style:none;}
#Card .blk { border: 5px solid var(--purple-color); border-radius: 30px; background: #fff; position: relative; max-width: 1000px; margin: 0 auto; padding: 60px 50px; box-sizing: border-box; }
#Card .blk:not(:last-of-type) { margin-bottom: 80px; }
#Card .blk.nyusyu::before { content: ''; display: block; background: url("../img/card_nyusyu.svg")no-repeat; background-size: contain; aspect-ratio: 447 / 72; width: 447px; position: absolute; top: -40px; left: 30px; filter: drop-shadow(10px 5px 5px rgba(79, 67, 177, 0.6)); }
#Card .blk .txt { font-size: clamp(1rem, 0.938rem + 0.31vw, 1.25rem); margin-bottom: 30px; }
#Card .blk.nyusyu .txt span { font-size: 70%; }
#Card .blk img { max-width: 690px; width: 100%; margin: 0 auto; display: block; }
#Card .blk.tenpo picture { margin: 30px auto; width: 85%; }
#Card .blk.tenpo::before { content: ''; display: block; background: url("../img/card_tenpo.svg")no-repeat; background-size: contain; aspect-ratio: 318 / 72; width: 318px; position: absolute; top: -40px; left: 30px; filter: drop-shadow(10px 5px 5px rgba(79, 67, 177, 0.6)); }
#Card .nyusyu p.small { font-size: clamp(0.688rem, 0.641rem + 0.23vw, 0.875rem); color: #e81f1f; }

#Goods { background: #faf5ff; padding: 80px 0;}
#Goods h2 { text-align: center; margin-bottom: 30px; }
#Goods h2.en::before { content:''; background: url("../img/en_goods.svg")no-repeat; display: block; background-size: contain; aspect-ratio: 91 / 68; width: 91px; margin: 0 auto; }
#Goods h2 img { max-width: 425px; width: 100%; }
#Goods .txt { font-size:clamp(1rem, 0.875rem + 0.63vw, 1.5rem); font-weight: 700; text-align: center; }
#Goods .period { display: flex; align-items: stretch; justify-content: center; margin: 30px auto; }
#Goods .period .period_ttl { font-size: clamp(0.875rem, 0.828rem + 0.23vw, 1.063rem); font-weight: 700; background: var(--pink-color); color: #fff; padding: 10px;}
#Goods .period .period_txt { font-size: clamp(0.875rem, 0.828rem + 0.23vw, 1.063rem); font-weight: 700; color: var(--pink-color); background: #fff; display: flex; align-items: center; justify-content: center; padding: 0 15px; }
#Goods .goods_wrapper {display:flex; flex-wrap:wrap; gap:30px; margin-bottom:60px; perspective:800px; margin-left:auto; margin-right:auto;}
#Goods .goods_item {background:#3F3396; background:linear-gradient(90deg, rgba(63,51,150,1) 0%, rgba(247,0,128,0.85) 100%); flex:0 1 calc((100% - (30px * 3)) / 4); padding:5px; border-radius:20px; box-sizing: border-box; }
#Goods .goods_item .goods_img {background:#fff; border-radius:15px 15px 0 0; padding:20px; box-sizing:border-box;}
#Goods .goods_item .goods_img img {backface-visibility:hidden; will-change:transform, opacity;}

/*グッズモーダル*/
.hide-area{ display: none; }
.modaal-close:after,  .modaal-close:before{ background:#ccc; }
.modaal-close:focus:after, .modaal-close:focus:before, .modaal-close:hover:after, .modaal-close:hover:before{ background:#666; }
.modal-wrapper { position: relative; width: 80%; max-width: 500px; max-height: 70%; padding: 20px; margin: auto; overflow: scroll; background-color: #FEFEFE; border-radius: 5px; }
.modaal-image .modaal-inner-wrapper { padding: 20%!important; box-sizing: border-box; }
/*グッズモーダル end*/

#Goods .goods_name {font-size:clamp(1rem, 0.938rem + 0.31vw, 1.25rem); font-weight:700; text-align:center; color:#fff; line-height: 1.4; }
#Goods .txt_area { padding: 10px 5px; }
#Goods .price { font-size: clamp(0.813rem, 0.766rem + 0.23vw, 1rem); font-weight: 700; text-align: center; color: #fff; }
#Goods .price span { font-size: 60%; }

#Parking { padding: 80px 0 100px; }
#Parking h2 { font-size: clamp(1.563rem, 1.25rem + 1.56vw, 2.813rem); font-weight: 700; text-align: center; color: var(--blue-color); margin-bottom: 20px; line-height: 1.3; }
#Parking .parking_map { max-width: 800px; margin: 0 auto; text-align: center; }
#Parking .parking_map h3 { text-align: center; font-weight: 700; font-size: clamp(1.125rem, 0.938rem + 0.94vw, 1.875rem); margin-bottom: 20px; }
#Parking img { max-width: 700px; margin: 0 auto; }
#Parking .annotation { text-align: center; margin: 0 auto 20px;}
#Parking .annotation p { background: #fffbe2; padding: 5px 20px; display: inline-block; }

footer { background: url("../img/footer_bg.png")no-repeat; background-size: cover; padding: 40px 0; }
footer p { color: #fff; }
footer .footer_ttl { font-size: clamp(0.875rem, 0.844rem + 0.16vw, 1rem); }
footer .footer_logo { max-width: 400px; width: 100%; margin: 0 auto 20px; }
footer .footer_ttlmunicipality { font-size: 30px; font-weight: 700; }
footer .footer_municipality { font-size: clamp(1.25rem, 1.094rem + 0.78vw, 1.875rem); font-weight: 700; margin-bottom: 10px; }
footer .tel_wrap { margin-bottom: 20px; }
footer .tel_wrap a { font-size: clamp(1.25rem, 1.094rem + 0.78vw, 1.875rem); font-weight: 700; color: #fff; }
footer .tel_wrap img { max-width: 60px; vertical-align: 0px; margin-right: 5px; }
footer small img { max-width: 100px; }
footer .txt_area { text-align: center; }

/*pagetop*/
.l-footer-pagetop { position: sticky; bottom: 0; z-index: 9999; }
.l-footer-pagetop__btn { position: absolute; bottom: 15px; right: 15px; visibility: hidden; opacity: 0; transition: 0.5s; max-width: 60px; }
.l-footer-pagetop__btn.is-show { visibility: visible; opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto !important; }
}

@media (hover: hover) and (pointer: fine) {
    .l-footer-pagetop__btn.is-show:hover { opacity: 0.4; }
}


@media print {
  header , footer { display: none!important; }
}

@media only screen and (max-width: 1024px){
  .kv { background:none; height: initial; }
  .kv .kv_bg_sp { display: block; }
  .kv .kv_catch , .kv .kv_set { display: none; }
}

@media only screen and (max-width: 980px){
  #Goods .goods_item {flex:0 1 calc((100% - 30px) / 2);}
  .cv_area .cv_area_inner { padding-bottom: 200px; }
  .cv_area .cv_area_inner::before { width: 110px; bottom: 6%; left: 10%; }
  .cv_area .cv_area_inner::after { width: 220px; }
}

/*　600pxからレスポンシブ*/
@media only screen and (max-width: 600px){
	.pc { display: none; }
	.sp { display: block; }
  .annotation p { padding: 5px 10px; }
  .annotation p::before { width: 14px; vertical-align: -2px; }
  .kv .kv_catch { top:5%; } 
  h2.en { margin-bottom: 15px; }
  h2.en::before { margin-bottom: 10px; }
  .intro_container img.parts_bg01 { width: 120px; left: 5px; }
  .intro_container img.parts_bg02 { top: 24%; width: 75px; left: 30px; }
  .intro_container img.parts_bg04 { width: 90px; left: -10px; }
  .intro_container img.parts_bg06 { top: 69%; width: 100px; left: 0; }
  .intro_container img.parts_bg07 { width: 90px; right: 0; }
  .intro_container img.parts_bg03 , .intro_container img.parts_bg05 , .intro_container img.parts_bg08 , .intro_container img.parts_bg09 , .intro_container img.parts_bg11 { display: none; }
  .intro_container img.parts_bg12 { width: 130px; }
  .intro_container img.parts_bg13 { width: 110px; right: initial; left: -5%; bottom: 10%; }
  
  .news .news_inner { display: block; }
  .news dl { max-height: 250px; padding-top: 5px; }
  .news dl dt { margin-bottom: 7px; margin-right: 0; }
  .news dl dt::before { margin-right: 5px; vertical-align:-2px; }
  .news dl div { display: block; margin-right: 20px; }
  .news dl div:not(:last-child) { margin-bottom: 15px; }
  
  .spot_details { display: block; }
  .spot_details .detail { width: 100%; }
  .spot_details .detail .name::before { padding-left: 40px; }
  .spot_details .detail:nth-last-child(n+2) { margin-bottom: 20px; }
  .intro_container { padding-bottom: 170px; }
  .intro_container .txt { margin-bottom: 60px; }
  .intro_container .btn_wrap a.btn_main { margin-bottom: 40px; }
  .intro_container .btn_wrap .btn_anchor { display: block; }
  .intro_container .btn_wrap .btn_anchor a { display: block; margin: 0 auto 20px; }
  .intro_container .btn_wrap .btn_anchor a.btn01, .intro_container .btn_wrap .btn_anchor a.btn03 { display: block; margin-bottom: 20px; }
  .intro_container .btn_wrap .btn_anchor a.btn01 , .intro_container .btn_wrap .btn_anchor a.btn03 { width: 70%; }
  .intro_container .btn_wrap .btn_anchor a.btn02 , .intro_container .btn_wrap .btn_anchor a.btn04 { width: 60%; }
  .intro_container .btn_wrap .btn_anchor:not(:last-child) { margin-bottom: 20px; }
  .intro_container .kv_chara_img { margin-bottom: 30px; }
  .location .location_inner { padding: 20px; }
  .location .flex { display: block; }
  
  .cv_area .cv_area_inner::before { width: 90px; }
  .cv_area .cv_area_inner::after { width: 180px; }
  
  .map-embed { aspect-ratio:4/5; }
  @supports not (aspect-ratio: 1) {
    .map-embed{ padding-top:125%; }
  }
  
  #Goods h2 img { width: 80%; }
  #Slider_wrapper .slide_logo { /*position: static; top: auto; z-index: auto; margin: 0 auto 16px;*/ top: -100px; width: 80%; }
  #Stamp_rally h2.en { margin-bottom: 20px; line-height: 1.3; }
  #Stamp_rally .sec_container { border-radius: 20px; padding: 40px 20px; }
  #Stamp_rally .sec_intro picture { margin: 0 auto; }
  #Stamp_rally .flex { display: block; }
  #Stamp_rally .present_wrap { display: block; margin-top: 20px; }
  #Stamp_rally .present_item { width: 100%; }
  #Stamp_rally .present_item .item_inner { padding: 10px; }
  #Stamp_rally .present_item:first-child { margin-bottom: 50px; }
  #Stamp_rally .sec_container .sr_date { width: 100%; }
  #Stamp_rally .txt_big { line-height: 1.4; margin-bottom: 20px; }
  #Stamp_rally .present_wrap .ttl { padding: 10px; }
  #Stamp_rally .present_item:first-of-type .ttl::before { width: 80px; left: -30px; top: -40px; }
  #Stamp_rally .present_item:last-of-type .ttl::before { width: 145px; left: -30px; top: -40px; }
  #Stamp_rally { padding: 60px 0; }
  #Stamp_rally .present h2.en::before { width: 82px; margin-bottom: 10px; }
  #Stamp_rally .spot h2.en::before { width: 56px; margin-bottom: 10px; }
  #Goods h2.en::before { width: 70px; }
  #Stamp_rally .location .location_inner, #Goods .location .location_inner { margin-bottom: 60px; }
  #Stamp_rally .flex .txt_wrap { text-align: center; }
  #Panel { padding: 15px; }
  #Panel h2.en::before { width: 65px; }
  #Panel .panel_inner { padding: 50px 0 20px; border-radius:20px; }
  #Slider_panel { margin-bottom: 40px; }
  #Card h2.en::before { width: 65px; margin-bottom: 10px; }
  #Card ul.card_wrap {gap:16px; margin-bottom: 80px;}
  #Card ul.card_wrap li {width:calc((100% - 16px) / 2);}
  #Card .blk.nyusyu::before { width: 70%; top: -20px; left: -10px; }
  #Card .blk.tenpo::before { width: 50%; top: -20px; left: -10px; }
  #Card .blk { border-radius: 20px; padding: 40px 20px 20px; }
  #Card .blk .txt { text-align: left; }
  #Card .blk:not(:last-of-type) { margin-bottom: 40px; }
  #Goods , #Card { padding: 60px 0; }
  #Goods .goods_wrapper { justify-content: space-between; gap: 15px; margin-bottom: 40px; }
  #Goods .goods_item { flex: 0 1 calc((100% - 15px) / 2); border-radius: 10px; }
  #Goods .goods_item .goods_img { border-radius: 5px 5px 0 0; padding: 10px; }
  .modaal-image .modaal-inner-wrapper { padding: 10%!important; }
  #Parking { padding: 60px 0 130px; }
  #Parking h2 { margin-bottom: 10px; }
  #Parking .annotation p { text-align: left; }
  footer { background: url("../img/footer_bg_sp.png")no-repeat; background-size: cover; padding: 40px 0; }
  footer .tel_wrap img { max-width: 40px; }
}
