@charset "utf-8";

/* ==========================================
cover
========================================== */

.cover {
    position: relative;
}

.cover:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 50%;
    background: var(--white);
    z-index: -1;
}

.cover-frame {
    max-width: 188rem;
    width: 97.92%;
    position: relative;
    overflow: hidden;
}

.cover-frame:after {
    content: "";
    position: absolute;
    top: 50%;
    left: 10%;
    margin: auto;
    max-width: 121.3rem;
    width: 63.18%;
    height: 100%;
    background: radial-gradient(circle closest-side,rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
    aspect-ratio: 1 / 1;
    z-index: 1;
    transition: all .3s;
}

.cover-img-block {
    position: relative;
    width: 100%;
    aspect-ratio: 1880 / 860;
    /* overflow: hidden; */
}

.cover-img-block:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    margin: auto;
    width: 51.56%;
    height: 100%;
    background: linear-gradient(90deg,rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
	z-index: 1;
	transition: all .3s;
}

.main-visual-img-pc {
    display: block;
}

.main-visual-img-sp {
    display: none;
}

.cover-title-block {
    position: absolute;
    bottom: 10rem;
    left: 14rem;
    z-index: 5;
}

.cover-sub-title {
    justify-content: flex-start;
    font-weight: 500;
}

.cover-text-box {
    margin: 4rem 0 0;
    font-size: 2rem;
}

.cover-text-box p span {
    font-size: 2.5rem;
    font-weight: 600;
    position: relative;
}

.cover-text-box p span:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background: var(--primary01);
}



/* ==========================================
top01
========================================== */

.top01 {
    padding: 8.4rem 0 0;
}

.top01-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.top01-left {
    max-width: 95rem;
    width: 51.63%;
    padding: 0 0 5rem;
    position: relative;
}

.top01-left:after {
    content: "";
    position: absolute;
    left: 6.2rem;
    bottom: 0;
    width: 88.42%;
    height: 88.6%;
    background: url(../../../../uploads/top_message_bg.svg)no-repeat center /contain;
    z-index: -1;
}

.top01-img-box {
    max-width: 84rem;
    width: 96%;
    margin: 2.5rem 0 0 auto;
}

.top01-left .deco-en-title100 {
    position: absolute;
    top: 0;
    left: 0;
    transform: rotate(-15deg);
    z-index: 1;
}

.top01-illust01 {
    position: absolute;
    max-width: 12.8rem;
    width: 17%;
    right: 5rem;
    bottom: 0;
    transform: rotate(15deg);
}

.top01-right {
    max-width: 77rem;
    width: 41.85%;
}

.top01-text-box, .top01-right .btn01 {
    margin: 6rem 0 0;
}

.top01-text-box {
    font-size: 2rem;
}

.top01-text-box p strong {
    font-size: 2.2rem;
}

/* ==========================================
top02
========================================== */

.top02 {
    padding: 12rem 0 0;
}

.top02-grid  {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin: 6rem auto 0;
}

.top02-text-block  {
    padding: 3rem 1.5rem 5rem;
    color: #E2E6ED;
}

.top02-text-block-in  {
    max-width: 34.5rem;
    width: 100%;
}

.top02-text-block-in p {
    font-weight: 500;
}

.top02-text-box {
    margin: 3rem auto 0;
}

.top02-text-box {
    margin: 3rem auto 0;
    line-height: 1.862;
}

.top02-text-box p strong {
    color: var(--white);
    font-size: 2rem;
}

/* ==========================================
top03
========================================== */

.top03 {
    padding: 15rem 0 0;
}

.top03-main01 {
    margin: 6rem auto 0;
}

.top03 .contents05 {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.top03-left-row {
    display: flex;
    align-items: flex-end;
    max-width: 126rem;
    width: 73.26%;
}

.top03-left {
    position: absolute;
    width: 100%;
    left: 0;
    bottom: 8rem;
    z-index: 11;
    max-width: max-content;
}

.top03-icon01 {
    max-width: 12rem;
    width: 70%;
}

.top03-left h2 {
    margin: 3rem 0 0;
}

.top03-text-box01 {
    margin: 3rem 0 0;
}

.top03-text-box01 p {
    font-size: 2.5rem;
    line-height: 1.42;
}

.top03-right {
    max-width: 1000px;
    width: 100%;
    margin: 0 0 0 auto;
    position: relative;
}

.top03-main01 .top03-right {
    aspect-ratio: 1000 / 697;
}

.top03-right figure {
    width: 100%;
    height: 100%;
}

.top03-right figure img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.top03-right:before,.top03-right:after {
    content: "";
    position: absolute;
    margin: auto;
    width: 30%;
    height: 100%;
	z-index: 1;
	transition: all .3s;
}

.top03-main01 .top03-right:before {
    top: 0;
    left: 0;
    background: linear-gradient(90deg, rgba(35, 59, 108, 1) 0%, rgba(35, 59, 108, 0) 100%);
}

.top03-main01 .top03-right:after {
    top: 0;
    right: 0;
    background: linear-gradient(270deg, rgba(35, 59, 108, 1) 0%, rgba(35, 59, 108, 0) 100%);
}

.top03-right-text-block {
    max-width: 60rem;
    width: 100%;
    position: absolute;
    right: 0;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 10%);
    z-index: 10;
}

.top03-main01 .top03-right-text-block {
    padding: 8rem 1.5rem;
}

.top03-text-box02 {
    max-width: 50rem;
    width: 100%;
    margin: 3rem auto 0;
}

.top03-right-text-block .btn01 {
    max-width: 26.9rem;
    margin: 3rem auto 0;
}

.top03-main02 {
    border: .5rem solid var(--primary);
}

.top03-main02 .top03-right {
    aspect-ratio: 1000 / 500;
}

.top03-main02 .top03-right:before {
    top: 0;
    left: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
}

.top03-main02 .top03-right:after {
    top: 0;
    right: 0;
    background: linear-gradient(270deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
}

.top03-main02 .top03-right-text-block {
    padding: 4rem 1.5rem;
}

.top03-text-box02 p strong {
    font-size: 2rem;
}

/* ==========================================
top04
========================================== */

.top04 {
    padding: 15rem 0 0;
}

.top04-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.top04-btn {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    max-width: 64rem;
    width: 48.48%;
    aspect-ratio: 64 / 16;
    padding: 1em 1.5rem 1rem 3rem;
    border: 1px solid var(--white);
    transition: all .3s;
}

.top04-btn-in {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    width: 80%;
}

.top04-btn-in p {
    flex: 1;
    justify-content: flex-start;
}

.top04-btn::after {
	content: "";
	display: block;
	width: 4.5rem;
	height: 4.5rem;
    position: absolute;
    top: 50%;
    right: 4rem;
    transform: translateY(-50%);
	background: url(../../../../uploads/arrow01_primary.svg)no-repeat center /contain;
	transition: all .3s;
}

.top04-btn:hover  {
    border: 1px solid var(--primary01);
    transition: all .3s;
}

/*.top04-btn:hover::after  {
    right: 3rem;
}*/

.top04-icon {
    position: relative;
    padding: 0 3rem 0 0;
    margin: 0 3rem 0 0;
}

.top04-icon:after {
    content:"";
    display: block;
    width: 1px;
    height: 5rem;
    border: 1px dashed var(--primary01);
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}

.top04-icon01 {
    max-width: 13rem;
    width: 32%;
}

.top04-icon02 {
    max-width: 113rem;
    width: 23.9%;
}

.top04-bottom {
    position: relative;
    padding: 5.1rem 1.5rem 6.2rem;
    margin: 4rem auto 0;
}

.top04-bottom-row {
    max-width: 116rem;
    width: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    z-index: 5;
}

.top04-bottom-left {
    max-width: 69rem;
    width: 59.48%;
    margin: 0 1rem 0 0;
}

.top04-bottom-text-box {
    margin: 3rem 0 0;
}

.top04-bottom-right {
    max-width: 42.3rem;
    width: 36.47%;
}

.top04 .btn02-contact {
    max-width: none;
    width: 100%;
    padding: 2rem 2rem 1.95rem 1rem;
    font-size: 2rem;
    font-weight: 500;
}

.top04 .btn02-contact p br {
    display: none;
}

.top04 .btn02-tel {
    max-width: none;
    width: 100%;
    padding: .5rem 2rem 1.2rem 1rem;
    text-align: center;
    margin: 2rem 0 0;
}

.top04-bottom .deco-en-title100 {
    position: absolute;
    top: 3%;
    right: 19.5%;
    transform: rotate(-10deg);
    width: max-content;
    z-index: 1;
}


/* ==========================================
top05
========================================== */

.top05 {
    padding: 15rem 0 12rem;
}

.top05-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 8rem auto 0;
}

.top05-row .banner-link {
    width: 48%;
}

.top05-row .link-text-box {
    width: 80%;
    height: 80%;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    top: auto;
    bottom: 4rem;
    left: 5rem;
    text-align: left;
    margin: 0;
}

.top05-title-box {
    display: flex;
    align-items: center;
    justify-content: center;
}

.top05-title-box .marker-primary04 strong {
    color: var(--primary);
    padding: 0;
    background-size: 85% 100%;
}

.top05-text-box {
    text-align: center;
    margin: 4rem auto 0;
}

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (width <=1550px) {

	/* ==========================================
	top03
	========================================== */

    .top03-right {
        width: 88%;
    }

    .top03-text-box01 p {
        font-size: 2rem;
    }

	/* ==========================================
	top04
	========================================== */

    .top04-icon01 {
        width: 23.5%;
    }

    .top04-icon02 {
        width: 23.5%;
    }

}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (width <=1024px) {

    /* ==========================================
	cover
	========================================== */

    .cover-frame {
        width: 98.5%;
    }

    .cover-title-block {
        bottom: 2rem;
        left: 5rem;
    }

    /* ==========================================
	top01
	========================================== */

    .top01-left {
        width: 43%;
    }

    .top01-left:after {
        left: 0;
    }

    .top01-right {
        width: 53.5%;
    }

    .top01-text-box {
        font-size: 1.55rem;
    }

    .top01-text-box p strong {
        font-size: 1.8rem;
    }

    .top01-img-box {
        width: 98%;
    }

    .top01-illust01 {
        right: 2rem;
    }

	/* ==========================================
	top02
	========================================== */

    .top02-text-block-in .title30 {
        font-size: 2.35rem;
    }

	/* ==========================================
	top03
	========================================== */

    .top03-left-row {
        max-width: max-content;
    }

    .top03-text-box01 p {
        font-size: 1.7rem;
    }

    .top03-text-box02 p {
        font-size: 1.6rem;
    }

    .top03-text-box02 p strong {
        font-size: 1.8rem;
    }

    .top03-text-box02 {
        margin: 2.5rem auto 0;
    }

    .top03-right-text-block .btn01 {
        margin: 2.5rem auto 0;
    }

    .top03-main01 .top03-right:before {
        width: 40%;
    }

    .top03-main01 .top03-right-text-block {
        padding: 3rem 1.5rem;
    }

    .top03-main01 .top03-right, .top03-main02 .top03-right {
        aspect-ratio: 800 / 550;
    }

    .top03-main02 .top03-right-text-block {
        padding: 4rem 1.5rem;
    }

    .top03-right-text-block {
        width: 52%;
    }

    .top03-right:before {
        width: 65%;
    }

    
	/* ==========================================
	top04
	========================================== */

    .top04-bottom-right {
        width: 50%;
    }

    .top04-bottom-left {
        width: 48%;
    }

}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (width <=768px) {

    /* ==========================================
    cover
    ========================================== */

    .main-visual-img-pc {
        display: none;
    }

    .main-visual-img-sp {
        display: block;
    }

    .cover-frame {
        width: 95%;
    }

    .cover-frame:after {
        top: auto;
        bottom: 0;
        left: 0;
        height: 40%;
    }

    .cover-img-block:before {
        content: "";
        position: absolute;
        top: auto;
        left: 0;
        bottom: 0;
        margin: auto;
        width: 100%;
        height: 90%;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.72) 45%, rgba(255, 255, 255, 1) 72%, rgba(255, 255, 255, 1) 100%);
        z-index: 1;
        transition: all .3s;
    }

    .cover-title-block {
        bottom: 12rem;
    }


    .cover-img-block {
        aspect-ratio: 800 / 1000;
        /* overflow: hidden; */
    }

    /* ==========================================
    top01
    ========================================== */

    .top01-row {
        flex-direction: column;
    }

    .top01-left, .top01-right {
        width: 100%;
    }

    .top01-right {
        margin: 6rem auto 0;
    }

    .top01-left:after {
        left: 0;
    }

    .top01-right .title40 {
        text-align: center;
    }

    .top01-text-box, .top01-right .btn01 {
        margin: 4.4rem auto 0;
    }

    .top01-text-box {
        font-size: 2rem;
    }

    .top01-text-box p strong {
        font-size: 2.2rem;
    }

    /* ==========================================
    top02
    ========================================== */

    .top02 {
        padding: 10rem 0 0;
    }

    .top02-grid  {
        grid-template-columns: repeat(2, 1fr);
    }

    /* ==========================================
    top03
    ========================================== */

    .top03 {
        padding: 10rem 0 0;
    }

    .top03 .area {
        padding: 0 0 1.5rem;
    }

    .top03 .contents05 {
        flex-direction: column;
        align-items: flex-end;
    }

    .top03-left {
        top: 10%;
        left: 5%;
        bottom: auto;
    }

    .top03-main01 .top03-right,.top03-main02 .top03-right {
        aspect-ratio: 780 / 600;
    }

    .top03-main01 .top03-right-text-block {
        margin: 5.5rem auto 0;
        padding: 6.59rem 1.5rem;
    }

    .top03-main01 .top03-right:after {
        width: 100%;
        height: 30%;
        top: auto;
        bottom: 0;
        right: 0;
        background: linear-gradient(0deg, rgba(35, 59, 108, 1) 0%, rgba(35, 59, 108, 0) 100%);
    }

    .top03-main02 .top03-right:after {
        width: 100%;
        height: 30%;
        top: auto;
        bottom: 0;
        right: 0;
        background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
    }

    .top03-right-text-block {
        max-width: 76rem;
        width: 92%;
        position: static;
        margin: 2.5rem auto 0;
        box-shadow: 2px 2px 10px rgba(0, 0, 0, 10%);
    }

    .top03-text-box01 p {
        font-size: 1.8rem;
    }

    .top03-text-box02 {
        width: 90%;
    }

    /* ==========================================
    top04
    ========================================== */

    .top04 {
        padding: 10rem 0 0;
    }

    .top04-row {
        flex-direction: column;
    }

    .top04-bottom, .top04-btn:nth-child(n+2) {
        margin: 2.5rem auto 0;
    }

    .top04-bottom .deco-en-title100 {
        top: 10%;
        right: 3.5%;
    }

    .top04-bottom-row {
        flex-direction: column;
    }

    .top04-btn {
        max-width: 71rem;
        width: 100%;
    }

    .top04-icon:after {
        content:none;
    }

    .top04-bottom-left, .top04-bottom-right {
        width: 100%;
    }

    .top04-bottom-left {
        text-align: center;
    }

    .top04-bottom-text-box {
        margin: 2.2rem auto 0;
        text-align: center;
    }

    .top04-bottom-right {
        margin: 3.3rem auto 0;
    }


	/* ==========================================
	top05
	========================================== */

    .top05 {
        padding: 10rem 0;
    }

    .top05-title-box {
        flex-direction: column;
        text-align: center;
    }

    .top05-row {
        flex-direction: column;
    }

    .top05-row .banner-link {
        width: 100%;
    }

    .top05-row .banner-link:nth-child(n+2) {
        margin: 4rem auto 0;
    }


}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (width <=576px) {

    
    /* ==========================================
    cover
    ========================================== */

    .cover-img-block {
        aspect-ratio: 800 / 1200;
        /* overflow: hidden; */
    }

    .cover-img-block:before {
        background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.75) 55%, rgba(255, 255, 255, 1) 72%, rgba(255, 255, 255, 1) 100%);
    }

    .cover-title-block {
        bottom: 4rem;
        left: 2rem;
    }

    .cover-title {
        font-size: 3.5rem;
        line-height: 1.2;
    }

    .cover-text-box p span {
        font-size: 1.8rem;
    }

    .cover-text-box {
        margin: 2rem 0 0;
    }

    /* ==========================================
    top01
    ========================================== */

    .top01-illust01 {
        width: 25%;
        right: 0;
    }

    .top01-text-box {
        font-size: 1.65rem;
    }

    .top01-text-box p strong {
        font-size: 2rem;
    }

    /* ==========================================
    top02
    ========================================== */

    .top02 {
        padding: 8.8rem 0 0;
    }

    .top02 .area {
        padding: 0 2rem;
    }

    .top02-grid  {
        grid-template-columns: repeat(1, 1fr);
        padding: 0 1rem;
    }

    .top02-text-block {
        padding: 2.3rem 1.5rem 2.3rem;
    }

    .top02-text-block-in {
        margin: 0 auto;
    }

    .top02-text-box {
        margin: 2.3rem auto 0;
    }

    .top02-text-box p strong {
        font-size: 1.65rem;
    }


    /* ==========================================
    top03
    ========================================== */

    .top03 {
        padding: 8.8rem 0 0;
    }

    .top03-main01 {
        margin: 3.3rem auto 0;
    }

    .top03-left {
        top: 5%;
        left: 5%;
        bottom: auto;
    }

    .top03-icon01 {
        width: 18%;
    }

    .top03-text-box01 {
        margin: 1rem 0 0;
    }

    .top03-left h2 {
        margin: 1rem 0 0;
    }

    .top03-text-box01 p {
        font-size: 1.65rem;
        line-height: 1.45;
    }
    
    .top03-right-text-block .btn01 {
        max-width: 21.5rem;
    }

    .top03-text-box02 p strong {
        font-size: 1.65rem;
    }


    /* ==========================================
    top04
    ========================================== */

    .top04 {
        padding: 8.8rem 0 0;
    }

    .top04-btn {
        padding: 1rem 1.5rem;
    }

    .top04-btn::after {
        width: 3.5rem;
        height: 3.5rem;
        right: 2rem;
    }

    .top04-icon01 {
        padding: 0;
        margin: 0 1rem 0 0;
        width: 23.5%;
    }

    .top04-icon02 {
        margin: 0 1.15rem 0;
    }

    .top04-bottom, .top04-btn:nth-child(n+2) {
        margin: 1.7rem auto 0;
    }

    .top04-bottom {
        padding: 4.4rem 2.2rem;
    }

    .top04 .btn02-contact p br {
        display: block;
    }

    .top04 .btn02-contact {
        font-size: 1.7rem;
    }

    /* ==========================================
    top05
    ========================================== */

    .top05 {
        padding: 8.8rem 0;
    }

    .top05-text-box {
        margin: 3.3rem auto 0;
    }

    .top05-row {
        margin: 4.4rem auto 0;
    }

    .top05-row .banner-link:nth-child(n+2) {
        margin: 1.5rem auto 0;
    }

    .top05-row .link-text-box {
        bottom: 1.5rem;
        left: 1.8rem;
    }


}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */

@media screen and (width <=414px) {





}

/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */