@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Shippori+Mincho&display=swap');

*, *::after, *::before {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  text-decoration: none;
  border: none;
  scroll-behavior: smooth;
}

.PcHide {
    display: none;
}

.SpHide {
    display: none;
}

body{
  min-width: 1000px;
  font-size: 1rem;
  line-height: 1.4;
  letter-spacing: 1px;
  font-family: 'Noto Sans JP', sans-serif;
}

/* to scale all img equally */
img{
  width: 100%;
}

/* for all links */
a{
  cursor: pointer;
  text-decoration: none;
  color: #000000;
}

header{
  position: fixed;
  top: 0;
  width: 100%;
  height: 80px;
  background-color: #ffffff;
  z-index: 9;
  box-shadow: 0 3px 4px 0 #0080FF10;
}

nav{
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
@media (min-width: 1100px){
    nav{
        max-width: 100%;
    }
}

.header-logo-link{
    width: 353px;
    height: 50px;
    margin-left: 5%;
}
@media (min-width: 768px) and (max-width: 1000px){
    .header-logo-link{
        width: 30vw;
    }
}

.header-logo{
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.burger-menu{
    display: none;
}

.nav-links{
    list-style: none;
    display: flex;
    align-items: center;
    gap: 1rem;
}
@media (min-width: 768px) and (max-width: 1050px){
        .nav-links{
        gap: 5px;
        }
}

.nav-line{
    width: 1px;
    height: 40px;
    background-color: lightgray;
}

.nav-link > a{
    transition: 0.3s all ease;
    font-size: clamp(10px, 1.5vw, 16px);
}

.nav-link > a:hover{
    text-decoration: underline;
}

.contact-link{
    height: 80px;
    object-fit: cover;
}
@media (min-width: 768px) and (max-width: 1000px){
        .contact-link{
        object-fit: cover;
        }
}

.mobile-menu {
    display: none;
    width: 75%;
    height: 100%;
    margin-left: auto;
    background-color: #fcfcfc;
    min-height: calc(100vh - 70px);
    position: fixed;
    top: 70px;
    right: -75%;
    transition: right 0.3s ease;
    z-index: 1;

    border-top: 2px solid #1E50A2;
}

.mobile-menu.open {
    right: 0;
}

.menu-item {
    width: 100%;
    border-bottom: 1px solid #dadada;
}

.menu-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 25px;
    color: #000000;
    text-decoration: none;
    font-size: 16px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.menu-icon {
    font-size: 2rem;
    font-weight: 200;
    transition: transform 0.3s ease;
}

.menu-icon.rotated {
    transform: rotate(0deg);
}

.regular-link {
    padding: 30px 16px;
    color: #000000;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 18px;
    font-size: 16px;
    transition: background-color 0.3s ease;
}

.regular-link > img {
    width: 20px;
    height: 7px;
    object-fit: contain;
}

@media (max-width: 768px) {
    body{
        min-width: 0;
    }

    header{
        height: 70px;
        display: flex;
        align-items: center;
    }

    .header-logo-link{
        width: auto;
        height: 35px;
        margin-left: 0;
    }

    .burger-menu {
            width: 28px;
            height: 28px;
            cursor: pointer;
            display: flex;
            flex-direction: column;
            justify-content: space-around;
            background: none;
            border: none;
            padding: 0;
            transition: all 0.3s ease;
        }
        
        .burger-line {
            width: 100%;
            height: 2.5px;
            background-color: #1E50A2;
            border-radius: 2px;
            transition: all 0.3s ease;
            transform-origin: center;
        }
        
        .burger-menu.active .burger-line:nth-child(1) {
            transform: rotate(45deg) translate(6px, 7px);
        }
        
        .burger-menu.active .burger-line:nth-child(2) {
            opacity: 0;
        }
        
        .burger-menu.active .burger-line:nth-child(3) {
            transform: rotate(-45deg) translate(6px, -7px);
        }

        .mobile-menu{
            display: block;
        }

        .main-link{
            padding: 0;
        }

        .dropdown-sp-link{
            padding: 0;
        }

        nav{
            width: 90%;
        }

        .nav-links{
            display: none;
        }

        .nav-link a {
            border: 0;
            justify-content: flex-start;
            align-items: center;
            color: #000000;
            width: 100%;
            height: 50px;
            font-size: 14px;
            margin: auto;
            padding-left: 1rem;

            transition: all 0.3s ease;
        }

        .nav-link a > span{
            display: none;
        }
}

@media (max-height: 400px) {
    .mobile-menu{
        height: 100px;
        overflow-y: scroll;
    }
}



/* floating btns フィックスボタン */

.sp-floating-btns{
    display: none;
}

.floating-btns{
    position: fixed;
    right: 30px;
    bottom: 50px;
    display: flex;
    flex-direction: column;
    z-index: 9;
}

.floating-btns > a:hover{
    opacity: 0.75;
}

.floating-btns > a:not(:hover), 
.floating-btns > a:not(:focus){
    opacity: 1;
}

.floating-btns > a > img{
    width: 220px;
    height: 50px;
    object-fit: contain;
}

@media (max-width: 768px) {
    .floating-btns{
        display: none;
    }

    .sp-floating-btns{
        position: fixed;
        bottom: 0;
        width: 100%;
        height: 80px;
        background: linear-gradient(to bottom, #0080FF, #0058B0);
        display: flex;
        justify-content: space-evenly;
        align-items: center;
        z-index: 9;
    }

    .divider-line{
        width: 2px;
        height: 50px;
        background-color: white;
    }

    .sp-floating-btns > a > img{
        height: 50px;
        object-fit: contain;
    }
}


/* link-btns 詳しくボタン */

.link-btn{
    transition: 0.3s all ease;
}

.link-btn:hover{
    opacity: 0.75;
}

.link-btn > img{
    max-width: 245px;
    height: 45px;
    object-fit: cover;
}

.form-btn {
    cursor: pointer;
    height: 45px;
    width: 250px;
    margin: 36px auto;
    color: #ffffff;
    font-size: 18px;
    background-image: url(/assets/images/contact/submit_btn_bg.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;

    transition: 0.3s all ease;
}

.form-btn:hover {
    background-color: #555;
}

.form-btn:disabled {
    background-color: #ccc;
    cursor: not-allowed;
}


/* TOP css トップCSS */

.top-mv{
    padding-top: 80px;
}
@media(min-width: 1281px) {
    .top-mv{
        height: 651px;
    }
}

.top-mv > img{
    width: 100%;
    object-fit: contain;
}
@media(min-width: 1281px) {
    .top-mv > img{
        height: 100%;
        object-fit: cover;
    }
}

.top-mv > .top-sp-mv{
    display: none;
}

.greeting{
    height: auto;
    width: 100%;

    background-image: url(/assets/images/home/sakura_bg.png);
    background-repeat: no-repeat;
    background-position: right;
    background-size: cover;
}

.greeting-content{
    height: 100%;
    max-width: 1280px;
    margin: 0 auto;
}

.title{
    max-width: 262px;
    height: 100px;
    object-fit: contain;
}

.sp-title{
    display: none;
}

.greeting-msg{
    max-width: 50%;
    padding-top: 55px;
    padding-bottom: 45px;
    height: 100%;
    margin-left: 15%;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    justify-content: space-evenly;
    line-height: 1.7;
}

.greeting-msg > p:nth-last-child(1){
    text-align: right;
    margin-right: 1rem;
}

.company, .business{
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
}

.company-wrapper{
    width: 1150px;
    height: 267px;
    display: grid;
    grid-template-columns: 1fr 320px;
    grid-template-rows: 100px 60px 1fr;
    grid-template-areas: 
    "img title"
    "img para"
    "img link"
    ;
    gap: 20px 30px;
    margin: 74px auto 74px 0;
}

@media (min-width: 1281px) {
    .company-wrapper{
        margin: 74px auto;
        width: 1280px;
    }
}
@media (min-width: 768px) and (max-width: 1163px) {
        .company-wrapper{
        width: 95%;
        grid-template-columns: 2fr 1fr
    }
}


.company-img-pc{
    grid-area: img;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.company-img-sp{
    display: none;
    grid-area: img;
}

.company-wrapper > .title{
    grid-area: title;
}

.company-wrapper > p{
    width: 101%;
    grid-area: para;
    line-height: 1.7;
}

@media (min-width: 1281px) {
        .company-wrapper > p{
        margin-left: 0;
        }
}

.company-wrapper > .link-btn{
    margin-top: auto;
    grid-area: link;
}
@media (min-width: 1281px) {
        .company-wrapper > .link-btn{
        margin-left: 0;
        }
}

.link-btn{
    transition: 0.3s all ease;
    margin-top: auto;
}

.link-btn:hover{
    opacity: 0.75;
}

.link-btn > img{
    max-width: 245px;
    height: 45px;
    object-fit: cover;
}

.business-wrapper{
    width: 1150px;
    height: 267px;
    display: grid;
    grid-template-columns: 320px 1fr;
    grid-template-rows: 100px 60px 1fr;
    grid-template-areas: 
    "title img"
    "para img"
    "link img"
    ;
    gap: 20px 30px;
    margin: 68px 0 80px auto;
}
@media (min-width: 1281px) {
    .business-wrapper{
        margin: 68px auto 80px auto;
        width: 1280px;
    }
}
@media (min-width: 768px) and (max-width: 1163px) {
    .business-wrapper{
        width: 95%;
        grid-template-columns: 1fr 2fr;
    }
}

.business-img-pc{
    grid-area: img;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.business-img-sp{
    display: none;
    grid-area: img;
}

.business-wrapper > .title{
    grid-area: title;
    margin-right: auto;
}

.business-wrapper > p{
    grid-area: para;
    line-height: 1.7;
}
@media (min-width: 1281px) {
        .business-wrapper > p{
        margin-left: 0;
        }
}

.business-wrapper > .link-btn{
    margin-top: auto;
    grid-area: link;
}
@media (min-width: 1281px) {
        .business-wrapper > .link-btn{
        margin-left: 0;
        }
}

.recruit-banner{
    max-width: 1100px;
    margin: 0 auto;
    margin-bottom: 5rem;
}
@media (min-width: 1281px) {
        .recruit-banner{
        max-width: 1280px;
        }
}

.recruit-banner-pc, .recruit-banner-sp{
    width: 100%;
    object-fit: contain;
}

.recruit-banner-pc{
}
@media (min-width: 1281px) {
        .recruit-banner-pc{
        object-fit: cover;
        }
}

.recruit-banner-sp{
    display: none;
}

@media (max-width: 768px) {

    .top-mv{
        padding-top: 70px;
        height: 35vh;
    }

    .top-mv > img{
        height: 100%;
        object-fit: cover;
    }

    .top-mv > .top-pc-mv{
        display: none;
    }

    .top-mv > .top-sp-mv{
        display: block;
        width: 101%;
    }

    nav{
        width: 90%;
        margin: 0 auto;
    }

    .header-logo{
        width: auto;
        height: 40px;
        margin-left: 0;
    }

    .nav-links{
        display: none;
    }

    .floating-btns{
        display: none;
    }

    .sp-floating-btns{
        position: fixed;
        bottom: 0;
        width: 100%;
        height: 80px;
        background: linear-gradient(to bottom, #0080FF, #0058B0);
        display: flex;
        justify-content: space-evenly;
        align-items: center;
        z-index: 1;
    }

    .sp-floating-btns > a{
        width: 100%;
        height: 100%;

        display: flex;
        justify-content: center;
        align-items: center;
    } 

    .divider-line{
        width: 2px;
        height: 50px;
        background-color: white;
    }

    .sp-floating-btns > a > img{
        height: 50px;
        object-fit: contain;
    }

    .greeting{
        height: 100%;
        background-image: url(/assets/images/home/sp_sakura_bg.png);
        background-position: bottom;
        background-size: 100%;
    }

    .greeting-content{
        padding: 2rem 0;
        width: 100%;
        padding-bottom: 10px;
    }

    .greeting-msg{
        max-width: 90%;
        margin: 0 auto;
        padding-top: 0;
        gap: 1.5rem;
        align-items: flex-end;
        padding-bottom: 0;
    }

    .greeting-msg > p:nth-last-child(2){
        margin-left: 0.5rem;
    }

    .greeting-msg > p:nth-last-child(1){
        margin-right: 0.6rem;
        margin-top: auto;
    }


    .title{
        display: none;
    }

    .sp-title{
        display: block;
        max-width: 275px;
        margin: 0 auto;
        height: 80px;
        object-fit: contain;
    }

    .company-wrapper, .business-wrapper{
        width: 90%;
        height: 100%;
        grid-template-columns: 1fr;
        grid-template-rows: 75px 1fr auto 45px;
        grid-template-areas: 
        "title"
        "img"
        "para"
        "link"
        ;
        margin: 13% auto;
        gap: 1rem 2rem;
    }

    .business{
        margin-top: 77px;
    }

    .company-wrapper > .link-btn, .business-wrapper > .link-btn{
        margin-left: 0;
    }

    .company-img-pc, .business-img-pc{
        display: none;
    }

    .company-img-sp, .business-img-sp{
        display: block;
        height: 100%;
        object-fit: contain;
    }

    .company-wrapper > p, .business-wrapper > p{
        width: 100%;
        margin: 0 auto;
    }

    .company-wrapper > .link-btn, .business-wrapper > .link-btn{
        margin: 0 auto;
    }

    .recruit-banner{
        margin-bottom: 50px;
    }

    .recruit-banner-pc{
        display: none;
    }

    .recruit-banner-sp{
        display: block;
        width: 100%;
        margin: 0 auto;
        margin-top: 4rem;
    }
}


/* お問い合わせページCSS  CONTACT CSS*/
.contact-mv{
    position: relative;
    width: 100%;
    margin-top: 80px;
    height: 304px;
}

.contact-mv-wrapper{
    position: relative;
    width: 90%;
    height: 100%;
    max-width: 1150px;
    margin: 0 auto;
    margin-top: 10px;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
@media (min-width: 1281px) {
        .contact-mv-wrapper{
        max-width: 90%;
        }
}

.contact-mv-wrapper > .path{
    position: absolute;
    top: 10px;

    width: auto;
    display: flex;
    align-items: center;
    gap: 10px;
    color: #ffffff;
    font-size: 14px;

    border-bottom: 1px solid #ffffff;
    padding-bottom: 5px;
}

.contact-mv > .pc-mv, .contact-mv > .sp-mv{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.contact-mv > .sp-mv{
    display: none;
    height: 244px;
}

.contact-mv-wrapper > .path > a{
    color: #ffffff;
    transition: 0.3s all ease;
}

.contact-mv-wrapper > .mv-title-pc{
    width: 266px;
    margin-right: auto;
    margin-left: 7%;
    margin-top: auto;
    object-fit: contain;
    margin-bottom: auto;
}

.contact-mv-wrapper > .mv-title-sp{
    display: none;
    width: 152px;
    margin: 0 auto;
    object-fit: contain;
}

.page-title{
    width: 90%;
    max-width: 1100px;
    margin: 73px auto;
    font-size: 22px;
    font-weight: 500;
    text-align: center;
    line-height: 1.6;
}

.contact-form{
    width: 90%;
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.entry-form-fields > h2{
    font-size: 25px;
    margin: 2rem auto;
    text-align: center;
    color: #0058B0;
    font-weight: 800;
}

form {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding-bottom: 67px;
}

.firstname, .email, .message, .number {
    max-width: 583px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

label{
    font-weight: 500;
}

input {
    min-width: 90%;
    width: 583px;
    height: 45px;
    background-color: #ffffff;
    padding: 1rem;
    border: 1px solid #b0b0b0;
    border-radius: 0;
    font-size: 14px;
    box-sizing: border-box;
}

input:focus {
    outline: none;
    border-color: #333;
}

input.error, textarea.error {
    border-color: hsl(0, 66%, 54%) !important;
}

input::placeholder {
    color: #b0b0b0;
}

textarea {
    min-width: 90%;
    width: 583px;
    background-color: #ffffff;
    padding: 1rem;
    border: 1px solid #b0b0b0;
    border-radius: 0;
    font-size: 14px;
    box-sizing: border-box;
    resize: none;
}

textarea:focus {
    outline: none;
    border-color: #333;
}

.error-msg{
    display: none;
    color: #ff0000;
    font-size: 12px;
    font-weight: 400;
}

.required-star {
    color: #ff0000;
    font-size: 16px;
}

.checkbox {
    text-align: center;
    max-width: 583px;
    margin: 0 auto;
}

.container {
    display: block;
    position: relative;
    padding-left: 25px;
    margin-bottom: 8px;
    font-weight: 400;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* Hide the browser's default checkbox */
.container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* Create a custom checkbox */
.checkmark {
    position: absolute;
    top: 4px;
    left: 0;
    height: 16px;
    width: 16px;
    background-color: #ffffff;
    border: 1px solid #000000;
}

/* On mouse-over, add a grey background color */
.container:hover input ~ .checkmark {
    border: 1px solid #333;
}

/* When the checkbox is checked, add a black background */
.container input:checked ~ .checkmark {
    border: 1px solid #333333;
    background-color: #333333;
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
}

/* Show the checkmark when checked */
.container input:checked ~ .checkmark:after {
    display: block;
}

/* Style the checkmark/indicator */
.container .checkmark:after {
    left: 5px;
    top: 1px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

.check {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
}

.privacy-content ul {
    list-style: none;
    padding: 0;
}

.privacy-content b {
    display: block;
    margin-bottom: 5px;
}

.privacy-content p {
    margin: 5px 0;
    line-height: 1.5;
}

/* Custom Popup Styles */
.custom-popup {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    justify-content: center;
    align-items: center;
}

.popup-content {
    background-color: white;
    padding: 30px;
    border-radius: 8px;
    text-align: center;
    max-width: 400px;
    width: 90%;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.popup-content h2 {
    color: #333;
    margin-bottom: 15px;
}

.popup-content p {
    color: #666;
    margin-bottom: 20px;
    line-height: 1.5;
}

.popup-button {
    background-color: #333;
    color: white;
    border: none;
    padding: 10px 25px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
}

.popup-button:hover {
    background-color: #555;
}

.personal-info-privacy{
    max-width: 1000px;
    margin: 0 auto;
}

.title-bar{
    width: 100%;
    padding: 12px;
    background-color: #d9d9d9;
    border-bottom: 1px solid #b0b0b0;
}

.personal-info-privacy > .title-bar{
    border-bottom: 0;
}

.title-bar > p{
    text-align: center;
    font-size: 20px;
    font-weight: 600;
}

.privacy-content{
    height: 283px;
    background-color: #f2f2f2;
    padding: 2rem;
    overflow-y: scroll;
}

.privacy-content > ul{
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (max-width: 768px) {

    .contact-mv{
        margin-top: 70px;
        height: 248px;
    }

    .contact-mv > .pc-mv{
        display: none;
    }

    .contact-mv > .sp-mv{
        display: block;
        height: 248px;
        object-fit: cover;
    }

    .contact-mv-wrapper{
        margin-top: 0;
    }

    .contact-mv-wrapper > .path{
        font-size: 11px;
        gap: 5px;
    }

    .contact-mv-wrapper > .mv-title-pc{
        display: none;
    }

    .contact-mv-wrapper > .mv-title-sp{
        display: block;
        margin: auto;
    }

    .page-title{
        font-size: 18px;
        line-height: 1.9;
        margin: 10% auto;
        margin-top: 56px;
        margin-bottom: 76px;
    }

    .contact-form > h2{
        margin: 0 auto 55px auto;
    }

    .entry-form-fields > h2{
        margin: 1rem auto;
    }

    form{
        width: 100%;
        margin: 0 auto;
        padding: 0;
        padding-bottom: 85px;
    }

    .personal-info-privacy{
       width: 90%;
    }

    .contact-form{
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }

    .firstname, .email, .message, .number{
        width: 90%;
    }

    input, textarea{
        max-width: 100%;
        margin: 0 auto;
    }
}



/* お問い合わせページCSS  COMPANY CSS*/

.company-mv{
    position: relative;
    width: 100%;
    margin-top: 80px;
    height: 305px;
}

.company-mv-wrapper{
    position: relative;
    width: 90%;
    height: 100%;
    max-width: 1150px;
    margin: 0 auto;
    margin-top: 10px;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
@media (min-width: 1281px) {
        .company-mv-wrapper{
        max-width: 90%;
        }
}

.company-mv-wrapper > .path{
    position: absolute;
    top: 10px;
    width: auto;

    display: flex;
    align-items: center;
    gap: 10px;
    color: #ffffff;
    font-size: 14px;
    border-bottom: 1px solid #ffffff;
    padding-bottom: 5px;
}

.company-mv > .pc-mv, .company-mv > .sp-mv{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.company-mv > .sp-mv{
    display: none;
    height: 244px;
}

.company-mv-wrapper > .path > a{
    color: #ffffff;
    transition: 0.3s all ease;
}

.company-mv-wrapper > .mv-title-pc{
    width: 266px;
    margin-right: auto;
    margin-left: 7%;
    margin-top: auto;
    object-fit: contain;
    margin-bottom: auto;
}

.company-mv-wrapper > .mv-title-sp{
    display: none;
    width: 152px;
    margin: 0 auto;
    object-fit: contain;
}

.mv-credit{
    position: absolute;
    bottom: 0px;
    right: -4%;
    width: 100%;
    color: #ffffff;
    text-align: right;
    font-size: 14px;
    margin-bottom: 10px;
}

.company-content{
    width: 90%;
    max-width: 1000px;
    margin: 5% auto;
    margin-bottom: 115px;
    border: 1px solid #b0b0b0;
}

.row{
    display: grid;
    grid-template-columns: 1fr 3fr;
    border-bottom: 1px solid #b0b0b0;
}

.company-content > .row:nth-last-child(1){
    border-bottom: 0;
}

.content-col{
    line-height: 1.7;
    padding: 10px 30px;
    font-weight: 400;
}

.content-col > p > br{
    display: block;
}

.content-col > ul{
    list-style: none;
    display: flex;
    flex-direction: column;
}

.content-col > ul > br{
    display: none;
}

.map-col{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
}

.map{
    height: 100%;
}

.map > iframe{
    width: 100%;
    height: 100%;
}

@media(max-width: 768px) {
    .company-mv{
        margin-top: 70px;
        height: 248px;
    }

    .company-mv-wrapper > .path{
        font-size: 11px;
        gap: 5px;
    }

    .mv-credit{
        font-size: 12px;
        right: 0;
        left: 0;
        text-align: center;
    }

    .company-mv > .pc-mv{
        display: none;
    }

    .company-mv > .sp-mv{
        display: block;
        height: 100%;
    }

    .company-mv-wrapper{
        margin-top: 0;
    }

    .company-mv-wrapper > .mv-title-pc{
        display: none;
    }

    .company-mv-wrapper > .mv-title-sp{
        display: block;
        margin: auto;
    }

    .company-content{
        margin: 26px auto;
        margin-bottom: 56px;
    }

    .content-col > ul > br{
        display: block;
    }

    .map-col{
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .map{
        padding-bottom: 10px;
    }
}


/* お問い合わせページCSS  BUSINESS CSS*/

.business-mv{
    position: relative;
    width: 100%;
    margin-top: 80px;
    height: 305px;
}

.business-mv-wrapper{
    position: relative;
    width: 90%;
    height: 100%;
    max-width: 1150px;
    margin: 0 auto;
    margin-top: 10px;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
@media (min-width: 1281px) {
        .business-mv-wrapper{
        max-width: 90%;
        }
}

.business-mv-wrapper > .path{
    position: absolute;
    top: 10px;
    width: auto;

    display: flex;
    align-items: center;
    gap: 10px;
    color: #ffffff;
    font-size: 14px;
    border-bottom: 1px solid #ffffff;
    padding-bottom: 5px;
}

.business-mv > .pc-mv, .sp-mv{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.sp-mv{
    display: none;
    height: 244px;
}

.business-mv-wrapper > .path > a{
    color: #ffffff;
    transition: 0.3s all ease;
}

.business-mv-wrapper > .mv-title-pc{
    width: 266px;
    margin-right: auto;
    margin-left: 7%;
    margin-top: auto;
    object-fit: contain;
    margin-bottom: auto;
}

.mv-title-sp{
    display: none;
    width: 152px;
    margin: 0 auto;
    object-fit: contain;
}

.main-business{
    width: 100%;
    height: 470px;
    padding: 50px 0;
    padding-top: 305px;
    background: linear-gradient(to bottom, #FFFFFF, #E5EEFF);
    position: relative;
}

.business-one{
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;

    position: absolute;
    top: 61px;
    left: 0;
    right: 0;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    box-shadow: 0 0 10px 5px hsla(0, 0%, 0%, 0.050);
}

.business-one > .other-business > .other-business-content > .other-business-title{
    max-width: 192px;
}

.business-one-img{
    width: 100%;
    object-fit: contain;
}

.business-one-sp{
    display: none;
}

.business-one > .other-business{
    background-color: #ffffff;
    box-shadow: none;
}

.ryumin-title{
    width: 195px;
    object-fit: contain;
    margin-bottom: 20px;
}

.sub-business{
    width: 100%;
    display: flex;
    flex-direction: column;
}

.sub-business > .ryumin-title{
    height: 65px;
    margin: 0 auto;
    object-fit: contain;
    margin-top: 16px;
}

.sub-business-wrapper{
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;

    display: flex;
    flex-direction: column;
    gap: 40px;
}

.pattern-one, .pattern-two{
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 36px;
    padding: 42px;

    box-shadow: 0 0 10px 5px hsla(0, 0%, 0%, 0.050);
}

.business-imgs{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    height: 100%;
}

.business-imgs > img{
    width: 100%;
    object-fit: cover;
}

.pattern-one-content{
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pattern-one-content > p{
    line-height: 1.7;
}

.sub-business-title{
    display: flex;
    align-items: center;
    gap: 12px;
}

.sub-business-title > h3{
    font-size: 28px;
}

.subtitle-line{
    width: 4px;
    height: 32px;
    object-fit: contain;
}

.pattern-two > img{
    width: 100%;
    height: 194px;
    object-fit: cover;
}

.pattern-three{
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 36px;
}

.pattern-three-business{
    height: 228px;
    padding: 3rem;
    box-shadow: 0 0 10px 5px hsla(0, 0%, 0%, 0.050);
}

.business-divider-line{
    height: 1px;
    width: 105px;
    margin: 30px auto;
    background-color: #8e8e8e;
}

.other-business{
    width: 100%;
    height: auto;

    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 0 10px 5px hsla(0, 0%, 0%, 0.050);

    position: relative;
}

.triangle-up, .triangle-down{
    width: 60px;
    object-fit: contain;
    position: absolute;
}

.triangle-up{
    top: 0;
    left: 0;
    margin-right: auto;
}

.triangle-down{
    bottom: 0;
    right: 0;
    margin-left: auto;
}

.other-business-content{
    width: 73%;
    margin: 27px auto 35px auto;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: flex-start;
}

.other-business-title{
    width: 528px;
    object-fit: cover;
}

.other-business-content > p{
    font-size: 22px;
}

@media (max-width: 768px) {

    .business-mv{
        margin-top: 70px;
        height: 248px;
    }

    .pc-mv{
        display: none;
    }

    .business-mv > .sp-mv{
        display: block;
        height: 100%;
    }

    .business-mv-wrapper > .path{
        font-size: 11px;
        gap: 5px;
    }

    .mv-title-pc{
        display: none;
    }

    .mv-title-sp{
        display: block;
        margin: auto;
    }

    .main-business {
        width: auto;
        height: auto;
        padding: 47px 0;
    }

    .business-one-img{
        display: none;
    }

    .business-one-sp{
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .business-one{
        position: relative;
        top: 0;
        gap: 24px;
        box-shadow: none;
    }

    .business-one > .other-business{
        box-shadow: 0 0px 10px 5px hsla(0, 0%, 0%, 0.050);
    }

    .business-one > .other-business > .other-business-content{
        margin: 2.5rem auto;
        gap: 15px;
    }

    .business-one > .other-business > .other-business-content > .other-business-title{
        max-width: 120px;
    }

    .sub-business-wrapper{
        margin-bottom: 58px;
    }

    .sub-business > .ryumin-title{
        height: auto;
        width: 165px;
        margin: 35px auto;
    }

    .sub-business-title > h3{
        font-size: 22px;
    }

    .pattern-one, .pattern-two, .pattern-three{
        grid-template-columns: 1fr;
    }

    .pattern-one, .pattern-two{
        gap: 0;
    }

    .pattern-three-business{
        height: 100%;
        grid-auto-columns: 1fr;
        gap: 1rem;
    }

    .pattern-one, .pattern-two, .pattern-three-business{
        padding: 0;
    }

    .pattern-one-content{
        padding: 1.5rem;
    }

    .business-imgs > img{
        height: 100%;
        object-fit: cover;
    }

    .pattern-two > img{
        width: 100%;
        height: 170px;
        object-fit: cover;
    }

    .business-divider-line{
        margin: 0 auto;
    }

    .other-business-content{
        width: 95%;
        margin: 4.5rem auto;
        align-items: center;
        gap: 38px;
    }

    .other-business-content > p{
        width: 88%;
        margin: 0 auto;
        font-size: 16px;
        margin-right: 12px;
        line-height: 1.7;
    }

    .other-business-title{
        width: 95%;
        max-width: 330px;
    }

    .triangle-up, .triangle-down{
        width: 50px;
    }
}

@media (max-width: 768px) {
    .business-imgs > img{
        width: 100%;
        object-fit: cover;
    }

    .pattern-one, .pattern-two, .pattern-three{
        display: flex;
        flex-direction: column;
    }

    .pattern-one-content{
        padding: 0;
        margin: 1rem;
        gap: 0;
    }

    .sub-business-title{
        margin-bottom: 16px;
    }
}



/* お問い合わせページCSS  RECRUIT CSS*/

.recruit-mv{
    width: 100%;
    margin-top: 80px;
}

.recruit-mv-wrapper{
    width: 100%;
    position: relative;
}

.recruit-mv-wrapper > .path{
    position: absolute;
    top: 10px;
    width: auto;
    margin-left: 5%;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    border-bottom: 1px solid #0028B5;
    padding-bottom: 5px;
    color: #0028B5;
    z-index: 1;
}

.recruit-mv-wrapper > .pc-mv,
.recruit-mv-wrapper > .sp-mv,
.recruit-mv-wrapper > .tablet-mv{
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.recruit-mv-wrapper > .sp-mv{
    display: none;
}

.recruit-mv-wrapper > .tablet-mv{
    display: none;
}

.recruit-mv-wrapper > .path > a{
    color: #0028B5;
    transition: 0.3s all ease;
}

.foundation{
    height: 635px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    background-image: url(/assets/images/recruit/foundation_bg.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: bottom;
}

.foundation-wrapper{
    width: 90%;
    max-width: 1000px;
    margin: 0 auto;
    line-height: 1.7;
}

.foundation-title{
    margin-bottom: 36px;
}

.foundation-title > h3{
    font-size: 18px;
    color: #0028B5;
    text-transform: uppercase;
    font-style: italic;
    line-height: 1;
    font-weight: 800;
}

.foundation-title > h2{
    font-size: 30px;
    font-weight: 500;
}

.foundation-content > p{
    font-weight: 500;
}

.foundation-content > p > span{
    color: #0028B5;
    text-decoration: underline;
    font-weight: 500;
}

.job-details-table{
    width: 90%;
    max-width: 1000px;
    margin: 40px auto 55px auto;
    border: 1px solid #b0b0b0;
}

.row{
    display: grid;
    grid-template-columns: 1fr 3fr;
    border-bottom: 1px solid #b0b0b0;
}

.job-details-table > .row:nth-last-child(1){
    border-bottom: 0;
}

.job-details-table > .row:nth-last-child(9) .content-col ul li{
    display: grid;
    grid-template-columns: 50px 1fr;
}

.job-details-table > .row:nth-last-child(9) .content-col ul li br{
        display: none;
}

.job-details-table > .row:nth-last-child(7) .content-col ul li br{
        display: none;
}

.job-details-table > .row:nth-last-child(2) .content-col ul li br{
    display: none;
}

.color-col{
    background-color: #F2F6FF;
    text-align: center;
    border-right: 1px solid #b0b0b0;
    font-weight: 500;
    padding: 10px 0;
    padding-top: 13px;
}


.color-col > p > br{
    display: none;
}

.content-col > p > br, .content-col > p > span > br, .content-col > br{
    display: none;
}

.content-col > ul{
    list-style: none;
}

.list-dot{
    display: block;
    width: 3px;
    height: 3px;
    border-radius: 5px;
    background-color: #000000;
}

.job-details-table > .row:nth-last-child(8) .content-col > ul li{
    display: grid;
    grid-template-columns: 3px 1fr;
    align-items: center;
    gap: 7px;
}

.job-details-table > .row:nth-last-child(5) > .content-col > ul{
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.job-details-table > .row:nth-last-child(5) > .content-col > ul > li:nth-child(3) {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.job-details-table > .row:nth-last-child(4) .content-col ul li br{
    display: none;
}

.job-details-table > .row:nth-last-child(3) .content-col ul li br{
    display: none;
}

.job-details-table > .row:nth-last-child(1) .content-col ul li br{
    display: none;
}

.privacy-content > ul{
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.entry-form-fields{
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding-bottom: 67px;

    background: linear-gradient(to bottom, #ffffff, #F2F6FF);
}

@media (min-width: 401px) and (max-width: 768px){
    .recruit-mv-wrapper > .tablet-mv{
        display: block;
    }

    .foundation{
        height: 100%;
        padding-top: 0;
    }
}

@media (max-width: 450px){
    .recruit-mv{
        margin-top: 70px;
    }

    .recruit-mv-wrapper > .sp-mv{
        display: block;
        height: 492px;
        object-fit: cover;
    }

    .recruit-mv-wrapper > .tablet-mv{
        display: none;
    }

    .foundation{
        padding-top: 492px;
        height: 100%;
        background-position: center;
    }
}

@media (max-width: 768px) {
    .recruit-mv{
        margin-top: 70px;
    }

    .recruit-mv-wrapper > .path{
       font-size: 11px;
       gap: 5px;
    }

    .recruit-mv-wrapper > .pc-mv{
        display: none;
    }

    .foundation-wrapper{
        margin: 5% auto;
        margin-top: 30px;
        margin-bottom: 60px;
    }

    .foundation-title{
        margin-bottom: 47px;
    }

    .foundation-title > h3{
        font-size: 16px;
        margin-bottom: 5px;
    }

    .foundation-title > h2{
        max-width: 38ch;
        font-size: 16px;
        line-height: 1.5;
        font-weight: 600;
    }

    .foundation-content > p{
        font-weight: 400;
    }

    .foundation-title > h2 > br{
        display: none;
    }

    .privacy-content{
        font-size: 12px;
        padding-right: 1.5rem;
    }

    .row{
        grid-template-columns: 120px 1fr;
    }

    .color-col{
        text-align: left;
        letter-spacing: -0.5px;
        padding: 13px;
    }

    .color-col > p > br{
        display: block;
    }

    .content-col{
        letter-spacing: 0.5px;
        padding: 10px;
    }

    .job-details-table{
        margin: 0 auto 48px auto;
    }

    .job-details-table > .row:nth-last-child(9) .content-col ul{
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .job-details-table > .row:nth-last-child(9) .content-col ul li{
        display: grid;
        grid-template-columns: 1fr;
    }

    .job-details-table > .row:nth-last-child(9) .content-col ul li br{
        display: block;
    }

    .job-details-table > .row:nth-last-child(8) .content-col ul{
        gap: 16px;
    }

    .job-details-table > .row:nth-last-child(7) .content-col ul li br{
        display: block;
    }

    .job-details-table > .row:nth-last-child(2) .content-col ul li br{
        display: block;
    }

    .list-dot{
        display: block;
        width: 3px;
        height: 3px;
        border-radius: 5px;
        margin-top: 15px;
        background-color: #000000;
    }

    .job-details-table > .row:nth-last-child(8) .content-col > ul li{
        align-items: flex-start;
    }

    .job-details-table > .row:nth-last-child(5) > .content-col > ul > li:nth-child(2),
    .job-details-table > .row:nth-last-child(5) > .content-col > ul > li:nth-child(3){
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .job-details-table > .row:nth-last-child(5) .content-col ul br{
        display: none;
    }

    .job-details-table > .row:nth-last-child(5) .content-col ul li:nth-last-child(1) br{
        display: block;
    }

    .job-details-table > .row:nth-last-child(4) .content-col ul li br{
        display: block;
    }

    .job-details-table > .row:nth-last-child(3) .content-col ul li br{
        display: block;
    }

    .job-details-table > .row:nth-last-child(1) .content-col ul li br{
        display: block;
    }

    .title-bar > p{
        font-size: 18px;
    }

    .content-col > br, .content-col > p > br, .content-col > p > span > br{
        display: block;
    }
}


/* Footer Css フッタCSS */

footer{
    margin-top: 5%;
    background-color: #333333;
    font-weight: 300;
}

.footer-logo{
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
    color: white;
    padding: 2rem 0;
}

.footer-logo > p{
    font-size: 21.5px;
    font-weight: 400;
}

.footer-logo > img{
    max-width: 552px;
    height: 80px;
    object-fit: contain;
    margin-bottom: 1rem;
}

.copyright{
    background-color: #000000;
    padding: 12px 0;
    text-align: center;
    color: white;
    font-size: 10px;
    font-weight: 500;
}

@media (max-width: 768px) {
    footer{
        padding-bottom: 80px;
    }

    .footer-logo{
        width: 90%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 0.8rem 0;
        container-type: inline-size;
    }

    .footer-logo > img{
        max-width: auto;
        width: 100%;
        height: 100%;
        margin: 0 auto;
        margin-bottom: 0;
    }

    .footer-logo > p{
        margin-top: 7px;
        font-weight: 400;
        font-size: clamp(3.38vw, 3.38vw, 3vw);
        text-align: center;
        white-space: nowrap;
    }

    .copyright{
        font-size: 10px;
    }
}

@media(min-width: 638px) and (max-width: 768px) {
    .footer-logo > p{
        font-size: 22px;
    }
}