@charset "UTF-8";
/* CSS Document */

html {
font-size: 62.5%;
}
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-size: 16px;
font-size: 1.6rem;
color: #000;
font-family: "Noto Serif JP", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
margin: 0;
background: #fff;
position: relative;
line-height: 220%;
letter-spacing: 2px;
}
img{
width:100%;
max-width: 100%;
height: auto;
vertical-align: bottom;
}
video, iframe {
width: 100%;
max-width: 100%;
vertical-align: bottom;
}
a, a:hover {
text-decoration: none;
color: #111;
}
i {
font-size: 0.8em;
}
p {
word-break: break-all;
}
ul {
list-style-type: none;
padding-left: 0;
margin-left: 0;
}
.en {
font-family: "Outfit", sans-serif;
font-optical-sizing: auto;
font-style: normal;
}
.bottom {
transform: translateY(80px);
opacity: 0;
transition: 1s;
}
.bottom.-visible {
transform: translateY(0);
opacity: 1;
}
.opacity {
opacity: 0;
transition: .6s;
}
.opacity.-visible {
opacity: 1;
}
.blur {
filter: blur(1.5rem);
opacity: 0;
transition: .6s;
}
.blur.-visible {
filter: blur(0);
opacity: 1;
}
.bg:after {
width: 0%;
clip-path: polygon(0% 0, 100% 0%, 100% 100%, 0% 100%);
transition: .6s;
}
.bg.-visible:after {
width: 100%;
clip-path: polygon(5% 0, 100% 0%, 95% 100%, 0% 100%);
}
.m-l20, .m-l40 {
margin-left: 0;
transition: .6s;
}
.m-l20.-visible {
margin-left: 20%;
}
.m-l40.-visible {
margin-left: 40%;
}

.w1280 {
max-width: 1280px;
width: 90%;
}
.w1024 {
max-width: 1024px;
width: 90%;
}
.w768 {
max-width: 768px;
width: 90%;
}
.w640 {
max-width: 640px;
width: 90%;
}
.m-auto {
margin: 0 auto;
}

#header{
background: #fff;
color: #000;
width: 100%;
position: fixed;
top: 0;
z-index: 99;
transition: transform 0.3s 0.3s;
box-shadow: 0px 10px 10px -6px rgba(0, 0, 0, 0.3);
}
#header.hidden {
transform: translateY(-100%);
}
#header > div {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
}
#header h1 {
width: 45vw;
line-height: 80%;
}
#header h1 img {
padding: 2px 0;
}
#g-nav-list li a {
font-size: 4vw;
}

#hero {
background: #000;
position: relative;
width: 100%;
}
#hero > video {
opacity: 0.9;
position: relative;
z-index: 1;
width: 100%;
}
#hero h2 {
position: absolute;
left: 5vw;
bottom: 50px;
color: #fff;
z-index: 2;
max-width: 500px;
width: 60%;
}
#hero h2 span {
display: block;
font-weight: 500;
font-size: 3.2vw;
}
#scroll-down {
display: block;
position: absolute;
right: 10%;
bottom: 20px;
padding-top: 79px;
z-index: 2;
}
#scroll-down::before {
animation: elasticus 1.2s cubic-bezier(1, 0, 0, 1) infinite;
position: absolute;
top: 0px;
left: 50%;
width: 2px;
height: 90px;
background: #FFF;
content: ' ';
}
@keyframes elasticus {
0% {
transform-origin: 0% 0%;
transform: scale(1, 0);
}
50% {
transform-origin: 0% 0%;
transform: scale(1, 1);
}
50.1% {
transform-origin: 0% 100%;
transform: scale(1, 1);
}
100% {
transform-origin: 0% 100%;
transform: scale(1, 0);
}
}
#scroll-title {
display: block;
color: #fff;
position: absolute;
z-index: 2;
right: 0;
bottom: 50px;
transform: translateX(10%) rotateZ(90deg);
line-height: 100%;
}

#main > section {
padding: 60px 0;
overflow: hidden;
position: relative;
}
#main > section > div {
position: relative;
z-index: 2;
}

#future {
display: flex;
justify-content: space-between;
flex-direction: row-reverse;
}
#future h3 {
width: 15%;
font-weight: 700;
writing-mode: vertical-rl;
font-size: 6vw;
font-family: "Noto Serif JP", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
letter-spacing: 2px;
}
#future div {
width: 85%;
}
#future div p {
font-weight: 600;
line-height: 250%;
font-size: 3.6vw;
}

#works {
background: #ededed;
}
#works h3, #works h4 {
text-align: center;
}
#works h3 {
font-size: 5.5vw;
padding-bottom: 50px;
}
#works h4 {
font-size: 4.2vw;
}
#works ul {
max-width: 768px;
margin: 0 auto;
padding-bottom: 60px;
}
#works ul li {
width: 60%;
position: relative;
box-sizing: border-box;
margin-bottom: 30px;
padding: 20px 0 8px 120px;
}
#works ul li:after {
position: absolute;
top: 0;
left: 0;
z-index: -1;
content: "";
display: block;
height: 100%;
background: #ddd;
}
#works ul li:nth-child(3) {
margin-bottom: 0;
}
#works ul li h5, #works ul li span {
position: relative;
z-index: 2;
line-height: 1em;
}

#sorghum h3 {
font-size: 5vw;
padding-bottom: 50px;
}
#sorghum p {
font-weight: 600;
line-height: 220%;
}
#sorghum ul {
padding: 0 0 40px;
}
#sorghum h4 {
position: relative;
display: inline-block;
margin: 1.5em 0 0 0;
padding: 7px 10px;
min-width: 100%;
max-width: 100%;
background: #ededed;
text-align: center;
}
#sorghum h4:before {
content: "";
position: absolute;
top: 100%;
left: 50%;
margin-left: -15px;
border: 15px solid transparent;
border-top: 15px solid #ededed;
}
#sorghum h4 span {
font-size: 3.8vw;
color: #000;
}
#sorghum ul {
padding-bottom: 50px;
}
#sorghum li {
margin-bottom: 20px;
}
#sorghum li:last-child {
margin-bottom: 0;
}
#sorghum li p {
padding: 1.5em 20px 20px;
border: 1px solid #ededed;
border-top: none;
font-size: 3.5vw;
}
#openup h5 {
font-size: 4.5vw;
padding-bottom: 16px;
}

#company {
background: #ededed;
}
#company h3 {
font-size: 7vw;
padding-bottom: 30px;
}
#company table {
width: 100%;
max-width: 640px;
background: #fff;
border-collapse:collapse;
margin: 0 auto 50px;
}
#company h4 {
font-size: 6vw;
padding-bottom: 30px;
}
#company ul {
list-style-type: square;
margin-left: 20px;
padding-bottom: 40px;
}
#company ul:last-child, #company ul li:last-child {
padding-bottom: 0;
}
#company ul li {
padding-bottom: 16px;
}
#company ul li a span {
display: block;
font-size: 3vw;
transform: translateX(-10px);
}

#footer {
background: #000;
padding: 16px 0;
}
#footer h6 {
margin: 0 auto;
width: 50%;
max-width: 200px;
filter: invert(100%);
padding-bottom: 20px;
}
#footer small {
display: block;
text-align: center;
color: #fff;
font-size: 12px;
padding-bottom: 10px;
}

@media (max-width: 560px){
.m-l20.-visible {
margin-left: 10%;
}
.m-l40.-visible {
margin-left: 20%;
}

#hero {
margin-top: 50px;
}
#hero h2 {
bottom: 10px;
}
#future br.nobr {
display: none;
}

#works ul {
padding-bottom: 40px;
}
#works ul li {
width: 80%;
}
#works ul li:nth-child(1) {
background: url(../images/works1.webp) no-repeat center left 10px;
background-size: auto 70%;
padding: 20px 0 8px 18vw;
}
#works ul li:nth-child(2) {
background: url(../images/works2.webp) no-repeat center left 10px;
background-size: auto 70%;
padding: 20px 0 8px 16vw;
}
#works ul li:nth-child(3) {
background: url(../images/works3.webp) no-repeat center left 20px;
background-size: auto 70%;
padding: 20px 0 8px 22vw;
}
#works ul li h5 {
font-size: 3.8vw;
}
#works ul li span {
font-size: 3.2vw;
}

#company table th, #company table td {
display: block;
width: 100%;
text-align: left;
box-sizing: border-box;
padding: 10px;
}
#company table th {
background: #666;
color: #fff;
font-size: 4.2vw;
}
#company table td {
padding-bottom: 30px;
font-size: 3.8vw;
}

#sorghum li p {
padding: 1.5em 14px 14px;
}
}

@media (min-width: 561px){
.nobr2 {
display: none;
}
#scroll-down {
right: 45px;
}

#header h1 {
width: 200px;
line-height: 100%;
}
#header h1 img {
padding: 4px 0;
}
#g-nav-list li a {
font-size: 2rem;
}
#hero h2 span {
font-size: 1.8rem;
}

#main > section {
padding: 100px 0;
}

#future h3 {
font-size: 3.3rem;
}
#future div p {
font-size: 2rem;
line-height: 250%;
}

#works h3 {
font-size: 2.4rem;
padding-bottom: 80px;
}
#works h4 {
font-size: 2rem;
}
#works ul li {
padding: 20px 0 8px 90px;
}
#works ul li:nth-child(1) {
background: url(../images/works1.webp) no-repeat center left 10px;
background-size: auto 80%;
}
#works ul li:nth-child(2) {
background: url(../images/works2.webp) no-repeat center left 20px;
background-size: auto 80%;
}
#works ul li:nth-child(3) {
background: url(../images/works3.webp) no-repeat center left 20px;
background-size: auto 80%;
padding: 20px 0 8px 110px;
}
#works ul li h5 {
font-size: 1.7rem;
}
#works ul li span {
font-size: 1.2rem;
}

#sorghum h3 {
font-size: 2.8rem;
}
#sorghum h4 span {
font-size: 2.4rem;
}
#sorghum div > p{
font-size: 1.8rem;
}
#sorghum li p {
font-size: 1.7rem;
}
#openup h5 {
font-size: 2rem;
}

#company h3 {
font-size: 3.2rem;
}
#company h4 {
font-size: 2.8rem;
}
#company ul li a span {
font-size: 1.4rem;
}
#company table th, #company table td {
border: 1px solid #666;
padding: 12px;
margin: 0;
}
#company table th {
font-size: 2rem;
}
#company table td {
font-size: 1.8rem;
}
}

@media (max-width: 768px){
.openbtn{
position:fixed;
z-index: 9999;
top:10px;
right: 10px;
cursor: pointer;
width: 50px;
height:50px;
}
.openbtn span{
display: inline-block;
transition: all .4s;
position: absolute;
left: 14px;
height: 3px;
border-radius: 2px;
background-color: #000;
width: 45%;
}
.openbtn span:nth-of-type(1) {
top:15px;	
}
.openbtn span:nth-of-type(2) {
top:23px;
}
.openbtn span:nth-of-type(3) {
top:31px;
}
.openbtn.active span{
background-color: #FFF;
}
.openbtn.active span:nth-of-type(1) {
top: 18px;
left: 18px;
transform: translateY(6px) rotate(-45deg);
width: 30%;
}
.openbtn.active span:nth-of-type(2) {
opacity: 0;
}
.openbtn.active span:nth-of-type(3){
top: 30px;
left: 18px;
transform: translateY(-6px) rotate(45deg);
width: 30%;
}

#g-nav{
position:fixed;
z-index: 999;
top:0;
right: -100%;
width:30%;
height: 100vh;
background: #000000CC;
transition: all 0.6s;
}
#g-nav,#g-nav.panelactive #g-nav-list{
width:100%;
}
#g-nav.panelactive{
right: 0;
}
#g-nav.panelactive #g-nav-list{
position: fixed;
z-index: 999; 
height: 100vh;
overflow: auto;
-webkit-overflow-scrolling: touch;
display: grid;
place-items: center;
}
#g-nav-list li {
padding: 12px 0;
}
#g-nav-list li a {
display: block;
color: #fff;
font-weight: 700;
text-align: center;
}
}

@media (min-width: 769px){
.openbtn {
display: none;
}
#g-nav-list ul {
display: flex;
justify-content: flex-end;
}
#g-nav-list li {
padding: 0 12px;
border-left: 1px solid #000;
}
#g-nav-list li:first-child {
padding-left: 0;
border-left: none;
}
#g-nav-list li:last-child {
padding-right: 0;
}
#g-nav-list li a {
font-size: 1.6rem;
font-weight: 700;
}
#works h3 {
font-size: 2.6rem;
}
#works ul li {
padding: 20px 0 8px 120px;
}
#works ul li:nth-child(1) {
background: url(../images/works1.webp) no-repeat center left 20px;
background-size: auto 80%;
}
#works ul li:nth-child(2) {
background: url(../images/works2.webp) no-repeat center left 30px;
background-size: auto 80%;
}
#works ul li:nth-child(3) {
padding: 20px 0 8px 130px;
}
#works ul li h5 {
font-size: 1.8rem;
}
#works ul li span {
font-size: 1.3rem;
}
#openup h5 {
font-size: 2.4rem;
}
}

@media (max-width: 960px){
#works h3, #works h4 {
line-height: 200%;
}
}

@media (min-width: 961px){
br.nobr {
display: none;
}
#g-nav-list li {
padding: 0 20px;
}

#hero h2 span, #future div p {
font-size: 2.2rem;
}
#works h3 {
font-size: 3rem;
}
#works ul li h5 {
font-size: 2rem;
}
#works ul li span {
font-size: 1.4rem;
}
#openup h5 {
font-size: 2.6rem;
}
}