@charset "UTF-8";

/* ======================================== Common ======================================== */
/* ============================== html tags ============================== */
html {
    box-sizing: border-box;
    position: relative;
    font-family: "hiragino-kaku-gothic-pron", sans-serif;
    font-style: normal;
    font-size: 62.5%;
    font-weight: 500;
}
*, *::before, *::after {
    box-sizing: inherit;
}
* {
    margin: 0;
    padding: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-feature-settings: "palt";
}

.-en{
    font-family: "polymath", sans-serif;
    font-style: normal;
}

body {
    position: relative;
    -webkit-text-size-adjust: 100%;
    color: #2B2B2B;
    background: #FFF;
}
body.-fixed {
    overflow: hidden;
    position: fixed;
}
h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.05em;
}
img {
    width: 100%;
    height: auto;
    object-fit: contain;
}
a {
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}
button {
    cursor: pointer;
    display: block;
    outline: none;
    display: block;
    padding: 0;
    border: none;
    border-radius: 0;
    margin: 0;
    font-family: inherit;
    font-weight: inherit;
    font-size: inherit;
    color: inherit;
    background-color: transparent;
}
ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
table {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse;
}
tbody {
    display: block;
    width: 100%;
}
::-webkit-input-placeholder,
:-moz-placeholder {
    font-family: "hiragino-kaku-gothic-pron", sans-serif;
    color: #CCC9C4;
}
th,
td {
    text-align: left;
}
input,
textarea {
    box-sizing: border-box;
    display: block;
    width: 100%;
    padding: 0;
    border: unset;
    border-width: 0;
    background-color: transparent;
    border: none;
    -webkit-appearance: none;
}
input[type="button"],input[type="text"],input[type="tel"],input[type="email"],input[type="submit"],input[type="image"],textarea{
    -webkit-appearance: none;
    border-radius: 0;
}
input[type="text" i] {
    padding: 0;
}
input:focus-visible,
textarea:focus-visible {
    outline: unset;
}
input:-webkit-autofill,
textarea:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px #f4f0eb inset;
    -webkit-text-fill-color: #222;
}
select {
    border-width: 0px;
    border: none;
    color: #2B2B2B;
}
/* ============================== End html tags ============================== */
/* ============================== Utility Classes ============================== */
/* color */
.color-white {
    color: #fff;
}
:root {
    --blue: #004097;
}
.color-blue {
    color: var(--blue);
}
/* background-color */
.bgc-white {
    color: #fff;
}
/* display inline-block */
.display_ib {
    display: inline-block;
}
/* Display Utilities: Show/Hide on Devices */
/* 
- .pc / .tablet-sp:
- Default: .pc is visible, .tablet-sp is hidden.
- Below 1000px: .pc is hidden, .tablet-sp is visible.
*/
.pc {
    display: block !important;
}
.tablet-sp {
    display: none !important;
}
@media screen and (max-width: 1000px) {
    .pc {
        display: none !important;
    }
    .tablet-sp {
        display: block !important;
    }
}
/* 
- .pc-tablet / .sp:
- Default: .pc-tablet is visible, .sp is hidden.
- Below 750px: .pc-tablet is hidden, .sp is visible.
*/
.pc-tablet {
    display: block !important;
}
.sp {
    display: none !important;
}
@media screen and (max-width: 750px) {
    .pc-tablet {
        display: none !important;
    }
    .sp {
        display: block !important;
    }
}
.hover-opacity {
    opacity: 1;
    transition: opacity .3s;
}
@media (hover: hover) {
    .hover-opacity:hover {
        opacity: .7;
    }
}
/* ============================== End Utility Classes ============================== */
/* ============================== Helper Classes ============================== */
/* English Font Settings */
.en {
	font-family: "Montserrat", serif;
	font-optical-sizing: auto;
    font-weight: 700;
    letter-spacing: 0.1em;
}
/* Container Helper: Layout Width */
.wrapper {
	width: 86%;
    max-width: 1300px;
    margin: 0 auto;
}
/* inview */
.inview {
    transform: translate(0, 5px);
    opacity: 0;
    transition: filter 1.2s, opacity 1.2s, transform 1.2s;
}
.inview.show {
    transform: translate(0, 0);
    opacity: 1.0;
}
/* ============================== End Helper Classes ============================== */
/* ============================== Component Classes ============================== */

/* ==================== Header ==================== */
/* ==================== End Header ==================== */

/* ==================== Hamburger Button ==================== */
.hamburger-button {
    position: fixed;
    display: flex;
    align-items: center;
    top: 2rem;
    right: 1.8rem;
    z-index: 1000;
    width: 6rem;
    height: 6rem;
    border-radius: 50%;
    background-color: #870027;
    transition: background-color .3s;
}
.hamburger-button.-open {
    background-color: #fff;
}
.hamburger-button__line-base {
    position: absolute;
    width: 2.4rem;
    height: 1.4rem;
    left: 0;
    right: 0;
    margin: 0 auto;
}
.hamburger-button__line {
    position: absolute;
    left: 0;
    right: 0;
    width: 100%;
    height: 1px;
    background-color: #CCC9C4;
    transition: background-color .3s, opacity 0.3s;
}
.hamburger-button.-open .hamburger-button__line {
    background-color: #870027;
}
.hamburger-button__line.--line1 {
    top: 0;
}
.hamburger-button__line.--line2 {
    top: 6px;
}
.hamburger-button__line.--line3 {
    bottom: 0;
}
.hamburger-button.-open .hamburger-button__line.--line2 {
    opacity: 0;
}
@keyframes menu-open-top {
    0% {
        top: 0;
    }
    60% {
        top: 50%;
        transform: translateY(-50%);
    }
    100% {
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
    }
}
@keyframes menu-open-bottom {
    0% {
        bottom: 0;
    }
    60% {
        bottom: 50%;
        transform: translateY(50%);
    }
    100% {
        bottom: 50%;
        transform: translateY(50%) rotate(-45deg);
    }
}
@keyframes menu-close-top {
    0% {
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
    }
    40% {
        top: 50%;
        transform: translateY(-50%);
    }
    100% {
        top: 0;
    }
}
@keyframes menu-close-bottom {
    0% {
        bottom: 50%;
        transform: translateY(50%) rotate(-45deg);
    }
    40% {
        bottom: 50%;
        transform: translateY(50%);
    }
    100% {
        bottom: 0;
    }
}
/* ----- Hamburger Button responsive (1000) ----- */
@media screen and (max-width: 1000px) {
    .hamburger-button{
        top: 1rem;
        right: 1rem;
    }
}
/* ==================== End Hamburger Button ==================== */

/* ==================== Hamburger Menu ==================== */
.hamburger-menu {
    overflow-x: auto;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 100;
    width: 100%;
    height: 100dvh;
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
    background-color: #870027;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
}
.hamburger-menu.-open {
    opacity: 1;
    visibility: visible;
}
.hamburger-menu__inner{
    display: flex;
    align-items: center;
    gap: 0 5%;
}
.hamburger-menu__nav {
    padding: 12rem 4rem 8rem;
    height: 100svh;
    display: flex;
    align-items: center;
}
.hamburger-menu__list{
    display: flex;
    flex-direction: column;
    gap: 4rem;
}
.hamburger-menu__link {
    position: relative;
    display: inline-block;
}
.hamburger-menu__large-text {
    font-family: "polymath", sans-serif;
    font-style: normal;
    position: relative;
    display: inline;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.05em;
    color: #fff;
    padding: 0 4px 0;
    transition: .3s;
}
.hamburger-menu__large-text img{
    width: auto;
    vertical-align: bottom;
    height: 5.6rem;
}
@media (hover: hover) {
    .hamburger-menu__large-text:hover {
        opacity: .7;
    }
}
.hamburger-menu__text {
    padding: 1rem 4px 0;
    font-size: 1.3rem;
    line-height: 1.2;
    letter-spacing: 0.05em;
    color: var(--blue);
}

/* menuアニメーション */
.menu-shapes{
    position: relative;
    width: 50%;
    height: 60rem;
    display: block;
}
.menu-shapes__item{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: 1s;
}
.menu-shapes__item.is-active{
    opacity: 1;
}
.menu-shapes__item .kv-anime01{
    width: 50vw;
}
.menu-shapes__item .kv-anime02{
    width: 50vw;
}
.menu-shapes__item .kv-anime03{
    width: 50vw;
}
.menu-shapes__item .kv-anime04{
    width: 50vw;
}

.menu-shapes__item .cls-4{
    fill: none;
    stroke: #870027!important;
    stroke-miterlimit: 10;
    stroke-width: 2px;
}

/* menu アニメ */
.menu-shapes__item .kv-anime01 .circle,
.menu-shapes__item .kv-anime02 .circle{
    border-color: #DAD6CF;
}
.menu-shapes__item .cls-1,
.menu-shapes__item .cls-2,
.menu-shapes__item .cls-3{
    stroke: #DAD6CF!important;
}
.menu-shapes__item.is-active .kv-anime01 .circle{
    animation: moveToCenter 3s cubic-bezier(0.77,0,0.175,1) 0.5s forwards;
}
.menu-shapes__item.is-active .kv-anime02 .circle1{animation: kv02-ly01 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.menu-shapes__item.is-active .kv-anime02 .circle2{animation: kv02-ly02 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.menu-shapes__item.is-active .kv-anime02 .circle3{animation: kv02-ly03 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.menu-shapes__item.is-active .kv-anime02 .circle4{animation: kv02-ly04 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.menu-shapes__item.is-active .kv-anime02 .circle5{animation: kv02-ly05 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.menu-shapes__item.is-active .kv-anime02 .circle6{animation: kv02-ly06 3s cubic-bezier(0.77,0,0.175,1) forwards;}

.menu-shapes__item.is-active .svg-elem-1 {
-webkit-animation: animate-svg-stroke-1 2.5s cubic-bezier(0.77,0,0.175,1) 0s both,
                        animate-svg-fill-1 0.7s cubic-bezier(0.77,0,0.175,1) 0.8s both;
        animation: animate-svg-stroke-1 2.5s cubic-bezier(0.77,0,0.175,1) 0s both,
                animate-svg-fill-1 0.7s cubic-bezier(0.77,0,0.175,1) 0.8s both;
}
.menu-shapes__item.is-active .svg-elem-2 {
-webkit-animation: animate-svg-stroke-2 2.5s cubic-bezier(0.77,0,0.175,1) 2s both,
                    animate-svg-fill-2 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
animation: animate-svg-stroke-2 2.5s cubic-bezier(0.77,0,0.175,1) 2s both,
            animate-svg-fill-2 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
}
.menu-shapes__item.is-active .svg-elem-3 {
-webkit-animation: animate-svg-stroke-3 2.5s cubic-bezier(0.77,0,0.175,1) 0s both,
                        animate-svg-fill-3 0.7s cubic-bezier(0.77,0,0.175,1) 1s both;
        animation: animate-svg-stroke-3 2.5s cubic-bezier(0.77,0,0.175,1) 0s both,
                animate-svg-fill-3 0.7s cubic-bezier(0.77,0,0.175,1) 1s both;
}
.menu-shapes__item.is-active .svg-elem-4 {
-webkit-animation: animate-svg-stroke-4 2.5s cubic-bezier(0.77,0,0.175,1) 0.36s both,
                        animate-svg-fill-4 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
        animation: animate-svg-stroke-4 2.5s cubic-bezier(0.77,0,0.175,1) 0.36s both,
                animate-svg-fill-4 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
}
.menu-shapes__item.is-active .svg-elem-5 {
-webkit-animation: animate-svg-stroke-5 2.5s cubic-bezier(0.77,0,0.175,1) 0.48s both,
                        animate-svg-fill-5 0.7s cubic-bezier(0.77,0,0.175,1) 1.2000000000000002s both;
        animation: animate-svg-stroke-5 2.5s cubic-bezier(0.77,0,0.175,1) 0.48s both,
                animate-svg-fill-5 0.7s cubic-bezier(0.77,0,0.175,1) 1.2000000000000002s both;
}
.menu-shapes__item.is-active .svg-elem-6 {
-webkit-animation: animate-svg-stroke-6 2.5s cubic-bezier(0.77,0,0.175,1) 0.6s both,
                        animate-svg-fill-6 0.7s cubic-bezier(0.77,0,0.175,1) 1.2s both;
        animation: animate-svg-stroke-6 2.5s cubic-bezier(0.77,0,0.175,1) 0.6s both,
                animate-svg-fill-6 0.7s cubic-bezier(0.77,0,0.175,1) 1.2s both;
}
.menu-shapes__item.is-active .svg-elem-7 {
-webkit-animation: animate-svg-stroke-7 2.5s cubic-bezier(0.77,0,0.175,1) 0.72s both,
                        animate-svg-fill-7 0.7s cubic-bezier(0.77,0,0.175,1) 1.4000000000000001s both;
        animation: animate-svg-stroke-7 2.5s cubic-bezier(0.77,0,0.175,1) 0.72s both,
                animate-svg-fill-7 0.7s cubic-bezier(0.77,0,0.175,1) 1.4000000000000001s both;
}

.menu-shapes__item.is-active .svg-anime04 {
    -webkit-animation: animate04 3s cubic-bezier(0.77,0,0.175,1) 0s forwards; /* 'forwards'を追加してアニメーション後の状態を保持 */
    animation: animate04 3s cubic-bezier(0.77,0,0.175,1) 0s forwards; /* 'forwards'を追加してアニメーション後の状態を保持 */
}

#load { 
    position: fixed; width: 100%; 
    height: 100%; background: #D1CFD0;
    right: 0; 
    top: 0; 
    display: flex; 
    justify-content: center; 
    align-items: center; 
    transition: width 1.0s cubic-bezier(0.76, 0, 0.24, 1); 
    transition-delay: 2.5s; 
    z-index: 99;
}
#load.on { 
    width: 100%;
    animation: fade-opacity 2s 2s forwards;
}
#load p.loadMark { 
    width: 9rem;
    transition: all 1.5s cubic-bezier(0.76, 0, 0.24, 1); 
    transition-delay: 1.0s; 
}
#load p.loadMark.on { transform: scale(0.2); opacity: 0; }
#load p.loadMark img { animation: loadIcon 5s infinite linear; }

@keyframes loadIcon {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(-360deg); }
}
@keyframes fade-opacity {
    0% { opacity: 1; }
    100% { 
        opacity: 0; 
        z-index: -1;
    }
}

/* -------------------- Hamburger Menu responsive (1000) -------------------- */
@media screen and (max-width: 1000px) {
    .hamburger-menu__nav {
        align-items: flex-start;
        padding: 14rem 0% 0;
        height: auto;
    }
    .hamburger-menu__list {
        gap: 4rem;
    }
    .hamburger-menu__link {}
    .hamburger-menu__large-text img{
        height: 3rem;
    }
    .hamburger-menu__text {
        padding-top: 0.5rem;
        font-size: 1rem;
    }
    .hamburger-menu__inner{
        align-items: baseline;
        flex-direction: column;
    }
    .menu-shapes{
        height: 30rem;
        left: 4rem;
        display: none;
    }
}
@media screen and (max-width: 768px){
    .menu-shapes{
        height: 20rem;
        width: 68vw;
    }
    .hamburger-menu__nav {
        padding: 11rem 0% 0;
    }
}
/* ==================== End Hamburger Menu ==================== */

/* ==================== Footer ==================== */

/* -------------------- Footer responsive (1000) -------------------- */

/* ==================== Other Common Modules ==================== */
/* ===== common-logo-link ===== */
.common-logo-link {
    position: absolute;
    top: 5rem;
    left: 5rem;
    display: inline-block;
    width: 12rem;
    opacity: 1;
    transition: opacity .3s;
}
@media (hover: hover) {
    .common-logo-link:hover {
        opacity: .7;
    }
}
/* ----- common-logo-link responsive (1000) ----- */
@media screen and (max-width: 1000px) {
    .common-logo-link {
        top: 3rem;
        left: 2rem;
        width: 8rem;
    }
}
/* ===== End common-logo-link ===== */

/* ===== End common-topics-archive ===== */
/* ===== pagination ===== */
.pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-top: 8.5rem;
}
.page-numbers {
    font-family: "polymath", sans-serif;
    font-style: normal;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 5rem;
    height: 5rem;
    color: #2B2B2B;
    background: #fff;
    opacity: 1;
    font-size: 1.7rem;
    transition: opacity .3s, background-color .3s;
}
.page-numbers.current {
    color: #fff;
    background-color: #870027;
    opacity: 1;
}
a.page-numbers:hover {
    opacity: 0.7;
}
a.page-numbers span::before {
    content: '';
    position: absolute;
    bottom: .8rem;
    left: 50%;
    transform: translate(-50%, 0);
    display: block;
    width: 12px;
    padding-top: 2px;
    color: #2B2B2B;
    background-color: #fff;
}
/* ----- pagination responsive (1000) ----- */
@media screen and (max-width: 1000px) {
    .pagination {
        gap: 1rem;
        margin-top: 5rem;
    }
}
/* ===== End pagination ===== */
/* ==================== End Other Common Modules ==================== */
/* ============================== End Component Classes ============================== */
/* ======================================== End Common ======================================== */
/* ======================================== Pages ======================================== */
/* ==================== Home (Index) ==================== */
/* ========== loading ========== */
.loading {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
    display: flex;
    width: 100%;
    height: 62.5vw;
    height: 100dvh;
    background-color: #fff;
    transition: opacity 1.5s, visibility 1.5s;
}
/* ローディング開始時のクラス */
.loading.-start {
    opacity: 1;
    visibility: visible;
}
.body.loading-end .loading {
    opacity: 0;
    visibility: hidden;
}
.loading__left {
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 0;
    height: 100%;
    background-color: var(--blue);
}
.loading.-open .loading__left {
    animation: open-left 3s ease-out forwards;
}
@keyframes open-left {
    0% {
        left: 50%;
        width: 0;
    }
    30% {
        left: 0;
        width: 50%;
    }
    70% {
        left: 0;
        width: 50%;
    }
    100% {
        left: 0;
        width: 0;
    }
}
.loading__right {
    overflow: hidden;
    position: absolute;
    top: 0;
    right: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 0;
    height: 100%;
    background-color: var(--blue);
}
.loading.-open .loading__right {
    animation: open-right 3s ease-out forwards;
}
@keyframes open-right {
    0% {
        right: 50%;
        width: 0;
    }
    30% {
        right: 0;
        width: 50%;
    }
    70% {
        right: 0;
        width: 50%;
    }
    100% {
        right: 0;
        width: 0;
    }
}
.loading__text {
    font-size: 4rem;
    font-weight: 700;
    letter-spacing: 0.3em;
    color: #fff;
}
/* ========== End loading ========== */
/* ========== home-kv ========== */
.home-kv {
    position: relative;
    overflow: hidden;
}
/* ===== home-kv-slick-slide ===== */
.home-kv-slick-slide {
    position: relative;
    z-index: 1;
}
/* home-kv-slick-slide-item */
.home-kv-slick-slide-item {
    position: relative;
}
.home-kv-slick-slide-item:hover::after {
    opacity: 1;
}
.home-kv-slick-slide-item__img > .img {}
.pc-tablet--home-kv {
    display: block !important;
}
.sp--home-kv {
    display: none !important;
}
@media screen and (max-width: 600px) {
    .pc-tablet--home-kv {
        display: none !important;
    }
    .sp--home-kv {
        display: block !important;
    }
}
.home-kv-slick-slide__nav {
    position: absolute;
    bottom: 1.5rem;
    left: 2%;
    z-index: 2;
}
/* slick-dots */
.home-kv-slick-slide__nav .slick-dots {
    display: flex;
    gap: 1.2rem;
}
.home-kv-slick-slide__nav .slick-dots li {
    cursor: pointer;
    width: 2rem;
    height: 2rem;
    color: transparent;
    background-color: #fff;
    opacity: .3;
    transition: opacity .3s;
}
@media (hover: hover) {
    .home-kv-slick-slide__nav .slick-dots li:hover {
        opacity: .6;
    }
}
.home-kv-slick-slide__nav .slick-dots li.slick-active {
    opacity: 1;
}
/* ===== End slick ===== */
/* ========== home-topics ========== */
.home-topics {}
.home-topics__sec {
    padding: 10rem 0 11.5rem;
	background-color: #9ad0f1;
}
.home-topics__title-and-list-area {
    display: flex;
    flex-wrap: wrap;
}
.home-topics__title-area {
    width: 28rem;
}
.home-topics__title {
    font-size: 4.5rem;
    color: var(--blue);
}
.home-topics__list-area {
    width: calc(100% - 28rem);
}
.home-topics__button-wrap {
    display: flex;
    justify-content: end;
    margin-top: 3.8rem;
}
.home-topics__button {
    position: relative;
	display: inline-block;
	padding: 0 0 1rem;
	font-size: 2rem;
    color: #004097;
}
.home-topics__button::after {
	content: "";
	position: absolute;
	bottom: 6px;
	display: block;
	width: 100%;
	padding-top: 2px;
	background: #004097;
}
.home-topics__list-area {
    display: flex;
    justify-content: end;
    width: calc(100% - 28rem);
    padding-top: 1.4rem;
}
/* ----- home-topics responsive (1000) ----- */
@media screen and (max-width: 1000px) {
    .home-topics {}
    .home-topics__sec {
        padding: 5rem 0 3.8rem;
    }
    .home-topics__title-and-list-area {
        width: 100%;
    }
    .home-topics__title-area {
        width: 100%;
    }
    .home-topics__title {
        font-size: 2.6rem;
    }
    .home-topics__list-area {
        width: 100%;
    }
    .home-topics__button-wrap {
        margin-top: 2rem;
    }
}
/* ========== End home-topics ========== */

/* slick-dots */
.common-card-slick-slide__nav .slick-dots {
    display: flex;
    gap: 1.2rem;
}
.common-card-slick-slide__nav .slick-dots li {
    cursor: pointer;
    width: 2rem;
    height: 2rem;
    background-color: #004097;
    opacity: .3;
    transition: opacity .3s;
}
@media (hover: hover) {
    .common-card-slick-slide__nav .slick-dots li:hover {
        opacity: .6;
    }
}
.common-card-slick-slide__nav .slick-dots li.slick-active {
    opacity: 1;
}
/* ===== End slick ===== */
/* ---------- home-team responsive (1000) ---------- */
@media screen and (max-width: 1000px) {
    .home-team {}
    .home-team__sec {
        padding: 0 0 7rem;
    }
    .home-team__title-and-texts-area {
        padding-top: 12.5rem;
    }
    .home-team__title {
        top: -5.2rem;
        right: -2rem;
        width: 25.5rem;
    }
    .home-team__catchcopy {
        font-size: 2rem;
        line-height: 2;
    }
    .home-team__text {
        padding-top: 1rem;
    }
    .home-team__slider-area {
        padding-top: 4rem;
    }
    /* ===== common-card-slick-slide ===== */
    .common-card-slick-slide {}
    /* common-card-slick-slide-item */
    .common-card-slick-slide-item {
        margin: 0 2rem;
    }
    .common-card-slick-slide-item > *:last-child {
        padding-bottom: 2rem;
    }
    .common-card-slick-slide-item::after {
        right: -2rem;
    }
    .common-card-slick-slide-item__large-text {
        /* padding-top: 2.2rem; */
        font-size: 1.9rem;
    }
    .common-card-slick-slide-item__small-text {
        /* padding-top: 1.2rem; */
    }
    .common-card-slick-slide-item__title {
        /* padding: 0.5rem 0 0; */
        font-size: 1.9rem;
    }
    .common-card-slick-slide__nav {
        padding-top: 2.5rem;
    }
    /* ===== End slick ===== */
}
/* ========== End home-team ========== */
/* ========== home-building ========== */
.home-building {}
.home-building__sec {}
.home-building__title {
    font-size: 5.5rem;
    color: var(--blue);
}
.home-building__body {
    display: flex;
    flex-wrap: wrap;
    align-items: start;
    gap: 4.5rem 10%;
    padding-top: 6.5rem;
}
.home-building__table-area {
    width: 36%;
    padding-bottom: 12rem;
}
/* home-building-table */
.home-building-table {
    width: 100%;
}
.home-building-table__tr {
    display: block;
    width: 100%;
    padding: 1.5rem 0 1.8rem;
    border-bottom: 2px solid #444444;
}
.home-building-table__tr:first-child {
    border-top: 2px solid #444444;
}
.home-building-table__th {
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.05em;
}
.home-building-table__td {
    padding-top: 0.8rem;
    font-size: 1.4rem;
    line-height: 1.4;
    letter-spacing: 0.05em;
}
/* End home-building-table */
.home-building__maps-area {
    display: flex;
    flex-direction: column;
    gap: 4rem;
    width: calc(100% - 36% - 10%);
}
/* ---------- home-building responsive (1000) ---------- */
@media screen and (max-width: 1000px) {
    .home-building {}
    .home-building__sec {
        padding-bottom: 12rem;
    }
    .home-building__title {
        font-size: 3.1rem;
    }
    .home-building__body {
        padding-top: 2.5rem;
    }
    .home-building__table-area {
        width: 100%;
        padding-bottom: 0;
    }
    /* home-building-table */
    .home-building-table {
        width: 100%;
    }
    .home-building-table__tr {
        padding: 2rem 0 1.8rem;
    }
    .home-building-table__td {
        padding-top: 1.1rem;
    }
    /* End home-building-table */
    .home-building__maps-area {
        gap: 5rem;
        width: 100%;
    }
}
/* ========== End home-building ========== */
/* ==================== End Home (Index) ==================== */
/* ==================== Topics ==================== */
.topics {
    background-color: var(--blue);
}
.topics__title-and-list-area {
    position: relative;
    padding: 44rem 0 18rem;
}
.topics__title-and-bgi-wrap {
    position: absolute;
    top: 15.5rem;
    left: -11rem;
    width: 64rem;
}
.topics__title {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    transform: translate(-50%, -45%);
    font-size: 7rem;
    color: var(--blue);
}
.topics__title-bgi {
    position: relative;
    z-index: 0;
}
.topics__list-area {
    position: relative;
    z-index: 2;
    width: calc(100% - 28rem);
    margin: 0 0 0 auto;
}
.topics__pagination-area {
    padding-top: 9rem;
}
.topics-btn-wrap {
    max-width: 28rem;
    margin-top: 5rem;
}
/* -------------------- Topics responsive (1000) -------------------- */
@media screen and (max-width: 1000px) {
    .topics {}
    .topics__title-and-list-area {
        padding: 11rem 0 11.5rem;
    }
    .topics__title-and-bgi-wrap {
        position: relative;
        top: 0;
        left: -8.5rem;
        width: 37rem;
        margin-bottom: -1.7rem;
    }
    .topics__title {
        font-size: 4.5rem;
    }
    .topics__list-area {
        width: 100%;
    }
    .topics__pagination-area {
        padding-top: 4rem;
    }
    .topics-btn-wrap {
        margin: 4rem auto 2rem;
    }
}
/* -------------------- Topics responsive (768) -------------------- */
@media screen and (max-width: 768px) {
    .topics-btn-wrap {
        max-width: 100%;
    }
}
/* ==================== End Topics ==================== */
/* ==================== Topics Single ==================== */
.topics-single {
}
.topics-single__wrapper {
    width: 78%;
    max-width: 70rem;
    padding: 20rem 0 25rem;
    margin: 0 auto;
}
.topics-single__inner {
    position: relative;
    padding: 0;
    background-color: #fff;
}
.topics-single__title-area {
    padding-bottom: 2.6rem;
    border-bottom: 1px solid #D9D5D1;
}
.topics-single__date {
    position: relative;
    z-index: 1;
    display: inline-block;
    margin-bottom: 2rem;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.2;
}
.topics-single__title {
    font-size: 4rem;
    line-height: 1.5;
}
.topics-single__contents {
    padding: 5rem 0 0;
}
.topics-single__archive-link-wrap {
    margin-top: 3rem;
}
.topics-single__archive-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1.6rem;
}
.topics-single__archive-link-icon {
    position: relative;
    top: 0;
    left: 0;
    z-index: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 4.8rem;
    height: 4.8rem;
    border-radius: 50%;
    background-color: var(--blue);
}
.topics-single__archive-link-icon::before {
    content: '';
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
    transform: scale(-1,1);
    display: inline-block;
    width: 22px;
    height: 13px;
    background-image: url('/assets/images/common/icon-arrow.svg');
    background-repeat: no-repeat;
    background-size: 22px 13px;
}
.topics-single__archive-link-text {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--blue);
}
/* -------------------- Topics Single responsive (1000) -------------------- */
@media screen and (max-width: 1000px) {
    .topics-single {}
    .topics-single__wrapper {
        width: 89%;
        max-width: 100%;
        padding: 13rem 0 11.5rem;
    }
    .topics-single__inner {
        padding: 0;
    }
    .topics-single__title-area {
        padding-bottom: 3rem;
    }
    .topics-single__date {
        margin-bottom: 2.2rem;
        font-size: 1.4rem;
        line-height: 1.2;
    }
    .topics-single__date::after {
        width: 14.4rem;
        height: 4.4rem;
        background-size: 14.4rem 4.4rem;
    }
    .topics-single__title {
        font-size: 3.2rem;
        line-height: 1.66;
    }
    .topics-single__contents {
        padding: 3.5rem 0 0;
    }
    .topics-single__archive-link-wrap {
        margin-top: 2rem;
    }
    .topics-single__archive-link {
        gap: 1.3rem;
    }
    .topics-single__archive-link-text {
        font-size: 1.8rem;
    }
}
/* ==================== End Topics Single ==================== */
/* ======================================== End Pages ======================================== */


/* デフォルト */
.inner{
    width: 89%;
    max-width: 1120px;
    margin: 0 auto;
}

/* 背景色 */
.bg-gray{
    background: #EFEEED;
}

.img-pc{
    display: block;
}
.img-sp{
    display: none;
}
/* .sticky{
    position: sticky;
    top: 6rem;
    z-index: 9;
} */
@media screen and (max-width: 1000px) {
    .img-pc{
        display: none;
    }
    .img-sp{
        display: block;
    }
    .sticky{
        position: static;
    }
}
@media screen and (max-width: 768px) {
    .sticky{
        position: static;
    }
}

/* ボタン */
.default-btn{
    display: block;
    padding: 1.7rem 0;
    width: 100%;
    background: #2B2B2B;
    color: #fff;
    text-align: center;
    font-weight: bold;
    font-size: 1.7rem;
    border-radius: 30px;
    transition: .3s;
}
.default-btn.light-gray-color{
    background: #AEABAB;
}
@media (hover: hover) {
    .default-btn:hover{
        opacity: 0.7;
    }
}
/* セクションタイトル */
.sec-head{
    padding-bottom: 4rem;
    /* border-bottom: 1px solid #E5E2DF; */
}
.sec-head-border{
    display: block;
    background: #E5E2DF;
    height: 1px;
    width: 100%;
}
.border-white{
    background: #fff;
}
.sec-head__title{
    font-size: 5rem;
    margin-bottom: 1.5rem;
    font-family: "polymath", sans-serif;
    font-style: normal;
    font-weight: 500;
    letter-spacing: 0.01em;
}
.sec-head___subtitle{
    font-size: 1.6rem;
    font-weight: bold;
    line-height: 1.875;
    letter-spacing: 0.05em;
}
@media screen and (max-width: 1000px){
    .sec-head{
        padding-bottom: 0;
    }
    .sec-head__title{
        font-size: 4rem;
        margin-bottom: 0rem;
    }
    .home-coaching .sec-head__title,
    .company-branding .sec-head__title,
    .company-overview .sec-head__title{
        font-size: 3.5rem;
    }
    .sec-head___subtitle{
        margin-top: 0.5rem;
    }
    .homep-plan .sec-head__wrap{
        margin-bottom: 4.5rem;
    }
}

@media screen and (max-width: 768px){
    /* .sec-head__title{
        font-size: 3.5rem;
        margin-bottom: 0rem;
    } */
}
/* コーチング */
.home-coaching{
    padding: 12rem 0 10rem;
}
.coaching-contents{
    display: flex;
    gap: 2rem;
    margin-top: 5rem;
}
.coaching-right__text{
    font-size: 1.5rem;
    line-height: 2;
}
@media screen and (max-width: 768px){
    .home-coaching{
        padding: 6.5rem 0;
    }
    .coaching-contents{
        flex-direction: column;
        gap: 3rem;
    }
}
/* SERVICES */
.homep-service{
    padding: 9rem 0 10rem;
}
.service-list{
    display: flex;
    gap: 3rem 3rem;
    margin-top: 6rem;
}
.service-list__item{
    width: calc((100% - 6rem) / 3);
}
.service-list__title{
    font-size: 2.2rem;
    text-align: center;
    margin-top: 4.5rem;
}
.service-list__text{
    margin-top: 2rem;
    font-size: 1.5rem;
    line-height: 2; 
}
@media screen and (max-width: 1000px){
    .homep-service{
        padding: 7rem 0 6rem;
    }
    .service-list{
        margin-top: 4rem;
    }
    .service-list__title{
        margin-top: 2rem;
        font-size: 2rem;
    }
}
@media screen and (max-width: 768px){
    .service-list{
        flex-direction: column;
        gap: 0;
    }
    .service-list__item{
        width: 100%;
    }
}
/* サンプルプラン */
.homep-plan{
    padding: 9rem 0 0;
}
.plan-list{
    display: flex;
    flex-wrap: wrap;
}
.plan-card{
    width: 50%;
    position: relative;
    background: #999898;
    padding: 8rem 4rem 15rem;
}
.plan-card:nth-child(2),
.plan-card:nth-child(3){
    background: #870027;
}
.plan-card__title{
    font-family: "polymath", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 4rem;
    font-weight: 500;
    padding-bottom: 3rem;
    color: #fff;
    border-bottom: 1px solid #fff;
    margin-bottom: 3rem;
}
.plan-card__disc{
    font-size: 2.2rem;
    font-weight: bold;
    color: #fff;
    margin-bottom: 4rem;
    line-height: 1.63;
}
.plan-detail__item + .plan-detail__item{
    margin-top: 2rem;
}
.plan-detail__title{
    background: #fff;
    color: #898683;
    border-radius: 2px;
    font-size: 1.5rem;
    font-weight: bold;
    display: inline-block;
    width: 100px;
    letter-spacing: 0em;
    text-align: center;
    margin-bottom: 1rem;
    font-weight: bold;
}
.plan-card:nth-child(2) .plan-detail__title,
.plan-card:nth-child(3) .plan-detail__title{
    color: #870027;
}
.plan-detail__disc{
    font-size: 1.5rem;
    color: #fff;
    line-height: 2;
}
.plan-detail__text{
    font-size: 1.5rem;
    color: #fff;
    line-height: 2;
}
.plan-card:nth-child(1) .plan-card__figure{
    width: 13rem;
    bottom: 4.5rem;
}
.plan-card:nth-child(2) .plan-card__figure{
    bottom: 4.5rem;
}
.plan-card__figure{
    width: 15rem;
    position: absolute;
    bottom: 7rem;
    right: 4rem;
}
@media screen and (max-width: 1000px){
    .homep-plan{
        padding-top: 6.5rem;
    }
    .plan-card{
        width: 100%;
        padding: 5rem 5.5% 15rem;
    }
    .plan-card:nth-child(3){
        order: 4;
    }
    .plan-card__title{
        font-size: 3.6rem;
        padding-bottom: 1rem;
        margin-bottom: 2rem;
    }
    .plan-card__disc{
        font-size: 2rem;
        margin-bottom: 3rem;
    }
    .plan-card:nth-child(1){
        padding-bottom: 16rem;
    }
    .plan-card:nth-child(2){
        padding-bottom: 11.5rem;
    }
    .plan-card:nth-child(3){
        padding-bottom: 9rem;
    }
    .plan-card:nth-child(4){
        padding-bottom: 16rem;
    }
    .plan-card .plan-card__figure{
        right: 5.5%;
    }
    .plan-card:nth-child(1) .plan-card__figure{
        bottom: 4rem;
    }
    .plan-card:nth-child(2) .plan-card__figure{
        bottom: 4rem;
    }
    .plan-card:nth-child(4) .plan-card__figure{
        bottom: 3rem;
    }
    .plan-card:nth-child(3) .plan-card__figure{
        bottom: 1rem;
    }
}
/* ブランディング視点のコーチング */
.home-strength{
    padding: 9rem 0 13rem;
}
.strength-list{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8rem 0;
}
.strength-list{
    margin-top: 5.5rem;
}
.strength-card{
    width: calc((100% - 3rem) / 2);
}
.strength-card.wid100{
    width: 100%;
}
.strength-card__title{
    font-size: 2.4rem;
    line-height: 1.5;
    margin-bottom: 3rem;
}
.strength-card__disc{
    font-size: 1.5rem;
    line-height: 2;
    color: #2B2B2B;
    margin-bottom: 5rem;
}
@media screen and (max-width: 1000px){
    .home-strength{
        padding: 6.5rem 0 7rem;
    }
    .strength-list{
        flex-direction: column;
        margin-top: 4rem;
    }
    .strength-card{
        width: 100%;
        display: flex;
        flex-direction: column-reverse;
    }
    .strength-card__head{
        margin-top: 3.5rem;
    }
    .strength-card__title{
        margin-bottom: 2rem;
    }
    .strength-card__disc{
        margin-bottom: 0;
    }
    .strength-list{
        gap: 6rem 0;
    }
}
/* トライアル */
.home-trial{
    padding: 9rem 0 9rem;
}
.home-trial__contens{
    display: flex;
    margin-top: 7rem;
    gap: 6.5rem;
}
.home-trial__left{
    width: 50%;
}
.home-trial__right{
    width: 37.5%;
}
.home-trial__disc{
    font-size: 1.5rem;
    line-height: 2;
}
.trial__contact{
    margin-top: 8rem;
}
.trial-contact__title{
   font-size: 2.4rem; 
}
.trial-btn-wrap{
    max-width: 28rem;
    margin-top: 4rem;
}
.c-contact__right tr{
    display: block;
    margin-bottom: 3.5rem;
}
.c-contact__right th{
    color: #fff;
    font-size: 1.5rem;
    min-width: 19rem;
    padding-top: 1em;
}
.c-contact__right td{
    width: 100%;
}
.confirm-table__disc{
    font-size: 1.5rem;
    line-height: 2;
    color: #fff;
    margin-bottom: 1rem;
}
.errWrap{
    font-size: 1.5rem;
    line-height: 2;
    color: #c30222;
    margin-bottom: 3rem;
}
button.wid35{
    max-width: 35rem;
}
.c-contact__right.confirm-table tr{
    border-bottom: 1px solid #918D8D;
    margin-bottom: 0;
}
.c-contact__right.confirm-table th,
.c-contact__right.confirm-table td{
    font-size: 1.5rem;
    color: #fff;
    padding: 2.5rem 0;
    line-height: 2;
}
.c-contact__right.confirm-table td{
    font-size: 1.4rem;
}

.c-contact__right td input,
.c-contact__right td textarea{
    background: #fff;
    width: 100%;
    font-size: 1.5rem;
    padding: 1em 2rem;
}
.c-contact__right td select{
    background-color: #fff;
    width: 100%;
    font-size: 1.5rem;
    padding: 1em 2rem;
    padding-right: 3rem;
    -webkit-appearance: none;
    appearance: none;
    position: relative;
    background-image: url(../images/icon/select-arw.png);
    background-position: top 1.7rem right 1.2rem;
    background-size: 2rem;
    background-repeat: no-repeat;
}
.c-contact__right td select:focus{
    outline: none;
}
.c-contact__right td textarea{
    height: 200px;
    resize:vertical;
}
.contact-buttons{
    width: 28rem;
    margin-left: 19rem;
}
.confirm-btn-wrap{
    display: flex;
    gap: 0 1.5rem;
    margin-left: 18rem;
    margin-top: 5rem;
}
.completed-block{
    margin-top: 19rem;
}
.completed-block__title{
    font-size: 2.4rem;
    line-height: 1.8;
    font-weight: bold;
    color: #fff;
    margin-bottom: 3rem;
}
.completed-block__disc{
    font-size: 1.5rem;
    line-height: 2;
    color: #fff;
}
.completed .c-contact{
    min-height: 96rem;
}
.completed-btn-wrap{
    margin-top: 5.5rem;
    max-width: 28rem;
}

@media screen and (max-width: 1000px){
    .home-trial{
        padding: 7.5rem 0 6.5rem;
    }
    .home-trial__contens{
        margin-top: 3.5rem;
    }
    .home-trial__left{
        width: 100%;
    }   
    .trial__contact__image{
        margin-top: 6rem;
    }
    .trial__contact{
        margin-top: 5.5rem;
    }
    .trial-btn-wrap{
        margin: 2rem auto 0;
    }
    .trial-contact__title{
        font-size: 2rem;
        text-align: center;
    }
    .c-contact__right.confirm-table th, .c-contact__right.confirm-table td{
        padding: 0;
    }
    .c-contact__right.confirm-table tr{
        padding: 2.5rem 0;
    }
    .confirm-btn-wrap{
        margin-left: 0;
    }
    .completed .c-contact{
        min-height: auto;
    }
    .completed-block{
        margin-top: 0;
    }
    .completed-block__title{
        font-size: 1.8rem;
        margin-bottom: 2rem;
    }
    .completed-btn-wrap{
        margin-top: 2.5rem;
    }
}
@media screen and (max-width: 768px){
    .trial-btn-wrap{
        max-width: 100%;
    } 
    .confirm-btn-wrap{
        margin-top: 3.5rem;
        flex-direction: column;
        gap: 1.5rem 0;
    }
    .completed-btn-wrap{
        max-width: 100%;
    }
}
.js-parallax-elm-box {
    overflow: hidden;
}
.js-parallax-elm-box img {
    display: block;
}
/* トピックス */
.home-topics{
    padding: 9rem 0 12rem;
}
.topics-list{
    display: flex;
    gap: 7rem 2.4rem;
    flex-wrap: wrap;
}
.topics-list__item{
    width: calc((100% - 7.2rem) / 4);
}
.topics-list__title{
    margin-top: 2.5rem;
    font-size: 1.8rem;
    font-size:  bold;
}
.topics-list__date{
    font-family: "polymath", sans-serif;
    font-style: normal;
    margin-top: 1.5rem;
    font-size: 1.5rem;
    font-weight: 500;
}
.topics-list__figure{
    aspect-ratio: 1/1;   
    overflow: hidden;
}
.topics-list__figure img{
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.sec-head-border + .topics-list{
    margin-top: 6rem;
}
@media (hover: hover) {
    .topics-list__link{
        transition: .3s;
    }
    .topics-list__link:hover{
        opacity: 0.7;
    }
    .topics-list__item img{
        transition: .3s;
    }
    .topics-list__item:hover img{
        transform: scale(1.1);
    }
}
@media screen and (max-width: 1000px){
    .home-topics{
        padding: 8rem 0 4.5rem;
    }
    .topics-list{
        gap: 5rem;
    }
    .sec-head-border + .topics-list{
        margin-top: 3.5rem;
    }
    .topics-list__item {
        width: calc((100% - 5rem) / 2);
    }
    .sec-head-border{
        height: 0;
    }
}
@media screen and (max-width: 768px){
    .topics-list__item {
        width: 100%;
    }
}

/* お問い合わせ */
.c-contact{
    display: flex;
}
.c-contact__left{
    width: 37.5%;
    background: #918D8D;
    padding: 10rem 4rem;
}
.c-contact__right{
    padding: 10rem 6.5rem;
    width: 62.5%;
    background: #474747;
}
.contact-head__title{
    font-family: "polymath", sans-serif;
    font-style: normal;
    color: #fff;
    font-size: 5rem;
    font-weight: 500;
}
.contact-head__subtitle{
    color: #fff;
    font-size: 1.6rem;
    font-weight: bold;
    margin-top: 1.5rem;
}
.contact-flow{
    display: flex;
    gap:  0 7rem;
    margin-top: 10rem;
}
.contact-flow__item{
    position: relative;
    color: #fff;
    font-size: 2.4rem;
}
.contact-flow__item:after{
    content: "";
    display: block;
    top: 50%;
    right: -4.5rem;
    width: 2rem;
    height: 0.2rem;
    position: absolute;
    background: #fff;
}
.contact-flow__item:last-child::after{
    display: none;
}
.contact-flow__item.active{
    font-weight: bold;
}
.contact-flow__item.active::before{
    position: absolute;
    display: block;
    content: "";
    width: 1.6rem;
    height: 1.6rem;
    background: #fff;
    border-radius: 50%;
    top: -3.6rem;
    left: 0;
    right: 0;
    margin: 0 auto;
}
.contact__disc{
    margin-top: 4rem;
}
.contact__text{
    font-size: 1.5rem;
    line-height: 2;
    color: #fff;
}
.contact__text + .contact__text{
    margin-top: 3rem;
}
@media screen and (max-width: 1000px) {
    .c-contact{
        display: block;
    }
    .c-contact__left,
    .c-contact__right{
        width: 100%;
    }
    .c-contact__left{
        padding: 6rem 5.5% 5rem;
    }
    .contact-head__title{
        font-size: 4rem;
    }
    .contact-head__subtitle{
        margin-top: 1rem;
    }
    .contact-flow__item{
        font-size: 1.8rem;
    }
    .contact-flow{
        margin-top: 6.5rem;
        gap: 0 5rem;
    }
    .contact-flow__item.active::before{
        width: 1.2rem;
        height: 1.2rem;
        top: -2.6rem;
    }
    .contact-flow__item:after{
        width: 1.5rem;
        right: -3.5rem;
    }
    .contact__disc{
        margin-top: 3.5rem;
    }
    .c-contact__right{
        padding: 4.5rem 5.5% 8rem;
    }
    .c-contact__right tr{
        margin-bottom: 3rem;
    }
    .c-contact__right tr th,
    .c-contact__right tr td{
        display: block;
    }
    .c-contact__right tr th{
        margin-bottom: 1.8rem;
    }
    .contact-buttons{
        width: 100%;
        margin: 0 auto;
    }
}
/* フッター */
.ft-inner{
    padding: 8rem 4rem 4.5rem;
    width: 100%;
    margin: 0 auto;
}
.ft-column{
    display: flex;
    justify-content: space-between;
}
.ft-logo{
    width: 40rem;
    margin-bottom: 7rem;
}
.ft-menu{
    display: flex;
    gap: 1.5rem 3rem;
}
.ft-menu__list{
    font-family: "polymath", sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 3.2rem;
    font-weight: 400;
}
.ft-right{
    width: 40rem;
}
.ft-button__link{
    display: flex;
    gap: 0 4rem;
    padding: 4rem 0 2.4rem;
    border-bottom: 1px solid #C4C2BF;
}
.ft-button__arw{
    width: 5.5rem;
}
.ft-button__logo{
    width: 15rem;
}
.ft-button__text{
    margin-top: 1rem;
    font-size: 1.8rem;
    font-family: "polymath", sans-serif;
    font-style: normal;
    font-weight: 400;
    letter-spacing: 0.05em;
}
.ft-button__link:nth-child(2) .ft-button__logo{
    width: 14.5rem;
}
.copy__text{
    font-size: 1.2rem;
    margin-top: 1.5rem;
    color: #918D8D;
}
@media (hover: hover) {
    .ft-logo a,
    .ft-menu__link,
    .ft-button__link{
        transition: .3s;
    }
    .ft-logo a:hover,
    .ft-menu__link:hover,
    .ft-button__link:hover{
        opacity: 0.7;
    }
}
@media screen and (max-width: 1000px){
    .ft-inner{
        padding: 5.5rem 0 3rem;
        width: 89%;
    }
    .ft-menu{
        margin-bottom: 2rem;
    }
    .ft-right{
        width: 100%;
    }
    .ft-column{
        flex-direction: column;
    }
    .copy__text{
        margin-top: 3rem;
    }
}
@media screen and (max-width: 768px){
    .ft-logo{
        width: 28rem;
        margin-bottom: 4rem;
    }
    .ft-menu{
        flex-direction: column;
        gap: 2.5rem;
    }
    .ft-menu__list {
        font-size: 2.5rem;
    }
    .ft-button__link{
        align-items: center;
        padding: 3rem 0 2rem;
    }
    .ft-button__arw{
        width: 4rem;
    }
    .ft-button__logo{
        width: 11.5rem;
    }
    .ft-button__text{
        font-size: 1.6rem;   
    }
}
.header-logo{
    width: 24rem;
    position: fixed;
    top: 4rem;
    left: 4rem;
    z-index: 999;
    transition: .3s;
}
@media (hover: hover) {
    .header-logo:hover{
        opacity: 0.7;
    }
}

body.-fixed .header-logo .headline-2{
    fill: #fff;
}
.color-white{
    color: #fff;
}
.careers-btn-wrap{
    margin-top: 4rem;
    max-width: 28rem;
}
.careers-btn-wrap .default-btn{
    background: #fff;
}
.careers-btn-wrap .default-btn__text{
    color: #870027;
}
/* 下層 */
.u-ly-head{
    padding: 19rem 0 7rem;
}
.u-ly-head__text{
    font-family: "polymath", sans-serif;
    font-style: normal;
    font-size: 7.5rem;
    font-weight: 500;
}
.u-ly-head__subtext{
    font-size: 2rem;
    font-weight: 500;
}

.u-ly-head__text + .u-ly-head__subtext{
    margin-top: 0.5em;
}
/* 下層 COMPANY */
.company-branding{
    padding-bottom: 9rem;
    width: 100%;
    overflow: hidden;
}
.company-branding .inner{
    position: relative;
}
.company-bg-fig{
    width: 815px;
    position: absolute;
    bottom: -9rem;
    right: -20.5rem;
    z-index: -1;
}
.company-branding__contents{
    display: flex;
    align-items: start;
    gap: 5rem;
    margin-top: 6rem;
    margin-bottom: 7rem;
}
.company-branding__left{
    flex: 1;
}
.company-branding__right{
    width: 31.25%;
    overflow: hidden;
}
.js_parallax-frame{
    position: relative;
    overflow: hidden;
}
.company-branding__figure{
    position: absolute;
    top: -5%;
    left: 0;
    width: 100%;
    height: 110%;
    transition: .8s;
}
.company-branding__img{
    object-fit: cover;
    object-position: 50% 50%;
    overflow: hidden;
    vertical-align: top;
    max-width: 100%;
    height: 100%;
}
.company-branding__text{
    font-size: 1.7rem;
    line-height: 2;
}
.company-branding__text + .company-branding__text{
    margin-top: 3rem;
}
.c-profile{
    max-width: 675px;
    padding-left: 3.5rem;
    border-left: #870027 solid 3px;
}
.c-profile__name{
    margin-bottom: 3rem;
}
.c-profile__name-ja{
    font-size: 3.2rem;
    font-weight: bold;
}
.c-profile__name-en{
    font-size: 1.7rem;
    margin-top: 0.5rem;
    color: #870027;
    font-weight: 400;
}
.c-profile__text{
    font-size: 1.5rem;
    line-height: 2;
}
.c-profile__text + .c-profile__text{
    margin-top: 2.5rem;
}
.profile-list{
    margin-top: 3rem;
}
.profile-list__text{
    font-size: 1.5rem;
    line-height: 2;
    position: relative;
    padding-left: 1.5rem;
}
.profile-list__text:before{
    content: '';
    background: url(../images/icon/list-style.png) no-repeat;
    background-size: cover;
    box-sizing: border-box;
    position: absolute;
    top: 0.9rem;
    left: 0;
    display: inline;
    width: 10px;
    height: 10px;
}
.company-overview{
    padding: 8.5rem 0 10rem;
    background: #D1CFD0;
}
.overview-table-wrap{
    margin-top: 5rem;
}
.overview-table__title{
    font-size: 2.4rem;
    margin-bottom: 2rem;
}
.overview-table th,
.overview-table td{
    font-size: 1.5rem;
    padding: 2rem 0;
    line-height: 2;
}
.overview-table th{
    width: 11.5rem;
    font-weight: bold;
}
.overview-table td{
    font-weight: normal;
}
.company-careers{
    padding: 8.5rem 0 9.5rem;
    background: #870027;
}
.company-careers__contents{
    margin-top: 4rem;
}
.company-careers__text{
    font-size: 1.5rem;
    line-height: 2;
    color: #fff;
}
.careers-list{
    margin-top: 3.5rem;
}
.careers-list__text{
    font-size: 1.5rem;
    line-height: 2;
    color: #fff;
    position: relative;
    position: relative;
    padding-left: 1.8rem;
}
.careers-list__text:before{
    content: '';
    background: url(../images/icon/list-style-w.png)no-repeat;
    background-size: cover;
    box-sizing: border-box;
    position: absolute;
    top: 1rem;
    left: 0;
    display: inline;
    font-size: 1.5rem;
    width: 10px;
    height: 10px;
    border-radius: 50%;
}
@media screen and (max-width: 1000px){
    .u-ly-head{
        padding: 12rem 0 2rem;
    }
    .u-ly-head__text{
        font-size: 5rem;
    }
    .u-ly-head__subtext{
        font-size: 1.8rem;
    }
    .header-logo{
        top: 3.2rem;
        width: 22rem;
        left: 5.5%;
    }
    .company-branding__contents{
        flex-direction: column;
        margin-top: 3rem;
        margin-bottom: 6.5rem;
    }
    .company-branding__right{
        width: 100vw;
        position: relative;
        left: -5.5vw;
    }
    .company-careers{
        padding: 6.5rem 0;
    }
    .company-careers__contents{
        margin-top: 3rem;
    }
    .careers-list{
        margin-top: 2rem;
    }
    .company-bg-fig{
        width: 46rem;
        bottom: -7rem;
        right: -19rem;
    }
    .c-profile{
        padding-left: 2rem;
    }
    .c-profile__name-ja{
        font-size: 2.8rem;
    }
    .c-profile__name-en{
        font-size: 1.5rem;
    }
    .company-branding__text{
        font-size: 1.5rem;
    }
    .company-branding{
        padding-bottom: 7rem;
    }
    .overview-table-wrap{
        margin-top: 3rem;
    }
    .company-overview{
        padding: 6.5rem 0 5rem;
    }
    .overview-table__title{
        font-size: 2rem;
    }
    .overview-table th, .overview-table td{
        padding: 1.5rem 0;
    }
}
@media screen and (max-width: 768px){
    .careers-btn-wrap{
        max-width: 100%;
    }
}

/* 下層 TOPICS */
.topics{
    background: #EFEEED;
    padding-bottom: 13rem;
}
@media screen and (max-width: 1000px){
    .topics{
        padding-bottom: 8rem;
    }
}
/* KV */
@keyframes scrollBtn {
    0% { transform: translateY(0px); opacity: 1; }
    50% { transform: translateY(5px); opacity: 0.6; }
    100% { transform: translateY(0px); opacity: 1; }
}
.down-icon.on{
    opacity: 1;
}
.down-icon{
    opacity: 0;
    position: absolute;
    width: 8.5rem;
    bottom: 5rem;
    left: 4rem;
    z-index: 9;
    transition: .3s;
    animation: scrollBtn 2.0s ease infinite;
}
@media (hover: hover) {
    .down-icon:hover{
        opacity: 0.7;
    }
}
@media screen and (max-width: 1000px){
    .down-icon{
        width: 6rem;
    }
}
@media screen and (max-width: 768px){
    .down-icon{
        position: absolute;
        bottom: 10rem;
        left: 0;
        right: 0;
        margin: 0 auto;
    }
}
.kv-anime-block{
    position: absolute;
    z-index: 9;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
/*bound text animetions*/
@keyframes showTextFromBottom{
0%{
 transform: translateY( 100% );

}
100%{
  transform: translateY( 0px );
}
}
.anime-up.displayed span{
animation: showText 3s backwards;
display: inline-block;
}
.anime-up.displayed > span{
overflow: hidden;
}
.anime-up.displayed > span > span{
animation: showTextFromBottom 0.5s backwards;
}

/* ＝＝＝＝＝＝＝＝＝＝＝＝
    KV アニメ０１ 
＝＝＝＝＝＝＝＝＝＝＝＝　*/
.slide-block01{
    width: 65.6%;
    max-width: 82.5rem;
}
.kv-anime01 {
    position: relative;
    width: 100%;
    aspect-ratio: 1269 / 768;
    overflow: hidden;
}
.kv-anime01 .circle {
    position: absolute;
    border: 2px solid white;
    border-radius: 50%;
    background: transparent;
    aspect-ratio: 1 / 1;
    transition: 0.8s;
}
.animate .kv-anime01 .circle{
    animation: moveToCenter 3s cubic-bezier(0.77,0,0.175,1) 0.5s forwards;
}
.firstanime .kv-anime01 .circle{
    animation: moveToCenter 3s cubic-bezier(0.77,0,0.175,1) 0.5s forwards;
}
.firstanime .kv-slider__text img{
    animation: textAnime 1.5s cubic-bezier(0.77,0,0.175,1) forwards;
}

/* 各円の初期位置とサイズ */
.kv-anime01 .circle1 {
    width: calc(100% * 130 / 830);
    top: 0;
    left: calc(100% * 148 / 830);
    animation-delay: 0s;
}
.kv-anime01 .circle2{
    width: calc(100% * 185 / 830);
    top: calc(100% * 210 / 500);
    left: 0;
    animation-delay: 0.4s;
}
.kv-anime01 .circle3 {
    width: calc(100% * 125 / 830);
    top: calc(100% * 155 / 500);
    left: calc(100% * 290 / 830);
    animation-delay: 0.1s;
}
.kv-anime01 .circle4 {
    width: calc(100% * 64 / 830);
    top: calc(100% * 64 / 500);
    left: calc(100% * 455 / 830);
    animation-delay: 0.3s;
}
.kv-anime01 .circle5 {
    width: calc(100% * 192 / 830);
    top: calc(100% * 17 / 500);
    left: calc(100% * 636 / 830);
    animation-delay: 0.2s;
}
.kv-anime01 .circle6 {
    width: calc(100% * 342 / 830);
    left: calc(100% * 485 / 830);
    top: calc(100% * 158 / 500);
    animation-delay: 0.5s;
}
/* アニメーション：中心に集まりつつサイズ統一 */
@keyframes moveToCenter {
    0% {
    }
    100% {
        top: 50%;
        left: 50%;
        width: 30%;
        right: auto;
        bottom: auto;
        transform: translate(-50%, -50%) scale(1); /* サイズを揃える */
        opacity: 1;
    }
}
/* ＝＝＝＝＝＝＝＝＝＝＝＝
    KV アニメ０2 
＝＝＝＝＝＝＝＝＝＝＝＝　*/
.slide-block02{
    width: 80%;
    max-width: 95rem;
}
.kv-anime02{
    position: relative;
    width: 100%;
    aspect-ratio: 722 / 588;
    overflow: hidden;
}
.kv-anime02 .circle{
  position: absolute;
  border: 2px solid white;
  border-radius: 50%;
  background: transparent;
  aspect-ratio: 1 / 1;
  width: calc(100% * 142 / 722);
  transition: 0.8s;
}
.kv-anime02 .circle1{
    left: 28%;
    top: calc(100% * 170 / 588);
}
.kv-anime02 .circle2{
    left: 28%;
    bottom: calc(100% * 170 / 588);
}
.kv-anime02 .circle3{
    top: 20%;
    left: 0;
    right: 0;
    margin: 0 auto;
}
.kv-anime02 .circle4{
    bottom: 20%;
    left: 0;
    right: 0;
    margin: 0 auto;
}
.kv-anime02 .circle5{
    right: 28%;
    top: calc(100% * 170 / 588);
}
.kv-anime02 .circle6{
    right: 28%;
    bottom: calc(100% * 170 / 588);
}
.animate .kv-anime02 .circle1{animation: kv02-ly01 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.animate .kv-anime02 .circle2{animation: kv02-ly02 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.animate .kv-anime02 .circle3{animation: kv02-ly03 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.animate .kv-anime02 .circle4{animation: kv02-ly04 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.animate .kv-anime02 .circle5{animation: kv02-ly05 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.animate .kv-anime02 .circle6{animation: kv02-ly06 3s cubic-bezier(0.77,0,0.175,1) forwards;}

/* アニメーション：中心に集まりつつサイズ統一 */
@keyframes kv02-ly01 {
    0% {}
    100% {
      left: 0;
      top: calc(100% * 100 / 588);
    }
  }
  @keyframes kv02-ly02 {
    0% {}
    100% {
      left: 0;
      bottom: calc(100% * 100 / 588);
    }
  }
  @keyframes kv02-ly03 {
    0% {}
    100% {
      top: 0;
    }
  }
  @keyframes kv02-ly04 {
    0% {}
    100% {
      bottom: 0;
    }
  }
  @keyframes kv02-ly05 {
    0% {}
    100% {
      right: 0;
      top: calc(100% * 100 / 588);
    }
  }
  @keyframes kv02-ly06 {
    0% {}
    100% {
      right: 0;
      bottom: calc(100% * 100 / 588);
    }
}
/* ＝＝＝＝＝＝＝＝＝＝＝＝
    KV アニメ０3
＝＝＝＝＝＝＝＝＝＝＝＝　*/
.slide-block03{
    width: 56%;
    max-width: 72.5rem;
}
.kv-anime03 svg{
    width: 100%;
}   
.kv-anime03 .cls-1 {
    fill: #fff;
    opacity: 0;
}
.kv-anime03 .cls-2 {
    opacity: 0;
    animation: opacity 3s ease 0s forwards;
    stroke-dasharray: 8 8;
}
.kv-anime03 .cls-2,
.kv-anime03 .cls-3 {
    fill: none;
    stroke: #fff;
    stroke-miterlimit: 10;
    stroke-width: 2px;
    opacity: 0;
}
.kv-anime03 .cls-4 {
    fill: none;
    stroke: #D1CFD0;
    stroke-miterlimit: 10;
    stroke-width: 2px;
}
@keyframes opacity{
    0% {
        opacity: 0;
    }
    1%{
        opacity: 1;
    }
    100% {
        opacity: 1;
    }
}
@-webkit-keyframes animate-svg-stroke-1 {
    0% {
        stroke-dashoffset: 1494.0753173828125px;
        stroke-dasharray: 747.0376586914062px;
    }
    1%{
        opacity: 1;
    }
    100% {
        stroke-dashoffset: 747.0376586914062px;
        stroke-dasharray: 747.0376586914062px;
        opacity: 1;
    }
}
@keyframes animate-svg-stroke-1 {
    0% {
        stroke-dashoffset: 1494.0753173828125px;
        stroke-dasharray: 747.0376586914062px;
    }
    1%{
        opacity: 1;
    }
    100% {
        stroke-dashoffset: 747.0376586914062px;
        stroke-dasharray: 747.0376586914062px;
        opacity: 1;
    }
}
@-webkit-keyframes animate-svg-stroke-2 {
    0% {
        roke-dashoffset: 61.527381896972656px;
    stroke-dasharray: 61.527381896972656px;
    }
    1%{
        opacity: 1;
    }
    100% {
        stroke-dashoffset: 0;
    stroke-dasharray: 61.527381896972656px;
    opacity: 1;
    }
}

@keyframes animate-svg-stroke-2 {
    0% {
        roke-dashoffset: 61.527381896972656px;
    stroke-dasharray: 61.527381896972656px;
    }
    1%{
        opacity: 1;
    }
    100% {
        stroke-dashoffset: 0;
    stroke-dasharray: 61.527381896972656px;
    opacity: 1;
    }
}
@-webkit-keyframes animate-svg-fill-2 {
  0% {
    fill: transparent;
  }
  100% {
    fill: rgb(255, 255, 255);
  }
}
@keyframes animate-svg-fill-2 {
  0% {
    fill: transparent;
  }
  100% {
    fill: rgb(255, 255, 255);
  }
}
@-webkit-keyframes animate-svg-stroke-3 {
  0% {
    stroke-dashoffset: 1502.57861328125px;
    stroke-dasharray: 751.289306640625px;
  }
  1%{
        opacity: 1;
    }
  100% {
    stroke-dashoffset: 751.289306640625px;
    stroke-dasharray: 751.289306640625px;
    opacity: 1;
  }
}

@keyframes animate-svg-stroke-3 {
  0% {
    stroke-dashoffset: 1502.57861328125px;
    stroke-dasharray: 751.289306640625px;
  }
  1%{
        opacity: 1;
    }
  100% {
    stroke-dashoffset: 751.289306640625px;
    stroke-dasharray: 751.289306640625px;
    opacity: 1;
  }
}
@-webkit-keyframes animate-svg-stroke-4 {
  0% {
    stroke-dashoffset: 61.532073974609375px;
    stroke-dasharray: 61.532073974609375px;
  }
  1%{
        opacity: 1;
    }
  100% {
    stroke-dashoffset: 0;
    stroke-dasharray: 61.532073974609375px;
    opacity: 1;
  }
}
@keyframes animate-svg-stroke-4 {
    0% {
    stroke-dashoffset: 61.532073974609375px;
    stroke-dasharray: 61.532073974609375px;
  }
  1%{
        opacity: 1;
    }
  100% {
    stroke-dashoffset: 0;
    stroke-dasharray: 61.532073974609375px;
    opacity: 1;
  }
}
@-webkit-keyframes animate-svg-fill-4 {
  0% {
    fill: transparent;
  }

  100% {
    fill: rgb(255, 255, 255);
  }
}
@keyframes animate-svg-fill-4 {
  0% {
    fill: transparent;
  }
  100% {
    fill: rgb(255, 255, 255);
  }
}
@-webkit-keyframes animate-svg-stroke-5 {
  0% {
    stroke-dashoffset: 987.9044799804688px;
    stroke-dasharray: 987.9044799804688px;
  }
  1%{
        opacity: 1;
    }
  100% {
    stroke-dashoffset: 0;
    stroke-dasharray: 987.9044799804688px;
    opacity: 1;
  }
}

@keyframes animate-svg-stroke-5 {
    0% {
    stroke-dashoffset: 987.9044799804688px;
    stroke-dasharray: 987.9044799804688px;
  }
  1%{
        opacity: 1;
    }
  100% {
    stroke-dashoffset: 0;
    stroke-dasharray: 987.9044799804688px;
    opacity: 1;
  }
}
@-webkit-keyframes animate-svg-stroke-6 {
  0% {
    stroke-dashoffset: 619.078369140625px;
    stroke-dasharray: 619.078369140625px;
  }
  1%{
        opacity: 1;
    }
  100% {
    stroke-dashoffset: 0;
    stroke-dasharray: 619.078369140625px;
    opacity: 1;
  }
}

@keyframes animate-svg-stroke-6 {
  0% {
    stroke-dashoffset: 619.078369140625px;
    stroke-dasharray: 619.078369140625px;
  }
  1%{
        opacity: 1;
    }
  100% {
    stroke-dashoffset: 0;
    stroke-dasharray: 619.078369140625px;
    opacity: 1;
  }
}
@-webkit-keyframes animate-svg-stroke-7 {
  0% {
    stroke-dashoffset: 364.5586242675781px;
    stroke-dasharray: 364.5586242675781px;
  }
  1%{
        opacity: 1;
    }
  100% {
    stroke-dashoffset: 0;
    stroke-dasharray: 364.5586242675781px;
    opacity: 1;
  }
}

@keyframes animate-svg-stroke-7 {
    0% {
    stroke-dashoffset: 364.5586242675781px;
    stroke-dasharray: 364.5586242675781px;
  }
  1%{
        opacity: 1;
    }
  100% {
    stroke-dashoffset: 0;
    stroke-dasharray: 364.5586242675781px;
    opacity: 1;
  }
}
.animate .svg-elem-1 {
  -webkit-animation: animate-svg-stroke-1 3s cubic-bezier(0.77,0,0.175,1) 0s both,
                       animate-svg-fill-1 0.7s cubic-bezier(0.77,0,0.175,1) 0.8s both;
          animation: animate-svg-stroke-1 3s cubic-bezier(0.77,0,0.175,1) 0s both,
               animate-svg-fill-1 0.7s cubic-bezier(0.77,0,0.175,1) 0.8s both;
}
.animate .svg-elem-2 {
  -webkit-animation: animate-svg-stroke-2 3s cubic-bezier(0.77,0,0.175,1) 2s both,
                     animate-svg-fill-2 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
  animation: animate-svg-stroke-2 3s cubic-bezier(0.77,0,0.175,1) 2s both,
             animate-svg-fill-2 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
}
.animate .svg-elem-3 {
  -webkit-animation: animate-svg-stroke-3 3s cubic-bezier(0.77,0,0.175,1) 0s both,
                       animate-svg-fill-3 0.7s cubic-bezier(0.77,0,0.175,1) 1s both;
          animation: animate-svg-stroke-3 3s cubic-bezier(0.77,0,0.175,1) 0s both,
               animate-svg-fill-3 0.7s cubic-bezier(0.77,0,0.175,1) 1s both;
}
.animate .svg-elem-4 {
  -webkit-animation: animate-svg-stroke-4 3s cubic-bezier(0.77,0,0.175,1) 0.36s both,
                       animate-svg-fill-4 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
          animation: animate-svg-stroke-4 3s cubic-bezier(0.77,0,0.175,1) 0.36s both,
               animate-svg-fill-4 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
}
.animate .svg-elem-5 {
  -webkit-animation: animate-svg-stroke-5 3s cubic-bezier(0.77,0,0.175,1) 0.48s both,
                       animate-svg-fill-5 0.7s cubic-bezier(0.77,0,0.175,1) 1.2000000000000002s both;
          animation: animate-svg-stroke-5 3s cubic-bezier(0.77,0,0.175,1) 0.48s both,
               animate-svg-fill-5 0.7s cubic-bezier(0.77,0,0.175,1) 1.2000000000000002s both;
}
.animate .svg-elem-6 {
  -webkit-animation: animate-svg-stroke-6 3s cubic-bezier(0.77,0,0.175,1) 0.6s both,
                       animate-svg-fill-6 0.7s cubic-bezier(0.77,0,0.175,1) 1.3s both;
          animation: animate-svg-stroke-6 3s cubic-bezier(0.77,0,0.175,1) 0.6s both,
               animate-svg-fill-6 0.7s cubic-bezier(0.77,0,0.175,1) 1.3s both;
}
.animate .svg-elem-7 {
  -webkit-animation: animate-svg-stroke-7 3s cubic-bezier(0.77,0,0.175,1) 0.72s both,
                       animate-svg-fill-7 0.7s cubic-bezier(0.77,0,0.175,1) 1.4000000000000001s both;
          animation: animate-svg-stroke-7 3s cubic-bezier(0.77,0,0.175,1) 0.72s both,
               animate-svg-fill-7 0.7s cubic-bezier(0.77,0,0.175,1) 1.4000000000000001s both;
}

/* ＝＝＝＝＝＝＝＝＝＝＝＝
    KV アニメ０4 
＝＝＝＝＝＝＝＝＝＝＝＝　*/
.slide-block04{
    width: 78%;
    max-width: 82rem;
}
.kv-anime04 svg{
    width: 100%;
    transform: scaleX(-1);
} 
.anime-line04{
    opacity: 0;
    fill: none;
    stroke: #ccc9c4;
    stroke-miterlimit: 10;
    stroke-width: 2px;
}
.anime-line04 {
    /* JS でセットするのでここではプレースホルダー */
    stroke-dasharray: 0;
    stroke-dashoffset: 0;
    opacity: 1;
}

@keyframes animate04 {
    to { stroke-dashoffset: 0; }
}
.animate .svg-anime04 {
    -webkit-animation: animate04 4s cubic-bezier(0.77,0,0.175,1) forwards; /* 'forwards'を追加してアニメーション後の状態を保持 */
    animation: animate04 4s cubic-bezier(0.77,0,0.175,1)  forwards; /* 'forwards'を追加してアニメーション後の状態を保持 */
}

/* menuスマホ */
.menu-shapes-sp{
    width: 65%;
    margin-left: 5.5%;
    margin-top: 10vw;
    display: none;
}
.animate.kv-anime01 .circle{
    animation: moveToCenter 3s cubic-bezier(0.77,0,0.175,1) 0.5s forwards;
}
.menu-shapes-sp__item .kv-anime02{
    position: relative;
    width: 80%;
    left: 10%;
}
.menu-shapes-sp__item .kv-anime04{
    position: relative;
    width: 90%;
    left: 5%;
}

.animate.kv-anime02 .circle1{animation: kv02-ly01 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.animate.kv-anime02 .circle2{animation: kv02-ly02 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.animate.kv-anime02 .circle3{animation: kv02-ly03 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.animate.kv-anime02 .circle4{animation: kv02-ly04 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.animate.kv-anime02 .circle5{animation: kv02-ly05 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.animate.kv-anime02 .circle6{animation: kv02-ly06 3s cubic-bezier(0.77,0,0.175,1) forwards;}
.animate.kv-anime03 .svg-elem-1 {
    -webkit-animation: animate-svg-stroke-1 3s cubic-bezier(0.77,0,0.175,1) 0s both,
                         animate-svg-fill-1 0.7s cubic-bezier(0.77,0,0.175,1) 0.8s both;
            animation: animate-svg-stroke-1 3s cubic-bezier(0.77,0,0.175,1) 0s both,
                 animate-svg-fill-1 0.7s cubic-bezier(0.77,0,0.175,1) 0.8s both;
}
.animate.kv-anime03 .svg-elem-2 {
    -webkit-animation: animate-svg-stroke-2 3s cubic-bezier(0.77,0,0.175,1) 2s both,
                       animate-svg-fill-2 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
    animation: animate-svg-stroke-2 3s cubic-bezier(0.77,0,0.175,1) 2s both,
               animate-svg-fill-2 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
}
.animate.kv-anime03 .svg-elem-3 {
    -webkit-animation: animate-svg-stroke-3 3s cubic-bezier(0.77,0,0.175,1) 0s both,
                         animate-svg-fill-3 0.7s cubic-bezier(0.77,0,0.175,1) 1s both;
            animation: animate-svg-stroke-3 3s cubic-bezier(0.77,0,0.175,1) 0s both,
                 animate-svg-fill-3 0.7s cubic-bezier(0.77,0,0.175,1) 1s both;
}
.animate.kv-anime03 .svg-elem-4 {
    -webkit-animation: animate-svg-stroke-4 3s cubic-bezier(0.77,0,0.175,1) 0.36s both,
                         animate-svg-fill-4 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
            animation: animate-svg-stroke-4 3s cubic-bezier(0.77,0,0.175,1) 0.36s both,
                 animate-svg-fill-4 0.7s cubic-bezier(0.77,0,0.175,1) 2s both;
}
.animate.kv-anime03 .svg-elem-5 {
    -webkit-animation: animate-svg-stroke-5 3s cubic-bezier(0.77,0,0.175,1) 0.48s both,
                         animate-svg-fill-5 0.7s cubic-bezier(0.77,0,0.175,1) 1.2000000000000002s both;
            animation: animate-svg-stroke-5 3s cubic-bezier(0.77,0,0.175,1) 0.48s both,
                 animate-svg-fill-5 0.7s cubic-bezier(0.77,0,0.175,1) 1.2000000000000002s both;
}
.animate.kv-anime03 .svg-elem-6 {
    -webkit-animation: animate-svg-stroke-6 3s cubic-bezier(0.77,0,0.175,1) 0.6s both,
                         animate-svg-fill-6 0.7s cubic-bezier(0.77,0,0.175,1) 1.3s both;
            animation: animate-svg-stroke-6 3s cubic-bezier(0.77,0,0.175,1) 0.6s both,
                 animate-svg-fill-6 0.7s cubic-bezier(0.77,0,0.175,1) 1.3s both;
}
.animate.kv-anime03 .svg-elem-7 {
    -webkit-animation: animate-svg-stroke-7 3s cubic-bezier(0.77,0,0.175,1) 0.72s both,
                         animate-svg-fill-7 0.7s cubic-bezier(0.77,0,0.175,1) 1.4000000000000001s both;
            animation: animate-svg-stroke-7 3s cubic-bezier(0.77,0,0.175,1) 0.72s both,
                 animate-svg-fill-7 0.7s cubic-bezier(0.77,0,0.175,1) 1.4000000000000001s both;
}
.menu-shapes-sp__item .svg-anime04.animate{
    -webkit-animation: animate04 4s cubic-bezier(0.77,0,0.175,1) forwards; /* 'forwards'を追加してアニメーション後の状態を保持 */
    animation: animate04 4s cubic-bezier(0.77,0,0.175,1)  forwards; /* 'forwards'を追加してアニメーション後の状態を保持 */
}
.menu-shapes-sp__item .kv-anime01 .circle,
.menu-shapes-sp__item .kv-anime02 .circle{
    border: 1px solid #D1CFD0;
}
.menu-shapes-sp__item .kv-anime03 .cls-1 {
    fill: #D1CFD0;
    opacity: 0;
    stroke-width: 3px;
}
.menu-shapes-sp__item .kv-anime03 .cls-2,
.menu-shapes-sp__item .kv-anime03 .cls-3 {
    stroke: #D1CFD0;
    stroke-width: 3px;
}
.menu-shapes-sp__item .kv-anime03 .cls-4 {
    stroke: #870027;;
    stroke-width: 5px;
}
.menu-shapes-sp__item .anime-line04 {
    stroke: #D1CFD0;
    stroke-width: 1px;
    stroke-dasharray: 0;
    stroke-dashoffset: 0;
    opacity: 1;
}
@media screen and (max-width: 1000px){
    .menu-shapes-sp{
        display: block;
    }
}

/* スライダー */
.kv{
    position: relative;
    background: #D1CFD0;
}
.kv-slider__item{
    background: #D1CFD0;
    width: 100%;
    height: 100vh;
}
.kv-slider__wrap{
    height: 100%;
}
.kv-slider__inner{
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}
.kv-slider__item.bg-red{
    background: #870027;
}
.kv-slider__text{
    position: relative;
    z-index: 99;
    color: #fff;
    text-align: center;
    overflow: hidden;
    transition: .3.5s;
}
.kv-slider__text img{
    width: 100%;
    height: 13rem;
    transform: translateY(100%);
}
/* .slick-active .kv-slider__text img{
    animation: textAnime 1s 0s forwards ease-in-out;
} */
.animate .kv-slider__text img{
    animation: textAnime 1.5s cubic-bezier(0.77,0,0.175,1) forwards;
}
@keyframes textAnime {
    to {
        transform: translateY(0px);
    }
}
.fix-button{
    position: fixed;
    right: 2rem;
    bottom: 3rem;
    width: 32rem;
    z-index: 999;
    transition: .3s;
}
@media (hover: hover) {
    .fix-button:hover{
        opacity: .7;
    }
}
.fix-button.is-hidden{
    visibility: hidden;
    opacity: 0;
}
.fix-button__link{
    width: 100%;
    display: inline-block;
    padding: 1.2rem 2rem 1.5rem;
    background-color: #2B2B2B;
    background-image: url(../images/common/arw-fix.png);
    background-repeat: no-repeat;
    background-position: center right 2rem;
    background-size: 2.2rem;
}
.fix-button__title{
    color: #fff;
    font-size: 3rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    line-height: 1;
    font-family: "polymath", sans-serif;
    font-style: normal;
}
.fix-button__text{
    font-size: 1.1rem;
    font-weight: bold;
    color: #fff;
    margin-top: 0.6rem;
}
@media screen and (max-width: 1300px){
}
@media screen and (max-width: 1000px){
    .kv-slider__item{
        max-height: 65rem;
    }
    .kv-slider__text img{
        height: 4.2rem;
    }
}
@media screen and (max-width: 768px){
    .kv-slider__item{
        max-height: 65rem;
    }
    .kv-slider__text img{
        height: 4.2rem;
    }
    .slide-block01,
    .slide-block02,
    .slide-block03,
    .slide-block04{
        width: 76%;
    }
    .slide-block02{
        width: 60%;
    }
}
@media screen and (max-width: 480px){
    .fix-button{
        width: 93vw;
        right: 0;
        left: 0;
        margin: 0 auto;
        bottom: 1.5rem;
    }
    .fix-button__link{
        padding: 1.1rem 1.5rem 1.3rem;
        background-position: top 1.6rem right 1.7rem;
    }
    .fix-button__title{
        font-size: 2.5rem;
    }
    .fix-button__text{
        font-size: 1.2rem;
    } 
}