@charset "utf-8";

/*--
  common
--*/
:root {
    --border-color:0, 73, 152;
    --blue: #004998;
    --white:#fff;
    --yellow:#fedb00;
    --black:#000;
    --entry-blue:#034B99;
    --z-index-header:10;
    --z-index-modal:20;
    --ease-in-out-custom: cubic-bezier(0.77, 0, 0.175, 1);
    --ease-out-cubic:cubic-bezier(0.22, 0.61, 0.36, 1);
}
img,
svg {
    max-width: 100%;
    width: 100%;
    height: auto;
    vertical-align: bottom;
}
body {
    line-height: 1.5;
    font-size: 16rem;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
    color: var(--black);
}
a:-webkit-any-link  {
    color: currentColor;
    text-decoration: none;
    cursor: pointer;
}
.wrap {
    overflow: clip;
}

.bg_gray {
    background: #f7f7f7 url(../images/common/bg_gray.jpg);
    background-size: 480rem auto;
}
.bg_darkgray {
    background: #e8e8e8 url(../images/common/bg_darkgray.jpg);
    background-size: 480rem auto;
}
.bg_blue {
    background: var(--blue) url(../images/common/bg_blue.jpg);
    background-size: 480rem auto;
    color: var(--white);
}
.bg_lightblue {
    background: #EEF2F8 url(../images/common/bg_lightblue.jpg);
    background-size: 480rem auto;
}
.bg_yellow {
    background: var(--yellow) url(../images/common/bg_yellow.jpg);
    background-size: 480rem auto;
    color: var(--entry-blue);
}
.bg_linecheck {
    background-image: url(../images/common/bg_linecheck.jpg);
    background-position: center center;
}
@media (min-width:769px) {
    .bg_linecheck {
        background-size:706rem auto;
    }
}
@media (max-width:768px) {
    .bg_linecheck {
        background-size:353rem auto;
    }
}

/* a:-webkit-any-link:hover {
    text-decoration: underline;
} */

.font_montserrat {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
}
.font_zenkaku_regular {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
}  
.font_zenkaku_bold {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
}
.fw_700 {
    font-weight: 700;
}
.fw_400 {
    font-weight: 400;
}
@media(min-width:961px) {
    html {
        font-size: 1px;
    }
}
@media(min-width:769px) and (max-width:960px){
    html {
        font-size: calc(100/960 * 1vw);
    }
}
@media (min-width:769px) {
    :root {
        --header-height:85rem;
    }
    [disp-only]:not([disp-only~="pc"]) {
        display: none!important;
    }
    @media (hover:hover) {
        .hover_opacity {
            transition: opacity .3s;
        }
        .hover_opacity:hover {
            opacity: .7;
        }
    }
    [disp-only]:not([disp-only~="pc"]) {
        display: none!important;
    }
}
@media (max-width:768px) {
    [disp-only]:not([disp-only~="sp"]) {
        display: none!important;
    }
    :root {
        --header-height:60rem;
    }
    html {
        font-size: calc((100/375) * 1vw);/*SPデザイン幅*/
    }
    [disp-only]:not([disp-only~="sp"]) {
        display: none!important;
    }
}

.section_inner {
    max-width: 1440px;
    margin: auto;
}

/*--
  header
--*/
.header {
    border-bottom: 1px solid rgba(var(--border-color), 0.4);
    position: fixed;
    width: 100%;
    height: var(--header-height);
    top: 0;
    left: 0;
    background-color: var(--white);
    display: flex;
    align-items: center;
    justify-content: space-between;
    z-index: var(--z-index-header);
}
[class].header_logo {
    color: var(--blue);
    display: flex;
    align-items: center;
}
.header_nav {
    display: flex;
    align-items: center;
    height: 100%;
}
.header_nav_inner {
    height: 100%;
    border-right: 1px solid rgba(var(--border-color), 0.4);
}
.header_nav_list {
    display: flex;
    height: 100%;
}
.header_nav_link {
    display: flex;
    align-items: center;
    height: 100%;
    line-height: 1.2;
    text-align: center;
    position: relative;
}
.header_nav_link::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 7rem;
    background-color: var(--blue);
    transform: scale(0,1);
    transform-origin: right top;
    transition: transform 0.3s; 
}
.header_nav_link:hover::after {
    transform: scale(1,1);
    transform-origin: left top;
}
[class].header_entry_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--entry-blue);
    position: relative;
}
.header_entry_btn_txt {
    position: relative;
}
.header_entry_btn_arrow .icon_link_arrow_in{
    transform: translateY(0%);
}
.header_entry_btn_arrow .icon_link_arrow_out{
    transform: translateY(-100%);
}
@media(min-width:769px)  {
    .header {
        padding-left: 40rem;
    }
    .header_logo_img {
        width: 173rem;
    }
    .header_logo_txt {
        font-size: 14rem;
        letter-spacing: -0.04em;
        margin-left: 11rem;
    }
    .header_nav_inner {
        padding-right: 12rem;
    }
    .header_nav_list {
        gap: 0 18rem;
    }
    .header_nav_link {
        padding: 0 10rem;
    }
    .header_entry_wrap {
        padding: 0 20rem 5rem;
        position: relative;
        cursor: pointer;
    }
    [class].header_entry_btn {
        width: 206rem;
        height: 60rem;
        font-size: 14rem;
        gap: 0 12rem;
        border: none;
        cursor: pointer;
    }
    .header_entry_btn_arrow {
        width: 37rem;
        height: 28rem;
    }
    .header_entry_btn .icon_link_arrow_in::before, 
    .header_entry_btn .icon_link_arrow_out::before{
        rotate: 90deg;
    }
    .header_entry_list {
        display: none;
        position: absolute;
        top: 100%;
        left: 20rem;
        width: 206rem;
        z-index: 5;
        padding: 8rem 14rem;
    }
    .header_entry_list >  li + li {
        border-top: solid 1px rgba(255, 255, 255, 0.5);
    }
    .header_entry_list_link {
        font-size: 13rem;
        padding-block: 8rem;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    .header_entry_list_link .icon_link_arrow {
        width: 27rem;
        height: 20rem;
        display: inline-block;
    }
    .btn_open_menu {
        display: none;
    }

    @media (hover:hover) {
        .hover_textline_txt {
            transition: background-size .3s ease;
            background: linear-gradient(currentColor, currentColor) 100% 100% / 0 1px no-repeat;
        }
        .hover_textline:hover .hover_textline_txt {
            background-size: 100% 1px;
            background-position: 0 100%;
        }
        .hover_link_icon:hover .header_entry_btn_arrow .icon_link_arrow_in {
            transform: translateY(100%);
        }
        .hover_link_icon:hover .header_entry_btn_arrow .icon_link_arrow_out {
            transform: translateY(0%);
        }
    }
}
@media(min-width:769px) and (max-width:1290px){
    .header {
        padding-left: 20rem;
    }
    .header_logo {
        flex-wrap: nowrap;
    }
    .header_logo_img {
        width: 130rem;
    }
    .header_logo_txt {
        font-size: 12rem;
    }
    .header_nav_list {
        gap: 0 4rem;
    }
    .header_nav_link {
        font-size: 13rem;
        padding: 0 5rem;
    }
    .header_entry_wrap {
        padding-inline: 14rem;
    }
    [class].header_entry_btn {
        width: 170rem;
        font-size: 12rem;
        gap: 0 6rem; 
    }
    .header_entry_list {
        width: 170rem;
        left: 14rem;
    }
    .header_entry_list_link {
        font-size: 11rem;
    }
}
@media (max-width: 768px) {
    .header {
        padding-left: 6rem;
    }
    .header_logo {
        padding: 10rem;
        background-color: var(--white);
    }
    .header_logo_img {
        width: 133rem;
    }
    .header_logo_txt {
        font-size: 14rem;
        letter-spacing: -0.04em;
        margin-left: 11rem;
    }
    .header_nav_inner,
    .header_entry_wrap {
        display: none;
    }
    .btn_open_menu {
        border: none;
        color: var(--white);
        width: 60rem;
        height: 61rem;
        padding-top: 9rem;
        position: relative;
        z-index: 1;
    }
    .btn_open_menu_line {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 30rem;
        height: 23rem;
        margin: auto;
        position: relative;
    }
    .btn_open_menu_line > span {
        width: 100%;
        height: 1rem;
        background-color: var(--white);
        transition: rotate .3s,translate .3s;
    }
    .btn_open_menu_bg_1::before,
    .btn_open_menu_bg_1::after,
    .btn_open_menu_bg_2::before,
    .btn_open_menu_bg_2::after {
        content: '';
        display: block;
        position: absolute;
        background: rgba(255, 255, 255, 0.1);
    }
    .btn_open_menu_bg_1::before,
    .btn_open_menu_bg_1::after {
        top: 0;
        width: 1px;
        height: 100%;
    }
    .btn_open_menu_bg_1::before {
        left: 14rem;   
    }
    .btn_open_menu_bg_1::after {
        right: 15rem;
    }
    .btn_open_menu_bg_2::before,
    .btn_open_menu_bg_2::after {
        width: 100%;
        height: 1px;
    }
    .btn_open_menu_bg_2::before {
        top: 11rem;
    }
    .btn_open_menu_bg_2::after {
        top: 34rem;
    }

    .btn_open_menu.menu_open .btn_open_menu_line > span:nth-child(1) {
        rotate: 37deg; 
        width: 110%;
        translate: -2rem 11rem;
    }
    .btn_open_menu.menu_open .btn_open_menu_line > span:nth-child(3) {
        rotate: -37deg;
        width: 110%;
        translate: -2rem -11rem;
    }
    .btn_open_menu.menu_open .btn_open_menu_line > span:nth-child(2) {
        opacity: 0; 
    }
    .btn_open_menu_txt {
        position: relative;
        z-index: 1;
        font-size: 9.8rem;
        text-transform: uppercase;
        top: -2rem;
    }

}

.menu {
    visibility: hidden;
    position: fixed;
    top: var(--header-height);
    right: 0;
    opacity: 0;
    color: var(--white);
    width: 100%;
    height: 100vh;
    height: calc(100svh - var(--header-height));
    transition:visibility 0.3s,opacity 0.3s;
    z-index: 1;
}
.menu.menu_open {
    opacity: 1;
    visibility: visible;
    transition:visibility 0.3s,opacity 0.3s;
}
.menu::before {
}
.menu_inner {
    padding: 40rem 45rem 80rem;
    height: 100%;
    overflow-y: auto;
    position: relative;
    z-index: 1;
}



.menu_content,
.menu_btn_entry_wrap {
    position: relative;
}
.menu_inner::before,
.menu_inner::after,
.menu_content::before,
.menu_content::after {
    content: '';
    display: block;
    position: fixed;
    width: 1px;
    height: 100vh;
    top: var(--header-height);
    background: rgba(255, 255, 255, 0.1);
}
.menu_inner::before {
    left:15rem;
}
.menu_inner::after {
    right:15rem;
}
.menu_content::before {
    left:45rem;
}
.menu_content::after {
    right:45rem;
}
.menu_btn_entry_wrap {
    margin-top: 40rem;
}
.menu_btn_entry_wrap::before,
.menu_btn_entry_wrap::after {
    content: '';
    display: block;
    position: absolute;
    left: 50%;
    translate: -50% 0;
    width: 100vw;
    height: 1px;
    background: rgba(255, 255, 255, 0.1);
}
.menu_btn_entry_wrap::before {
    top: 0;
}
.menu_btn_entry_wrap::after {
    bottom: 0;
}
[class].menu_btn_entry {
    display: block;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--blue);
    height: 55rem;
    gap: 0 9rem;
    padding-left: 8rem;
}
.menu_btn_entry_txt {
    position: relative;
}
.menu_btn_entry_list {
    padding: 0 14rem 7rem;
}
.menu_btn_entry_list > li + li {
    border-top: solid 2px rgba(255, 255, 255, 0.5);
}
.menu_btn_entry_list > li:first-child .menu_btn_entry_list_link{
    padding-top: 0;
}
.menu_btn_entry_list_link {
    font-size: 14rem;
    padding: 11rem 0 11rem 4rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.menu_btn_entry_list_link .icon_link_arrow {
    width: 27rem;
    height: 21rem;
}

.menu_accordion_content {
    display: none;
}
.menu_list {
    display: flex;
    flex-direction: column;
    gap: 24rem 0;
}
.menu_link {
    position: relative;
    display: flex;
    color: var(--white);
    justify-content: space-between;
    width: 100%;
    padding-bottom: 11rem;
}
.menu_link::before,
.menu_link::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    height: 1rem;
}
.menu_link::before {
    width: 100%;
    background-color: rgba(255,255,255,0.4);
}
.menu_link::after {
    background-color: var(--white);
    width: 84rem;
    transition: width .3s;
}
.btn_menu_accordion_trigger.accordion_open::after {
    width: 100%;
}
.btn_menu_accordion_trigger {
    border: none;
}
.btn_menu_accordion_plus {
    display: flex;
    width: 30rem;
    height: 24rem;
    align-items: center;
    justify-content: center;
    border: 1rem solid #fff;
    border-radius: 50%;
}
.btn_menu_accordion_plus::before,
.btn_menu_accordion_plus::after {
    content: '';
    display: block;
    position: absolute;
    background-color: #fff;
}
.btn_menu_accordion_plus::before {
    width: 6rem;
    height: 1.5rem;
    transition:opacity .3s;
}
.btn_menu_accordion_plus::after {
    width: 1.5rem;
    height: 6rem;
    transition:rotate .3s;
}
.btn_menu_accordion_trigger.accordion_open .btn_menu_accordion_plus::after {
    rotate: 90deg;
}
.btn_menu_accordion_trigger.accordion_open .btn_menu_accordion_plus::before {
    opacity: 0;
} 
.menu_sublist {
    font-size: 14rem;
    margin-top: 8rem;
}
.menu_sublist a {
    padding: 6.5rem 0;
    display: inline-block;
}
.menu_sublist a[target="_blank"] {
    padding: 6.5rem 15rem 6.5rem 0;
    background: url(../images/common/icon_newtab_w.svg) no-repeat right center;
    background-size: 10rem auto;
}
@media (min-width: 769px) {
    .menu {
        display: none;
    }
}
@media (max-width: 768px) {
    .main {
    }
}

/*--
  main
--*/
.main {
    padding-top: var(--header-height);
}
@media (max-width: 768px) {
    .main {
    }
}

/*--
  footer
--*/
.footer {
    border-top: 1px solid rgba(var(--border-color), 0.2);
    padding-top: 70rem;
    padding-bottom: 20rem;
    background: #fff;
}
.ft_inner {
    display: grid;
    grid-template-areas:
    "logo body"
    "sns body"
    "copyright copyright";
    max-width: 1440px;
    margin-inline: auto;
}
.ft_head {
    grid-area: logo;
}
.ft_logo {
    display: block;
}
.ft_sns {
    grid-area: sns;
}
.ft_sns_list {
    display: flex;
    align-items: center;
    gap: 0 18rem;
}
.ft_sns_link {
    display: block;
    max-width: 37rem;
}
.ft_body {
}
.ft_copyright {
    grid-area: copyright;
    color: rgba(0,0,0,0.5);
}
.ft_body a[target="_blank"]::after {
    content: '';
    display: block;
    margin: auto;
    position: absolute;
    width: 10rem;
    height: 10rem;
    top: 0;
    bottom: 0;
    left: calc(100% + 4rem);
    background: url(../images/common/icon_newtab.svg) no-repeat right center;
    background-size: contain;
}
.ft_link_list {
    line-height: 1.7;
    color: rgba(0,0,0,0.5);
}
@media (min-width: 769px) {
    .footer {
        position: relative;
        overflow: hidden;
    }
    .footer::before {
        pointer-events: none;
        content: '';
        display: block;
        position: absolute;
        top: -160rem;
        left: 50%;
        background: url(../images/common/ft_bg.svg) no-repeat 0 0;
        background-size: contain;
        width: 1122rem;
        height: 961rem;
        margin-left: -800rem;
    }
    .ft_inner {
        grid-template-rows: 100rem 1fr auto;
        grid-template-columns: 392rem 1fr;
        gap: 0 77rem;
        padding: 0 40rem;
        position: relative;
        z-index: 1;
    }
    .ft_logo {
        width: 392rem;
    }
    .ft_body {
        grid-area: body;
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(170rem, auto));
        gap: 44rem 40rem;
    }
    .ft_link_ttl {
        font-size: 20rem;
        line-height: 1.4;
    }
    .ft_link_list {
        margin-top: 10rem;
        font-size: 16rem;
        line-height: 1.7;
        margin-top: 10rem;
    }
    .ft_link_list > li + li {
        margin-top: 10rem;
    }
    .js_ft_link_wrap {
        display: block!important;
    }
    .ft_sub_link {
        position: relative;
        border-bottom: 1px solid rgba(0,0,0,0.2);
    }
    .ft_other .ft_link_list {
        font-size: 12rem;
    }
    .ft_copyright {
        text-align: right;
        margin-top: 16rem;
        font-size: 12rem;
    }
    @media (hover:hover) {
        .ft_link_ttl {
            pointer-events: none;
        }
        .ft_link_ttl a[href] {
            pointer-events:all;
            padding-bottom: 4rem;
            transition: background-size .3s ease;
            background: linear-gradient(currentColor, currentColor) 100% 100% / 0 1px no-repeat;
        }
        .ft_link_ttl a:hover {
            background-size: 100% 1px;
            background-position: 0 100%;
        }

        .ft_sub_link {
            padding-bottom: 2rem;
            transition: background-size .3s ease;
            background: linear-gradient(currentColor, currentColor) 100% calc(100% + 1px) / 0 1px no-repeat;

        }
        .ft_sub_link:hover {
            background-size: 100% 1px;
            background-position: 0 calc(100% + 1px);
        }
    }
}
@media (max-width: 768px) {
    .footer {
        padding-top: 34rem;
        padding-bottom: 24rem;
    }
    .ft_inner {
        gap: 0;
        padding: 0 24rem;
        grid-template-areas:
            "logo"
            "body"
            "sns"
            "copyright";
        grid-template-rows: auto;
        grid-template-columns: 1fr;
    }
    .ft_logo {
        width: 220rem;
    }
    .ft_sns {
        margin-top: 32rem;
    }
    .ft_sns_list {
        justify-content: center;
    }
    .ft_body {
        display: flex;
        flex-wrap: wrap;
        gap: 16rem 4rem;
        margin-top: 32rem;
    }
    .ft_child {
        width: calc(50% - 4rem / 2)
    }
    .ft_link_ttl {
        font-size: 14rem;
        line-height: 1.4;
    }
    .ft_link_list {
        font-size: 12rem;
        line-height: 1.7;
        margin-top: 8rem;
    }
    .js_ft_link_wrap {
        display: none;
    }
    .ft_link_list > li + li {
        margin-top: 6rem;
    }
    .ft_sub_link {
        position: relative;
        display: inline;
        border-bottom: 1px solid rgba(0,0,0,0.2);
    }
    .ft_other {
        width: 100%;
    }
    .ft_other .ft_link_list > li + li  {
        margin-top: 8rem;
    }
    .ft_copyright {
        text-align: center;
        margin-top: 16rem;
        font-size: 12rem;
    }
    .btn_ft_accordion_trigger > a {
        position: relative;
        padding-right: 17rem;
        pointer-events: none;
    }
    .btn_ft_accordion_trigger > a::before,
    .btn_ft_accordion_trigger > a::after {
        content: '';
        display: block;
        position: absolute;
        top: 0;
        bottom: 0;
        margin: auto;
        background-color: var(--black);
    }
    .btn_ft_accordion_trigger > a::before {
        width: 9rem;
        height: 2rem;
        right: 0;
    }
    .btn_ft_accordion_trigger > a::after {
        width: 2rem;
        height: 9rem;
        right: 3.5rem;
    }
    .btn_ft_accordion_trigger.is_active > a::after {
        opacity: 0;
    }
}

/* border */
.side_border {
    border-inline: 1px solid rgba(var(--border-color),0.2);
}
.top_border_box,
.main_border_box,
.bottom_border_box {
    border-top: 1px solid rgba(var(--border-color),0.2);
}
@media (min-width: 769px) {
    .top_border_box,
    .main_border_box,
    .bottom_border_box {
        padding-inline: 40rem;
    }
}
@media (max-width: 768px) {
    .top_border_box,
    .main_border_box,
    .bottom_border_box {
        padding-inline: 24rem;
    }
}


.align_right {
    text-align: right;
}

/* entry_area */
[class].entry_area_btn {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    color: var(--entry-blue);
}
.entry_area_btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    background: url(../images/common/entry_bg_pc.jpg) repeat-x center center;
    background-size: 3075rem auto;
    animation: entry_btn 120s infinite linear;
}
.entry_area_btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    background:url(../images/common/entry_bg_pattern.png);
    background-size: 480rem auto;
}
@keyframes entry_btn {
    0% {
        background-position: 0 center;
    }
    100% {
        background-position: -3075rem center;
    }
}
.entry_area .section_inner {
    max-width: 1120rem;
}
.entry_area_btn_ttl_wrap,
.entry_area_btn_icon_wrap {
    position: relative;
    z-index: 1;
}
.entry_area_btn_icon_wrap {
    display: flex;
    align-items: center;
}
.entry_area_btn_ttl_wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.entry_area_btn_ttl_en {
    text-transform: uppercase;
    background-color: var(--blue);
    line-height: 1;
    color: var(--yellow);
}
.entry_area_btn_ttl_ja {
    letter-spacing: -0.03em;
}
[class].entry_area_btn .icon_link_arrow_in::before, 
[class].entry_area_btn .icon_link_arrow_out::before {
    width: 15.57%;
    height: 25.15%;
}
@media (min-width: 769px) {
    .entry_top,
    .entry_bottom {
        height: 60rem;
    }
    .entry_area_btn {
        height: 262rem;
        gap: 0 120rem;
        padding-left: 70rem;
        justify-content: center;
    }
    .entry_area_btn_ttl_en {
        font-size: 22rem;
        padding: 0 2rem;
    }
    .entry_area_btn_ttl_ja {
        font-size: 60rem;
        line-height: 1;
        margin-top: 17rem;
    }
    .entry_area_btn_icon_wrap {
        gap: 0 20rem;
        justify-content: space-between;
    }
    .entry_area_btn_icon_wrap + .entry_area_btn_icon_wrap {
        margin-top: 15rem;
    }
    [class].entry_area_btn .icon_link_arrow {
        width: 34rem;
        height: 26rem;
    }
    [class].entry_area_btn .hover_textline_txt {
        font-size: 22rem;
    }
}
@media (max-width: 768px) {
    .entry_top {
        height: 105rem;
    }
    .entry_bottom {
        height: 66rem;
    }
    .entry_area_btn {
        flex-direction: column;
        justify-content: space-between;
        height: 312rem;
        padding: 24rem 32rem;
        /* gap: 56rem 0; */
    }
    .entry_area_btn_ttl_wrap {
        margin-bottom: 30rem;
    }
    .entry_area_btn_ttl_en {
        font-size: 14rem;
        padding: 0 2rem;
    }
    .entry_area_btn_ttl_ja {
        font-size: 48rem;
        line-height: 1;
        margin-top: 13rem;
    }
    .entry_area_btn_icon_wrap {
        align-self: flex-end;
        gap: 0 9rem;
    }
    .entry_area_btn_icon_wrap + .entry_area_btn_icon_wrap {
        margin-top: 18rem;
    }
    [class].entry_area_btn .icon_link_arrow {
        width: 34rem;
        height: 26rem;
    }
    [class].entry_area_btn .hover_textline_txt {
        font-size: 16rem;
    }
}

/* floating_bnr */
@media (max-width: 768px) {
    .wrap {
        padding-bottom: 74rem;
    }
    [class].floating_bnr {
        position: fixed;
        bottom: 0;
        left: 0;
        width: calc(100% - 20rem);
        height: 55rem;
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--blue);
        z-index: calc(var(--z-index-header) - 1);
        gap: 0 9rem;
        margin-inline: 10rem;
    }
    .floating_bnr_list {
        display: none;
        position: fixed;
        z-index: 5;
        bottom: 60rem;
        left: 0;
        right: 0;
        font-size: 14rem;
        margin-inline: 10rem;
        padding: 5rem 14rem;
    }
    .floating_bnr_list > li + li {
        border-top: solid 2px rgba(255, 255, 255, 0.5);
    }
    .floating_bnr_list_link {
        display: block;
        padding: 11rem 0 11rem 4rem;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    .floating_bnr_list .icon_link_arrow{
        width: 27rem;
        height: 21rem;
    }
    .floating_bnr_btn {
        border: none;
        color: var(--blue);
        width: 100%;
        height: 100%;
    }
    .floating_bnr_txt {
        font-size: 16rem;
        position: relative;
    }
    .floating_bnr_btn_line_box {
        position: absolute;
        top: 0;
        right: 0;
        width: 55rem;
        height: 55rem;
    }
    .floating_bnr_btn_line {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
    }
    .floating_bnr_btn_line::before {
        content: '';
        border-top: solid 2px var(--blue);
        width: 12rem;
        margin: auto;
        display: block;
    }
    .floating_bnr_btn_line + .floating_bnr_btn_line::before {
        rotate: 90deg;
        transition: rotate 0.4s;
    }
    .floating_bnr_btn.is_opened .floating_bnr_btn_line + .floating_bnr_btn_line::before {
        rotate: 0deg;
    }
}

/* text_marker */
.text_marker {
    background: linear-gradient(transparent 0, var(--before-color) 0) no-repeat left center;
    background-size: 100% 80%;
    color: var(--after-color);
}
.text_marker_in {
    background: linear-gradient(transparent 0, var(--after-color) 0) no-repeat left center;
    background-size: 0% 80%;
}
.text_marker._blue {
    --before-color:var(--blue);
    --after-color:var(--white);
}
.text_marker._white {
    --before-color:var(--white);
    --after-color:var(--blue);
}
@media (min-width: 769px) {
    @media (hover:hover) {
        .text_marker {
            transition: color .3s ease;
        }
        .text_marker_in {
            transition: background-size .3s ease;
        }
        .hover_text_marker:hover .text_marker {
            color: var(--before-color);
        }
        .hover_text_marker:hover .text_marker_in {
            background-size: 100% 80%;
        }
    }
}

/* icon_link_arrow */
.icon_link_arrow {
    border: 1px solid var(--blue);
    border-radius: 100%;
    overflow: hidden;
    position: relative;
}
.icon_link_arrow_in,
.icon_link_arrow_out {
    position: absolute;
    top: 0;
    left: 2%;
    width: 100%;
    height: 100%;
}
.icon_link_arrow_in::before,
.icon_link_arrow_out::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
    width: 14.4%;
    height: 23.52%;
}
.icon_link_arrow_in::before {
    background-color: var(--blue);
}
.icon_link_arrow_out::before {
    background-color: var(--white);
}
@media (min-width: 769px) {
    .icon_link_arrow_in {
        transform: translateX(0%);
        transition: transform .3s .2s var(--ease-out-cubic);
    }
    .icon_link_arrow_out {
        transform: translateX(-100%);
        transition: transform .3s var(--ease-out-cubic);
    }
    .hover_link_icon .icon_link_arrow {
        transition: background .4s;
        background: transparent;
    }
    @media (hover:hover) {
        .hover_link_icon:hover .icon_link_arrow {
            background: var(--blue);
        }
        .hover_link_icon:hover .icon_link_arrow_in {
            transform: translateX(100%);
            transition: transform .3s var(--ease-out-cubic);
        }
        .hover_link_icon:hover .icon_link_arrow_out {
            transform: translateX(0%);
            transition: transform .3s .2s var(--ease-out-cubic);
        }
    }
}
@media (max-width: 768px) {
    .icon_link_arrow_out {
        opacity: 0;
    }
}