@charset "UTF-8";
:root {
    --main-font-color: #424242;
    --sub-font-color: #2A402F;
    --accent-color: #F08C1E;
    --bg-white: #fff;
    --green-01: rgb(0, 101, 50);
    --green-02: #5da66e;
    --gray-01: rgba(66, 66, 66, 0.5);
    --gray-02: #e9e9e9;
    --gradient-green: linear-gradient(transparent, #818c844d 44%, #00653280);
    --gradient-green2: rgba(0, 101, 50, 0.2);
    --container-narrow: 970px;
    --container-wide: 1210px;
    --container-padding: 16px;
}
body {
    font-size: 14px;
    letter-spacing: 0.1em;
    line-height: 1.88;
}
/*--------------------------------
 見出し
---------------------------------*/
.top-h2>h2 {
    font-size: 22px;
    line-height: 1.3;
}
.top-h2 {
    padding-top: 33px;
    row-gap: 9px;
    margin-bottom: 24px;
}
.l-h3 {
    font-size: 20px;
    margin-bottom: 9px;
    line-height: 1.4;
}
.l-h3-curtain {
    font-size: 16px;
}
@media screen and (max-width: 520px) {
    .l-h3-curtain {
        line-height: 1.8;
    }
}
.l-h4 {
    font-size: 16px;
}
.l-h4-under {
    padding-bottom: 6px;
}
/*--------------------------------
 btn
---------------------------------*/
.btn01 a {
    width: 220px;
}
.btn01 a::after {
    width: 21px;
    height: 21px;
}
/*--------------------------------
 流れる文字
---------------------------------*/
.double-content {
    font-size: 148px;
}
/*--------------------------------
 テーブル
---------------------------------*/
.table1 tr {
    display: flex;
    flex-direction: column;
}
.table1 th,
.table1 td {
    padding: 20px;
    border-top: none;
    border-bottom: none;
}
.table1 th {
    width: 100%;
    text-align: left;
}
/*--------------------------------
 リスト
---------------------------------*/
.ul-list li::before {
    top: 0.8em;
    left: -18px;
    transform: translateY(0);
}
/*--------------------------------
 header
---------------------------------*/
header,
.header--active {
    padding: 12px;
}
header .logo a img {
    width: 120px;
    height: auto;
}
.btn-menu {
    height: 54px;
    right: 0;
}
.header__list .global-nav {
    width: 300px;
    right: -300px;
}
.header__list .global-nav .nav-list {
    font-size: 15px;
    padding: 60px 30px 30px 30px;
}
header .nav-list {
    gap: 24px;
}
/*--------------------------------
 トップぺージ
---------------------------------*/
/* メインビジュアル */
.top-wrapper .main-visual .main-visual-text {
    font-size: 36px;
}
.top-wrapper .main-visual .main-visual-text .catch-text span.line1 {
    margin-bottom: 0.2em;
}
.top-wrapper .main-visual .main-visual-text .catch-text span {
    padding: 0 1.5em;
}
@media screen and (max-width: 450px) {
    .top-wrapper .main-visual .main-visual-text {
        font-size: 30px;
    }
    .top-wrapper .main-visual .main-visual-text .catch-text span {
        padding: 0 1.3em;
    }
}
@media screen and (max-width: 350px) {
    .top-wrapper .main-visual .main-visual-text {
        font-size: 26px;
    }
    .top-wrapper .main-visual .main-visual-text .catch-text span {
        padding: 0 0.5em;
    }
    .top-wrapper .main-visual .main-visual-text .catch-text span.line1 {
        margin-bottom: 0.5em;
    }
}
/* メインビジュアル_end */
.top-section:first-child {
    padding-top: 48px;
}
.top-about .flex .flex-text,
.top-result .flex .flex-text,
.top-recruit .flex .flex-text {
    font-size: 14px;
}
.about-flex-item {
    flex: 0 0 46%;
    margin-bottom: 21px;
}
.top-about-list {
    margin-top: -210px;
}
.about-flex-item figcaption>img {
    width: 21px;
    height: 21px;
}
.top-section:first-child {
    padding-bottom: 15px;
}
.about-flex-item-width {
    flex: auto;
    width: 100%;
}
.about-flex-item-width figure figcaption {
    width: 42%;
}
.about-flex-item-width .img-wrap {
    aspect-ratio: 326 / 154;
}
.top-about-bg {
    height: 160px;
}
.top-section {
    padding: 60px 0;
}
.top-result-flex {
    flex-direction: column;
}
.top-result .flex {
    margin-bottom: 24px;
}
.top-result-flex .img-area,
.top-result-flex .text-area {
    width: 100%;
}
.top-result-flex .img-area>img {
    aspect-ratio: 326 / 154;
    min-height: 130px;
    object-fit: cover;
}
.link-btn {
    padding-bottom: 12px;
}
.link-btn>img {
    width: 21px;
    height: 21px;
}
.top-result-flex .text-area>ul a {
    font-size: 14px;
}
.top-result-flex .text-area>ul li {
    margin-bottom: 18px;
}
.top-result-flex .text-area {
    gap: 24px;
}
.top-wrapper .top-recruit {
    height: 70vh;
}
.top-recruit .flex .flex-text {
    margin-bottom: 24px;
}
.top-recruit-contents {
    padding: 32px;
    max-width: 75%;
}
@media screen and (max-width: 440px) {
    .top-recruit-contents {
        max-width: 86%;
    }
}
/* CTA */
.cta {
    padding-top: 155px;
}
.cta-contents {
    padding: 41px 27px;
}
.cta-contents .cta-text {
    font-size: 14px;
}
.cta-contents .flex {
    gap: 24px;
}
.cta-tel span,
.cta-form span {
    padding-left: 1.8em;
    font-size: 16px;
}
.cta-form span {
    font-size: 14px;
}
.cta dl dt {
    font-size: 12px;
}
.cta-btn {
    padding: 14px;
}
.cta dl dd:first-of-type {
    margin-bottom: 18px;
}
.cta-tel:before,
.cta-form:before,
.cta-form::after {
    width: 21px;
    height: 21px;
}
.cta .text-flowing {
    top: -230px;
}
/* CTA_end */
/* footer */
.footer-contents {
    padding: 200px 0 40px 0;
}
footer .footer-logo img {
    width: 140px;
    height: auto;
}
.footer-sitemap a {
    font-size: 12px;
}
.footer-sitemap ul li::after {
    margin: 12px;
}
.footer-contents .flex {
    gap: 9px;
}
.footer-sitemap ul {
    padding: 0 0 24px 0;
}
.footer-contents address {
    font-size: 12px;
}
@media screen and (max-width: 330px) {
    .map-icon {
        display: block;
        margin-left: 0;
    }
}
.footer-sitemap dt {
    width: 18%;
}
.footer-sitemap dd {
    width: 82%;
}
.footer-sitemap dl a {
    font-size: 14px;
}
footer .copy {
    font-size: 10px;
}
/* footer_end */
/* pagetop */
.page-top {
    right: 12px;
    bottom: 12px;
}
.page-top__link {
    width: 42px;
    height: 42px;
}
/* pagetop_end */
/*--------------------------------
 下層ぺージ_共通
---------------------------------*/
.lower-section,
.anchor-area,
.read {
    margin: 60px 0;
}
.l-about .lower-section:nth-child(odd),
.l-result .lower-section:nth-child(even) {
    padding: 60px 0;
}
.breadcrumb {
    font-size: 13px;
    padding-left: 5%;
}
.breadcrumb__list li:after {
    padding: 0 1em;
}
.breadcrumb__list ol {
    flex-wrap: wrap;
    row-gap: 0.5em;
}
/* メインビジュアル */
.lower-mv-h1 {
    padding-right: 5%;
}
.lower-mv-h1 h1 {
    font-size: 30px;
}
.lower-mv-h1 p {
    font-size: 16px;
}
@media screen and (max-width: px) {}
/*--------------------------------
 下層ぺージ
---------------------------------*/
/* 404 */
.heading-error {
    font-size: 25px;
    margin-bottom: 38px;
}
.text-error {
    margin-bottom: 58px;
}
/* お問い合わせ */
.l-contact .desc {
    margin-bottom: 48px;
}
.timeline-003 {
    width: 100%;
    margin: 42px auto;
    font-size: 12px;
}
.timeline-003 li::before {
    width: 21px;
    height: 21px;
    margin-bottom: 9px;
}
.timeline-003 li:not(:last-child)::after {
    top: 9px;
}
/* フォーム */
.form .form__require {
    font-size: 10px;
}
.form__radio-group {
    row-gap: 3px;
}
.form__item input[type="radio"] {
    width: 18px;
    height: 18px;
    margin-right: 3px;
}
.form__item input[type="radio"]::before {
    width: 10px;
    height: 10px;
}
.form .form__item {
    padding-bottom: 34px;
}
.form .form__textarea {
    height: 180px;
}
/* フォーム _end */
.scroll-area {
    padding: 18px 21px;
}
.policy-section>h3 {
    font-size: 14px;
    margin-bottom: 12px;
}
/* 会社概要 */
.anchor-btn a {
    width: auto;
}
.timeline-list-item .date {
    font-size: 18px;
}
.timeline-list-item .content .content-title,
.timeline-list-item .content .content-text {
    font-size: 14px;
}
.timeline-list-item .content {
    padding: 21px 27px;
    margin: 0 0 21px 23px;
}
.timeline-list-item .content::before {
    top: 10px;
    left: -30px;
    width: 11px;
    height: 11px;
}
.timeline-list-item .content .content-title {
    margin-bottom: 6px;
}
@media screen and (max-width: 390px) {
    .timeline-list-item .date {
        font-size: 16px;
        width: 25%;
    }
    .timeline-list-item .content {
        padding: 13px 21px;
        width: 75%;
        margin: 0 0 21px 12px;
    }
    .timeline-list-item .content::before {
        left: -19px;
    }
}
.l-about .lower-section .main-img {
    margin-bottom: 16px;
}
.more-lower-section {
    margin: 41px 0;
}
@media screen and (max-width: 500px) {
    .grid-container {
        grid-template-columns: repeat(1, 1fr);
    }
}
.card {
    gap: 0.5rem;
}
.grid-container {
    gap: 1.4rem 1rem;
}
.card dl dd {
    margin-bottom: 9px;
}
.readmore {
    width: 220px;
    margin: 48px auto 0;
    font-size: 14px;
}
@media screen and (max-width: 200px) {
    .readmore {
        width: 180px;
    }
}
@media screen and (max-width: 450px) {
    /* スライダー矢印 */
    .swiper-slide-container .swiper-button-prev,
    .swiper-slide-container .swiper-button-next {
        width: 43px;
        height: 43px;
    }
    .swiper-slide-container .swiper-button-prev::after,
    .swiper-slide-container .swiper-button-next::after {
        width: 43px;
        height: 43px;
    }
    /* 前への矢印 */
    .swiper-slide-container .swiper-button-prev {
        left: -12px;
    }
    /* 次への矢印 */
    .swiper-slide-container .swiper-button-next {
        right: -12px;
    }
}
.vehicle-area h3 {
    font-size: 20px;
    margin-bottom: 9px;
    line-height: 1.4;
}
.flex-item {
    margin-top: 15px;
    gap: 21px;
}
.sdgs-text {
    gap: 21px;
}
@media screen and (max-width: 450px) {
    .sdgs-icon {
        gap: 21px;
        flex-wrap: wrap;
    }
    .sdgs-icon img {
        width: 70px;
        height: 70px;
    }
}
@media screen and (max-width: 280px) {
    .sdgs-icon {
        gap: 18px;
    }
    .sdgs-icon img {
        width: 55px;
        height: 55px;
    }
}
/* 実績取組 */
.read figure figcaption {
    font-size: 30px;
}
@media screen and (max-width: 320px) {
    .read figure figcaption {
        font-size: 21px;
    }
}
@media screen and (max-width: 230px) {
    .read figure figcaption {
        font-size: 18px;
    }
}
.read figure {
    padding-top: 83px;
}
.read .flex {
    gap: 24px;
}
.l-result .grid-container .card p {
    font-size: 16px;
}
#snowremoval .sub-text,
#initiatives .sub-text {
    margin-top: 18px;
    margin-bottom: 38px;
}
/* recruit_求人情報 */
@media screen and (max-width: 600px) {
    .l-recruit .read figure figcaption {
        top: 20px;
    }
}
@media screen and (max-width: 405px) {
    .l-recruit .read figure figcaption {
        font-size: 23px;
    }
}
@media screen and (max-width: 325px) {
    .l-recruit .read figure figcaption {
        font-size: 20px;
    }
}
