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

body { color: #000000; background: #ffffff; font-size: 1.6vw; letter-spacing: .08em; line-height: 1.6; font-family: "Zen Kaku Gothic New", sans-serif; font-weight: 400; font-style: normal; font-feature-settings: "palt"; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
@media screen and (max-width: 599px) { body { font-size: 3.2vw; } }

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

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: #000000; text-decoration: none; transition: opacity 0.5s; }
a:hover, a:active { opacity: .6; }

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

#loader { opacity: 0; position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; width: 300px; height: 250px; }
#loader img { width: 100%; height: auto; }
@media screen and (max-width: 599px) { #loader { width: 210px; height: 175px; } }

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

#page-top { opacity: 0; position: fixed; bottom: 20px; right: 20px; z-index: 9000; width: 40px; pointer-events: none; }
#page-top img { width: 100%; height: auto; }
#page-top.fade { opacity: 1; transition: opacity .5s; pointer-events: auto; }

.dd599 { display: none; }
@media screen and (max-width: 599px) { .dd599 { display: block !important; } }

@media screen and (max-width: 599px) { .nn599 { display: none !important; } }

.fadeinS, .fadein1, .fadein2, .fadein3, .fadein4, .fadein5, .fadein6, .fadeinF { opacity: 0; transform: translateY(30px); transition: opacity 1s ease-in, transform 1s ease-out; }
.fadeinS.active, .fadein1.active, .fadein2.active, .fadein3.active, .fadein4.active, .fadein5.active, .fadein6.active, .fadeinF.active { opacity: 1; transform: translateY(0); }

.poBtn { position: relative; display: inline-block; line-height: 1; padding: 1em 3em; border: 1px solid #000000; border-radius: 2em; }

.poBox { padding: 2em; border: 1px solid #000000; }

#header { overflow: hidden; position: fixed; z-index: 900; display: flex; justify-content: space-between; width: 100%; padding: 1.3em 5% 0; }
#header h1 { position: relative; width: 5em; }
#header h1 img { display: block; width: 100%; height: auto; filter: drop-shadow(1px 1px 1px #000000); }
#header nav .gMenu { position: relative; }
#header nav .gMenu ul { position: relative; display: flex; width: 100%; }
#header nav .gMenu ul li { padding-left: 1.8em; }
@media screen and (max-width: 599px) { #header nav .gMenu ul li { padding-left: 1em; } }
#header nav .gMenu ul li a { display: block; color: #ffffff; font-weight: 500; text-shadow: 1px 1px 1px #000000; }

main { position: relative; }
main section { position: relative; }
main section#topMainSct .bgImg { width: 100%; height: auto; }
main section#topMainSct .txtB { position: absolute; left: 0; top: 50%; transform: translateY(-38%); width: 100%; padding: 0 6%; text-align: right; color: #ffffff; text-shadow: 1px 1px 3px #000000; }
@media screen and (max-width: 599px) { main section#topMainSct .txtB { top: inherit; transform: none; bottom: 6em; } }
main section#topMainSct .txtB .head { position: relative; transform: scaleX(108%); transform-origin: right center; display: block; font-size: 415%; letter-spacing: .03em; line-height: 1.15; margin-bottom: .1em; }
@media screen and (max-width: 599px) { main section#topMainSct .txtB .head { font-size: 300%; letter-spacing: 0; line-height: 1.2; margin-bottom: .4em; } }
main section#topMainSct .txtB .sub { position: relative; transform: scaleX(105%); transform-origin: right center; display: block; font-size: 130%; letter-spacing: 0; }
@media screen and (max-width: 599px) { main section#topMainSct .txtB .sub { font-size: 150%; margin-bottom: .1em; } }
main section#topMainSct .txtB .jp { position: relative; margin-right: -.5em; font-size: 110%; letter-spacing: -.05em; }
@media screen and (max-width: 599px) { main section#topMainSct .txtB .jp { font-size: 130%; } }
main section#topMainSct .txtB .jp span { font-size: 120%; }
main section#topCopySct { padding: 17.5em 10% 5em; }
@media screen and (max-width: 599px) { main section#topCopySct { padding: 3em 5% 29em 14%; } }
main section#topCopySct .pic1 { position: absolute; top: 4em; left: 14%; width: 16em; height: auto; }
@media screen and (max-width: 599px) { main section#topCopySct .pic1 { top: 22em; left: 8%; width: 12em; } }
main section#topCopySct .pic2 { position: absolute; top: 17em; right: 8%; width: 23em; height: auto; }
@media screen and (max-width: 599px) { main section#topCopySct .pic2 { top: 32em; right: 6%; width: 20em; } }
main section#topCopySct .txtB p { font-size: 80%; }
@media screen and (max-width: 599px) { main section#topCopySct .txtB p { font-size: 90%; } }
main section#topAboutSct { display: flex; align-items: center; }
@media screen and (max-width: 599px) { main section#topAboutSct { padding: 4em 0 0; flex-wrap: wrap; } }
main section#topAboutSct .picB { width: 50%; }
@media screen and (max-width: 599px) { main section#topAboutSct .picB { order: 2; display: block; width: 80%; margin: 0 auto; } }
main section#topAboutSct .picB img { width: 100%; height: auto; }
main section#topAboutSct .txtB { width: 50%; padding-left: 7%; }
@media screen and (max-width: 599px) { main section#topAboutSct .txtB { order: 1; width: 100%; padding: 0 6% 1.5em; } }
main section#topAboutSct .txtB h3 { position: relative; transform: scaleX(108%); transform-origin: left center; display: block; font-size: 380%; letter-spacing: .02em; line-height: 1.15; margin-bottom: .4em; }
@media screen and (max-width: 599px) { main section#topAboutSct .txtB h3 { font-size: 350%; margin-bottom: .2em; } }
main section#topAboutSct .txtB p { font-size: 80%; }
@media screen and (max-width: 599px) { main section#topAboutSct .txtB p { font-size: 90%; } }
main section#topNewsSct { display: flex; padding: 5em 8% 1em; }
main section#topNewsSct .txtB { width: 70%; }
@media screen and (max-width: 599px) { main section#topNewsSct .txtB { width: 100%; } }
main section#topNewsSct .txtB h3 { position: relative; transform: scaleX(108%); transform-origin: left center; display: block; font-size: 380%; letter-spacing: .02em; line-height: 1.15; margin-bottom: .3em; }
@media screen and (max-width: 599px) { main section#topNewsSct .txtB h3 { font-size: 350%; } }
main section#topNewsSct .txtB ul li { position: relative; display: flex; align-items: baseline; margin-bottom: .3em; }
@media screen and (max-width: 599px) { main section#topNewsSct .txtB ul li { display: block; margin-bottom: .8em; } }
main section#topNewsSct .txtB ul li .data { font-size: 80%; letter-spacing: 0; line-height: 1.2; padding-right: 1.5em; }
@media screen and (max-width: 599px) { main section#topNewsSct .txtB ul li .data { font-size: 100%; line-height: 1.4; } }
main section#topNewsSct .txtB ul li .data span { font-size: 180%; }
main section#topNewsSct .txtB ul li .ttl { font-size: 80%; letter-spacing: 0; line-height: 1.2; }
@media screen and (max-width: 599px) { main section#topNewsSct .txtB ul li .ttl { font-size: 100%; line-height: 1.4; } }
main section#topNewsSct .picB { width: 30%; }
@media screen and (max-width: 599px) { main section#topNewsSct .picB { display: none; } }
main section#topNewsSct .picB img { width: 100%; height: auto; }
main section#topServiceSct { padding-top: 4em; }
main section#topServiceSct .inBox { position: relative; }
main section#topServiceSct .inBox .bgImg { width: 100%; height: auto; }
main section#topServiceSct .inBox .txtB { position: absolute; top: 50%; transform: translateY(-50%); padding: 0 10%; }
@media screen and (max-width: 599px) { main section#topServiceSct .inBox .txtB { top: 9em; transform: none; } }
main section#topServiceSct .inBox .txtB h3 { color: #ffffff; font-size: 150%; font-weight: 500; text-shadow: 1px 1px 1px #000000; margin-bottom: .1em; }
@media screen and (max-width: 599px) { main section#topServiceSct .inBox .txtB h3 { font-size: 160%; margin-bottom: 1em; } }
main section#topServiceSct .inBox .txtB p { color: #ffffff; font-size: 80%; font-weight: 500; text-shadow: 1px 1px 1px #000000; }
@media screen and (max-width: 599px) { main section#topServiceSct .inBox .txtB p { font-size: 90%; } }
main section#topServiceSct .sv1B .txtB { transform: translateY(-26%); }
@media screen and (max-width: 599px) { main section#topServiceSct .sv1B .txtB { transform: none; top: 12em; } }
main section#topServiceSct .sv2B .txtB { padding: 0 0 0 44%; }
@media screen and (max-width: 599px) { main section#topServiceSct .sv2B .txtB { padding: 0 10%; } }
main section#topServiceSct .sv3B .txtB { transform: translateY(-40%); }
@media screen and (max-width: 599px) { main section#topServiceSct .sv3B .txtB { transform: none; } }
main section#topServiceSct .sv3B .txtB .picklB { margin-top: .5em; padding: 3em 0 3em 6.5em; background: url("../img/btn_en.svg") no-repeat left center/contain; display: flex; }
@media screen and (max-width: 599px) { main section#topServiceSct .sv3B .txtB .picklB { margin-top: 8em; padding: 3em 0; display: block; background-size: 8.5em auto; background-position: left top; } }
main section#topServiceSct .sv3B .txtB .picklB p { font-size: 140%; font-weight: 400; margin-right: 1em; }
@media screen and (max-width: 599px) { main section#topServiceSct .sv3B .txtB .picklB p { padding-left: 4.7em; } }
main section#topServiceSct .sv3B .txtB .picklB p a { color: #ffffff; }
main section#topServiceSct .sv3B .txtB .picklB .link { display: flex; }
@media screen and (max-width: 599px) { main section#topServiceSct .sv3B .txtB .picklB .link { margin: 4em 0 0 1em; } }
main section#topServiceSct .sv3B .txtB .picklB .link li { padding-right: 1.2em; }
@media screen and (max-width: 599px) { main section#topServiceSct .sv3B .txtB .picklB .link li { padding-right: 1.8em; } }
main section#topServiceSct .sv3B .txtB .picklB .link li a { display: block; width: 2.4em; }
@media screen and (max-width: 599px) { main section#topServiceSct .sv3B .txtB .picklB .link li a { width: 2.8em; } }
main section#topServiceSct .sv3B .txtB .picklB .link li a img { width: 100%; height: auto; }

#footer { position: relative; padding: 3em 7%; display: flex; }
@media screen and (max-width: 599px) { #footer { display: block; } }
#footer #contactSct { width: 50%; }
@media screen and (max-width: 599px) { #footer #contactSct { width: 100%; } }
#footer #contactSct h4 { position: relative; display: inline-block; font-size: 140%; letter-spacing: .02em; transform: scaleX(108%); transform-origin: left center; padding-right: 1.6em; border-bottom: 1px solid #999; margin-bottom: 1.4em; }
@media screen and (max-width: 599px) { #footer #contactSct h4 { display: block; font-size: 220%; width: 50%; padding: 0 1.5em 0 .3em; margin: 0 auto 1em; } }
#footer #contactSct h4::after { content: ""; position: absolute; right: 0; bottom: -.05em; transform: rotate(-25deg); width: 1px; height: .3em; background: #999; }
#footer #contactSct ul { display: flex; }
@media screen and (max-width: 599px) { #footer #contactSct ul { display: block; margin-bottom: 2em; } }
@media screen and (max-width: 599px) { #footer #contactSct ul li { margin-bottom: .8em; } }
#footer #contactSct ul li:first-child { padding-right: 2em; }
@media screen and (max-width: 599px) { #footer #contactSct ul li:first-child { padding-right: 0; } }
#footer #contactSct ul li a { display: flex; align-items: center; }
@media screen and (max-width: 599px) { #footer #contactSct ul li a { width: 100%; justify-content: center; text-align: left; } }
#footer #contactSct ul li a img { width: 2em; height: auto; margin-right: .6em; }
@media screen and (max-width: 599px) { #footer #contactSct ul li a img { width: 2.6em; margin-right: .8em; } }
#footer #contactSct ul li a p { font-size: 75%; line-height: 1.4; letter-spacing: normal; }
@media screen and (max-width: 599px) { #footer #contactSct ul li a p { font-size: 135%; } }
#footer #contactSct ul li a p small { display: block; font-size: 65%; }
@media screen and (max-width: 599px) { #footer #contactSct ul li a p small { font-size: 50%; } }
#footer .infoSct { width: 50%; padding: .5em 0 .5em 6%; border-left: 1px solid #999; }
@media screen and (max-width: 599px) { #footer .infoSct { width: 80%; margin: 0 auto; padding: 2.5em 0 1em; border-left: none; border-top: 1px solid #999; text-align: center; } }
#footer .infoSct .logo { width: 5.5em; margin-bottom: .4em; }
@media screen and (max-width: 599px) { #footer .infoSct .logo { width: 7em; margin: 0 auto .5em; } }
#footer .infoSct .logo img { width: 100%; height: auto; }
#footer .infoSct .name { display: block; line-height: 1.5; }
#footer .infoSct .add { display: block; line-height: 1.5; font-size: 80%; letter-spacing: normal; margin-bottom: .1em; }
#footer .infoSct .mail { font-size: 80%; line-height: 1.5; margin-bottom: .1em; }
@media screen and (max-width: 599px) { #footer .infoSct .mail { font-size: 100%; margin-bottom: 2em; } }
#footer .infoSct .cpr { display: block; line-height: 1.6; font-size: 70%; letter-spacing: normal; }
