* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.main-visual-back{
    display: flex;
    right: 0;
    position: relative;
    width: 100%;
    min-height: 600px;
    margin: 0;
    margin-bottom: 65px;
}

.visual-back-left{
    background-color: white;
    width: 33.333%;
}

.visual-back-right{
    overflow: hidden;
    width: 100%;
    margin-right: calc(50% - 50vw);
}

.main-visual{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.text-box{
    position: absolute;
    top: 50%;
    left: -2%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.8);
    padding: 40px;
}


.text-box h1 {
    font-size: 48px;
    color: #397B3B;
    margin: 0;
}

.text-box h3 {
    font-weight: bold;
    margin: 0;
    margin: 10px 0;
    font-size: 25px;
}

.text-box p {
    font-size: 18px;
    line-height: 45px;
}

.look-recruit{
    width: 80%;
    margin: 0 auto;
    margin-bottom: 92px;
    padding: 27px 0 44px 0;
    border-radius: 16px;
    background-color: #fafaf4;
    box-shadow: 0 3px 6px rgba(0,0,0,0.08);
    text-align: center;
}

.look-recruit h3{
    margin-bottom: 20px;
    color: #EF8012;
    font-size: 26px;
}

.recruit-links{
    display: flex;
    justify-content: center;
    gap: 120px;
}

.recruit-links a{
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: bold;
}

.recruit-links img{
    width: 18px;
    height: auto;
}

.recruit-links p{
    margin: 0;
    font-size: 18px;
}

.omori-overview{
    width: 100%;
    margin: 0 auto;
    margin-bottom: 115px;
    display: flex;
    align-items: center;
    gap: 57px;
}

.overview-text{
    width: 50%;
}

.overview-text h2{
    font-size: 35px;
    margin-bottom: 40px;
}

.overview-text p{
    font-size: 16px;
    line-height: 35px;
}

.overview-slider{
    width: 50%;
}

.overview-slider img{
    width: 100%;
    object-fit: cover;
}

.workenv{
    background: #fafaf4;
    width: 100vw;
    margin: 0 calc(50% - 50vw);
    padding: 78px 0;
    text-align: center;
    margin-bottom: 165px;
}

.workenv h4{
    font-size: 30px;
    margin-bottom: 36px;
}

.workenv-box{
    max-width: 1170px;
    width: 80%;
    margin: 0 auto 65px;
    display: flex;
    justify-content: space-between;
    background: #fff;
    padding: 70px 120px;
    border-radius: 16px;
    box-shadow: 0 3px 6px rgba(0,0,0,0.16);
}

.workenv-item{
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 10px;
}

.workenv-item img{
    width: 28px;
    height: 33px;
}

.workenv-item h3{
    font-size: 20px;
    line-height: 32px;
    text-align: left;
    margin: 0;
}

.icon-top::before{
    content: "";
    display: inline-block;
    background-image: url('images/leaf_icon.png');
    background-size: 28px 33px;
    background-repeat: no-repeat;
    width: 33px;
    height: 33px;
}

.suitable-people,
.work-condition {
    max-width: 1170px;
    width: 80%;
    gap: 22px;
}

.suitable-people{
    margin: 0 auto 46px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(1, 1fr);
}

.work-condition{
    margin: 0 auto 65px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(1, 1fr); 
}

.suitable-people .card{
    padding: 36px 0 10px 0; 
}

.work-condition .card{
    padding: 36px 0 23px 0; 
}

.card{
    background: #fff;
    padding: 36px 0 23px 0;
    border-radius: 16px;
    box-shadow: 0 3px 6px rgba(0,0,0,0.16);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

.card-1 img,
.card-7 img {
    width: 90px;
    height: 90px;
}

.card-2 img,
.card-3 img,
.card-4 img,
.card-5 img,
.card-6 img {
    width: 70px;
    height: 70px;
}

.card img{
    object-fit: contain;
}

.card h3{
    font-size: 20px;
    line-height: 32px;
    text-align: center;
    margin: 0;
}

.workenv-note{
    font-size: 20px;
    line-height: 40px;
    font-weight: bold;
}

.recruit {
    width: 100%;
    margin: 0 auto;
}

.recruit-item{
    margin-bottom: 90px;
}

.recruit-title {
    margin-bottom: 20px;
    font-size: 30px;
}

.recruit-header {
    background: #397B3B;
    color: #fff;
    padding: 19px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.recruit-header span{
    font-size: 26px;
    font-weight: bold;
}

.toggle-btn {
    background: none;
    border: none;
    cursor: pointer;
}

.icon-open {
    display: none;
}

.icon-close {
    display: block;
}

.toggle-btn.is-open .icon-open {
    display: block;
}

.toggle-btn.is-open .icon-close {
    display: none;
}

.recruit-body {
    background: #fff;
    display: block;
}

.recruit-body.is-open {
    display: none;
}
.intro1 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 27px 0 54px 0;
}
.intro2,
.intro3 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 42px 0 45px 0;
}


.intro-text {
    vertical-align: middle;
}

.intro-text h4{
    font-size: 20px;
    margin-bottom: 32px;
}

.intro-text p{
    font-size: 16px;
    line-height: 35px;
}

.intro-person {
    text-align: center;
    margin: 0;
}

.intro-person img {
    width: 216px;
    border-radius: 50%;
    margin-bottom: 13px;
}

.intro-person figcaption{
    font-size: 14px;
}

.work-photos {
    margin: 0 0 44px 0;
    display: grid;
    justify-content: center;
    grid-template-columns: repeat(3, 1fr);
    gap: 44px;
}

.work-photos figure{
    margin: 0;
}

.work-photos figcaption{
    text-align: center;
    font-size: 14px;
}

.work-photos img {
    width: 100%;
    height: 259px;
    object-fit: cover;
    margin-bottom: 10px;
}

.recruit-info{
    margin-right: 117px;
}

.recruit-info h3 {
    font-size: 24px;
}

.recruit-info-title{
    display: flex;
    align-items: center;
    gap: 5px;
    font-weight: bold;
    margin-bottom: 15px;
}

.recruit-info-title img{
    width: 21px;
    height: auto;
}

table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 2px solid #CECECE;
    border-radius: 10px;
    overflow: hidden;
}

th, td {
    padding: 24px 52px;
    text-align: left;
    border-right: 2px solid #CECECE;
    border-bottom: 2px solid #CECECE;
}

tr th:last-child,
tr td:last-child {
    border-right: none;
}

tr:last-child th,
tr:last-child td {
    border-bottom: none;
}

th {
    background: #F8F8F8;
    font-size: 16px;
    font-weight: bold;
}

td {
    font-size: 16px;
}

.apply-btn {
    color: #fff;
    display: block;
    margin: 55px auto 0;
    padding: 23px 94px;
    background: #2C0000;
    border: none;
    border-radius: 8px;
}
input[type=submit].apply-btn { font-size: 20px; font-weight: 500;}

.apply-btn a:hover{
    text-decoration: none;
}

.apply-btn span{
    color: #fff;
    font-size: 20px;
}

.staff-message{
    position: relative;
    overflow: visible;
    background: #EF8012;
    width: 100vw;
    margin: 0 calc(50% - 50vw);
}

.message-box{
    position: relative;
    top: 75px;
    max-width: 1170px;
    width: 80%;
    margin: 0 auto;
    background: #fffdf5;
    border-radius: 30px;
    padding: 43px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 3px 8px rgba(0,0,0,0.15);
}

.message h2{
    font-size: 40px;
    color: #EF8012;
    margin-bottom: 28px;
}

.message p{
    font-size: 16px;
    line-height: 45px;
    font-weight: bold;
}

.message-img{
    text-align: center;
}

.message-img img{
    width: 390px;
    height: 390px;
    object-fit: cover;
    border-radius: 50%;
}

.inquiry{
    margin-top: 130px;
    text-align: center;
}

.inquiry p{
    font-size: 18px;
    line-height: 35px;
    margin-bottom: 33px;
}

.inquiry-btn{
    background: #EF8012;
    border: none;
    color: #fff;
    padding: 24px 55px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    gap: 15px;
}

.inquiry-btn a:hover{
    text-decoration: none;
}

.inquiry-btn img{
    width: 30px;
    height: auto;
}

.inquiry-btn span{
    color: #fff;
    font-size: 20px;
}

.form-title h2{
    font-size: 30px;
    margin-bottom: 20px;
}

.c-form_table {
    width: 80%;
    border-width: initial;
    border-style: none;
    border-color: initial;
    border-image: initial;
}

label {
    display: inline;
}

.c-form_table th,
.c-form_table td {
    background: none;
    border: none;
    padding: 20px 10px;
    vertical-align: middle;
}

.c-form_title {
  text-align: right;
  font-weight: bold;
  white-space: nowrap;
  font-size: 20px;
}

.c-form_title label{
    font-size: 20px;
    font-weight: bold;
}

.c-form_title-must {
  margin-left: 5px;
  color: red;
}

.c-form_content {
    padding: 10px 0;
}

.c-form_content [type="text"],
 [type="tel"],
 [type="email"],
 [type="number"],
 textarea {
    height: auto;
    font-size: 20px;
}

.c-form_content p{
    margin: 0;
    margin-top: 10px;
    margin-bottom: 10px;
}

.c-input-text {
  width: 100%;
  padding: 10px;
  border-radius: 4px !important;
  box-sizing: border-box;
}

textarea.c-input-text {
  resize: vertical;
}

.c-form_note {
  font-size: 18px !important;
  margin: 5px 0;
}

.c-button_group {
  margin: 20px 0;
  text-align: center;
}

.btn-text{
    font-size: 20px;
    padding: 23px 94px;
    color: #FFF;
    
}

.c-form_table p { margin-bottom: 0;}

/* 繧ｿ繝悶Ξ繝�ヨ */

@media screen and (max-width: 1150px){
    .workenv-box{
        padding: 70px 70px;
    }
}

/* タブレット */
@media screen and (max-width: 1024px) {
    .text-box h1{
        font-size: 30px;
    }

    .text-box h3{
        font-size: 18px;
    }

    .text-box p{
        font-size: 14px;
    }

    .look-recruit{
        width: 60%;
    }

    .recruit-links {
        flex-direction: column;
        gap: 20px;
    }
       
    .recruit-links a {
        justify-content: center;
        text-align: center;
    }

    .workenv-box {
        flex-direction: column;
        padding: 30px 20px;
        width: 80%;
        max-width: none;
    }

    .workenv-item{
        justify-content: left;
        padding-left: 200px;
    }

    .workenv-item:not(:last-child) {
        margin-bottom: 30px;
    }

    .workenv-item img{
        display: block;
    }

    .workenv h4 {
        font-size: 24px;
    }

    .overview-text h2{
        font-size: 25px;
        margin-bottom: 20px;
    }

    .overview-text p{
        font-size: 14px;
    }

    .overview-text p br{
        display: none;
    }

    .intro1,
    .intro2,
    .intro3 {
        gap: 20px;
    }

    .intro-text h4{
        margin-bottom: 20px;
    }

    .intro-text p br{
        display: none;
    }

    .intro-person img{
        max-width: none;
    }

    .message-box{
        gap: 20px;
    }

    .message p br{
        display: none;
    }

    .message-img img{
        max-width: none;
    }
}

/* スマホ */
@media screen and (max-width: 767px) {
    .main-visual-back {
        flex-direction: column-reverse;
        min-height: auto;
        margin-bottom: -100px;
    }

    .visual-back-left {
        display: none;
    }

    .visual-back-right {
        width: 100%;
        height: 300px;
    }

    .text-box {
        position: static;
        margin: 0 50px;
        padding: 20px;
        transform: translateY(-30%);
    }

    .text-box br{
        display: none;
    }

    .text-box h1 {
        font-size: 26px;
        line-height: 1.4;
    }

    .text-box h3 {
        font-size: 18px;
    }

    .text-box p {
        font-size: 14px;
        line-height: 28px;
    }

    .look-recruit {
        width: 60%;
    }

    .recruit-links {
        flex-direction: column;
        gap: 20px;
    }
       
    .recruit-links a {
        justify-content: center;
        text-align: center;
    }

    .omori-overview{
        flex-direction: column;
        width: 80%;
        gap: 0;
    }

    .overview-text{
        width: 100%;
    }

    .overview-slider{
        width: 100%;
    }

    .workenv-box {
        flex-direction: column;
        padding: 30px 20px;
        width: 80%;
        max-width: none;
    }

    .workenv-item{
        justify-content: left;
        padding-left: 100px;
    }

    .workenv-item:not(:last-child) {
        margin-bottom: 10px;
    }

    .workenv-item img{
        display: block;
    }

    .workenv h4 {
        font-size: 24px;
    }

    .suitable-people{
        grid-template-columns: repeat(2, 1fr);
        width: 80%;
    }

    .work-condition {
        grid-template-columns: 1fr;
        width: 80%;
    }   

    .card h3 {
        font-size: 18px;
    }

    .workenv-note {
        font-size: 16px;
        line-height: 28px;
        padding: 0 15px;
    }

    .recruit{
        width: 80%;
    }
   
    .recruit-header span {
        font-size: 18px;
    }

    .intro1{
        flex-direction: column-reverse;
    }

    .intro2,
    .intro3 {
        flex-direction: column;
    }

    .work-photos{
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .work-photos img{
        height: 150px;
    }

    .recruit-info{
        margin-right: 0;
    }

    table th,
    table td {
        padding: 12px;
        font-size: 14px;
    }   

    .message-box {
        padding: 30px 20px;
        flex-direction: column;
    }   
    .message-img img {
        width: 180px;
        height: 180px;
    }   

    .inquiry-btn {
        padding: 12px 24px;
        font-size: 14px;
    }

    .c-form_table,
    .c-form_table tbody,
    .c-form_table tr,
    .c-form_table th,
    .c-form_table td{
        display: block;
    }

    .c-form_table{
        width: 100%;
    }

    .c-form_table th{
        width: 20%;
    }


    .c-form_table th,
    .c-form_table td{
        padding: 10px 10px;
    }
    
}


@media screen and (max-width: 575px) {
    .workenv-item{
        justify-content: left;
        padding-left: 0;
    }

    .text-box{
        margin: 0 20px;
    }
}