@charset "UTF-8";
/*
Theme Name: 株式会社Gekko
Description: 株式会社Gekko WEBSITE
Author: KOKORO企画
Version: 1.0.0
*/

/* common
---------------------------------------- */
html {
    font-size: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 100px;
}
body {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.9;
    letter-spacing: 0.08em;
    color: #333;
    opacity: 0;
    animation: fadeInPage 0.5s ease forwards;
    animation-delay: 0.5s;
}
@keyframes fadeInPage {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* fadeup */
.fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition: all 1s ease-out;
}
.fade-up.show {
  opacity: 1;
  transform: translateY(0);
}

img {
    max-width: 100%;
}
a {
    text-decoration: none;
    transition: .3s;
}
ul {
    padding-left: 0;
}
li {
    list-style: none;
}
p {
    text-align: justify;
    word-break: break-all;
}

/* btn */
.btn {
    /* max-width: 260px; */
    margin: auto;
}
.btn a {
    position: relative;
    display: block;
    width: max-content;
    padding: 12px 35px;
    border-radius: 50px;
    text-decoration: none;
    text-align: center;
    color: #FFF;
    background-color: #5271F9;
}
.btn a:hover {
    opacity: 0.8;
}
.link-btn {
    margin-left: 5px;
}
.arrow-btn {
    display: inline-block;
    margin-left: 50px;
}
.arrow-btn img {
    width: 11px;
}

/* 見出しttl */
h3 {
    margin-bottom: 30px;
    font-weight: 100;
    font-size: 2.375rem;
    line-height: 0.7;
}
h3 span {
    font-weight: 600;
    font-size: 0.875rem;
}

/* header
---------------------------------------- */
.header_nav {
    position:fixed;
    width: 100%;
    height: 80px;
    z-index: 1;
    background-color: rgba(255,255,255,1);
}
h1 {
    height: 80px;
}
h1 img {
    position:fixed;
    margin-left: 4%;
    margin-top: 20px;
    max-width: 150px;
    object-fit: cover;
}

.nav_pc {
    display: none;
}
.nav_sp {
    display: none;
}

/* nav_SP */
.nav_sp {
    display: none;
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    text-align: left;
    background-color: rgba(255,255,255,1);
    z-index: 10;
}
.header_nav_sp ul {
    padding-top: 30px;
    padding-left: 4%;
}
.nav_sp ul li {
    margin-bottom: 20px;
    text-align: left;
}
.nav_sp ul li a {
    font-size: 1rem;
    color: #0F0E0D;
    transition: .3s;
}
.nav_sp ul li.nav_btn a {
    display: inline-block;
    width: 200px;
    margin: auto;
    color: #FFF;
}
.nav_sp ul li.career_btn a {
    background-color: #001367;
}

/* Toggle */
.Toggle {
	position:fixed;
	cursor: pointer;
	top: 10px;
	right: 4%;
    width: 60px;
    height: 60px;
    z-index: 100;
}
.Toggle span {
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 17px;
    height: 2px;
    background: #4266F2;
    width: 45%;
}
.Toggle span:nth-of-type(1) {
    top: 20px; 
}
.Toggle span:nth-of-type(2) {
    top: 30px;
}
.Toggle span:nth-of-type(3) {
    top: 40px;
}
.Toggle.active span:nth-of-type(1) {
    top: 23px;
    left: 22px;
    transform: translateY(6px) rotate(-45deg);
    width: 30%;
    background-color: #4266F2;
}
.Toggle.active span:nth-of-type(2) {
    opacity: 0;
}
.Toggle.active span:nth-of-type(3){
    top: 35px;
    left: 22px;
    transform: translateY(-6px) rotate(45deg);
    width: 30%;
    background-color: #4266F2;
}

/* mv */
.mv {
    width: 100%;
    position: relative;
    margin: auto;
    padding: 0 4%;
    height: 200px;
}
.mv h2 {
    position: absolute;
    top: 65%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    /* max-width: 370px; */
    text-align: center;
    font-optical-sizing: auto;
    font-weight: 900;
    font-style: normal;
    font-size: 1.6875rem;
}
h2.effect span {
    display: inline-block;
    position: relative;
    background: linear-gradient(45deg, #5271f9 0%, #29397d 100%);
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-fill-color: transparent;
    opacity: 0;
    transform: translateX(-20px);
    animation-name: slideUp;
    animation-duration: 1s;
    animation-timing-function: cubic-bezier(.22,.9,.27,1);
    animation-fill-mode: forwards;
    animation-delay: 1.5s;
}
@keyframes slideUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .slide-up { animation: none; opacity: 1; transform: none; }
}

/* contents
---------------------------------------- */
/* about us */
#about {
    margin: 0 4%;
    padding: 90px 4%;
    background-image: url(./image/about-bg.png);
    color: #FFF;
    border-radius: 20px;
}
#about .about-content {
    margin-bottom: 80px;
}
#about .message-content h3 {
    margin-left: auto;
    margin-right: 0;
    width: fit-content;
}

/* Business */
#business {
    position: relative;
    padding-top: 90px;
    padding-bottom: 90px;
    background-color:rgba(88,95,147,0.1);
}
#business:before {
    content: "";
    position: absolute;
    left: 0;
    top: -280px;
    z-index: -1;
    width: 100%;
    height: 280px;
    background-color: rgba(88, 95, 147, 0.1);
}
#business h3 {
    margin-left: auto;
    margin-right: 8%;
    margin-bottom: -35px;
    width: fit-content;
}
.business-wrapper {
    margin-right: 8%;
    margin-bottom: 30px;
    padding: 70px 6% 70px 8%;
    background-color: #FFF;
    border-radius: 0 20px 20px 0;
}
.business-logo {
    margin-bottom: 30px;
    text-align: center;
}
#business h4 {
    margin-bottom: 30px;
    font-size: 1rem;
    color: #5271F9;
    font-weight: 800;
}
.business-logo-wrapper {
    margin-bottom: 60px;
}
.anemone-feature-wrapper h5 {
    margin-bottom: 30px;
    font-size: 1rem;
    color: #5271F9;
    font-weight: 800;
}
.anemone-feature-wrapper div {
    margin-bottom: 25px;
    padding: 30px 4%;
    background-color: #F7F8FF;
    border-radius: 10px;
}
.anemone-feature-wrapper div:last-child {
    margin-bottom: 45px;
}
.business-container-anemone {
    margin-bottom: 45px;
    padding-bottom: 45px;
    border-bottom: 1px solid #D7D7D7;
}
.business-btn a {
    margin: auto;
}

/* Company */
#company {
    position: relative;
    padding-top: 90px;
    padding-bottom: 100px;
    background-color: #F8FBFF;
}
#company:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: -280px;
    z-index: -1;
    width: 100%;
    height: 280px;
    background-color: #F8FBFF;
}
.company-list {
    margin-left: 8%;
    padding: 70px 8% 70px 6%;
    background-color: #FFF;
    border-radius: 20px 0 0 20px;
}
.company-list-pc {
    display: none;
}
#company h3 {
    margin-left: 14%;
    margin-bottom: -35px;
}

/* Career */
#career {
    margin: 0 4%;
    padding: 90px 4%;
    background-image: linear-gradient(#585f93, #12141f);
    color: #FFF;
    border-radius: 20px;
}
#career img {
    border-radius: 10px;
}
#career .btn {
   margin: 40px auto;
}

/* News */
#news {
    position: relative;
    background-color:rgba(88,95,147,0.1);
}
#news:before {
    content: "";
    position: absolute;
    left: 0;
    top: -280px;
    z-index: -1;
    width: 100%;
    height: 280px;
    background-color: rgba(88, 95, 147, 0.1);
}
#news h3 {
    width: 30%;
    margin-right: 4%;
    margin-left: auto;
    margin-bottom: -35px;
    padding-top: 90px;
}
.news-wrapper {
    margin-right: 8%;
    padding: 70px 6% 30px 8%;
    background-color: #FFF;
    border-radius: 0 20px 0 0;
}
/* アコーディオンメニュー全体のサイズ・位置 */
.news-list {
    width: 100%;
    margin: 0 auto;
    margin-bottom: 90px;
    padding: 0 4%;
}
/* クリック領域 */
.news-list-ttl-content {
    position: relative;
    margin-bottom: 10px;
    padding-left: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #E8E8E8;
    cursor: pointer;
}
.news-list-ttl-content:before {
    position: absolute;
    content: "";
    bottom: -1px;
    left: 0;
    width: 17%;
    border-bottom: 1.5px solid #4266F2;
}
.access-container dl div:first-child:before {
    border-bottom: none;
}
.news-list-ttl .news-list-date {
    display: inline-block;
    width: 5%;
    margin-right: 10px;
}
.news-list-ttl {
    display: inline-block;
    width: 80%;
}
.news-list-ttl-child {
    width: 100%;
    display: block;
    display: flex;
    padding: 20px;
    align-items: center;
}
.news-list-ttl-child .a-ttl {
    padding: 10px 20px;
}
.news-list-arrow {
    display: inline-block;
    margin-left: 10%;
}
/* クリックしたら表示される領域 */
.news-list-ttl-child {
    display: none;
    margin-bottom: 10px;
    background-color: #E8EAED;
}
.news-list-ttl-content {
	position: relative;
    border-bottom: 1px solid #D7D7D7;
	cursor: pointer;
}
/* クリック時 矢印非表示 */
.news-list-ttl-content img {
  display: inline-block;
  opacity: 1; 
  transition: opacity 0.3s ease;
}
.news-list-ttl-content.open img {
  opacity: 0;
}

/* contact
---------------------------------------- */
#contact {
    padding: 90px 4%;
}
#contact dl {
	margin-bottom: 30px;
}
button, input, select, textarea {
    width: 100%;
    padding: 8px 10px;
    background-color: #E8EAED;
}
textarea {
    height: 160px;
}
.form-content dt {
    margin-bottom: 8px;
}
.form-content {
    margin-bottom: 30px;
}
.textarea {
    margin-bottom: 0;
}
.form-content dt span {
    margin-right: 20px;
    padding: 3px 10px;
    font-size: 0.75rem;
    color: #FFF;
    background-color: #5271F9;
}
.form-content dt span.optional {
    background-color: #0F0E0D;
}
.contact-supplement {
    text-align: right;
}
.contact-check {
    margin: 30px auto;
    padding: 10px 0;
    display: block;
    text-align: center;
    background-color: #E8EAED;
}
.contact-btn {
    text-align: center;
    letter-spacing: 0.9em;
}

#contact .form-btn input {
    padding: 20px;
    border: 1px solid #19389D;
    background-color: #19389D; 
    font-weight: 400;
}
#contact .form-btn input:hover {
    background-color: #F5F8FA; 
    color: #19389D;
    transition: .3s;
}
.form-btn {
    text-align: center;
}
/* contactform7 */
button, html [type='submit'] {
    max-width: 240px;
    margin: auto;
    position: relative;
    display: block;
    width: 240px;
    padding: 13px 0;
    text-decoration: none;
    text-align: center;
    color: #FFF;
    background-color: #5271F9;
	border-radius: 50px;
    transition: .3s;
}
input.wpcf7-submit:hover {
    opacity: 0.8;
}
.wpcf7-spinner {
    display: none!important;
}
.wpcf7 form .wpcf7-response-output {
    padding: 0!important;
    width: 100%!important;
    text-align: center!important;
    border: none!important;
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
    font-weight: 400;
    color: #dc3232;
}
.wpcf7-not-valid-tip {
    font-size: 0.875em!important;
}
::placeholder {
	display: inline-block;
	margin-left: 20px;
    color: #AAAAAA;
	font-weight: 400;	
}
/* safari 角丸対策 */
input[type="text"],input[type="image"],textarea {
    -webkit-appearance: none;
    border-radius: 0;
}
/* contactform7 end */


/* footer
---------------------------------------- */
footer {
    padding: 0 4%;
    border-top: 1px solid #D7D7D7;
}
.footer-logo-wrapper {
    margin-bottom: 50px;
}
footer h1 {
    margin-left: 0;
}
footer h1 img {
    margin-top: 50px;
    position:static;
}
footer address {
    margin-top: 15px;
    margin-bottom: 30px;
}
footer .nav_pc {
    display: block;
    margin-top: 50px;
}
footer .nav_pc ul {
    text-align: center;
}
footer .nav_pc ul li {
    margin-bottom: 20px;
}
footer .nav_pc ul li a {
    text-align: center;
    font-size: 1rem;
    color: #0F0E0D;
    transition: .3s;
}
footer .nav_pc ul li.nav_btn a {
    display: inline-block;
    width: 200px;
    margin: auto;
    color: #FFF;
}
footer .nav_pc ul li.career_btn a {
    background-color: #001367;
}
footer .nav_pc ul a:hover {
    color: #E8EAED
}
.copyright {
    margin-bottom: 30px;
    text-align: center;
    font-size: 0.625rem;
}
.footer-nav {
    margin: auto;
}

/* -----------------------------
    SP 〜350px
-------------------------------- */
@media screen and (max-width: 350px){
    .mv h2 {
        font-size: 1.5625rem;
    }
}

/* -----------------------------
	tablet 760px〜
-------------------------------- */
@media screen and (min-width: 760px){
    /* contents
    ---------------------------------------- */
    .mv h2 {
        position: absolute;
        top: 65%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 100%;
        max-width: 800px;
        font-size: 3.5rem;
    }
    #contact dl {
        margin-top: 70px;
    }
}

/* -----------------------------
	PC 961px〜
-------------------------------- */
@media screen and (min-width: 961px){
    body {
        font-size: 1rem;
    }
    /* 見出しttl */
    h3 {
        font-size: 3.2rem;
        line-height: 0.5;
    }
        h3 span {
        font-size: 1.125rem;
    }

    /* header
    ---------------------------------------- */
    h1 img {
        margin-top: 45px;
    }
    .Toggle {
        display: none;
    }
    .header_nav {
        height: 120px;
    }
    .header_nav_wrapper {
        width: 100%;
        margin: auto;
        padding: 0 4%;
        display: flex;
        justify-content: space-between;
        background-color: #FFF;
    }
    .nav_pc {
        display: block;
    }
    .nav_pc ul {
        display: flex;
        gap: 20px;
        margin-top: 45px;
        align-items: center;
    }
    .nav_pc ul li a {
        font-size: 0.875rem;
        color: #0F0E0D;
    }
    .nav_pc ul li a:hover {
        color: #E8EAED;
    }
    .nav_btn {
        margin-bottom: 0;
    }
    .nav_pc .nav_btn a {
        color: #FFF;
    }
    .nav_pc ul li.career_btn a {
        background-color: #001367;
    }

    /* contents
    ---------------------------------------- */
    .mv {
        height: 350px;
    }
    .mv h2 {
        position: absolute;
        top: 65%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 100%;
        max-width: 1500px;
        font-size: 5rem;
    }

    /* about */
    #about {
        max-width: 1860px;
        padding: 100px 8%;
    }
    .about-content,
    .message-content {
        max-width: 1520px;
        margin: auto;
        padding: 0 4%;
        display: flex;
        justify-content: space-between;
    }
    #about .about-content {
        margin-bottom: 150px;
    }
    .about-content p,
    .message-content p {
        width: 68%;
        font-size: 1.0625rem;
        line-height: 2.5;
    }
    .message-content {
        flex-direction: row-reverse;
    }

    /* bussiness */
    #business {
        position: relative;
        padding-top: 150px;
        padding-bottom: 100px;
    }
    #business h3 {
        position: absolute;
        top: 170px;
        right: 3.6%;
    }
    .business-wrapper {
        max-width: 1520px;
        margin-right: 23%;
        padding: 100px 7% 70px 14%;
        background-color: #FFF;
        border-radius: 0 20px 20px 0;
    }
    .business-logo-wrapper {
        margin-bottom: 30px;
        display: flex;
        flex-direction: row-reverse;
        justify-content: space-between;
    }
    .business-logo {
        width: 30%;
    }
    .business-logo img {
        width: 100%;
    }
    .business-text {
        width: 60%;
    }
    #business h4 {
        font-size: 1.5625rem;
    }
    .anemone-feature-wrapper {
        display: flex;
        gap: 3%;
    }
    .anemone-feature-wrapper div {
        flex: 1;
        display: flex;
        flex-direction: column; 
        justify-content: stretch;
    }
    .anemone-feature-wrapper div {
        margin-bottom: 45px;
    }
    .anemone-feature-wrapper div:last-child {
        margin-bottom: 45px;
    }
    .anemone-feature-wrapper h5 {
        font-size: 1.0625rem;
    } 
    .business-btn a {
        margin-right: 0;
    }

    /* company */
    #company {
        position: relative;
        padding-top: 100px;
    }
    #company h3 {
        position: absolute;
        top: 170px;
        left: 0;
    }
    .company-list {
        display: none;
    }
    .company-list-pc {
        display: block;
        max-width: 1520px;
        margin-left: 23%;
        padding: 100px 7% 70px 14%;
        background-color: #FFF;
        border-radius: 20px 0 0 20px;
    }

    /* Career */
    #career {
        margin: 0 8%;
        padding: 0;
    }
    .career-wrapper {
        max-width: 1520px;
        margin: auto;
        padding: 50px 8%;
        display: flex;
        justify-content: space-between;
        gap: 5%;
    }
    .career-wrapper div {
        width: 43%;
    }
    #career .btn {
        margin-left: 0;
    }

    /* News */
    #news {
        position: relative;
        padding-top: 150px;
    }
    #news h3 {
        position: absolute;
        top: 250px;
        right: -9%;
    }
    .news-wrapper {
        max-width: 1520px;
        margin-right: 23%;
        padding: 100px 7% 70px 14%;
        background-color: #FFF;
        border-radius: 0 20px 0 0;
    }
    .news-list-arrow {
        margin-left: 0;
    }
    .news-list-ttl-content {
        margin-bottom: 20px;
        padding-bottom: 20px;
    }
    .news-list {
        margin-bottom: 0;
    }
    .news-list-date {
        margin-right: 10%;
    }
    .news-list-ttl {
        width: 70%;
        margin-right: 10px;
    }

    /* Contact */
    #contact {
        padding: 150px 8%;
    }
    #contact dl {
        margin-top: 120px;
    }
    .contact-btn a {
        margin: auto;
    }
    #contact dl {
        max-width: 800px;
        margin: 0 auto 30px;
    }

    /* footer */
    footer .nav_pc ul li a {
        font-size: 0.625rem;
    }
    footer .nav_pc ul {
        margin-top: 0;
        gap: 8px;
    }
    footer .nav_pc ul li {
        margin-bottom: 0;
        margin-top: 0;
    }
    footer .nav_btn {
        margin-bottom: -10px;
    }
    footer .nav_pc ul li.nav_btn {
        margin-top: 0;
    }
    footer .nav_pc ul li.nav_btn a {
        width: auto;
    }
    footer ul li {
        margin-top: 35px;
        margin-bottom: 0;
    }
    footer address {
        margin-bottom: 0;
    }
    .copyright {
        margin-top: 30px;
    }

/* -----------------------------
    PC 1200px〜
-------------------------------- */
@media screen and (min-width: 1200px){
    footer .nav_pc ul li a {
        font-size: 1rem;
    }
    footer .nav_pc ul {
        gap: 20px;
    }
}

/* -----------------------------
	PC 1230px〜
-------------------------------- */
@media screen and (min-width: 1230px){
    .header_nav {
        width: 100%;
        height: 150px;
        background-color: #FFF;
    }
    .header_nav_wrapper {
        width: 100%;
        max-width: 1520px;
        margin: auto;
        padding: 0 4%;
    }
    .nav_pc ul {
        gap: 35px;
    }
    .nav_btn a {
        padding: 10px 50px;
    }
}

/* -----------------------------
	PC 1260px〜
-------------------------------- */
@media screen and (min-width: 1260px){
    /* nav */
    .nav_pc ul li a {
        font-size: 1.125rem;
    }
}

/* -----------------------------
	PC 1275px〜
-------------------------------- */
@media screen and (min-width: 1275px){
    /* 見出しttl */
    h3 {
        font-size: 4.375rem;
        line-height: 0.5;
    }
}

/* -----------------------------
	PC 1400px〜
-------------------------------- */
@media screen and (min-width: 1400px){
    /* logo */
    h1 img {
        max-width: 280px;
        margin-top: 35px;
    }
    footer h1 img {
    max-width: 150px;
}
}