*, *::before, *::after { box-sizing: border-box; }

body { color: #000; background: #FFF; font-size: 18px; font-family: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Helvetica Neue", HelveticaNeue, YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif; font-weight: 400; font-feature-settings: "palt"; letter-spacing: 1px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-text-size-adjust: 100%; }

_:lang(x)::-ms-backdrop, .selector { font-family: "Segoe UI", Meiryo, sans-serif; }

.fntNtSansB { font-family: 'Noto Sans JP'; font-weight: 700; }

.fntMrL { font-family: 'Montserrat', sans-serif; font-weight: 300; letter-spacing: .05em; }

.fntMrR { font-family: 'Montserrat', sans-serif; font-weight: 400; letter-spacing: .05em; }

.fntMrM { font-family: 'Montserrat', sans-serif; font-weight: 500; letter-spacing: .05em; }

.fntMrSB { font-family: 'Montserrat', sans-serif; font-weight: 600; letter-spacing: .05em; }

p { line-height: 1.8; }

img { border: 0; vertical-align: top; }

input, select { position: relative; top: 1px; }

table, th, td { border-collapse: collapse; border-spacing: 0; }

ul, li { list-style: none; }

a:link, a:visited { color: #000; text-decoration: none; transition: opacity 0.5s; }
a:hover, a:active { opacity: .6; }

.clearfix::after { content: ""; display: block; clear: both; }

#cover { width: 100%; height: 100%; position: fixed; background: #fff; top: 0px; left: 0px; z-index: 10000; }

#loader { opacity: 0; position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; width: 300px; height: 71px; }
@media screen and (max-width: 428px) { #loader { width: 240px; height: 49px; } }
#loader img { width: 100%; height: auto; }

#wrapper { overflow: hidden; position: relative; }

.dd800, .dd600, .dd428 { display: none; }

@media screen and (max-width: 800px) { .nn800 { display: none !important; }
  .dd800 { display: block !important; } }
@media screen and (max-width: 600px) { .nn600 { display: none !important; }
  .dd600 { display: block !important; } }
@media screen and (max-width: 428px) { .nn428 { display: none !important; }
  .dd428 { display: block !important; } }
.feedin1-no { opacity: 0; transform: translateY(30px); transition: opacity 1s ease-in 0.1s, transform 1s ease-out 0.1s; }

.feedin1 { opacity: 1; transform: translateY(0); }

#header { position: fixed; z-index: 9990; width: 170px; height: 100%; top: 0; right: 0; padding: 2em 0; transition: background 0.5s; }
@media screen and (max-width: 800px) { #header { width: 140px; } }
@media screen and (max-width: 428px) { #header { padding: 1em .7em 1em 0; width: 100px; } }
#header h1 { display: block; width: 54%; margin: 0 auto; }
@media screen and (max-width: 428px) { #header h1 { width: 100%; } }
#header h1 .colorC { fill: #fff; }
#header.white { background: #fafafa; }
@media screen and (max-width: 428px) { #header.white { background: transparent; } }
#header.white h1 .colorC { fill: #000; }
@media screen and (max-width: 428px) { #header.white h1 .colorC { fill: #fff; } }
#header.white .pagenation li a { color: #B2B2B2; }
@media screen and (max-width: 428px) { #header.white .pagenation li a { color: #ddd; } }
#header .pagenation { position: fixed; right: 0; top: 50%; width: 170px; transform: translateY(-50%); z-index: 10; font-size: 80%; }
@media screen and (max-width: 800px) { #header .pagenation { width: 140px; font-size: 70%; } }
#header .pagenation li { display: block; padding-left: 23%; }
#header .pagenation li a { display: block; color: #fff; line-height: 2.8; }
@media screen and (max-width: 428px) { #header .pagenation li a { text-align: right; padding-right: 1em; } }
#header .pagenation li a.active { color: #005AAA; }
@media screen and (max-width: 428px) { #header .pagenation li a.active { color: #000; } }
#header .pagenation li a.active span { font-weight: 600; }
#header .pagenation li a span { display: block; font-size: 90%; padding-top: 2em; }
#header .pagenation li a small { display: block; font-size: 90%; }
#header .pagenation li a small.top { padding-top: 2em; }
#header #page-top { position: absolute; bottom: 2em; right: 0; left: 0; margin: 0 auto; z-index: 9991; width: 28px; height: 32px; border-top: 1px solid #000; }
@media screen and (max-width: 428px) { #header #page-top { border-top: 1px solid #fff; } }
#header #page-top::after { position: absolute; content: ""; width: 18px; height: 18px; border-top: 1px solid #000; border-left: 1px solid #000; transform: rotate(45deg); top: 0; bottom: 0; right: 0; left: 0; margin: auto; }
@media screen and (max-width: 428px) { #header #page-top::after { border-top: 1px solid #fff; border-left: 1px solid #fff; } }
#header nav .gMenu { display: block; }
@media screen and (max-width: 428px) { #header nav .gMenu { display: block; width: 100%; margin: 0 auto; z-index: 999; height: 0; max-height: 0; overflow: hidden; transition: max-height .4s; }
  #header nav .gMenu.active { height: auto; max-height: 101vw; } }
@media screen and (max-width: 428px) { #header nav .gMenu li { width: 100%; border-bottom: 1px solid #999; background: rgba(255, 255, 255, 0.7); } }
#header nav .gMenu li a { display: block; text-align: center; width: 100%; }
@media screen and (max-width: 428px) { #header nav .gMenu li a { width: 100%; font-size: 7vw; padding: 2.6vw 0; } }
#header nav .menu-trigger { display: none; }
@media screen and (max-width: 428px) { #header nav .menu-trigger { display: inline-block; transition: all .4s; box-sizing: border-box; position: fixed; z-index: 9999; width: 11vw; height: 10vw; top: 3vw; right: 4.5vw; }
  #header nav .menu-trigger span { display: inline-block; transition: all .4s; box-sizing: border-box; position: absolute; width: 100%; height: 0.5vw; background-color: #666; border-radius: 2px; }
  #header nav .menu-trigger span:nth-of-type(1) { top: 0; }
  #header nav .menu-trigger span:nth-of-type(2) { top: 4.7vw; }
  #header nav .menu-trigger span:nth-of-type(3) { bottom: 0; } }
@media screen and (max-width: 428px) { #header nav .menu-trigger.active span:nth-of-type(1) { transform: translateY(6vw) rotate(-45deg); }
  #header nav .menu-trigger.active span:nth-of-type(2) { opacity: 0; }
  #header nav .menu-trigger.active span:nth-of-type(3) { transform: translateY(-3.5vw) rotate(45deg); } }

main { overflow: hidden; position: relative; }
main section { overflow: hidden; position: relative; padding-right: 170px; background: #ccc; }
@media screen and (max-width: 800px) { main section { padding-right: 140px; } }
@media screen and (max-width: 428px) { main section { padding-right: 100px; } }
main section .inner { position: relative; top: 50%; transform: translateY(-50%); padding: 0 7.8%; }
main section .inner h2 { font-size: 165%; margin-bottom: 2.8vw; }
@media screen and (max-width: 428px) { main section .inner h2 { font-size: 5vw; margin-bottom: 5vw; } }
main section .inner p { font-size: 90%; letter-spacing: 3px; line-height: 2.1; margin-bottom: 2.8vw; }
@media screen and (max-width: 428px) { main section .inner p { font-size: 2.6vw; letter-spacing: .8vw; margin-bottom: 5vw; } }
main section .inner .copy { font-size: 200%; letter-spacing: 10px; line-height: 1.6; }
@media screen and (max-width: 428px) { main section .inner .copy { font-size: 7vw; letter-spacing: 1.5vw; white-space: nowrap; } }
main section .inner .btn { position: relative; display: inline-block; background: #fff; border: 2px solid #fff; color: #005AAA; font-size: 75%; text-align: center; padding: 21px 2px 21px 0px; width: 210px; margin-top: 1.2vw; }
@media screen and (max-width: 428px) { main section .inner .btn { margin-top: 2.4vw; } }
main section .inner .btn2 { position: relative; display: inline-block; background: #005AAA; border: 2px solid #005AAA; color: #fff; font-size: 75%; text-align: center; padding: 21px 2px 21px 0px; width: 210px; margin-top: 1.2vw; }
@media screen and (max-width: 428px) { main section .inner .btn2 { margin-top: 2.4vw; } }
main section .inner .btn3 { position: relative; display: inline-block; background: #005AAA; border: 2px solid #005AAA; color: #fff; font-size: 75%; text-align: center; padding: 21px 2px 21px 0px; width: 210px; margin: 1.2vw 1vw 2vw 0; }
@media screen and (max-width: 428px) { main section .inner .btn3 { margin-top: 2.4vw; } }
main section .inner .btn4 { position: relative; display: inline-block; border: 2px solid #005AAA; color: #005AAA; font-size: 75%; text-align: center; padding: 21px 2px 21px 0px; width: 210px; margin-top: 1.2vw; }
@media screen and (max-width: 428px) { main section .inner .btn4 { margin-top: 2.4vw; } }
main section .inner2 { position: relative; padding: 0 7.8%; }
main section .inner2 p { font-size: 90%; letter-spacing: 3px; line-height: 2.1; margin-bottom: 2.8vw; }
@media screen and (max-width: 428px) { main section .inner2 p { font-size: 3vw; letter-spacing: .8vw; margin-bottom: 5vw; } }

@media screen and (max-width: 428px) { .asideB { padding-right: 0; } }
@media screen and (max-width: 428px) { .asideB .inner { transform: translateY(-20%); } }

.cntactB { position: relative; background: url("../img/footer_contact_bg.jpg") no-repeat center 38%; background-size: cover; color: #fff; padding: 4em 7.8%; }
@media screen and (max-width: 428px) { .cntactB { padding-bottom: 2em; } }
.cntactB h3 { font-size: 280%; margin-bottom: .5em; }
.cntactB p { font-size: 90%; letter-spacing: 3px; line-height: 2.1; }
.cntactB ul { position: absolute; display: flex; left: 50%; bottom: 4em; }
@media screen and (max-width: 800px) { .cntactB ul { position: relative; margin-top: 2em; left: 0; bottom: 0; } }
@media screen and (max-width: 428px) { .cntactB ul { display: block; } }
.cntactB ul li { display: inline-block; font-size: 80%; }
@media screen and (max-width: 428px) { .cntactB ul li { margin-bottom: 2em; } }
.cntactB ul li a { position: relative; display: block; text-align: center; letter-spacing: .5px; width: 15em; padding: 1.5em 0; margin-right: 2em; }
.cntactB ul li.tel a { color: #005AAA; background: #fff; }
.cntactB ul li.mail a { color: #fff; background: #005AAA; }
.cntactB ul li.mail a::after { position: absolute; display: block; content: ""; width: 1em; height: 1em; background: url("../img/icn_mail2.svg") no-repeat center center; background-size: contain; margin: auto; top: 0; bottom: 0; right: 1em; }

#footer { position: relative; margin-top: 5vw; padding-bottom: 1vw; display: flex; justify-content: space-between; }
@media screen and (max-width: 800px) { #footer { margin-top: 8vw; } }
@media screen and (max-width: 428px) { #footer { margin-top: 12vw; display: block; } }
#footer .logo { width: 175px; height: auto; }
@media screen and (max-width: 600px) { #footer .logo { width: 120px; } }
#footer .info { letter-spacing: 0px; }
@media screen and (max-width: 428px) { #footer .info { display: inline-block; } }
@media screen and (max-width: 428px) { #footer .info { margin-top: 8vw; } }
#footer .info .other { position: relative; display: flex; justify-content: flex-end; font-size: 80%; margin-bottom: .3vw; }
#footer .info .other li { flex-shrink: 2; }
#footer .info .other li img { display: block; margin-left: 1vw; height: 12px; width: auto; }
#footer .info .other li:nth-child(1) { flex-grow: 2; }
#footer .info .cpr { font-size: 50%; color: #fff; }
