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

@media (max-width: 1610px) {
    .img-box {
        width: 100%;
        height: 524px;
        position: relative;
        overflow: hidden;
    }
    
    .img-box img {
        position: absolute;
        top: 0;
        width: auto;
        height: 100%;
        max-width: unset;
    }
}

@media (max-width: 1300px) {
    .entry .ban-box .f-l {
        max-width: 340px;
    }

    .entry .ban-box .f-r {
        max-width: 340px;
    }

    p.tel {
        font-size: 22px;
    }

    .contact-person {
        font-size: 16px;
    }
}

@media (max-width: 1160px) {
    nav ul li,nav.footer-nav ul li {
        padding: 0px 30px;
    }  
}

@media (max-width: 1119px) {
    nav.header-nav a p,nav.footer-nav ul li p {
        font-size: 12px;
    }
    
    .logo img {
        width: 80%;
    }
}

@media (max-width: 1110px) {
    nav ul {
        font-size: 12px;
    } 
    
    .txt {
        padding: 0 15px;
    }
    
    
    .img-area {
        max-width: 95%;
    }

    .img-area ul li img {
        width: 70%;
    }
    
    li.img-2 {
        left: 5%;
    }
    
    .area-height.pos-r {
        height: 400px;
    }
        
    .develop-ttl-box {
        width: 100%;
    }

    ul.img-list04 li img {
        width: 100%;
        margin: auto;
    }
    
    li.img-10 {
        top: -43%;
        right: 5%;
        left: 66%;
    }
    
    li.img-11 {
        top: -20%;
        right: 24%;
        z-index: 3;
        left: 47%;
    }
    
    li.img-12 {
        bottom: 49%;
        left: 25%;
        z-index: 2;
        right: 45%;
    }
    
    li.img-13 {
        bottom: 22%;
        left: 5%;
        right: 64%;
    }
    
    .develop-txt-box {
        width: 100%;
        margin-top: 0px;
    }
    
    nav.footer-nav ul {
        font-size: 12px;
    }
    
    .br-none {
        display: none;
    }
    
}

@media (max-width: 1110px) and (-ms-high-contrast: none){  
 
}

@media (max-width: 1068px) {
   
}

@media screen and (min-width: 1024px) and (max-width: 1350px) {
    h1.logo,
    .f-logo {
        width: 100%;
        max-width: 70px;
    }

    nav ul {
        justify-content: flex-end; 
    }

    nav ul li {
        padding: 0px 10px; 
    }

    nav.header-nav a p span.mincho,
    nav.footer-nav a p span.mincho {
        font-size: 15px;
        letter-spacing: 0.05em;
    }

    nav.header-nav a p,
    nav.footer-nav a p  {
        font-size: 11px;
        line-height: 1.4;
    }

    p.copyright {
        font-size: 14px;
    }

    .footer-fixed-bar {
        height: 90px;
    }
}

@media screen and (min-width: 1024px) {
    .logo {
        max-width: 200px; 
    }
}

@media (max-width: 1024px) {   
    .nav-only-pc {
        display: none;
    }
    
    .nav-only-sp {
        display: block;
    }
    
    .menu-trigger {
        display: inline-block;
        width: 36px;
        height: 28px;
        vertical-align: middle;
        cursor: pointer;
        position: fixed;
        top: 37px;
        right: 30px;
        z-index: 100;
        /*   transform: translateX(0);
        transition: transform .5s;
        */
    }
    
    .menu-trigger span {
        display: inline-block;
        box-sizing: border-box;
        position: absolute;
        left: 0;
        width: 100%;
        height: 4px;
        background-color: #fff;
        transition: all .5s;
    }

    .menu-trigger.active span {
        background-color: #fff;
    }

    .menu-trigger span:nth-of-type(1) {
        top: 0;
    }

    .menu-trigger.active span:nth-of-type(1) {
        transform: translateY(12px) rotate(-45deg);
    }

    .menu-trigger span:nth-of-type(2) {
        top: 12px;
    }

    .menu-trigger.active span:nth-of-type(2) {
        opacity: 0;
    }

    .menu-trigger span:nth-of-type(3) {
        bottom: 0;
    }

    .menu-trigger.active span:nth-of-type(3) {
        transform: translateY(-12px) rotate(45deg);
    }
 
    .header-nav-sp {
        width: 250px;
        height: 100%;
        padding-top: 100px;
        background: rgb(230 0 18 / 50%);
        position: fixed;
        top: 0;
        right: 0;
        z-index: 10;
        transform: translate(250px);
        transition: all .5s;
    }

    .header-nav-sp.open {
        transform: translateZ(0);
    }
        
    .header-nav-sp li {
        border-left: none;
    }
    
    .header-nav-sp li a {
        color: #fff;
        text-align: center;
        padding: 3px 11px;
        border-left: 4px solid #fff;
        display: block;
    }
    
    .menu-trigger span:nth-of-type(2) {
        top: 8px;
    }
        
    .menu-trigger span {
        display: inline-block;
        box-sizing: border-box;
        position: absolute;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: #fff;
        transition: all .5s;
    }
    
    .menu-trigger {
        display: inline-block;
        width: 28px;
        height: 18px;
        vertical-align: middle;
        cursor: pointer;
        position: fixed;
        top: 37px;
        right: 30px;
        z-index: 100;
    }
    
    .menu-trigger.active span:nth-of-type(3) {
        transform: translateY(-7px) rotate(45deg);
    }
    
    .menu-trigger.active span:nth-of-type(1) {
        transform: translateY(9px) rotate(-45deg);
    }
    
    nav.header-nav-sp a:hover {
        color: rgba(185, 185, 185, 0.5);
        transition: .5s ease;
    }
         
    nav ul {
        display: block;
    }
   
    nav ul li {
        padding: 0px 36px;
        margin-bottom: 34px;
    }
    
    .header-nav-sp li a p {
        font-size: 12px;
    }
    
    .header-nav-sp li a p span {
        font-size: 14px;
    }
        
    .left, .right {
        width: 100%;
    }
    
    #company .right {
        order: 1;
    }
    
    #company .left{
        order: 2;
    }

    .company-map {
        flex-direction: column;
    }

    .company-map .map,.company-map .park{
        width: 100%;
    }
        
    .img-box {
        height: auto;
    }
    
    .img-box img {
        position: static;
        width: 100%;
    }
    
    th, td {
        display: block;
    }
    
    .content-box {
        padding: 30px 0;
    }

    .daihyou-text {
        padding-left: 20px;
        padding-right: 20px;
    }
    
    .footer-row {
        flex-wrap: wrap;
        justify-content: center;
    }
}

@media (max-width: 1000px) {
    .pc-only { 
        display: none; 
    }

    .tab-only { 
        display: block; 
    }
    
    .top-slider { 
        height: 70vh; 
    }

    .service-item {
        margin-bottom: 60px;
    }

    .service-headline {
        font-size: 1.2rem; 
    }
}

@media (max-width: 835px) {
    .header-info {
        width: 50%;
    }
    
    .ttl h1 {
        font-size: 30px;
    }
    
    .ttl p {
        font-size: 18px;
    }
    
    .txt {
        text-align: left;
        max-width: 100%;
        margin: auto;
    }

    .flex { 
        padding: 60px 10px;
        gap: 0px;
    }

    .top-copy p {
        margin-top: 6px;
    }

    .flex {
        flex-direction: column;
        padding: 60px 20px;
    }

    .daihyou-text {
        margin-top: 20px;
    }
}

@media (max-width: 811px) {
    nav ul li {
        padding: 0px 16px;
    }
    
    nav.footer-nav ul li {
        padding: 0px 16px;
    }
}

@media (max-width: 811px) and (-ms-high-contrast: none){  

}

@media screen and (min-width: 769px) {
    .philosophy-item .eng {
        font-size: 2.8rem; 
    }

    .philosophy-item .red-s {
        font-size: 3.4rem;
    }

    .philosophy-item .jpn {
        font-size: 1rem;
        letter-spacing: 0.05rem;
    }

    .philosophy-item.unlimited .eng {
        font-size: 3.4rem;
    }
}

@media (max-width: 768px) {
    #about {
        background-attachment: unset;
    }
    
    #entry {
        background-attachment: unset;
    }

    .philosophy-item {
        margin-bottom: 45px; 
        transform: translateX(-20px); 
    }

    .philosophy-item .eng {
        font-size: 1.6rem; 
    }

    .philosophy-item .red-s {
        font-size: 2.0rem;
    }

    .philosophy-item .jpn {
        font-size: 1rem; 
    }

    .philosophy-item.unlimited .eng {
        font-size: 2.0rem;
    }
 
    .only-pc {
        display: none
    }
    
    .only-sp {
       display: block;
    }
    
    footer {
        padding: 30px 0;
    }

    .drop-down-menu .wrap {
        padding: 1rem;
    }

    .header-info a {
        justify-content: center;
    }
        
    .top-copy {
        padding: 0 10px;
    }
    
    .top-copy h1 {
        font-size: 1.5rem;
    }
    
    .top-copy p {
        font-size: 18px;
        margin-top: 0px;
        padding-top: 10px;
    }
    
    .top-copy p .only-sp {
        display: none;
    }
        
    .top-copy-logo img {
        width: 360px;
    }

    .main-row {
        display: block;
        padding-bottom: 0;
    }
    
    .header-info {
        width: 100%;
        text-align: center;
    }

    h1.logo {
        width: 100%;
        max-width: 75px;
    }
  
    .company, .link {
        width: 100%;
        margin: auto;
        border-left: none;
        border-top: 2px solid #999999;
        order: 2;
        border-right: none;
    }

    .footer-logo {
        padding-right: 0;
    }
        
    nav.footer-nav ul {
        /*display: flex;*/
        /*border-top: 2px solid #fff;
        border-bottom: 2px solid #fff;*/
        width: 100%;
        margin: auto;
        padding: 20px 0 0;
    }
    
    nav.footer-nav ul li {
        margin-bottom: 20px;
        /*border-left: none;*/
        text-align: center;
    }
    
    .footer-nav {
        width: 90%;
    }
    
    .develop-txt-box {
        margin-top: 80px;
    }
        
    .develop-txt-box .txt p {
        white-space: normal;
    }
    
    header {
        padding: 10px;
    }

    .menu-trigger {
        right: 20px;
    }

    .service-item, 
    .service-reverse {
        flex-direction: column !important; 
        gap: 20px; 
        margin-bottom: 50px;
        align-items: flex-start; 
    }

    .service-img-box {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .service-inner-box {
        width: 100%;
    }

    .service-headline {
        font-size: 1.3rem; 
        margin-bottom: 10px;
    }

    .footer-fixed-bar {
        height: 80px;
    }

}

@media (max-width: 750px) and (-ms-high-contrast: none){  
    p.tel {
        font-size: 21px;
    }

    .top-copy-logo {
        padding: 0 10px;
    }  
}

@media (max-width: 750px) {
    .ceo-message {
        padding: 30px 20px;
        margin: 20px auto;
        max-width: 95%; 
    }

    .ceo-content {
        padding: 10px 0;
    }

    .ceo-image {
        float: none;      
        width: 100%;      
        margin: 40px auto 20px; 
    }

    .ceo-text {
        font-size: 15px; 
        text-align: left; 
    }
}

@media (max-width: 620px) {
    header {
        padding: 10px;
    }

    h1.logo {
        width: 100%;
        max-width: 65px;
    }

    h1.logo img {
        margin: 0 10px;
    }  

    .menu-trigger {
        top: 25px;
    }    

    .about-txt-catch {
        padding: 30px 0 30px;
    }

   .about-txt-catch h1 {
        font-size: 20px;
    }
    
    nav.footer-nav ul {
        border-top: 1px solid #fff;
        border-bottom: 1px solid #fff;
        width: 100%;
        font-size: 12px;
        padding: 10px 0 0;
    }
    
    nav.footer-nav ul li {
        margin-bottom: 10px;
        border-left: none;
    }
    
    .f-logo {
        margin-top: 30px;
    }

    .entry .ban-box {
        grid-template-columns: 1fr; 
        gap: 15px;
        padding: 10px;
    }
    
    .txt.tel {
        min-height: auto; 
        padding: 30px 15px;
    }

    p.tel {
        font-size: 18px;
    }

    .txt {
        max-width: 100%;
    }  
    
    .footer-fixed-bar {
        height: 70px;
    }

    .footer-logo {
        padding-right: 25px;
    }
}

@media (max-width: 600px) {
    .tab-only { 
        display: none; 
    }

    .sp-only { 
        display: block !important; 
    }

    .top-slider {
        height: 100% !important;
        min-height: 700px !important;
    }

    .border-b-white::after {
        margin: 30px auto 0;
    }
        
    .border-b::after {
        margin: 30px auto 0;
    }
}

@media (max-width: 562px) {
    .main-row {
        display: block;
    }
 
    .header-info {
        width: 100%;
        text-align: center;
    }
      
    nav ul {
        margin: 7px 0 16px;
    }
    
    nav ul li {
        padding: 0px 20px;
    }
      
    span.small {
        font-size: 24px;
    }
    
    h1.mt-1 {
        margin-top: 10px;
    }
    
    .logo-shop img {
        margin: auto;
        /*width: 40%;*/
    }

    .top-copy {
        flex-wrap: wrap;
        top: 40%;
    }  

    .top-copy-logo {
        padding: 10px;
    }
    
    .top-copy-ttl {
        margin-top: 16px;
    }
        
    .tel-flex {
        width: 300px;
    }
    
    p.tel {
        letter-spacing: 1.5px;
        color: #fff;
    }

    .service-box {
        padding: 40px 15px;
    }

    .service-item {
        margin-bottom: 40px;
    }

    .footer-logo {
        padding-right: 0;
    }
}

@media (max-width: 500px) {
    .only-sp500 {
        display: block;
    }

    .only-sp500none {
        display: none;
    }

    .philosophy-item .jpn {
        font-size: 0.9rem;
    }

    .footer-bar-inner {
        padding-right: 20px;
    }

    p {
        font-size: 15.5px;
    }

    p.syaken-url {
        font-size: 17px !important;
        word-break: keep-all;
    }
}

@media (max-width: 420px) {
    /*.home-sections> section {
        padding: 40px 0 0;
    }*/

    /* .top-img {  
        position: relative;
        width: 100%;
        margin: auto;
        overflow: hidden;
    } */

    .header-info a {
        display: none;
    }
    
    .ttl h1 {
        font-size: 23px;
    }
    
    .ttl p {
        font-size: 16px;
    }
    
    span.large {
        font-size: 38px;
    }
    
    h1.logo {
        padding-top: 0;
    }
     
    .sp-flex {
        display: flex;
        align-items: baseline;
        justify-content: center;
    }
        
    .sp-info {
        text-align: center;
        align-self: flex-end;
    }
    
    p.tel.only-sp {
        display: block;
        color: #fff;
        padding-left: 8px;
    }
    
    p.time.only-sp {
        display: block;
        color: #fff;
    }
    
    p.time {
        padding-top: 4px;
    }
       
    .header-info {
        padding-top: 0px;
    }
        
    .header-info p.tel {
        display: none;
    }
    
    /* .top-img img {
        height: calc(100vh - 72px);
        height: 100%;
        width: auto;
        position: absolute;
        max-width: none;
        left: -120%;
        right: -100%;
    } */
    
    main:before {
        height: 41%;
    }
     
    .top-copy h1 {
        font-size: 26px;
    }
        
    .top-copy p {
        font-size: 16px;
        /*margin-top: 0px;*/
    }
    
    .menu-trigger {
        right: 20px;
    }
    
    .menu-trigger span {
        width: 100%;
    }
    
    .header-nav-sp {
        width: 200px;
    }

    .philosophy-item .eng {
        font-size: 1.4rem;
    }

    .philosophy-item .red-s {
        font-size: 1.8rem;
    }
   
    h2.f-logo a img {
        margin: 0px auto 25px;
    }
           
    #about {
        background-position: 75% 0%;
    }
    
    .sp-center {
        text-align: center;
    }

    .ban-box {
        width: 95%;
    }
    
    .contact-person {
        font-size: 16px;
        margin-top: 16px;
    }
    
    p.copyright {
        font-size: 12px;
    }
        
}

@media (max-width: 420px) and (-ms-high-contrast: none){  
    .sp-info {
        text-align: center;
        margin-top: auto;
    }
  
}

@media (max-width: 330px) {
    h1.logo img {
        padding-left: 10px;
        margin: 0;
        margin-right: auto;
    }
}


    