@charset "UTF-8";

/* ====================================
   Variables & Base
   ==================================== */
:root {
    --color-main: #333333;
    --color-accent: #008fcc;
    --color-bg-light: #f4f8fb;
    --color-white: #ffffff;
    --color-black: #000000;
    --font-jp: 'Noto Sans JP', sans-serif;
    --font-en: 'Outfit', sans-serif;
    --width-content: 1340px;
    --width-header: 1560px;
}

/* ====================================
   Header
   ==================================== */
.header {
    width: 100%;
    height: 110px;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    background-color: transparent; 
    transition: background-color 0.5s ease, height 0.3s ease;
    display: flex;
    align-items: center;
}

.header.is-scrolled {
    background: rgba(255,255,255,0.6); /* 視認性確保のため半透明黒 */
    backdrop-filter: blur(5px);
}
body.fixed .header.is-scrolled {
    background: none;
}

.header__container {
    width: 100%;
    max-width: var(--width-header);
    margin: 0 auto;
    padding: 0 3.6%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header__logo {
}
.header__logo a {
    display: block;
}
.header__logo a .logo-wrap {
    display: flex;
    align-items: center;
}
.header__logo a .logo-wrap .logo-mark {
}
.header__logo a .logo-wrap .logo-mark img {
    display: block;
    width: 42px;
    height: 42px;
}
.header__logo a .logo-wrap .logo-text {
    display: block;
    margin-left: 10px;
    color: #fff;
    font-size: 21px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.05em;
}
.is-scrolled .header__logo a .logo-wrap .logo-text {
    color: #000;
}
body.sub-page .header__logo a .logo-wrap .logo-text {
    color: #000;
}
body.fixed .header__logo a .logo-wrap .logo-text {
    color: #000;
}

.header__nav {
    display: block;
    margin-left: auto;
    margin-right: 40px;
    transition: all 0.3s ease;
}
.is-scrolled .header__nav {
    opacity: 0;
}
body.fixed .header__nav {
    opacity: 0;
}
.header__list {
    display: flex;
    gap: 30px;
    list-style: none;
}
.header__list a {
    position: relative; /* 擬似要素の基準点 */
    z-index: 1;         /* 文字を前面に出すためのスタッキングコンテキスト作成 */
    text-decoration: none;
    color: #fff;        /* 通常時の文字色（サイトに合わせて調整ください） */
    transition: color 0.3s ease;
    font-weight: 700;
}
body.sub-page .header__list a {
    color: #000000;
}

.header__list a::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    width: 28px;        /* 指定：サイズ28px */
    height: 28px;       /* 指定：サイズ28px */
    border-radius: 50%; /* 円形にする */
    background-color: #fff45c; /* 指定：#fff45c (黄色) */
    z-index: -1;
    opacity: 0;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.3s ease;
}

.header__list a:hover::before,
#About .header__list li:first-child a::before,
#Service .header__list li:nth-child(2) a::before,
#Guide .header__list li:nth-child(3) a::before,
#CONTACT .header__list li:nth-child(5) a::before
{
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

@media (max-width: 1200px) {
    .header {
        height: 110px;
    }
    .header__logo a .logo-wrap .logo-mark img {
        width: 32px;
        height: 32px;
    }
    .header__logo a .logo-wrap .logo-text {
        margin-left: 10px;
        font-size: 16px;
    }
    .header__nav {
        margin-right: 20px;
    }
    .header__list {
        gap: 15px;
        list-style: none;
    }
    .header__list a {
        font-size: 13px;
    }
    .header__list a:hover {
        color: var(--color-accent);
    }
}

@media (max-width: 991px) {
    .header__nav {
        display: none;
    }
    body.fixed .header__nav {
        opacity: 0;
    }
}

@media (max-width: 768px) {
    .header {
        height: 110px;
    }
    .header__container {
    }
    .header__logo a .logo-wrap .logo-mark img {
        width: 32px;
        height: 32px;
    }
    .header__logo a .logo-wrap .logo-text {
        margin-left: 10px;
        font-size: 16px;
    }
    .header__nav {
        margin-right: 20px;
    }
    .header__list {
        gap: 15px;
        list-style: none;
    }
    .header__list a {
        font-size: 13px;
    }
    .header__list a:hover {
        color: var(--color-accent);
    }
}

@media (max-width: 480px) {
    .header {
        height: 80px;
    }
    .header__container {
    }
    .header__logo a .logo-wrap .logo-mark img {
        width: 28px;
        height: 28px;
    }
    .header__logo a .logo-wrap .logo-text {
        margin-left: 8px;
        font-size: 13px;
    }
    .header__nav {
        margin-right: 20px;
    }
    .header__list {
        gap: 15px;
        list-style: none;
    }
    .header__list a {
        font-size: 13px;
    }
    .header__list a:hover {
        color: var(--color-accent);
    }
}


.btn-header {
    background-color: #eb6877; /* デザイン上の赤色ボタン */
    width: 156px;
    height: 50px;
    color: var(--color-white) !important;
    text-decoration: none;
    font-weight: bold;
    font-size: 17px;
    transition: opacity 0.3s;
    display: inline-block;
    border-radius: 3px;
    text-align: center;
    line-height: 48px;
}
.btn-header:hover {
    opacity: 0.8;
}

/* Burger Menu (簡易版) */
.hamburger-menu {
    width: 46px;
    height: 22px;
    position: relative;
    cursor: pointer;
    margin-left: 40px;
    display: block; /* 常時表示に変更 */
    z-index: 10000; /* 必要に応じて調整 */
    transition: all 0.5s;
    z-index: 1000;
}

body.fixed .site-header .hamburger-menu {
	right: 0;
	top: 0;
}

.site-header.fixed-header .hamburger-menu {
	position: absolute;
	right: 0;
	top: 0;
}

.menu-button {
    width: 46px;
    height: 22px;
    position: relative;
    display: block;
    cursor: pointer;
    transition: all 0.25s;
}

.menu-button .lines {
    color: #fff;
    background: #fff;
    width: 46px;
    height: 2px;
    display: inline-block;
    position: absolute;
    /* left: 20px; */
    transition: 0.2s cubic-bezier(.33333,0,.66667,.33333),opacity 0.1s 0.27s ease;
}
.is-scrolled .menu-button .lines {
    color: #000;
    background: #000;
}
body.sub-page .menu-button .lines {
    color: #000;
    background: #000;
}
.menu-button .lines:first-child {
	/* top: 26px; */
}

.menu-button .lines:nth-child(2) {
	top: 10px;
	transition: all 0.2s ease;
}

.menu-button .lines:nth-child(3) {
	top: 20px;
}

.menu-button.active .lines:first-child {
    background-color: #000;
    transform: translate3d(0,11px,0) rotate(-25deg);
    transition-delay: 0.2s;
    transition-timing-function: ease;
}

.menu-button.active .lines:nth-child(2) {
	transform: scale(0,0);
}

.menu-button.active .lines:nth-child(3) {
    background-color: #000;
    transform: translate3d(0,-9px,0) rotate(25deg);
    transition-delay: 0.2s;
    transition-timing-function: ease;
}

@media (max-width: 1200px) {
    .btn-header {
        width: 100px;
        height: 40px;
        font-size: 15px;
        line-height: 40px;
    }
    .hamburger-menu {
        width: 46px;
        height: 22px;
        margin-left: 30px;
    }
    .menu-button {
        width: 46px;
        height: 22px;
    }
    .menu-button .lines {
        width: 46px;
        height: 2px;
    }
    .menu-button .lines:nth-child(2) {
        top: 10px;
    }
    .menu-button .lines:nth-child(3) {
        top: 20px;
    }
    .menu-button.active .lines:first-child {
        background-color: #000;
        transform: translate3d(0,11px,0) rotate(-25deg);
        transition-delay: 0.2s;
        transition-timing-function: ease;
    }

    .menu-button.active .lines:nth-child(2) {
        transform: scale(0,0);
    }

    .menu-button.active .lines:nth-child(3) {
        background-color: #000;
        transform: translate3d(0,-9px,0) rotate(25deg);
        transition-delay: 0.2s;
        transition-timing-function: ease;
    }

}

@media (max-width: 991px) {
    .header__cta {
        margin: 0 0 0 auto;
    }
    .btn-header {
        width: 100px;
        height: 40px;
        font-size: 15px;
        line-height: 40px;
    }
    .hamburger-menu {
        width: 46px;
        height: 22px;
        margin-left: 30px;
    }
    .menu-button {
        width: 46px;
        height: 22px;
    }
    .menu-button .lines {
        width: 46px;
        height: 2px;
    }
    .menu-button .lines:nth-child(2) {
        top: 10px;
    }
    .menu-button .lines:nth-child(3) {
        top: 20px;
    }
    .menu-button.active .lines:first-child {
        background-color: #000;
        transform: translate3d(0,11px,0) rotate(-25deg);
        transition-delay: 0.2s;
        transition-timing-function: ease;
    }

    .menu-button.active .lines:nth-child(2) {
        transform: scale(0,0);
    }

    .menu-button.active .lines:nth-child(3) {
        background-color: #000;
        transform: translate3d(0,-9px,0) rotate(25deg);
        transition-delay: 0.2s;
        transition-timing-function: ease;
    }

}
@media (max-width: 768px) {
    .header__cta {
        display: none;
    }
}
@media (max-width: 480px) {
    .header__cta {
        margin: 0 0 0 auto;
    }
    .btn-header {
        width: 90px;
        height: 35px;
        font-size: 15px;
        line-height: 35px;
    }
    .hamburger-menu {
        width: 36px;
        height: 22px;
        margin-left: 30px;
    }
    .menu-button {
        width: 36px;
        height: 22px;
    }
    .menu-button .lines {
        width: 36px;
        height: 2px;
    }
    .menu-button .lines:nth-child(2) {
        top: 10px;
    }
    .menu-button .lines:nth-child(3) {
        top: 20px;
    }
    .menu-button.active .lines:first-child {
        background-color: #000;
        transform: translate3d(0,11px,0) rotate(-25deg);
        transition-delay: 0.2s;
        transition-timing-function: ease;
    }

    .menu-button.active .lines:nth-child(2) {
        transform: scale(0,0);
    }

    .menu-button.active .lines:nth-child(3) {
        background-color: #000;
        transform: translate3d(0,-9px,0) rotate(25deg);
        transition-delay: 0.2s;
        transition-timing-function: ease;
    }

}



/* ====================================
   Bottom CTA Section (修正版)
   ==================================== */
.bottom-cta {
    display: flex;
    width: 100%;
    height: 160px;
    background-color: #1f1f1f;
    border-bottom: 1px solid #fff;
}
.bottom-cta__item {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    color: #fff;
    border-right: 1px solid #fff;
    transition: background-color 0.3s ease;
}
.bottom-cta__item:hover {
    color: #fff;
    background-color: #333;
}
.bottom-cta__item:last-child {
    border-right: none;
}
.bottom-cta__main {
    position: relative;
    display: inline-block; 
    font-size: 60px;
    font-weight: 700;
    font-family: 'Outfit', sans-serif;
    line-height: 1;
    margin-bottom: 10px;
}
.bottom-cta__item .ja {
    display: block;
    text-align: center;
    font-size: 16px;
    font-weight: 400;
    opacity: 0.8;
    line-height: 1;
}
.bottom-cta__item .icon-arrow-circle {
    display: block;
    position: absolute;
    right: 100%; 
    top: 50%;
    transform: translateY(-50%);
    margin-right: 15px; 
    width: 50px;
    height: 50px;
    border: 1px solid #fff;
    border-radius: 50%;
    transition: border-color 0.3s ease;
}
.bottom-cta__item .icon-arrow-circle::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 18px;
    height: 1px;
    background-color: #fff;
    transition: transform 0.3s ease, background-color 0.3s ease;
}
.bottom-cta__item .icon-arrow-circle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(calc(-50% + 6px - 0.5px), -0.5px) rotate(45deg);
    transform-origin: right bottom;
    width: 7px;
    height: 1px;
    background-color: #fff;
    transition: transform 0.3s ease, background-color 0.3s ease;
}
.bottom-cta__item:hover {
    background-color: #000; 
    opacity: 1;
}
.bottom-cta__item:hover .icon-arrow-circle {
}
.bottom-cta__item:hover .icon-arrow-circle::before {
    transform: translate(calc(-50% + 3px), -50%);
}
.bottom-cta__item:hover .icon-arrow-circle::after {
    transform: translate(calc(-50% + 6px - 0.5px + 3px), -0.5px) rotate(45deg);
}

@media (max-width: 1200px) {
    .bottom-cta {
        display: flex;
        width: 100%;
        height: 130px;
        background-color: #1f1f1f;
        border-bottom: 1px solid #fff;
    }
    .bottom-cta__item {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-decoration: none;
        color: #fff;
        border-right: 1px solid #fff;
        transition: background-color 0.3s ease;
    }
    .bottom-cta__item:hover {
        color: #fff;
        background-color: #333;
    }
    .bottom-cta__item:last-child {
        border-right: none;
    }
    .bottom-cta__main {
        position: relative;
        display: inline-block;
        font-size: 40px;
        font-weight: 700;
        font-family: 'Outfit', sans-serif;
        line-height: 1;
        margin-bottom: 10px;
    }
    .bottom-cta__item .ja {
        display: block;
        text-align: center;
        font-size: 16px;
        font-weight: 400;
        opacity: 0.8;
        line-height: 1;
    }
    .bottom-cta__item .icon-arrow-circle {
        display: block;
        position: absolute;
        right: 100%;
        top: 50%;
        transform: translateY(-50%);
        margin-right: 15px;
        width: 40px;
        height: 40px;
        border: 1px solid #fff;
        border-radius: 50%;
        transition: border-color 0.3s ease;
    }
    .bottom-cta__item .icon-arrow-circle::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 18px;
        height: 1px;
        background-color: #fff;
        transition: transform 0.3s ease, background-color 0.3s ease;
    }
    .bottom-cta__item .icon-arrow-circle::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(calc(-50% + 6px - 0.5px), -0.5px) rotate(45deg);
        transform-origin: right bottom;
        width: 7px;
        height: 1px;
        background-color: #fff;
        transition: transform 0.3s ease, background-color 0.3s ease;
    }
    .bottom-cta__item:hover {
        background-color: #000; 
        opacity: 1;
    }
    .bottom-cta__item:hover .icon-arrow-circle {
    }
    .bottom-cta__item:hover .icon-arrow-circle::before {
        transform: translate(calc(-50% + 3px), -50%);
    }
    .bottom-cta__item:hover .icon-arrow-circle::after {
        transform: translate(calc(-50% + 6px - 0.5px + 3px), -0.5px) rotate(45deg);
    }

}
@media (max-width: 768px) {
    .bottom-cta {
        display: block;
        width: 100%;
        height: auto;
        /* background-color: #1f1f1f; */
        border-bottom: none;
    }
    .bottom-cta__item {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-decoration: none;
        color: #fff;
        border: none;
        border-bottom: 1px solid #fff;
        /* transition: background-color 0.3s ease; */
        height: 100px;
    }
    .bottom-cta__item:hover {
        color: #fff;
        background-color: #333;
    }
    .bottom-cta__item:last-child {
        border-right: none;
    }
    .bottom-cta__main {
        position: relative;
        display: flex;
        font-size: 35px;
        font-weight: 700;
        font-family: 'Outfit', sans-serif;
        line-height: 1;
        margin-bottom: 5px;
        width: 100%;
        align-items: center;
        justify-content: center;
    }
    .bottom-cta__item .ja {
        display: block;
        text-align: center;
        font-size: 14px;
        font-weight: 400;
        opacity: 0.8;
        line-height: 1;
    }
    .bottom-cta__item .icon-arrow-circle {
        display: block;
        position: absolute;
        right: initial;
        left: 30%;
        top: 50%;
        transform: translateY(-50%);
        margin-right: inherit;
        width: 35px;
        height: 35px;
        border: 1px solid #fff;
        border-radius: 50%;
        transition: border-color 0.3s ease;
    }
    .bottom-cta__item .icon-arrow-circle::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 18px;
        height: 1px;
        background-color: #fff;
        transition: transform 0.3s ease, background-color 0.3s ease;
    }
    .bottom-cta__item .icon-arrow-circle::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(calc(-50% + 6px - 0.5px), -0.5px) rotate(45deg);
        transform-origin: right bottom;
        width: 7px;
        height: 1px;
        background-color: #fff;
        transition: transform 0.3s ease, background-color 0.3s ease;
    }
    .bottom-cta__item:hover {
        background-color: #000; 
        opacity: 1;
    }
    .bottom-cta__item:hover .icon-arrow-circle {
    }
    .bottom-cta__item:hover .icon-arrow-circle::before {
        transform: translate(calc(-50% + 3px), -50%);
    }
    .bottom-cta__item:hover .icon-arrow-circle::after {
        transform: translate(calc(-50% + 6px - 0.5px + 3px), -0.5px) rotate(45deg);
    }

}
@media (max-width: 480px) {
    .bottom-cta {
        display: block;
        width: 100%;
        height: auto;
        /* background-color: #1f1f1f; */
        border-bottom: none;
    }
    .bottom-cta__item {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-decoration: none;
        color: #fff;
        border: none;
        border-bottom: 1px solid #fff;
        /* transition: background-color 0.3s ease; */
        height: 100px;
    }
    .bottom-cta__item:hover {
        color: #fff;
        background-color: #333;
    }
    .bottom-cta__item:last-child {
        border-right: none;
    }
    .bottom-cta__main {
        position: relative;
        display: flex;
        font-size: 35px;
        font-weight: 700;
        font-family: 'Outfit', sans-serif;
        line-height: 1;
        margin-bottom: 5px;
        width: 100%;
        align-items: center;
        justify-content: center;
    }
    .bottom-cta__item .ja {
        display: block;
        text-align: center;
        font-size: 14px;
        font-weight: 400;
        opacity: 0.8;
        line-height: 1;
    }
    .bottom-cta__item .icon-arrow-circle {
        display: block;
        position: absolute;
        right: initial;
        left: 10%;
        top: 50%;
        transform: translateY(-50%);
        margin-right: inherit;
        width: 35px;
        height: 35px;
        border: 1px solid #fff;
        border-radius: 50%;
        transition: border-color 0.3s ease;
    }
    .bottom-cta__item .icon-arrow-circle::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 18px;
        height: 1px;
        background-color: #fff;
        transition: transform 0.3s ease, background-color 0.3s ease;
    }
    .bottom-cta__item .icon-arrow-circle::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(calc(-50% + 6px - 0.5px), -0.5px) rotate(45deg);
        transform-origin: right bottom;
        width: 7px;
        height: 1px;
        background-color: #fff;
        transition: transform 0.3s ease, background-color 0.3s ease;
    }
    .bottom-cta__item:hover {
        background-color: #000; 
        opacity: 1;
    }
    .bottom-cta__item:hover .icon-arrow-circle {
    }
    .bottom-cta__item:hover .icon-arrow-circle::before {
        transform: translate(calc(-50% + 3px), -50%);
    }
    .bottom-cta__item:hover .icon-arrow-circle::after {
        transform: translate(calc(-50% + 6px - 0.5px + 3px), -0.5px) rotate(45deg);
    }

}

/* ====================================
   Footer
   ==================================== */
.footer {
    background-color: #1f1f1f;
    color: #fff;
    padding: 80px 0;
    font-size: 14px;
}
.footer__container {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    justify-content: space-between;
    /* max-width: 1520px; */
    margin: 0 auto;
    padding: 0 80px;
}
.footer__info {
    width: 30%;
}
.footer__info .logo-wrap {
    display: flex;
    align-items: center;
}
.footer__info .logo-wrap .logo-mark {
}
.footer__info .logo-wrap .logo-mark img {
    display: block;
    width: 32px;
    height: 32px;
}
.footer__info .logo-wrap .logo-text {
    display: block;
    margin-left: 10px;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
}
.footer__info .footer__address {
    display: flex;
    align-items: center;
    margin-top: 25px;
}
.footer__info .footer__address .icon {
    display: block;
}
.footer__info .footer__address .icon img {
    display: block;
    width: 13px;
    height: 18px;
}
.footer__info .footer__address .text {
    display: block;
    font-size: 16px;
    text-decoration: underline;
    color: #ffffff;
    margin-left: 5px;
    line-height: 1;
}
.footer__info .footer__tel {
    display: flex;
    align-items:flex-end;
    margin-top: 15px;
}
.footer__info .footer__tel .tel {
    display: block;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
}
.footer__info .footer__tel .number {
    display: block;
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
}
.footer__info .footer__sns {
    display: block;
    margin-top: 55px;
}
.footer__info .footer__sns li {
    margin-bottom: 15px;
}
.footer__info .footer__sns li a {
    display: flex;
    align-items: center;
    color: #ffffff;
    line-height: 1;
}
.footer__info .footer__sns li a .icon {
    display: block;
}
.footer__info .footer__sns li.sns_youtube a .icon img {
    width: 19px;
    height: 14px;
}
.footer__info .footer__sns li.sns_instagram a .icon img {
    width: 17px;
    height: 17px;
}
.footer__info .footer__sns li a .text {
    display: block;
    font-size: 15px;
    line-height: 1;
    margin-left: 8px;
}
.footer__info .f-copy {
    display: block;
    margin-top: 75px;
    font-size: 13px;
    line-height: 1;
}

.footer__links {
    width: 65%;
    display: flex;
    gap: 80px;
}

.footer__links a {
    display: block;
    color: #fff;
}
.footer__links a:hover {
    color: #999;
}

.footer__col {
    display: block;
    width: 25%;
    max-width: 170px;
}

.footer__head {
    color: #fff;
    font-weight: bold;
    margin-bottom: 17px;
    padding-bottom: 17px;
    border-bottom: 1px solid #fff;
}

.footer__head a {
    display: block;
    color: #ffffff;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.05em;
}

.footer__col ul {
    list-style: none;
    padding: 0;
}

.footer__col ul.fnav_inner {
}

.footer__col ul.fnav_inner li {
    margin-bottom: 20px;
}

.footer__col ul.fnav_inner li a {
    display: block;
    color: #ffffff;
    font-size: 15px;
    line-height: 1.3;
    letter-spacing: 0.05em;
}
.footer__col ul.fnav_inner li a:hover {
    color: #999;
}
.footer__col.col_end {
    display: block;
    max-width: 193px;
}

.footer__col.col_end .footer__head {
    padding-bottom: 10px;
    margin-bottom: 37px;
}

.footer__col.col_end .footer__head a {
    display: block;
    color: #ffffff;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 27px;
}
.footer__col.col_end .footer__head a:hover {
    color: #999;
}

.footer__col.col_end .fnav_outside {
}

.footer__col.col_end .fnav_outside li {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
}

.footer__col.col_end .fnav_outside li span {
    display: flex;
    color: #ffffff;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
}

.footer__col.col_end .fnav_outside li span.icon {
    display: block;
    margin-left: 10px;
}

.footer__col.col_end .fnav_outside li a {
    display: block;
    color: #ffffff;
    font-size: 14px;
    line-height: 1.3;
}
.footer__col.col_end .fnav_outside li a:hover {
    color: #999;
}
@media (max-width: 768px) {
    .footer {
        background-color: #1f1f1f;
        color: #fff;
        padding: 80px 0;
        font-size: 14px;
    }
    .footer__container {
        display: flex;
        width: 100%;
        flex-wrap: wrap;
        justify-content: space-between;
        /* max-width: 1520px; */
        margin: 0 auto;
        padding: 0 80px;
        flex-wrap: wrap;
    }
    .footer__info {
        width: 100%;
        order: 2;
    }
    .footer__info .logo-wrap {
        display: flex;
        align-items: center;
    }
    .footer__info .logo-wrap .logo-mark {
    }
    .footer__info .logo-wrap .logo-mark img {
        display: block;
        width: 32px;
        height: 32px;
    }
    .footer__info .logo-wrap .logo-text {
        display: block;
        margin-left: 10px;
        color: #fff;
        font-size: 16px;
        font-weight: 700;
        line-height: 1;
    }
    .footer__info .footer__address {
        display: flex;
        align-items: center;
        margin-top: 25px;
    }
    .footer__info .footer__address .icon {
        display: block;
    }
    .footer__info .footer__address .icon img {
        display: block;
        width: 13px;
        height: 18px;
    }
    .footer__info .footer__address .text {
        display: block;
        font-size: 16px;
        text-decoration: underline;
        color: #ffffff;
        margin-left: 5px;
        line-height: 1;
    }
    .footer__info .footer__tel {
        display: flex;
        align-items:flex-end;
        margin-top: 15px;
    }
    .footer__info .footer__tel .tel {
        display: block;
        font-size: 16px;
        font-weight: 700;
        line-height: 1;
    }
    .footer__info .footer__tel .number {
        display: block;
        font-size: 22px;
        font-weight: 700;
        line-height: 1;
    }
    .footer__info .footer__sns {
        display: block;
        margin-top: 55px;
    }
    .footer__info .footer__sns li {
        margin-bottom: 15px;
    }
    .footer__info .footer__sns li a {
        display: flex;
        align-items: center;
        color: #ffffff;
        line-height: 1;
    }
    .footer__info .footer__sns li a .icon {
        display: block;
    }
    .footer__info .footer__sns li.sns_youtube a .icon img {
        width: 19px;
        height: 14px;
    }
    .footer__info .footer__sns li.sns_instagram a .icon img {
        width: 17px;
        height: 17px;
    }
    .footer__info .footer__sns li a .text {
        display: block;
        font-size: 15px;
        line-height: 1;
        margin-left: 8px;
    }
    .footer__info .f-copy {
        display: block;
        margin-top: 75px;
        font-size: 13px;
        line-height: 1;
    }

    .footer__links {
        width: 100%;
        display: flex;
        gap: 40px;
        flex-wrap: wrap;
        margin-bottom: 50px;
    }

    .footer__links a {
        display: block;
        color: #fff;
    }
    .footer__links a:hover {
        color: #999;
    }

    .footer__col {
        display: block;
        width: 45%;
        max-width: none;
    }

    .footer__head {
        color: #fff;
        font-weight: bold;
        margin-bottom: 15px;
        padding-bottom: 15px;
        border-bottom: 1px solid #fff;
    }

    .footer__head a {
        display: block;
        color: #ffffff;
        font-size: 15px;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0.05em;
    }

    .footer__col ul {
        list-style: none;
        padding: 0;
    }

    .footer__col ul.fnav_inner {
    }

    .footer__col ul.fnav_inner li {
        margin-bottom: 15px;
    }

    .footer__col ul.fnav_inner li a {
        display: block;
        color: #ffffff;
        font-size: 13px;
        line-height: 1;
        letter-spacing: 0.05em;
    }
    .footer__col ul.fnav_inner li a:hover {
        color: #999;
    }
    .footer__col.col_end {
        display: block;
        max-width: 193px;
    }

    .footer__col.col_end .footer__head {
        padding-bottom: 5px;
        margin-bottom: 15px;
    }

    .footer__col.col_end .footer__head a {
        display: block;
        color: #ffffff;
        font-size: 15px;
        font-weight: 700;
        line-height: 1;
        margin-bottom: 15px;
    }
    .footer__col.col_end .footer__head a:hover {
        color: #999;
    }

    .footer__col.col_end .fnav_outside {
    }

    .footer__col.col_end .fnav_outside li {
        display: flex;
        align-items: center;
        margin-bottom: 15px;
    }

    .footer__col.col_end .fnav_outside li span {
        display: flex;
        color: #ffffff;
        font-size: 15px;
        font-weight: 700;
        line-height: 1;
    }

    .footer__col.col_end .fnav_outside li span.icon {
        display: block;
        margin-left: 10px;
    }

}
@media (max-width: 480px) {
    .footer {
        /* background-color: #1f1f1f; */
        /* color: #fff; */
        padding: 30px 0;
        font-size: 14px;
    }
    .footer__container {
        /* display: flex; */
        /* width: 100%; */
        /* flex-wrap: wrap; */
        /* justify-content: space-between; */
        /* max-width: 1520px; */
        /* margin: 0 auto; */
        padding: 0 30px;
        /* flex-wrap: wrap; */
    }
    .footer__info {
        width: 100%;
        order: 2;
    }
    .footer__info .logo-wrap {
        display: flex;
        align-items: center;
    }
    .footer__info .logo-wrap .logo-mark {
    }
    .footer__info .logo-wrap .logo-mark img {
        display: block;
        width: 32px;
        height: 32px;
    }
    .footer__info .logo-wrap .logo-text {
        display: block;
        margin-left: 10px;
        color: #fff;
        font-size: 16px;
        font-weight: 700;
        line-height: 1;
    }
    .footer__info .footer__address {
        display: flex;
        align-items: center;
        margin-top: 25px;
    }
    .footer__info .footer__address .icon {
        display: block;
    }
    .footer__info .footer__address .icon img {
        display: block;
        width: 13px;
        height: 18px;
    }
    .footer__info .footer__address .text {
        display: block;
        font-size: 16px;
        text-decoration: underline;
        color: #ffffff;
        margin-left: 5px;
        line-height: 1;
    }
    .footer__info .footer__tel {
        display: flex;
        align-items:flex-end;
        margin-top: 15px;
    }
    .footer__info .footer__tel .tel {
        display: block;
        font-size: 16px;
        font-weight: 700;
        line-height: 1;
    }
    .footer__info .footer__tel .number {
        display: block;
        font-size: 22px;
        font-weight: 700;
        line-height: 1;
    }
    .footer__info .footer__sns {
        display: block;
        margin-top: 55px;
    }
    .footer__info .footer__sns li {
        margin-bottom: 15px;
    }
    .footer__info .footer__sns li a {
        display: flex;
        align-items: center;
        color: #ffffff;
        line-height: 1;
    }
    .footer__info .footer__sns li a .icon {
        display: block;
    }
    .footer__info .footer__sns li.sns_youtube a .icon img {
        width: 19px;
        height: 14px;
    }
    .footer__info .footer__sns li.sns_instagram a .icon img {
        width: 17px;
        height: 17px;
    }
    .footer__info .footer__sns li a .text {
        display: block;
        font-size: 15px;
        line-height: 1;
        margin-left: 8px;
    }
    .footer__info .f-copy {
        display: block;
        margin-top: 75px;
        font-size: 13px;
        line-height: 1;
    }

    .footer__links {
        width: 100%;
        display: flex;
        gap: 40px;
        flex-wrap: wrap;
        margin-bottom: 50px;
    }

    .footer__links a {
        display: block;
        color: #fff;
    }
    .footer__links a:hover {
        color: #999;
    }

    .footer__col {
        display: block;
        width: 40%;
        max-width: none;
    }

    .footer__head {
        color: #fff;
        font-weight: bold;
        margin-bottom: 15px;
        padding-bottom: 15px;
        border-bottom: 1px solid #fff;
    }

    .footer__head a {
        display: block;
        color: #ffffff;
        font-size: 15px;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0.05em;
    }

    .footer__col ul {
        list-style: none;
        padding: 0;
    }

    .footer__col ul.fnav_inner {
    }

    .footer__col ul.fnav_inner li {
        margin-bottom: 15px;
    }

    .footer__col ul.fnav_inner li a {
        display: block;
        color: #ffffff;
        font-size: 13px;
        line-height: 1;
        letter-spacing: 0.05em;
    }
    .footer__col ul.fnav_inner li a:hover {
        color: #999;
    }
    .footer__col.col_end {
        display: block;
        max-width: 193px;
    }

    .footer__col.col_end .footer__head {
        padding-bottom: 5px;
        margin-bottom: 15px;
    }

    .footer__col.col_end .footer__head a {
        display: block;
        color: #ffffff;
        font-size: 15px;
        font-weight: 700;
        line-height: 1;
        margin-bottom: 15px;
    }
    .footer__col.col_end .footer__head a:hover {
        color: #999;
    }

    .footer__col.col_end .fnav_outside {
    }

    .footer__col.col_end .fnav_outside li {
        display: flex;
        align-items: center;
        margin-bottom: 15px;
    }

    .footer__col.col_end .fnav_outside li span {
        display: flex;
        color: #ffffff;
        font-size: 15px;
        font-weight: 700;
        line-height: 1;
    }

    .footer__col.col_end .fnav_outside li span.icon {
        display: block;
        margin-left: 10px;
    }

}



/* spnav */
.spnav.hide-nav {
	opacity: 0;
	visibility: hidden;
}
.spnav {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    right: 0; 
    left: 0;
    z-index: 900;
    pointer-events: none;
    perspective: 200;
    background: #fff;
    transition: .5s cubic-bezier(.77,0,.175,1);
    transform: translateY(150%);
    height: 100%;
}

.spnav.show-nav {
    pointer-events: auto;
    transform: translateY(0%);
    transform: scaleY(1);
	visibility: visible;
	opacity: 1;	
}
.inner-spnav {
    position: relative;
    z-index: 2;
    display: flex;
    width: 100%;
    margin: 0 auto;
    height: calc(100% - 200px);
    box-sizing: border-box;
	overflow: auto;
	margin-top: 200px;
	background: #fff;
}

@media (max-width: 768px) {
    .inner-spnav {
        height: calc(100% - 150px);
        margin-top: 150px;
    }
}
@media (max-width: 480px) {
    .inner-spnav {
        height: calc(100% - 100px);
        margin-top: 100px;
    }
}
.spnav__container {
    display: flex;
    width: 90%;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: 1080px;
    margin: 0 auto;
    padding-bottom: 80px;
    height: 100vh;
}
.spnav__info {
    width: 30%;
}



.spnav__links {
    width: 100%;
    display: flex;
    gap: 70px;
}

.spnav__links a {
    display: block;
    color: #fff;
}
.spnav__links a:hover {
    color: #999;
}

.spnav__col {
    display: block;
    width: 25%;
    max-width: 210px;
}

.spnav__head {
    color: #000;
    font-weight: bold;
    margin-bottom: 17px;
    padding-bottom: 17px;
    border-bottom: 1px solid #000;
}

.spnav__head a {
    display: block;
    color: #000;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.05em;
}

.spnav__col ul {
    list-style: none;
    padding: 0;
}

.spnav__col ul.spnav_inner {
}

.spnav__col ul.spnav_inner li {
    margin-bottom: 20px;
}

.spnav__col ul.spnav_inner li a {
    display: block;
    color: #000;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0.05em;
}
.spnav__col ul.spnav_inner li a:hover {
    color: #999;
}
.spnav__col.col_end {
    display: block;
    max-width: 210px;
}

.spnav__col.col_end .spnav__head {
    padding-bottom: 10px;
    margin-bottom: 37px;
}

.spnav__col.col_end .spnav__head a {
    display: block;
    color: #000;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 27px;
}
.spnav__col.col_end .spnav__head a:hover {
    color: #999;
}

.spnav__col.col_end .spnav_outside {
}

.spnav__col.col_end .spnav_outside li {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}

.spnav__col.col_end .spnav_outside li span {
    display: flex;
    color: #000;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
}

.spnav__col.col_end .spnav_outside li span.icon {
    display: block;
    margin-left: 8px;
}
.spnav__col.col_end .spnav_outside li span.icon img {
    display: block;
    width: 17px;
    height: 17px;
}

.spnav__col.col_end .spnav_outside li a {
    display: block;
    color: #000;
    font-size: 15px;
    line-height: 1;
}
.spnav__col.col_end .spnav_outside li a:hover {
    color: #999;
}

.spnav__col .footer__sns {
    display: block;
    margin-top: 30px;
}
.spnav__col .footer__sns li {
    margin-bottom: 15px;
}
.spnav__col .footer__sns li a {
    display: flex;
    align-items: center;
    color: #000;
    line-height: 1;
    font-weight: bold;
}
.spnav__col .footer__sns li a .icon {
    display: block;
}
.spnav__col .footer__sns li.sns_youtube a .icon img {
    width: 19px;
    height: 14px;
}
.spnav__col .footer__sns li.sns_instagram a .icon img {
    width: 17px;
    height: 17px;
}
.spnav__col .footer__sns li a .text {
    display: block;
    font-size: 15px;
    line-height: 1;
    margin-left: 8px;
}

@media (max-width: 768px) {
    .spnav__links {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 40px;
    }

    .spnav__links a {
        display: block;
        color: #fff;
    }
    .spnav__links a:hover {
        color: #999;
    }

    .spnav__col {
        /* display: block; */
        width: 45%;
        max-width: none;
    }

    .spnav__head {
        color: #000;
        font-weight: bold;
        margin-bottom: 17px;
        padding-bottom: 17px;
        border-bottom: 1px solid #000;
    }

    .spnav__head a {
        display: block;
        color: #000;
        font-size: 18px;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0.05em;
    }

    .spnav__col ul {
        list-style: none;
        padding: 0;
    }

    .spnav__col ul.spnav_inner {
    }

    .spnav__col ul.spnav_inner li {
        margin-bottom: 20px;
    }

    .spnav__col ul.spnav_inner li a {
        display: block;
        color: #000;
        font-size: 16px;
        line-height: 1;
        letter-spacing: 0.05em;
    }
    .spnav__col ul.spnav_inner li a:hover {
        color: #999;
    }
    .spnav__col.col_end {
        display: block;
        max-width: none;
    }

    .spnav__col.col_end .spnav__head {
        padding-bottom: 10px;
        margin-bottom: 37px;
    }

    .spnav__col.col_end .spnav__head a {
        display: block;
        color: #000;
        font-size: 18px;
        font-weight: 700;
        line-height: 1;
        margin-bottom: 27px;
    }
    .spnav__col.col_end .spnav__head a:hover {
        color: #999;
    }

    .spnav__col.col_end .spnav_outside {
    }

    .spnav__col.col_end .spnav_outside li {
        display: flex;
        align-items: center;
        margin-bottom: 15px;
    }

    .spnav__col.col_end .spnav_outside li span {
        display: flex;
        color: #000;
        font-size: 17px;
        font-weight: 700;
        line-height: 1;
    }

    .spnav__col.col_end .spnav_outside li span.icon {
        display: block;
        margin-left: 8px;
    }
    .spnav__col.col_end .spnav_outside li span.icon img {
        display: block;
        width: 17px;
        height: 17px;
    }

    .spnav__col.col_end .spnav_outside li a {
        display: block;
        color: #000;
        font-size: 15px;
        line-height: 1;
    }
    .spnav__col.col_end .spnav_outside li a:hover {
        color: #999;
    }

    .spnav__col .footer__sns {
        display: block;
        margin-top: 30px;
    }
    .spnav__col .footer__sns li {
        margin-bottom: 15px;
    }
    .spnav__col .footer__sns li a {
        display: flex;
        align-items: center;
        color: #000;
        line-height: 1;
        font-weight: bold;
    }
    .spnav__col .footer__sns li a .icon {
        display: block;
    }
    .spnav__col .footer__sns li.sns_youtube a .icon img {
        width: 19px;
        height: 14px;
    }
    .spnav__col .footer__sns li.sns_instagram a .icon img {
        width: 17px;
        height: 17px;
    }
    .spnav__col .footer__sns li a .text {
        display: block;
        font-size: 15px;
        line-height: 1;
        margin-left: 8px;
    }
}
@media (max-width: 480px) {
    .spnav__links {
        gap: 25px;
    }

    .spnav__links a {
        display: block;
        color: #fff;
    }
    .spnav__links a:hover {
        color: #999;
    }

    .spnav__col {
        /* display: block; */
        width: 45%;
        max-width: none;
    }

    .spnav__head {
        margin-bottom: 15px;
        padding-bottom: 15px;
    }

    .spnav__head a {
        color: #000;
        font-size: 16px;
    }

    .spnav__col ul {
        list-style: none;
        padding: 0;
    }

    .spnav__col ul.spnav_inner {
    }

    .spnav__col ul.spnav_inner li {
        margin-bottom: 15px;
    }

    .spnav__col ul.spnav_inner li a {
        font-size: 14px;
    }
    .spnav__col ul.spnav_inner li a:hover {
        color: #999;
    }
    .spnav__col.col_end {
        display: block;
        max-width: none;
    }

    .spnav__col.col_end .spnav__head {
        padding-bottom: 5px;
        margin-bottom: 15px;
    }

    .spnav__col.col_end .spnav__head a {
        display: block;
        color: #000;
        font-size: 16px;
        font-weight: 700;
        line-height: 1;
        margin-bottom: 15px;
    }
    .spnav__col.col_end .spnav__head a:hover {
        color: #999;
    }

    .spnav__col.col_end .spnav_outside {
    }

    .spnav__col.col_end .spnav_outside li {
        display: flex;
        align-items: center;
        margin-bottom: 15px;
    }

    .spnav__col.col_end .spnav_outside li span {
        display: flex;
        color: #000;
        font-size: 17px;
        font-weight: 700;
        line-height: 1;
    }

    .spnav__col.col_end .spnav_outside li span.icon {
        display: block;
        margin-left: 8px;
    }
    .spnav__col.col_end .spnav_outside li span.icon img {
        display: block;
        width: 17px;
        height: 17px;
    }

    .spnav__col.col_end .spnav_outside li a {
        display: block;
        color: #000;
        font-size: 15px;
        line-height: 1;
    }
    .spnav__col.col_end .spnav_outside li a:hover {
        color: #999;
    }

    .spnav__col .footer__sns {
        display: block;
        margin-top: 30px;
    }
    .spnav__col .footer__sns li {
        margin-bottom: 15px;
    }
    .spnav__col .footer__sns li a {
        display: flex;
        align-items: center;
        color: #000;
        line-height: 1;
        font-weight: bold;
    }
    .spnav__col .footer__sns li a .icon {
        display: block;
    }
    .spnav__col .footer__sns li.sns_youtube a .icon img {
        width: 19px;
        height: 14px;
    }
    .spnav__col .footer__sns li.sns_instagram a .icon img {
        width: 17px;
        height: 17px;
    }
    .spnav__col .footer__sns li a .text {
        display: block;
        font-size: 15px;
        line-height: 1;
        margin-left: 8px;
    }
}


.spnav_contactarea {
    width: 100%;
    height: 110px;
    display: flex;
    border-top: 1px solid #1b1b1b;
    border-bottom: 1px solid #1b1b1b;
}
.spnav_contactarea a {
    display: block;
    width : 33.33333%;
    width : -webkit-calc(100% / 3);
    width : calc(100% / 3);
    position: relative;
}
.spnav_contactarea a:before {
    content: "";
    display: block;
    width: 1px;
    height: 36px;
    background-color: #ccc;
    position: absolute;
    left: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}
.spnav_contactarea a:first-child:before {
    display: none;
}
.spnav_contactarea a .c-wrap {
    display: block;
    position: relative;
    padding: 27px 0 37px 37px;
}
.spnav_contactarea a .c-wrap .sc-text {
}
.spnav_contactarea a .c-wrap .sc-text .text-head {
    display: block;
    font-size: 16px;
    color: #448aca;
    line-height: 1;
}
.spnav_contactarea a .c-wrap .sc-text .text-sc {
    display: block;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    padding-top: 8px;
}
.spnav_contactarea a .c-wrap .icon-arrow-circle {
    position: absolute;
    right: 40px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}
.spnav_contactarea .icon-arrow-circle {
    margin-left: auto; /* 右寄せ */
    display: block;
    position: relative; /* 矢印線を描く基準 */
    width: 36px;        /* 丸のサイズ */
    height: 36px;
    border: 1px solid #000; /* 指定：ラインカラー黒 */
    border-radius: 50%;
    transition: transform 0.3s ease;
}
.spnav_contactarea .icon-arrow-circle::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 12px;       /* 線の長さ */
    height: 1px;       /* 線の太さ */
    background-color: #000; /* 指定：黒 */
    transition: transform 0.3s ease;
}
.spnav_contactarea .icon-arrow-circle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;        /* 跳ね上げの長さ */
    height: 1px;       /* 線の太さ */
    background-color: #000; /* 指定：黒 */
    transform-origin: right bottom; /* 右下を軸に */
    transform: translate(0, -1px) rotate(45deg); 
    transition: transform 0.3s ease;
}
.spnav_contactarea a:hover .icon-arrow-circle::before {
    transform: translate(calc(-50% + 5px), -50%); /* 右へ5px移動 */
}
.spnav_contactarea a:hover .icon-arrow-circle::after {
    transform: translate(calc(-0.5px + 5px), -1px) rotate(45deg); /* 右へ5px移動 */
}



@media (max-width: 991px) {
    .spnav_contactarea {
        width: 100%;
        height: 85px;
        display: flex;
        border-top: 1px solid #1b1b1b;
        border-bottom: 1px solid #1b1b1b;
    }
    .spnav_contactarea a {
        display: block;
        width : 33.33333%;
        width : -webkit-calc(100% / 3);
        width : calc(100% / 3);
        position: relative;
    }
    .spnav_contactarea a:before {
        content: "";
        display: block;
        width: 1px;
        height: 36px;
        background-color: #ccc;
        position: absolute;
        left: 0;
        top: 50%;
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
    }
    .spnav_contactarea a:first-child:before {
        display: none;
    }
    .spnav_contactarea a .c-wrap {
        display: block;
        position: relative;
        padding: 20px 0 27px 27px;
    }
    .spnav_contactarea a .c-wrap .sc-text {
    }
    .spnav_contactarea a .c-wrap .sc-text .text-head {
        /* display: block; */
        font-size: 13px;
        /* color: #448aca; */
        /* line-height: 1; */
    }
    .spnav_contactarea a .c-wrap .sc-text .text-sc {
        /* display: block; */
        font-size: 17px;
        /* font-weight: 700; */
        /* line-height: 1; */
        /* padding-top: 8px; */
    }
    .spnav_contactarea a .c-wrap .icon-arrow-circle {
        position: absolute;
        right: 25px;
        top: 50%;
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
    }
    .spnav_contactarea .icon-arrow-circle {
        margin-left: auto; /* 右寄せ */
        display: block;
        position: relative; /* 矢印線を描く基準 */
        width: 23px;        /* 丸のサイズ */
        height: 23px;
        border: 1px solid #000; /* 指定：ラインカラー黒 */
        border-radius: 50%;
        transition: transform 0.3s ease;
    }
    .spnav_contactarea .icon-arrow-circle::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 12px;       /* 線の長さ */
        height: 1px;       /* 線の太さ */
        background-color: #000; /* 指定：黒 */
        transition: transform 0.3s ease;
    }
    .spnav_contactarea .icon-arrow-circle::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        width: 6px;        /* 跳ね上げの長さ */
        height: 1px;       /* 線の太さ */
        background-color: #000; /* 指定：黒 */
        transform-origin: right bottom; /* 右下を軸に */
        transform: translate(0, -1px) rotate(45deg); 
        transition: transform 0.3s ease;
    }
    .spnav_contactarea a:hover .icon-arrow-circle::before {
        transform: translate(calc(-50% + 5px), -50%); /* 右へ5px移動 */
    }
    .spnav_contactarea a:hover .icon-arrow-circle::after {
        transform: translate(calc(-0.5px + 5px), -1px) rotate(45deg); /* 右へ5px移動 */
    }
}
@media (max-width: 480px) {
    .spnav_contactarea {
        width: 100%;
        height: auto;
        display: block;
        /* border-top: 1px solid #1b1b1b; */
        border-bottom: none;
        margin-top: 30px;
    }
    .spnav_contactarea a {
        display: block;
        width : 33.33333%;
        width : -webkit-calc(100% / 3);
        width : calc(100% / 3);
        width: 100%;
        position: relative;
        border-bottom: 1px solid #000;
    }
    .spnav_contactarea a:before {
        /* content: ""; */
        /* display: block; */
        /* width: 1px; */
        /* height: 36px; */
        /* background-color: #ccc; */
        /* position: absolute; */
        /* left: 0; */
        /* top: 50%; */
        -webkit-transform: translateY(-50%);
        /* transform: translateY(-50%); */
        display: none;
    }
    .spnav_contactarea a:first-child:before {
        display: none;
    }
    .spnav_contactarea a .c-wrap {
        display: block;
        position: relative;
        padding: 15px 0 15px 25px;
    }
    .spnav_contactarea a .c-wrap .sc-text {
    }
    .spnav_contactarea a .c-wrap .sc-text .text-head {
        /* display: block; */
        font-size: 13px;
        /* color: #448aca; */
        /* line-height: 1; */
    }
    .spnav_contactarea a .c-wrap .sc-text .text-sc {
        /* display: block; */
        font-size: 17px;
        /* font-weight: 700; */
        /* line-height: 1; */
        /* padding-top: 8px; */
    }
    .spnav_contactarea a .c-wrap .icon-arrow-circle {
        position: absolute;
        right: 25px;
        top: 50%;
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
    }
    .spnav_contactarea .icon-arrow-circle {
        margin-left: auto; /* 右寄せ */
        display: block;
        position: relative; /* 矢印線を描く基準 */
        width: 23px;        /* 丸のサイズ */
        height: 23px;
        border: 1px solid #000; /* 指定：ラインカラー黒 */
        border-radius: 50%;
        transition: transform 0.3s ease;
    }
    .spnav_contactarea .icon-arrow-circle::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 12px;       /* 線の長さ */
        height: 1px;       /* 線の太さ */
        background-color: #000; /* 指定：黒 */
        transition: transform 0.3s ease;
    }
    .spnav_contactarea .icon-arrow-circle::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        width: 6px;        /* 跳ね上げの長さ */
        height: 1px;       /* 線の太さ */
        background-color: #000; /* 指定：黒 */
        transform-origin: right bottom; /* 右下を軸に */
        transform: translate(0, -1px) rotate(45deg); 
        transition: transform 0.3s ease;
    }
    .spnav_contactarea a:hover .icon-arrow-circle::before {
        transform: translate(calc(-50% + 5px), -50%); /* 右へ5px移動 */
    }
    .spnav_contactarea a:hover .icon-arrow-circle::after {
        transform: translate(calc(-0.5px + 5px), -1px) rotate(45deg); /* 右へ5px移動 */
    }
}


.sp-footnav {
  width: 100%;
  aspect-ratio: 750 / 115;
  height: auto;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 9999;
  display: flex;
  align-items: stretch;
  box-sizing: border-box;
}
.sp-footnav > * {
  height: 100%;
}
.sp-footnav .inner-spf {
    display: flex;
}
.sp-footnav .inner-spf a {
    display: block;
    height: 100%;
}
.sp-footnav .inner-spf .to-quote {
    display: flex;
    width: 50%;
    align-items: center;
    justify-content: center;
    background-color: #eb6877;
}
.sp-footnav .inner-spf .to-quote .text {
    display: block;
    font-size: 30px;
    font-size: 3.9vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.01em;
    color: #fff;
}
.sp-footnav .inner-spf .to-store {
    display: flex;
    width: 50%;
    align-items: center;
    justify-content: center;
    background-color: #333;
}
.sp-footnav .inner-spf .to-store .icon {
    display: block;
    margin-right: 10px;
}
.sp-footnav .inner-spf .to-store .icon img {
    display: block;
    width: 40px;
    height: 36px;
}
.sp-footnav .inner-spf .to-store .text {
    display: block;
    font-size: 30px;
    font-size: 3.9vw;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.01em;
    color: #fff;
}
.sp-footnav .inner-spf a .arrow {
    display: block;
    width: 16px;
    height: 16px;
    border-top: 4px solid #fff;
    border-right: 4px solid #fff;
    transform: rotate(45deg);
    margin-left: 15px;
}

@media (max-width: 480px) {
    .sp-footnav .inner-spf .to-store .icon {
        margin-right: 8px;
    }
    .sp-footnav .inner-spf .to-store .icon img {
        width: 26px;
        height: 23px;
    }
    .sp-footnav .inner-spf a .arrow {
        width: 10px;
        height: 10px;
        border-top: 3px solid #fff;
        border-right: 3px solid #fff;
        margin-left: 10px;
    }
}