@charset "UTF-8";
*{-o-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box}
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block}
audio,canvas,video{display:inline-block}
audio:not([controls]){display:none;height:0}
[hidden]{display:none}
html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;scroll-behavior: smooth;}

body{margin:0}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}
pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-0.5em}
sub{bottom:-0.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:0.35em 0.625em 0.75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;outline: none;}
button,input{line-height:normal}
button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
ul,li { margin:0; padding:0; list-style-type:none; }
* { -moz-box-sizing:border-box; box-sizing:border-box; margin:0; padding:0; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; -webkit-tap-highlight-color:transparent; }
.cf:before, .cf:after {content:""; display:table; }
.cf:after {clear:both; }
.cf {zoom:1; }
.fl {float: left; overflow: hidden;}
.fr {float: right !important; overflow: hidden;}
.ta-center { text-align: center; }
.table{ width:100%; height:100%; display:table; }
* html div.table { position: relative; }  
*+html div.table { position: relative; }
.table-cell{ vertical-align:middle; display:table-cell; }
* html .table-cell { position: absolute; }  
*+html .table-cell { position: absolute; }
*::selection { background: #44aa97; }
*::-moz-selection { background: #44aa97; }

body{ color:#111; line-height: 1.7; font-family:'Open Sans',"YuGothic", "Yu Gothic","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif; -webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0)}
a { color:#111; outline:0 none; text-decoration:none; }
a:focus { outline:none; }
section { display: block; width: 100%; overflow: hidden; }
.sans-serif { font-family:'Open Sans',"YuGothic", "Yu Gothic","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif; }
h1,h2,h3,h4,h5{margin:0;font-weight:400;}
@media (min-width: 320px){
	h1,
	h2 { font-size: 30px; letter-spacing: -0.5px; text-transform: uppercase;}
	h3 { font-size: 14px; line-height: 1.5; text-transform: uppercase;}
	h4 { font-size: 10px; text-transform: uppercase; font-weight: 700; }
	p { font-size: 12px; }
}
@media (min-width: 768px){
	h1,
	h2 { font-size: 40px; letter-spacing: -1px; }
	h3 { font-size: 16px; }
	h4 { font-size: 11px; }
}
@media (min-width: 960px){
	h1,
	h2 { font-size: 56px; letter-spacing: -1.5px; }
	h3 { font-size: 18px; }
	p { font-size: 13px; }
}

section:not(#hero,#gallery) {
  min-height: 100dvh;
  scroll-snap-align: start;
  display: grid;
    place-content: center;
    place-items: center;
}
.anchor-point {
  display: block;
  position: relative;
  top: -65px; 
  visibility: hidden;
}
@media (min-width: 768px){
.anchor-point {
  top: -85px; }
}
/*///////////////////////////////////////////
Common Style
///////////////////////////////////////////*/

#progress-page { position: fixed; left:0; top:0; right: 0; bottom: 0; width: 100%; height: 100%; background-color: #fff; z-index: 9999; }
#progress-page #loader { width:50px; height:50px; position: absolute; top:50%; left:50%; margin-top: -25px; margin-left: -25px; }

.bg-lightgray { background-color: #f6f6f6; }
.section-inner { position: relative; margin:0 auto; width: 100%; max-width: 1180px; padding:0 20px; }
.section-inner.nopd { padding:0; }
.space { height: 40px; }
@media (min-width: 960px){
	.section-inner { padding:0 30px; }
	.space { height: 80px; }
}
@media (min-width: 320px){
	.sec-text { display: block; text-align: center; max-width: 800px; margin:0 auto; }
	.sec-text.wide { display: block; text-align: center; max-width: 100%; margin:40px auto; }
	.sec-text p { font-size: 12px; }
	.arrow-more { position: relative; display: inline-block; font-size: 11px; font-weight: 700; padding:0 20px 0 0; -webkit-transition:all 333ms ease; -moz-transition:all 333ms ease; transition:all 333ms ease; }
	.arrow-more svg { position: absolute; right: 0; top:4px; width: 13px; height: 10px; }
	.view-all { display: block; text-align: center; margin:0 0 50px; }
	.box-link span { position: relative; display: inline-block; font-size: 12px; line-height: 21px; font-weight: 700; letter-spacing: 1px; padding:5px 25px 4px; color:#fff; background-color: #c42026; border-radius: 20px; -webkit-transition: all .4s cubic-bezier(.19,1,.22,1); -moz-transition: all .4s cubic-bezier(.19,1,.22,1); transition: all .4s cubic-bezier(.19,1,.22,1); }
	.box-link span .arrow { position: absolute; left: 2px; top:2px; opacity: 0; width: 26px; height: 26px; background-color: #fff; border-radius: 50%; -webkit-transform: scale3d(0,0,0); -moz-transform: scale3d(0,0,0); transform: scale3d(0,0,0); -webkit-transition: all .4s cubic-bezier(.19,1,.22,1); -moz-transition: all .4s cubic-bezier(.19,1,.22,1); transition: all .4s cubic-bezier(.19,1,.22,1); }
	.box-link span .arrow svg { position: absolute; left:50%; top:50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; fill:#c42026; }
	.media-holder { position: relative; width: 100%; height: 0; padding: 0 0 100%; overflow: hidden; }
	.media-holder.h67 { padding: 0 0 66.6666%; }
	.media-holder.h56 { padding: 0 0 56%; }
	.media-holder.h50 { padding: 0 0 50%; }
	.media-holder.h33 { padding: 0 0 33.3333%; }
	.media-holder img,
	.media-holder iframe { position: absolute; left:0; top:0; width: 100%; height: 100%; }
}
@media (min-width: 768px){
	.sec-text p { font-size: 14px; }
	.view-all { margin:0 0 80px; }
}
@media (min-width: 960px){
	.sec-text p { font-size: 18px; }
	.sec-text.wide { margin:60px auto; }
	.sec-text.wide p { font-size: 14px; margin:10px 0; font-weight: 300; }
	.arrow-more { font-size: 12px; }
	.view-all { margin:0 0 100px; }
	.box-link span:hover { background-color: #f24b51; padding-left: 50px; }
	.box-link span:hover .arrow { opacity: 1; -webkit-transform: none; -moz-transform: none; transform: none; }
}

a.scroll-down div { display: none; text-align: center; font-size: 11px; color:#fff; text-transform: uppercase; letter-spacing: 1px; }
a.scroll-down span { position: absolute; bottom: 0; left: 50%; width: 20px; height: 33px; margin-left: -10px; border: 2px solid #fff; border-radius: 33px; box-sizing: border-box; }
a.scroll-down span::before { position: absolute; top: 6px; left: 50%; content: ''; width: 2px; height: 4px; margin-left: -1px; background-color: #fff; border-radius: 100%; -webkit-animation: sdb 1.4s infinite; animation: sdb 1.4s infinite; box-sizing: border-box; }
@-webkit-keyframes sdb { 0% { -webkit-transform: translate(0, 0); opacity: 0; } 40% { opacity: 1;} 80% { -webkit-transform: translate(0, 15px); opacity: 0; } 100% { opacity: 0; } }
@keyframes sdb { 0% { transform: translate(0, 0); opacity: 0; } 40% { opacity: 1;} 80% {transform: translate(0, 15px); opacity: 0; } 100% { opacity: 0; } }
@media (min-width: 960px){
	a.scroll-down div { display: block; }
	a.scroll-down span { width: 22px; height: 36px; margin-left: -11px; border-radius: 36px; }
	a.scroll-down span::before { top:8px; }
}


.inputWrap { display: block; width: 100%; }
.inputWrap input { display: block; width: 58%; line-height: 20px; padding:5px 10px; font-size: 12px; border:1px solid #eee; border-radius: 2px; float: left; }
.inputWrap button { display: block; width: 40%; line-height: 20px; padding:5px 10px; background-color:#bc1f29; color:#fff; border:none; border-radius: 2px; float: right; -webkit-transition:all 333ms ease; -moz-transition:all 333ms ease; transition:all 333ms ease; }
.inputWrap button span { font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: 1px; }
.inputWrap button:hover { background-color: #f24b51; }

/* Header */
@media (min-width: 320px){
.site-header {
  position: fixed;
  inset: 0 0 auto;
  height: 65px;
  background: rgba(10,30,20,1);
  z-index: 900;
}

.site-header .section-inner {
  position: relative;
  height: 100%;
}

.site-header .logo {
  position: absolute;
  top: 0;
  left: 50%;
  width: 90px;
  height: 90px;
  margin: 0;
  padding: 12px;
  border-radius: 50%;
  background: rgba(10,30,20,1);
  transform: translateX(-50%);
  z-index: 2;
}

.site-header .logo img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 20%;
  object-fit: contain;
}

.nav-trigger {
  position: relative;
  display: grid;
  place-items: center;
  width: 65px;
  height: 65px;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  z-index: 1001;
}

.nav-trigger span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 35px;
  height: 3px;
  margin: 0;
  background: #fff;
  transform-origin: center;
  transition:
    transform .45s cubic-bezier(.4, 0, .2, 1),
    opacity .25s ease;
}

.nav-trigger span:nth-child(1) {
  transform: translate(-50%, -9px);
}

.nav-trigger span:nth-child(2) {
  transform: translate(-50%, 0) scaleX(1);
}

.nav-trigger span:nth-child(3) {
  transform: translate(-50%, 9px);
}

.site-header.is-open .nav-trigger span:nth-child(1) {
  transform: translate(-50%, 0) rotate(45deg);
}

.site-header.is-open .nav-trigger span:nth-child(2) {
  opacity: 0;
  transform: translate(-50%, 0) scaleX(0);
}

.site-header.is-open .nav-trigger span:nth-child(3) {
  transform: translate(-50%, 0) rotate(-45deg);
}
.NavHolder {
  position: fixed;
  inset: 0;
  padding: 130px 50px 60px;
  background: rgba(10,30,20,0.8);
  overflow-y: auto;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-100%);
  transition: opacity .4s ease, transform .5s ease;
  z-index: 1000;
  backdrop-filter: blur(10px);
}

.site-header.is-open .NavHolder {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
}

.mainNav {
  max-width: 500px;
  margin: 0 auto;
}

.navlist {
  margin: 0;
  padding: 0;
  list-style: none;
}

.navlist li {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .4s ease, transform .4s ease;
  border-top: 1px solid rgba(205, 2005, 255, .2);
}

.site-header.is-open .navlist li {
  opacity: 1;
  transform: translateY(0);
}

.navlist li:nth-child(1) { transition-delay: .15s; }
.navlist li:nth-child(2) { transition-delay: .2s; }
.navlist li:nth-child(3) { transition-delay: .25s; }
.navlist li:nth-child(4) { transition-delay: .3s; }
.navlist li:nth-child(5) { transition-delay: .35s; }
.navlist li:nth-child(6) { transition-delay: .4s; }
.navlist li:nth-child(7) { transition-delay: .45s; }

.navlist a,
.company-title {
  display: block;
  padding: 14px 0;
  color: #fff;
  font-size: 15px;
  font-weight: 300;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
}

.navlist a:hover {
  opacity: .5;
}

.navlist-sub {
  margin-top: 30px;
  padding-bottom: 100px;
}

.navlist-sub a {
  font-size: 12px;
}

.company-title {
  opacity: .6;
}

body.is-nav-open {
  overflow: hidden;
}

.header-after {
  height: 65px;
  background: rgba(1,110,100,1);
}

.navlist li.active > a {
  color: #c42026;
}

.navlist li.sp {
  margin-top: 40px;
  background: #888;
}

.navlist li.sp a {
  text-align: center;
  color: #fff;
}

.navlist li.drop > a {
  position: relative;
  padding-right: 20px;
}

.navlist li.drop > a svg {
  position: absolute;
  top: 50%;
  right: 0;
  width: 10px;
  height: 10px;
  fill: #fff;
  transform: translateY(-50%);
  transition: transform .25s ease, fill .25s ease;
}

.navlist li.showdrop > a svg {
  transform: translateY(-50%) rotate(180deg);
  fill: rgba(255,255,255,.6);
}

.navlist li.drop ul {
  display: none;
  padding-left: 20px;
  list-style: none;
}

.navlist li.showdrop ul {
  display: block;
}

.navlist li.showdrop ul li {
  border-top: 1px dashed rgba(205, 2005, 255, .3);
}

.navlist li.showdrop ul li a {
  position: relative;
  padding-right: 20px;
  font-size: 12px;
  font-weight: 400;
}

.navlist li.showdrop ul li a svg {
  position: absolute;
  top: 50%;
  right: 0;
  width: 10px;
  height: 10px;
  fill: rgba(255,255,255,.7);
  transform: translateY(-50%);
}

@media (min-width: 768px) {
  .site-header {
    height: 85px;
  }

.site-header .logo {
    width: 120px;
    height: 120px;
    margin-left: 30px;
	padding: 17px;
  }

  .nav-trigger {
    height: 85px;
  }

  .NavHolder {
    padding-top: 150px;
  }

  .header-after {
    height: 85px;
  }
  
}
@media (min-width: 768px){
	header { height: 85px; }
	header .logo {  width: 120px;
        height: 120px;
        margin-left: 30px; }
	.header-after {height: 85px; }
}
@media (min-width: 960px){
	header .NavHolder .mainNav .navlist li a:hover { color:rgb(255,255,255,0.5); }
	header .NavHolder .mainNav .lang li a:hover { color:#999; }
}



/* Footer */

@media (min-width: 320px){
	footer { position:relative; width:100%; background-color: #fff; margin: 0 auto; padding:60px 0; z-index: 9; }
	footer .logo { position: relative; margin:0; width: 100px; height: 22px; display: block; z-index: 2; }
	footer .logo svg { width: 100%; height: 100%; display: block; }
	footer .foot-nav { position: relative; display: block; width: 100%; margin:20px 0 0; border-top: 1px solid #dcdcdc; border-bottom: 2px solid #eee; }
	footer .foot-nav .col { display: block; padding:30px 0; border-top: 1px solid #eee; }
	footer .foot-nav .col.bno { border:none; }
	footer .foot-nav .col h3 { margin-bottom: 15px; font-size: 15px; }
	footer .foot-nav .col p { margin: 10px 0; }
	footer .foot-nav .col li { display: block; padding:10px 0; }
	footer .foot-nav .col li a,
	footer .foot-nav .col li span { position: relative; display: block; padding-left: 45px; color:#333; font-size: 12px; }
	footer .foot-nav .col li svg { position: absolute; left:0; top:50%; margin:-15px 0 0; width: 30px; height: 30px; fill:#999; }
	footer .foot-nav .col .group li { display: block; width: 50%; float: left; }
	footer .foot-nav .col .group li a,
	footer .foot-nav .col .group li span { padding-left: 0; padding-right: 15px; }
	footer .foot-nav .col .group img { display: block; width: 100%; }
	footer .foot-nav .col .inputWrap { margin:20px 0; }
	footer .foot-bottom { display: block; margin-top: 30px; }
	footer .foot-bottom .sns { float: right; display: block; text-align: center; }
	footer .foot-bottom .sns li { display: inline-block; margin:0 2px; }
	footer .foot-bottom .sns li a { position: relative; display: block; width: 32px; height: 32px; }
	footer .foot-bottom .sns li a span { position: absolute; left:0; top:0; width: 32px; height: 32px; border:1px solid #111; border-radius: 40px; }
	footer .foot-bottom .sns li a span svg { position: relative; display: block; width: 16px; height: 16px; margin:7px; fill:#111; }
	footer .foot-bottom .sns li a div { display: none; }
	footer .foot-bottom p.copy { font-size: 12px; line-height: 40px; float: left; }
}
@media (min-width: 960px){
	footer { padding:80px 0; }
	footer .logo { width: 136px; height: 30px; }
	footer .foot-nav .col { float: left; width: 33.3333%; border: none; padding:30px; }
	footer .foot-nav .col:first-child { padding-left: 0; }
	footer .foot-nav .col:last-child { padding-right: 0 }
	footer .foot-nav .b-1,
	footer .foot-nav .b-2 { position: absolute; width: 1px; height: 96%; top:2%; background-color: #eee; }
	footer .foot-nav .b-1 { left:33.3333%; }
	footer .foot-nav .b-2 { left:66.6666%; }
	footer .foot-nav .col h3 { font-size: 18px; }
	footer .foot-bottom .sns li { margin:0 0 0 30px; }
	footer .foot-bottom .sns li a { width: auto; height: 42px; padding-left: 50px; color:#111; }
	footer .foot-bottom .sns li a span { width: 42px; height: 42px; }
	footer .foot-bottom .sns li a span:before { content:""; position: absolute; left:0; top:0; width: 100%; height: 100%; background-color: #111; border-radius: 40px; -webkit-transform: scale(0); -moz-transform: scale(0); transform: scale(0); -webkit-transition:all 333ms ease; -moz-transition:all 333ms ease; transition:all 333ms ease; }
	footer .foot-bottom .sns li a span svg { width: 20px; height: 20px; margin:10px; -webkit-transition:all 333ms ease; -moz-transition:all 333ms ease; transition:all 333ms ease; }
	footer .foot-bottom .sns li a div { display: block; line-height: 42px; font-size: 13px; }
	footer .foot-bottom .sns li a:hover span:before { -webkit-transform: scale(1); -moz-transform: scale(1); transform: scale(1); }
	footer .foot-bottom .sns li a:hover span svg { fill: #fff; }
	footer .foot-bottom p.copy { font-size: 13px; line-height: 42px; }
}

@media (min-width: 320px){
	.signp { position: relative; display: block; width: 100%; padding:40px 20px; background-color: #000; color:#fff; text-align: center; }
	.signp .signup-form { display: block; margin: 30px auto 0; max-width: 320px; }
	.signup-form a { display: block; width: 180px; font-weight: 700; font-size: 13px; text-align: center; padding:8px; margin:0 auto; background-color: #bc1f29; color:#fff; -webkit-transition: all 333ms ease; -moz-transition: all 333ms ease; transition: all 333ms ease;}
	.foot-nav .signup-form { display: block; margin: 15px auto 0; }
	.foot-nav .signup-form a { margin:0; }
}
@media (min-width: 960px){
	.signp { padding:70px 30px; }
	.signp .signup-form { margin-top: 50px; }
	.signup-form a { font-size: 14px; }
	.signup-form a:hover { background-color: #f24b51; }
}

