@charset "UTF-8";

@font-face {
    font-family: "noto-bold";
    src: url("../fonts/noto-bold.woff") format("woff");
}

@font-face {
    font-family: "noto-regular";
    src: url("../fonts/noto-regular.woff") format("woff");
}

.global-header {
    border-bottom: 1px solid #dfdfdf;
}

.global-header .wrapper {
    position: relative;
    height: 185px;
}

@media only screen and (max-width: 640px) {
    .global-header .wrapper {
        height: 55px;
    }
}

.global-header .logo {
    position: absolute;
    top: 20px;
    left: 0;
}

@media only screen and (max-width: 640px) {
    .global-header .logo {
        position: absolute;
        top: 15px;
        left: 15px;
    }

    .global-header .logo img {
        height: 35px;
    }
}

@media only screen and (min-width: 641px) {
    .global-header nav.global-nav {
        position: absolute;
        top: 195px;
        left: 0;
        margin-left: 112px;
        padding-top: 20px;
    }

    .global-header nav.global-nav .nav-title {
        position: absolute;
        top: 25px;
        left: 0;
    }
}

.contents {
    box-sizing: border-box;
    padding-top: 30px;
    padding-bottom: 60px;
    padding-left: 370px;
    min-height: 600px;
    line-height: 1.8;
}

@media only screen and (max-width: 640px) {
    .contents {
        padding-top: 80px;
        padding-right: 10px;
        padding-bottom: 20px;
        padding-left: 10px;
        min-height: 0;
    }
}

.contents h1 {
    margin-top: 10px;
    font-weight: bold;
    font-size: 32px;
    line-height: 1.3;
}

@media only screen and (max-width: 640px) {
    .contents h1 {
        font-size: 28px;
    }
}

.contents a:hover img {
    opacity: 0.7;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
}

.contents h1 + * {
    margin-top: 50px;
}

@media only screen and (max-width: 640px) {
    .contents h1 + * {
        margin-top: 20px;
    }
}

.contents h2 {
    position: relative;
    margin-top: 50px;
    font-weight: bold;
    font-size: 28px;
    line-height: 1.3;
}

.contents h2 span {
    display: inline-block;
    padding-bottom: 5px;
    border-bottom: 3px solid #ff6c00;
    font-weight: bold;
}

.contents h2 small {
    display: inline-block;
    margin: 0 0 0 20px;
    font-size: 16px;
}

@media only screen and (max-width: 640px) {
    .contents h2 {
        margin-top: 30px;
        font-size: 24px;
    }
}

.contents h2 + * {
    margin-top: 20px !important;
}

@media only screen and (max-width: 640px) {
    .contents h2 + * {
        margin-top: 20px;
    }
}

.contents h3 {
    margin-top: 20px;
    font-weight: bold;
    font-size: 20px;
}

.contents h3 + * {
    margin-top: 10px;
}

.contents p {
    margin-top: 1em;
    font-size: 14px;
}

@media only screen and (max-width: 640px) {
    .contents p {
        font-size: 13px;
    }
}

.contents section:after {
    display: block;
    clear: both;
    content: "";
}

.contents .btn {
    display: inline-block;
    float: right;
    margin: 1em 0 0;
}

.contents .btn a {
    position: relative;
    display: block;
    padding: 15px 30px 15px 15px;
    border-radius: 3px;
    background: #34a1db;
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    font-size: 14px;
    line-height: 1;
}

.contents .btn a:before {
    position: absolute;
    top: 50%;
    right: 15px;
    width: 12px;
    height: 2px;
    background: #fff;
    content: "";
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
}

.contents .btn a:after {
    position: absolute;
    top: 50%;
    right: 16px;
    margin: -4px 0 0;
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    content: "";
}

.contents .btn a:hover {
    background: #ff6c00;
}

@media only screen and (max-width: 640px) {
    .contents .btn {
        display: block;
        float: none;
        text-align: center;
    }

    .contents .btn a {
        display: inline-block;
    }
}


.contents .back {
    margin-top: 50px;
}

.contents ul {
    margin-top: 1em;
}

.contents ul:first-child {
    margin-top: 0;
}

.contents li {
    font-size: 14px;
}

.contents ul.normal li {
    padding-left: 1em;
    text-indent: -1em;
}

.contents ul.normal li:before {
    content: "・";
}

@media only screen and (max-width: 640px) {
    .contents ul.normal {
        font-size: 13px;
    }
}

.contents ul.sitemap li {
    margin-top: 1em;
}

.contents ul.sitemap li li {
    margin-left: 1em;
}

.contents dl.news {
    border-bottom: 1px solid #dbdbdb;
    font-size: 14px;
}

@media only screen and (max-width: 640px) {
    .contents dl.news {
        font-size: 13px;
    }
}

.contents dl.news dt {
    padding: 15px 0 0 0;
    border-top: 1px solid #dbdbdb;
    color: #ff6c00;
}

.contents dl.news dd {
    margin-top: -1.8em;
    padding-bottom: 15px;
    padding-left: 7em;
}

.contents img.full {
    width: 100%;
}

.contents .image {
    margin-top: 50px;
}

@media only screen and (max-width: 640px) {
    .contents .image {
        margin-top: 30px;
    }
}

.contents .map {
    margin-top: 20px;
}

.contents.msg p {
    font-size: 16px;
    line-height: 2;
}

.contents.msg .tagline {
    font-weight: bold;
    font-size: 30px;
}

.contents .recruit-banner {
    margin-top: 20px;
    max-width: 100%;
}

@media only screen and (max-width: 640px) {
    .contents .recruit-banner img {
        width: 100%;
    }
}

.contents .detail img {
    margin-top: 10px;
    max-width: 100%;
}

@media only screen and (max-width: 640px) {
    .contents .detail img {
        width: 100%;
        height: auto;
    }
}

.contents .localnav {
    margin-top: 20px;
}

.contents .localnav li {
    border-right: 1px solid #dbdbdb;
    border-bottom: 1px solid #dbdbdb;
    border-left: 1px solid #dbdbdb;
}

.contents .localnav li:first-child {
    border-top: 1px solid #dbdbdb;
}

.contents .localnav li.current a {
    background-color: #eee;
    background-image: none;
}

.contents .localnav a {
    display: block;
    padding: 10px;
    background-image: url(../images/icon-arrow.svg);
    background-position: right 15px center;
    background-repeat: no-repeat;
    text-decoration: none;
}

.wp-pagenavi {
    margin-top: 40px;
    text-align: center;
}

@media only screen and (max-width: 640px) {
    .wp-pagenavi {
        margin-top: 30px;
    }
}

.wp-pagenavi span,
.wp-pagenavi a {
    display: inline-block;
    margin: 10px 10px 0 10px;
    padding: 10px 15px;
    border: 1px solid #dbdbdb;
    text-decoration: none;
    font-size: 14px;
    line-height: 1;
}

.wp-pagenavi a:hover {
    opacity: 0.7;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
}

.wp-pagenavi .current {
    background-color: #ff6c00;
    color: #fff;
}

.topicpath ul {
    font-size: 0;
}

.topicpath li {
    display: inline-block;
    font-size: 14px;
}

.topicpath li:after {
    display: inline-block;
    margin: 0 0.8em;
    content: ">";
}

.topicpath li:last-child:after {
    content: "";
}

.topicpath a {
    color: #ff6c00;
    text-decoration: none;
}

table.default {
    width: 100%;
    border-bottom: 1px solid #dbdbdb;
}

table.default th,
table.default td {
    padding: 15px;
    border-top: 1px solid #dbdbdb;
    font-size: 16px;
}

@media only screen and (max-width: 640px) {

    table.default th,
    table.default td {
        padding: 10px;
        font-size: 13px;
    }
}

table.default th {
    width: 1em;
    white-space: nowrap;
    font-weight: bold;
}

form dl {
    margin-top: 20px;
    font-size: 14px;
}

@media only screen and (max-width: 640px) {
    form dl {
        font-size: 13px;
    }
}

form dt {
    margin-top: 10px;
}

form dd {
    margin-top: 5px;
}

form .required:after {
    display: inline-block;
    margin-left: 0.3em;
    color: #f00;
    content: "*";
}

form input[type="text"],
form input[type="email"],
form textarea {
    box-sizing: border-box;
    padding: 10px;
    width: 100%;
    border: none;
    background-color: #eee;
    font-size: 14px;
}

@media only screen and (max-width: 640px) {

    form input[type="text"],
    form input[type="email"],
    form textarea {
        font-size: 13px;
    }
}

form textarea {
    height: 7em;
}

form .buttons {
    margin-top: 20px;
    text-align: center;
}

form span.error {
    display: block;
    margin-top: 5px;
    color: #f00;
}

form button,
form input[type="submit"] {
    display: inline-block;
    padding: 20px 80px;
    border: 1px solid #ccc;
    border-radius: 50px;
    background-color: #fff;
    letter-spacing: 0.3em;
    font-weight: bold;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    -webkit-transition: opacity 0.3s linear;
    transition: opacity 0.3s linear;

    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

form button:hover,
form input[type="submit"]:hover {
    opacity: 0.5;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
}

form button .icon,
form input[type="submit"] .icon {
    position: relative;
    top: -0.1em;
    display: inline-block;
    margin-right: 0.3em;
    vertical-align: middle;
}

form button .icon img,
form input[type="submit"] .icon img {
    width: 10px;
}

.col2 {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;

    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
}

@media only screen and (max-width: 640px) {
    .col2 {
        display: block;
    }
}

.col2 .col {
    width: 48%;
    background-color: #fff;
}

@media only screen and (max-width: 640px) {
    .col2 .col {
        width: 100%;
    }
}

.fade.hide {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
}

figure figcaption {
    text-align: center;
    font-size: 14px;
}

.dl-table {
    display: flex;
    font-size: 14px;

    flex-wrap: wrap;
}

.dl-table dt {
    padding: 10px 0;
    width: 25%;
    border-bottom: 1px solid #dbdbdb;
}

.dl-table dd {
    padding: 10px 0;
    width: 75%;
    border-bottom: 1px solid #dbdbdb;
}

@media only screen and (max-width: 640px) {
    .dl-table dt {
        padding: 10px 0;
        width: 35%;
    }

    .dl-table dd {
        padding: 10px 0;
        width: 65%;
    }
}

.box {
    margin: 20px 0 0;
    padding: 20px;
    border: 3px solid #ff6c00;
    text-align: center;
    font-size: 14px;
}

.box strong {
    display: block;
    font-size: 16px;
}

@media only screen and (max-width: 640px) {
    .box {
        margin: 15px 0 0;
        padding: 15px;
        font-size: 12px;
    }

    .box strong {
        font-size: 14px;
    }
}

.list-update{ padding: 1em 0 0;}
.list-update > li{ border-bottom: 1px solid #dbdbdb;}
.list-update > li:first-child{ border-top: 1px solid #dbdbdb;}
.list-update a{ display: flex; padding: 15px 0; text-decoration: none;}
.list-update time{ padding: 0 15px 0 0; color: #ff6c00; font-size: 100%;}
.list-update p{ margin: 0; text-decoration: underline;}

@media only screen and (max-width: 640px) {
    .list-update{ padding: 1em 0 0; line-height: 1.5;}
    .list-update a{ display: block;}
    .list-update time{display: block; padding: 0; }
}

.list-bn{ display: flex; margin: 1em -1em 0; padding: 2em 0 0;}
.list-bn *{ box-sizing: border-box;}
.list-bn > li{ padding: 0 1em; width: 50%;}
.list-bn a{ position: relative; display: flex; padding: 30px; width: 100%; border-radius: 10px; box-shadow: rgba(0, 0, 0, .1) 0px 4px 12px; text-decoration: none; font-weight: bold; font-size: 24px; align-items: center;}
.list-bn a:before{ position: absolute; top: 50%; right: 22px; width: 25px; height: 25px; border-radius: 100%; background: #ff6c00; content: ""; transform: translate(0,-50%);}
.list-bn a:after{ position: absolute; top: 50%; right: 30px; border-width: 3.5px 0 3.5px 6px; border-style: solid; border-color: transparent transparent transparent #fff; content: ""; transform: translate(0,-50%);}

@media only screen and (max-width: 640px) {
    .list-bn{ display: block; margin: 0; padding: 0;}
    .list-bn > li{ padding: 1em 0 0; width: 100%;}
    .list-bn a{ position: relative; display: flex; padding: 30px 20px; width: 100%; font-size: 20px;}
    .list-bn a:before{ right: 15px; width: 20px; height: 20px;}
    .list-bn a:after{ right: 22px; border-width: 3px 0 3px 5px;}
}

.message{ box-sizing: border-box; margin: 3em 0 0; width: 100%;}
.message a{ display: flex; flex-direction: row-reverse; overflow: hidden; width: 100%; border-radius: 10px; box-shadow: rgba(0, 0, 0, .1) 0px 4px 12px; text-decoration: none;}
.message a *{ box-sizing: border-box;}
.message .pc{ display: block;}
.message .sp{ display: none;}
.message figure{ width: 50%;}
.message figure img{ width: 100%; vertical-align: bottom;}
.message figcaption{ display: none;}
.message .detail{ padding: 30px 0 0 20px; width: 50%; background: #fff; letter-spacing: normal;}
.message h2{ display: inline-block; margin: 0; padding: 0 0 5px; border-bottom: 3px solid #ff6c00; font-size: 22px;}
.message p{ font-size: 14px;}
.message .more{ margin: 1em 0 0; font-size: 14px;}
.message .more span{ position: relative; display: inline-block; padding: 0 20px 0 0; text-decoration: none; font-weight: bold; font-size: 14px;}
.message .more span:before{ position: absolute; top: 50%; right: 0; width: 14px; height: 14px; border-radius: 100%; background: #ff6c00; content: ""; transform: translate(0,-50%);}
.message .more span:after{ position: absolute; top: 50%; right: 4px; border-width: 2px 0 2px 4px; border-style: solid; border-color: transparent transparent transparent #fff; content: ""; transform: translate(0,-50%);}

@media only screen and (max-width: 640px) {
    .message{ margin: 2em 0 0;}
    .message a{ display: block;}
    .message .pc{ display: none;}
    .message .sp{ display: block;}
    .message figure{ position: relative; width: 100%;}
    .message figcaption{ position: absolute; top: 50%; left: 20px; display: block; transform: translate(0,-50%);}
    .message .detail{ padding: 20px; width: 100%;}
    .message .detail h2{ display: none;}
    .message h2{ padding: 0; border: none; font-size: 20px;}
    .message p{ margin: 0 !important; font-size: 14px;}
    .message .more{ font-size: 12px;}
}

.message-body *{ box-sizing: border-box;}
.message-body .lead{ padding: 60px 0 60px 30px; background: url("/images/recruit/mv.jpg") no-repeat 0 0 / cover; font-weight: bold; font-size: 18px;}
.message-body .right{ text-align: right;}
.message-body .right span{ font-size: 150%;}

@media only screen and (max-width: 640px) {
    .message-body .lead{ margin: 0 -10px; padding: 20px 15px; background: url("/images/recruit/mv.jpg") no-repeat top right / cover; font-size: 13px;}
    .message-body .right{ text-align: right;}
    .message-body .right span{ font-size: 150%;}
}

.list-job *{ box-sizing: border-box;}
.list-job > li{ margin: 1em 0 0;}
.list-job a{ position: relative; display: flex; flex-direction: column; padding: 30px; width: 100%; border-radius: 10px; box-shadow: rgba(0, 0, 0, .1) 0px 4px 12px; text-decoration: none; align-items: flex-start;}
.list-job a:before{ position: absolute; top: 50%; right: 22px; width: 25px; height: 25px; border-radius: 100%; background: #ff6c00; content: ""; transform: translate(0,-50%);}
.list-job a:after{ position: absolute; top: 50%; right: 30px; border-width: 3.5px 0 3.5px 6px; border-style: solid; border-color: transparent transparent transparent #fff; content: ""; transform: translate(0,-50%);}
.status span{ display: inline-block; padding: 4px 16px; background: #ff6c00; color: #fff; text-align: center; font-weight: 700; font-size: 12px; line-height: 1;}
.status2 span{ background: #eee; color: #666;}
.list-job h3{ margin: 0; font-size: 20px;}

@media only screen and (max-width: 640px) {
    .list-job a{ display: block; padding: 20px;}
    .list-job a:before{ right: 15px; width: 20px; height: 20px;}
    .list-job a:after{ right: 22px; border-width: 3px 0 3px 5px;}
    .status{ width: 100%;}
    .status span{ font-size: 10px;}
    .list-job h3{ font-size: 20px;}
}

.dl-contact{ margin: 3em 0 0; padding: 45px; background: #eee; text-align: center;}
.dl-contact dt{ font-weight: bold; font-size: 20px;}
.dl-contact dd{ margin: 1em 0 0;}

@media only screen and (max-width: 640px) {
    .dl-contact{ margin: 2em 0 0; padding: 20px 0;}
    .dl-contact dt{ font-size: 16px;}
    .dl-contact dd{ margin: 10px 0 0; font-size: 12px;}
}

.contents .ttl-job{ margin: 0; padding: 0 0 15px; border-bottom: 3px solid #ff6c00; line-height: 1.8;}

@media only screen and (max-width: 640px) {
    .contents .ttl-job{ padding: 0 0 10px;}
}

.table-job{ width: 100%; font-size: 14px;}
.table-job th{ padding: 30px 15px 30px 0; width: 25%; border-bottom: 1px solid #dbdbdb; vertical-align: top; font-weight: bold;}
.table-job td{ padding: 30px 0; border-bottom: 1px solid #dbdbdb; vertical-align: top;}

@media only screen and (max-width: 640px) {
    .table-job{ font-size: 12px; line-height: 1.5;}
    .table-job th{ display: block; padding: 20px 0 0; width: 100%; border-bottom: none; font-size: 14px;}
    .table-job td{ display: block; padding: 10px 0 20px; width: 100%; border-bottom: 1px solid #dbdbdb;}
}

.app{ margin: 3em 0 0; text-align: center;}
.app a{ position: relative; display: inline-block; padding: 30px 90px; border-radius: 10px; background: #8be7f8; text-decoration: none; font-weight: bold; font-size: 24px; line-height: 1;}
.app a:before{ position: absolute; top: 50%; right: 22px; width: 25px; height: 25px; border-radius: 100%; background: #fff; content: ""; transform: translate(0,-50%);}
.app a:after{ position: absolute; top: 50%; right: 29px; border-width: 5px 0 5px 8px; border-style: solid; border-color: transparent transparent transparent #000; content: ""; transform: translate(0,-50%);}
.app p{ margin: 0; padding: 15px 0; border: 3px solid #ccc; color: #999; font-size: 18px;}

@media only screen and (max-width: 640px) {
    .app{ margin: 2em 0 0;}
    .app a{ padding: 20px 60px; font-size: 20px;}
    .app a:before{ right: 15px; width: 20px; height: 20px;}
    .app a:after{ right: 22px; border-width: 3px 0 3px 5px;}
    .app p{ padding: 10px 0; font-size: 14px;}
}

.slider-wrap{ margin: 20px 0 0;}
.slider .slick-slide img{ width: 100%; height: auto;}