@charset "utf-8";

/*
 * TOPページ：ヘッダー・ヒーローセクション（リファクタ済み）
 * 規約: html font-size 10px, rem 表記, BEM風 snake_case, クラスセレクタのみ
 * ブレークポイント: SP ~639px / Tablet 640px~959px / PC 960px~
 */

/* ========== ヘッダー（SP=ロゴ+ハム+パネル / PC=ロゴ+横ナビ+ボタン+ハム） ========== */

.header {
    position: relative;
    z-index: 3000;
}

.header_logo {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 3010;
    display: flex;
    align-items: center;
    padding: 1.6rem 0 0 1.6rem;
    text-decoration: none;
    color: inherit;
}

.header_logo_img_wrap {
    display: block;
}

.header_logo_img {
    display: block;
    width: 12rem;
    max-width: 42vw;
    height: auto;
    object-fit: contain;
}

.header_overlay {
    position: fixed;
    inset: 0;
    z-index: 3001;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.header.is-active .header_overlay {
    opacity: 1;
    visibility: visible;
}

.header_panel {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 3002;
    width: 88%;
    max-width: 36rem;
    height: 100vh;
    background: #fff;
    box-shadow: -8px 0 32px rgba(0, 0, 0, 0.15);
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    overflow-y: auto;
    overflow-x: hidden;
}

.header.is-active .header_panel {
    transform: translateX(0);
}

.header_panel_nav {
    height: 100%;
}

.header_panel_nav_inner {
    padding: 8rem 2rem 4rem 2.4rem;
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

.header_panel_list {
    list-style: none;
    margin: 0 0 2.4rem;
    padding: 0;
}

.header_panel_list>li {
    margin: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.header_panel_link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.6rem 0;
    font-size: 1.5rem;
    font-weight: 600;
    color: #333;
    text-decoration: none;
    transition: color 0.2s ease, background 0.2s ease;
}

.header_panel_link:hover {
    color: var(--primary-color, #ff8a00);
}

.header_panel_small {
    display: block;
}

.header_panel_arrow {
    display: inline-block;
    width: 2.4rem;
    height: 2.4rem;
    border: 2px solid currentColor;
    border-radius: 50%;
    position: relative;
    flex-shrink: 0;
}

.header_panel_arrow::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0.5rem;
    width: 0.6rem;
    height: 0.6rem;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
}

.header_panel_sub {
    list-style: none;
    margin: 0 0 0 1.6rem;
    padding: 0 0 1rem;
}

.header_panel_sub a {
    display: block;
    padding: 0.6rem 0;
    font-size: 1.4rem;
    color: #555;
    text-decoration: none;
}

.header_panel_sub a:hover {
    color: var(--primary-color, #ff8a00);
}

.header_panel_btns {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    margin-bottom: 2.4rem;
}

.header_panel_btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.6rem 2rem;
    font-size: 1.5rem;
    font-weight: 700;
    text-decoration: none;
    border-radius: 0.8rem;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.header_panel_btn_en {
    display: block;
    font-size: 1.2rem;
    letter-spacing: 0.1em;
    margin-bottom: 0.2rem;
}

.header_panel_btn_apply {
    background: var(--primary-color, #ff8a00);
    color: #fff;
}

.header_panel_btn_recruit {
    background: #333;
    color: #fff;
}

.header_panel_arrow_white,
.header_panel_arrow_black {
    border-color: rgba(255, 255, 255, 0.8);
}

.header_panel_arrow_black {
    border-color: rgba(255, 255, 255, 0.6);
}

.header_panel_external {
    margin-top: auto;
    padding-top: 2rem;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.header_panel_external_link {
    display: block;
    padding: 0.8rem 0;
    font-size: 1.4rem;
    color: #555;
    text-decoration: none;
}

.header_panel_external_link:hover {
    color: var(--primary-color, #ff8a00);
}

/* 固定バー（SP: 右側にハムのみ / PC: ナビ+ボタン+ハム） */
.header_fixed {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 3005;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.header_swan {
    display: none;
    position: absolute;
    right: 2rem;
    top: 50%;
    transform: translateY(-50%);
    width: 5rem;
    height: 5rem;
    pointer-events: none;
    opacity: 0.85;
}

.header_swan_img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.header_fixed_inner {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 1.4rem 1.6rem;
    min-height: 6rem;
}

.header_nav {
    display: none;
}

.header_nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 0.2rem;
    margin: 0 0 0 auto;
    width: fit-content;
}

.header_nav>ul>li {
    position: relative;
    margin: 0;
}

.header_nav>ul>li>a {
    display: block;
    padding: 0.8rem 1.2rem;
    font-size: 1.4rem;
    font-weight: 600;
    color: #333;
    text-decoration: none;
    transition: color 0.2s ease;
}

.header_nav>ul>li>a:hover {
    color: var(--primary-color, #ff8a00);
}

.header_nav_lower {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 20rem;
    padding: 0.8rem 0;
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    border-radius: 0.8rem;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
}

.header_nav>ul>li:hover .header_nav_lower {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.header_nav_lower ul {
    flex-direction: column;
    gap: 0;
}

.header_nav_lower a {
    display: block;
    padding: 1rem 1.6rem;
    font-size: 1.4rem;
    color: #333;
    text-decoration: none;
}

.header_nav_lower a:hover {
    background: rgba(255, 138, 0, 0.08);
    color: var(--primary-color, #ff8a00);
}

.header_side {
    display: none;
    align-items: center;
    gap: 1rem;
}

.header_side_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.8rem 1.6rem;
    font-size: 1.4rem;
    font-weight: 700;
    color: #333;
    text-decoration: none;
    border: 2px solid #333;
    border-radius: 999px;
    transition: background 0.2s ease, color 0.2s ease;
}

.header_side_btn:hover {
    background: #333;
    color: #fff;
}

.header_side_btn_primary {
    background: var(--primary-color, #ff8a00);
    border-color: var(--primary-color, #ff8a00);
    color: #fff;
}

.header_side_btn_primary:hover {
    background: #e67d00;
    border-color: #e67d00;
    color: #fff;
}

.header_hamburger {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 4.4rem;
    height: 4.4rem;
    padding: 0;
    border: none;
    border-radius: 0.8rem;
    background: var(--primary-color, #ff8a00);
    color: #fff;
    cursor: pointer;
    flex-shrink: 0;
    transition: transform 0.2s ease, background 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.header_hamburger_line {
    display: block;
    width: 2.2rem;
    height: 0.2rem;
    background: #fff;
    border-radius: 0.1rem;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.header.is-active .header_hamburger_line:nth-child(1) {
    transform: translateY(0.6rem) rotate(45deg);
}

.header.is-active .header_hamburger_line:nth-child(2) {
    opacity: 0;
}

.header.is-active .header_hamburger_line:nth-child(3) {
    transform: translateY(-0.6rem) rotate(-45deg);
}

body.body_drawer_open {
    overflow: hidden;
}

/* Tablet */
@media screen and (min-width: 640px) {
    .header_logo {
        padding: 2rem 0 0 2.4rem;
    }

    .header_logo_img {
        width: 14rem;
        max-width: none;
    }

    .header_panel {
        width: 70%;
        max-width: 40rem;
    }

    .header_fixed_inner {
        padding: 1.6rem 2.4rem;
        min-height: 6.4rem;
    }
}

/* PC: 960px ~ 横ナビ・サイドボタン表示、ハンバーガーは非表示 */
@media screen and (min-width: 960px) {
    .header_logo {
        padding: 2.4rem 0 0 4rem;
    }

    .header_logo_img {
        width: 15.3rem;
    }

    .header_swan {
        display: block;
        right: 13rem;
        width: 5.5rem;
        height: 5.5rem;
    }

    .header_fixed_inner {
        justify-content: flex-end;
        gap: 2rem;
        padding: 2rem 4rem 2rem 22rem;
        min-height: 8rem;
    }

    .header_nav {
        display: block;
        flex: 1;
        margin: 0;
    }

    .header_side {
        display: flex;
    }

    .header_hamburger {
        display: none !important;
    }
}

/* PCでも横幅が狭い場合は重なり回避のため非表示 */
@media screen and (min-width: 960px) and (max-width: 1120px) {
    .header_swan {
        display: none;
    }
}

/* ========== ヒーローセクション（モバイルファースト） ========== */

.hero_section {
    position: relative;
}

.hero_wrap {
    position: relative;
    padding: 7rem 1.6rem 5rem;
}

.hero_swan {
    position: absolute;
    pointer-events: none;
    z-index: 6; /* テキストより下、スライドより上 */
    opacity: 0.78;
}

.hero_swan_img {
    width: 100%;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 0.4rem 1.2rem rgba(0, 0, 0, 0.08));
}

.hero_swan_left {
    left: -2rem;
    top: 18%;
    width: 11rem;
    max-width: 24vw;
}

.hero_swan_right {
    right: -2rem;
    bottom: 18%;
    width: 10rem;
    max-width: 22vw;
}

@media screen and (max-width: 639px) {
    .hero_swan_left { left: -1.2rem; top: 16%; width: 7.5rem; }
    .hero_swan_right { right: -1.2rem; bottom: 20%; width: 7rem; }
}

.hero_slide {
    position: relative;
    width: 100%;
    height: 38rem;
    border-radius: 1.6rem;
    overflow: hidden;
}

.hero_slide_inner {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
}

.hero_slide_inner.swiper {
    overflow: hidden;
}

.hero_slide_inner .swiper-wrapper {
    height: 100%;
}

.hero_slide_item {
    width: 100%;
    height: 100%;
    z-index: 1;
}

.hero_slide_item.swiper-slide-active .hero_slide_fig {
    transform: scale(1);
    transition: transform 6s ease;
}

.hero_slide_fig {
    display: block;
    width: 100%;
    height: 100%;
    transform: scale(1.2);
    transition: transform 0s 2s ease;
}

.hero_slide_img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.hero_copy {
    position: absolute;
    z-index: 11;
    bottom: 6.6rem;
    left: 3rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1em;
}

.hero_copy_txt {
    display: block;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.08em;
    color: #fff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.hero_en {
    position: absolute;
    z-index: 11;
    bottom: 6.6rem;
    right: 2.2rem;
    display: block;
    color: #fff;
    font-weight: 700;
    font-family: "Roboto", "Jost", sans-serif;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.hero_en_txt {
    display: block;
    text-align: right;
    font-size: 1.1rem;
    line-height: 1.6;
    letter-spacing: 0.15em;
}

.hero_en_ttl {
    display: block;
    text-align: right;
    font-size: 2.8rem;
    line-height: 1;
    letter-spacing: 0.06em;
}

.hero_page {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.4rem;
    flex-direction: column;
    position: absolute;
    z-index: 100;
    top: 0;
    bottom: 0;
    right: 2.4rem;
    margin: auto;
    height: fit-content;
    width: 0.5rem;
}

.hero_page_nav {
    width: 100%;
    height: 3.2rem;
    padding: 0;
    border: none;
    border-radius: 999px;
    background-color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
    transition: background-color 0.25s ease;
}

.hero_page_nav_active {
    background-color: #c79a54;
}

/* Tablet: 640px ~ 959px */
@media screen and (min-width: 640px) {
    .hero_wrap {
        padding: 8rem 2.4rem 6rem;
    }

    .hero_slide {
        height: 48rem;
        border-radius: 2.4rem;
    }

    .hero_copy {
        bottom: 8rem;
        left: 4rem;
        gap: 0.15em;
    }

    .hero_copy_txt {
        font-size: 2.6rem;
    }

    .hero_en {
        bottom: 8rem;
        right: 3rem;
    }

    .hero_en_txt {
        font-size: 1.4rem;
    }

    .hero_en_ttl {
        font-size: 5rem;
    }

    .hero_page {
        right: 3.5rem;
        width: 0.7rem;
    }

    .hero_page_nav {
        height: 4rem;
    }
}

/* PC: 960px ~ */
@media screen and (min-width: 960px) {
    .hero_wrap {
        padding: 10rem 2.5rem 13rem;
    }

    .hero_slide {
        height: 65rem;
        border-radius: 3rem;
    }

    .hero_copy {
        bottom: 16rem;
        left: 5rem;
        gap: 0.2em;
    }

    .hero_copy_txt {
        font-size: 4rem;
        letter-spacing: 0.1em;
    }

    .hero_en {
        bottom: 16rem;
        right: 5rem;
    }

    .hero_en_txt {
        font-size: 3rem;
        letter-spacing: 0.2em;
    }

    .hero_en_ttl {
        font-size: 8rem;
        letter-spacing: 0.1em;
    }

    .hero_page {
        right: 4.2rem;
        width: 0.7rem;
    }

    .hero_page_nav {
        height: 5rem;
    }
}

/* ========== style.css から移動（ヘッダー・ヒーロー・正） ========== */
@media (min-width:1512px), print {

    .header__hamburger,
    .header__overlay,
    .header__drawer {
        display: none !important;
    }

    .header {
        position: fixed;
        width: 100%;
        height: 110px;
        top: 0;
        z-index: var(--z_upper);
        transition: padding .5s, background .5s, border-radius .5s;
        will-change: padding, background, border-radius
    }

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

    .header__logo a {
        display: inline-flex;
        align-items: center
    }

    .header__logo a .image {
        width: 140px;
        height: 102px;
        flex-shrink: 0;
        margin-right: 15px;
        background: url("../image/common/logo_v57f0e62dfdc7c951801cfe43f5d10a1f.svg")no-repeat center;
        background-size: cover;
        transition: width .5s, height .5s;
        will-change: width, height
    }

    .header__logo a .text {
        color: #fff;
        font-size: 2.46rem;
        line-height: 1.4;
        letter-spacing: .2em;
        text-align: right;
        transition: font-size .5s;
        will-change: font-size
    }

    .header__content {
        display: flex;
        align-items: center
    }

    .header__content .link-wrap {
        display: flex;
        align-items: center
    }

    .header__content .link-wrap .link {
        width: 150px;
        height: 60px;
        border-radius: 100px;
        margin: 0 5px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.6rem;
        font-weight: 700;
        line-height: 1.4;
        text-align: center;
        letter-spacing: 0;
        box-shadow: 0 2px 6px rgba(0, 0, 0, .1)
    }

    .header__content .link-wrap .link .icon-blank {
        flex-shrink: 0;
        margin-left: 8px;
        width: 10px;
        height: 10px;
        background: url("../image/common/ic_blank_v199383e3a030c7d48affe29c0f1f1d4f.svg")no-repeat center;
        background-size: 100% 100%
    }

    .header__content .link-wrap .link01 {
        background: linear-gradient(0deg, #fff, #fff), linear-gradient(30.82deg, #ecd519 16.11%, #ffba2d 41.78%, #11bada 118.78%)
    }

    .header__content .link-wrap .link02 {
        color: #fff;
        background: var(--primary-color);
        filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, .2));
        transform: translateZ(0)
    }

    .header__content .link-wrap .link02 .icon-blank {
        background: url("../image/common/ic_blank_white_v1d952e3b1a283cdf5ea6f9e001b9bc07.svg")no-repeat center;
        background-size: 100% 100%
    }

    .header__hamburger {
        cursor: pointer;
        width: 38.5px;
        height: 29px;
        margin-left: 35px;
        background: url("../image/common/ic_hamburger_va8ba6b65b077bad57b880ae594d25f49.svg")no-repeat center;
        background-size: cover;
        z-index: 1000;
        transition: background .5s;
        will-change: background
    }

    .header__hamburger.is-active {
        width: 30px;
        height: 30px;
        background: url("../image/common/ic_close_vf060dc32e18e9af3e13a5180f5e1824b.svg")no-repeat center;
        background-size: cover
    }

    .header__menu {
        position: fixed;
        top: 0;
        right: -100%;
        width: 100%;
        height: 100vh;
        display: flex;
        background-color: #fff;
        overflow: hidden;
        transition: right .5s ease-in-out;
        will-change: right
    }

    .header__menu.is-active {
        right: 0
    }

    .header__menu.is-active .header-ill03 span {
        animation: leftToRight 1s forwards
    }

    .header__menu.is-active .header-ill04 span {
        animation: rightToLeft 1s forwards
    }

    .header__menu .header-ill03 {
        display: block;
        position: absolute;
        width: 466px;
        height: 336px;
        top: 0;
        left: 0
    }

    .header__menu .header-ill03 span {
        display: block;
        position: absolute;
        opacity: 0
    }

    .header__menu .header-ill03 span.ill03_01 {
        left: 230px;
        width: 259px;
        height: 78px;
        background: url("../image/common/header/ill03_01_v679bd06afbf608032943a78395b04fb6.webp")no-repeat center;
        background-size: 100%
    }

    .header__menu .header-ill03 span.ill03_02 {
        width: 344px;
        height: 139px;
        background: url("../image/common/header/ill03_02_v7aa4a8505d4e40bf19dbb5925d10ddc4.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .3s
    }

    .header__menu .header-ill03 span.ill03_03 {
        top: 50px;
        width: 130px;
        height: 218px;
        background: url("../image/common/header/ill03_03_vbd8ebbf8a940f6aafcba925c3fe972df.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .7s
    }

    .header__menu .header-ill04 {
        display: block;
        position: absolute;
        width: 466px;
        height: 336px;
        bottom: 0;
        right: 0
    }

    .header__menu .header-ill04 span {
        display: block;
        position: absolute;
        right: 0;
        bottom: 0;
        opacity: 0
    }

    .header__menu .header-ill04 span.ill04_01 {
        bottom: -63px;
        right: 189px;
        width: 367px;
        height: 108px;
        background: url("../image/common/header/ill04_01_ve7289db233dcb72fb596f60103f70e8b.webp")no-repeat center;
        background-size: 100%
    }

    .header__menu .header-ill04 span.ill04_02 {
        bottom: -63px;
        width: 390px;
        height: 226px;
        background: url("../image/common/header/ill04_02_v0a6487e92c99b76de59ac1cae3af5626.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .5s
    }

    .header__menu .header-ill04 span.ill04_03 {
        bottom: -63px;
        width: 224px;
        height: 218px;
        background: url("../image/common/header/ill04_03_v97bbdee9584ef599f9fabcc9dd277cb8.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .8s
    }

    .header__menu .header-ill04 span.ill04_04 {
        bottom: 57px;
        right: 40px;
        width: 77px;
        height: 205px;
        background: url("../image/common/header/ill04_04_vf5888c9b2e3e73d794e2de53a9d67dba.webp")no-repeat center;
        background-size: 100%;
        animation-delay: 1.2s
    }

    .header__nav {
        position: relative;
        width: 1194px;
        margin: auto;
        padding-bottom: 20px;
        display: flex;
        justify-content: space-between
    }

    .header__nav .col {
        width: 350px
    }

    .header__nav .col .menu-logo {
        display: flex;
        align-items: center;
        margin-top: 45px;
        margin-bottom: 202px
    }

    .header__nav .col .menu-logo .image {
        width: 153px;
        height: 107px;
        flex-shrink: 0;
        margin-right: 25px
    }

    .header__nav .col .menu-logo .text {
        font-size: 2.55rem;
        line-height: 1.41;
        font-weight: 500;
        text-align: right;
        letter-spacing: .2em
    }

    .header__nav .col .link {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 40px;
        width: 100%;
        height: 110px;
        border: 1px solid var(--primary-color);
        font-size: 2.8rem;
        font-weight: 700;
        border-radius: 10px;
        letter-spacing: .16em;
        border: 1px solid var(--primary-color)
    }

    .header__nav .col .link:not(:last-child) {
        margin-bottom: 20px
    }

    .header__nav .col .link:last-of-type {
        margin-bottom: 32px
    }

    .header__nav .col .link .icon-arrow {
        flex-shrink: 0;
        display: block;
        width: 16px;
        height: 16px;
        margin-left: 15px;
        background: url("../image/common/ic_forward_v12332ac76b6b229af7dcdecd93f5f56d.svg")no-repeat center;
        background-size: cover;
        transition: transform .5s;
        will-change: transform
    }

    .header__nav .col .link02 {
        color: #fff;
        background: var(--primary-color)
    }

    .header__nav .col .link02 .icon-arrow {
        background: url("../image/common/ic_forward_white_v6550ccfdb27974fcf5859e331fa7519a.svg")no-repeat center;
        background-size: cover
    }

    @media (hover:hover) {
        .header__nav .col .link:hover {
            opacity: 1
        }

        .header__nav .col .link:hover .icon-arrow {
            transform: translateX(8px)
        }
    }

    .header__nav .col .social {
        display: flex
    }

    .header__nav .col .social a {
        margin-right: 25px
    }

    .header__nav .col .nav-menu {
        border-bottom: 1px solid var(--primary-color)
    }

    .header__nav .col .nav-menu__item {
        font-size: 2.8rem;
        line-height: 1.4;
        font-weight: 700;
        letter-spacing: .1em;
        padding: 38px 0 40px
    }

    .header__nav .col .nav-menu__sub {
        border-top: 1px solid #cadbe0;
        padding: 26px 0 34px;
        margin-top: -16px
    }

    .header__nav .col .nav-menu__sub li:not(:last-child) {
        margin-bottom: 28px
    }

    .header__nav .col .nav-menu__sub a {
        font-size: 2rem;
        line-height: 1.4;
        font-weight: 500;
        letter-spacing: .1em
    }

    .header__nav .col .nav-menu .icon-arrow {
        display: block;
        width: 16px;
        height: 16px;
        background: url("../image/common/ic_forward_v12332ac76b6b229af7dcdecd93f5f56d.svg")no-repeat center;
        background-size: cover;
        transition: transform .5s;
        will-change: transform
    }

    .header__nav .col .nav-menu a {
        display: flex;
        align-items: center;
        justify-content: space-between
    }

    @media (hover:hover) {
        .header__nav .col .nav-menu a:hover {
            opacity: 1
        }

        .header__nav .col .nav-menu a:hover .icon-arrow {
            transform: translateX(8px)
        }
    }

    .header.is-fixed {
        box-shadow: 0 4px 6px rgba(0, 0, 0, .1);
        border-radius: 0 0 30px 30px;
        padding: 25px 40px 25px 40px
    }

    .header.is-fixed .header__logo a {
        display: inline-flex;
        align-items: center;
        transform: translateY(4px)
    }

    .header.is-fixed .header__logo a .image {
        width: 72px;
        height: 50px;
        flex-shrink: 0;
        margin-right: 7px;
        background: url("../image/common/logo_black_v31da5dd9b47bb809487ab1102dd0a0bf.svg")no-repeat center;
        background-size: cover
    }

    .header.is-fixed .header__logo a .text {
        color: var(--primary-color);
        font-size: 1.2rem;
        line-height: 1.42;
        letter-spacing: .2em;
        font-weight: 500
    }

    .header-ill01 {
        display: block;
        position: absolute;
        width: 466px;
        height: 336px;
        top: 0;
        left: 0;
        z-index: 12
    }

    .header-ill01.active span {
        animation: leftToRight .5s forwards
    }

    .header-ill01 span {
        display: block;
        position: absolute;
        z-index: -1;
        left: 0;
        opacity: 0
    }

    .header-ill01 span.ill01_01 {
        width: 246px;
        height: 297px;
        background: url("../image/common/header/ill01_01_ve20d3c6a37b8d349b46aadc17a771917.webp")no-repeat center;
        background-size: 100%
    }

    .header-ill01 span.ill01_02 {
        width: 263px;
        height: 114px;
        background: url("../image/common/header/ill01_02_vb0d20fc2f44b8581e8279b439e029385.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .3s
    }

    .header-ill01 span.ill01_03 {
        width: 466px;
        height: 315px;
        background: url("../image/common/header/ill01_03_v463e400dc44bedb1b138f864dbf8e957.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .7s
    }

    .header-ill01 span.ill01_04 {
        top: 254px;
        left: 144px;
        width: 69px;
        height: 82px;
        background: url("../image/common/header/ill01_04_v600e2a30294d800bd10195729e844d44.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .9s
    }

    .header-ill02 {
        display: block;
        position: absolute;
        width: 466px;
        height: 336px;
        top: 0;
        right: 0
    }

    .header-ill02.active span {
        animation: rightToLeft02 .8s forwards
    }

    .header-ill02 span {
        display: block;
        position: absolute;
        z-index: -1;
        right: 0;
        opacity: 0
    }

    .header-ill02 span.ill02_01 {
        width: 155px;
        height: 263px;
        background: url("../image/common/header/ill02_01_v8bf0ff21f023eaefb37dac653ebcb55c.webp")no-repeat center;
        background-size: 100%
    }

    .header-ill02 span.ill02_02 {
        top: 202px;
        width: 473px;
        height: 253px;
        background: url("../image/common/header/ill02_02_vd10c2608f36ee395c5c2690f077d1ebf.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .4s
    }

    .header-ill02 span.ill02_03 {
        top: 100px;
        width: 487px;
        height: 369px;
        background: url("../image/common/header/ill02_03_vf7119652a87a3648867a943ffa71debd.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .8s
    }

    .header-ill02 span.ill02_04 {
        top: 330px;
        width: 616px;
        height: 207px;
        background: url("../image/common/header/ill02_04_vfd50bc12fdd5412a67afd317537909a6.webp")no-repeat center;
        background-size: 100%;
        animation-delay: 1.2s
    }
}

@media (min-width:769px) and (max-width:1511px) {

    .header__hamburger,
    .header__overlay,
    .header__drawer {
        display: none !important;
    }

    .header {
        position: fixed;
        width: 100%;
        top: 0;
        z-index: var(--z_upper);
        background: transparent;
        transition: padding .5s, background .5s, border-radius .5s;
        will-change: padding, background, border-radius
    }

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

    .header__logo a {
        display: inline-flex;
        align-items: center
    }

    .header__logo a .image {
        width: 9.26vw;
        height: 6.75vw;
        flex-shrink: 0;
        margin-right: .99vw;
        background: url("../image/common/logo_v57f0e62dfdc7c951801cfe43f5d10a1f.svg")no-repeat center;
        background-size: cover;
        transition: width .5s, height .5s;
        will-change: width, height
    }

    .header__logo a .text {
        color: #fff;
        font-size: 1.63vw;
        line-height: 1.4;
        letter-spacing: .2em;
        text-align: right;
        transition: font-size .5s;
        will-change: font-size
    }

    .header__content {
        display: flex;
        align-items: center
    }

    .header__content .link-wrap {
        display: flex;
        align-items: center
    }

    .header__content .link-wrap .link {
        width: 9.92vw;
        height: 3.97vw;
        border-radius: 6.61vw;
        margin: 0 .33vw;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.06vw;
        font-weight: 700;
        line-height: 1.4;
        text-align: center;
        letter-spacing: 0;
        box-shadow: 0 .13vw .4vw rgba(0, 0, 0, .1)
    }

    .header__content .link-wrap .link .icon-blank {
        flex-shrink: 0;
        margin-left: .53vw;
        width: .66vw;
        height: .66vw;
        background: url("../image/common/ic_blank_v199383e3a030c7d48affe29c0f1f1d4f.svg")no-repeat center;
        background-size: 100% 100%
    }

    .header__content .link-wrap .link01 {
        background: linear-gradient(0deg, #fff, #fff), linear-gradient(30.82deg, #ecd519 16.11%, #ffba2d 41.78%, #11bada 118.78%)
    }

    .header__content .link-wrap .link02 {
        color: #fff;
        background: var(--primary-color);
        filter: drop-shadow(.13vw .13vw .26vw rgba(0, 0, 0, .2));
        transform: translateZ(0)
    }

    .header__content .link-wrap .link02 .icon-blank {
        background: url("../image/common/ic_blank_white_v1d952e3b1a283cdf5ea6f9e001b9bc07.svg")no-repeat center;
        background-size: 100% 100%
    }

    .header__hamburger {
        cursor: pointer;
        width: 2.55vw;
        height: 1.92vw;
        margin-left: 2.31vw;
        background: url("../image/common/ic_hamburger_va8ba6b65b077bad57b880ae594d25f49.svg")no-repeat center;
        background-size: cover;
        z-index: 1000;
        transition: background .5s;
        will-change: background
    }

    .header__hamburger.is-active {
        width: 1.98vw;
        height: 1.98vw;
        background: url("../image/common/ic_close_vf060dc32e18e9af3e13a5180f5e1824b.svg")no-repeat center;
        background-size: cover
    }

    .header__menu {
        position: fixed;
        top: 0;
        right: -100%;
        width: 100%;
        height: 100vh;
        display: flex;
        background-color: #fff;
        overflow: hidden;
        transition: right .5s ease-in-out;
        will-change: right
    }

    .header__menu.is-active {
        right: 0
    }

    .header__menu.is-active .header-ill03 span {
        animation: leftToRight 1s forwards
    }

    .header__menu.is-active .header-ill04 span {
        animation: rightToLeft 1s forwards
    }

    .header__menu .header-ill03 {
        display: block;
        position: absolute;
        width: 30.82vw;
        height: 22.22vw;
        top: 0;
        left: 0
    }

    .header__menu .header-ill03 span {
        display: block;
        position: absolute;
        opacity: 0
    }

    .header__menu .header-ill03 span.ill03_01 {
        left: 15.21vw;
        width: 17.13vw;
        height: 5.16vw;
        background: url("../image/common/header/ill03_01_v679bd06afbf608032943a78395b04fb6.webp")no-repeat center;
        background-size: 100%
    }

    .header__menu .header-ill03 span.ill03_02 {
        width: 22.75vw;
        height: 9.19vw;
        background: url("../image/common/header/ill03_02_v7aa4a8505d4e40bf19dbb5925d10ddc4.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .3s
    }

    .header__menu .header-ill03 span.ill03_03 {
        top: 3.31vw;
        width: 8.6vw;
        height: 14.42vw;
        background: url("../image/common/header/ill03_03_vbd8ebbf8a940f6aafcba925c3fe972df.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .7s
    }

    .header__menu .header-ill04 {
        display: block;
        position: absolute;
        width: 30.82vw;
        height: 22.22vw;
        bottom: 0;
        right: 0
    }

    .header__menu .header-ill04 span {
        display: block;
        position: absolute;
        right: 0;
        bottom: 0;
        opacity: 0
    }

    .header__menu .header-ill04 span.ill04_01 {
        bottom: -4.17vw;
        right: 12.5vw;
        width: 24.27vw;
        height: 7.14vw;
        background: url("../image/common/header/ill04_01_ve7289db233dcb72fb596f60103f70e8b.webp")no-repeat center;
        background-size: 100%
    }

    .header__menu .header-ill04 span.ill04_02 {
        bottom: -4.17vw;
        width: 25.79vw;
        height: 14.95vw;
        background: url("../image/common/header/ill04_02_v0a6487e92c99b76de59ac1cae3af5626.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .5s
    }

    .header__menu .header-ill04 span.ill04_03 {
        bottom: -4.17vw;
        width: 14.81vw;
        height: 14.42vw;
        background: url("../image/common/header/ill04_03_v97bbdee9584ef599f9fabcc9dd277cb8.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .8s
    }

    .header__menu .header-ill04 span.ill04_04 {
        bottom: 3.77vw;
        right: 2.65vw;
        width: 5.09vw;
        height: 13.56vw;
        background: url("../image/common/header/ill04_04_vf5888c9b2e3e73d794e2de53a9d67dba.webp")no-repeat center;
        background-size: 100%;
        animation-delay: 1.2s
    }

    .header__nav {
        position: relative;
        width: 78.97vw;
        margin: auto;
        padding-bottom: 1.32vw;
        display: flex;
        justify-content: space-between
    }

    .header__nav .col {
        width: 23.15vw
    }

    .header__nav .col .menu-logo {
        display: flex;
        align-items: center;
        margin-top: 2.98vw;
        margin-bottom: 13.36vw
    }

    .header__nav .col .menu-logo .image {
        width: 10.12vw;
        height: 7.08vw;
        flex-shrink: 0;
        margin-right: 1.65vw
    }

    .header__nav .col .menu-logo .text {
        font-size: 1.69vw;
        line-height: 1.41;
        font-weight: 500;
        text-align: right;
        letter-spacing: .2em
    }

    .header__nav .col .link {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 2.65vw;
        width: 100%;
        height: 7.28vw;
        border: 1px solid var(--primary-color);
        font-size: 1.85vw;
        font-weight: 700;
        border-radius: .66vw;
        letter-spacing: .16em;
        border: 1px solid var(--primary-color)
    }

    .header__nav .col .link:not(:last-child) {
        margin-bottom: 1.32vw
    }

    .header__nav .col .link:last-of-type {
        margin-bottom: 2.12vw
    }

    .header__nav .col .link .icon-arrow {
        flex-shrink: 0;
        display: block;
        width: 1.06vw;
        height: 1.06vw;
        margin-left: .99vw;
        background: url("../image/common/ic_forward_v12332ac76b6b229af7dcdecd93f5f56d.svg")no-repeat center;
        background-size: cover;
        transition: transform .5s;
        will-change: transform
    }

    .header__nav .col .link02 {
        color: #fff;
        background: var(--primary-color)
    }

    .header__nav .col .link02 .icon-arrow {
        background: url("../image/common/ic_forward_white_v6550ccfdb27974fcf5859e331fa7519a.svg")no-repeat center;
        background-size: cover
    }

    @media (hover:hover) {
        .header__nav .col .link:hover {
            opacity: 1
        }

        .header__nav .col .link:hover .icon-arrow {
            transform: translateX(.53vw)
        }
    }

    .header__nav .col .social {
        display: flex
    }

    .header__nav .col .social a {
        margin-right: 1.65vw
    }

    .header__nav .col .nav-menu {
        border-bottom: 1px solid var(--primary-color)
    }

    .header__nav .col .nav-menu__item {
        font-size: 1.85vw;
        line-height: 1.4;
        font-weight: 700;
        letter-spacing: .1em;
        padding: 2.51vw 0 2.65vw
    }

    .header__nav .col .nav-menu__sub {
        border-top: 1px solid #cadbe0;
        padding: 1.72vw 0 2.25vw;
        margin-top: -1.06vw
    }

    .header__nav .col .nav-menu__sub li:not(:last-child) {
        margin-bottom: 1.85vw
    }

    .header__nav .col .nav-menu__sub a {
        font-size: 1.32vw;
        line-height: 1.4;
        font-weight: 500;
        letter-spacing: .1em
    }

    .header__nav .col .nav-menu .icon-arrow {
        display: block;
        width: 1.06vw;
        height: 1.06vw;
        background: url("../image/common/ic_forward_v12332ac76b6b229af7dcdecd93f5f56d.svg")no-repeat center;
        background-size: cover;
        transition: transform .5s;
        will-change: transform
    }

    .header__nav .col .nav-menu a {
        display: flex;
        align-items: center;
        justify-content: space-between
    }

    @media (hover:hover) {
        .header__nav .col .nav-menu a:hover {
            opacity: 1
        }

        .header__nav .col .nav-menu a:hover .icon-arrow {
            transform: translateX(.53vw)
        }
    }

    .header.is-fixed {
        background: #fff;
        box-shadow: 0 .26vw .4vw rgba(0, 0, 0, .1);
        border-radius: 0 0 1.98vw 1.98vw;
        padding: 1.65vw 2.65vw 1.65vw 2.65vw
    }

    .header.is-fixed .header__logo a {
        display: inline-flex;
        align-items: center;
        transform: translateY(.26vw)
    }

    .header.is-fixed .header__logo a .image {
        width: 4.76vw;
        height: 3.31vw;
        flex-shrink: 0;
        margin-right: .46vw;
        background: url("../image/common/logo_black_v31da5dd9b47bb809487ab1102dd0a0bf.svg")no-repeat center;
        background-size: cover
    }

    .header.is-fixed .header__logo a .text {
        color: var(--primary-color);
        font-size: .79vw;
        line-height: 1.42;
        letter-spacing: .2em;
        font-weight: 500
    }

    .header-ill01 {
        display: block;
        position: absolute;
        width: 30.82vw;
        height: 22.22vw;
        top: 0;
        left: 0;
        z-index: 12
    }

    .header-ill01.active span {
        animation: leftToRight .5s forwards
    }

    .header-ill01 span {
        display: block;
        position: absolute;
        z-index: -1;
        left: 0;
        opacity: 0
    }

    .header-ill01 span.ill01_01 {
        width: 16.27vw;
        height: 19.64vw;
        background: url("../image/common/header/ill01_01_ve20d3c6a37b8d349b46aadc17a771917.webp")no-repeat center;
        background-size: 100%
    }

    .header-ill01 span.ill01_02 {
        width: 17.39vw;
        height: 7.54vw;
        background: url("../image/common/header/ill01_02_vb0d20fc2f44b8581e8279b439e029385.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .3s
    }

    .header-ill01 span.ill01_03 {
        width: 30.82vw;
        height: 20.83vw;
        background: url("../image/common/header/ill01_03_v463e400dc44bedb1b138f864dbf8e957.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .7s
    }

    .header-ill01 span.ill01_04 {
        top: 16.8vw;
        left: 9.52vw;
        width: 4.56vw;
        height: 5.42vw;
        background: url("../image/common/header/ill01_04_v600e2a30294d800bd10195729e844d44.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .9s
    }

    .header-ill02 {
        display: block;
        position: absolute;
        width: 30.82vw;
        height: 22.22vw;
        top: 0;
        right: 0
    }

    .header-ill02.active span {
        animation: rightToLeft02 .8s forwards
    }

    .header-ill02 span {
        display: block;
        position: absolute;
        z-index: -1;
        right: 0;
        opacity: 0
    }

    .header-ill02 span.ill02_01 {
        width: 10.25vw;
        height: 17.39vw;
        background: url("../image/common/header/ill02_01_v8bf0ff21f023eaefb37dac653ebcb55c.webp")no-repeat center;
        background-size: 100%
    }

    .header-ill02 span.ill02_02 {
        top: 13.36vw;
        width: 31.28vw;
        height: 16.73vw;
        background: url("../image/common/header/ill02_02_vd10c2608f36ee395c5c2690f077d1ebf.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .4s
    }

    .header-ill02 span.ill02_03 {
        top: 6.61vw;
        width: 32.21vw;
        height: 24.4vw;
        background: url("../image/common/header/ill02_03_vf7119652a87a3648867a943ffa71debd.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .8s
    }

    .header-ill02 span.ill02_04 {
        top: 21.83vw;
        width: 40.74vw;
        height: 13.69vw;
        background: url("../image/common/header/ill02_04_vfd50bc12fdd5412a67afd317537909a6.webp")no-repeat center;
        background-size: 100%;
        animation-delay: 1.2s
    }
}

@media only screen and (max-width:768px) {
    body.is-drawer-open {
        overflow: hidden;
    }

    .header {
        position: fixed;
        width: 100%;
        height: 0;
        top: 0;
        z-index: var(--z_upper);
        background: var(--base-color);
        transition: background .5s, border-radius .5s;
        will-change: background, border-radius
    }

    .header__wrap {
        height: 0
    }

    .header__logo {
        margin-top: 5.21vw;
        margin-left: 3.91vw;
        transition: opacity .3s, visibility .3s;
        will-change: opacity, visibility
    }

    .header__logo a {
        display: inline-flex;
        align-items: center
    }

    .header__logo a .image {
        width: 20.31vw;
        height: 14.58vw;
        flex-shrink: 0;
        margin-right: 1.95vw;
        background: url("../image/common/logo_v57f0e62dfdc7c951801cfe43f5d10a1f.svg")no-repeat center;
        background-size: cover
    }

    .header__logo a .text {
        color: #fff;
        font-size: 3.52vw;
        line-height: 1.4;
        letter-spacing: .2em;
        text-align: right;
        transition: color .5s;
        will-change: color
    }

    .header__content .link-wrap {
        display: none
    }

    .header__hamburger {
        position: relative;
        position: fixed;
        top: 0;
        right: 0;
        margin-top: 5.21vw;
        margin-right: 3.91vw;
        width: 20.83vw;
        height: 11.72vw;
        border-radius: 13.02vw;
        margin-left: 4.56vw;
        padding: 3.13vw 3.91vw;
        background: linear-gradient(0deg, #141437, #141437), linear-gradient(30.82deg, #ecd519 16.11%, #ffba2d 41.78%, #11bada 118.78%);
        box-shadow: 0 .26vw 1.3vw rgba(0, 0, 0, .2);
        z-index: 1000
    }

    .header__hamburger:after {
        content: "";
        position: absolute;
        inset: 0;
        background: url("../image/common/ic_hamburger_white_v0aa83e031174b66835bba75f3962c0f2.svg")no-repeat center;
        background-size: 4.95vw 3.78vw
    }

    .header__hamburger.is-active {
        width: 9.11vw;
        height: 9.11vw;
        background: url("../image/common/ic_close_vf060dc32e18e9af3e13a5180f5e1824b.svg")no-repeat right center;
        background-size: cover;
        box-shadow: none
    }

    .header__hamburger.is-active::after {
        display: none
    }

    .header__menu {
        position: fixed;
        top: 0;
        right: -100%;
        width: 100%;
        height: 100%;
        display: flex;
        background-color: #fff;
        overflow: hidden;
        transition: right .5s ease-in-out;
        will-change: right;
        padding-top: 25.78vw
    }

    .header__menu.is-active {
        right: 0
    }

    /* SP ドロワー・オーバーレイ（右から約70%） */
    .header__overlay {
        position: fixed;
        inset: 0;
        z-index: 1001;
        background: rgba(0, 0, 0, 0.25);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s, visibility 0.3s;
    }

    .header.is-active .header__overlay {
        opacity: 1;
        visibility: visible;
    }

    .header__drawer {
        position: fixed;
        top: 0;
        right: 0;
        z-index: 1002;
        width: 70%;
        max-width: 320px;
        height: 100vh;
        background: #fff;
        box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
        padding: 24px 20px 32px;
        transform: translateX(100%);
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
        overflow-y: auto;
        border-radius: 16px 0 0 16px;
    }

    .header.is-active .header__drawer {
        transform: translateX(0);
    }

    .header__drawer-title {
        font-size: 0.75rem;
        font-weight: 700;
        color: var(--primary-color, #11bada);
        letter-spacing: 0.1em;
        margin-bottom: 20px;
        padding-bottom: 8px;
        border-bottom: 2px solid rgba(0, 0, 0, 0.08);
    }

    .header__drawer-nav {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .header__drawer-nav li {
        margin: 0;
    }

    .header__drawer-nav a {
        display: block;
        padding: 14px 12px;
        font-size: 1rem;
        font-weight: 600;
        color: #333;
        text-decoration: none;
        border-radius: 12px;
        transition: background 0.2s, color 0.2s;
    }

    .header__drawer-nav a:hover {
        background: rgba(0, 0, 0, 0.06);
        color: var(--primary-color, #11bada);
    }

    .header__nav {
        height: 100%;
        overflow-y: auto;
        -webkit-overflow-scrolling: auto;
        width: 100%;
        margin: auto;
        display: flex;
        flex-direction: column
    }

    .header__nav .col {
        padding-inline: 5.21vw;
        margin-bottom: 5.86vw
    }

    .header__nav .col:first-child {
        order: 3;
        margin-top: 1.56vw
    }

    .header__nav .col .menu-logo {
        position: absolute;
        top: 5.21vw;
        left: 4.56vw;
        display: flex;
        align-items: center
    }

    .header__nav .col .menu-logo .image {
        width: 20.31vw;
        height: 14.58vw;
        flex-shrink: 0;
        margin-right: 1.56vw
    }

    .header__nav .col .menu-logo .text {
        font-size: 3.52vw;
        line-height: 1.4;
        font-weight: 500;
        text-align: right;
        letter-spacing: .2em
    }

    .header__nav .col .link {
        display: inline-flex;
        align-items: center;
        justify-content: space-between;
        padding: 5.21vw 3.91vw 5.21vw 5.47vw;
        width: calc(100%/2 - 1.3vw);
        height: 15.63vw;
        border: 1px solid var(--primary-color);
        font-size: 3.65vw;
        font-weight: 700;
        border-radius: 1.3vw;
        letter-spacing: .16em;
        border: 1px solid var(--primary-color)
    }

    .header__nav .col .link:not(:last-child) {
        margin-bottom: 7.81vw
    }

    .header__nav .col .link .icon-arrow {
        flex-shrink: 0;
        display: block;
        width: 2.6vw;
        height: 2.6vw;
        margin-left: 1.95vw;
        background: url("../image/common/ic_forward_v12332ac76b6b229af7dcdecd93f5f56d.svg")no-repeat center;
        background-size: cover
    }

    .header__nav .col .link02 {
        margin-left: 2.6vw;
        color: #fff;
        background: var(--primary-color)
    }

    .header__nav .col .link02 .icon-arrow {
        background: url("../image/common/ic_forward_white_v6550ccfdb27974fcf5859e331fa7519a.svg")no-repeat center;
        background-size: cover
    }

    .header__nav .col .social {
        display: flex;
        margin-left: 2.6vw
    }

    .header__nav .col .social a {
        margin-right: 5.21vw;
        width: 7.81vw;
        height: 7.81vw
    }

    .header__nav .col .nav-menu {
        border-bottom: 1px solid var(--primary-color)
    }

    .header__nav .col .nav-menu__item {
        font-size: 5.21vw;
        line-height: 1.4;
        font-weight: 700;
        letter-spacing: .1em;
        padding: 4.82vw 0 5.73vw
    }

    .header__nav .col .nav-menu__sub {
        border-top: 1px solid #cadbe0;
        padding: 5.21vw 0 6.25vw;
        margin-top: -.65vw
    }

    .header__nav .col .nav-menu__sub li:not(:last-child) {
        margin-bottom: 5.73vw
    }

    .header__nav .col .nav-menu__sub a {
        font-size: 3.39vw;
        line-height: 1.4;
        font-weight: 500;
        letter-spacing: .1em
    }

    .header__nav .col .nav-menu .icon-arrow {
        display: block;
        width: 2.6vw;
        height: 2.6vw;
        background: url("../image/common/ic_forward_v12332ac76b6b229af7dcdecd93f5f56d.svg")no-repeat center;
        background-size: cover
    }

    .header__nav .col .nav-menu a {
        display: flex;
        align-items: center;
        justify-content: space-between
    }

    .header.is-fixed .header__logo {
        opacity: 0;
        visibility: hidden
    }

    .header-ill01 {
        display: block;
        position: absolute;
        width: 60.68vw;
        height: 43.75vw;
        top: 0;
        left: 0;
        z-index: 12
    }

    .header-ill01.active span {
        animation: leftToRight .5s forwards
    }

    .header-ill01 span {
        display: block;
        position: absolute;
        z-index: -1;
        left: 0;
        opacity: 0
    }

    .header-ill01 span.ill01_01 {
        width: 26.17vw;
        height: 53.13vw;
        background: url("../image/common/header/ill01_01_sp_vd7484732d9170ea5255a84a7f1c2359c.webp")no-repeat center;
        background-size: 100%
    }

    .header-ill01 span.ill01_02 {
        width: 39.58vw;
        height: 19.66vw;
        background: url("../image/common/header/ill01_02_sp_v62732c8ac6e0a7398b77b2753eebf2e6.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .3s
    }

    .header-ill01 span.ill01_03 {
        width: 61.07vw;
        height: 60.16vw;
        background: url("../image/common/header/ill01_03_sp_v7c73126363831f7e820b6d31a93f9f81.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .7s
    }

    .header-ill01 span.ill01_04 {
        top: 53.91vw;
        left: 4.82vw;
        width: 10.03vw;
        height: 10.55vw;
        background: url("../image/common/header/ill01_04_sp_v653757f693652d571fd86bc47fd55f3a.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .9s
    }

    .header-ill02 {
        display: block;
        position: absolute;
        width: 60.68vw;
        height: 43.75vw;
        top: 21.48vw;
        right: 0;
        z-index: 5
    }

    .header-ill02.active span {
        animation: rightToLeft02 .8s forwards
    }

    .header-ill02 span {
        display: block;
        position: absolute;
        z-index: -1;
        right: 0;
        opacity: 0
    }

    .header-ill02 span.ill02_01 {
        width: 14.19vw;
        height: 38.41vw;
        background: url("../image/common/header/ill02_01_sp_v9d00bb79276cdca4e9108ab88765e1b1.webp")no-repeat center;
        background-size: 100%
    }

    .header-ill02 span.ill02_02 {
        top: 28.65vw;
        width: 33.2vw;
        height: 29.56vw;
        background: url("../image/common/header/ill02_02_sp_v90e37b91014b6d29cb326e0ecdbb8a3b.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .4s
    }

    .header-ill02 span.ill02_03 {
        top: 19.53vw;
        width: 34.9vw;
        height: 41.93vw;
        background: url("../image/common/header/ill02_03_sp_v3e9e946249e9f0b70aa0694baa09c3d6.webp")no-repeat center;
        background-size: 100%;
        animation-delay: .8s
    }

    .header-ill02 span.ill02_04 {
        top: 46.09vw;
        width: 50vw;
        height: 23.18vw;
        background: url("../image/common/header/ill02_04_sp_ve86a158db2e2eac001dfb5b1420539fb.webp")no-repeat center;
        background-size: 100%;
        animation-delay: 1.2s
    }
}


/* 繧ｹ繝槭う繝ｫ繧ｿ繧ｫ繝ｩ 繝倥ャ繝繝ｼ繝ｭ繧ｴ */
/* ヘッダーロゴ：画像のみ（SP・PC共通） */
.header__logo a {
    display: block;
}

.header__logo a .header__logo_img,
.header__logo a img.header__logo_img {
    display: block;
    width: 300px;
    max-width: 100%;
    object-fit: contain;
    transition: width 0.5s, height 0.5s;
}


/* === ヒーロー（メインビジュアル） === */
.lcl-hero {
    position: relative;
}

.lcl-hero .lcl-hero__wrap {
    padding: 15.4rem 2.5rem 13rem;
    position: relative;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero__wrap {
        padding: 6.3rem 2rem 11.4rem;
    }
}

.lcl-hero .lcl-hero-slide {
    width: 100%;
    position: relative;
    height: 65rem;
    border-radius: 3rem;
    overflow: hidden;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-slide {
        height: 42.8rem;
        border-radius: 2rem;
    }
}

.lcl-hero .lcl-hero-slide__front {
    position: absolute;
    inset: -100%;
    width: 100%;
    height: 100%;
    margin: auto;
    z-index: 2;
}

.lcl-hero .lcl-hero-slide__front.swiper {
    overflow: hidden;
}

.lcl-hero .lcl-hero-slide__front .swiper-wrapper {
    height: 100%;
}

.lcl-hero .lcl-hero-slide__slide {
    width: 100%;
    height: 100%;
    z-index: 1;
}

.lcl-hero .lcl-hero-slide__slide.swiper-slide-active .lcl-hero-slide__fig {
    transform: scale(1);
    transition: transform 6s ease;
}

.lcl-hero .lcl-hero-slide__fig {
    width: 100%;
    height: 100%;
    display: block;
    transform: scale(1.2);
    transition: transform 0s 2s ease;
}

.lcl-hero .lcl-hero-slide__fig img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lcl-hero .lcl-hero-page {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.4rem;
    flex-direction: column;
    position: absolute;
    z-index: 100;
    top: 0;
    bottom: 0;
    right: 4.2rem;
    margin: auto;
    height: fit-content;
    flex-wrap: wrap;
    width: 0.3rem;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-page {
        height: 0.3rem;
        width: 100%;
        flex-direction: row;
        right: 0;
        left: 0;
        top: 47.6rem;
        bottom: auto;
    }
}

.lcl-hero .lcl-hero-page__nav {
    width: 100%;
    height: 4rem;
    background-color: #fff;
    transition: background-color 0.25s ease;
    border: none;
    cursor: pointer;
    padding: 0;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-page__nav {
        height: 100%;
        width: 3rem;
    }
}

.lcl-hero .lcl-hero-page__nav.lcl-hero-page__nav--active {
    background-color: #c79a54;
}

.lcl-hero .lcl-hero-copy {
    position: absolute;
    z-index: 11;
    bottom: 14.6rem;
    left: 9.4rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2em;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-copy {
        gap: 0.15em;
        bottom: 9.1rem;
        left: 5rem;
    }
}

.lcl-hero .lcl-hero-copy__txt {
    display: block;
    font-weight: 700;
    font-size: 3rem;
    font-size: max(3rem, 10px);
    line-height: 1.4;
    letter-spacing: 0.1em;
    color: #fff;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-copy__txt {
        font-size: 1.8rem;
        font-size: max(1.8rem, 10px);
    }
}

.lcl-hero .lcl-hero-en {
    position: absolute;
    z-index: 11;
    bottom: 14.6rem;
    right: 6.3rem;
    display: block;
    color: #fff;
    font-weight: 700;
    font-family: "Roboto", "Jost", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-en {
        bottom: 9.3rem;
        right: 4.2rem;
    }
}

.lcl-hero .lcl-hero-en__txt {
    display: block;
    text-align: right;
    font-size: 3rem;
    font-size: max(3rem, 10px);
    line-height: 1.7;
    letter-spacing: 0.2em;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-en__txt {
        font-size: 1.2rem;
        font-size: max(1.2rem, 10px);
    }
}

.lcl-hero .lcl-hero-en__ttl {
    display: block;
    text-align: right;
    font-size: 9rem;
    font-size: max(9rem, 10px);
    line-height: 1;
    letter-spacing: 0.1em;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-en__ttl {
        font-size: 3.5rem;
        font-size: max(3.5rem, 10px);
        letter-spacing: 0.05em;
    }
}

.lcl-hero .lcl-hero-news {
    position: absolute;
    z-index: 15;
    top: 73.9rem;
    right: 2.6rem;
    padding: 1.5rem 1.7rem;
    width: 56.6rem;
    border-radius: 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #fff;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-news {
        top: 50.4rem;
        width: 29.2rem;
        right: 0;
        left: 0;
        margin: auto;
        padding: 0.8rem 1.2rem;
    }
}

.lcl-hero .lcl-hero-news__cnt {
    position: relative;
    width: 41.9rem;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-news__cnt {
        width: 21.5rem;
    }
}

.lcl-hero .lcl-hero-news__cnt::before {
    content: "";
    position: absolute;
    top: 0;
    right: -1.5rem;
    width: 1px;
    height: 100%;
    margin: auto;
    background-image: linear-gradient(to bottom, #767676 50%, transparent 50%);
    background-size: 1px 2px;
    background-repeat: repeat-y;
    background-position: left top;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-news__cnt::before {
        right: -1rem;
    }
}

.lcl-hero .lcl-hero-news__list {
    width: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
}

.lcl-hero .lcl-hero-news__item:not(:first-of-type) {
    margin-top: 1rem;
}

.lcl-hero .lcl-hero-news__link {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    text-decoration: none;
    color: inherit;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-news__link {
        display: block;
    }
}

.lcl-hero .lcl-hero-news__link:hover .lcl-hero-news__txt {
    text-decoration: none;
}

.lcl-hero .lcl-hero-news__date {
    display: block;
    min-width: 6.4rem;
    font-size: 1.2rem;
    font-size: max(1.2rem, 10px);
    letter-spacing: 0;
    font-weight: 500;
    line-height: 1.6;
}

.lcl-hero .lcl-hero-news__wrap {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.lcl-hero .lcl-hero-news__cat {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: 13rem;
    text-align: center;
    font-weight: 500;
    font-size: 1.1rem;
    font-size: max(1.1rem, 10px);
    line-height: 1.6;
    letter-spacing: 0;
    color: #60451b;
    border: 1px solid #60451b;
    border-radius: 100vw;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-news__cat {
        width: fit-content;
        padding: 0.1rem 1rem;
        font-size: 1rem;
        font-size: max(1rem, 10px);
        line-height: 1.1;
    }
}

.lcl-hero .lcl-hero-news__cat.lcl-hero-news__cat--recruit {
    color: #2fc07b;
    border: 1px solid #2fc07b;
}

.lcl-hero .lcl-hero-news__txt {
    display: block;
    margin-left: 0.9rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 22rem;
    font-weight: 500;
    font-size: 1.5rem;
    font-size: max(1.5rem, 10px);
    line-height: 1.5;
    letter-spacing: 0;
    text-decoration: underline;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-news__txt {
        width: 100%;
        margin-left: 0;
        margin-top: 0.5rem;
        font-size: 1rem;
        font-size: max(1rem, 10px);
    }
}

.lcl-hero .lcl-hero-news__more {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 8.3rem;
    font-weight: 500;
    font-size: 1.3rem;
    font-size: max(1.3rem, 10px);
    line-height: 1.5;
    letter-spacing: 0;
    transition: color 0.25s ease;
    color: inherit;
    text-decoration: none;
}

@media screen and (max-width: 767px) {
    .lcl-hero .lcl-hero-news__more {
        justify-content: center;
        flex-direction: column;
        gap: 0.5rem;
        text-align: center;
        width: fit-content;
        margin: 0;
        font-size: 1rem;
        font-size: max(1rem, 10px);
        line-height: 1.2;
    }
}

.lcl-hero .lcl-hero-news__more:hover {
    color: #2fc07b;
}

.lcl-hero .lcl-hero-news__more .ico_svg {
    width: 1.3rem;
}

.lcl-hero .lcl-hero-news__more .ico_svg .svg-path {
    fill: #2fc07b;
}

.dn-w {
    display: none;
}

@media screen and (min-width: 768px) {
    .dn-w {
        display: inline;
    }
}