@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
body {
    font-family: "Noto Sans JP", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo",sans-serif;
    line-height: 1.7;
}
body.is-locked {
    position: fixed;
    overflow: hidden;
    touch-action: none;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}
a {
    text-decoration: none;
}
ul,ol {
    list-style: none;
}
:root {
    --primary_y: #FDFB00;
    --sub_g: #333;
    --fs_20: min(1.38vw,20px);
    --fs_28: min(1.94vw,28px);
    --fs_42: min(2.92vw,42px);
    --fs_44: min(3.05vw,44px);
}
.visible_sp {
    display: none !important;
}
@media screen and (max-width: 820px) {
    .visible_sp {
        display: block !important;
    }
    .visible_pc {
        display: none !important;
    }
}
@media screen and (min-width: 541px) {
    .unvisible_pc {
        display: none !important;
    }
}

/* module */
.wrapper {
    width: 100%;
    height: 100vh;
}
.inner {
    width: 80vw;
    margin: auto;
}
.marker_b {
    background: -webkit-linear-gradient(left, #000 50%, transparent 50%);
    background: -moz-linear-gradient(left, #000 50%, transparent 50%);
    background: linear-gradient(left, #000 50%, transparent 50%);
}
.marker_y {
    background: -webkit-linear-gradient(left, #FDFB00 50%, transparent 50%);
    background: -moz-linear-gradient(left, #FDFB00 50%, transparent 50%);
    background: linear-gradient(left, #FDFB00 50%, transparent 50%);
}
.marker {
    display: inline-block;
    line-height: 1.3;
    position: relative;
    background-repeat: no-repeat;
    background-size: 200% 100%; 
    background-position: 100% 100%;
    transition: 0.5s;
}
.marker.isPlay {
    background-position: 0% 0%;
}
.marker > span {
    padding: 0 2px;
    position: relative;
    z-index: 1;
}
@keyframes marker {
    from {
        width: 0;
    }
    100% {
        width: 100%;
    }
}
.marker.marker_tw {
    color: #FFF;
}
.marker.marker_tb {
    color: #000;
}
.marker.marker_ty {
    color: var(--primary_y);
}
.card__wrap {
    display: flex;
    column-gap: 10px;
    text-align: center;
    margin-bottom: 80px;
}
.card {
    width: 32.8125%;
    padding: 40px 0;
    background: var(--sub_g);
}
#flt {
    position: fixed;
    right: 60px;
    bottom: 60px;
    z-index: 15;
}
.loop_wrap {
    display: flex;
    width: 100vw;
    margin: 0 calc(50% - 50vw);
    overflow: hidden;
}
.loop_wrap div {
    flex: 0 0 auto;
    white-space: nowrap;
}
.loop_wrap div {
    animation: loop 50s linear infinite;
}
.loop_wrap2 div {
    animation: loop_v2 50s linear infinite;
}
.loop_wrap div img {
    height: 100%;
    vertical-align: top;
    will-change: transform, opacity;
}
@keyframes loop {
    0% {
    transform: translateX(-100%);
    }
    100% {
        transform: translateX(0);
    }
}
@keyframes loop_v2 {
    0% {
        transform: translateX(0%);
    }
    to {
        transform: translateX(-100%);
    }
}
.cv__button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 340px;
    height: 76px;
    padding-right: 12px;
    border: 4px solid #000;
    background: var(--primary_y);
    position: relative;
    cursor: pointer;
    transition: transform 0.6s cubic-bezier(0.32, 0.48, 0, 1);
}
.cv__button:not(#flt) {
    margin: 0 auto;
}
.cv__button::after {
    display: block;
    content: "";
    width: 12px;
    height: 17px;
    background: url(img/arrow2.webp) center/contain no-repeat;
    position: absolute;
    right: 36px;
    top: 0;
    bottom: 0;
    margin: auto;
}
.cv__button span {
    color: #000;
    font-size: 24px;
    font-weight: 900;
}
@media (hover: hover) {
    .cv__button:hover {
        transform: scale(0.95);
        transition: transform 0.6s cubic-bezier(0.32, 0.48, 0, 1);
    }
}
@media screen and (max-width: 820px) {
    .inner {
        width: 89.33vw;
    }
    .card__wrap {
        flex-direction: column;
        align-items: center;
        row-gap: 10px;
        margin-bottom: 40px;
    }
    .card {
        width: 100%;
        max-width: 335px;
        padding: 30px 0;
    }
    #flt {
        right: 0;
        left: 0;
        bottom: 20px;
        margin: auto;
    }
    .cv__button {
        width: 295px;
        height: 60px;
        padding-right: 10px;
    }
    .cv__button::after {
        width: 10px;
        height: 14px;
        right: 26px;
    }
    .cv__button span {
        font-size: 20px;
    }
}


header {
    position: relative;
}
.l-4ad {
    width: 215px;
    height: 110px;
    transition: width 0.3s;
    position: fixed;
    left: 30px;
    top: 30px;
    z-index: 15;
}
.l-4ad.is-bg {
    background: #000;
}
.l-4ad a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    transition: .3s;
    -webkit-transform: scale(1);
    transform: scale(1);
}
.l-4ad.is-down {
    width: 110px;
    height: 110px;
}
@media (hover: hover) {
    .l-4ad:hover,
    .l-4ad__sns li:hover {
        opacity: 0.8;
        transition: 0.3s;
    }
    .l-4ad__sns li:hover  {
        transform: rotateY( 360deg ) ;
    }
    .l-4ad a:hover {
        -webkit-transform: scale(1.1);
        transform: scale(1.1);
    }
}
@media screen and (max-width: 767px) {
    .l-4ad {
        width: 118px;
        height: 60px;
        top: 0;
        left: 0;
    }
    .l-4ad__logo {
        width: 78px;
    }
    .l-4ad.is-down {
        width: 60px;
        height: 60px;
    }
}

/* fv */
#fv {
    background: #000;
    position: relative;
    height: 100svh;
    z-index: 5;
    overflow: hidden;
}
#fv__indicator {
    width: 100px;
    height: 1px;
    background: var(--primary_y);
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    z-index: 3;
}
.pin-spacer {
    background-color: #000;
}
#fv__bg {
    background: url(img/bg_movie.webp) no-repeat center center;
	background-size: cover;
	height: inherit;
	position: relative;
	overflow: hidden;
}

.fv__slide {
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    will-change: filter, opacity, transform;
}
.fv__inner {
    width: 100%;
    height: 100%;
    position: relative;
}
.fv__copy {
    position: absolute;
}
#f_s01 {
    opacity: 1;
    visibility: visible;
    z-index: 1;
}
#f_s02 { z-index: 2; }
#f_s03 { z-index: 3; }
#f_s04 { z-index: 4; }
@media screen and (max-width: 540px) {
    /* #fv__indicator {
        top: calc(50% + ((50% - (73vh / 2)) / 2));
        bottom: auto;
    } */
    .fv__slide {
        height: 73vh;
    }
}

/* f_s01 */
#kv-copy_01 {
    width: 59.5%;
    top: 0;
    right: 0;
}
#kv-copy_02 {
    width: 59.5%;
    left: 6.04%;
    bottom: 8.1vh;
}
@media screen and (max-width: 540px){
    #kv-copy_01 {
        width: 100%;
        top: 4.72%;
    }
    #kv-copy_02 {
        width: 100%;
        left: 0;
        bottom: auto;
        top: 65.3%;
    }
    #kv-copy_02_sp {
        width: 87.5%;
        left: 0;
        top: 30.6%;
    }
}

/* f_s02 */
#kv-copy_03 {
    width: 62.125%;
    top: 17vh;
    right: 15.09%;
}
#kv-copy_04 {
    width: 60.47%;
    bottom: 31.56vh;
    right: 7.515%;
}
@media screen and (max-width: 540px) {
    #kv-copy_03 {
        width: 100%;
        right: auto;
        left: 0;
        top: 4.928%;
    }
    #kv-copy_03_sp {
        width: 72%;
        right: 0;
        top: 28.54%;
    }
    #kv-copy_04 {
        width: 78.66%;
        right: 0;
        left: 0;
        margin: auto;
        bottom: auto;
        top: 65.3%;
    }
}

/* f_s03 */
#kv-copy_05 {
    width: 56.2%;
    top: 10.72vh;
    right: 16.018%;
}
#kv-copy_06 {
    width: 56.16%;
    top: 25.78vh;
    right: 6.11%;
}
#kv-copy_07 {
    width: 56.2%;
    left: 7.08%;
    bottom: 23.39vh;
}
@media screen and (max-width: 540px) {
    #kv-copy_05 {
        width: 84.8%;
        top: -3.928%;
        right: 0;
        left: 0;
        margin: auto;
    }
    #kv-copy_06 {
        width: 100%;
        top: 34.48%;
        right: 0;
        left: 0;
        margin: auto;
    }
    #kv-copy_07 {
        width: 96.53%;
        left: 0;
        bottom: auto;
        top: 67.7%;
    }
}

/* f_s04 */
#kv-cover {
    width: 67%;
    height: fit-content;
    top: 18.5%;
    left: 10%;
}
#kv-copy_08 {
    width: 31.2%;
    top: 13.07vh;
    right: 8.66%;
}
#kv-copy_09 {
    width: 37.40%;
    top: 25vh;
    right: 8.5%;
}
#kv-copy_10 {
    width: 37.5%;
    bottom: 36.2vh;
    right: 8.42%;
}
#kv-copy_11 {
    width: 31.66%;
    bottom: 25.16vh;
    right: 8.42%;
}
@media screen and (max-width: 540px) {
    #f_s04.fv__slide {
        height: 79vh;
    }
    #f_s04 .fv__copy {
        position: static;
    }
    .fv__flex {
        width: 77%;
        display: flex;
        flex-direction: column;
        align-items: center;
        position: absolute;
        top: 0px;
        left: 0;
        right: 0;
        margin: auto;
    }
    #kv-cover {
        width: 131.21svh;
        max-width: 224.4%;
        margin: 0 -23% -36% 50%;
    }
    #kv-copy_08 {
        width: 32.21svh;
        max-width: 75%;
        margin-right: auto;
        margin-bottom: 10px;
    }
    #kv-copy_09 {
        width: 100%;
        max-width: 100%;
        margin-bottom: 10px;
    }
    #kv-copy_10 {
        width: 100%;
        max-width: 100%;
        margin-bottom: 4px;
    }
    #kv-copy_11 {
        width: 100%;
        max-width: 100%;
    }
}

/* about */
#about {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: transparent;
    opacity: 0;
    visibility: hidden;
    z-index: 11;
    overflow: hidden;
    padding: 160px 0;
}
.about__text {
    color: #000;
    font-size: var(--fs_42);
    font-size: min(2.5vw,42px);
    font-weight: 900;
    position: relative;
    z-index: 13;
}
.about__text + .about__text {
    margin-top: 60px;
}
#about .loop_wrap {
    height: 272px;
    position: absolute;
    top: 0;
    left: 0;
}
#about .loop_wrap2 {
    top: 302px;
}
#about .loop_wrap3 {
    top: 604px;
}
@media screen and (max-width: 820px) {
    #about {
        padding: 80px 0;
    }
    .about__text {
        font-size: 20px;
    }
    .about__text + .about__text {
        margin-top: 30px;
    }
    #about .loop_wrap {
        height: 168px;
    }
    #about .loop_wrap div {
        width: 1549px;
    }
    #about .loop_wrap2 {
        top: calc(30% + 30px);
    }
    #about .loop_wrap3 {
        top: calc(60% + 30px);
    }
}

/* recommended */
#recommended {
    color: #FFF;
    display: flex;
    align-items: center;
    background: #000;
    padding: 160px 0;
}
.recommended__title {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    column-gap: 50px;
    margin-bottom: 60px;
}
.recommended__title--ja {
    font-size: min(2.4vw,44px);
    font-weight: 900;
    line-height: 1.3;
    position: relative;
}
.recommended__title--ja::after {
    display: block;
    content: "";
    width: 32px;
    height: 32px;
    background: url(img/arrow.webp) center/contain no-repeat;
    position: absolute;
    right: 0;
    bottom: 8px;
}
.recommended__title--en {
    font-size: min(8.6vw,136px);
    font-family: 'Roboto',sans-serif;
    line-height: 1;
    opacity: 0.3;
}
.recommended__item dt {
    margin-bottom: 30px;
}
.recommended__item dt img {
    width: 110px;
}
.recommended__item dt figcaption {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.4;
    margin-top: 20px;
}
.recommended__item dd {
    font-size: 20px;
    font-weight: 700;
}
@media screen and (max-width: 820px) {
    #recommended.wrapper {
        height: auto;
    }
    #recommended {
        display: block;
        padding: 80px 0;
    }
    .recommended__title {
        flex-wrap: wrap;
        margin-bottom: 30px;
    }
    .recommended__title--ja {
        font-size: 33px;
    }
    .recommended__title--ja::after {
        right: -40px;
        bottom: 4px;
    }
    .recommended__title--en {
        font-size: 45px;
    }
    .recommended__item dt {
        margin-bottom: 20px;
    }
    .recommended__item dt img {
        width: 90px;
    }
    .recommended__item dt figcaption {
        font-size: 18px;
        margin-top: 15px;
    }
    .recommended__item dd {
        font-size: 14px;
    }
}


/* area */
.area {
    padding: 160px 0;
}
#area1 {
    overflow: hidden;
}
#area1, #area3 {
    color: #000;
}
#area2, #area4 {
    color: #FFF;
    background: #000;
}
#area1 .area__title {
    margin: 100px 0 40px;
}
#area1 .loop_wrap {
    align-items: flex-start;
}
#area1 .loop_wrap div {
    height: 100%;
}
#area1 .loop_wrap div:nth-child(odd) {
    animation: area_loop 50s -25s linear infinite;
}
#area1 .loop_wrap div:nth-child(even) {
    animation: area_loop2 50s linear infinite;
}
@keyframes area_loop {
    0% {
        transform: translateX(100%);
    }
    to {
        transform: translateX(-100%);
    }
}
@keyframes area_loop2 {
    0% {
        transform: translateX(0%);
    }
    to {
        transform: translateX(-200%);
    }
}
#area2 .area__title {
    margin-bottom: 88px;
}
#area3 .area__title {
    margin-bottom: 80px;
}
#area4 .area__title,
#area3 .area__title {
    margin-bottom: 40px;
}
#area3 .area__title {
    letter-spacing: -0.06em;
}
.area__title {
    letter-spacing: 0.03em;
}
.area__title--sub {
    display: block;
    font-size: var(--fs_28);
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 20px;
}
.area__title--main {
    font-size: var(--fs_42);
    font-weight: 900;
    line-height: 1.6;
}
.area__text {
    font-size: var(--fs_20);
    font-weight: 700;
    line-height: 2;
}
.area__text + .area__text {
    margin-top: 30px;
}
.area__item {
    text-align: left;
    padding: 60px 40px;
}
.area__item dt {
    font-size: var(--fs_28);
    font-weight: 900;
    margin-bottom: 40px;
}
.area__item dd {
    font-size: 20px;
}
.area__table {
    width: 100%;
    text-align: center;
    border-spacing: 5px;
}
.area__cell1 {
    width: 17.8125%;
}
.area__cell2  {
    width: 40.703125%;
}
.area__table th, .area__table td {
    font-size: var(--fs_20);
    font-weight: 700;
    line-height: 1.4;
    padding: 40px;
}
.area__table th {
    background: var(--sub_g);
}
.area__table td {
    color: #000;
    background: #FFF;
}
@media screen and (max-width: 820px) {
    .area {
        padding: 80px 0;
    }
    #area1 .area__title {
        margin: 60px 0 30px;
    }
    #area1 .loop_wrap div {
        width: 1086px;
    }
    #area2 .area__title {
        margin-bottom: 40px;
    }
    .area__title--sub {
        font-size: 16px;
        margin-bottom: 10px;
    }
    .area__title--main {
        font-size: 24px;
    }
    .area__text {
        font-size: 14px;
    }
    .area__text + .area__text {
        margin-top: 20px;
    }
    .area__item {
        padding: 30px 20px;
    }
    .area__item dt {
        font-size: 18px;
        margin-bottom: 20px;
    }
    .area__item dd {
        font-size: 14px;
    }
    .area__table {
        border-spacing: 1px;
    }
    .area__cell1 {
        width: 22.98%;
    }
    .area__cell2  {
        width: 38.21%;
    }
    .area__table th, .area__table td {
        font-size: 14px;
        padding: 15px 10px;
    }
    .area__table th {
        background: var(--sub_g);
    }
    .area__table th span {
        display: block;
        font-size: 12px;
    }
    .area__table thead th {
        padding: 15px 0;
    }
    .area__table td {
        text-align: left;
    }
}
#area1 .loop_wrap {
    height: 480px;
}
@media screen and (max-width: 820px) {
    #area1 .loop_wrap {
        height: 270px;
    }
}
.toc {
    list-style: none;
    border-bottom: 1px solid #000;
    counter-reset: toc 0;
    margin-bottom: 80px;
}
.toc li {
    padding: 25px 0;
    border-top: 1px solid #000;
    counter-increment: toc 1;
}
.toc li .inner::before {
    content: counter(toc,decimal-leading-zero);
    font-size: min(6.66vw,96px);
    font-family: 'Roboto',sans-serif;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.03em;
    opacity: 0.3;
}
.toc li .inner {
    display: flex;
    align-items: center;
    column-gap: 40px;
}
.toc__title * {
    display: block;
    line-height: 1.4;
    letter-spacing: 0.03em;
}
.toc__main {
    font-size: var(--fs_28);
    font-weight: 900;
    margin-bottom: 10px;
}
.toc__sub {
    font-size: var(--fs_20);
}
@media screen and (max-width: 820px) {
    .toc {
        margin-bottom: 40px;
    }
    .toc li {
        padding: 10px 0 20px;
    }
    .toc li .inner::before {
        display: block;
        font-size: 60px;
        margin-bottom: 5px;
    }
    .toc li .inner {
        flex-direction: column;
        align-items: flex-start;
    }
    .toc__main {
        font-size: 18px;
    }
    .toc__sub {
        font-size: 14px;
    }
}
.prof {
    font-size: var(--fs_20);
    line-height: 2;
}
.prof__top {
    padding-bottom: 80px;
    position: relative;
}
.prof__top::after {
    display: block;
    content: "";
    width: 32.5%;
    padding-top: 34.7%;
    background: url(img/profile_pc.webp) center/contain no-repeat;
    position: absolute;
    right: 21px;
    bottom: 0;
}
.prof__name,.prof__desc {
    position: relative;
    z-index: 1;
}
.prof__name {
    font-weight: 700;
    margin-bottom: 30px;
}
.prof__bottom {
    padding: 50px 80px;
    background: var(--sub_g);
    position: relative;
}
.prof__bottom dt {
    font-weight: 900;
    line-height: 1.4;
    margin-bottom: 40px;
}
@media screen and (max-width: 820px) {
    .prof {
        font-size: 14px;
    }
    .prof__top {
        padding-bottom: 40px;
    }
    .prof__top::after {
        width: 59.7%;
        padding-top: 72%;
        background-image: url(img/profile_sp.webp);
        top: -40px;
        bottom: auto;
        right: -6.335vw;
    }
    .prof__name {
        margin-bottom: 40px;
    }
    .prof__bottom {
        padding: 30px 20px;
    }
    .prof__bottom dt {
        margin-bottom: 20px;
    }
}


/* ------------------------------
    outro
------------------------------ */
#outro {
    text-align: center;
    padding: 160px 0;
    background: var(--primary_y);
    position: relative;
    overflow: hidden;
}
.outro__lead,.outro__text {
    position: relative;
    z-index: 1;
}
.outro__lead {
    font-size: min(4.3vw,62px);
    font-weight: 900;
    line-height: 1.6;
    margin-bottom: 30px;
}
.outro__text {
    font-size: var(--fs_20);
    line-height: 2;
}
#outro .loop_wrap {
    height: 272px;
    position: absolute;
    top: 0;
    left: 0;
}
#outro .loop_wrap2 {
    top: 302px;
}
#outro .loop_wrap3 {
    top: 604px;
}
@media screen and (max-width: 820px) {
    #outro {
        padding: 80px 0;
    }
    #outro .inner {
        width: 91.2vw;
    }
    .outro__lead {
        font-size: 28px;
        margin-bottom: 20px;
    }
    .outro__text {
        font-size: 14px;
    }
}

/* ------------------------------
    cta
------------------------------ */
#cta {
    padding: 160px 0;
    background: #000;
    overflow: hidden;
    will-change: transform;
}
.cta__outer {
    width: 100%;
}
.cta__inner {
    width: 70.39vw;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin: 0 auto 100px;
    position: relative;
}
#cta-cover {
    width: 94%;
    position: absolute;
    left: -10%;
    top: 6%;
}
#cta-cover figure {
    width: 100%;
    margin: 0;
}
#cta-cover figure img {
    width: 100%;
    height: auto;
    display: block;
}
.cta__copy {
    width: 53.33%;
    position: relative;
}
#cta-copy_a {
    width: 83.11%;
    margin-left: auto;
    margin-bottom: 15px;
}
#cta-copy_b {
    width: 100%;
    margin-bottom: 54px;
}
#cta-copy_c {
    width: 100%;
    margin-bottom: 9px;
}
#cta-copy_d {
    width: 84.33%;
    margin-left: auto;
}
@media screen and (max-width: 820px) {
    #cta {
        display: block;
        padding: 80px 0;
    }
    .cta__inner {
        width: 78.66vw;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        margin-bottom: 40px;
    }
    #cta-cover {
        width: 216.6%;
        flex-shrink: 0; /* Flexbox内で縮小されないようにする */
        max-width: none; /* 親の幅制限を受けないようにする */
        margin: 0px 0 -32% -23%;
        position: static;
    }
    
    .cta__copy {
        width: 100%;
    }
    #cta-copy_a {
        width: 69.15%;
        margin-left: 0;
        margin-bottom: 8px;
    }
    #cta-copy_b {
        width: 91.5%;
        margin-bottom: 10px;
    }
    #cta-copy_c {
        width: 92.2%;
        margin-bottom: 10px;
    }
    #cta-copy_d {
        width: 91.5%;
        margin-left: 0;
    }
}

/* footer */
footer {
    font-family: "Montserrat","Noto Sans JP", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo",sans-serif;
    background: #F0F0F0;
    position: relative;
    z-index: 1;
}
.l-4ad__info h2 {
    text-align: left;
    margin-bottom: 50px;
}
.l-4ad__info h2 img {
    max-width: 120px;
    margin-bottom: 30px;
}
.l-4ad__info h2 span {
    display: block;
    font-size: 16px;
}
.l-4ad__address {
    font-size: 16px;
    margin-bottom: 50px;
}
.l-4ad__sns {
    display: flex;
    column-gap: 15px;
}
.l-4ad__sns li {
    width: 40px;
    transition: 0.3s;
}
/* button */
.c-button {
    display: block;
    width: 250px;
    height: 62px;
    color: #000;
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;
    background: transparent;
    position: relative;
}
.c-button__circle {
    display: inline-block;
    width: 62px;
    height: 62px;
    background: #FFF;
    border-radius: 47px;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    transition: 0.3s;
    box-shadow: 0px 0px 10px 5px rgba(0,0,0,0.1);
}
.c-button__icon {
    display: inline-block;
    position: relative;
    width: 100%;
    height: 100%;
}
.c-button__icon:before, .c-button__icon:after {
    display: inline-block;
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    transition: 0.3s;
}
.c-button__icon:before {
    width: 12px;
    height: 12px;
    border-top: 2px solid #000;
    border-right: 2px solid #000;
    transform: rotate(45deg);
    left: 21px;
}
.c-button__icon:after {
    width: 20px;
    height: 2px;
    background: #000;
    left: 21px;
    opacity: 0;
}
.c-button__text {
    width: fit-content;
    height: fit-content;
    color: #FFF;
    line-height: 1.4em;
    padding-left: 2rem;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    z-index: 1;
}
.l-footer {
    color: #FFF;
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
	justify-content: center;
    border-top: 1px solid #FFF;
    background: #000;
	position: relative;
}
.l-footer__wrap {
    width: 80%;
    display: flex;
    justify-content: space-between;
    margin-top: 4rem;
}
.l-footer__left {
    width: 35%;
    max-width: 422px;
}
.l-footer__right {
    width: 57%;
    max-width: 680px;
}
.l-footer__text {
    padding-bottom: 80px;
    margin-bottom: 60px;
    border-bottom: 1px solid #6D6D6D;
}
.l-footer__text p {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 50px;
}
.l-footer__nav ul {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 10px 50px;
}
.l-footer__nav ul li a {
    color: #FFF;
    font-size: 14px;
}
.l-footer__nav ul li a[target="_blank"]:after {
    display: inline-block;
    content: "";
    width: 15px;
    height: 15px;
    background: url(https://4ad.members.co.jp/wp-content/themes/twentyseventeen/img/icon_blank.svg) center/contain no-repeat;
    margin-left: 10px;
}
.c-copyright {
    font-size: 16px;
    text-align: center;
    position: absolute;
    bottom: 1rem;
}
@media (hover: hover) {
    .l-footer__nav ul li a:hover {
        text-decoration: underline;
    }
    .c-button:hover {
        color: #FFF;
        text-decoration: none;
    }
    .c-button:hover .c-button__circle {
        width: 100%;
        transition: 0.3s;
    }
    .c-button:hover .c-button__icon:before,
    .c-button:hover .c-button__icon:after {
        transition: 0.3s;
    }
    .c-button:hover .c-button__icon:before {
        left: 36px;
    }
    .c-button:hover .c-button__icon:after {
        opacity: 1;
        left: 30px;
    }
    .c-button:hover .c-button__text {
        color: #FFF;
    }
    .c-button--w .c-button:hover {
        color: #FFF;
    }
    .c-button--w:hover .c-button__text {
        color: #000;
    }
}
@media screen and (max-width: 820px) {
    .l-4ad__info h2 {
        margin-bottom: 30px;
    }
    .l-4ad__info h2 img {
        width: 80px;
        margin-bottom: 20px;
    }
    .l-4ad__info h2 span {
        font-size: 12px;
        font-weight: normal;
    }
    .l-4ad__address {
        font-size: 12px;
        margin-bottom: 30px;
    }
    .l-footer {
        padding: 80px 0;
        height: auto;
    }
    .l-footer__wrap {
        flex-direction: column-reverse;
        margin-bottom: 100px;
    }
    .l-footer__left, .l-footer__right {
        width: 100%;
    }
    .l-footer__text {
        padding-bottom: 40px;
        margin-bottom: 40px;
    }
    .l-footer__text p {
        font-size: 14px;
        margin-bottom: 20px;
    }
    .l-footer__nav {
        padding-bottom: 40px;
        margin-bottom: 40px;
        border-bottom: 1px solid #6D6D6D;
    }
    .l-footer__nav ul {
        flex-direction: column;
        row-gap: 15px;
    }
    .l-footer__nav ul li a {
        font-size: 14px;
    }
}

.modal {
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 15;
    display: none;
}
.modal.is-active {
    display: block;
}
.modal__bg {
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.8);
    position: absolute;
    top: 0;
    left: 0;
}
.modal__box {
    width: 73.6%;
    max-width: 1060px;
    padding: 120px 0;
    background: #FFF;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    z-index: 11;
}
.modal__item {
    text-align: center;
}
.modal__item p {
    color: #000;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 30px;
}
.modal__button {
    display: flex;
    justify-content: center;
    column-gap: 60px;
}
.modal__button .cv__button {
    margin: 0 !important;
}
.modal__close {
    width: 30px;
    height: 30px;
    position: absolute;
    right: 15px;
    top: -45px;
}
.modal__close > span {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    cursor: pointer;
}
.modal__close > span::before,
.modal__close > span::after {
    display: block;
    content: "";
    width: 100%;
    height: 4px;
    background: #FFF;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
}
.modal__close > span::before {
    transform: rotate(45deg)
}
.modal__close > span::after {
    transform: rotate(-45deg);
}
@media screen and (max-width: 820px) {
    .modal__box {
        width: 90%;
        max-width: 375px;
        padding: 60px 0;
    }
    .modal__item p {
        font-size: 24px;
    }
    .modal__button {
        flex-direction: column;
        align-items: center;
        row-gap: 20px;
    }
    .modal__close {
        width: 25px;
        height: 25px;
    }
}

/* mouse */
#stkr{
    position: fixed;
    top: 0px;
    left: 0px;
    width: 30px;
    height: 30px;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 50%;
    transition: 0.2s;
    transition-timing-function: ease-out;
    pointer-events: none;
    z-index: 225;
}
#stkr > span {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    color: #FFF;
    font-size: 3px;
    font-family: "Montserrat","Noto Sans JP", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo",sans-serif;
    text-align: center;
    opacity: 0;
}
@media screen and (max-width: 1024px) {
    #stkr {
        display: none !important;
    }
} 