@charset "utf-8";

/* ========================================
// foundation - 基本設定
// ======================================== */
[data-custom] {
    /* root-size */
    font-size: 16px;

    /* color */
    --color--base-primary: #FFFFFF;
    --color--base-secondary: #F7F7F7;

    --color--font-primary: #434343;
    --color--font-secondary: #8B969C;

    --color--border-primary: #DDDDDD;

    --color--main-primary: #286397;

    --color--accent-primary: #D85F09;

    --color--utility-black: #000000;

    /* font-family */
    --font-family--jp: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
    --font-family--en: 'Roboto', Arial, sans-serif;

    /* header-size */
    --header-size--medium: 5rem;

    /* section-size */
    --section-size--medium: 5rem;

    /* container-size */
    --container-size--small: 56rem;
    --container-size--medium: 62rem;

    /* icon */
    --icon--flag: url('../../assets/images/common/icon_flag.svg');

    @media (max-width: 768px) {
        --section-size--medium: 3rem;
    }
}

/* base - 基本設定 */
[data-custom] {
    font-family: var(--font-family--jp);
    font-weight: 500;
    -webkit-font-smoothing: antialiased;
    line-height: 1.5;
    a {
        color: var(--color--main-primary);
    }
    a[href*="tel:"] {
        color: var(--color--font-primary);
        text-decoration: none;
    }
    button {
        appearance: none;
        background: transparent;
        border-radius: 0;
        border-style: solid;
        border-width: 0;
        box-sizing: border-box;
        color: inherit;
        cursor: pointer;
        font: inherit;
        margin: 0;
        min-width: 0;
        padding: 0;
        text-align: inherit;
        text-transform: inherit;
        vertical-align: middle;
    }
    h1, h2, h3, h4, h5, h6 {
        clear: unset;
        font-family: var(--font-family--jp);
        font-weight: 500;
    }
}
.breadCrumb:has(+ [data-custom]) {
    margin-bottom: unset;
}

/* ========================================
// layout - レイアウト
// ======================================== */
/* section - セクション */
[data-custom] {
    .l-section {
        padding-bottom: var(--section-size--medium);
        padding-top: var(--section-size--medium);
    }
    .l-section__body {
        margin-top: 3.5rem;
    }
    @media (max-width: 768px) {
        .l-section__body {
            margin-top: 2rem;
        }
    }
    .l-section__footer {
        margin-top: 3.5rem;
    }
    @media (max-width: 768px) {
        .l-section__footer {
            margin-top: 2rem;
        }
    }
}

/* container - コンテナ */
[data-custom] {
    .l-container {
        margin-left: auto;
        margin-right: auto;
        max-width: var(--container-size--medium);
        width: calc(100% - (1.5rem * 2));
    }
    .l-container.is-small {
        max-width: var(--container-size--small);
    }
    .l-container.is-full {
        max-width: unset;
    }
}

/* anchor - アンカー */
[data-custom] {
    .l-anchor {
        margin-top: calc(var(--header-size--medium) * -1);
        padding-top: var(--header-size--medium);
    }
}

/* main - メイン */
[data-custom] {
    .l-main__container {
        column-gap: 2.5rem;
        display: grid;
        grid-template-columns: 1fr 16rem;
    }
    @media (max-width: 768px) {
        .l-main__container {
            grid-template-columns: unset;
        }
    }
    @media (max-width: 768px) {
        .l-main__section > *:last-child {
            padding-bottom: 0;
        }
    }
}

/* aside - サイドバー */
[data-custom] {
    .l-aside {
        padding-bottom: var(--section-size--medium);
        padding-top: var(--section-size--medium);
    }
    .l-aside__body {
        margin-top: 1rem;
    }
    .l-aside__footer {
        margin-top: 1.5rem;
    }
}

/* ========================================
// component - コンポーネント
// ======================================== */
/* button - ボタンリンク */
[data-custom] {
    .c-button {
        border: solid .125rem var(--color--border-primary);
        border-radius: .25rem;
        color: var(--color--font-primary);
        font-size: .875rem;
        letter-spacing: .125rem;
        padding: .375rem 1.25rem;
        text-decoration: none;
        transition: 
            .3s ease background-color,
            .3s ease border,
            .3s ease color;
    }
    @media (any-hover: hover) {
        .c-button:hover {
            background-color: #D8C40B;
            border-color: #D8C40B;
            color: var(--color--base-primary);
        }
    }
}

/* title - 見出し */
[data-custom] {
    .c-title__secondary {
        font-size: 2rem;
    }
    @media (max-width: 768px) {
        .c-title__secondary {
            font-size: 1.5rem;
        }
    }
    .c-title__tertiary {
        font-size: 1.625rem;
    }
    @media (max-width: 768px) {
        .c-title__tertiary {
            font-size: 1.125rem;
        }
    }
    .c-title__quaternary {
        display: grid;
        row-gap: .5rem;
    }
    .c-title__quaternary::before {
        background-color: var(--color--main-primary);
        content: '';
        height: .1875rem;
        width: 1.25rem;
    }
}

/* text - テキスト */
[data-custom] {
    .c-text {
        font-size: 1.125rem;
        line-height: 2;
    }
    @media (max-width: 768px) {
        .c-text {
            font-size: .875rem;
        }
    }
}

/* page-mv - 固定ページメインビジュアル */
[data-custom] {
    .c-page-mv {
        background-color: var(--color--main-primary);
        padding-bottom: 3rem;
        padding-top: 3rem;
    }
    .c-page-mv__title {
        color: var(--color--base-primary);
        display: grid;
        row-gap: 1.25rem;
    }
    .c-page-mv__title-sub {
        font-family: var(--font-family--en);
        font-size: 2.25rem;
        line-height: 1.25;
    }
    @media (max-width: 768px) {
        .c-page-mv__title-sub {
            font-size: 1.75rem;
        }
    }
    .c-page-mv__title-main {
        font-size: 1rem;
        letter-spacing: .25em;
    }
    @media (max-width: 768px) {
        .c-page-mv__title-main {
            font-size: .875rem;
        }
    }
}

/* list-messages */
[data-custom] {
    .c-list-messages__list {
        display: grid;
        gap: 3rem;
        grid-template-columns: repeat(3, 1fr);
    }
    @media (max-width: 768px) {
        .c-list-messages__list {
            grid-template-columns: unset;
        }
    }
    .c-list-messages__item-link {
        color: var(--color--font-primary);
        display: grid;
        row-gap: .625rem;
        text-decoration: none;
    }
    .c-list-messages__item-image img {
        aspect-ratio: 4 / 3;
    }
    .c-list-messages__item-contents {
        display: grid;
        justify-items: center;
        row-gap: 1.25rem;
    }
    .c-list-messages__item-title {
        font-size: 1.125rem;
    }
    @media (any-hover: hover) {
        .c-list-messages__item-link:hover .c-button {
            background-color: #D8C40B;
            border-color: #D8C40B;
            color: var(--color--base-primary);
        }
    }
}

/* list-card */
.c-list-card__list {
    display: grid;
    gap: 3rem;
    grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 768px) {
    .c-list-card__list {
        gap: 1.5rem;
        grid-template-columns: unset;
    }
}
.c-list-card__item {
    background-color: var(--color--base-primary);
    border-radius: .375rem;
    box-shadow: 0 .125rem .125rem color-mix(in srgb, var(--color--utility-black) 12%, transparent);
    display: grid;
    gap: 0;
    grid-row: 1 / 3;
    grid-template-rows: subgrid;
    overflow: hidden;
}
@media (max-width: 768px) {
    .c-list-card__item {
        gap: unset;
        grid-row: unset;
        grid-template-rows: unset;
    }
}
.c-list-card__item-contents {
    padding: 2rem;
}
@media (max-width: 768px) {
    .c-list-card__item-contents {
        padding: 1.5rem;
    }
}
.c-list-card__item-title {
    color: var(--color--font-secondary);
    font-size: 1.5rem;
}
@media (max-width: 768px) {
    .c-list-card__item-title {
        font-size: 1.125rem;
    }
}
.c-list-card__item-description {
    color: var(--color--font-secondary);
    font-size: 1.125rem;
    line-height: 1.75;
    margin-top: .625rem;
}
@media (max-width: 768px) {
    .c-list-card__item-description {
        font-size: .875rem;
    }
}

/* ========================================
// project - プロジェクト
// ======================================== */
/* company-policy - 私たちの考え */
[data-custom] {
    .p-company-policy__body {
        column-gap: 1.5rem;
        display: grid;
        grid-template-columns: 28.42741935% 1fr;
    }
    @media (max-width: 768px) {
        .p-company-policy__body {
            grid-template-columns: unset;
            row-gap: 2rem;
        }
    }
    .p-company-policy__tab-list {
        border-right: solid .0625rem var(--color--border-primary);
        display: grid;
    }
    @media (max-width: 768px) {
        .p-company-policy__tab-list {
            border: solid .0625rem var(--color--border-primary);
            grid-template-columns: repeat(3, 1fr);
        }
    }
    .p-company-policy__tab-item {
        border-bottom: solid .0625rem transparent;
        border-top: solid .0625rem transparent;
    }
    @media (max-width: 768px) {
        .p-company-policy__tab-item {
            border: unset;
        }
    }
    .p-company-policy__tab-item:has(button[aria-selected="true"]) {
        border-bottom: solid .0625rem var(--color--border-primary);
        border-top: solid .0625rem var(--color--border-primary);
    }
    @media (max-width: 768px) {
        .p-company-policy__tab-item:has(button[aria-selected="true"]) {
            border: unset;
        }
    }
    .p-company-policy__tab-item button {
        color: var(--color--font-primary);
        display: grid;
        padding: 1.125rem;
        width: 100%;
    }
    @media (max-width: 768px) {
        .p-company-policy__tab-item button {
            font-size: .875rem;
            padding: .5rem;
            text-align: center;
        }
    }
    @media (max-width: 768px) {
        .p-company-policy__tab-item:not(:first-child) button {
            border-left: solid .0625rem var(--color--border-primary);
        }
    }
    .p-company-policy__tab-item button[aria-selected="true"] {
        color: var(--color--main-primary);
    }
    @media (max-width: 768px) {
        .p-company-policy__tab-item button[aria-selected="true"] {
            background-color: var(--color--base-secondary);
        }
    }
    .p-company-policy__article {
        display: grid;
        row-gap: 1.25rem;
    }
    .p-company-policy__article-copy {
        font-size: 1.5rem;
        letter-spacing: .125em;
        line-height: 1.75;
    }
    @media (max-width: 768px) {
        .p-company-policy__article-copy {
            font-size: 1.125rem;
        }
    }
    .p-company-policy__article-list {
        counter-reset: company-policy__article-item-counter;
    }
    .p-company-policy__article-item {
        counter-increment: company-policy__article-item-counter;
        font-size: 1.5rem;
        letter-spacing: .125em;
        line-height: 2;
    }
    @media (max-width: 768px) {
        .p-company-policy__article-item {
            font-size: 1.125rem;
        }
    }
    .p-company-policy__article-item::before {
        content: counter(company-policy__article-item-counter) '. ';
    }
}

/* company-message - 代表からのメッセージ */
[data-custom] {
    @media (max-width: 768px) {
        .p-company-message__body {
            display: grid;
            row-gap: 2rem;
        }
    }
    .p-company-message__image {
        float: right;
        margin-left: 1.25rem;
        margin-bottom: .625rem;
        width: 33.48214286%;
    }
    @media (max-width: 768px) {
        .p-company-message__image {
            float: unset;
            margin: 0 auto;
            max-width: 15rem;
            width: 100%;
        }
    }
}

/* company-service - 私たちの提供するサービス */
[data-custom] {
    .p-company-service__list {
        display: grid;
    }
    @media (max-width: 768px) {
        .p-company-service__list {
            row-gap: 1.5rem;
        }
    }
    .p-company-service__item {
        display: flex;
    }
    @media (max-width: 768px) {
        .p-company-service__item {
            flex-direction: column;
        }
    }
    .p-company-service__item:nth-child(2n) {
        flex-direction: row-reverse;
    }
    @media (max-width: 768px) {
        .p-company-service__item:nth-child(2n) {
            flex-direction: column;
        }
    }
    .p-company-service__item-image {
        position: relative;
        width: 50%;
    }
    @media (max-width: 768px) {
        .p-company-service__item-image {
            width: 100%;
        }
    }
    .p-company-service__item-image img {
        height: 100%;
        left: 0;
        position: absolute;
        top: 0;
        width: 100%;
    }
    @media (max-width: 768px) {
        .p-company-service__item-image img {
            aspect-ratio: 17 / 10;
            left: unset;
            position: unset;
            top: unset;
        }
    }
    .p-company-service__item-contents {
        background-color: var(--color--base-secondary);
        display: flex;
        flex-direction: column;
        justify-content: center;
        min-height: 25rem;
        padding: 3rem;
        width: 50%;
    }
    @media (max-width: 768px) {
        .p-company-service__item-contents {
            min-height: unset;
            padding: 1.5rem;
            width: 100%;
        }
    }
    @media (max-width: 768px) {
        .p-company-service__item-title {
            font-size: 1.125rem;
        }
    }
    .p-company-service__item-description {
        margin-top: 1.25rem;
    }
    @media (max-width: 768px) {
        .p-company-service__item-description {
            margin-top: .75rem;
        }
    }
}

/* company-overview - グループ法人一覧 */
[data-custom] {
    .p-company-overview__image {
        display: flex;
        justify-content: center;
    }
    .p-company-overview__body {
        display: grid;
        row-gap: var(--section-size--medium);
    }
    .p-company-overview__article {
        display: grid;
        row-gap: 1.25rem;
    }
    @media (max-width: 768px) {
        .p-company-overview__article {
            row-gap: 1rem;
        }
    }
    .p-company-overview__article-list {
        display: grid;
        grid-template-columns: 25% 1fr;
    }
    @media (max-width: 768px) {
        .p-company-overview__article-list {
            grid-template-columns: 6.5rem 1fr;
        }
    }
    .p-company-overview__article-item {
        border-bottom: solid .0625rem var(--color--border-primary);
        border-left: solid .0625rem var(--color--border-primary);
        border-right: solid .0625rem var(--color--border-primary);
        display: grid;
        grid-column: span 2;
        grid-template-columns: subgrid;
    }
    .p-company-overview__article-item:first-child {
        border-top: solid .0625rem var(--color--border-primary);
    }
    .p-company-overview__article-item-title,
    .p-company-overview__article-item-description {
        font-size: 1.125rem;
        padding: .5rem;
    }
    @media (max-width: 768px) {
        .p-company-overview__article-item-title,
        .p-company-overview__article-item-description {
            font-size: .875rem;
        }
    }
    .p-company-overview__article-item-description {
        border-left: solid .0625rem var(--color--border-primary);
    }
}

/* office-gallery - 写真ギャラリー */
[data-custom] {
    .p-office-gallery__item-image figcaption {
        font-size: 1.125rem;
        margin-top: .5rem;
    }
    @media (max-width: 768px) {
        .p-office-gallery__item-image figcaption {
            font-size: 1rem;
        }
    }
    .p-office-gallery .splide__pagination {
        margin-top: 1rem;
    }
    .p-office-gallery .splide__pagination__page {
        aspect-ratio: 1;
        display: block;
        position: relative;
        width: 1.5rem;
    }
    @media (max-width: 768px) {
        .p-office-gallery .splide__pagination__page {
            width: 1.25rem;
        }
    }
    .p-office-gallery .splide__pagination__page::before {
        aspect-ratio: 1;
        background-color: var(--color--main-primary);
        border: solid .125rem var(--color--main-primary);
        border-radius: 50%;
        content: '';
        left: 50%;
        position: absolute;
        top: 50%;
        translate: -50% -50%;
        width: .625rem;
    }
    @media (max-width: 768px) {
        .p-office-gallery .splide__pagination__page::before {
            width: .5rem;
        }
    }
    .p-office-gallery .splide__pagination__page.is-active::before {
        background-color: transparent;
    }
}

/* office-introduction - 働きやすい職場づくりへの取り組み */
[data-custom] {
    @media (max-width: 768px) {
        .p-office-introduction__body {
            display: grid;
            row-gap: 2rem;
        }
    }
    .p-office-introduction__image {
        float: left;
        margin-bottom: .625rem;
        margin-right: 1.25rem;
        width: 41.93548387%;
    }
    @media (max-width: 768px) {
        .p-office-introduction__image {
            float: unset;
            margin: unset;
            width: 100%;
        }
    }
    .p-office-introduction__description:not(:first-child) {
        margin-top: 2em;
    }
}

/* office-credo - CREDO ～私たちの信条～ */
[data-custom] {
    .p-office-credo__list {
        display: grid;
        gap: 3rem;
        grid-template-columns: repeat(3, 1fr);
    }
    @media (max-width: 768px) {
        .p-office-credo__list {
            gap: 1.5rem;
            grid-template-columns: unset;
        }
    }
    .p-office-credo__item-title {
        display: grid;
        font-size: 1.25rem;
        justify-items: center;
        row-gap: 1.5rem;
    }
    @media (max-width: 768px) {
        .p-office-credo__item-title {
            row-gap: 1.25rem;
        }
    }
    .p-office-credo__item-title::before {
        aspect-ratio: 1;
        background-color: var(--color--main-primary);
        content: '';
        mask-image: var(--icon--flag);
        mask-position: center;
        mask-repeat: no-repeat;
        mask-size: contain;
        width: 3.75rem;
    }
    .p-office-credo__item-description {
        font-size: 1.125rem;
        line-height: 1.75;
        margin-top: 1.25rem;
    }
    @media (max-width: 768px) {
        .p-office-credo__item-description {
            font-size: .875rem;
            margin-top: 1rem;
        }
    }
}

/* messages-introduction - 一緒に働く仲間達 */
[data-custom] {
    @media (max-width: 768px) {
        .p-messages-introduction__body {
            display: grid;
            row-gap: 1.5rem;
        }
    }
    .p-messages-introduction__image {
        float: left;
        margin-bottom: .625rem;
        margin-right: 1.25rem;
        width: 40.32258065%;
    }
    @media (max-width: 768px) {
        .p-messages-introduction__image {
            float: unset;
            margin: unset;
            width: 100%;
        }
    }
    .p-messages-introduction__description {
        margin-top: 1.25rem;
    }
    @media (max-width: 768px) {
        .p-messages-introduction__description {
            margin-top: .75rem;
        }
    }
}

/* messages-single - シングルページ */
[data-custom] {
    .p-messages-single__body {
        column-gap: 3rem;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        row-gap: var(--section-size--medium);
    }
    @media (max-width: 768px) {
        .p-messages-single__body {
            grid-template-columns: unset;
        }
    }
    .p-messages-single__title::before {
        content: '"';
    }
    .p-messages-single__title::after {
        content: '"';
    }
    .p-messages-single__information {
        column-gap: 2.5rem;
        display: grid;
        grid-column: span 2;
        grid-template-columns: 41.93548387% 1fr;
    }
    @media (max-width: 768px) {
        .p-messages-single__information {
            column-gap: unset;
            grid-column: unset;
            grid-template-columns: unset;
            row-gap: 1rem;
        }
    }
    .p-messages-single__information-image img {
        width: 100%;
    }
    .p-messages-single__information-contents {
        display: flex;
        flex-direction: column;
        justify-content: center;
        row-gap: .625rem;
    }
    @media (max-width: 768px) {
        .p-messages-single__information-contents {
            row-gap: .5rem;
        }
    }
    .p-messages-single__information-name {
        align-items: baseline;
        column-gap: 1.25rem;
        display: flex;
    }
    @media (max-width: 768px) {
        .p-messages-single__information-name {
            column-gap: .875rem;
        }
    }
    .p-messages-single__information-name-sub {
        color: var(--color--font-secondary);
        font-size: 1.5rem;
    }
    @media (max-width: 768px) {
        .p-messages-single__information-name-sub {
            font-size: .875rem;
        }
    }
    .p-messages-single__information-graduation {
        column-gap: .25em;
        display: flex;
        font-size: 1.125rem;
    }
    @media (max-width: 768px) {
        .p-messages-single__information-graduation {
            font-size: .875rem;
        }
    }
    .p-messages-single__information-graduation::before {
        content: '[';
    }
    .p-messages-single__information-graduation::after {
        content: ']';
    }
    .p-messages-single__information-affiliation {
        font-size: 1.125rem;
    }
    @media (max-width: 768px) {
        .p-messages-single__information-affiliation {
            font-size: .875rem;
        }
    }
    .p-messages-single__information-position {
        font-size: 1.125rem;
    }
    @media (max-width: 768px) {
        .p-messages-single__information-position {
            font-size: .875rem;
        }
    }
    .p-messages-single__faq {
        display: flex;
        flex-direction: column;
        grid-column: span 2;
        row-gap: 1.25rem;
    }
    @media (max-width: 768px) {
        .p-messages-single__faq {
            grid-column: unset;
            row-gap: .75rem;
        }
    }
    .p-messages-single__faq-question::before {
        content: 'Q. ';
    }
    .p-messages-single__schedule {
        display: flex;
        flex-direction: column;
        row-gap: 1.25rem;
    }
    .p-messages-single__schedule-list {
        display: grid;
        grid-template-columns: auto 1fr;
    }
    .p-messages-single__schedule-item {
        background-color: var(--color--base-secondary);
        border-bottom: solid .0625rem var(--color--border-primary);
        display: grid;
        grid-column: span 2;
        grid-template-columns: subgrid;
    }
    .p-messages-single__schedule-item:nth-child(2n) {
        background-color: var(--color--base-primary);
    }
    .p-messages-single__schedule-item:first-child {
        border-top: solid .0625rem var(--color--border-primary);
    }
    .p-messages-single__schedule-item-time,
    .p-messages-single__schedule-item-contents {
        padding: .5rem;
    }
    .p-messages-single__schedule-item-contents {
        display: grid;
        row-gap: .25rem;
    }
    .p-messages-single__schedule-item-time {
        font-size: 1.125rem;
    }
    @media (max-width: 768px) {
        .p-messages-single__schedule-item-time {
            font-size: .875rem;
        }
    }
    .p-messages-single__schedule-item-title {
        font-size: 1.125rem;
    }
    @media (max-width: 768px) {
        .p-messages-single__schedule-item-title {
            font-size: .875rem;
        }
    }
    .p-messages-single__schedule-item-description {
        font-size: .875rem;
    }
    @media (max-width: 768px) {
        .p-messages-single__schedule-item-description {
            font-size: .75rem;
        }
    }
    .p-messages-single__private {
        display: flex;
        flex-direction: column;
        row-gap: 1.25rem;
    }
}

/* newgraduate-message - 求める人材 */
[data-custom] {
    .p-newgraduate-message__description:not(:first-child) {
        margin-top: 2em;
    }
}

/* newgraduate-entry - エントリー */
[data-custom] {
    .p-newgraduate-entry__body {
        display: grid;
        row-gap: 1.25rem;
    }
    .p-newgraduate-entry__item {
        font-size: 1.125rem;
        line-height: 1.75;
    }
    @media (max-width: 768px) {
        .p-newgraduate-entry__item {
            font-size: .875rem;
        }
    }
    .p-newgraduate-entry__banner {
        align-items: center;
        column-gap: 1rem;
        display: flex;
    }
    @media (max-width: 768px) {
        .p-newgraduate-entry__banner {
            flex-direction: column;
            row-gap: .5rem;
        }
    }
    .p-newgraduate-entry__banner-link {
        align-items: center;
        background-color: var(--color--accent-primary);
        border-radius: .25rem;
        box-shadow: 0 .125rem .1875rem #91430B;
        color: var(--color--base-primary);
        display: inline-flex;
        font-weight: 700;
        height: 3.75rem;
        justify-content: center;
        padding: .5rem 1rem;
        text-align: center;
        text-decoration: none;
        width: 13rem;
    }
    @media (max-width: 768px) {
        .p-newgraduate-entry__banner-link {
            font-size: .875rem;
            height: 3rem;
            width: 100%;
        }
    }
    .p-newgraduate-entry__banner-link span {
        flex-grow: 1;
    }
    .p-newgraduate-entry__banner-link::after {
        aspect-ratio: 1;
        background-color: var(--color--base-primary);
        clip-path: polygon(33% 8%, 75% 50%, 33% 92%, 25% 84%, 59% 50%, 25% 16%);
        content: '';
        width: 1rem;
    }
    @media (max-width: 768px) {
        .p-newgraduate-entry__banner-link::after {
            width: .875rem;
        }
    }
}

/* newgraduate-occupation - 募集職種 */
.p-newgraduate-occupation__item {
    line-height: 1.75;
}
@media (max-width: 768px) {
    .p-newgraduate-occupation__item {
        font-size: .875rem;
    }
}

/* newgraduate-access - 採用のお問い合わせ */
@media (max-width: 768px) {
    .p-newgraduate-contact__description {
        font-size: .875rem;
    }
}

/* ========================================
// utility - ユーティリティ
// ======================================== */
/* padding */
[data-custom] {
    .u-pt-0 {
        padding-top: 0 !important;
    }
    .u-pb-0 {
        padding-bottom: 0 !important;
    }
}

/* margin */
[data-custom] {
    .u-mt-0 {
        margin-top: 0 !important;
    }
    .u-mb-0 {
        margin-bottom: 0 !important;
    }
}

/* text-align */
[data-custom] {
    .u-text-left {
        text-align: left;
    }
    .u-text-center {
        text-align: center;
    }
    .u-text-right {
        text-align: right;
    }
}

/* align-items */
[data-custom] {
    .u-items-start {
        align-items: flex-start;
        display: flex;
    }
    .u-items-center {
        align-items: center;
        display: flex;
    }
    .u-items-end {
        align-items: flex-end;
        display: flex;
    }
}

/* justify-content */
[data-custom] {
    .u-justify-start {
        display: flex;
        justify-content: flex-start;
    }
    .u-justify-center {
        display: flex;
        justify-content: center;
    }
    .u-justify-end {
        display: flex;
        justify-content: flex-end;
    }
}

/* object-fit */
[data-custom] {
    .u-object-cover img {
        height: 100%;
        object-fit: cover;
        width: 100%;
    }
}

/* wbr */
[data-custom] {
    .u-wbr {
        overflow-wrap: break-word;
        word-break: keep-all;
    }
}


/* wrap */
[data-custom] {
    .u-wrap {
        column-gap: 1em;
        display: flex;
        flex-wrap: wrap;
    }
}

/* hidden */
[data-custom] {
    .u-hidden {
        aspect-ratio: 1;
        border: 0;
        clip: rect(0, 0, 0, 0);
        clip-path: inset(50%);
        overflow: hidden;
        padding: 0;
        position: absolute;
        white-space: nowrap;
        width: .0625rem;
    }
    @media (min-width: 769px) {
        .u-desktop-hidden {
            display: none;
        }
    }
    @media (max-width: 768px) {
        .u-mobile-hidden {
            display: none;
        }
    }
}

/* background */
[data-custom] {
    .u-background-primary {
        background-color: var(--color--base-primary);
    }
    .u-background-secondary {
        background-color: var(--color--base-secondary);
    }
}

/* ========================================
// animation - アニメーション
// ======================================== */
[data-custom] {
    [data-animation-fadein] {
        transition:
            .9s cubic-bezier(.17, .67, .55, 1.05) opacity,
            .9s cubic-bezier(.17, .67, .55, 1.05) translate,
            .9s cubic-bezier(.17, .67, .55, 1.05) visibility;
    }
    [data-animation-fadein]:nth-child(n+2) {
        transition-delay: .15s;
    }
    [data-animation-fadein="false"] {
        opacity: 0;
        translate: 0 1.5rem;
        visibility: hidden;
    }
    [data-animation-fadein="true"] {
        opacity: 1;
        translate: 0 0;
        visibility: visible;
    }
}
