﻿@charset "UTF-8";

/* ####################  アイコン・タグ  #################### */


/* アイコン */

.icon {
    display: inline-block;
}

.icon::before {
    display: flex;
    content: "";
    background-position: center;
    background-repeat: no-repeat;
}

.icon_arrow_right::before {
    width: 12px;
    height: 12px;
    background: url("/public/img/icon/icon_arrow_right.svg");
}

.icon_arrow_right_wt::before {
    width: 12px;
    height: 12px;
    background: url("/public/img/icon/icon_arrow_right_wt.svg");
}

.icon_arrow_right__l::before {
    width: 24px;
    height: 24px;
    background: url("/public/img/icon/icon_arrow_right__l.svg");
}

.icon_arrow_right__xl::before {
    width: 30px;
    height: 32px;
    background: url("/public/img/icon/icon_arrow_right__xl.svg");
}

.icon_arrow_buttom_input::before {
    width: 24px;
    height: 24px;
    background: url("/public/img/icon/icon_arrow_buttom_input.svg");
}

.icon_arrow_buttom::before {
    width: 18px;
    height: 18px;
    background: url("/public/img/icon/icon_arrow_buttom.svg");
}

.icon_external::before {
    width: 24px;
    height: 24px;
    background: url("/public/img/icon/icon_external-link.svg");
}

.icon_arrow_right_blue::before {
    width: 18px;
    height: 19px;
    background: url("/public/img/icon/icon_arrow_right_blue.svg");
}

.icon_title::before {
    width: 44px;
    height: 6px;
    background: url("/public/img/icon/icon_title-line.svg");
}

.icon_upload::before {
    width: 24px;
    height: 24px;
    background: url("/public/img/icon/icon_upload.svg");
}

.icon_checked::before {
    width: 25px;
    height: 25px;
    background: url("/public/img/icon/icon_checked.svg");
}

.icon_cross_gray::before {
    width: 24px;
    height: 24px;
    background: url("/public/img/icon/icon_cross_gray.svg");
}

.icon_faq-toggle_open::before {
    width: 24px;
    height: 24px;
    background: url("/public/img/icon/icon_faq-toggle_open.svg");
}

.icon_faq-toggle_close::before {
    width: 24px;
    height: 24px;
    background: url("/public/img/icon/icon_faq-toggle_close.svg");
}

.icon_faq-q_blue::before {
    width: 30px;
    height: 28px;
    background: url("/public/img/icon/icon_faq-q_blue.svg");
}

.icon_faq-a_black::before {
    width: 15px;
    height: 16px;
    background: url("/public/img/icon/icon_faq-a_black.svg");
}

.icon_checked_input::before {
    width: 16px;
    height: 12px;
    background: url("/public/img/icon/icon_checked_input.svg");
}

.icon_checked_gray_input::before {
    width: 16px;
    height: 12px;
    background: url("/public/img/icon/icon_checked_gray_input.svg");
}


/* アイコン（リクルート） */

.icon_recruit_01::before {
    width: 50px;
    height: 50px;
    background: url("/public/img/icon/icon_recruit_01.svg");
}

.icon_recruit_02::before {
    width: 50px;
    height: 50px;
    background: url("/public/img/icon/icon_recruit_02.svg");
}

.icon_recruit_03::before {
    width: 50px;
    height: 50px;
    background: url("/public/img/icon/icon_recruit_03.svg");
}

.icon_recruit_04::before {
    width: 50px;
    height: 50px;
    background: url("/public/img/icon/icon_recruit_04.svg");
}


/* タグ */

.label {
    display: flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
    padding: 5px 10px;
}

.label-recruiting {
    background-color: var(--decorative);
}

.label-required {
    border-radius: 5px;
    color: var(--red);
    background-color: var(--red-bg);
}

.label-interview {
    border-radius: 3px;
    color: var(--white);
    background-color: var(--accent);
    padding: 2px 8px;
}


/* ####################  アイコン・タグSP  #################### */

@media (max-width: 768px) {
    .icon_faq-q_blue::before {
        width: 19px;
        height: 18px;
        background: url("/public/img/icon/icon_faq-q_blue_sp.svg");
    }
}


/* ####################  テキスト  #################### */

.text-xxs {
    font-size: 1.0rem;
    line-height: 1.4;
}

.text-xs {
    font-size: 1.2rem;
    line-height: 1.4;
}

.text-s {
    font-size: 1.4rem;
    line-height: 1.4;
}

.text-m {
    font-size: 1.6rem;
    line-height: 1.4;
}

.text-l {
    font-size: 1.8rem;
    line-height: 1.4;
}

.text-xl {
    font-size: 2.0rem;
    line-height: 1.4;
}

.text-xxl {
    font-size: 2.4rem;
    line-height: 1.4;
}

.text-big {
    font-size: 4.0rem;
    line-height: 1.4;
}

.text-3l {
    font-size: 5.8rem;
    line-height: 1.4;
}

.text-4l {
    font-size: 8.0rem;
    line-height: 1.4;
}

.text-multi-line {
    line-height: 2;
}


/* 見出し */

.text-h1 {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.text-h1__with-en {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 300;
}

.text-h2__default {
    position: relative;
    display: flex;
    align-items: center;
    gap: 4px;
}

.text-h2__default::before {
    content: "";
    width: 28px;
    height: 1px;
    background: var(--black);
}

.text-h2__with-en {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 24px;
}

.text-h2__with-title {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 8px;
}

.text-h2__news {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 8px;
}

.text-h3__underline {
    display: block;
    padding-bottom: 8px;
    border-bottom: 1px solid;
    border-image: linear-gradient( 90deg, #000000 0%, #E5E5E5 35%) 1;
}

.text-h3__sideline {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
}

.text-h3__sideline::before {
    content: "";
    width: 4px;
    height: 26px;
    background: var(--accent);
    border-radius: 50px;
}


/* ユニークテキスト */

.bg_gradation {
    background: linear-gradient( 90deg, #2B59AD 10%, #5BB1EB 40%, #1E2D48 55%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    letter-spacing: 0.08em;
}


/* 太字 */

.text-semilight {
    font-weight: var(--weight-semilight);
}

.text-medium {
    font-weight: var(--weight-medium);
}

.text-bold {
    font-weight: var(--weight-bold);
}

.text-semibold {
    font-weight: var(--weight-semibold);
}


/* 位置 */

.text-left {
    text-align: left;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}


/* QAテキスト（インタビュー） */

.text_haeding__Q {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 16px;
}


/* キャプション */

.text-caption {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 8px;
}

.text-caption::before {
    content: "※";
    width: 14px;
    height: 14px;
}


/* リスト */

.text-list__item {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 12px;
}

.text-list__item:not(:last-child) {
    margin-bottom: 24px;
}

.text-list__item::before {
    content: "";
    display: block;
    width: 12px;
    height: 12px;
    margin-top: 6px;
    background-color: var(--gray-300);
    flex-shrink: 0;
}

.list_set {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.list_set__tag {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 12px;
}

.list_set__tag p {
    white-space: nowrap;
}

.list_set__tag_item {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 12px;
}


/* テキストセット */

.text-set {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 2px;
}

.text-set .text-heading {
    white-space: nowrap;
}


/* ####################  テキストSP  #################### */

@media (max-width: 768px) {
    .text-xs {
        font-size: 1.0rem;
    }
    .text-s {
        font-size: 1.2rem;
    }
    .text-m {
        font-size: 1.4rem;
    }
    .text-l {
        font-size: 1.6rem;
    }
    .text-xl {
        font-size: 1.8rem;
    }
    .text-xxl {
        font-size: 2.2rem;
    }
    .text-big {
        font-size: 3.2rem;
    }
    .text-3l {
        font-size: 3.2rem;
    }
    .text-4l {
        font-size: 5.4rem;
    }
    .text-h2__with-en {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 4px;
    }
    .text-h2__with-en {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 4px;
    }
    .text-list__item::before {
        width: 8px;
        height: 8px;
    }
}


/* ####################  ボタン・リンク  #################### */


/* ボタン */

.primary_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
    padding: 7px 24px;
    gap: 8px;
    background-color: var(--primary);
    border-radius: 3px;
    white-space: nowrap;
}

.primary_btn:hover {
    background-color: var(--gray-700);
    transition: 0.3s;
}

.a {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: fit-content;
    cursor: pointer;
}

.a .icon {
    transform: translateX(-5px);
    transition: transform 0.3s ease;
}

.a:hover .icon {
    transform: translateX(0);
}

.secondary_btn {
    width: 240px;
    justify-content: space-between;
    gap: 24px;
    padding: 12px 20px;
    border-bottom: 1px solid var(--black);
}

.a__l {
    gap: 80px;
    padding: 16px 32px;
    background-color: var(--white);
    border-radius: 3px;
}

.a-recruiting {
    justify-content: center;
    width: 100%;
    padding: 16px 24px;
    background-color: var(--accent);
}

.a-recruiting:disabled {
    background-color: var(--gray-300);
    cursor: default;
}

.btn_hover:hover {
    opacity: .8;
    transition: 0.3s;
}


/* リンク */

.text-link {
    text-decoration: underline;
}

.link:hover {
    opacity: .5;
    transition: 0.3s;
}

.link__m {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    gap: 80px;
    padding: 0;
}


/* カードリンク */

.card_link {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    width: 500px;
    background-color: var(--white);
}

.card_link:hover .card_link_text {
    opacity: .5;
    transition: 0.3s;
}

.card_link:hover img {
    opacity: .8;
    transition: 0.3s;
}

.card_link_text {
    display: flex;
    flex-direction: column;
    gap: 28px;
    padding: 24px;
}

.card_link img {
    width: 500px;
}


/* 記事カセットリンク */

.cassette_link {
    display: inline-block;
    width: 339px;
    max-width: 339px;
    height: auto;
}

.cassette_link img {
    display: block;
    width: 100%;
    height: auto;
}

.cassette_link__content {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 16px 24px 24px;
}

.cassette_link__text {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.cassette_link__tag {
    color: var(--r-image);
}

.cassette_link__tag span::before {
    content: "#";
}

.cassette_link:hover {
    opacity: .8;
    transition: 0.3s;
}


/* ボタン（リクルート） */

.card-botton__recruit {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 80px 60px;
    background: linear-gradient(135deg, #1E2D48 40%, #4B6AA4 63%, #1E2D48 84%);
    box-sizing: border-box;
    text-decoration: none;
}

.card-botton__recruit__body {
    display: flex;
    align-items: center;
    gap: 80px;
    flex: 1;
    min-width: 0;
}

.card-botton__recruit__body > p {
    margin: 0;
    flex-shrink: 0;
}

.card-botton__recruit__text {
    display: flex;
    flex-direction: column;
    gap: 24px;
    flex: 1;
    min-width: 0;
}

.card-botton__recruit__text h3,
.card-botton__recruit__text p {
    margin: 0;
}

.icon_arrow_right__xl {
    margin-left: 40px;
    flex-shrink: 0;
}



/* ####################  ボタン・リンクSP  #################### */

@media (max-width: 768px) {
    .card_link {
        width: 100%;
    }
    .card_link img {
        width: 100%;
    }
    .cassette_link {
        width: 100%;
    }
    .secondary_btn {
        width: 100%;
        justify-content: space-between;
    }
    /* リクルート */
    .card-botton__recruit {
        display: flex;
        align-items: center;
        gap: 24px;
        padding: 32px 24px;
    }

    .card-botton__recruit__body {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        flex: 1;
        min-width: 0;
    }

    .card-botton__recruit__body > p {
        margin: 0;
    }

    .card-botton__recruit__text {
        display: flex;
        flex-direction: column;
        gap: 16px;
        min-width: 0;
    }

    .icon_arrow_right__xl {
        margin-left: 0;
        flex-shrink: 0;
        align-self: center;
    }
}


/* ####################  インプット  #################### */


/* ラベル */

.input-label__required {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
}


/* テキスト入力 */

.input {
    margin-top: 8px;
    background-color: var(--white);
    border-radius: 5px;
    border: 1.2px solid var(--gray-300);
}

.input:focus {
    border: 1.2px solid var(--accent);
    outline: none;
}

.input:not(:placeholder-shown):not(:focus) {
    border-color: var(--black);
}

.input-text-field,
.input-text--area {
    max-width: 600px;
    width: 100%;
    padding: 13px 17px;
}

.input-text-field::placeholder,
.input-text--area::placeholder {
    color: var(--gray-300);
}

.input-text__set,
.input-radio__set {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    max-width: 600px;
}

.input-text__set {
    gap: 8px;
}

/* 姓・名など2欄横並び（input-text__set-text の「満○歳」等は除外） */
.input-text__set:not(.input-text__set-text) {
    flex-wrap: nowrap;
}

.input-text__set:not(.input-text__set-text) > .input-text-field {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    max-width: none;
}

.input-radio__set {
    margin-top: 24px;
    gap: 24px;
}

.input-text__text {
    margin-top: 24px;
}

.input-text__set-text .input-text-field {
    width: 80px;
}


/* ラジオボタン（カード） */

.input-radio {
    width: fit-content;
    padding: 16px 24px;
    background-color: var(--white);
    border-radius: 8px;
    border: 1px solid var(--gray-300);
    transition: border-color 0.2s ease, background-color 0.2s ease;
}


/* アクセシブルに隠す */

.visually-hidden {
    position: absolute;
    white-space: nowrap;
    width: 1px;
    height: 1px;
    overflow: hidden;
    border: 0;
    padding: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    margin: -1px;
}


/* ラベル */

.input-radio-label {
    position: relative;
    display: inline-block;
    padding-left: 40px;
    cursor: pointer;
}

.input-radio-label::before,
.input-radio-label::after {
    position: absolute;
    content: "";
    display: block;
    border-radius: 50%;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
}

.input-radio-label::before {
    width: 24px;
    height: 24px;
    border: 1px solid var(--gray-300);
    background: var(--white);
}

.input-radio-label::after {
    width: 14px;
    height: 14px;
    left: 5px;
    background-color: var(--gray-300);
    transform: translateY(-50%) scale(0);
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.input-radio-btn:checked+.input-radio-label::before {
    border-color: var(--accent);
}

.input-radio-btn:checked+.input-radio-label::after {
    background-color: var(--accent);
    transform: translateY(-50%) scale(1);
}

.input-radio:has(.input-radio-btn:checked) {
    border-color: var(--accent);
}


/* プルダウン */

.pulldown-wrapper {
    position: relative;
    max-width: 600px;
    width: 100%;
}

.input-pulldown {
    max-width: 600px;
    width: 100%;
    padding: 13px 17px;
}

.input-pulldown {
    color: var(--gray-300);
    /* 初期は薄く */
}

.input-pulldown:valid {
    color: var(--black);
    /* 選択されたら黒に戻す */
}

.input-pulldown-icon {
    position: absolute;
    top: 60%;
    right: 17px;
    width: 24px;
    height: 24px;
    pointer-events: none;
    transform: translateY(-50%);
}

/* 枠は他入力と揃えてグレー固定、開いた選択肢の文字は黒（:focus でもアクセント枠にしない） */
.input.input-pulldown.input-pulldown--neutral-border,
.input.input-pulldown.input-pulldown--neutral-border:focus {
    border-color: var(--gray-300);
}

.input.input-pulldown.input-pulldown--neutral-border option {
    color: var(--black);
}


/* チェックボックス */

.check-container {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 8px;
    cursor: pointer;
}

.check-container input {
    display: none;
}

.checkmark {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid var(--gray-300);
    border-radius: 5px;
    background: var(--white);
    transition: border-color 0.2s;
}

.checkmark .icon {
    transition: color 0.2s;
}

.check-container input:checked+.checkmark {
    border: 2px solid var(--accent);
}

.check-container input:checked+.checkmark .icon_checked_gray_input::before {
    background-image: url("/public/img/icon/icon_checked_input.svg");
}


/* アップロードエリア */

.upload-area {
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 600px;
    width: 100%;
    margin-top: 8px;
    padding: 13px;
    border: 1px dashed var(--black);
    border-radius: 12px;
    background: var(--white);
    text-align: center;
    cursor: pointer;
    transition: 0.2s ease;
}

.upload-area:hover {
    border-color: var(--accent);
}

.upload-content .icon {
    margin-top: 60px;
    display: inline-block;
    margin-bottom: 8px;
}

.upload-input {
    display: none;
}

.upload-text {
    color: var(--gray-300);
}

.upload-sub {
    margin-top: 50px;
    color: var(--gray-300);
}

.upload-selected {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 8px;
}

.upload-selected__wrapper {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.upload-area.is-dragover {
    border-color: var(--accent);
    background: #f4f7ff;
}

#selectedFiles {
    max-width: 600px;
    width: 100%;
    margin-top: 8px;
}

.icon_cross_gray {
    cursor: pointer;
}

.file-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
    min-width: 0;
    /* ← これも重要 */
}

.upload-area.is-disabled {
    opacity: 0.5;
    pointer-events: none;
}


/* ####################  インプットSP  #################### */

@media (max-width: 768px) {
    .pulldown-wrapper,
    .input-pulldown,
    .upload-area,
    #selectedFiles {
        max-width: 100%;
    }
    .input-radio {
        padding: 12px 12px;
    }
    .input-radio-label {
        padding-left: 24px;
    }
    .input-radio-label::before {
        width: 17px;
        height: 17px;
    }
    .input-radio-label::after {
        width: 10px;
        height: 10px;
        left: 3.5px;
    }
    .input-radio__set {
        gap: 12px;
    }
    .check-container {
        gap: 12px;
    }
    .checkmark {
        width: 28px;
        height: 28px;
    }
}


/* ####################  画像  #################### */


/* パララックス（パララックスを指定するにはjsを読み込んでください） */

.parallax {
    width: 100%;
}

.parallax-img img {
    width: 100%;
}


/* 画像ごと */


/* トップ */

.img__top_fv-text {
    width: 640px;
    aspect-ratio: 640 / 128;
}

.img__top_service {
    max-width: 530px;
    max-height: 318px;
    aspect-ratio: 530 / 318;
}

.img__top_Company {
    gap: 10px;
}

.img__top_Company01 {
    max-width: 500px;
    max-height: 600px;
    aspect-ratio: 500 / 600;
}

.img__top_Company02 {
    max-width: 300px;
    max-height: 285px;
    aspect-ratio: 300 / 285;
}


/* 私たちについて */

.img__about {
    position: relative;
    max-width: 600px;
    max-height: 336px;
    aspect-ratio: 600 / 336;
}

.img__about::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 2;
    /* 斜め方向：45deg で右上→左下、-45degで逆 */
    background: linear-gradient( 155deg, /* 左上→右下 180で縦 90で左→右 */
    rgba(255, 255, 255, 1.0) 20%, rgba(255, 255, 255, 0.85) 30%, rgba(255, 255, 255, 0.4) 45%, rgba(255, 255, 255, 0.0) 55%);
}


/* 採用情報 */

.img__recruit {
    position: relative;
    max-width: 100vw;
    aspect-ratio: 1440 / 380;
}


/* ABOUT数字でみる */

.numbar_img {
    width: 100%;
}


/* ABOUT社員育成 */

.about_employee-development {
    max-width: 528px;
}


/* サービス */

.service_img-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    width: 100%;
    overflow: hidden;
}

.service_img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* 画像(トップ) */

.top_fv {
    position: absolute;
    top: 0;
    width: 100%;
    height: 750px;
}


/* Rの背景 */

.r-mark_white {
    position: absolute;
    top: 0;
    left: 120px;
    width: 780px;
    height: 750px;
    aspect-ratio: 780 / 750;
    z-index: -99;
    pointer-events: none;
    /* クリック邪魔しない */
}


/* スライダー */

.fv-slider {
    position: absolute;
    top: 80px;
    left: 0;
    width: 645px;
    aspect-ratio: 645 / 680;
    overflow: hidden;
    z-index: 2;
    /* Rより前に出す */
}

.fv-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* FVスライダー再描画時のフォーカス/ドラッグ由来のちらつき対策 */
.fv-slider,
.fv-slide {
    user-select: none;
}

.fv-slide {
    -webkit-user-drag: none;
    outline: none;
    pointer-events: none;
}

/* src設定前の空imgが枠表示されるのを防ぐ */
.fv-slide:not([src]),
.fv-slide[src=""] {
    visibility: hidden;
}

.fv-slide.base {
    z-index: 1;
}

.fv-slide.cover {
    z-index: 2;
    clip-path: inset(0 0 0 0);
}


/* ####################  画像SP  #################### */

@media (max-width: 1024px) {
    /* 画像(トップ) */
    .r-mark_white {
        left: 0;
        width: 580px;
        height: auto;
    }
    .fv-slider {
        width: 580px;
        height: auto;
    }
}

@media (max-width: 768px) {
    .service_img-list {
        grid-template-columns: repeat(2, 1fr);
    }
    .img__top_fv-text {
        width: 100%;
    }
    .about_employee-development {
        width: 100%;
    }
    /* 画像(トップ) */
    .top_fv {
        top: 240px;
        left: 0;
        height: 750px;
    }
    .r-mark_white {
        left: 0;
        width: 620px;
        height: auto;
    }
    .fv-slider {
        width: 620px;
        height: auto;
    }
}

@media (max-width: 440px) {
    .service_img-list {
        grid-template-columns: 1fr;
    }
    /* 画像(トップ) */
    .top_fv {
        top: 240px;
        left: 0;
    }
    .r-mark_white {
        left: 0;
        width: 80%;
        height: auto;
    }
    .fv-slider {
        top: 40px;
        width: 80%;
        height: auto;
    }
}


/* ####################  ナビゲーション  #################### */


/* ナビゲーション */

.gnav {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
}

.gnav ul {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    padding: 8px 24px;
}

.gnav__list {
    white-space: nowrap;
    padding: 7px 12px;
}

.gnav__list:hover {
    opacity: .5;
}


/* パンくず */

.breadcrumbs {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    white-space: nowrap;
    margin-bottom: 24px;
}

.breadcrumbs__list {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
}

.breadcrumbs__list::after {
    content: "";
    width: 14px;
    height: 14px;
    background: url("/public/img/icon/icon_arrow_right_breadcrumbs.svg");
}

.header_logo {
    width: 19vw;
    max-width: 260px;
    height: auto;
}


/* ####################  ナビゲーションSP  #################### */

@media (max-width: 1080px) {
    .gnav {
        height: auto;
    }
    .gnav ul {
        justify-content: flex-end;
        align-items: flex-start;
        gap: 0 4px;
        padding: 8px 12px;
    }
    .gnav__list {
        padding: 7px 6px;
    }
    .breadcrumbs__list {
        gap: 4px;
    }
}

@media (max-width: 768px) {
    .gnav,
    .gnav ul {
        flex-direction: column;
        align-items: flex-end;
        padding: 8px 0;
    }
    .gnav__list {
        padding: 7px 0;
        color: var(--white);
    }
    .header_logo {
        width: 160px;
        height: auto;
    }
}


/* ####################  タブメニュー  #################### */

.tab-btn {
    display: flex;
    justify-content: space-between;
    width: 100%;
    gap: 6px;
    padding: 0 40px;
    background-color: var(--gray-050);
}

.btn {
    position: relative;
    flex-basis: 20%;
}

.btn_link {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    width: 100%;
    height: 68px;
    letter-spacing: 0.05em;
    cursor: pointer;
    border-bottom: 1px solid var(--gray-200);
}

.btn_link.is-active {
    border-bottom: 1px solid var(--black);
}


/* 募集中タグ */

.label-recruiting {
    position: absolute;
    top: 0;
    /* タブの上に出す */
    right: 0;
}

.btn.is-recruiting {
    padding-top: 36px;
    /* ← ラベル分だけ余白追加 */
    background-color: var(--gray-050);
}

#tab-contents {
    background-color: var(--gray-050);
}

.tab-contents-item {
    display: none;
    width: 100%;
    padding: 40px 40px 60px;
}

.tab-contents-item.is-active {
    display: block;
}

.sp_only {
    display: none;
}


/* ####################  タブメニューSP  #################### */

@media (max-width: 768px) {
    .tab-btn {
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 0;
        margin-top: 40px;
        padding: 0 8px;
    }
    .btn_link {
        height: 42px;
    }
    .btn.is-recruiting {
        padding-top: 32px;
    }
    .btn:nth-child(-n+2) {
        flex-basis: 50%;
    }
    .btn:nth-last-child(-n+3) {
        flex-basis: 33.3%;
    }
    .tab-contents-item {
        padding: 40px 18px;
    }
}


/* ####################  お知らせ  #################### */

.news {
    align-items: flex-start;
    padding: 58px 80px;
    gap: 58px;
    background-color: var(--gray-500);
}

.news .news-link {
    flex-grow: 1;
}

.news .text-h2__default::before {
    background: var(--white);
}


/* リンク */

.news-link__list .link__m {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 24px;
    width: 100%;
    height: 58px;
    padding: 16px;
    border-bottom: 1px solid var(--white);
}

.news-link__list .icon_arrow_right__l {
    filter: brightness(0) invert(1);
}

.news-link__body {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}


/* リンクリスト */

.news-link {
    padding: 0 24px;
}


/* ####################  お知らせSP  #################### */

@media (max-width: 768px) {
    .news {
        padding: 40px 8px 60px;
        gap: 40px;
    }
    .news .news-link {
        width: 100%;
    }
    .news-link__list .link__m {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        height: auto;
        padding: 8px;
        margin-top: 16px;
    }
    .news-link {
        padding: 0;
    }
}


/* #################### FAQ #################### */


/* 必須 */

.accordion-content {
    display: none;
}


/* 装飾用 */

.accordion-header {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 16px;
    background-color: var(--white);
    padding: 16px;
    margin: 10px 0 0;
    transition: background .3s ease;
    cursor: pointer;
    position: relative;
}

.accordion-content__body .icon_faq-a_black {
    margin-top: 4px;
}

.accordion-header::before,
.accordion-header::after {
    position: absolute;
    content: '';
    top: 1px;
    right: 20px;
    bottom: 0;
    width: 18px;
    height: 2px;
    margin: 28px auto 0;
    background: var(--black);
    border-radius: 50px;
}

.accordion-header::after {
    transform: rotate(-90deg);
    transition: transform 0.3s;
}

.accordion-header.active::after {
    transform: rotate(0deg);
}

.accordion-content__body {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 8px;
    padding: 16px 16px 16px 48px;
}

.faq-text_q {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.faq-text {
    line-height: 1.6;
    width: calc(100% - 48px - 8px);
}


/* hover */

.accordion-header:hover {
    background-color: var(--gray-050);
}


/* ####################  FAQ_SP  #################### */

@media (max-width: 768px) {
    .accordion-header {
        gap: 10px;
    }
    .accordion-content__body {
        padding: 16px;
    }
    .accordion-content__body .icon_faq-a_black {
        margin-top: 3px;
    }
}


/* ####################  テーブル  #################### */


/* テーブル全体 */

.table {
    width: 100%;
    border-top: 1px solid var(--black);
}

.table_boder {
    border-bottom: 1px solid var(--black);
}

.table_title {
    width: 180px;
}

.table_title,
.table_text {
    padding: 16px;
}

.table_text {
    font-weight: 200;
}


/* ####################  テーブルSP  #################### */

@media (max-width: 768px) {
    .table_title {
        width: 80px;
    }
}


/* ####################  サイドナビゲーション  #################### */


/* サイドナビゲーション */

.sgnav ul {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
}

.gnav__list {
    font-size: 1.6rem;
}

.sgnav__list:hover {
    color: var(--r-image);
}

.is-in {
    color: var(--accent)!important;
    transition: color 0.3s;
}


/* サイドナビ（固定用） */

@media (min-width: 769px) {
    .sgnav {
        position: sticky;
        top: 180px;
    }
}


/* ####################  サイドナビゲーションSP  #################### */

@media (max-width: 768px) {
    .sgnav__section {
        flex-direction: column;
    }
    .sgnav ul {
        gap: 8px;
    }
}


/* ####################  スライド #################### */


/* splide 本体 */

.splide {
    position: relative;
    visibility: hidden;
}

.splide.is-initialized,
.splide.is-rendered {
    visibility: visible;
}


/* track（表示範囲） */

.splide__track {
    overflow: hidden;
    position: relative;
}


/* list（スライド横並び） */

.splide__list {
    display: flex;
    height: 100%;
    margin: 0;
    padding: 0;
}


/* slide */

.splide__slide {
    flex-shrink: 0;
    list-style: none;
    position: relative;
}


/* span のちらつき解除 */

#interviewSplide .splide__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    border: 0;
    white-space: nowrap;
}


/* ####################  矢印 #################### */

#interviewSplide {
    position: relative;
    padding-top: 56px;
}


/* 矢印コンテナ */

#interviewSplide .splide__arrows {
    position: absolute;
    top: 0;
    right: 20px;
    display: flex;
    align-items: center;
    gap: 16px;
}


/* 矢印ボタン */

#interviewSplide .splide__arrow {
    position: static;
    transform: none;
    width: 40px;
    height: 40px;
    border: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 28px;
    cursor: pointer;
    padding: 0;
}


/* デフォルトSVGを消す */

#interviewSplide .splide__arrow svg {
    display: none;
}


/* 通常矢印 */

#interviewSplide .splide__arrow--prev,
#interviewSplide .splide__arrow--next {
    background-image: url("/public/img/icon/icon_arrow_right_black_slide.svg");
}


/* 左矢印を反転 */

#interviewSplide .splide__arrow--prev {
    transform: scaleX(-1);
}


/* 矢印無効 */

#interviewSplide .splide__arrow:disabled {
    background-image: url("/public/img/icon/icon_arrow_right_gray_slide.svg");
    cursor: default;
}


/* ####################  スライドSP  #################### */

@media (max-width: 768px) {
    #interviewSplide {
        padding-top: 40px;
    }
    #interviewSplide .splide__arrows {
        right: 0;
        gap: 8px;
    }
}


/* ####################  デコレーション  #################### */


/* 横スクロールアニメーション */

.slide_scroll {
    overflow: hidden;
    width: 100%;
    padding-bottom: 100px;
    border-bottom: solid 1px var(--black);
}

.slide_scroll__inner {
    display: flex;
    gap: 200px;
    width: max-content;
    animation: scroll-left 15s linear infinite;
}

.item img {
    width: 100%;
}

@keyframes scroll-left {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}


/* 背景固定（ラプテックマーク） */

.r-mark_gray,
.r-mark_gray__down {
    position: relative;
}

.r-mark_gray::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 664px;
    height: 700px;
    background: url('/public/img/img/img_r-logo_gray.webp') no-repeat;
    background-size: contain;
    z-index: -99;
    pointer-events: none;
}

.r-mark_gray__down::before {
    content: "";
    position: fixed;
    top: 80px;
    left: 0;
    width: 664px;
    height: 700px;
    background: url('/public/img/img/img_r-logo_gray.webp') no-repeat;
    background-size: contain;
    z-index: -99;
    pointer-events: none;
}

.r-mark_blue::before {
    content: "";
    position: fixed;
    top: 0;
    right: 0;
    width: 664px;
    height: 700px;
    background: url('/public/img/img/img_r-logo_blue.webp') no-repeat;
    background-size: contain;
    z-index: -99;
    pointer-events: none;
}


/* 要素からはみ出す（RAPPORTxTECHNOLOGY） */

.bg-rapport-r {
    position: relative;
    overflow: visible;
    z-index: 0;
}

.bg-rapport-r::before {
    content: "";
    position: absolute;
    top: 0;
    left: calc(50% - 59vw);
    width: 100vw;
    max-height: 293px;
    aspect-ratio: 1440 / 248;
    background-color: var(--white);
    z-index: 0;
    pointer-events: none;
}

.rapport_img {
    max-width: 1264px;
}


/* コンテンツは前に出す */

.bg-logo-section__inner {
    position: relative;
    z-index: 1;
}


/* 要素からはみ出す（ラプテックマーク） */

.bg-logo-r {
    position: relative;
    overflow: visible;
    z-index: 0;
}

.bg-logo-r::before {
    content: "";
    position: absolute;
    top: -80px;
    left: calc(50vw - 50vw - 15vw - 4vw - 60px);
    width: 700px;
    aspect-ratio: 700 / 738;
    background: url("/public/img/img/img_r-logo_gray.webp") no-repeat left top / contain;
    z-index: 0;
    pointer-events: none;
}


/* 背景画像（採用情報メッセージ） */

.bg_img {
    position: relative;
    overflow: visible;
}

.bg_img__raptec-r {
    position: absolute;
    top: -40px;
    /* ← 上にはみ出す */
    left: 0;
    width: 100%;
    height: calc(100% + 80px);
    background: url("/public/img/img/img_recruit_bgimage.webp") top center / cover no-repeat;
    z-index: -1;
}

/* 背景画像（トップ about~Service） */
.top__r-mark_gray {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
    width: 820px;
    height: 1000px;
    background: url('/public/img/img/img_r-logo_gray.webp') no-repeat;
    background-size: contain;
    z-index: 0;
}

.z_index10 {
    position: relative;
    z-index: 10;
}

/* ####################  デコレーションSP  #################### */

@media (max-width: 768px) {
    .top__r-mark_gray {
        height: 370px;
        left: -40px;
    }
    .slide_scroll__inner {
        gap: 40px;
    }
    .item img {
        max-height: 54px;
    }
    .r-mark_gray::before {
        width: 300px;
        height: 316px;
    }
    .r-mark_gray__down::before {
        width: 260px;
        height: 274px;
    }
    .r-mark_blue::before {
        width: 254px;
        height: 295px;
    }
    .bg-rapport-r::before {
        top: 0;
        left: calc(50% - 50vw);
        width: 100vw;
        aspect-ratio: 1440 / 316;
    }
    .bg-logo-r::before {
        top: -40px;
        left: calc(50% - 50vw);
        width: 342px;
        max-width: 100%;
        aspect-ratio: 342 / 360;
    }
}



/* ####################  レイアウト  #################### */


/* ページ全体 */

.max-width {
    max-width: 1728px;
    margin: 0 auto;
}


/* レイアウト別 */

.section {
    width: 100%;
}

.contents__left {
    display: flex;
    justify-content: flex-start;
    gap: 16px;
}

.contents__left-fixed {
    display: flex;
    justify-content: flex-start;
    gap: 8px;
}

.contents__left_space24 {
    display: flex;
    justify-content: flex-start;
    gap: 24px;
}

.contents-block__100 {
    width: 100% !important;
    flex-grow: 1;
}
.contents-block__85 {
    width: 85%;
    flex-grow: 1;
}

.contents-block__70 {
    width: 70%;
    flex-grow: 1;
}

.contents-block__60 {
    width: 60%;
    flex-grow: 1;
}

.contents-block__50 {
    width: 50%;
}

.contents-block__40 {
    width: 40%;
}

.contents-block__30 {
    width: 30%;
}

.contents-block__20 {
    width: 20%;
}

.contents-block__15 {
    width: 15%;
}

.contents__conter {
    display: flex;
    justify-content: center;
    gap: 16px;
}

.align__center {
    align-items: center;
}

.contents__right {
    display: flex;
    justify-content: flex-end;
    gap: 16px;
}

.contents__side {
    display: flex;
    justify-content: space-between;
}

.contents__side-fixed {
    display: flex;
    justify-content: space-between;
}

.contents__column {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.contents__left_small {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 24px;
    padding: 0 5%;
}


/* 背景カラー */

.bg__gray {
    background-color: var(--gray-500);
}

.bg__white {
    background-color: var(--gray-050);
}

.bg_main_gray {
    background-color: var(--gray-100);
}

.bg_blue {
    background-color: var(--blue-bg);
}

.bg_gray__white {
    background: linear-gradient(
        to bottom,
        rgba(250, 250, 251, 0) 0%,
        rgba(250, 250, 251, 1) 100%
    );
}


/* サイドナビゲーション（固定） */

.sgnav__section {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}

.sgnav {
    width: 15%;
    z-index: 999;
}

.main__contents {
    width: 85%;
}

.main__contents .section {
    padding-bottom: 120px;
    padding-right: 0;
    padding-left: 4vw;
}

.main__contents .section:not(:first-child) {
    padding-top: 80px;
}


/* 背景白の時だけmargin追加 */

.main__contents .section.bg__white {
    padding-right: 4vw;
}


/* セクション（ノーマル） */

.section__normal {
    gap: 58px;
}

.section__inner-h3 {
    display: flex;
    flex-direction: column;
    gap: 24px;
}


/* セクション（タブ） */

.section__tab {
    gap: 48px;
    width: 100%;
    padding: 40px 40px 60px;
}


/* マージン（トップ） */

.top__margin {
    padding: 80px 140px 120px;
}

.top_message {
    width: 528px;
}


/* マージン（下層ページ） */

.normal-page__margin {
    padding: 40px 60px 0;
}

.normal-page__margin__center {
    padding: 80px 80px 120px;
}

/* マージン（FAQ） */

.FAQ__margin {
    padding: 80px 180px 120px;
}


/* ヘッダー固定のための調整 */

.page_top {
    margin-top: 64px;
}


/*マージン（プロフィール）*/

.section_inner_margin {
    margin-top: 24px;
    padding: 24px;
}


/* アイコンセット（採用の流れ） */

.step_section {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.icon_step {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.icon-set {
    display: flex;
    justify-content: flex-start;
    gap: 8px;
}

.icon-set_title {
    margin-top: 24px;
}


/* 記事ヘディング（インタビュー） */

.article-heading {
    position: relative;
    width: 100%;
    max-width: 1000px;
    height: 516px;
    margin-top: 80px;
}

.article-heading__img {
    position: absolute;
    top: 0;
    left: 0;
    width: 95%;
    max-width: 900px;
}

.article-heading__img img {
    display: block;
    width: 100%;
    aspect-ratio: 900 / 400;
}

.article-heading__body {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 75%;
    background-color: var(--white);
    padding: 24px 40px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.article-heading__label {
    display: flex;
    justify-content: space-between;
}

.article-heading__tag {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 8px;
}

.article-heading__tag span {
    display: flex;
    gap: 2px;
}

.article-heading__tag span::before {
    content: "#";
}


/* トップファーストビュー */

.sticky-container {
    position: relative;
    top: 0;
}

.top_fv-text {
    position: sticky;
    top: 160px;
    width: fit-content;
    margin-left: auto;
    margin-right: 60px;
    padding-bottom: calc( 120px + 100px);
    display: flex;
    flex-direction: column;
    gap: 58px;
    z-index: 10;
}

.top_message_area {
    margin-top: 380px;
}


/* トップ（会社概要） */

.top__margin__title {
    padding: 80px 140px 58px;
}

.top__margin__left0 {
    padding: 0 140px 120px 0;
    gap: 80px;
}


/* ####################  レイアウトSP  #################### */

@media (max-width: 1024px) {
    .top_fv-text {
        width: 45%;
        margin-right: 24px;
    }
    .top__margin {
        padding: 80px 60px 120px;
    }
    .top_message_area {
        margin-top: 280px;
    }
    .top_message {
        width: 50%;
    }
    /* トップ（会社概要） */
    .top__margin__title {
        padding: 80px 60px 58px;
    }
    .top__margin__left0 {
        padding: 0 60px 120px 0;
        gap: 60px;
    }
}

@media (max-width: 768px) {
    .contents__left,
    .contents__conter,
    .contents__right,
    .contents__side,
    .contents__left_small {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }
    .contents__left_space24 {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        flex-direction: column;
        gap: 24px;
    }
    .align__center {
        align-items: flex-start;
    }
    .contents-block__85,
    .contents-block__70,
    .contents-block__60,
    .contents-block__50,
    .contents-block__40,
    .contents-block__30,
    .contents-block__15 {
        width: 100%;
    }
    .main__contents {
        width: 100%;
    }
    .main__contents .section,
    .main__contents .section.bg__white {
        padding-top: 60px;
        padding-bottom: 80px;
        padding-right: 18px;
        padding-left: 18px;
    }
    .main__contents .section:not(:first-child) {
        padding-top: 60px;
    }
    /* サイドナビゲーション（固定） */
    .sgnav__section {
        margin-top: 40px;
    }
    .sgnav {
        padding: 0 18px;
        width: 100%;
    }
    .section__tab {
        gap: 24px;
        width: 100%;
        padding: 40px 0 60px;
    }
    /* セクション（ノーマル） */
    .section__normal {
        gap: 40px;
    }
    /* マージン（トップ） */
    .top__margin {
        padding: 60px 18px 80px;
    }
    .top_message {
        width: 70%;
    }
    /* マージン（下層ページ） */
    .normal-page__margin {
        padding: 0;
    }
    .normal-page__margin__center {
        padding: 40px 18px 60px;
    }
    /* マージン（FAQ） */
    .FAQ__margin {
        padding: 60px 18px 80px;
    }
    /* ヘッダー固定のための調整 */
    .page_top {
        padding: 0 18px;
    }
    /* アイコンセット（採用の流れ） */
    .step_section {
        gap: 16px;
    }
    .icon-set_title {
        margin-top: 24px;
    }
    /* 記事ヘディング（インタビュー） */
    .article-heading {
        position: static;
        height: auto;
        margin-top: 0;
    }
    .article-heading__img {
        position: static;
        width: 100%;
    }
    .article-heading__body {
        position: static;
        width: 100%;
        padding: 16px;
        gap: 8px;
    }
    /* トップファーストビュー */
    .sticky-container {
        position: static;
        margin-top: 120px;
    }
    .top_fv-text {
        position: static;
        top: 160px;
        width: 80%;
        margin: 0 18px;
        padding-bottom: 0;
        gap: 24px;
    }
    .top_message_area {
        margin-top: 680px;
    }
    /* トップ（会社概要） */
    .top__margin__title {
        padding: 60px 18px 40px;
    }
    .top__margin__left0 {
        padding: 0 18px 80px;
        gap: 24px;
    }
}

@media (max-width: 440px) {
    .top_message_area {
        margin-top: 380px;
    }
    .top_message {
        width: 100%;
    }
}


/* ####################  フォーム  #################### */

.is-hidden {
    display: none;
}

.qr-code {
    width: 180px;
}

.sp-only {
    display: none;
}

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


/* 

ラジオボタンのvalueに付与
line　LINEで応募する
form　フォームで応募する
fulltime 正社員
freelance フリーランス
parttime アルバイト
engineer エンジニア
sales 営業
office 事務
---
表示したい要素にid付与
radioSelectedContent_line　LINEで応募する
radioSelectedContent_form　フォームで応募する
---
表示したい要素にクラス付与
js-fulltime-only 正社員
js-freelance-only　フリーランス
js-parttime-only　アルバイト
js-engineer-only　エンジニア
js-business-only　営業・事務
*/


/* ####################  ヘッダー  #################### */

.header__default {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding: 0 30px;
    width: 100%;
    height: 80px;
    transition: 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 9999;
}

.header__default.is-scrolled {
    height: 80px;
    padding: 0 60px;
}

.header__default.is-scrolled .header_logo {
    height: 40px;
}

.header__default.is-scrolled .gnav__list {
    font-size: 1.3rem;
}

.fixed {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    max-width: 1728px;
    margin: 0 auto;
}

.header__body {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    transition: 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.header__body.is-scrolled {
    padding: 8px 40px;
    background-color: var(--white-30);
    backdrop-filter: blur(30px);
    box-shadow: 0 2px 4px rgba(43, 89, 173, 0.1);
}

.header_logo {
    display: flex;
    justify-content: center;
    align-items: center;
    transition: height 0.6s ease;
}

.gnav__list {
    transition: font-size 0.6s ease;
}


/* ####################  ヘッダーSP  #################### */

@media (max-width: 1080px) {
    .header__default.is-scrolled {
        height: auto;
        padding: 0 24px;
    }
    .header__body.is-scrolled {
        padding: 8px 24px;
    }
}


/* ハンバーガーメニュー */

.btn-gNav {
    display: none;
}

@media (max-width: 960px) {
    .header__default {
        padding: 0 16px;
        height: 60px;
    }
    .header__body {
        height: 48px;
    }
    .header__default.is-scrolled {
        height: 54px;
        padding: 0 16px;
    }
    .header__body.is-scrolled {
        padding: 8px 16px;
    }
    /* ハンバーガーメニュー */
    .btn-gNav {
        display: block;
        position: relative;
        width: 24px;
        height: 18px;
        z-index: 301;
    }
    .btn-gNav span {
        position: absolute;
        width: 100%;
        height: 1.5px;
        background-color: var(--black);
        border-radius: 50px;
        -webkit-transition: all 600ms;
        transition: all 600ms;
    }
    .btn-gNav span:nth-child(1) {
        top: 0;
    }
    .btn-gNav span:nth-child(2) {
        top: 8px;
    }
    .btn-gNav span:nth-child(3) {
        bottom: 0;
    }
    /* オープンした後のメニュー */
    header.open .btn-gNav span:nth-of-type(2) {
        opacity: 0;
    }
    header.open .btn-gNav span:nth-of-type(1) {
        background-color: var(--white);
        -webkit-transform: rotate(45deg);
        transform: translateY(8.5px) rotate(45deg);
    }
    header.open .btn-gNav span:nth-of-type(3) {
        background-color: var(--white);
        -webkit-transform: rotate(-45deg);
        transform: translateY(-8px) rotate(-45deg);
    }
    .menu {
        position: fixed;
        top: 0;
        right: 0;
        width: 240px;
        height: auto;
        margin: 0;
        padding: 58px 24px 40px;
        box-sizing: border-box;
        border-radius: 5px;
        opacity: 0;
        /* 初期は透明 */
        visibility: hidden;
        /* 見えない状態 */
        transition: all 300ms ease;
        /* トランジションを適用 */
        background-color: var(--gray-500);
        -webkit-backdrop-filter: blur(2px);
        backdrop-filter: blur(2px);
        z-index: 300;
    }
    header.open .menu {
        opacity: 1;
        /* 不透明に */
        visibility: visible;
        /* 表示に */
        transition: all 300ms ease;
        /* トランジションを適用 */
    }
    header.open .under＿link {
        color: var(--white)!important;
    }
    header.open .header_left img {
        filter: invert(0)!important;
    }
    header.open {
        background: rgb(0.0.0.0.0)!important;
        -webkit-backdrop-filter: none!important;
        backdrop-filter: none!important;
        -webkit-transition: all 000ms;
        transition: all 000ms;
    }
    /* 背景スクロールを無効にする */
    /*.no-scroll {
        overflow: hidden;
        height: 100%;
    }*/
}


/* ####################  フッター  #################### */

.footer_bg {
    background-color: var(--gray-700);
    width: 100vw;
}

.footer {
    display: flex;
    flex-direction: column;
    gap: 120px;
    max-width: 1728px;
    margin: 120px auto 0;
    padding: 120px 60px 40px;
    color: var(--gray-050);
}

.footer__left {
    min-width: 26%;
}

.footer_btn {
    border-bottom: 1px solid var(--white);
}

.footer__link-list {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
}

.footer__link {
    gap: 4px;
    width: 136px;
}

.footer__link li {
    padding: 4px 0;
}

.footer__left {
    gap: 58px;
}

.footer__addr {
    gap: 24px;
}

.footer_logo {
    width: 200px;
}


/* ####################  フッターSP  #################### */

@media (max-width: 768px) {
    .footer {
        display: flex;
        flex-direction: column;
        gap: 80px;
        padding: 40px 18px 16px;
        background-color: var(--gray-700);
        color: var(--gray-050);
    }
    .footer_main {
        display: flex;
        flex-direction: column;
        gap: 58px;
    }
    .footer__link-list {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 16px;
        flex-wrap: wrap;
    }
}


/* ####################  particles  #################### */


/* ---- particles.js container ---- */

#particles-js {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-image: url("");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50% 50%;
    z-index: -9999;
}


/* ---- stats.js ---- */

.count-particles {
    background: #000022;
    position: absolute;
    top: 48px;
    left: 0;
    width: 80px;
    color: #13E8E9;
    font-size: .8em;
    text-align: left;
    text-indent: 4px;
    line-height: 14px;
    padding-bottom: 2px;
    font-family: Helvetica, Arial, sans-serif;
    font-weight: bold;
}

.js-count-particles {
    font-size: 1.1em;
}

#stats,
.count-particles {
    -webkit-user-select: none;
    margin-top: 5px;
    margin-left: 5px;
}

#stats {
    border-radius: 3px 3px 0 0;
    overflow: hidden;
}

.count-particles {
    border-radius: 0 0 3px 3px;
}

/* company_overview: SP時のみ「代表取締役 関 駿介」を横並び */
.ceo-title-row {
    display: block;
}

@media (max-width: 768px) {
    .ceo-title-row {
        display: flex;
        align-items: baseline;
        gap: 0.5em;
        flex-wrap: nowrap;
    }
}

