@charset "UTF-8";

/* wow customize -----*/
/*対象クラスには必ず animate__animated を付与する*/
/*.wow{ opacity: 0;}
.wow.animated{ opacity: 1;}*/

/* reset ------*/
button, input, optgroup, select, textarea {
	-webkit-appearance: none;
	appearance: none;
	vertical-align: middle;
	color: inherit;
	font: inherit;
	background: transparent;
	padding: 0;
	margin: 0;
	border-radius: 0;
	text-align: inherit;
	text-transform: inherit
}
[type="checkbox"] {
	-webkit-appearance: checkbox;
	appearance: checkbox
}
[type="radio"] {
	-webkit-appearance: radio;
	appearance: radio
}
button, [type="button"], [type="reset"], [type="submit"] {
	cursor: pointer
}
button:disabled, [type="button"]:disabled, [type="reset"]:disabled, [type="submit"]:disabled {
	cursor: default
}
:-moz-focusring {
	outline: auto
}
select:disabled {
	opacity: inherit
}
option {
	padding: 0
}
/* common -----*/
:root{
    --base-color:#664444;
    --point-color:#e95283;
}

body{
    color: var(--base-color);
    font-family: "Noto Sans JP",Verdana,sans-serif;
}
header{
    display: flex;
    align-items: center;
    box-shadow: 0 1px 10px rgba(0,0,0,.1);
    .header-logo{
        display: flex;
        align-items: center;
        top: unset;
        span{
            color: var(--base-color);
        }
    }
}
.footer-nav{
    justify-content: center;
    .footer-nav-inner{
        a{
            color: unset;
        }
    }
}
/* プルダウン全体のラッパー */
.lang{
    display: flex;
    position: absolute;
    right: 0;
    height: 70px;
    justify-content: center;
    align-items: center;
    @media screen and (min-width: 841px) and (max-width: 1220px){
        
    }
    @media screen and (max-width: 840px){
        height:35px;
    }
}
.language-switcher-wrapper {
  display: inline-block;
  position: relative;
  font-family: 'Arial', sans-serif;
  margin: 20px;
    @media screen and (max-width: 840px){
        margin:10px;
    }
}
/* セレクトボックス */
.language-switcher {
  appearance: none; /* デフォルトUIを消す */
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: #f0f0f0;
  color: var(--base-color);
  padding: 10px 40px 10px 16px;
  border: 1px solid #fff;
  border-radius: 6px;
  font-size: 16px;
  cursor: pointer;
  width: fit-content;
    @media screen and (min-width: 841px) and (max-width: 1220px){
        font-size:2vw;
    }
    @media screen and (max-width: 840px){
        padding:3px 30px 3px 16px;
        width:120px;
        font-size:3vw;
    }
}
.language-switcher-wrapper::after {
  content: "▼";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 12px;
  color: var(--point-color);
  pointer-events: none;
}
.language-switcher:hover {
  border-color: var(--point-color);
}
.language-switcher:focus {
  outline: none;
  border-color: #007BFF;
  box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.2);
}

/* entry ---------------------------------------*/

.entrykv-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
	position: relative;
	overflow: hidden;
	padding-top: 70px;
    background: url("../img/bg-sv-map.jpg")no-repeat center center;
    background-size: cover;
    min-height: 749px;
    max-height: 750px;
    background-color:rgba(255,255,255,0.5);
    background-blend-mode:lighten;
    z-index: 10;
    @media screen and (max-width: 840px){
        min-height:680px;
    }
    &::after{
        content: "";
        background: url(../../../assets/img/logo_header.png) center top no-repeat;
        position: absolute;
        right: 0;
        top: 85px;
        display: block;
        width: 210px;
        height: 100%;
        @media screen and (max-width: 840px){
            right:10px;
            top:55px;
            width:120px;
            background-size:contain;
        }
    }
}
.btn{
    display: block;
    margin: 3rem auto 0;
    text-align: center;
    width: fit-content;
    @media screen and (max-width: 840px){
        margin: 0 auto;
    }
    .btn-pink{
        display: block;
        background: var(--point-color);
        padding: 1rem 2rem;
        border-radius: 30px;
        color: #fff;
        font-weight: 600;
    }
}
.entrykv-title img {
	width: calc(100vw/2);
    max-width: 715px;
}

.entrykv-term {
	text-align: center;
}

.entrykv-term-title {
	margin-bottom: 10px;
}

.entrykv-term-text {
    padding: 1rem;
	font-size: clamp(1rem, 0.924rem + 0.32vw, 1.313rem);
	color: #936134;
	line-height: 1.6;
    letter-spacing: .1rem;
	font-weight: 600;
    text-align: center;
    background-color: #b081b7;
    color: #fff;
}

.entrywrapper {
	position: relative;
	overflow: hidden;
}

.entrymain {
	background: 
        radial-gradient(circle,rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.6) 54%, rgba(255, 255, 255, 0) 100%),
        url("../img/bg_stripe.gif")repeat center top;
	padding: 96px 50px 80px;
    position: relative;
    @media screen and (max-width: 840px){
		padding: 2rem;
	}
    .curtain{
        position: absolute;
	    top:0;
        left:0;
        width: 100%;
        text-align: center;
        z-index:12;
        img{
            width: 100%;
        }
    }
}
.curtain-animationElement {
    height: 100vh;
    width: 50%; /* 幅は固定 */
    position: absolute;
    top: 0;
    &.left-box {
        background: #c20c45;
        background: linear-gradient(180deg, rgba(194, 12, 69, 1) 0%, rgba(233, 82, 131, 1) 50%, rgba(235, 113, 151, 1) 100%);
        right: 50%;
        transform-origin: top right; /* 右上を軸に回転 */
        border-radius: 0 0 0 0;
        z-index: 11;
    }
    &.right-box {
        background: #c20c45;
        background: linear-gradient(180deg, rgba(194, 12, 69, 1) 0%, rgba(233, 82, 131, 1) 50%, rgba(235, 113, 151, 1) 100%);
        left: 50%;
        transform-origin: top left; /* 左上を軸に回転 */
        border-radius: 0 0 0 0;
        z-index: 11;
    }
}
.entrymain-inner {
	max-width: 1100px;
	margin: 0 auto;
    @media screen and (max-width: 840px){
        padding:15% 10%;
    }
}

.hr-ribon{
    text-align: center;
    position:relative;
     &.stripe-flower{
         z-index:-1;
        ::before,
        ::after {
            content: "";
            position: absolute;
            left: 0;
            width: 100%;
            height: 50%;
        }
        ::before{
            top:0;
            background-image: url("../img/bg_stripe.gif");
            background-position: center;
            z-index: -1;
        }
        ::after{
            bottom:0;
            background-image: url("../img/bg_pink.jpg");
            background-position: center bottom;
            z-index: -1;
        }
    }
    &.flower-yellow{
        ::before,
        ::after {
            content: "";
            position: absolute;
            left: 0;
            width: 100%;
            height: 50%;
        }
        ::before{
            top:0;
            background-image: url("../img/bg_pink.jpg");
            background-position: center -100px;
            z-index: -1;
            @media screen and (max-width: 840px){
                background-position: center -45px;
            }
        }
        ::after{
            bottom:0;
            background-color: #fff3ae;
            background-position: center;
            z-index: -1;
        }
    }
}

.entryform {
	background: url("../img/bg_pink.jpg")repeat center top;
	padding: 50px;
}

.entryform-inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 80px 0 85px;
	position: relative;
    border: unset;
    background: unset;
    &::after{
        display: none;
    }
    &::before{
        display: none;
    }
}

.entryform-title {
    color: #664444;
	text-align: center;
	position: relative;
    z-index: 0;
    .title{
        font-size: clamp(2.625rem, 2.394rem + 0.98vw, 3.188rem);
        font-weight: 900;
    }
    .body{
        font-size: clamp(1.313rem, 1.227rem + 0.36vw, 1.5rem);
        font-weight: 700;
        color: #e84560;
        line-height: 3rem;
        margin-top: 2rem;
        @media screen and (max-width: 840px){
            line-height:2rem;
        }
    }
    .sub-body{
        line-height: 2rem;
        margin-top: 2rem;
        @media screen and (max-width: 840px){
            line-height: 1.75rem;
        }
    }
    .entryfamily-btn {
        margin-top: 4rem;
        @media screen and (max-width: 840px){
            margin-top:2rem;
        }
    }
    .entryfamily-btn a {
        display: inline-block;
        color: #fff;
        font-size: clamp(0.75rem, 0.596rem + 0.66vw, 1.125rem);
        font-weight: 600;
        position: relative;
        background: #E84560;
        border-radius: 40px;
        line-height: 1.6;
        padding: 15px 30px 15px;
        width: fit-content;
        max-width: 100%;
        transition: all .25s ease;
        letter-spacing: 0.07em;
    }
    .entryfamily-btn a:hover {
        opacity: 0.7;
    }
     &::before {
            display: block;
            content: '';
            background: url('../img/entry-balloon-01.png') no-repeat left bottom;
            background-size: 100%;
            width: 183px;
            height: 100%;
            position: absolute;
            left: 120px;
            bottom: 40px;
            z-index:-1;
            @media screen and (max-width: 840px){
                width:60px;
                left:-20px;
                top:-280px;
                z-index:1;
                display:none;
            }
        }
        &::after {
            display: block;
            content: '';
            background: url('../img/entry-balloon-02.png') no-repeat right bottom;
            background-size: 100%;
            width: 169px;
            height: 100%;
            position: absolute;
            right: 150px;
            bottom: 40px;
            left: unset;
            top: unset;
            z-index:-1;
            @media screen and (max-width: 840px){
                width:60px;
                right:-21px;
                top:-280px;
                z-index:1;
                display:none;
            }
        }
}

.first-box,.second-box{
    display: flex;
    justify-content: center;
    gap:2rem;
}
.first-box{
    .box-wrap{
        &::before {
            display: block;
            content: '';
            background: url('../img/no1-flower-l.png') no-repeat left bottom;
            background-size: 100%;
            width: 320px;
            height: 100%;
            position: absolute;
            left: -150px;
            bottom: -70px;
            z-index:-1;
            @media screen and (max-width: 840px){
                width:107px;
                left:-20px;
                bottom:-20px;
                z-index:1;
            }
        }
        &::after {
            display: block;
            content: '';
            background: url('../img/no1-flower-r.png') no-repeat right bottom;
            background-size: 100%;
            width: 320px;
            height: 100%;
            position: absolute;
            right: -150px;
            bottom: -70px;
            left: unset;
            top: unset;
            z-index:-1;
            @media screen and (max-width: 840px){
                width:107px;
                height:107px;
                right:-20px;
                bottom:-20px;
                z-index:1;
            }
        }
    }
}
.second-box{
    margin-block: 6rem 5rem;
    flex-direction: row;
    @media screen and (max-width: 840px){
       flex-direction: column;
        row-gap:5rem;
    }
}
.first-box .list-box{
    width:50%;
    margin-inline:auto;
    position:relative;
    @media screen and (max-width: 840px){
        width: 100%;
    }
}
.second-box .list-box{
    width: 40%;
    flex-direction: column;
    @media screen and (max-width: 840px){
        flex-direction:column;
        width: 100%;
    }
}
div:has(.list-box){
    .box-wrap{
        position: relative;
        z-index:10;
        .ribbon{
            content: "";
            display: flex;
            justify-content: center;
            position: absolute;
            top: 10px;
            left: 50%;
            transform: translate(-50%, -50%);
            margin: 0;
            height: auto;
            &.gold{
                width: 130px;
                z-index: 5;
                @media screen and (max-width: 840px){
                    width: 90px;
                }
            }
            &.silver,
            &.bronze{
                width: 100px;
                z-index: 5;
                top:-10px;
                @media screen and (max-width: 840px){
                    width: 80px;
                    top:0;
                }
            }
        }
        .image{
            display: flex;
            flex-direction: column;
            align-items: center;
            background: #fff;
            border-radius: 30px;
            padding: 3rem 1rem 2rem;
            overflow: hidden;
            .pre-result & {
                padding-top: .5rem;
                @media screen and (max-width: 840px){
                    padding-top:1.5rem;
                }
            }
        }
        .number{
            display: flex;
            align-items: center;
            justify-content: center;
            width: 30px;
            height: 30px;
            background: #f0be46;
            color: #fff;
            line-height: 0;
            border-radius: 50%;
        }
        .name{
            font-size: clamp(1.125rem, 1.057rem + 0.34vw, 1.313rem);
            font-weight: 500;
            text-align: center;
            padding: 1rem 0 0;
        }
    }
}
    
.entryform-list{
    display: flex;
    color: #664444;
    justify-content: center;
    flex-wrap: wrap;
    flex-direction: row;
    flex-shrink: 0;
    list-style: none;
    margin: 5rem auto 0;
    gap:2rem 1rem;
    .list-box{
        width: calc((100%/4) - 1rem);
         @media screen and (max-width: 840px){
            width: calc((100%/2) - 1rem);
        }
        .list-wrap{
            position: relative;
            .ribbon {
                display: inline-block;
                position: absolute;
                top: -7px;
                left: 4px;
                margin: 0;
                padding: 2px 0;
                z-index: 2;
                width: 40px;
                text-align: center;
                font-size: 18px;
                color: white;
                background: #E95283;
                font-weight: 600;
                &::before {
                    position: absolute;
                    content: '';
                    top: 0;
                    right: -5px;
                    border: none;
                    border-bottom: solid 6px #B24267;
                    border-right: solid 6px transparent;
                }
                &::after {
                    content: '';
                    position: absolute;
                    left: 0;
                    top: 100%;
                    height: 0;
                    width: 0;
                    border-left: 20px solid #E95283;
                    border-right: 20px solid #E95283;
                    border-bottom: 7px solid transparent;
                }
                .list-ribbon-number{
                    filter:drop-shadow(0px -1px 0px rgba(0,0,0,.5));
                }
            }
            .image{
                display: flex;
                flex-direction: column;
                align-items: center;
                background: #fff;
                border-radius: 15px;
                overflow: hidden;
                padding: 1rem .5rem 1rem;
                @media screen and (max-width: 840px){
                    padding: 2rem .5rem 1rem;
                }
                .pre-result & {
                    padding-top: .5rem;
                    @media screen and (max-width: 840px){
                        padding-top:1.5rem;
                    }
                }
            }
            .number{
                display: flex;
                align-items: center;
                justify-content: center;
                width: 30px;
                height: 30px;
                background: #f0be46;
                color: #fff;
                line-height: 0;
                border-radius: 50%;
            }
        }
        .name{
            font-size: 1vw;
            text-align: center;
            padding-top: .5rem;
            @media screen and (max-width: 840px){
                font-size: 3vw;
            }
        }
    }
    /*li > div > div > img{
            transform: scale(1);
        -webkit-transition: all 0.25s ease;
            transition: all 0.25s ease;
    }
    li:hover > div > div > img{
        transform: scale(1.05);
        -webkit-transition: all 0.25s ease;
        transition: all 0.25s ease;
        .pre-result & {
            transform: scale(1);
        }
    }*/
}

.entryform-title img {}

.entryform-list {
	padding-bottom: 2px;
}

.lower-box {
	max-width: 1100px;
	margin: 5rem auto 0;
    @media screen and (max-width: 840px){
        padding:0 2%;
    }
    .box-wrap {
        display: flex;
        flex-direction: row;
        column-gap: 1rem;
        background: #fff;
        border-radius: 20px;
        font-size: clamp(1rem, 0.943rem + 0.24vw, 1.125rem);
        padding: 65px 110px;
        margin-bottom: 0;
        @media screen and (max-width: 840px){
            padding: 30px 15px 30px 30px;
            margin: 0 auto;
            flex-direction:row;
        }
        @media screen and (max-width: 719px){
            padding: 50px 10px 50px 20px;
            margin: 0 auto;
            flex-direction:column;
        }
        .box-one{
            width: calc((100vw/2) - 1rem);
            list-style: none;
            counter-reset: my-counter 10;
            /*@media screen and (max-width: 840px){
                width:100%;
                line-height:1.5rem;
            }*/
            @media screen and (max-width: 719px){
                width:100%;
                line-height:1.5rem;
            }
            li{
                margin-bottom: 0.5rem;
            }
            li span{
                display: inline-flex;
                align-items: center;
                justify-content: center;
                width: 20px;
                height: 20px;
                line-height: 0;
                margin-right: 0.5rem;
            }
            li::before{
                counter-increment: my-counter;
                content: counter(my-counter);
                color: #E12A63;
                font-weight: 600;
                margin-right: 1rem;
            }
        }
        .box-two{
            width: calc((100vw/2) - 1rem);
            list-style: none;
            counter-reset: my-counter 30;
            /*@media screen and (max-width: 840px){
                width:100%;
                line-height:1.5rem;
            }*/
            @media screen and (max-width: 719px){
                width:100%;
                line-height:1.5rem;
            }
            li{
                margin-bottom: 0.5rem;
            }
            li span{
                display: inline-flex;
                align-items: center;
                justify-content: center;
                width: 20px;
                height: 20px;
                line-height: 0;
                margin-right: 0.5rem;
            }
            li::before{
                counter-increment: my-counter;
                content: counter(my-counter);
                color: #E12A63;
                font-weight: 600;
                margin-right: 1rem;
            }
        }
    }
}

.entryoverview {
	padding: 80px 50px 30px;
    background: #f9dce4;
    position: relative;
    &::after{
        content:"";
        background-image: url("../img/circle-border.svg");
        background-repeat: repeat-x;
        background-position: bottom;
        display: inline-block;
        width: 100%;
        height: 35px;
        position: absolute;
        bottom: -35px;
        left: 0;
        overflow: hidden;
    }
}

.entryoverview-inner {
	max-width: 1100px;
	margin: 0 auto;
}

.entryoverview-block {
	margin-bottom: 70px;
    tr{
        display: block;
        margin-bottom: 1.5rem;
    }
    tr:last-child{
        margin-bottom: unset;
    }
    th{
        display: block;
        width: 100%;
        font-weight: 600;
    }
    td{
        display: block;
        line-height: normal;
    }
    ul>li{
        list-style: disc;
        line-height: normal;
        margin-left: 1rem;
        margin-bottom: 1rem;
        &:last-child{
            margin-bottom: unset;
        }
    }
}

.entryoverview-block:last-child {
	margin-bottom: 0;
}

.entryoverview-block dt {
	text-align: center;
	margin-bottom: 22px;
}

.entryoverview-block dt span {
	display: inline-block;
	background: var(--point-color);
	color: #fff;
	font-size: 26px;
	font-weight: 600;
	border-radius: 30px;
	line-height: 1.6;
	padding: 2px 3px 4px;
	width: 228px;
}

.entryoverview-block dd {
	/*color: #4D4D4D;*/
    color: unset;
	font-size: 25px;
	line-height: 1.8;
	letter-spacing: 0.1em;
}


.entrymain{
    .commercial{
        display: flex;
        justify-content: center;
        text-align: center;
        padding: 5rem 1rem 2rem;
        grid-column-gap:1rem;
        @media screen and (max-width: 840px){
            display:block;
            padding: 1rem 1rem 2rem;
            flex-direction:column;
            grid-row-gap:1rem;
        }
        img{
            width: 100%;
            max-width: 580px;
            max-height: 100%;
        }
    }
}
.commercial{
    display: flex;
    justify-content: center;
    text-align: center;
    padding: 5rem 1rem 2rem;
    grid-column-gap:1rem;
    @media screen and (max-width: 840px){
        padding: 1rem 1rem 2rem;
        flex-direction:column;
        grid-row-gap:1rem;
    }
    img{
        width: 100%;
        max-width: 580px;
        max-height: 250px;
        @media screen and (max-width: 840px){
            max-height:100%;
        }
    }
}

.future-wrap {
	background: #fff3ae;
	padding: 96px 50px 80px;
    position: relative;
    @media screen and (max-width: 840px){
		padding: 2rem;
	}
}
.future-box {
	max-width: 1100px;
	margin: 0 auto;
    @media screen and (max-width: 840px){
        padding:15% 0;
    }
}
.future-lead {
	background: rgba(255, 255, 255, 0.8);
	border-radius: 20px;
	padding: 65px 110px;
	margin-bottom: 0;
	position: relative;
    word-break: auto-phrase;
    @media screen and (max-width: 840px){
        font-size:1.15rem;
		padding: 50px 30px 50px 40px;
		margin: 0 auto;
    }
    .title{
        font-size: clamp(1.688rem, 1.375rem + 1.33vw, 2.375rem);
        font-weight: 700;
        color:#e84560;
        text-align:center;
    }
    .body{
        font-size: clamp(1.125rem, 0.955rem + 0.73vw, 1.5rem);
        font-weight:500;
        color: #664444;
        text-align: left;
        line-height: 1.5;
        margin-top:2rem;
        @media screen and (max-width: 840px){
            
        }
    }
    &::before {
        display: block;
        content: '';
        background: url('../img/entry-lead-frame.png') no-repeat left top;
        background-size: 100%;
        width: 230px;
        height: 100%;
        position: absolute;
        left: -40px;
        top: -42px;
        @media screen and (max-width: 840px){
            width:107px;
            left:-10px;
            top:-10px;
        }
    }
    &::after {
        display: block;
        content: '';
        background: url('../img/entry-lead-frame.png') no-repeat right bottom;
        background-size: 100%;
        width: 230px;
        height: 230px;
        position: absolute;
        right: -30px;
        bottom: -32px;
        left: unset;
        top: unset;
        transform: rotate(180deg);
        @media screen and (max-width: 840px){
            width:107px;
            height:107px;
            right:-10px;
            bottom:-20px;
        }
    }
}

/* small pc */
@media screen and (min-width: 841px) and (max-width: 1220px){

	.entryform-inner{
		padding: 80px 40px 53px 45px;
	}

}

/* small pc */
@media screen and (min-width: 841px) and (max-width: 1050px){

	.entrymain-chara-list>li {
		width: calc(33.33333% - 20px);
	}

	.entrymain-chara-text p{
		font-size: 18px;
	}

	.entrymain-chara-text p br{display: none !important;}

	.entryform-inner{
		padding: 80px 40px 53px 25px;
	}

}


@media screen and (max-width: 840px){


	/* entry ---------------------------------------*/

	.entrykv-wrapper {
		padding-top: 35px;
	}

	.entrykv {
		display: block;
	}

	.entrykv-image {
		width: auto;
	}

	.entrykv-body {
		width: auto;
		padding: 5px 10px 10px;
	}

	.entrykv-title {
		margin-bottom: 8px;
		text-align: center;
	}

	.entrykv-title img {
		width: 100%;
	}

	.entrykv-term-title {
		margin-bottom: 4px;
	}

	.entrykv-term-title img {
		width: 145px;
	}

	.entryform {
		background: url("../img/bg_pink.jpg")repeat center top;
		padding: 80px 5% 64px;
		position: relative;
	}

	.entryform-inner {
		padding: 0 0 20px;
		position: relative;
        &::before{
            display: none;
        }
	}

	.entryform-title {
		margin-bottom: 22px;
	}

	.entryform-title img {
		width: 330px;
	}

	.entryform-list {
		padding: 0 0 32px;
		/*max-width: 400px;*/
        max-width: 100%;
		margin: 5rem auto 0;
	}

	.entryform-list-item {
		margin-bottom: 15px;
	}

	.entryoverview {
		padding: 38px 40px 10px;
		position: relative;
	}

	.entryoverview::before {
		display: none!important;
	}

	.entryoverview-block {
		margin-bottom: 30px;
		min-height: 120px;
		;
	}

	.entryoverview-block:last-child {
		margin-bottom: 0;
	}

	.entryoverview-block dt {
		margin-bottom: 15px;
	}

	.entryoverview-block dt span {
		font-size: 22px;
		padding: 2px 3px 4px;
		width: 195px;
	}

	.entryoverview-block dd {
		font-size: 17px;
		line-height: 1.8;
		letter-spacing: 0.05em;
	}

}

.copyright{
    padding-bottom: 4rem;
    @media screen and (max-width: 840px){
        padding-bottom: 2rem;
    }
}
