@charset "utf-8";

/* 基準 */
@media (min-width: 1981px) {
    html {
        font-size: calc(1980 / 1440 * 1px);
        --head-height: calc(1980 / 1440 * 100px);
        scroll-padding-top: var(--head-height);
    }
}
@media (min-width: 769px) and (max-width: 1980px) {
    html {
        font-size: calc(100 / 1440 * 1vw );
        font-size: calc(100 / 1440 * 1dvw );
        --head-height: calc(100 / 1440* 100 * 1vw );
        --head-height: calc(100 / 1440 * 100 * 1dvw );
        scroll-padding-top: var(--head-height);
    }
}
@media (max-width: 768px) {
    html {
        font-size: calc(100 / 375 * 1vw );
        font-size: calc(100 / 375 * 1dvw );
        --head-height: calc(100 / 375* 80 * 1vw );
        --head-height: calc(100 / 375 * 80 * 1dvw );
        scroll-padding-top: var(--head-height);
    }
}

/* 切り替え */
@media (min-width: 769px) {
    [disp-only]:not([disp-only~='pc']) {
        display: none !important;
    }
}
@media (max-width: 768px) {
    [disp-only]:not([disp-only~='sp']) {
        display: none !important;
    }
}

/* common */
:root {
    --color-black: #000;
    --color-white: #fff;
    --color-light-gray: #F1F3ED;
    --color-light-gray-2: #C4C4C4;
    --color-light-gray-3: #f0f0f0;
    --color-gray: #DEE0D8;
    --color-gray-2: #838383;
    --color-dark-gray: #74776B;
    --color-green: #00A273;
    --color-link: #07F;

    --color-gray-60: rgba(0,0,0,0.6);
    --color-gray-50: rgba(0,0,0,0.5);
    --color-gray-20: rgba(0,0,0,0.2);
    --color-gray-16: rgba(0,0,0,0.16);
    --color-gray-10: rgba(0,0,0,0.10);

    --ease-out: cubic-bezier(0,.4,.56,1);
}
html, body, input, textarea {
    font-family: "Noto Sans JP", sans-serif;
    font-feature-settings: "palt";
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}
h1,h2,h3,h4,h5 {
    font-weight: inherit;
}
.font_w400 {
    font-weight: 400;
}
.font_w500 {
    font-weight: 500;
}
.font_w700 {
    font-weight: 700;
}
.font_inter {
    font-family: "Inter", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
}
body {
    background-color:var(--color-white);
}
a {
    color: inherit;
}
sup {
    font-size: 60%;
}
button {
    padding:0;
    border:none;
    background:transparent;
    cursor: pointer;
    color: var(--color-black);
}
img {
    max-width: 100%;
    height:auto;
}
@media (min-width: 769px) {
    .inner {
        max-width: 1980px;
        width: 100%;
        margin-inline: auto;
    }
    .life #about .inner {
        padding-inline: 40rem;
    }
}

/* main */
.main {
    padding-top: var(--head-height);
}

/* inner */
.section_inner {
    width: 100%;
}
@media (min-width: 769px) {
    .section_inner {
        padding-inline: 40rem;
        margin-inline: auto;
    }
    .content_inner {
        /* padding-inline: min(120px, 120rem); */
        padding-inline: 40rem;
        /* max-width: 1440px; */
        width: 100%;
        margin-inline: auto;
    }
}
@media (max-width: 768px) {
    .section_inner {
        padding-inline: 20rem;
    }
    .content_inner {
        padding-inline: 20rem;
    }
}
@media (width >= 1981px) {
    .content_inner {
        /* padding-right: 0; */
    }
}

/* header */
.header {
    position: fixed;
    z-index: 20;
    top: 0;
    left: 0;
    width: 100%;
    background: var(--color-white);
}
.header_inner {
    display:flex;
    justify-content: space-between;
}
.header_set {
    display:flex;
}
.head_recruit_logo {
    height:auto;
} 
.header_menu_btn {
    position: relative;
    z-index: 30;
}
.header_menu_btn_txt {
    line-height: 1;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    transition: opacity 0.4s;
}
.header_menu_btn_txt_off {
    opacity: 1;
}
.header_menu_btn_txt_on {
    opacity: 0;
}
.header_menu_btn_line {
    border-top: 2rem solid var(--color-black);
    display: block;
    margin-inline: auto;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    transition: margin 0.4s 0s, rotate 0.4s 0s;
}
.is_menu_open .header_menu_btn_line:nth-child(1) {
    rotate: 45deg;
}
.is_menu_open .header_menu_btn_line:nth-child(2) {
    rotate: -45deg;
}
.is_menu_open .header_menu_btn_txt_off {
    opacity: 0;
}
.is_menu_open .header_menu_btn_txt_on {
    opacity: 1;
}
.menu_logo_wrap {
    display: grid;
    grid-template-rows: 1fr;
    align-self: start;
}
.menu_logo {
    display: block;
}
.menu_logo img {
    display: block;
}
.menu_logo_btn_wrap {
    display: flex;
    flex-direction: column;
}
.menu_logo_btn {
    background: var(--color-black);
    color: var(--color-white);
    display: flex;
    justify-content: center;
    align-items: center;
}
.menu_btn {
    background:var(--color-black);
    color:var(--color-white);
    display:flex;
    justify-content: center;
    align-items: center;
    font-weight: 500;
}
.head_logo_wrap {
    position:relative;
    z-index:30;
}
.head_right_logo {
    height:auto;
}
.header_btn {
    position: relative;
    display:flex;
    justify-content: center;
    align-items: center;
    color:var(--color-black);
    color:var(--color-white);
    font-weight: 500;
    text-decoration: none;;
    /* transition: color 0.4s; */
}
.is_logo_show .header_btn {
    color:var(--color-black);
}
.header--sub .header_btn {
    color:var(--color-black);
}
.header_btn::after {
    content:"";
    display:block;
    position:absolute;
    top:0;
    bottom:0;
    right:0;
    height:100%;
    width:10rem;
    background: url(../../images/common/arrow_black.svg) no-repeat 50% 50% / contain;
    background: url(../../images/common/arrow_white.svg) no-repeat 50% 50% / contain;
}
.is_logo_show .header_btn::after {
    background: url(../../images/common/arrow_black.svg) no-repeat 50% 50% / contain;
}
.header--sub .header_btn::after {
    background: url(../../images/common/arrow_black.svg) no-repeat 50% 50% / contain;
}
.header_btn_txt {
    position: relative;
    overflow: hidden;
}
.header_btn_txt_box {
    position: relative;
    height: 100%;
}
@media (min-width: 769px) {
    .header {
        height: 100rem;
        padding: 30rem 35rem;
    }
    .header_inner {
        gap: 20rem;
    }
    .header_set {
        align-items: center;
        gap:5rem;
    }
    .head_recruit_logo {
        width: 296rem;
    } 
    .header_menu_btn {
        width: 70rem;
        height: 60rem;
        margin-right: 14rem;
        margin-block: -20rem;
        color: var(--color-white);
    }
    .header_menu_btn.is_menu_open {
        color: var(--color-black);
    }
    .is_logo_show .header_menu_btn {
        color: var(--color-black);
    }
    .header--sub .header_menu_btn {
        color: var(--color-black);
    }
    .header_menu_btn_txt {
        font-size: 13rem;
        letter-spacing: 0.08em;
        margin-top: 12rem;
    }
    .header_menu_btn_line {
        width: 40rem;
        border-top: 2rem solid var(--color-white);
    }
    .is_menu_open .header_menu_btn_line:nth-child(1) {
        border-top: 2rem solid var(--color-black);
    }
    .is_logo_show .header_menu_btn_line:nth-child(1) {
        border-top: 2rem solid var(--color-black);
    }
    .header--sub .header_menu_btn_line:nth-child(1) {
        border-top: 2rem solid var(--color-black);
    }
    .is_menu_open .header_menu_btn_line:nth-child(2) {
        border-top: 2rem solid var(--color-black);
    }
    .is_logo_show .header_menu_btn_line:nth-child(2) {
        border-top: 2rem solid var(--color-black);
    }
    .header--sub .header_menu_btn_line:nth-child(2) {
        border-top: 2rem solid var(--color-black);
    }
    .header_menu_btn_line:nth-child(1) {
        margin-bottom: 16rem;
    }
    .header_menu_btn_line:nth-child(2) {
        margin-bottom: 24rem;
    }
    .is_menu_open .header_menu_btn_line {
        margin-bottom: 16rem;
    }
    .menu_logo_wrap {
        gap: 40rem;
        margin-inline: 20rem;
    }
    .menu_logo_btn_wrap {
        gap: 20rem;
    }
    .menu_btn {
        height:80rem;
        font-size: 14rem;
    }
    .head_right_logo {
        width: 115rem;
    }
    .head_right_logo--default {
        display: block;
    }
    .head_right_logo--open {
        display: none;
    }
    .is_menu_open .head_right_logo--default {
        display: none;;
    }
    .is_menu_open .head_right_logo--open {
        display: block;;
    }
    .is_logo_show .head_right_logo--default {
        display: none;;
    }
    .is_logo_show .head_right_logo--open {
        display: block;;
    }
    .header--sub .head_right_logo--default {
        display: none;;
    }
    .header--sub .head_right_logo--open {
        display: block;;
    }
    .header_btn {
        height: 40rem;
        font-size: 18rem;
        padding-inline: 10rem 28rem;
        margin-right: 10rem;
    }
    .header_btn + .header_btn {
        margin-left:10rem;
    }
    .menu_logo_btn {
        width: 360rem;
        height: 80rem;
        font-size: 14rem;
        line-height: 1;
    }
    .header_btn::after {
        right: 10rem;
    }
    @media(hover: hover){
        .menu_logo_btn:hover,
        .header_btn:hover {
            color: var(--color-white);
            background-color: var(--color-black);
        }
        .header_btn:hover::after {
            background-image: url(../../images/common/arrow_white.svg);
        }
        .menu_logo_btn_wrap a.menu_logo_btn:hover {
            background: transparent;
            color: var(--color-black);
            border-bottom:1px solid var(--color-black);
        }
    }
}
@media (max-width: 768px) {
    .header {
        height: 80rem;
        padding: 18rem 20rem;
    }
    .header_inner {
        gap: 20rem;
    }
    .header_set {
        position: relative;
        z-index:30;
        gap: 20rem;
        flex-direction: row-reverse;
        align-items: start;
    }
    .head_recruit_logo {
        width: 144rem;
    } 
    .header_menu_btn {
        width: 46rem;
        height: 58rem;
        margin-block: -10rem;
    }
    .header_menu_btn_txt {
        font-size: 14.7rem;
        letter-spacing: 0.08em;
        margin-top: 10rem;
    }
    .header_menu_btn_line {
        width: 44rem;
    }
    .header_menu_btn_line:nth-child(1) {
        margin-bottom: 5rem;
    }
    .header_menu_btn_line:nth-child(2) {
        margin-bottom: 14rem;
    }
    .is_menu_open .header_menu_btn_line {
        margin-bottom: 9rem;
    }
    .menu_logo_wrap {
        gap: 20rem 16rem;
        grid-template-columns: 1fr 1fr;
    }
    .menu .nav_logo_img {
        width: 162rem;
    }
    .footer .nav_logo_img {
        width: 335rem;
    }
    
    .menu_logo_btn_wrap {
        gap: 20rem;
    }
    .menu_btn,
    .menu_logo_btn {
        height: 60rem;
        font-size: 14rem;
    }
    .head_right_logo {
        width: 63rem;
    }
    .header_btn {
        width:200rem;
        height:40rem;
        font-size: 14rem;
    }
}


/* menu */
.menu {
    position: fixed;
    z-index: 20;
    top:0;
    left:0;
    width:100%;
    height:100%;
    /* background: url(../../images/common/bg.webp) repeat 50% 0; */
    background-color: #fff;
    display: none;
}
.menu_inner {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    overflow:auto;
}
.nav_logo_img {
    height: auto;
}
.menu .nav_col_list {
    min-height: 100vh;
    min-height: 100dvh;
}
@media (min-width: 769px) {
    .nav_logo_img {
        width: 366rem;
        /* margin-left: 20rem; */
    }
}
@media (min-width: 769px) {
    .menu .nav_col_list > li {
        opacity: 0;
        height: 800rem;
    }
    .menu.is_opened .nav_col_list > li {
        opacity: 1;
        transition: opacity 0.4s;
    }
    .menu.is_opened .nav_col_list > li:nth-child(1) {
        transition-delay:  0s;
    }
    .menu.is_opened .nav_col_list > li:nth-child(2) {
        transition-delay:  0.2s;
    }
    .menu.is_opened .nav_col_list > li:nth-child(3) {
        transition-delay:  0.4s;
    }
    .menu.is_opened .nav_col_list > li:nth-child(4) {
        transition-delay:  0.6s;
    }
}
@media (max-width: 768px) {
    .menu .nav {
        padding-block: var(--head-height) 46rem;
    } 
}

/* footer */
.footer {
    overflow: hidden;
    position: relative;
    /* background: url(../../images/common/bg.webp) repeat 50% 0; */
}
.footer_inner {
    margin-inline: auto;
}
:is(.footer, .nav) a {
    text-decoration: none;
}
.nav {
    width: 100%;
    min-height: 100%;
}
.nav_col_list {
    position: relative;
    display: flex;
    width: 100%;
    margin-inline: auto;
}
.nav_col_list > li:nth-child(1) {
    flex: 1;
    display:flex;
    justify-content: center;
    align-items: start;
}
.nav_set > dt .nav_set_en {
    font-weight: 600;
}
.nav_set > dd {
    font-weight: 400;
}
.footer_bottom {
    width:100%;
}
.footer_bottom_logo {
    height:auto;
}
@media (min-width: 769px) {
    .footer {
        margin-top: 200rem;
    }
    .footer_inner {
        margin-inline: auto;
    }
    .nav_col_list {
        max-width: 1440rem;
    }
    .menu .nav_col_list {
        align-items: end;
    }

    .nav_col_list > li {
        padding-block: 111rem 127rem;
    }
    .nav_col_list > li + li {
        position: relative;
    }
    .nav_col_list > li + li::before {
        /* content: "";
        position: absolute;
        bottom:0;
        left:0;
        height: max(100vh,100%);
        border-left: 1px solid var(--color-gray-16); */
    }
    .nav_col_list > li:nth-child(2) {
        width: 20%;
    }
    .nav_col_list > li:nth-child(3) {
        width: 20%;
    }
    .nav_col_list > li:nth-child(4) {
        width: 20%;
    }
    .nav_set + .nav_set {
        margin-top: 36rem;
    }
    .nav_set > dt {
        font-size: 16rem;
        line-height: 1.6;
    }
    .nav_set > dt .nav_set_en {
        font-size: 14rem;
        line-height: 1.4;
    }
    .nav_set > dd {
        display:block!important;
        height: auto!important;
        font-size: 12rem;
        line-height: 2;
        margin-top: 10rem!important;
    }
    .nav_list {
        display: grid;
        gap: 1.5rem;
    }
    .footer_bottom {
        height:0;
        position: absolute;
        left: 0;
        bottom: 0;    
        margin-bottom: 30rem;
        font-size: 14rem;
        line-height:1.6;
    }
    .footer_bottom_left {
        position: absolute;
        bottom: 0;
        left: 38rem;
    }
    .footer_bottom_right {
        position: absolute;
        bottom: 0;
        right: 24rem;
        display: flex;
        align-items: center;
        gap: 26rem;
    }
    .footer_link {
        display: inline-block;
        font-size: 12rem;
        font-weight: 400;
        
    }
    .footer_copy {
        font-size: 12rem;
        font-weight: 400;
    }
    .footer_bottom_logo {
        width: 172rem;
    }
    @media(hover: hover){
        .nav_set a:hover {
            opacity: 0.5;
        }
    }
    @media (any-hover: hover) {
        .footer_link:hover {
            opacity: 0.5;
        }
    }
}
@media (max-width: 768px) {
    .footer {
        margin-top: 120rem;
        padding-bottom: 62rem;
    }
    .footer_inner {
        margin-inline: auto;
    }
    .nav_col_list {
        flex-direction: column;
        padding-inline: 20rem;
        margin-top: 40rem;
    }
    .menu .nav_col_list > li:nth-child(1) {
        order:1;
        padding-top: 30rem;
    }
    .nav_col_list > li:last-child {
        border-bottom:1px solid var(--color-gray-16);
    }    
    .nav_set {
        padding-block: 13rem;
        border-top:1px solid var(--color-gray-16);
    }
    .nav_set > dt {
        font-size: 16rem;
        line-height: 1.6;
        display: flex;
    }
    .nav_set > dt a {
        flex: 1;
        min-height: calc(100rem - 13rem * 2);
        display: flex;
        align-items: center;
    }
    .nav_set > dt .accordion_btn {
        width: 50rem;
        display:flex;
        justify-content: center;
        align-items: center;
    }
    .accordion_btn_box {
        position: relative;
        width: 20rem;
        height: 20rem;
    }
    .accordion_btn_box::before,
    .accordion_btn_box::after {
        content:"";
        position: absolute;
        top:50%;
        left:0;
        width:100%;
        border-top: 1px solid var(--color-black);
        margin-top: -0.5px;
    }
    .accordion_btn_box::before {
        rotate: 90deg;
        transition: rotate 0.4s;
    }
    .is_accordion_open .accordion_btn_box::before {
        rotate: 540deg;
    }
    
    .nav_set > dt .nav_set_en {
        font-size: 14rem;
        line-height: 1.4;
    }
    .nav_set > dd {
        font-size: 12rem;
        line-height: 2.5;
        margin-top: 10rem;
        display: none;
    }
    .footer_bottom {
        margin-bottom: 30rem;
        font-size: 12rem;
        line-height: 1.6;
        margin-inline: 20rem;
        padding-top: 80rem;
    }
    .footer_bottom_logo {
        width: 158rem;
    }
    .footer_bottom_right {
        /* margin-top:5rem; */
        margin-top:27rem;
        display: flex;
        flex-direction: column;
        gap: 5rem;
    }
    .footer_link {
        display: inline-block;
        font-size: 12rem;
        font-weight: 400;
        line-height: 1.6;
    }
    .footer_copy {
        font-size: 12rem;
        font-weight: 400;
        line-height: 1.6;
    }
}


/* footer_banner */
.footer_banner {
    position: relative;
}
.footer_banner_list_item_btn {
    display:flex;
    margin-inline:auto;
    color: var(--color-black);
    border-bottom:1px solid var(--color-black);
    font-weight: 500;
    text-decoration: none;
}
.footer_banner_list_item_btn_txt {
    position: relative;
    overflow: hidden;
}
.footer_banner_list_item_btn_txt_box {
    position: relative;
    height: 100%;
}
@media (min-width: 769px) {
    .footer_banner {
        margin-top: 180rem;
    }
    .footer_banner_list_item_btn {
        width: 1200rem;
        font-size: 118rem;
        padding-block: 50rem;
        line-height: 1;
        justify-content: center;
        align-items: center;
    }
    @media(hover: hover){
        .footer_banner_list_item_btn:hover {
            color: var(--color-white);
            background-color: var(--color-black);
        }
    }
}
@media (max-width: 768px) {
    .footer_banner {
        margin-top: 180rem;
    }
    .footer_banner_list_item_btn {
        width: 335rem;
        font-size: 61.75rem;
        line-height: 1;
        padding: 0rem 0rem 40rem;
        justify-content: start;
        align-items: start;
    }
}

/* main_box */
.main_box {
    display:flex;
}
.main_box_ttl_cell {
    position: relative;
    z-index: 1;
}
.main_box_ttl {
    font-weight: 600;
    line-height:1.8;
}
.main_box_catch {
    color: var(--color-black);
    text-decoration: none;
}
.main_box_catch::after {
    animation: arrow_move_before 1s forwards;
}
.main_box_body {
    flex: 1;
}
.main_box_body_grid {
    width: 100%;
    display: grid;
}
.main_box_body_grid_cell {
    position: relative;
}
.main_box_body_grid_cell_inner {
    position:absolute;
    top:0;
    left:0;
    width: 100%;
    height: 100%;
}
@media (min-width: 769px) {
    .main_box {
    }
    .main_box_ttl_cell {
        width: 200rem;
    }
    .main_box_ttl {
        font-size: 18rem;
        line-height: 1;
    }
    .main_box_catch {
        display: block;
        width: 200rem;
        padding-inline: 40rem 30rem;
        font-size: 14rem;
        line-height: 1.4;
    }
    .life #about .main_box_catch {
        padding-left: initial;
    }
    .main_box_ttl {
        margin-left: 40rem;
    }
    #about .main_box_ttl {
        margin-left: initial;
    }
    .main_box_catch .main_box_ttl {
        position: relative;
        margin-left: 0rem;
        padding-bottom: 20rem;
    }
    .main_box_catch .main_box_ttl::after {
        content: "";
        position: absolute;
        display: block;
        top: calc(100% - 12rem);
        left: 0;
        width: 15rem;
        border-top: 1px solid var(--color-black);
    }
    .main_box_body_grid {
        grid-template-columns: var(--template-columns ,1fr 1fr 1fr);
    }
    .main_box_body_grid_cell[data-column="2"] {
        grid-column: span 2;
    }
    .main_box_body_grid_cell[data-column="3"] {
        grid-column: span 3;
    }    
    .main_box_body_grid_cell[data-row="2"] {
        grid-row: span 2;
    }    
}
@media (max-width: 768px) {
    .main_box {
        margin-inline: 20rem;
        flex-direction: column;
        gap: 20rem;
    }
    .main_box_ttl {
        font-size: 18rem;
        line-height: 1.4;
    }
    .main_box_catch {
        top: 0;
        width: 160rem;
        font-size: 14rem;
        line-height: 1.4;
    }
    .main_box_catch_txt {
        position: relative;
        margin-top: 15rem;
    }
    .main_box_catch_txt::before {
        content: "";
        position: absolute;
        top: -11rem;
        left: 0;
        width: 15rem;
        border-top: 2rem solid var(--color-black);
    }
    .main_box_catch_txt::after {
        display: block;
        content: "";
        width: 48rem;
        height: 8rem;
        background: url(../../images/common/arrow_black_sp.svg) no-repeat 50% 50% / contain;
        position: absolute;
        bottom: 5rem;
        left: 140rem;
    }
    .main_box_body_grid {
        grid-template-columns: 1fr 1fr;
        gap: 0rem;
    }
    .anchor .main_box_body_grid_cell {
        --grid-column: span 1;
    }
    .main_box_body_grid_cell {
        grid-column: var(--grid-column, span 2);
    }
    .main_box_body_grid_cell[data-col="1"] {
        grid-column: span 1;
    }

}
.animation_ready :is(.section_box, .index_article) .main_box_body_grid_cell {
    opacity: 0;
}
.animation_loaded :is(.section_box, .index_article) .main_box_body_grid_cell.is_animated {
    opacity: 1;
    transition: opacity 0.8s;
}

@media (min-width: 769px) {
    .section_box {
        margin-top: 40rem;
    }
    .section_box + .section_box {
        margin-top: 0rem;
    }
    #about.about.section_box {
        /* margin-top: 100rem; */
        margin-top: 140rem;
    }
}
@media (max-width: 768px) {
    .section_box {
        margin-top: 76rem;
    }
    .about.section_box {
        margin-top: 40rem;
    }
    .section_box + .section_box {
        margin-top: 90rem;
    }
}

/* panel */
.panel_link,
.panel {
    overflow: hidden;
    position: relative;
    display: block;
    width: 100%;
}
.panel_link_detail {
    position: absolute;
    z-index: 2;
    bottom: 0;
    left: 0;
}
.panel_link_detail_coming_soon {
    top: 0;
    right: 0;
    padding: 18rem 25rem;
}
.panel_link_detail_role {
    display: inline-block;
}
.panel_link_detail_ttl_wrap {
    display: flex;
    align-items: center;
    background-color: var(--color-white);
}
.panel_link_detail_ttl {
    flex: 1;
    display:flex;
    align-items: center;
}
.panel_link_detail_ttl_arrow {
    background:var(--color-white);
    display: flex;
    justify-content: center;
    align-items: center;
    align-self: center;
}
.main_box_catch .panel_link_detail_ttl_arrow {
    transform: translateX(-15rem);
}
.panel_link_detail_ttl_arrow_other {
    background:var(--color-white);
    display: flex;
    justify-content: center;
    align-items: center;
    align-self: center;
}
.other_list_content .panel_link_detail_ttl_arrow_other {
    position: absolute;
    right: 0;
}
.panel_link_detail_ttl_arrow::before {
    content: "";
    display: block;
    background: url(../../images/common/arrow_black.svg) no-repeat 50% 50% / contain;
}
.panel_link_detail_ttl_arrow_other::before {
    content: "";
    display: block;
    background: url(../../images/common/arrow_black.svg) no-repeat 50% 50% / contain;
}
.panel_bg_img {
    overflow: hidden;
    display: block;
    line-height: 0;
}
.panel_bg_img--large {
    height: 100%;
}
.panel_bg_img img,
.panel_bg_img video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    scale: 1.01;
}
.panel_front {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.panel_front img {
    width: 100%;
    height: auto;
}
@media (min-width: 769px) {
    .panel_link,
    .panel {
        position: relative;
        height: var(--panel-default-height, 413.3rem);
    }
    .main_box_body_grid_cell[data-row="2"] .panel_link,
    .main_box_body_grid_cell[data-row="2"] .panel {
        height: calc(var(--panel-default-height, 413.3rem) * 2);
    }
    .panel_bg_img,
    .panel_bg_video {
        position: absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
    }
    .panel_link_detail_coming_soon {
        padding: 20rem 35rem;
        width: 100%;
        height: 100%;
    }
    .panel_link_detail_coming_soon img {
        width: 100%;
    }
    .panel_link_detail_role {
        font-size: 12rem;
        line-height: 1.4;
        padding: 6rem 6rem;
        min-height: 40rem;
    }
    .panel_link_detail_ttl_wrap {
        min-width: 300rem;
    }
    .panel_link_detail_ttl_wrap:has(.panel_link_detail_role_wrap) {
        /* min-width: 365rem; */
    }
    .panel_link_detail_ttl_wrap .panel_link_detail_role {
        height: 100%;
        width: 112rem;
        display: flex;
        align-items: center;
        justify-content: center;
        position:relative;
        color: var(--color-black);
    }
    .panel_link_detail_ttl_wrap .panel_link_detail_role::after {
        content: "";
        position:absolute;
        top:0;
        bottom:0;
        display:block;
        right:0;
        height: 50%;
        border-left:1px solid var(--color-black);
        margin-block: auto;
    }
    .panel_link_detail_ttl {
        height: 60rem;
        padding-inline: 20rem;
    }
    .panel_link_detail_role_wrap + .panel_link_detail_ttl {
        padding-inline: 10rem;
    }
    .panel_link_detail_ttl_inner {
        font-size: 13rem;
        line-height: 1.4;
    }
    .panel_link_detail_ttl_arrow {
        width: 50rem;
        height: 50rem;
    }
    .panel_link_detail_ttl_arrow_other {
        width: 50rem;
        height: 50rem;
    }
    .panel_link_detail_ttl_arrow::before {
        width: 15rem;
        height: 15rem;
    }
    .panel_link_detail_ttl_arrow_other::before {
        width: 15rem;
        height: 15rem;
    }
    .panel_front {
        padding: 23rem 25rem;
    }
    @media (hover: hover){
        .panel_link::before {
            content:"";
            position:absolute;
            z-index: 1;
            top:0;
            left:0;
            bottom:0;
            right:0;
            background:rgba(0, 0, 0, 0);
            /* transition: background-color 0.4s var(--ease-out); */
        }
        .panel_link[href]:hover::before {
            /* background:rgba(0, 0, 0, 0.3); */
        }
        .panel_link .panel_bg_img {
            /* transition: scale 0.4s var(--ease-out); */
            /* transition: scale 0.2s var(--ease-out); */
        }
        .panel_link[href]:hover .panel_bg_img {
            scale: 1.05;
            scale: 1.5;
        }
        .panel_link_detail_ttl_arrow {
            position: relative;
            overflow: hidden;
            clip-path: polygon(30% 30%, 70% 30%, 70% 70%, 30% 70%);
        }
        .panel_link_detail_ttl_arrow_other {
            position: relative;
            overflow: hidden;
            clip-path: polygon(30% 30%, 70% 30%, 70% 70%, 30% 70%);
        }
        .panel_link_detail_ttl_arrow::after {
            content: "";
            display: block;
            position:absolute;
            top:0;
            left:0;
            bottom:0;
            right:0;
            margin:auto;
            width: 15rem;
            height: 15rem;
            background: url(../../images/common/arrow_black.svg) no-repeat 50% 50% / contain;
            transform: translateX(-220%);
        }
        .panel_link_detail_ttl_arrow_other::after {
            content: "";
            display: block;
            position:absolute;
            top:0;
            left:0;
            bottom:0;
            right:0;
            margin:auto;
            width: 15rem;
            height: 15rem;
            background: url(../../images/common/arrow_black.svg) no-repeat 50% 50% / contain;
            transform: translateX(-220%);
        }
        .panel_link_detail_ttl_arrow::after,
        .panel_link[href]:hover .panel_link_detail_ttl_arrow::before{
            animation: arrow_move_before 1s forwards;
        }
        .panel_link_detail_ttl_arrow::after,
        .main_box_catch[href]:hover .panel_link_detail_ttl_arrow::before{
            animation: arrow_move_before 1s forwards;
        }
        a.other_list_content:hover .panel_link_detail_ttl_arrow_other::before {
            animation: arrow_move_before 1s forwards;
        }
        .panel_link_detail_ttl_arrow::before,
        .panel_link[href]:hover .panel_link_detail_ttl_arrow::after {
            animation: arrow_move_after 1s forwards;
        }
        .panel_link_detail_ttl_arrow::before,
        .main_box_catch[href]:hover .panel_link_detail_ttl_arrow::after {
            animation: arrow_move_after 1s forwards;
        }
        a.other_list_content:hover .panel_link_detail_ttl_arrow_other::after {
            animation: arrow_move_after 1s forwards;
        }
        @keyframes arrow_move_before {
            0%{
                transform: translateX(-220%);
            }
            100%{
                transform: translateX(0%);
            }
        }
        @keyframes arrow_move_after {
            0%{
                transform: translateX(0%);
            }
            100%{
                transform: translateX(220%);
            }
        }
            


    }
}
@media (max-width: 768px) {
    .panel_link,
    .panel {
        height: auto;
    }
    .panel--large {
        height: 100%;
    }
    .panel_link_detail_role {
        font-size: 10.42rem;
        line-height: 1.4;
        padding: 5rem 8rem;
    }
    .panel_link_detail_ttl_wrap {
        min-width: 300rem;
    }
    .panel_link_detail_ttl_wrap .panel_link_detail_role {
        height: 40rem;
        width: 90rem;
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        color: var(--color-black);
    }
    .panel_link_detail_ttl_wrap .panel_link_detail_role::after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        display: block;
        right: 0;
        height: 70%;
        border-left: 1px solid var(--color-black);
        margin-block: auto;
    }
    .panel_link_detail_ttl {
        height: 60rem;
        padding-inline: 10rem;
    }
    .panel_link_detail_ttl_inner {
        font-size: 13rem;
        line-height: 1.4;
    }
    .panel_link_detail_ttl_arrow {
        width: 60rem;
        height: 60rem;
    }
    .main_box_catch .panel_link_detail_ttl_arrow {
        display: none;
    }
    .panel_link_detail_ttl_arrow::before {
        width: 15rem;
        height: 15rem;
    }
    .panel_link_detail_ttl_arrow_other::before {
        width: 15rem;
        height: 15rem;
        position: relative;
        right: 20rem;
    }
    .panel_front {
        padding: 16rem 6rem;
    }
}

/* border_flex */
.border_flex_inner {
    display: flex;
}
.border_flex_label_l {
    line-height: 1.7;
}
.border_flex_txt {
    line-height: 1.9;
}
.border_flex_txt2 {
    line-height: 1.9;
}
@media (min-width: 769px) {
    .border_flex_inner {
        justify-content: space-between;
        /* gap: min(85px, 85rem); */
        gap: 0;
    }
    .border_flex_inner .border_flex_content:nth-child(1) {
        min-width: min(378px, 378rem);
    }
    .border_flex_inner .border_flex_content:nth-child(2) {
        /* min-width: min(755px, 755rem); */
        width: calc(calc(773 / 1360) * 100%);
    }
    .border_flex .border_flex_inner:nth-child(1) .border_flex_content {
        /* border-top: 3px solid var(--color-black); */
        border-top: 1px solid var(--color-black);
    }
    .border_flex_label {
        font-size: 22px;
        line-height: 1.2;
    }
    .border_flex_label_l {
        /* font-size: 30px; */
        /* font-size: 28rem; */
        font-size: 24rem;
    }
    .border_flex_txt {
        /* font-size: 16px; */
        font-size: 16rem;
        letter-spacing: 0.03em;
    }
    .border_flex_txt--ls {
        letter-spacing: -0.001em;
    }
    .border_flex_txt2 {
        margin-top: 20rem;
        font-size: 13rem;
    }
}
@media (max-width: 768px) {
    .border_flex_inner {
        flex-direction: column;
        gap: 30rem;
    }
    .border_flex .border_flex_inner:nth-child(1) .border_flex_content:nth-child(1) {
        /* border-top: 2rem solid var(--color-black); */
        border-top: 1rem solid var(--color-black);
    }
    .border_flex_label {
        font-size: 20rem;
        line-height: 1.7;
    }
    .border_flex_label_l {
        font-size: 20rem;
    }
    .border_flex_txt {
        font-size: 14rem;
    }
    .border_flex_txt--ls0 {
        letter-spacing: 0.01em;
    }
    .border_flex_txt2 {
        margin-top: 20rem;
        font-size: 11rem;
    }
}
@media (width >= 1981px)  {
    .border_flex_inner {
        gap: 410px;
    }
    .border_flex_label_l {
        /* font-size: 28px; */
        font-size: 24px;
    }
    .border_flex_txt {
        font-size: 16px;
    }
    .border_flex_txt2 {
        font-size: 13px;
    }
    .border_flex_inner .border_flex_content:nth-child(2) {
        width: 1063px;
    }
}

/* underlayer_mv */
.underlayer_mv {
    position: relative;
}
.underlayer_mv_ttl_wrap {
    display: flex;
    flex-direction: column;
}
.underlayer_mv_ttl {
    line-height: 1;
    position: relative;
}
.underlayer_mv_ttl::after {
    content: "";
    display: block;
    width: 40rem;
    height: 1px;
    background-color: var(--color-black);
    position: absolute;
    left: 0;
    bottom: 0;
}
.underlayer_mv_txt {
    line-height: 1.4;
    letter-spacing: 0.03em;
}
.underlayer_mv_lead_ttl {
    font-size: 20rem;
    line-height: calc(34/20);
    margin-bottom:40rem;
}
.underlayer_mv_lead_txt {
    font-size: 14rem;
    line-height: calc(24/14);
}
.underlayer_mv_lead_txt--spacing {
    letter-spacing: -0.01em;
}
@media (min-width: 769px) {
    .underlayer_mv {
        padding-top: 60rem;
    }
    .underlayer_mv:has(+ .lead) {
        margin-bottom: 70rem;
    }
    .underlayer_mv_content {
        display: grid;
        grid-template-columns: 360rem 1fr;
        grid-template-rows: auto 1fr auto;
    }
    .underlayer_mv_img {
        grid-row: span 2 / span 2;
        height: 670rem;
    }
    .breadcrumb {
        grid-column: span 2 / span 2;
        grid-column-start: 1;
        grid-row-start: 3;
    }
    .underlayer_mv_lead {
        grid-column-start: 1;
        grid-row-start: 2;
        align-self: start;
    }
    .underlayer_mv_ttl_wrap {
        padding-inline: 40rem 18rem;
        align-self: start;
        gap: 30rem;
    }
    .underlayer_mv_ttl {
        font-size: 24rem;
        padding-bottom: 20rem;
        margin-bottom: 20rem;
    }
    .underlayer_mv_txt {
        /* font-size: 37rem; */
        font-size: 35rem;
    }
    .underlayer_mv_txt_l {
        /* font-size: 46rem; */
        font-size: 35rem;
    }
    .underlayer_mv_txt.font_inter {
        line-height: 1;
        /* font-size: 65rem; */
        font-size: 50rem;
    }
    .underlayer_mv_lead {
        padding: 40rem 40rem 0;
    }
    .underlayer_mv_lead_bottom {
        align-self: flex-end;
    }
}
@media (max-width: 768px) {
    .underlayer_mv {
        padding-top: 20rem;
    }
    .underlayer_mv:has(+ .lead) {
        margin-bottom: 40rem;
    }
    .underlayer_mv_img {
        width: 100%;
        height: 345rem;
    }
    .underlayer_mv_ttl_wrap {
        padding: 0 20rem 13rem;
        gap: 20rem;
        justify-content: space-between;
        min-height: 216rem;
    }
    .underlayer_mv_ttl {
        font-size: 20rem;
        padding-bottom: 10rem;
        margin-bottom: 10rem;
    }
    .underlayer_mv_txt {
        /* font-size: 27rem; */
        font-size: 26rem;
    }
    .underlayer_mv_txt_l {
        /* font-size: 36rem; */
        font-size: 35rem;
    }
    .underlayer_mv_txt.font_inter {
        line-height: 0.95;
        /* font-size: 50rem; */
        font-size: 44rem;
    }
    .underlayer_mv_lead {
        padding: 40rem 20rem 0;
    }
}

/* breadcrumb */
.breadcrumb_list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3em;
}
.breadcrumb_list li,
.breadcrumb_list a {
    letter-spacing: 0.1em;
}
.breadcrumb_list a {
    color: var(--color-dark-gray);
    text-decoration: none;
}
.breadcrumb_list li:has(+ li)::after {
    content: " ＞ ";
}
@media (min-width: 769px) {
    .breadcrumb {
        position: relative;
        padding-block: 24rem;
    }
    .breadcrumb::before{
        content:"";
        position: absolute;
        width:calc(100% - 40rem * 2);
        left:0;
        right:0;
        display:block;
        margin-inline: auto;
        border-top: 1px solid var(--color-gray-20);
    }
    .breadcrumb::before {
        bottom: 0;
    }

    .breadcrumb_list {
        justify-content: flex-end;
    }    
    .breadcrumb_list li,
    .breadcrumb_list a {
        font-size: 14rem;
    }
}
@media (max-width: 768px) {
    .breadcrumb_list {
        padding-block: 21rem;
        border-top: 1px solid var(--color-gray-20);
        border-bottom: 1px solid var(--color-gray-20);
    }
    .breadcrumb_list li,
    .breadcrumb_list a {
        font-size: 12rem;
    }
}

/* lead */
.lead_content_inner {
    display: flex;
    flex-direction: column;
    gap: 30rem;
}
.lead_label {
    line-height: 1.7;
    letter-spacing: 0.03em;
}
.lead_txt {
    line-height: 1.7;
    letter-spacing: 0.03em;
    /* color: var(--color-dark-gray); */
    color: #000;
    text-align: justify;
    font-weight: 400;
}
.lead_txt_cap {
    font-size: 66.66%;
    line-height:1.7;
}
@media (min-width: 769px) {
    .lead_content {
        padding-bottom: 80rem;
        border-bottom: 1px solid var(--color-gray-20);
    }
    .lead_content_inner {
        width: 636rem;
    }
    .lead_label {
        font-size: 22rem;
        font-size: 22px;
    }
    .lead_txt {
        /* font-size: 18rem; */
        font-size: 16rem;
        font-size: 16px;
    }
}
@media (max-width: 768px) {
    .lead_content {
        padding-bottom: 40rem;
        border-bottom:1px solid var(--color-gray-20);
    }
    .lead_label {
        font-size: 16rem;
        font-size: 16px;
    }
    .lead_txt {
        font-size: 14rem;
        font-size: 14px;
    }
    .underlayer_mv_lead_txt {
        padding-bottom:100rem;
        border-bottom:1px solid var(--color-gray-20);
    }
}

/* column */
.column_content {
    display: flex;
}
.column_ttl {
    line-height: 1.6;
    font-weight: 400;
}
.column_txt_area {
    display: flex;
    /* overflow: hidden; */
    flex-direction: column;
    gap: 28rem;
}
.column_txt {
    font-size: 16px;
    line-height: 1.9;
}
.question_txt {
    position: relative;
    font-size: 16px;
    line-height: 1.9;
}
.question_txt::before {
    /* content: "";
    display: block;
    position: absolute;
    top: 0.95em;
    left: -35px;
    width: 23px;
    height: 1px;
    background-color: #000; */
    
    /* border-top: 3px solid var(--color-black); */
    /* content: "";
    width: 23px;
    height: 1px;
    background-color: #000;
    position: absolute;
    top: calc(0.5lh - rem());
    left: 0; */
}
.column_img {
    width: 100%;
    line-height: 0;
    overflow: hidden;
}
.column_img img {
    scale: 1.01;
}
.column_img_row {
    display: flex;
}
.column_content_wrap {
    display: flex;
    flex-direction: column;
}
.column_main_img_wrap {
    display: flex;
    flex-direction: column;
}
.column_main_note {
    text-align: right;
    line-height: 1.7;
}
.column_main_img {
    width: 100%;
    overflow: hidden;
}
.column_main_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
@media (min-width: 769px) {
    .column {
        margin-top: 0rem;
    }
    .column_content {
        justify-content: space-between;
        /* gap: 80rem; */
        gap: 30rem;
    }
    .column_content_wrap {
        gap: 80rem;
    }
    .column_main_img_wrap {
        margin-top: 180rem;
        gap: 20rem;
    }
    .column_main_note {
        font-size: 14rem;
        font-size: 14px;
    }
    .column_main_img {
        height: 560rem;
    }
    .column_ttl {
        /* font-size: 32px; */
        font-size: 28px;
    }
}
@media (max-width: 768px) {
    .column {
        margin-top: 100rem;
    }
    .column_content {
        flex-direction: column;
        gap: 40rem;
    }
    .column_txt_area {
        width: 100%;
    }
    .column_content_wrap {
        gap: 100rem;
    }
    .column_main_img_wrap {
        margin-top: 180rem;
        gap: 16rem;
    }
    .column_main_note {
        font-size: 12rem;
        font-size: 12px;
    }
    .column_main_img {
        height: 146rem;
    }
    .column_ttl {
        /* font-size: 30rem; */
        font-size: 28rem;
    }
    .question_txt::before {
        display: none;
    }
}

/* member */
.member_ttl {
    line-height: 1.6;
    font-weight: 400;
}
.member_list {
    display: flex;
}
.member_list li {
    display: flex;
}
.member_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.member_detail {
    width: 100%;
    background-color: var(--color-black);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}
.member_detail_tag {
    background-color: var(--color-white);
    line-height: 1;
    display: inline-block;
}
.member_detail_txt_area {
    color: var(--color-light-gray);
    display: flex;
    flex-direction: column;
}
.member_detail_name_area {
    display: flex;
    flex-direction: column;
}
.member_detail_name_jp {
    line-height: 1;
}
.member_detail_name_en {
    color: #838383;
    line-height: 1;
}
.member_detail_name_job {
    color: var(--color-white);
    font-weight: 500;
    line-height: 1.4;
    font-size: min(13px, 13rem);
}
.member_detail_year {
    line-height: 1;
}
@media (min-width: 769px) {
    .member {
        padding-top: min(80px, 80rem);
    }
    .member_ttl {
        font-size: min(32px, 32rem);
    }
    .member_list {
        gap: min(30px, 30rem);
        margin-top: min(19px, 19rem);
    }
    .member_list li {
        width: min(380px, 380rem);
    }
    .member_img {
        width: 100%;
    }
    .member_detail {
        min-height: min(200px, 200rem);
        gap: min(11px, 11rem);
        padding: min(20px, 20rem);
    }
    .member_detail_txt_area {
        gap: min(8px, 8rem);
    }
    .member_detail_name_area {
        gap: min(4px, 4rem);
    }
    .member_detail_tag {
        font-size: min(14px, 14rem);
        padding: min(3px, 3rem) min(6px, 6rem);
    }
    .member_detail_position {
        font-size: min(9px, 9rem);
        line-height: 1.5;
    }
    .member_detail_name_jp {
        font-size: min(18px, 18rem);
    }
    .member_detail_name_en {
        font-size: min(10px, 10rem);
    }
    .member_detail_year {
        font-size: min(10px, 10rem);
    }
}
@media (max-width: 768px) {
    .member_ttl {
        font-size: 32rem;
    }
    .member {
        padding-top: 40rem;
    }
    .member_list {
        gap: 20rem;
        flex-direction: column;
        margin-top: 19rem;
    }
    .member_list li {
        width: 100%;
    }
    .member_img {
        width: 145rem;
        min-width: 145rem;
    }    
    .member_detail {
        min-height: 200rem;
        padding: 20rem;
    }
    .member_detail_tag {
        font-size: 12rem;
        padding: 3rem 6rem;
    }
    .member_detail_position {
        font-size: 9rem;
        line-height: 1.5;
    }
    .member_detail_name_jp {
        font-size: 16rem;
    }
    .member_detail_txt_area {
        gap: 10rem;
    }
    .member_detail_name_area {
        gap: 4rem;
    }
    .member_detail_name_en {
        font-size: 10rem;
    }
    .member_detail_year {
        font-size: 10rem;
    }
}

/* floating_btn */
@media (max-width: 768px) {
    .floating_btn_area {
        width: 100%;
        height: 60rem;
        position: relative;
    }
    /* .floating_btn_area.is_active .floating_btn_wrap {
        position: fixed;
    } */
    .floating_btn_wrap {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 10;
        display: flex;
    }
    .floating_btn {
        position: relative;
        flex: 1;
    }
    .floating_btn + .floating_btn::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        height: 40%;
        border-left: 1px solid var(--color-black);
        margin-block: auto;
    }
    .floating_btn_link {
        display: flex;
        justify-content: center;
        align-items: center;
        background: var(--color-white);
        color: var(--color-black);
        height: 62rem;
        font-size: 14rem;
        font-weight: 500;
        line-height:1.1;
        text-decoration: none;
    }
}

/* anchor */
.anchor_list {
    display: flex;
    flex-wrap: wrap;
    gap: 4rem 18rem;
    align-items: center;
}
.anchor_list a {
    line-height: 1.83;
    /* font-size: 16rem; */
    font-size: 14rem;
    display: flex;
    align-items: center;
    text-decoration: none;
}
.anchor_list a::before {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    border-top: 4rem solid transparent;
    border-left: 8rem solid var(--color-black);
    border-bottom: 4rem solid transparent;
    margin-right: 4rem;
}
@media (min-width: 769px) {
    .anchor {
        padding-block: 120rem 40rem;
    }
    .anchor_list a:hover {
        opacity: 0.5;
    }
}
@media (max-width: 768px) {
    .anchor {
        padding-block: 20rem 40rem;
        /* border-top: 1px solid var(--color-gray-20); */
        margin-top: 120rem;
    }
}

/* wbr */
.wbr_txt {
    word-break: keep-all;
    overflow-wrap: anywhere;
}

