@charset "UTF-8";
@keyframes load8 {0% {-webkit-transform: rotate(0deg);transform: rotate(0deg);}100% {-webkit-transform: rotate(360deg);transform: rotate(360deg);}}

*:where(:not(html,iframe,canvas,img,svg,video,audio,input,textarea,select,button):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}

:root {
  --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", 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: #565656;}
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: opacity 0.4s; }
.pc {display: block !important;}
.sp {display: none !important;}
.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;}
.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;}
.ttl-style-01 {color: #006463;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: opacity 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: padding 0.4s;}
header .container h1 img {max-width: 20em;filter: brightness(0) invert(1);transition: 0.8s;}
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;}
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 #006463;background: #006463;}
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: invert(28%) sepia(53%) saturate(1266%) hue-rotate(141deg) brightness(90%) contrast(102%);}
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: #006463 url("../img/common/bg03_pc.webp") no-repeat center/cover;background-blend-mode: luminosity;}
footer .container {display: flex;flex-wrap: wrap;justify-content: space-between;padding: 3em 0;margin: 0 auto;width: calc(100% - 3em);}
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);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(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;}

.block-common-flow {background: aliceblue url("../img/common/bg01_pc.webp") no-repeat center / cover;background-blend-mode: soft-light;}
.block-common-flow h3 {margin-bottom: 1em;padding: 0.5em;background: cadetblue url("../img/common/bg03_pc.webp") no-repeat 100% 0 / cover;background-blend-mode: luminosity;border-radius: 5px;text-align: center;font-weight: 600;font-size: 150%;color: #fff;}
.block-common-flow h4 {font-weight: 600;font-size: 125%;text-align: center;color: #006463;}
.block-common-flow h4 span {display: block;font-size: 200%;}
.block-common-flow h4 span::after {content: "";display: block;width: 1.15em;height: 1px;background-color: #006463;margin: 0 auto 0.5em;}
.block-common-flow h4 small {display: block;margin: 0.25em 0 1em;font-weight: 500;font-size: 75%;letter-spacing: 0.15em;opacity: 0.5;}
.block-common-flow figure {max-width: 105px;width: 80%;margin: 0 auto 1.5em;}
.block-common-flow figure + p {margin-bottom: 1em;}
.block-common-flow figure + p span {display: inline-block;white-space: nowrap;}
.block-common-flow figure + p a {display: inline;font-weight: 600;color: #66a2a1;}
.block-common-flow .ruby {font-size: 87.5%;font-weight: 500;}
.block-common-flow .ruby a {display: inline;font-weight: 600;color: #66a2a1;}
.block-common-flow .container {width: calc(100% - 4em);max-width: 1200px;margin: 0 auto;padding: 5em 0;}
.block-common-flow .grid-list {display: flex;justify-content: space-between;}
.block-common-flow .grid-list > div {background-color: #fff;padding: 1.5em;box-shadow: 0 0 1em rgb(0 0 0 / 10%);width: calc(25% - 0.5em);border-radius: 5px;}

.accordion-header {position: relative;cursor: pointer;}
.accordion-header::after {content: "＋";position: absolute;top: 50%;right: 0.75em;transform: translateY(-50%);}
.accordion-header.active::after {content: "ー";}
.accordion-content {max-height: 0;overflow: hidden;}

@media only screen and (max-width: 1300px) {
  header .container nav ul li + li {margin-left: 0.5em;}
  header .container nav ul li a {padding: 0.5em;}
  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: 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 {transition: background 0.4s;}
  header .container nav ul li.contact a:hover {color: #006463;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: #006463;background: #fff;}
  footer .container > div:nth-child(2) nav ul li.contact a:hover span::after {transform: translateX(0.5em);filter: none;}

  .block-common-flow .grid-list > div {display: flex;flex-direction: column;justify-content: space-between;}
  .block-common-flow figure + p {flex-grow: 1;}
  .block-common-flow .ruby {flex-grow: 1;}
}
@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;}
  .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;}
  #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: #006463;}
  body.scrolled #btnNavView a span:nth-child(1)::before,
  body.scrolled #btnNavView a span:nth-child(1)::after {background: #006463;}
  body.scrolled #btnNavView a span + span {color: #006463;}
  header .container nav ul {width: 20em;margin: 0;padding: 0;position: fixed;top: calc(50% + 3em);left: 50%;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 .container nav ul li.contact a {border-color: #fff;background: transparent;}
  header.open .container h1 img {filter: brightness(0) invert(1)!important;}
  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: #006463;position: fixed;top: 0;left: 0;z-index: 0;opacity: 0;pointer-events: none;transition: 0.4s;}
  header.open::before {opacity: 0.8;}
  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;}

  .block-common-flow .grid-list {display: block;}
  .block-common-flow .grid-list > div {width: 100%;}
  .block-common-flow .grid-list > div + div {margin-top: 1em;}
  .block-common-flow h4 {position: relative;text-align: left;padding-left: 3em;}
  .block-common-flow h4 span {position: absolute;top: 50%;left: 0;transform: translateY(-50%);}
  .block-common-flow figure {display: none;}
}
@media (orientation: landscape) and (max-width: 767px){}