@charset "UTF-8";
@import url('https://fonts.googleapis.com/css?family=EB+Garamond:400,400i,500,500i,600,600i,700,700i,800,800i&display=swap');
/*reset*/
*:where(:not(html,iframe,canvas,img,svg,video,audio):not(svg *,symbol *)){all:unset;display:revert}*,*::before,*::after{box-sizing:border-box}a,button{cursor:revert}ol,ul,menu{list-style:none}img{display: block;}table{border-collapse:collapse}input,textarea{-webkit-user-select:auto}textarea{white-space:revert}meter{-webkit-appearance:revert;appearance:revert}:where(pre){all:revert}::placeholder{color:unset}::marker{content:initial}:where([hidden]){display:none}:where([contenteditable]:not([contenteditable="false"])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}:where([draggable="true"]){-webkit-user-drag:element}:where(dialog:modal){all:revert}
/*reset end*/
:root {
  --navy-01: #123269;--black-01: #121212;--gray-01: #eee;
  --bg-01: linear-gradient(100deg,#6493ba,#336d9c);;--bg-02: linear-gradient(to right,#5db1ac,#35918b);--bg-03: linear-gradient(100deg,#5a6763,#344842);
  --fontsize-10: 62.5%;--fontsize-11: 68.75%;--fontsize-12: 75%;--fontsize-13: 81.25%;--fontsize-14: 87.5%;--fontsize-15: 93.75%;
  --fontsize-16: 100%;--fontsize-17: 106.25%;--fontsize-18: 112.5%;--fontsize-19: 118.75%;--fontsize-20: 125%;
  --fontsize-21: 131.25%;--fontsize-22: 137.5%;--fontsize-23: 143.75%;--fontsize-24: 150%;--fontsize-25: 156.25%;
  --fontsize-26: 162.5%;--fontsize-27: 168.75%;--fontsize-28: 175%;--fontsize-29: 181.25%;--fontsize-30: 187.5%;
  --fontsize-31: 193.75%;--fontsize-32: 200%;
}
body,html {font-family: "Oswald", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック体", "Yu Gothic", "メイリオ", Meiryo, sans-serif;overflow-x: hidden;}
body {font-size: var(--fontsize-16);line-height: 1.5;overflow-x: hidden;position: relative;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;font-feature-settings: "palt";}
img {width: 100%;height: auto;display: block;}
body,a {color: var(--color-02);}
a {display: block; text-decoration: none; }
ul {list-style: none; }
h1,h2,h3,h4,div,p,ul,li,a,span,p,th,td {font-weight: normal;box-sizing: border-box;}
input:focus {outline: none;}
iframe {border: none;}
select {outline: none;}
figure {position: relative;}
.btn {transition: 0.4s; }
.pc {display: block !important;}
.sp {display: none !important;}
.object-fit {object-fit: cover;font-family: 'object-fit: cover;'}
.mw1700 {width: 90%; max-width: 1700px; margin: auto;}
.mw1600 {width: 90%; max-width: 1600px; margin: auto;}
.mw1500 {width: 90%; max-width: 1500px; margin: auto;}
.mw1400 {width: 90%; max-width: 1400px; margin: auto;}
.mw1300 {width: 90%; max-width: 1300px; margin: auto;}
.mw1200 {width: 90%; max-width: 1200px; margin: auto;}
.mw1100 {width: 90%; max-width: 1100px; margin: auto;}
.mw1000 {width: 90%; max-width: 1000px; margin: auto;}
.mw900 {width: 90%; max-width:  900px; margin: auto;}
.mw800 {width: 90%; max-width:  800px; margin: auto;}
.mw700 {width: 90%; max-width:  700px; margin: auto;}
.mw600 {width: 90%; max-width:  600px; margin: auto;}
.mw500 {width: 90%; max-width:  500px; margin: auto;}
.loader-wrap {position: fixed;display: flex;align-items: center;justify-content: center;width: 100%;height: 100%;background: #fff;z-index: 10001;opacity: 1;transition: opacity 0.6s ease;}
.loader-wrap.fadeout {opacity: 0;}
.loader,.loader:after {border-radius: 50%;width: 10em;height: 10em;}
.loader {margin: 60px auto;font-size: var(--fontsize-10);position: relative;text-indent: -9999em;border-top: 0.4em solid rgba(18,50,105,0.2);border-right: 0.4em solid rgba(18,50,105,0.2);border-bottom: 0.4em solid rgba(18,50,105,0.2);border-left: 0.4em solid #123269;-webkit-transform: translateZ(0);-ms-transform: translateZ(0);transform: translateZ(0);-webkit-animation: load8 1.1s infinite linear;animation: load8 1.1s infinite linear;}
@-webkit-keyframes load8 {0% {-webkit-transform: rotate(0deg);transform: rotate(0deg);}100% {-webkit-transform: rotate(360deg);transform: rotate(360deg);}}
@keyframes load8 {0% {-webkit-transform: rotate(0deg);transform: rotate(0deg);}100% {-webkit-transform: rotate(360deg);transform: rotate(360deg);}}
.invert {filter: brightness(0) invert(1);}
.cap01 {position: relative;}
.cap01::after {display: block;content: attr(data-cap);color: rgba(255,255,255,0.9);font-size: 10px;line-height: 1;padding: 0.3em 0.5em 0.28em;background: rgba(0,0,0,0.6);position: absolute;right: 0;bottom: 0;z-index: 100;}
.appear.observe {position: relative;opacity: 0;-webkit-backface-visibility: hidden;backface-visibility: hidden;}
.appear.staging {opacity: 1;transition: opacity ease-out 600ms 200ms;}
.billboard-style-01 {position: relative;}
.billboard-style-01::after {display: block;content: '';width: 100%;height: calc(50vw - 600px - 2em + 11.1em);background: url("../img/common/bg03_pc.webp") no-repeat top center/cover;position: absolute;top: 0;left: 0;z-index: -2;}
.billboard-style-01::before {display: block;content: '';width: 100%;height: calc(50vw - 600px - 4.5em);background: #fff;position: absolute;left: 0;bottom: 0;z-index: -1;transform: translateY(100%);clip-path: polygon(calc(50vw - 600px - 4.5em) 0,100% 0,100% calc(50vw - 600px - 4.5em),0 100%);}
.billboard-style-01 .container {padding: 10em 0 0;position: relative;}
.billboard-style-01 .container h2 {display: inline-block;transform: translateY(8px);position: relative;}
.billboard-style-01 > span,
.billboard-style-01 .container h2::after {display: block;content: '';width: 4.25em;height: 1px;background: #fff;transform: rotate(135deg);transform-origin: top left;position: absolute;top: 0.5em;z-index: 1;}
.billboard-style-01 > span {top: 11em;left: calc(50vw - 600px - 1.65em);}
.billboard-style-01 .container h2::after {left: calc(100% + 4em);}
.billboard-style-01 .container h2 span {color: #fff;font-weight: 600;}
.billboard-style-01 .container h2 span::before {display: inline-block;content: attr(data-en);font-size: 375%;line-height: 1;letter-spacing: 0.15em;vertical-align: top;margin-right: 0.3em;transform: translateY(-4px);}
.ttl-style-01 {color: var(--navy-01);font-size: 281.25%;font-weight: 600;letter-spacing: 0.2em;line-height: 1.9;position: relative;}
.ttl-style-01::after {display: inline-block;content: attr(data-en);font-size: 33%;letter-spacing: 0.2em;margin-left: 1.5em;vertical-align: middle;}
.ttl-style-02 {font-size: var(--fontsize-30);font-weight: 600;letter-spacing: 0.1em;line-height: 1.9;padding: 0.5em 0;position: relative;z-index: 1;}
.ttl-style-02::after {display: block;content: "";width: 100%;height: 100%;background-position: top left;background-repeat: no-repeat;background-size: contain;position: absolute;top: 0;left: 0;z-index: -1;}
.ttl-style-02 + p {line-height: 2;letter-spacing: 0.1em;margin-top: 1em;}
.ttl-style-02 + p span {display: inline-block;}
/* ------------------------------------------------------------------- */
body {overflow-x: hidden;}
header {position: fixed;top: 0;left: 0;right: 0;z-index: 9999;}
header::after {display: block;content: '';width: 100%;height: 100%;background: #fff;position: absolute;top: 0;left: 0;z-index: -1;opacity: 0;transition: 0.4s;}
body.scrolled header::after {opacity: 1;}
header .container {display: flex;flex-wrap: wrap;justify-content: space-between;align-items: center;margin: 0 auto;padding: 1.5em;transition: 0.4s;}
header .container h1 img {max-width: 20em;filter: brightness(0) invert(1);transition: 0.8s;}
header .container h1 p {color: #fff;font-size: var(--fontsize-12);font-family: "Oswald", sans-serif;letter-spacing: 0.2em;margin-top: 0.75em;transition: 0s;transform: none;}
header .container nav {text-align: right;}
header .container nav ul {letter-spacing: -0.4em;}
header .container nav ul li {display: inline-block;letter-spacing: 0;vertical-align: middle;}
header .container nav ul li + li {margin-left: 1em;}
header .container nav ul li a {color: #fff;font-size: var(--fontsize-14);text-align: left;line-height: 1;letter-spacing: 0.2em;padding: 0.5em 1.5em;position: relative;transition: 0.4s;}
header .container nav ul li a span {font-weight: 600;}
header .container nav ul li:not(.contact) a span::after {display: block;content: attr(data-en);color: #fff;font-size: 50%;margin-top: 1em;}
header .container nav ul li.contact a {padding: 0.9em 1.5em 1em;border: 1px solid var(--navy-01);background: var(--navy-01);}
header .container nav ul li.contact a span::after {display: inline-block;content: '';width: 2em;height: 0.8em;margin-left: 0.75em;background: url("../img/common/icon_arrow.svg") no-repeat center/contain;filter: brightness(0) invert(1);transition: 0.4s;}
body.scrolled header .container {padding: 0.75em 1.5em;}
body.scrolled header .container h1 img {filter: none;}
body.scrolled header .container h1 p {color: var(--color-02);margin-top: 0.5em;}
body.scrolled header .container nav ul li:not(.contact) a span::after,
body.scrolled header .container nav ul li:not(.contact) a {color: var(--color-02);}
body.scrolled header .container nav ul li:not(.contact) a {padding: 0.25em 1.5em 0;}
body.scrolled header .container nav ul li.contact a {padding: 0.6em 1.5em 0.7em;}
footer {background: url("../img/common/bg02_pc.webp") no-repeat center/cover;}
footer .container {display: flex;flex-wrap: wrap;justify-content: space-between;padding: 3em 0;margin: 0 auto;width: 90%;}
footer .container > div:nth-child(1) p,
footer .container > div:nth-child(1) a {color: #fff;letter-spacing: 0.15em;}
footer .container > div:nth-child(1) > a {max-width: 20em;}
footer .container > div:nth-child(1) > a img {filter: brightness(0) invert(1);}
footer .container > div:nth-child(1) > a p {color: #fff;font-size: var(--fontsize-12);font-family: "Oswald", sans-serif;letter-spacing: 0.2em;margin-top: 0.75em;}
footer .container > div:nth-child(1) address {font-size: var(--fontsize-14);margin-top: 3em;}
footer .container > div:nth-child(1) address p:nth-of-type(1) > span {margin-right: 1em;}
footer .container > div:nth-child(1) address p:nth-of-type(1) a {display: inline-block;}
footer .container > div:nth-child(1) address p:nth-of-type(1) a span::before {display: inline-block;content: '';width: 0.9em;height: 0.9em;background: url("../img/common/icon_pin.svg") no-repeat center/contain;}
footer .container > div:nth-child(1) address > a {font-size: var(--fontsize-22);line-height: 1;margin: 0.5em 0;}
footer .container > div:nth-child(1) address p:nth-of-type(2) {font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック体", "Yu Gothic", "メイリオ", Meiryo, sans-serif;}
footer .container > div:nth-child(2) {position: relative;}
footer .container > div:nth-child(2) nav {text-align: right;}
footer .container > div:nth-child(2) nav ul {letter-spacing: -0.4em;}
footer .container > div:nth-child(2) nav ul li {display: inline-block;letter-spacing: 0;vertical-align: middle;}
footer .container > div:nth-child(2) nav ul li + li {margin-left: 1em;}
footer .container > div:nth-child(2) nav ul li a {color: #fff;font-size: var(--fontsize-14);text-align: left;line-height: 1;letter-spacing: 0.2em;padding: 0.5em 1em;position: relative;transition: 0.4s;}
footer .container > div:nth-child(2) nav ul li a span {font-weight: 600;}
footer .container > div:nth-child(2) nav ul li:not(.contact) a span::after {display: block;content: attr(data-en);color: #fff;font-size: 50%;margin-top: 1em;}
footer .container > div:nth-child(2) nav ul li.contact a {padding: 0.9em 1.5em 1em;border: 1px solid #fff;}
footer .container > div:nth-child(2) nav ul li.contact a span::after {display: inline-block;content: '';width: 2em;height: 0.8em;margin-left: 0.75em;background: url("../img/common/icon_arrow.svg") no-repeat center/contain;filter: brightness(0) invert(1);transition: 0.4s;}
footer .container > div:nth-child(2) > p {color: #fff;font-size: var(--fontsize-12);letter-spacing: 0.2em;position: absolute;right: 0;bottom: 0;z-index: 1;}
@media only screen and (max-width: 1400px) {
  .billboard-style-01::before {display: none;}
  .billboard-style-01::after {height: 13.7em;}
}
@media only screen and (max-width: 1300px) {
  footer .container > div:nth-child(2) nav ul li + li {margin-left: 0.5em;}
  footer .container > div:nth-child(2) nav ul li a {padding: 0.5em;}
}
@media only screen and (min-width: 768px) and (max-width: 1400px) {
  .billboard-style-01 .container h2::before {display: none;}
}
@media only screen and (min-width: 768px) and (max-width: 1100px) {
  header {font-size: 1.6vw;}
  footer {font-size: 1.4vw;}
}
@media only screen and (min-width: 768px) {
  a[href*="tel:"] {pointer-events: none;cursor: default;text-decoration: none;}
  .btn:hover {opacity: 0.7;transition: 0.4s;}
  body.scrolled header .container h1 img {max-width: 16em;}
  header .container nav ul li:not(.contact) a:hover {opacity: 0.5;}
  header .container nav ul li.contact a:hover {color: var(--navy-01);background: #fff;}
  header .container nav ul li.contact a:hover span::after {transform: translateX(0.5em);filter: none;}
  footer .container > div:nth-child(2) nav ul li:not(.contact) a:hover {opacity: 0.5;}
  footer .container > div:nth-child(2) nav ul li.contact a:hover {color: var(--navy-01);background: #fff;}
  footer .container > div:nth-child(2) nav ul li.contact a:hover span::after {transform: translateX(0.5em);filter: none;}
}
@media only screen and (max-width: 767px) {
  a {-webkit-tap-highlight-color: transparent;}
  .pc {display: none !important;}
  .sp {display: block !important;}
  br.sp {line-height: 0;}
  .scroller {overflow-x: scroll;position: relative;}
  .scroller:before {content: "";display: block;transition: opacity cubic-bezier(0.445, 0.05, 0.55, 0.95) 500ms;position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: url("../img/common/common_swipe.png")no-repeat 50% 50%;background-size: 35% auto;z-index: 2;}
  .scroller:after {content: "";display: block;transition: opacity cubic-bezier(0.445, 0.05, 0.55, 0.95) 500ms;position: absolute;top: 0;left: 0;bottom: 0;background-color: rgba(0, 0, 0, 0.65);width: 210%;padding: 3%;z-index: 1;}
  .scroller.on:before,
  .scroller.on:after {opacity: 0;}
  .scroller img {width: 200%;opacity: 0.5;transition: opacity cubic-bezier(0.445, 0.05, 0.55, 0.95) 100ms;}
  .scroller.on img {opacity: 1;}
  .billboard-style-01 {background: url("../img/common/bg03_pc.webp") no-repeat center/cover;}
  .billboard-style-01::after {display: none;}
  .billboard-style-01 .container {text-align: center;padding: 6.5em 0 1.5em;}
  .billboard-style-01 .container h2 {text-align: center;transform: translateY(0);}
  .billboard-style-01 .container h2::before {display: block;content: '';width: 4.25em;height: 1px;background: #fff;transform: rotate(135deg);transform-origin: top left;position: absolute;top: 0.5em;right: calc(100% - 2.5em - 1px);z-index: 1;}
  .billboard-style-01 .container h2 span::before {display: block;font-size: 200%;letter-spacing: 0.05em;margin-right: 0;transform: translateY(0);}
  .ttl-style-01 {font-size: 175%;letter-spacing: 0.1em;line-height: 1.5;}
  .ttl-style-01::after {display: block;font-size: 50%;margin: 0;}
  .ttl-style-02 {font-size: 137.5%;line-height: 1.5;}
  body {font-size: 4vw;width: 100%;overflow-x: hidden;}
  header .container {padding: 1em 0.75em;}
  header .container h1 {width: 70% !important;max-width: 100% !important;}
  header .container h1 p {margin-bottom: 0.25em;}
  body.ios header .container h1 p {text-indent: 7px;position: relative;z-index: 1;}
  #btnNavView {position: absolute;top: 50%;right: 0.75em;width: 3em;height: 3em;transform: translateY(-50%);}
  #btnNavView a {text-align: center;height: 100%;}
  #btnNavView a span:nth-child(1) {display: block;width: 66%;height: 1px;margin: 0 auto;background: #fff;position: absolute;top: 28%;left: 0;right: 0;transition: 0.4s;}
  #btnNavView a span:nth-child(1)::before,
  #btnNavView a span:nth-child(1)::after {display: block;content: '';width: 100%;height: 1px;background: #fff;position: absolute;transition: 0.4s;}
  #btnNavView a span:nth-child(1)::before {top: 0.5em;}
  #btnNavView a span:nth-child(1)::after {bottom: 0.5em;}
  #btnNavView a span:nth-child(2) {display: block;}
  #btnNavView a span:nth-child(3) {display: none;}
  #btnNavView a span + span {color: #fff;font-size: var(--fontsize-12);letter-spacing: 0.1em;position: absolute;left: 0;right: 0;bottom: 0.25em;}
  body.scrolled header .container {padding: 0.7em 0.75em 0.4em;}
  body.scrolled #btnNavView a span:nth-child(1) {background: var(--black-01);}
  body.scrolled #btnNavView a span:nth-child(1)::before,
  body.scrolled #btnNavView a span:nth-child(1)::after {background: var(--black-01);}
  body.scrolled #btnNavView a span + span {color: var(--black-01);}
  header .container nav ul {width: 15em;margin: 0;padding: 0;position: fixed;top: 50%;left: 50%;right: 0;bottom: 0;z-index: 1;transform: translate(-50%,-50%);opacity: 0;pointer-events: none;}
  header .container nav ul li {display: block;opacity: 0;transition: 0.6s;transform: translateY(1em);}
  header .container nav ul li + li {margin: 1em 0 0;}
  header .container nav ul li:nth-child(1) {transition-delay: 0.1s;}
  header .container nav ul li:nth-child(2) {transition-delay: 0.2s;}
  header .container nav ul li:nth-child(3) {transition-delay: 0.3s;}
  header .container nav ul li:nth-child(4) {transition-delay: 0.4s;}
  header .container nav ul li a {color: #fff !important;font-size: var(--fontsize-18);letter-spacing: 0.1em;text-align: center;padding: 1em 0 !important;}
  header .container nav ul li:not(.contact) a span::after {font-size: 70%;}
  header.open #btnNavView a span:nth-child(1) {background: transparent;}
  header.open #btnNavView a span:nth-child(1)::before,
  header.open #btnNavView a span:nth-child(1)::after {background: #fff;top: 0;bottom: 0;}
  header.open #btnNavView a span:nth-child(1)::before {transform: rotate(145deg);}
  header.open #btnNavView a span:nth-child(1)::after {transform: rotate(-145deg);}
  header.open #btnNavView a span:nth-child(2) {display: none;color: #fff;}
  header.open #btnNavView a span:nth-child(3) {display: block;color: #fff;}  
  header.open .container nav ul {opacity: 1;pointer-events: auto;}
  header.open .container nav ul li {opacity: 1;transform: translateY(0);}
  header::before {display: block;content: '';width: 100vw;height: 100vh;background: var(--black-01);position: fixed;top: 0;left: 0;z-index: 0;opacity: 0;pointer-events: none;transition: 0.4s;}
  header.open::before {opacity: 0.8;}
  footer {background: url("../img/common/bg02_sp.webp") no-repeat center/cover;}
  footer .container {flex-direction: column-reverse;padding: 1em 0 4em;}
  footer .container > div:nth-child(1) {margin-top: 3em;}
  footer .container > div:nth-child(1) address p:nth-of-type(1) > span {display: block;margin: 0;}
  footer .container > div:nth-child(1) address > a {font-size: var(--fontsize-24);}
  footer .container > div:nth-child(1) address p:nth-of-type(2) {letter-spacing: 0.1em;}
  footer .container > div:nth-child(2) {position: static;}
  footer .container > div:nth-child(2) nav ul li {display: block;width: 100%;margin: 0 !important;}
  footer .container > div:nth-child(2) nav ul li a {font-size: var(--fontsize-16);}
  footer .container > div:nth-child(2) nav ul li:not(.contact) a {padding: 1em 0;border-bottom: 1px solid rgba(255,255,255,0.5);position: relative;}
  footer .container > div:nth-child(2) nav ul li:not(.contact) a span::after {display: inline-block;font-size: 70%;margin: 0 0 0 1em;opacity: 0.6;}
  footer .container > div:nth-child(2) nav ul li:not(.contact) a span::before {display: inline-block;content: '';width: 2em;height: 0.8em;background: url(../img/common/icon_arrow.svg) no-repeat center / contain;filter: brightness(0) invert(1);position: absolute;top: 50%;right: 1.5em;z-index: 1;transform: translateY(-50%);opacity: 0.7;}
  footer .container > div:nth-child(2) nav ul li.contact {margin: 2em 0 0 !important;}
  footer .container > div:nth-child(2) nav ul li.contact a {padding: 1.15em 1.5em 1.25em;position: relative;}
  footer .container > div:nth-child(2) nav ul li.contact a span::after {position: absolute;top: 50%;right: 1.5em;z-index: 1;transform: translateY(-50%);opacity: 0.7;}
  footer .container > div:nth-child(2) > p {left: 5vw;bottom: 1em;}
}
@media (orientation: landscape) and (max-width: 767px){}