@charset "UTF-8";
/* font
----------------------------------------------- */
:root { 
--gothic: 游ゴシック体, YuGothic, 'Yu Gothic', "游ゴシック Medium", "Yu Gothic Medium", 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
--mincho: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "MS P明朝", serif;
--black: #111;
--gold: #c7b060;
}

/* default sp
	----------------------------------------------- */
* { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, 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, section, summary, time, mark, audio, video { padding: 0; margin: 0; font: inherit; word-wrap: break-word; border: 0; vertical-align: baseline; outline: none; }
body { padding: 0; margin: 0; color: var(--black); font-size: 3.5vw; font-family: var(--gothic); -webkit-text-size-adjust: 100%; font-style: normal; line-height: 1; }
article, aside, canvas, details, figcaption, figure, header, footer, hgroup, main, menu, nav, section, summary { display: block; }
blockquote, q { quotes: none; }
strong, b { font-weight: bold; }
ul, ol, li { list-style: none; }
table { border-spacing: 0; border-collapse: collapse; }
img, video, object { height: auto; border: none; display: block; }
ins { background: none; color: #000; text-decoration: none; }
mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
del { text-decoration: line-through; }
abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
hr { height: 1px; padding: 0; margin: 1em 0; border: 0; border-top: 1px solid #ccc; display: block; }
*::before, *::after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
a { color: var(--black); text-decoration: none; display: block; -moz-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); }
a:hover { opacity: 0.6; }
.clearfix::after { content: ''; display: block; clear: both; }
.pc { display: none; }
.sp { display: block; }

/* common sp
----------------------------------------------- */
.wrapper { width: 100%; overflow: hidden; z-index: 1; position: relative; }
.google-map { width: 100%; position: relative; }
.google-map iframe, .google-map object, .google-map embed { width: 100%; height: 100%; position: absolute; top: 0; left: 0; }
.fade { opacity: 0; -moz-transition: 1.5s; -o-transition: 1.5s; -webkit-transition: 1.5s; transition: 1.5s; }
.fade-left { -moz-transform: translateX(-6px); -ms-transform: translateX(-6px); -webkit-transform: translateX(-6px); transform: translateX(-6px); }
.fade-right { -moz-transform: translateX(6px); -ms-transform: translateX(6px); -webkit-transform: translateX(6px); transform: translateX(6px); }
.fade-bottom { -moz-transform: translateY(6px); -ms-transform: translateY(6px); -webkit-transform: translateY(6px); transform: translateY(6px); }
.fade-active { opacity: 1; -moz-transform: translate(0); -ms-transform: translate(0); -webkit-transform: translate(0); transform: translate(0); }
.fade-curtain { overflow: hidden; opacity: 1; display: table; position: relative; }
.fade-curtain.fade-active::before { visibility: visible; animation: bg-grow-stay 1.2s cubic-bezier(0.33, 1, 0.68, 1) 0.2s forwards; }
.fade-curtain.fade-active .curtain-inner { animation: text-reveal-stay 1.2s cubic-bezier(0.33, 1, 0.68, 1) 0.2s forwards; }
.fade-curtain::before { content: ''; width: 0; height: 100%; background: #fff; z-index: 1; visibility: hidden; position: absolute; top: 0; left: 0; }

.curtain-inner { z-index: 2; display: block; position: relative; white-space: nowrap; clip-path: inset(0 100% 0 0); }
@keyframes bg-grow-stay { 0% { width: 0; }
  100% { width: 100%; } }
@keyframes text-reveal-stay { 0% { clip-path: inset(0 100% 0 0); }
  100% { clip-path: inset(0 0 0 0); } }
.wave { width: 100%; height: 100%; opacity: 1; overflow: hidden; position: relative; display: block; }
.wave::before { content: ''; width: 100%; height: 100%; background: #111; z-index: 2; position: absolute; top: 0; left: 0; opacity: 0; visibility: hidden; }
.wave.fade-active::before { opacity: 1; visibility: visible; animation-name: wave; animation-duration: 1.2s; animation-fill-mode: forwards; }
.wave.fade-active .wave-inner { opacity: 1; visibility: visible; display: block; -moz-transition-delay: 0.6s; -o-transition-delay: 0.6s; -webkit-transition-delay: 0.6s; transition-delay: 0.6s; }
.wave-inner { width: 100%; height: 100%; visibility: hidden; position: relative; display: block; -moz-transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); }

@keyframes wave { 0% { -moz-transform-origin: top left; -ms-transform-origin: top left; -webkit-transform-origin: top left; transform-origin: top left; -moz-transform: scaleX(0); -ms-transform: scaleX(0); -webkit-transform: scaleX(0); transform: scaleX(0); }
  40% { -moz-transform-origin: top left; -ms-transform-origin: top left; -webkit-transform-origin: top left; transform-origin: top left; -moz-transform: scaleX(1); -ms-transform: scaleX(1); -webkit-transform: scaleX(1); transform: scaleX(1); }
  60% { -moz-transform-origin: top right; -ms-transform-origin: top right; -webkit-transform-origin: top right; transform-origin: top right; -moz-transform: scaleX(1); -ms-transform: scaleX(1); -webkit-transform: scaleX(1); transform: scaleX(1); }
  100% { -moz-transform-origin: top right; -ms-transform-origin: top right; -webkit-transform-origin: top right; transform-origin: top right; -moz-transform: scaleX(0); -ms-transform: scaleX(0); -webkit-transform: scaleX(0); transform: scaleX(0); } }
.midashi01 { margin-bottom: 5vw; display: table; position: relative; line-height: 1;}
.midashi01 .en { margin-bottom: 2.5vw; font-size: 10vw; font-family: "Marcellus"; font-weight: 400; line-height: 1.1; letter-spacing: 0.6vw; display: block; }
.midashi01 .jp { font-size: 4vw; font-family: var(--mincho); display: block; }

.more01 { min-width: 55vw; padding: 4vw 6vw; font-size: 3.5vw; text-align: center; background: #fff; border: 1px solid #a5a6a5; -moz-border-radius: 15vw; -webkit-border-radius: 15vw; border-radius: 15vw; display: table; position: relative; }
.more01:after { content: '\f105'; color: var(--gold); font-family: 'icon'; pointer-events: none; position: absolute; top: 50%; right: 5vw; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }

/* header sp
----------------------------------------------- */
.header { width: 100%; height: 20vw; z-index: 10; position: absolute; }
.header-content { width: 100%; height: 100%; position: relative; }
.header-logo { width: 18vw; position: absolute; top: 3.5vw; left: 4vw; }
.header-logo img { width: 100%; }
.header-navi-button { width: 32vw; height: 12vw; background: #2b2b2b; border: 1px solid #868787; cursor: pointer; z-index: 11; position: fixed; top: 4vw; right: 4vw; -moz-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); }
.header-navi-button .line-box { width: 5vw; height: 2.5vw; position: absolute; top: 50%; left: 5.5vw; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.header-navi-button .line { width: 100%; height: 1px; background: #fff; position: absolute; left: 0; -moz-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); }
.header-navi-button .line-top { top: calc(50% - 1.25vw); }
.header-navi-button .line-bottom { top: calc(50% + 1.25vw); }
.header-navi-button .line-title { width: 18vw; color: #fff; font-size: 3.6vw; font-family: "Marcellus"; font-weight: 400; line-height: 1.2; letter-spacing: 0.4vw; position: absolute; top: 50%; right: 0; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); -moz-transition: all 0.2s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.2s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.2s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.2s cubic-bezier(0.76, 0, 0.24, 1); }
.header-navi-button .line-title:before { content: 'CLOSE'; width: 100%; opacity: 0; position: absolute; top: 0; left: 0; -moz-transform: translateY(-5px); -ms-transform: translateY(-5px); -webkit-transform: translateY(-5px); transform: translateY(-5px); -moz-transition: all 0.2s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.2s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.2s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.2s cubic-bezier(0.76, 0, 0.24, 1); }
.header-navi-button .line-title span { opacity: 1; display: block; -moz-transition: all 0.4s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.4s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.4s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.4s cubic-bezier(0.76, 0, 0.24, 1); }
.header-navi { width: 100%; height: 100vh; background: rgba(0, 0, 0, 0.96); z-index: 2; position: fixed; top: 100vh; right: 0; }
.header-navi-inner { width: 100%; height: 100%; overflow-y: auto; -ms-overflow-style: none; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.header-navi-inner::-webkit-scrollbar { display: none; }
.header-navi-scroll { width: 100%; height: 100%; padding: 22vw 0 100px; overflow-y: auto; position: relative; -ms-overflow-style: none; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.header-navi-scroll::-webkit-scrollbar { display: none; }
.header-navi-content { opacity: 0; visibility: hidden; }
.header-navi-items { width: 90vw; margin: 0 auto 8vw; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: space-between; justify-content: space-between; }
.header-navi-items li { width: 48%; font-size: 3.5vw; border-bottom: 1px solid #454545; position: relative; }
.header-navi-items a { padding: 5vw 0; color: #fff; }
.header-navi-items a:after { content: '\f105'; font-family: 'icon'; pointer-events: none; position: absolute; top: 50%; right: 2vw; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.header-navi-items .en { margin-bottom: 2vw; font-size: 5.8vw; font-family: "Marcellus"; font-weight: 400; letter-spacing: 0.4vw; display: block; }
.header-navi-items .jp { font-size: 3.5vw; opacity: 0.8; display: block; }
.header-navi-contact-items { width: 90vw; margin: 0 auto 6vw; }
.header-navi-contact-items li { width: 100%; margin-bottom: 4vw; text-align: center; }
.header-navi-contact-items li.web a { color: #fff; background: var(--gold); }
.header-navi-contact-items li.web .title { font-weight: bold; }
.header-navi-contact-items li.web .title::before { content: '\e910'; margin-right: 1.5vw; font-size: 105%; font-family: 'icon'; display: inline-block; }
.header-navi-contact-items li.tel a { background: #fff; }
.header-navi-contact-items li.tel .title { font-family: "Marcellus"; font-weight: 400; letter-spacing: 0.2vw; }
.header-navi-contact-items li.tel .title::before { content: '\f095'; margin-right: 1.5vw; font-size: 90%; font-family: 'icon'; display: inline-block; }
.header-navi-contact-items a { padding: 6vw 0; }
.header-navi-contact-items .title { margin-bottom: 2.5vw; font-size: 4.5vw; display: block; }
.header-navi-contact-items .sub { font-size: 3.5vw; display: block; }
.header-navi-sub-items { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: center; justify-content: center; }
.header-navi-sub-items li { color: #fff; font-size: 3.5vw; }
.header-navi-sub-items li:first-child::before { display: none; }
.header-navi-sub-items li::before { content: '|'; margin: 0 1vw 0 2vw; display: inline-block; }
.header-navi-sub-items a { color: #fff; display: inline-block; }

.animation { opacity: 0; }
.header-navi-open { width: 100%; height: 100%; position: fixed; }
.header-navi-open .header-navi-button .line-top { top: 50%; -moz-transform: translateY(-50%) rotate(35deg); -ms-transform: translateY(-50%) rotate(35deg); -webkit-transform: translateY(-50%) rotate(35deg); transform: translateY(-50%) rotate(35deg); }
.header-navi-open .header-navi-button .line-bottom { top: 50%; -moz-transform: translateY(-50%) rotate(-35deg); -ms-transform: translateY(-50%) rotate(-35deg); -webkit-transform: translateY(-50%) rotate(-35deg); transform: translateY(-50%) rotate(-35deg); }
.header-navi-open .header-navi-button .line-title::before { opacity: 1; -moz-transform: translateY(0); -ms-transform: translateY(0); -webkit-transform: translateY(0); transform: translateY(0); }
.header-navi-open .header-navi-button .line-title span { opacity: 0; -moz-transform: translateY(5px); -ms-transform: translateY(5px); -webkit-transform: translateY(5px); transform: translateY(5px); }
.header-navi-open .header-navi { -moz-animation-name: header-navi-open; -webkit-animation-name: header-navi-open; animation-name: header-navi-open; -moz-animation-delay: 0s; -webkit-animation-delay: 0s; animation-delay: 0s; -moz-animation-duration: 0.4s; -webkit-animation-duration: 0.4s; animation-duration: 0.4s; -moz-animation-timing-function: ease; -webkit-animation-timing-function: ease; animation-timing-function: ease; -moz-animation-fill-mode: forwards; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; }
.header-navi-open .header-navi-content { -moz-animation-name: header-navi-in; -webkit-animation-name: header-navi-in; animation-name: header-navi-in; -moz-animation-delay: 0.4s; -webkit-animation-delay: 0.4s; animation-delay: 0.4s; -moz-animation-duration: 0.5s; -webkit-animation-duration: 0.5s; animation-duration: 0.5s; -moz-animation-timing-function: ease; -webkit-animation-timing-function: ease; animation-timing-function: ease; -moz-animation-fill-mode: forwards; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; }

@-moz-keyframes header-navi-open { 0% { top: 100vh; }
  100% { top: 0; } }
@-webkit-keyframes header-navi-open { 0% { top: 100vh; }
  100% { top: 0; } }
@keyframes header-navi-open { 0% { top: 100vh; }
  100% { top: 0; } }
@-moz-keyframes header-navi-in { 0% { opacity: 0; visibility: hidden; -moz-transform: translateY(15px); transform: translateY(15px); }
  100% { opacity: 1; visibility: visible; -moz-transform: translateY(0); transform: translateY(0); } }
@-webkit-keyframes header-navi-in { 0% { opacity: 0; visibility: hidden; -webkit-transform: translateY(15px); transform: translateY(15px); }
  100% { opacity: 1; visibility: visible; -webkit-transform: translateY(0); transform: translateY(0); } }
@keyframes header-navi-in { 0% { opacity: 0; visibility: hidden; -moz-transform: translateY(15px); -ms-transform: translateY(15px); -webkit-transform: translateY(15px); transform: translateY(15px); }
  100% { opacity: 1; visibility: visible; -moz-transform: translateY(0); -ms-transform: translateY(0); -webkit-transform: translateY(0); transform: translateY(0); } }
.header-navi-closed .header-navi { -moz-animation-name: header-navi-closed; -webkit-animation-name: header-navi-closed; animation-name: header-navi-closed; -moz-animation-delay: 0.4s; -webkit-animation-delay: 0.4s; animation-delay: 0.4s; -moz-animation-duration: 0.4s; -webkit-animation-duration: 0.4s; animation-duration: 0.4s; -moz-animation-timing-function: ease; -webkit-animation-timing-function: ease; animation-timing-function: ease; -moz-animation-fill-mode: both; -webkit-animation-fill-mode: both; animation-fill-mode: both; }
.header-navi-closed .header-navi-content { -moz-animation-name: header-navi-out; -webkit-animation-name: header-navi-out; animation-name: header-navi-out; -moz-animation-delay: 0s; -webkit-animation-delay: 0s; animation-delay: 0s; -moz-animation-duration: 0.5s; -webkit-animation-duration: 0.5s; animation-duration: 0.5s; -moz-animation-timing-function: ease; -webkit-animation-timing-function: ease; animation-timing-function: ease; -moz-animation-fill-mode: both; -webkit-animation-fill-mode: both; animation-fill-mode: both; }

@-moz-keyframes header-navi-closed { 0% { top: 0; }
  100% { top: -100vh; } }
@-webkit-keyframes header-navi-closed { 0% { top: 0; }
  100% { top: -100vh; } }
@keyframes header-navi-closed { 0% { top: 0; }
  100% { top: -100vh; } }
@-moz-keyframes header-navi-out { 0% { opacity: 1; visibility: visible; -moz-transform: translateY(0); transform: translateY(0); }
  100% { opacity: 0; visibility: hidden; -moz-transform: translateY(-15px); transform: translateY(-15px); } }
@-webkit-keyframes header-navi-out { 0% { opacity: 1; visibility: visible; -webkit-transform: translateY(0); transform: translateY(0); }
  100% { opacity: 0; visibility: hidden; -webkit-transform: translateY(-15px); transform: translateY(-15px); } }
@keyframes header-navi-out { 0% { opacity: 1; visibility: visible; -moz-transform: translateY(0); -ms-transform: translateY(0); -webkit-transform: translateY(0); transform: translateY(0); }
  100% { opacity: 0; visibility: hidden; -moz-transform: translateY(-15px); -ms-transform: translateY(-15px); -webkit-transform: translateY(-15px); transform: translateY(-15px); } }
/* hero sp
----------------------------------------------- */
.hero { width: 100%; padding-top: 20vw; z-index: 1; position: relative; }

.top-hero { padding-bottom: 4vw; background: url(../images/top-hero-bg.jpg) no-repeat top center; background-size: cover; }
.top-hero-container { width: 100%; overflow: visible; }
.top-hero-item { width: 90vw; margin: 0 5vw; }
.top-hero-item-image {width: 100%;position: relative;z-index: 2;}
.top-hero-item-image img { width: 100%; }
.top-hero-fraction { color: #fff; font-size: 3.2vw; font-family: "Marcellus"; font-weight: 400; text-align: center; letter-spacing: 0.5vw; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-align-items: center; align-items: center; position: absolute; bottom: -7.5vw; right: 8vw; z-index: 3; }
.top-hero-fraction .current { width: 11vw; display: block; }
.top-hero-fraction .total { width: 11vw; display: block; position: relative; }
.top-hero-fraction .total::before { content: ''; width: 1px; height: 180%; background: #fff; position: absolute; top: 50%; left: 0; -moz-transform: translateY(-50%) rotate(40deg); -ms-transform: translateY(-50%) rotate(40deg); -webkit-transform: translateY(-50%) rotate(40deg); transform: translateY(-50%) rotate(40deg); }
.top-hero-typo { width: 85vw; margin: -10vw auto 4vw; color: #fff; font-size: 4.21vw; font-family: "Marcellus"; font-weight: 400; letter-spacing: 0.4vw; mix-blend-mode: difference; z-index: 2; position: relative; }
.top-hero-text { width: 90vw; margin: 0 auto; z-index: 2; position: relative; }
.top-hero-title {margin: 0 auto 4vw -5vw;font-size: 5.5vw;}
.top-hero-title .fade-curtain {padding: 1.5vw 1.5vw;margin-bottom: 2vw;}
.top-hero-comment p { margin-bottom: 4vw; color: #fff; font-size: 3.5vw; text-align: justify; text-justify: inter-ideograph; font-feature-settings: "palt"; line-height: 1.8; letter-spacing: 0.04em; }

.second-hero { height: 65vw; background: #2b2b2b; }
.second-hero-title { width: 100%; color: #fff; text-align: center; position: absolute; bottom: 18vw; left: 0; }
.second-hero-title .en { margin-bottom: 2.5vw; font-size: 11vw; font-family: "Marcellus"; font-weight: 400; letter-spacing: 0.4vw; display: block; }
.second-hero-title .jp { margin: 0 auto; font-size: 4vw; font-family: var(--mincho); display: block; }

/* bread sp
----------------------------------------------- */
.breadcrumb { padding: 4vw 0; border-bottom: 1px solid #ccc; z-index: 1; position: relative; }
.breadcrumb-items { width: 90vw; margin: 0 auto; font-size: 0; }
.breadcrumb-items li { font-size: 3.5vw; position: relative; display: inline-block; }
.breadcrumb-items li:after { content: ""; width: 3.5vw; height: 1px; margin: 0 2.5vw 0 1vw; vertical-align: middle; background: var(--black); opacity: 0.5; display: inline-block; }
.breadcrumb-items li:last-child:after { display: none; }
.breadcrumb-items li:last-child a { font-weight: bold; }
.breadcrumb-items a { display: inline-block; }
.breadcrumb-items .icon-home { color: var(--gold); font-size: 110%; }

/* footer sp
----------------------------------------------- */
.footer { width: 100%; padding-bottom: 22vw; z-index: 1; position: relative; }
.footer-contact { padding: 14vw 0 10vw; background: url(../images/footer-contact-bg.jpg) no-repeat top center; background-size: cover; }
.footer-contact-title { padding-bottom: 4vw; margin-bottom: 5vw; color: #fff; font-size: 8vw; font-family: "Marcellus"; font-weight: 400; text-align: center; letter-spacing: 0.4vw; position: relative; }
.footer-contact-title::after { content: ''; width: 12vw; height: 1px; background: #605b60; position: absolute; bottom: 0; left: 50%; -moz-transform: translateX(-50%); -ms-transform: translateX(-50%); -webkit-transform: translateX(-50%); transform: translateX(-50%); }
.footer-contact-comment { margin-bottom: 8vw; color: #fff; font-size: 4vw; text-align: center; }
.footer-contact-items { width: 80vw; margin: 0 auto; }
.footer-contact-items li { width: 100%; margin-bottom: 4vw; text-align: center; }
.footer-contact-items li.web a { color: #fff; background: var(--gold); }
.footer-contact-items li.web .title { font-weight: bold; }
.footer-contact-items li.web .title::before { content: '\e910'; margin-right: 1.5vw; font-size: 105%; font-family: 'icon'; display: inline-block; }
.footer-contact-items li.tel a { background: #fff; }
.footer-contact-items li.tel .title { font-family: "Marcellus"; font-weight: 400; letter-spacing: 0.2vw; }
.footer-contact-items li.tel .title::before { content: '\f095'; margin-right: 1.5vw; font-size: 90%; font-family: 'icon'; display: inline-block; }
.footer-contact-items a { padding: 6vw 0; }
.footer-contact-items .title { margin-bottom: 2.5vw; font-size: 4.5vw; display: block; }
.footer-contact-items .sub { font-size: 3.5vw; display: block; }
.footer-content { padding-top: 12vw; position: relative; }

.footer-logo { width: 35vw; margin: 0 auto 4vw; }
.footer-logo img { width: 100%; }
.footer-navi { width: 90vw; margin: 0 auto 8vw; }
.footer-navi-title { padding: 4.5vw 2vw; font-size: 5vw; font-family: "Marcellus"; font-weight: 400; letter-spacing: 0.4vw; border-bottom: 1px solid #ddd; position: relative; }
.footer-navi-title.open .plus::after { -moz-transform: translate(-50%, -50%) rotate(90deg); -ms-transform: translate(-50%, -50%) rotate(90deg); -webkit-transform: translate(-50%, -50%) rotate(90deg); transform: translate(-50%, -50%) rotate(90deg); }
.footer-navi-title .plus { width: 2.5vw; height: 2.5vw; position: absolute; top: 50%; right: 2vw; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.footer-navi-title .plus::before { content: ''; width: 100%; height: 1px; background: var(--black); position: absolute; top: 50%; left: 50%; -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); -moz-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); }
.footer-navi-title .plus::after { content: ''; width: 1px; height: 100%; background: var(--black); position: absolute; top: 50%; left: 50%; -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); -moz-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); }
.footer-navi-items { width: 100%; display: none; }
.footer-navi-items li { width: 100%; font-size: 4vw; border-bottom: 1px solid #ddd; position: relative; }
.footer-navi-items li:after { content: '\f105'; font-size: 90%; font-family: 'icon'; opacity: 0.5; position: absolute; top: 50%; right: 2.5vw; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.footer-navi-items a { padding: 4.5vw 2vw; }

.pagetop { width: 12vw; height: 12vw; font-size: 4.5vw; background: #fff; border: 1px solid #8e8e8e; -moz-border-radius: 50%; -webkit-border-radius: 50%; border-radius: 50%; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; position: absolute; bottom: -18vw; right: 5vw; }
.pagetop::after { content: '\f106'; font-family: 'icon'; pointer-events: none; }
.copyright { width: 100%; padding: 0 5vw; color: #595959; font-size: 2.8vw; font-family: "Marcellus"; font-weight: 400; line-height: 1.6; letter-spacing: 0.2vw; display: block; }
.footer-fixed { width: 100%; z-index: 9; opacity: 0; visibility: hidden; position: fixed; bottom: 0; left: 0; -moz-transition: all 0.4s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.4s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.4s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.4s cubic-bezier(0.76, 0, 0.24, 1); }
.footer-fixed.active { opacity: 1; visibility: visible; }
.footer-fixed a { width: 100%; height: 15vw; padding-top: 5vw; color: #fff; font-size: 5vw; font-family: var(--mincho); text-align: center; background: var(--gold); }
.footer-fixed a::before { content: '\e910'; margin-right: 1vw; font-family: 'icon'; display: inline-block; }

/* second sp
----------------------------------------------- */
.second {min-height: 100vw;margin: 0 auto;position: relative;font-size: 3.6vw; line-height: 1.8;font-feature-settings: "palt";letter-spacing: .06em;text-align: justify;text-justify: auto; z-index: 1; }
.second p { margin-bottom: 4vw; }
.second p:last-child { margin-bottom: 0; }
.second-text {padding: 8vw 0 10vw;width: 90vw;margin: 0 auto;}


/* =============================================
pc-size
================================================*/
@media screen and (min-width:769px) { 
/* default pc ----------------------------------------------- */
body { font-size: 15px; }
.sp { display: none; }
.pc { display: block; }

/* common pc ----------------------------------------------- */
.midashi01 { margin-bottom: 40px; }
.midashi01 .en { margin-bottom: 10px; font-size: 45px; letter-spacing: 4px; }
.midashi01 .jp { font-size: 15px; }
.more01 { min-width: 240px; padding: 18px 20px; font-size: 15px; }
.more01::after { right: 20px; }

/* header pc ----------------------------------------------- */
.header {height: 90px;background: #fff;}
.header.top-header { background: none; }
.header-content { width: clamp(730px, 95%, 1200px); margin: 0 auto; }
.header-logo {width: 70px;top: 50%;left: 50%;-moz-transform: translate(-50%, -50%);-ms-transform: translate(-50%, -50%);-webkit-transform: translate(-50%, -50%);transform: translate(-50%, -50%);}
.header-tel { position: absolute; top: 20px; left: 0; }
.header-tel .number { margin-bottom: 5px; font-size: 20px; font-family: "Marcellus"; font-weight: 400; letter-spacing: 2px; }
.header-tel .number::before { content: '\f095'; margin-right: 4px; font-size: 90%; font-family: 'icon'; display: inline-block; }
.header-tel .open { font-size: 14px; }
.header-global-items {display: none;}
.header-global-items li {margin-right: 15px;font-size: 14px;position: relative;}
.header-global-items a { padding-left: 20px; }
.header-global-items a::before { content: '\f105'; width: 16px; height: 16px; color: #fff; font-size: 12px; font-family: 'icon'; text-align: center; background: #b7b7b7; -moz-border-radius: 50%; -webkit-border-radius: 50%; border-radius: 50%; pointer-events: none; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; position: absolute; top: 50%; left: 0; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.header-navi-button {width: 120px;height: 45px;top: 20px;right: 2%;-moz-transition-delay: 0.2s;-o-transition-delay: 0.2s;-webkit-transition-delay: 0.2s;transition-delay: 0.2s;}
.header-navi-button .line-box { width: 20px; height: 10px; left: 20px; }
.header-navi-button .line-top { top: calc(50% - 4px); }
.header-navi-button .line-bottom { top: calc(50% + 4px); }
.header-navi-button .line-title { width: 68px; font-size: 14px; line-height: 1; letter-spacing: 2px; }
.header-navi-mask { width: 100vw; height: 100vh; background: rgba(255, 255, 255, 0.2); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); opacity: 0; visibility: hidden; z-index: 12; cursor: pointer; position: fixed; top: 0; right: 0; -moz-transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); }
.header-navi { width: 380px; z-index: 13; right: 0; }
.header-navi-scroll { padding: 0; }
.header-navi-content { width: 350px; padding: 80px 0 60px; margin: 0 auto; }
.header-navi-close-button { width: 38px; height: 28px; visibility: hidden; opacity: 0; z-index: 1; cursor: pointer; position: fixed; top: 30px; right: 20px; -moz-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -moz-transition-delay: 0.4s; -o-transition-delay: 0.4s; -webkit-transition-delay: 0.4s; transition-delay: 0.4s; }
.header-navi-close-button::before { content: ''; width: 100%; height: 1px; background: #fff; position: absolute; top: 50%; left: 50%; -moz-transform: translate(-50%, -50%) rotate(25deg); -ms-transform: translate(-50%, -50%) rotate(25deg); -webkit-transform: translate(-50%, -50%) rotate(25deg); transform: translate(-50%, -50%) rotate(25deg); }
.header-navi-close-button::after { content: ''; width: 100%; height: 1px; background: #fff; position: absolute; top: 50%; left: 50%; -moz-transform: translate(-50%, -50%) rotate(-25deg); -ms-transform: translate(-50%, -50%) rotate(-25deg); -webkit-transform: translate(-50%, -50%) rotate(-25deg); transform: translate(-50%, -50%) rotate(-25deg); }
.header-navi-items { width: 100%; margin-bottom: 40px; }
.header-navi-items a { padding: 20px 0; }
.header-navi-items a:after { font-size: 14px; right: 10px; }
.header-navi-items .jp { font-size: 14px; }
.header-navi-items .en { margin-bottom: 8px; font-size: 22px; letter-spacing: 2px; }
.header-navi-contact-items { width: 100%; margin-bottom: 30px; }
.header-navi-contact-items li { margin-bottom: 15px; }
.header-navi-contact-items li.web .title::before { margin-right: 8px; }
.header-navi-contact-items li.tel .title { letter-spacing: 2px; }
.header-navi-contact-items li.tel .title::before { margin-right: 4px; }
.header-navi-contact-items a { padding: 30px 0; }
.header-navi-contact-items .title { margin-bottom: 10px; font-size: 18px; }
.header-navi-contact-items .sub { font-size: 14px; }
.header-navi-sub-items li { font-size: 14px; }
.header-navi-sub-items li::before { margin: 0 2px 0 7px; }
.header-navi-open .header-navi-mask { opacity: 1; visibility: visible; -moz-transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.8s cubic-bezier(0.76, 0, 0.24, 1); }
.header-navi-open .header-navi-close-button { visibility: visible; opacity: 1; }

.top-hero{position:relative;}
.top-hero:before{content:"";width: 0;position:absolute;height: 0;border-top: 35vw solid #2b2b2b;border-left: 45vw solid transparent;top: 0;right: 0;z-index: -10;}

/* hero pc ----------------------------------------------- */
.hero {padding-top: 110px;}
.top-hero {padding-bottom: 60px;background: url(../images/top-hero-bg-pc.jpg) no-repeat left -640px bottom;background-size: 1820px;}
.top-hero-item {width: 100vw;margin: 50px 0 0;-moz-transition: all 1s cubic-bezier(0.76, 0, 0.24, 1);-o-transition: all 1s cubic-bezier(0.76, 0, 0.24, 1);-webkit-transition: all 1s cubic-bezier(0.76, 0, 0.24, 1);transition: all 1s cubic-bezier(0.76, 0, 0.24, 1);}
.top-hero-item.swiper-slide-active { margin-top: 0; }
.top-hero-fraction {color: var(--black);font-size: 15px;letter-spacing: 2px;right: 1%;bottom: 8px;}
.top-hero-fraction .current {width: 170px;text-align: left;}
.top-hero-fraction .total { width: 30px; }
.top-hero-fraction .total::before { display: none; }
.top-hero-progress {width: 115px;height: 2px;background: #ddd;opacity: 0.8;z-index: 2;position: absolute;bottom: 14px;right: 5%;}
.top-hero-progress .bar { width: 100%; height: 100%; background: #333; position: absolute; transform: scaleY(0); transform-origin: top left; }
.top-hero-typo {width: clamp(730px, 95%, 1200px);margin: -185px auto 10px;font-size: 44px;line-height: 1.2;letter-spacing: 5px;}
.top-hero-text { width: clamp(730px, 95%, 1200px); }
.top-hero-title {margin: 0 auto 20px 0;font-size: 20px;display: table;}
.top-hero-title .fade-curtain { padding: 10px; margin: 0; }
.top-hero-comment p {margin-bottom: 0;font-size: 0.85rem;line-height: 2;}
.top-hero-comment p.pcx{display:block;}
.top-hero-scroll {padding: 2px 28px 2px 0;font-size: 13px;font-family: "Marcellus";font-weight: 400;letter-spacing: 1px;background: url(../images/scroll-arrow.png) no-repeat center right;background-size: auto 100%;position: absolute;right: 1%;bottom: 50px;}
.second-hero { height: 470px; }
.second-hero-title { bottom: 130px; }
.second-hero-title .en { margin-bottom: 12px; font-size: 60px; letter-spacing: 4px; }
.second-hero-title .jp { font-size: 16px; }

/* bread pc ----------------------------------------------- */
.breadcrumb { padding: 24px 0 20px; }
.breadcrumb-items { width: clamp(730px, 95%, 1200px); }
.breadcrumb-items li { font-size: 15px; }
.breadcrumb-items li:after { width: 22px; margin: -2px 12px 0 8px; }
.breadcrumb-items .icon-home { margin-right: 0; font-size: 115%; }

/* footer pc ----------------------------------------------- */
.footer { padding: 0; }
.footer-contact { padding: 80px 0; background: url(../images/footer-contact-bg-pc.jpg) no-repeat top center; background-size: cover; }
.footer-contact-title { padding-bottom: 20px; margin-bottom: 30px; font-size: 35px; letter-spacing: 4px; }
.footer-contact-title::after { width: 50px; }
.footer-contact-comment { margin-bottom: 40px; font-size: 16px; }
.footer-contact-items { width: 770px; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: space-between; justify-content: space-between; }
.footer-contact-items li { width: 375px; margin: 0; }
.footer-contact-items li.web .title::before { margin-right: 8px; }
.footer-contact-items li.tel .title { letter-spacing: 2px; }
.footer-contact-items li.tel .title::before { margin-right: 4px; }
.footer-contact-items a { padding: 30px 0; }
.footer-contact-items .title { margin-bottom: 10px; font-size: 22px; }
.footer-contact-items .sub { font-size: 15px; }
.footer-content { width: clamp(730px, 95%, 1200px); padding: 60px 0; margin: 0 auto; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: center; align-items: center; }
.footer-logo {width: 15%;margin: 0;}
.footer-navi {width: 77%;margin: 0;}
.footer-navi-items {display: -webkit-box;display: -webkit-flex;display: flex;-webkit-flex-wrap: wrap;flex-wrap: wrap;-webkit-justify-content: start;justify-content: stretch;}
.footer-navi-items li {width: 32%;font-size: 15px;margin-right: 1%;}
.footer-navi-items li::after { width: 14px; height: 14px; padding: 1px 0 0 1px; color: #fff; font-size: 85%; background: var(--gold); -moz-border-radius: 50%; -webkit-border-radius: 50%; border-radius: 50%; opacity: 1; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; right: 5px; }
.footer-navi-items a { padding: 18px 5px; }
.copyright { padding: 40px 0 35px; font-size: 12px; text-align: center; letter-spacing: 2px; border-top: 1px solid #d6d6d5; }
.pagetop {width: 45px;height: 45px;font-size: 25px;bottom: -22px;right: 0;}
.footer-fixed { width: auto; top: 50%; right: 0; bottom: auto; left: auto; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.footer-fixed a { width: 50px; height: auto; padding: 25px 14px 25px 0; font-size: 20px; -ms-writing-mode: tb-rl; writing-mode: tb-rl; text-orientation: upright; }
.footer-fixed a::before { margin: 0 0 -10px; }
.footer-fixed a .title { letter-spacing: 2px; display: inline-block; }

/* second pc ----------------------------------------------- */
.second {min-height: 600px; font-size: 15px;}
.second p { margin-bottom: 30px;}
.second-text {width: clamp(730px, 95%, 1200px);padding: 60px 0 120px;}
}

@media screen and (min-width: 960px) { 
.top-hero{background: url(../images/top-hero-bg-pc.jpg) no-repeat left -550px bottom;background-size: 1820px;}
}

@media screen and (min-width: 1200px) { 
.header { height: 130px; background: #fff; }
.header-logo{width:90px;}
.header-global-items { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; position: absolute; bottom: 30px; left: 0; }
.header-navi-button{right: calc(50% - 600px);}
.top-hero{background: url(../images/top-hero-bg-pc.jpg) no-repeat center bottom;background-size: 2000px;padding-top: 130px;}
.top-hero-title{font-size: 26px;}
.top-hero-typo{font-size: 65px;margin: -252px auto 10px;padding-left: 20px;}
.top-hero-item{width:1200px;margin:20px;}
.top-hero-comment p .pcx{display:none;}
.top-hero-comment p{font-size: 16px;}
.top-hero-fraction{right: calc(50% - 600px);}
.top-hero-progress{ right: calc(50% - 555px);}
.top-hero-scroll{right: calc(50% - 600px);}
}
  
/* retina用 ----------------------------------------------- */ 
@media screen and (min-width: 739px) and (-webkit-min-device-pixel-ratio: 2), screen and (min-width: 739px) and (min-resolution: 2dppx) {
.top-hero {background-image: url(../images/top-hero-bg-pc@2x.jpg);}
.footer-contact { background: url(../images/footer-contact-bg-pc@2x.jpg) no-repeat top center; background-size: cover; } 
}
