@charset "UTF-8";

/* 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: #555; text-decoration: none; display: block; -moz-transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97); -o-transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97); -webkit-transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97); transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97); }
a:hover { opacity: 0.6; }
.clearfix:after { content: ''; display: block; clear: both; }
.pc { display: none; }
.sp { display: block; }

.wrapper { width: 100%; overflow: hidden; position: relative; }
.top-wrapper { background: var(--bluebg); }
.container { padding-top: 18vw; }
.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: all 1.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); -o-transition: all 1.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); -webkit-transition: all 1.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); transition: all 1.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); }
.fade-left { -moz-transform: translateX(-10px); -ms-transform: translateX(-10px); -webkit-transform: translateX(-10px); transform: translateX(-10px); }
.fade-right { -moz-transform: translateX(10px); -ms-transform: translateX(10px); -webkit-transform: translateX(10px); transform: translateX(10px); }
.fade-bottom { -moz-transform: translateY(10px); -ms-transform: translateY(10px); -webkit-transform: translateY(10px); transform: translateY(10px); }
.fade-blur { -webkit-filter: blur(15px); filter: blur(15px); -moz-transform: translateY(10px); -ms-transform: translateY(10px); -webkit-transform: translateY(10px); transform: translateY(10px); -moz-transition: all 1.8s cubic-bezier(0.05, 0.05, 0.31, 0.97); -o-transition: all 1.8s cubic-bezier(0.05, 0.05, 0.31, 0.97); -webkit-transition: all 1.8s cubic-bezier(0.05, 0.05, 0.31, 0.97); transition: all 1.8s cubic-bezier(0.05, 0.05, 0.31, 0.97); -moz-transition: all 1.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); -o-transition: all 1.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); -webkit-transition: all 1.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); transition: all 1.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); }
.fade-blur.active { -webkit-filter: blur(0); filter: blur(0); -moz-transform: translate(0); -ms-transform: translate(0); -webkit-transform: translate(0); transform: translate(0); }
.fade-active { opacity: 1; -moz-transform: translate(0); -ms-transform: translate(0); -webkit-transform: translate(0); transform: translate(0); -webkit-filter: blur(0); filter: blur(0); }

.wave-stop { opacity: 1; overflow: hidden; position: relative; display: table; }
.wave-stop.fade-active:before { width: 100%; opacity: 1; visibility: visible; }
.wave-stop.fade-active .wave-inner { opacity: 1; visibility: visible; -moz-transition-delay: 0.6s; -o-transition-delay: 0.6s; -webkit-transition-delay: 0.6s; transition-delay: 0.6s; }
.wave-stop:before { content: ''; width: 0; height: 100%; background: #fff; position: absolute; top: 0; left: 0; opacity: 0; visibility: hidden; transition: all 0.8s 0s ease; }
.wave-inner { opacity: 0; visibility: hidden; position: relative; display: block; -moz-transition: all 0.6s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.6s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.6s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.6s 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); }
50% { -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); }
50.1% { -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); } }


/* 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: #2f3131;--blue: #309ede;--bluebg: #edf8ff;--naby: #426380;}

/* common sp
----------------------------------------------- */
.midashi01 {margin: 0 auto 7vw;position: relative;line-height: 1.4;}
.midashi01 .en {font-size: 11.4vw;font-family: goldenbook;font-weight: 400;letter-spacing: 0.04em;display: block;}
.midashi01 .jp { color: #6f7475; font-size: 3.6vw; font-weight: bold; display: block; }

.midashi02 { padding-top: 14vw; margin-bottom: 5vw; text-align: center; position: relative;  line-height: 1.4;}
.midashi02:before { content: ''; width: 1.6vw; height: 8vw; background: #acdcea; position: absolute; top: 0; left: calc(50% - 1.8vw); }
.midashi02:after { content: ''; width: 1.6vw; height: 8vw; background: #67baec; position: absolute; top: 0; left: calc(50% + 1.8vw); }
.midashi02 .en {font-size: 11vw; font-family: goldenbook; font-weight: 400;  letter-spacing: 0.04em; display: block; line-height: 1.2; }
.midashi02 .jp { color: #6f7475; font-size: 3.6vw; font-weight: bold; display: block; line-height: 1.2; }

.midashi03 {border-bottom:1px solid #ccc;border-top:1px solid #ccc;padding: 4% 0 5%;text-align:center;font-size: 6vw;letter-spacing:.04em;line-height: 1.2;margin-bottom: 6vw;font-weight: 600;line-height: 1.4;} 
.midashi03 span{display:block;color: var(--naby);font-size: 3.2vw;font-family: century-gothic;font-weight: 400;letter-spacing: .08em;font-family: futura-pt;font-weight: 400;}
.midashi03 small { font-size:80%;}

.midashi04 {background: var(--naby);color: #fff;font-size: 4.4vw;text-align: center;font-weight: bold;padding: 2%;margin-bottom: 4vw;}


.more01 {width: 60vw;padding: 5vw 0;color: #fff;font-size: 3.6vw;font-weight: bold;text-align: center;background: #424343 url(../images/arrow.png) no-repeat center right 5vw;background-size: 3.5vw;-moz-border-radius: 15vw;-webkit-border-radius: 15vw;border-radius: 15vw;position: relative;}

.more02 { padding-right: 6vw; font-size: 3.4vw; font-weight: bold; line-height: 1.2; position: relative; display: table; }
.more02:after { content: '\f105'; width: 5vw; height: 5vw; padding-left: 0.5vw; color: #fff; font-size: 2.63vw; font-family: 'icon'; background: var(--blue); -moz-border-radius: 50%; -webkit-border-radius: 50%; border-radius: 50%; position: absolute; top: 50%; right: 0; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }

.marker {background: linear-gradient(transparent 0%, rgb(255 249 217) 0%);display: inline;background-repeat: no-repeat;background-size: 0% 100%;transition: background-size 1.5s;font-weight: bold;color: #606060;}
.marker.on {background-size: 100% 100%;}

/* header sp
----------------------------------------------- */
.header {width: 100%;height: 19vw;background: #fff;z-index: 10;position: fixed;top: 0;left: 0;}

.header-logo { padding-top: 0.5vw; font-size: 3.4vw; position: absolute; top: 50%; left: 2.5vw; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.header-logo .title { margin-bottom: 1vw; color: var(--blue); font-weight: bold; display: block; }
.header-logo .sub {line-height: 1.4;display: block;font-size: 4.2vw;}

.header-navi-button {width: 19vw;height: 19vw;background: var(--black);cursor: pointer;z-index: 10;position: fixed;top: 0;right: 0;-moz-transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97);-o-transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97);-webkit-transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97);transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97);}
.header-navi-button .line { width: 8vw; height: 1px; left: 5vw; background: #fff; position: absolute; -moz-transition: all 0.4s cubic-bezier(0.05, 0.05, 0.31, 0.97); -o-transition: all 0.4s cubic-bezier(0.05, 0.05, 0.31, 0.97); -webkit-transition: all 0.4s cubic-bezier(0.05, 0.05, 0.31, 0.97); transition: all 0.4s cubic-bezier(0.05, 0.05, 0.31, 0.97); }
.header-navi-button .line-top { top: 7.5vw; }
.header-navi-button .line-bottom { top: 10.5vw; }

.header-navi { width: 100%; height: 100vh; background: #fff; z-index: 1; position: absolute; top: 100vh; left: 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%; 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 { padding: 20vw 0 1px; margin-bottom: 8vw; background: var(--bluebg); opacity: 0; visibility: hidden; }
.header-navi-items { width: 90vw; margin: 0 auto; }
.header-navi-item { width: 100%; margin-bottom: 8vw; }
.header-navi-item.contents { margin-bottom: 6vw; }
.header-navi-item.contents .header-navi-initems { margin-top: 5vw; display: grid; -webkit-justify-content: flex-start; justify-content: flex-start; grid-auto-flow: column; grid-template-rows: repeat(4, auto); }
.header-navi-item.contents .header-navi-initems li { width: 40vw; padding-left: 3vw; margin-bottom: 4vw; font-size: 3.6vw; position: relative; }
.header-navi-item.contents .header-navi-initems li:before { content: ''; width: 2vw; height: 1px; background: var(--black); opacity: 0.8; position: absolute; top: 50%; left: 0; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.header-navi-item.menu { margin-bottom: 6vw; }
.header-navi-item.menu .header-navi-initems { margin-top: 5vw; 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-item.menu .header-navi-initems li { width: 48%; margin-bottom: 5vw; position: relative; }

.header-navi-item-title { width: 100%; color: var(--blue); font-size: 7.8vw; font-family: goldenbook; font-weight: 400;  letter-spacing: 0.04em; }
.header-navi-item-menu-image { width: 100%; margin-bottom: 2.5vw; }
.header-navi-item-menu-title { font-size: 3.6vw; display: table; }
.header-navi-item-menu-title:after { content: '\f105'; width: 4vw; height: 4vw; padding-top: 0.8vw; margin-left: 1.5vw; color: #fff; font-size: 2.63vw; font-family: 'icon'; text-align: center; vertical-align: bottom; background: var(--blue); -moz-border-radius: 50%; -webkit-border-radius: 50%; border-radius: 50%; pointer-evens: none; display: inline-block; }
.header-navi-contact-items { width: 90vw; margin: 0 auto 8vw; }
.header-navi-contact-items li { width: 100%; margin-bottom: 4vw; text-align: center; border: 1px solid #a59b96; }
.header-navi-contact-items li.web .title { color: var(--naby); }
.header-navi-contact-items li.web .title:before { content: '\e922'; margin-right: 1vw; font-size: 85%; font-family: 'icon'; font-weight: normal; position: relative; top: -0.4vw; display: inline-block; }
.header-navi-contact-items li.tel .title { color: #c39d49; font-family: futura-pt; font-weight: 500;  letter-spacing: 0.04em; }
.header-navi-contact-items li.tel .title:before { content: '\f095'; margin-right: 0.5vw; font-size: 80%; font-family: 'icon'; font-weight: normal; display: inline-block; }
.header-navi-contact-items li.line .title { color: #609f3e; }
.header-navi-contact-items li.line .title:before { content: '\e906'; margin-right: 1vw; font-size: 85%; font-family: 'icon'; font-weight: normal; position: relative; top: -0.5vw; display: inline-block; }
.header-navi-contact-items a { padding: 6vw 0; }
.header-navi-contact-items .title { margin-bottom: 1.5vw; font-size: 5.8vw; font-weight: bold; display: block; }
.header-navi-contact-items .sub { font-size: 3.4vw; display: block; }

.header-navi-sub-items { width: 90vw; margin: 0 auto 100px; }
.header-navi-sub-items li { margin-bottom: 3.5vw; font-size: 3.6vw; position: relative; }
.animation { opacity: 0; }
.header-navi-open { width: 100%; height: 100%; position: fixed; }
.header-navi-open .header-navi-button .line { width: 7vw; }
.header-navi-open .header-navi-button .line-top { top: 50%; left: 50%; -moz-transform: translate(-50%, -50%) rotate(45deg); -ms-transform: translate(-50%, -50%) rotate(45deg); -webkit-transform: translate(-50%, -50%) rotate(45deg); transform: translate(-50%, -50%) rotate(45deg); }
.header-navi-open .header-navi-button .line-bottom { top: 50%; left: 50%; -moz-transform: translate(-50%, -50%) rotate(-45deg); -ms-transform: translate(-50%, -50%) rotate(-45deg); -webkit-transform: translate(-50%, -50%) rotate(-45deg); transform: translate(-50%, -50%) rotate(-45deg); }
.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%; position: relative; }
.top-hero { height: 275vw; background: url(../images/top-hero-bg.jpg) no-repeat top center; background-size: 100%; }
.top-hero-title { width: 100%; text-align: center; position: absolute; top: 86vw; left: 0; -moz-transition-delay: 0.4s; -o-transition-delay: 0.4s; -webkit-transition-delay: 0.4s; transition-delay: 0.4s; }
.top-hero-title .en { margin-bottom: 6vw; color: var(--blue); font-size: 4vw; font-family: goldenbook; font-weight: 400;  letter-spacing: 0.04em; display: block; }
.top-hero-title .jp { width: 70vw; margin: 0 auto; }
.top-hero-image01 { width: 82vw; position: absolute; top: 0; left: 0; }
.top-hero-image01 img { width: 100%; }

.top-hero-image02 { width: 46vw; z-index: 2; position: absolute; top: 26vw; right: 0; -moz-transition-delay: 0.2s; -o-transition-delay: 0.2s; -webkit-transition-delay: 0.2s; transition-delay: 0.2s; }
.top-hero-image02 img { width: 100%; }

.top-hero-image03 { width: 78vw; z-index: 2; position: absolute; bottom: 90vw; right: 0; -moz-transition-delay: 0.6s; -o-transition-delay: 0.6s; -webkit-transition-delay: 0.6s; transition-delay: 0.6s; }
.top-hero-image03 img { width: 100%; }

.top-hero-image04 { width: 75vw; z-index: 2; position: absolute; bottom: 20vw; left: 5vw; }
.top-hero-image04 img { width: 100%; }

.top-hero-circle { width: 32vw; z-index: 3; position: absolute; right: 5vw; bottom: 40vw; }
.top-hero-circle .circle { width: 100%; -moz-animation: circle 24s linear infinite; -webkit-animation: circle 24s linear infinite; animation: circle 24s linear infinite; }

@-moz-keyframes circle { 0% { -moz-transform: rotate(0); transform: rotate(0); }
100% { -moz-transform: rotate(360deg); transform: rotate(360deg); } }
@-webkit-keyframes circle { 0% { -webkit-transform: rotate(0); transform: rotate(0); }
100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }
@keyframes circle { 0% { -moz-transform: rotate(0); -ms-transform: rotate(0); -webkit-transform: rotate(0); transform: rotate(0); }
100% { -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg); } }
.top-hero-deco01 { width: 68vw; height: 45vw; -moz-border-radius: 0 0 4vw 0; -webkit-border-radius: 0; border-radius: 0 0 4vw 0; background: #d5edfe; z-index: 1; position: absolute; bottom: 78vw; left: 0; }

.top-hero-deco02 { width: 100%; height: 100vw; background: url(../images/top-hero-deco02.png) no-repeat top center; background-size: 100%; pointer-events: none; mix-blend-mode: multiply; z-index: 0; position: absolute; bottom: -48vw; left: 0; }

.second-hero { height: 46vw; background: url(../images/second-hero-bg.jpg) no-repeat top center; background-size: cover; }

.second-hero-title { width: 100%; text-align: center; z-index: 1; position: absolute; top: 50%; left: 0; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.second-hero-title .en {margin-bottom: 2vw;font-size: 6vw;font-family: goldenbook;font-weight: 400;letter-spacing: 0.02em;display: block;color: var(--naby);}
.second-hero-title .jp {font-size: 6vw;display: block;font-family: var(--mincho);}

/* bread sp
----------------------------------------------- */
.breadcrumb { padding: 4.5vw 0 4vw; background: var(--bluebg); z-index: 1; position: relative; }

.breadcrumb-items { width: 90vw; margin: 0 auto; font-size: 0; }
.breadcrumb-items li { font-size: 3.4vw; position: relative; display: inline-block; }
.breadcrumb-items li.current a { color: var(--blue); font-weight: bold; }
.breadcrumb-items li:last-child:after { display: none; }
.breadcrumb-items li:after { content: "\f105"; margin: 0 2.5vw 0 1.5vw; font-weight: normal; font-family: 'icon'; display: inline-block; }
.breadcrumb-items a { display: inline-block; }

/* footer sp
----------------------------------------------- */
.footer { padding-bottom: 20vw; }
.footer-contact { padding: 18vw 0 8vw; position: relative; }
.footer-contact:before { content: ''; width: 100%; height: 100%; background: #386e9d; opacity: 0.5; z-index: 1; position: absolute; top: 0; left: 0; }
.footer-contact-content { z-index: 2; position: relative; }
.footer-contact-title { margin-bottom: 10vw; color: #fff; font-size: 11.84vw; font-family: goldenbook; font-weight: 400; text-align: center;  letter-spacing: 0.04em; }

.footer-contact-items { width: 90vw; margin: 0 auto 8vw; }
.footer-contact-items li { width: 100%; margin-bottom: 4vw; text-align: center; background: #fff; -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.1); -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.1); box-shadow: 0 0 8px rgba(0, 0, 0, 0.1); }
.footer-contact-items li.web .title { color: var(--naby); }
.footer-contact-items li.web .title:before { content: '\e922'; margin-right: 1vw; font-size: 85%; font-family: 'icon'; font-weight: normal; position: relative; top: -0.4vw; display: inline-block; }
.footer-contact-items li.tel .title { color: #c39d49; font-family: futura-pt; font-weight: 500;  letter-spacing: 0.04em; }
.footer-contact-items li.tel .title:before { content: '\f095'; margin-right: 0.5vw; font-size: 80%; font-family: 'icon'; font-weight: normal; display: inline-block; }
.footer-contact-items li.line .title { color: #609f3e; }
.footer-contact-items li.line .title:before { content: '\e906'; margin-right: 1vw; font-size: 85%; font-family: 'icon'; font-weight: normal; position: relative; top: -0.5vw; display: inline-block; }
.footer-contact-items a { padding: 6vw 0; }
.footer-contact-items .title { margin-bottom: 1.5vw; font-size: 5.8vw; font-weight: bold; display: block; }
.footer-contact-items .sub { font-size: 3.4vw; display: block; }

.footer-contact-gallery-items { width: 100%; z-index: 0; position: absolute; top: 0; left: 0; }

.footer-contact-gallery-item { width: 70vw; }
.footer-contact-gallery-item img { width: 100%; }
.footer-content { padding: 12vw 0 8vw; }
.footer-left { width: 90vw; margin: 0 auto 6vw; }
.footer-logo { margin-bottom: 5vw; }
.footer-logo .title { margin-bottom: 1.5vw; color: var(--blue); font-size: 3.6vw; font-weight: bold; display: block; }
.footer-logo .sub { font-size: 4.4vw; line-height: 1.4; display: block; }
.footer-address { font-size: 3.4vw; line-height: 1.6;  letter-spacing: 0.04em; }
.footer-right { width: 90vw; margin: 0 auto; }
.footer-right .schedule { width: 100%; }
.footer-navi { width: 90vw; padding: 3vw 5vw; margin: 0 auto 12vw; background: #fff; -moz-border-radius: 4vw; -webkit-border-radius: 4vw; border-radius: 4vw; }
.footer-navi-box:last-child .footer-navi-title { border: none; }

.footer-navi-title { padding: 4vw 1vw 3.5vw; font-size: 4vw; font-family: futura-pt; font-weight: 400;  letter-spacing: 0.04em; border-bottom: 1px solid #e9eaea; 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: 2vw; height: 2vw; position: absolute; top: 50%; right: 1vw; -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%); }
.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.05, 0.05, 0.31, 0.97); -o-transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97); -webkit-transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97); transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97); }

.footer-navi-items { width: 100%; margin-top: -1px; border-top: 1px solid #e9eaea; display: none; }
.footer-navi-items li { width: 100%; font-size: 3.4vw; border-bottom: 1px solid #dfdfdf; position: relative; }
.footer-navi-items a { padding: 3.5vw 1vw; }
.footer-navi-items a:after { content: '\f105'; color: var(--black); font-family: 'icon'; opacity: 0.8; position: absolute; top: 50%; right: 1vw; -moz-transform: translateY(-50%); -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%); }
.footer-foot { width: 90vw; margin: 0 auto; }
.footer-foot-inner { 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; }

.copyright { font-size: 3.3vw; line-height: 1.4; opacity: 0.8; display: block; }
.pagetop { width: 10vw; height: 10vw; background: #fff; border: 1px solid #ced1d2; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; }
.pagetop .arrow { width: 35%; }
.footer-fixed { width: 100%; opacity: 0; visibility: hidden; z-index: 11; position: fixed; bottom: 0; left: 0; -moz-transition: all 0.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); -o-transition: all 0.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); -webkit-transition: all 0.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); transition: all 0.5s cubic-bezier(0.05, 0.05, 0.31, 0.97); }
.footer-fixed.active { opacity: 1; visibility: visible; }

.footer-fixed-items { width: 100%; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.footer-fixed-items li { width: calc(100% / 3); height: 14vw; text-align: center; position: relative; }
.footer-fixed-items li img{width: 100%;}
.footer-fixed-items li.web a { background: var(--blue); }
.footer-fixed-items li.web a:before { content: '\e922'; color: var(--blue); font-size: 90%; }
.footer-fixed-items li.tel a { background: #cfa850; }
.footer-fixed-items li.tel a:before { content: '\f095'; color: #cfa850; font-size: 98%; }
.footer-fixed-items li.line a { background: #77be52; }
.footer-fixed-items li.line a:before { content: '\e906'; color: #77be52; font-size: 95%; }
.footer-fixed-items a { width: 100%; height: 100%; padding-top: 1vw; color: #fff; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; }
.footer-fixed-items a:before { width: 6vw; height: 6vw; margin-right: 1vw; font-family: 'icon'; font-weight: bold; background: #fff; -moz-border-radius: 50%; -webkit-border-radius: 50%; border-radius: 50%; position: relative; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; }
.footer-fixed-items .title { font-size: 4vw; font-weight: bold; text-align: center; line-height: 1.2; }

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

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

/* common pc 
----------------------------------------------- */
.container { padding-top: 0; }
.midashi01 { margin-bottom: 40px; }
.midashi01 .en {font-size: 50px;}
.midashi01 .jp { font-size: 16px; }
.midashi02 { padding-top: 60px; margin-bottom: 40px; }
.midashi02:before { width: 6px; height: 35px; left: calc(50% - 6px); }
.midashi02:after { width: 6px; height: 35px; left: calc(50% + 6px); }
.midashi02 .en {font-size: clamp(46px, 23.793px + 3.017vw, 60px);}
.midashi02 .jp { font-size: 16px; }

.midashi03 {padding: 20px 0 26px;font-size: 30px;margin-bottom: 50px;} 
.midashi03 span{font-size: 18px;}
.midashi03 small { font-size:80%;}

.midashi04 {font-size: 20px;padding: 12px;margin-bottom: 30px;}

.more01 {width: 250px;padding: 14px 0;font-size: 16px;background-position: center right 20px;background-size: 14px;}
.more02 { padding-right: 30px; font-size: 16px; }
.more02:after { width: 25px; height: 25px; padding-left: 1px; font-size: 12px; top: 44%; }

/* header pc 
----------------------------------------------- */
.header { height: 175px; padding: 1px 0; background: none; -moz-transition: all 0.4s cubic-bezier(0.05, 0.05, 0.31, 0.97); -o-transition: all 0.4s cubic-bezier(0.05, 0.05, 0.31, 0.97); -webkit-transition: all 0.4s cubic-bezier(0.05, 0.05, 0.31, 0.97); transition: all 0.4s cubic-bezier(0.05, 0.05, 0.31, 0.97); }
.header.active { background: #fff; box-shadow: 0 0 10px #b5b5b5;border-top: 4px solid var(--blue);}
.header-logo {margin: 10px auto 20px;font-size: 16px;text-align: center;position: relative;top: auto;left: auto;display: table;-moz-transform: translateY(0);-ms-transform: translateY(0);-webkit-transform: translateY(0);transform: translateY(0);}
.header-logo .title {margin-bottom: 8px;font-size: 17px;}
.header-logo .sub {font-size: 22px;}
.pc-header-global-items { width:clamp(730px, 90%, 1200px); margin: 0 auto; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.pc-header-global-items li { width: calc(100% / 7); text-align: center; border-right: 1px solid #c7caca; position: relative; }
.pc-header-global-items li.current:after, .pc-header-global-items li:hover:after { -moz-transform: translateX(-50%) scale(1); -ms-transform: translateX(-50%) scale(1); -webkit-transform: translateX(-50%) scale(1); transform: translateX(-50%) scale(1); }
.pc-header-global-items li.current a, .pc-header-global-items li:hover a { opacity: 1; }
.pc-header-global-items li:first-child { border-left: 1px solid #c7caca; }
.pc-header-global-items li:after { content: ''; width: 50px; height: 3px; background: var(--blue); pointer-evens: none; position: absolute; bottom: 0; left: 50%; -moz-transform: translateX(-50%) scale(0); -ms-transform: translateX(-50%) scale(0); -webkit-transform: translateX(-50%) scale(0); transform: translateX(-50%) scale(0); -moz-transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97); -o-transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97); -webkit-transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97); transition: all 0.3s cubic-bezier(0.05, 0.05, 0.31, 0.97); }
.pc-header-global-items a { padding: 12px 0; }
.pc-header-global-items .en { margin-bottom: 4px; font-size: 22px; font-family: goldenbook; font-weight: 400; display: block; }
.pc-header-global-items .jp { font-size: 14px; opacity: 0.7; display: block; }

/* hero pc 
----------------------------------------------- */
.top-hero { height: 1360px; background: url(../images/top-hero-bg-pc.jpg) no-repeat top center; background-size: 100%; }
.top-hero-title { top: 420px; -moz-transition-delay: 1.2s; -o-transition-delay: 1.2s; -webkit-transition-delay: 1.2s; transition-delay: 1.2s; }
.top-hero-title .en { margin-bottom: 40px; font-size: 22px; }
.top-hero-title .jp { width: 345px; }
.top-hero-image01 { width: 775px; z-index: 2; top: 175px; right: calc(50% + 225px); left: auto; }
.top-hero-image02 { width: 230px; z-index: 3; top: auto; right: calc(50% + 455px); bottom: 150px; -moz-transition-delay: 0.8s; -o-transition-delay: 0.8s; -webkit-transition-delay: 0.8s; transition-delay: 0.8s; }
.top-hero-image03 { width: 600px; right: auto; bottom: 70px; left: calc(50% - 35px); -moz-transition-delay: 0.6s; -o-transition-delay: 0.6s; -webkit-transition-delay: 0.6s; transition-delay: 0.6s; }
.top-hero-image04 { width: 760px; top: 175px; bottom: auto; left: calc(50% + 240px); -moz-transition-delay: 0.2s; -o-transition-delay: 0.2s; -webkit-transition-delay: 0.2s; transition-delay: 0.2s; }
.top-hero-image05 { width: 330px; z-index: 2; position: absolute; top: 590px; left: calc(50% + 460px); -moz-transition-delay: 0.4s; -o-transition-delay: 0.4s; -webkit-transition-delay: 0.4s; transition-delay: 0.4s; }
.top-hero-circle { width: 158px; z-index: 3; position: absolute; right: auto; bottom: 550px; left: calc(50% + 330px); }
.top-hero-deco01 { width: calc(50% - 320px); height: 350px; -moz-border-radius: 0 0 60px 0; -webkit-border-radius: 0; border-radius: 0 0 60px 0; bottom: 0; left: 0; }
.top-hero-deco02 { width: 1338px; height: 846px; background: url(../images/top-hero-deco02-pc.png) no-repeat top center; background-size: 100%; top: 595px; right: 0; bottom: auto; left: auto; }
.top-hero-deco03 { width: calc(50vw - 700px); height: 275px; -moz-border-radius: 0 0 0 60px; -webkit-border-radius: 0; border-radius: 0 0 0 60px; background: #d5edfe; z-index: 1; position: absolute; top: 670px; right: 0; }
.second-hero { height: 450px; background: url(../images/second-hero-bg-pc.jpg) no-repeat top center; background-size: cover; }
.second-hero-title { top: 240px; -moz-transform: translateY(0); -ms-transform: translateY(0); -webkit-transform: translateY(0); transform: translateY(0); }
.second-hero-title .en {margin-bottom: 14px;font-size: 30px;}
.second-hero-title .jp {font-size: clamp(26px, 19.655px + 0.862vw, 30px);}

/* bread pc 
----------------------------------------------- */
.breadcrumb { padding: 18px 0; }
.breadcrumb-items { width:clamp(730px, 90%, 1200px); }
.breadcrumb-items li { font-size: 15px; }
.breadcrumb-items li:after { margin: 0 12px 0 10px; }

/* footer pc 
----------------------------------------------- */
.footer {padding: 0;background: var(--bluebg);}
.footer-contact { padding: 0; }
.footer-contact-content { width:clamp(730px, 90%, 1200px); 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%); }
.footer-contact-title { margin-bottom: 30px; font-size: 50px; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; }
.footer-contact-title:before { content: ''; height: 1px; margin-right: 20px; background: #fff; opacity: 0.5; flex: 1; }
.footer-contact-title:after { content: ''; height: 1px; margin-left: 20px; background: #fff; opacity: 0.5; flex: 1; }
.footer-contact-items {width: 100%;margin: 0 auto;display: -webkit-box;display: -webkit-flex;display: flex;-webkit-justify-content: space-between;justify-content: space-between;}
.footer-contact-items li {width: 32.5%;margin: 0;}
.footer-contact-items li.web .title:before { margin-right: 8px; top: -1px; }
.footer-contact-items li.tel .title { font-size: 28px; }
.footer-contact-items li.tel .title:before { margin-right: 4px; }
.footer-contact-items li.line .title:before { margin-right: 6px; font-size: 95%; top: -1px; }
.footer-contact-items a { padding: 30px 0; }
.footer-contact-items .title { margin-bottom: 12px; font-size: 26px; }
.footer-contact-items .sub { font-size: 14px; }
.footer-contact-gallery-items { position: relative; }
.footer-contact-gallery-item { width: 550px; }
.footer-content {width:clamp(730px, 90%, 1200px);padding: 80px 0;margin: 0 auto;display: -webkit-box;display: -webkit-flex;display: flex;-webkit-justify-content: space-between;justify-content: space-between;}
.footer-left {width: auto;margin: 0;}
.footer-logo { margin-bottom: 15px; }
.footer-logo .title { margin-bottom: 6px; font-size: 14px; }
.footer-logo .sub { font-size: 16px; }
.footer-address { margin-bottom: 40px; font-size: 15px; }
.pc-footer-navi { width: 100%; }
.pc-footer-navi-box { margin-bottom: 30px; }
.pc-footer-navi-title { margin-bottom: 18px; font-size: 18px; font-family: futura-pt; font-weight: 400; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; }
.pc-footer-navi-title:after { content: ''; height: 1px; margin-left: 15px; background: var(--black); opacity: 0.3; flex: 1; }
.pc-footer-navi-items {display: grid;grid-auto-flow: column;grid-template-rows: repeat(4, auto);-webkit-justify-content: flex-start;justify-content: flex-start;}
.pc-footer-navi-items li {width: 150px;margin-bottom: 15px;font-size: 15px;}
.footer-right {margin: 0;margin: 0 0 0 3vw;/* width: clamp(480px, 384.828px + 12.931vw, 540px); */width: 540px;min-width: 440px;}
.footer-foot { width: 100%; background: #fff; }
.footer-foot-inner { width:clamp(730px, 90%, 1200px); padding: 30px; margin: 0 auto; }
.copyright { font-size: 12px; }
.pagetop { width: 120px; height: 32px; padding-top: 3px; font-size: 15px; font-family: futura-pt; font-weight: 400; }
.footer-fixed { width: auto; right: 15px; bottom: 15px; left: auto; }
.footer-fixed.stop { opacity: 0; visibility: hidden; }
.footer-fixed-items { width: auto; }
.footer-fixed-items li { width: 150px; height: 150px; margin-left: 8px; }
.footer-fixed-items a { padding: 0; -moz-border-radius: 50%; -webkit-border-radius: 50%; border-radius: 50%; }
.footer-fixed-items a:before { display: none; }

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


}

@media screen and (min-width: 1200px) { 

.pc-footer-navi-items {grid-template-rows: repeat(3, auto);}
}

/* =============================================
retina用
================================================*/
@media screen and (min-width: 736px) and (-webkit-min-device-pixel-ratio: 2), screen and (min-width: 736px) and (min-resolution: 2dppx) { 
.more01 { background-image:url(../images/arrow@2x.png) ; }
.top-hero { background-image: url(../images/top-hero-bg-pc@2x.jpg) ; }
.top-hero-deco02 { background-image: url(../images/top-hero-deco02-pc@2x.png) ; }
.second-hero { background-image: url(../images/second-hero-bg-pc@2x.jpg); } 
}
