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

body { color: #000000; background: #fff; font-size: 1.6vw; letter-spacing: .1em; line-height: 1.6; font-weight: 300; font-family: 'Noto Sans JP', BlinkMacSystemFont, Roboto, "Segoe UI", "Helvetica Neue", HelveticaNeue, YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif; font-feature-settings: "palt"; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
@media screen and (max-width: 519px) { body { font-size: 2.6vw; } }

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

.fnt-Oswald { font-family: 'Oswald', 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: #fff; 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: 519px) { #loader { width: 210px; height: 175px; } }

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

#page-top { position: fixed; bottom: 20px; right: 20px; z-index: 9000; width: 40px; opacity: .8; }
#page-top img { width: 100%; height: auto; }

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

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

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

@media screen and (max-width: 519px) { .nn520 { 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, .fadeinS.active, .fadein1.active, .fadein1.active, .fadein2.active, .fadein2.active, .fadein3.active, .fadein3.active, .fadein4.active, .fadein4.active, .fadein5.active, .fadein5.active, .fadein6.active, .fadein6.active, .fadeinF.active, .fadeinF.active { opacity: 1; transform: translateY(0); }

#header { overflow: hidden; position: fixed; z-index: 900; display: flex; justify-content: space-between; width: 100%; padding: 1em 9% 0; }
@media screen and (max-width: 519px) { #header { padding: 1.8em 6% 0; } }
#header h1 { position: relative; width: 21vw; }
@media screen and (max-width: 519px) { #header h1 { width: 45vw; } }
#header h1 img { width: 100%; height: auto; }
#header nav .gMenu { position: relative; }
@media screen and (max-width: 519px) { #header nav .gMenu { position: fixed; display: block; top: 0; left: 0; width: 100%; margin: 0 auto; z-index: 999; opacity: 0; height: 0; max-height: 0; overflow: hidden; transition: max-height 0s, opacity .4s; }
  #header nav .gMenu.active { opacity: 1; height: 100%; max-height: 100%; background: rgba(255, 255, 255, 0.8); } }
#header nav .gMenu ul { position: relative; display: flex; width: 100%; }
@media screen and (max-width: 519px) { #header nav .gMenu ul { display: block; text-align: center; left: 50%; top: 50%; transform: translateX(-50%) translateY(-70%); } }
#header nav .gMenu ul li { position: relative; padding-left: 3em; }
@media screen and (max-width: 519px) { #header nav .gMenu ul li { flex: none; width: 100%; padding-left: 0; } }
#header nav .gMenu ul li a { display: block; font-size: 110%; font-weight: 700; letter-spacing: .2em; }
@media screen and (max-width: 519px) { #header nav .gMenu ul li a { width: 80%; font-size: 5vw; padding: 2.6vw 0; margin: 0 auto 2em; border: 1px solid rgba(0, 0, 0, 0.6); border-radius: .5em; } }
#header nav .gMenu ul li:nth-child(2)::before, #header nav .gMenu ul li:nth-child(3)::before { content: ""; position: absolute; left: 1em; top: 50%; transform: translateY(-50%); width: 1em; height: 1em; background: url("../img/icn_arrow.svg") no-repeat center center/contain; }
@media screen and (max-width: 519px) { #header nav .gMenu ul li:nth-child(2)::before, #header nav .gMenu ul li:nth-child(3)::before { display: none; } }
#header nav .menu-trigger { display: none; }
@media screen and (max-width: 519px) { #header nav .menu-trigger { display: inline-block; transition: all .4s; position: fixed; z-index: 9999; width: 40px; height: 16px; top: 2.2em; right: 4%; }
  #header nav .menu-trigger span { display: inline-block; transition: all .4s; box-sizing: border-box; position: absolute; width: 100%; height: 2px; background-color: #000000; border-radius: 2px; }
  #header nav .menu-trigger span:nth-of-type(1) { top: 0; }
  #header nav .menu-trigger span:nth-of-type(2) { bottom: 0; } }
@media screen and (max-width: 519px) { #header nav .menu-trigger.active span:nth-of-type(1) { transform: translateY(7px) rotate(-45deg); }
  #header nav .menu-trigger.active span:nth-of-type(2) { transform: translateY(-7px) rotate(45deg); } }

main { position: relative; }
main section { position: relative; }
main section h2 { position: relative; display: block; text-align: center; font-size: 160%; font-weight: 700; letter-spacing: .25em; padding-left: .25em; margin-bottom: 1.6em; }
main section#topMainSct { background: url("../img/top_main.jpg") no-repeat center 6.2vw/cover; width: 100%; height: calc(100vh - 6.2vw); }
@media screen and (max-width: 519px) { main section#topMainSct { background-position: center 5.6em; height: 80vh; } }
main section#topMainSct .logo { position: absolute; top: 7em; left: 9%; width: 28vw; }
@media screen and (max-width: 519px) { main section#topMainSct .logo { top: 12em; width: 48vw; } }
main section#topMainSct .logo img { width: 100%; height: auto; }
main section#topAboutSct { padding-top: 8em; margin-bottom: -19em; }
@media screen and (max-width: 519px) { main section#topAboutSct { margin-bottom: -13em; } }
main section#topAboutSct p { display: block; text-align: center; font-size: 120%; line-height: 2.6; letter-spacing: .3em; padding-left: .3em; margin-bottom: 5.5em; }
main section#topAboutSct .wheat1 { position: relative; display: block; width: 100%; height: auto; }
main section#topAboutSct .wheat2 { position: relative; top: -9.5em; display: block; width: 100%; height: auto; }
@media screen and (max-width: 519px) { main section#topAboutSct .wheat2 { top: -6.5em; } }
main section#topAboutSct .wheat3 { position: relative; top: -19em; display: block; width: 100%; height: auto; }
@media screen and (max-width: 519px) { main section#topAboutSct .wheat3 { top: -13em; } }
main section#topBusinessSct { padding: 6.5em 0 23em; background: url("../img/top_business_pic.jpg") no-repeat center bottom/contain; text-align: center; }
@media screen and (max-width: 519px) { main section#topBusinessSct { padding: 6.5em 0 15em; } }
main section#topBusinessSct ul { display: inline-block; border-top: 2px dashed #000000; }
main section#topBusinessSct ul li { position: relative; display: block; text-align: left; font-size: 120%; line-height: 1.5; letter-spacing: .3em; border-bottom: 2px dashed #000000; padding: .8em .5em .8em 1.6em; }
@media screen and (max-width: 519px) { main section#topBusinessSct ul li { padding: 1em .5em 1em 2em; } }
main section#topBusinessSct ul li::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 1em; height: 1em; background: url("../img/icn_arrow.svg") no-repeat center center/contain; }
main section#topMovieSct { padding: 6.5em 0 0; }
main section#topMovieSct video { display: block; margin: 0 auto 5em; width: 82%; }
main section#topCompanySct { padding: 1.5em 0 6em; text-align: center; }
main section#topCompanySct table { display: inline-block; border-top: 2px dashed #000000; margin-bottom: 5em; }
main section#topCompanySct table tr { border-bottom: 2px dashed #000000; }
main section#topCompanySct table tr th { position: relative; text-align: left; vertical-align: middle; font-size: 120%; font-weight: 300; line-height: 1.8; letter-spacing: .1em; padding: .8em 2.5em .8em 0; }
@media screen and (max-width: 519px) { main section#topCompanySct table tr th { padding: 1em 1.5em 1em 0; } }
main section#topCompanySct table tr th::before { content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 1em; height: 1em; background: url("../img/icn_arrow.svg") no-repeat center center/contain; }
main section#topCompanySct table tr td { text-align: left; font-size: 120%; line-height: 1.8; letter-spacing: .3em; padding: .8em .5em .8em 1.5em; }
@media screen and (max-width: 519px) { main section#topCompanySct table tr td { letter-spacing: .15em; padding: 1em .5em 1em 1.5em; } }
main section#topCompanySct table tr td a { display: inline-block; letter-spacing: .05em; font-size: 70%; border: 1px solid #000000; padding: .1em .8em .2em; }
main section#topCompanySct .logo { margin: 0 auto; width: 23vw; }
@media screen and (max-width: 519px) { main section#topCompanySct .logo { width: 36vw; } }
main section#topCompanySct .logo img { width: 100%; height: auto; }

#footer { position: relative; padding: 1.4em 0; background: #000000; color: #fff; }
#footer .cpr { text-align: center; font-size: 70%; letter-spacing: .25em; }
