
:root{
    --main-color: #8c6f16;
    --main-color-border: rgba(167, 132, 26, 0.25);
    --main-color-border-white: #BFB699;
    --point-color: #5F2B6D;
    --point-color-border: rgba(95, 43, 109, 0.25);
    --bg-area: #FFFCF9;
    --bg-area2: #FBF5F0;
    --default-font_family: "Zen Old Mincho", serif;
    --text_list: #8c6f16;
    --marunouchi:#C60000;
    --ginza:#DB692C;
    --chiyoda:#3EAD3E;
    --hanzomon:#5F2B6D;
    --nanboku:#34CAA0;
    --yuraku:#A99252;
    --link-color:#333;
    --free-dial:#12A73B;
	--font10: 0.625em;
	--font12: 0.75em;
	--font13: 0.813em;
    --font14: 0.875em;
    --font15: 0.938em;
    --font16: 1em;
    --font17: 1.063em;
	--font18: 1.125em;
	--font19: 1.188em;
	--font20: 1.25em;
	--font23: 1.438em;
    --font22: 1.375em;
	--font24: 1.5em;
    --font26: 1.625em;
    --font28: 1.75em;
    --font32: 2em;
    --font40: 2.5em;
    --header-height: min(calc(100dvh * 70 / 700), 70px);
}
*,
*::before,
*::after{
    box-sizing:border-box;
}

html{
	font-size: 100%;
    scroll-behavior: smooth;
}
body{
    color: #000;
    margin:0;
    line-height:1.8;
    background-color: var(--bg-area);
    font-size:var(--font16);
    font-family:var(--default-font_family);
    font-weight: 400;
    font-style: normal;
    font-optical-sizing: auto;
    font-variant-ligatures: none;   
    font-synthesis: none;       
    -webkit-font-feature-settings: "palt"; 
}
@media(max-width:767px){
    .is-small {
        --header-height: min(calc(100dvh * 46 / 700), 46px);
    }
}
img{
    max-width:100%;
    height:auto;
    vertical-align:bottom;
}

a{
    color:inherit;
    text-decoration:none;
    transition: .3s;
}
a:hover{
    color: #000;
    opacity: 0.7;
}
a:focus-visible{
    outline: 2px solid var(--main-color);
    outline-offset: 4px;
}

ul{
    margin:0;
    padding:0;
    list-style:none;
}
h1,h2,h3,h4,strong{
    font-weight: 700;
}
h1,h2,h3,p{
    margin:0;
}
figure{
    margin: 0;
}
@media(max-width:959px){
    figure img{
        max-width: unset;
        width: 100%;
    }
}

.inner{
    width:min(100% - 32px, 1080px);
    margin-inline:auto;
}
.flex-block{
    display: flex;
    justify-content: space-between;
}
@media(max-width:767px){
    .flex-block{
        flex-flow: column;
    }
}

.btn{
    display:inline-block;
    padding:16px 5px;
}

.sp{
    display:none;
}

.point-block{
    position: relative;
}
.point-block .point-img{
    position: absolute;
}

.default-ttl{
    font-size: var(--font22);
    line-height: 1.8;
    color: var(--point-color);
    padding-bottom: .3em;
}

.text-list{
    gap: 1%;
}
.text-list li{
    background-color: var(--text_list);
    position: relative;
    text-align: center;
    color: #fff;
    flex: 1;
    line-height: 1;
    display: flex;
    height: 76px;
    flex-flow: column;
    justify-content: center;
    align-items: center;
}
.text-list li::before,
.text-list li::after{
    position: absolute;
    content: "";
    width: calc(100% - 16px);
    height: 1px;
    background-color: var(--main-color-border-white);
    transform: translateX(-50%);
    left: 50%;
}
.text-list li::before{
    top: 8px;
}
.text-list li::after{
    bottom: 8px;
}
.text-list li span,
.text-list li strong{
    padding-block: 2px;
}
.text-list li span{
    font-size: var(--font18);
}
.text-list li strong{
    font-size: var(--font23);
}

section{
    padding-block: 120px;
    position: relative;
}
section p{
    font-size: var(--font18);
    line-height: 1.8;
}
section .section-block{
    padding-block: 50px;  
}
section .inner .section-block:first-child{
    padding-top: 0;
}
@media(max-width:767px){
    section{
        padding-block: 105px;
    }
    section .section-block{
        padding-block: 60px;
    }
    section .inner .section-block:first-child{
        padding-block: 0;
    }
}

.border-area{
    position: relative;
    background-color: #fff;
}
.border-area::before,
.border-area::after{
    position: absolute;
    content: "";
    width: 100%;
    height: 10px;
    border: 1px solid var(--main-color);
    border-left-width: 0;
    border-right-width: 0;
    left: 0;
}
.border-area::before{
    top: 0;
    border-top-width: 4px;
}
.border-area::after{
    bottom: 0;
    border-bottom-width: 4px;
}
.border-area .border-section{
    border-top: 1px solid var(--main-color);
}

.header-block{
    text-align: center;
    padding-bottom: 40px;
}
.header-block .section-ttl{
    line-height: 1.5;
    font-size: 1em;
}
.header-block .section-ttl span{
    display: block;
    padding-top: 15px;
}
.header-block .lead-text{
    padding-top: 15px;
}
.header-block .section-ttl span:not(.en),
.header-block .lead-text{
    letter-spacing: 0.1em;
}
.header-block .section-ttl .en{
    color: var(--main-color);
    font-size: var(--font12);
    padding-top: 0;
}
.header-block .section-ttl .jp{
    font-size: var(--font28);
}
.header-block .section-ttl .jp-sub{
    font-size: var(--font22);
}
@media(max-width:767px){
    .header-block .section-ttl span{
        padding-top: 30px;
    }
}

.card-block .col{
    flex: 1;
}
.card-block figure{
    position: relative;
}
.card-block figcaption{
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--point-color-border);
    font-size: var(--font32);
    color: var(--point-color);
    writing-mode: vertical-rl;
    background-color: #fff;
    width: 55px;
    top: -15px;
    left: 15px;
    text-align: center;
    font-weight: 500;
    padding-top: 0.3em;
}

.note-block{
    background-color: var(--bg-area);
    text-align: center;
    padding: 15px 10px;
}
.note-block p{
    color: var(--main-color);
    font-size: var(--font22);
    font-weight: 500;
}
@media(max-width:767px){
    .note-block{
        padding-block: 45px;
    }
}

.fan-list{
    gap: 2.5em 2.2%;
    flex-flow: wrap;
}
.fan-list li{
    position: relative;
    background-color: #fff;
    width: 23.35%;

}
.fan-list li .text-block{
    border: 1px solid var(--point-color-border);
    padding: 30px 25px 25px;
    height: 100%;
}
.fan-list li::before{
    position: absolute;
    content: "";
    width: 50px;
    height: 40px;
    background: url(../images/iconn-fan.webp) no-repeat top center / 100% auto;
    transform: translateX(-50%);
    top: -15px;
    left: 50%;
}
.fan-list li .sub-text,
.fan-list li p{
    font-size: var(--font16);
}
.fan-list li .sub-text,
.fan-list li .fan-ttl{
    text-align: center;
}
.fan-list li .sub-text{
    display: block;
}
.fan-list li .fan-ttl{
    color: var(--main-color);
    font-size: var(--font20);
    padding-block: 0px 10px;
}
@media(max-width:959px){
    .fan-list {
        column-gap: 1.5%;
    }
    .fan-list li {
        width: 49%;
    }
    .fan-list li .text-block{
        padding-inline: 20px;
    }
}

@media(max-width:767px){
    .fan-list li{
        width: 100%;
        max-width: unset;
    }
    .fan-list li .text-block{
        padding: 35px 35px 35px;
    }
}

.fan-list-color li{
    padding: 10px;
}
.fan-list-color li .text-block{
    padding: 25px 12px 30px;
}

@media(max-width:767px){
    .fan-list-color li{
        padding: 15px;
    }
    .fan-list-color li .text-block{
        padding: 23px 24px 40px
    }
}

.cloud-text p{
    position: relative;
    padding-top: 1.5em;
}
.cloud-text p::before{
    position: absolute;
    content: "";
    background: url(../images/icon-cloud.webp) no-repeat top center / 100% auto;
    width: 52px;
    height: 10px;
    transform: translateX(-50%);
    top: 0.75em;
    left: 50%;
}
@media(max-width:767px){
    .cloud-text p{
        padding-top: 1em;
    }
    .cloud-text p::before{
        top: -0.2em;
        width: 60px;
        height: 19px;
    }
}

.btn-block .btn{
    position: relative;
    text-align: center;
    flex: 1;
    line-height: 1;
    display: flex;
    height: 56px;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 288px;
    margin-inline: auto;
    text-decoration: none;
    font-size: var(--font16);
    font-weight: 600;
}
.btn-block .btn::before,
.btn-block .btn::after{
    position: absolute;
    content: "";
    width: calc(100% - 16px);
    height: 1px;
    transform: translateX(-50%);
    left: 50%;
}
.btn-block .btn::before{
    top: 8px;
}
.btn-block .btn::after{
    bottom: 8px;
}
.btn-block .btn01{
    border: 1px solid var(--main-color);
    background-color: #fff;
    color: var(--main-color);
}
.btn-block .btn01::before,
.btn-block .btn01::after{
    background-color: var(--main-color);
}
.btn-block .btn01:hover{
    color: var(--main-color);
}
.btn-block .btn02{
    color: #fff;
    background-color: var(--main-color);
}
.btn-block .btn02::before,
.btn-block .btn02::after{
    background-color: var(--main-color-border-white);
}
.btn-block .btn02:hover{
    color: #fff;
}
@media(max-width:767px){
    .btn-block .btn{
        width: 310px;
        height: 62px;
        padding-block: 21px;
    }
}

.img-right-block{
    flex-direction: row-reverse;
}

.inquiry02{
    background-color: var( --point-color);
    color: #fff;
    padding: 40px 20px;
    outline: 1px solid #fff;
    outline-offset: -10px;
        margin-inline: auto;
}
.inquiry02 .inquiry-ttl{
    color: #fff;
    font-size: var(--font28);
}
.inquiry02 .catch-text{
    font-size: var(--font20);
    margin-block: 0.5em;
}
.inquiry02 p{
    font-size: var(--font16);
    line-height: 1.8;
    padding-bottom: 24px;
}
.inquiry02 .btn-block{
    gap: 18px;
}
.inquiry02 .btn{
    height: 62px;
    font-size: var(--font20);
    width: 50%;
}
.inquiry02 .free-dial{
    width: 50%;
    max-width: 288px;
}
.inquiry02 .free-dial a{
    background-color: #fff;
    padding: 17px 10px;
    height: 62px;
}
.inquiry02 .free-dial a .text .num{
    padding-bottom: 0.3em;
}
.inquiry02 .free-dial a .text .num img{
    width: 23px;
    vertical-align: 0.1em;
}
.inquiry02 .free-dial a .text .num .tel{
    font-size: var(--font24);
}
.inquiry02 .free-dial a .text .open{
    font-size: var(--font12);
}

@media(max-width:959px){
    .inquiry02 .btn{
        font-size: var(--font16);
    }
}
@media(max-width:767px){
    .inquiry02{
        outline: unset;
        outline-offset: unset;
        position: relative;
        margin-inline: calc(50% - 50vw);
        padding-block: 50px;
    }
    .inquiry02 .btn{
        font-size: var(--font20);
        width: 100%;
    }
    .inquiry02::before,
    .inquiry02::after{
        content: "";
        position: absolute;
        width: 100%;
        height: 1px;
        background-color: #fff;
        left: 0;
    }
    .inquiry02::before{
        top: 15px;
    }
    .inquiry02::after{
        bottom: 15px;
    }
    .inquiry02 .free-dial{
        width: 100%;
        margin-inline: auto;
    }
    .inquiry02 .free-dial a{
        width: 100%;
        margin-inline: auto;
    }
}

.anchor{
    position: absolute;
    top: -94px;
}
@media(max-width:767px){
    .anchor{
        top: -80px;
    }
}

.dot-list li{
    text-indent: -1em;
    padding-left: 1em;
}
.dot-list li::before{
    content: "・";
}

.free-dial .free-dial-link{
    text-decoration: none;
    text-align: center;
    display: block;
}
.free-dial-link .text  span{
    line-height: 1;
}
.free-dial-link .text .num{
    display: block;
    padding-bottom: 0.6em;
    margin-top: -0.2em;
}
.free-dial-link .text .num img{
    width: 34px;
    vertical-align: -0.1em;
}
.free-dial-link .text .num .tel{
    color: var(--free-dial);
    font-size: var(--font28);
    font-weight: 600;
    letter-spacing: -0.7px;
}
.free-dial-link .text .open{
    display: block;
    color: #000;
    font-size: var(--font18);
}
.free-dial .free-dial-link:hover .num .tel{
    color: var(--free-dial);
}

@media(max-width:767px){
    .pc{
        display:none;
    }

    .sp{
        display:block;
    }
}

header {
    position: fixed;
    width: 100%;
    padding-block: 20px;
    background-color: #fff;
    z-index: 10000;
    transition: .3s;
}
header .logo{
    max-width: 220px;
    line-height: 1;
    transition: .3s;
}
header .logo a{
    display: block;
}
header .free-dial{
    max-width: 223px;
}
header .free-dial-link .num,
header .free-dial-link .text img,
header .free-dial-link .text .tel,
header .free-dial-link .text .open{
    transition: .3s;
}
.is-small header {
    padding-block: 5px;
}
.is-small header .logo{
    max-width: 180px;
}
.is-small header .free-dial-link .num{
    padding-bottom: 0.3em;
}
.is-small header .free-dial-link .text img{
    width: 25px;
}
.is-small header .free-dial-link .text .tel{
    font-size: var(--font22);
}
.is-small header .free-dial-link .text .open{
    font-size: var(--font14);
}
@media(max-width:767px){
    header {
        padding-block: min(calc(100dvh * 11 / 700) ,11px);
    }
    header .inner{
        align-items: center;
        justify-content: center;
    }
    header .logo{
        max-width: 203px;
        width: min(calc(100dvh * 203 / 700),203px);
    }
    .is-small header {
        padding-block: min(calc(100dvh * 5 / 700) ,5px);
    }
    .is-small header .logo{
        max-width: 150px;
    }
}

main{
    padding-top: 94px;
    overflow: hidden;
}
.is-small main {
    padding-top: 94px;
}
@media(max-width:767px){
    main,
    .is-small main{
        padding-top: var(--header-height);
    }

}

.mv{
    position: relative;
    padding: 0;
}
.mv .point-block .point-img{
    color: #fff;
    container-type: inline-size;
    white-space: nowrap;
}
.mv .point-block .point-img .text{
    position: absolute;
    width: 100%;
}
.mv .point-block .point01{
    height: calc(100% * 500 / 720);
    width: calc(100% * 300 / 1080);
    max-width: 275px;
    left:  calc(100% * 98 / 1080);
}

.mv .point-block .point01 .normal-text{
    font-size: 6.6cqw;
    font-weight: 500;
    text-align: center;
    letter-spacing: 0.01em;
    top: -8px;
    line-height: 2;
}
.mv .point-block .point01 .catch-text{
    writing-mode: vertical-rl;
    font-size: 12.5cqw;
    font-weight: 600;
    width: 6.6em;
    top: 2.6em;
    transform: translateX(-50%);
    left: 50%;
    line-height: 2.2em;
    letter-spacing: 0.26em;
}
.mv .point-block .point02{
    width: calc(100% * 238 / 1080);
    max-width: 238px;
    height: calc(100% * 195 / 720);
    bottom: calc(100% * 90 / 750);
    right: calc(100% * 120 / 1080);
}
.mv .point-block .point02 .set-text{
    font-size: 6.6cqw;
    color: var(--point-color);
    font-weight: 500;
    text-align: center;
    line-height: 1;
    padding: 0.4em 0.5em;
    background-color: #fff;
}
.mv .point-block .point02 .price-text{
    top: 0.8em;

}
.mv .point-block .point02 .price-text span{
    position: absolute;
}
.mv .point-block .point02 .price-text .num{
    font-size: 62.5cqw;
    line-height: 1;
    font-weight: 400;
    display: inline-block;
    letter-spacing: -0.08em;
}
.mv .point-block .point02 .price-text .yen{
    top: 5em;
    right: 0.4em;
    text-align: right;
    font-size: 9.1cqw;
    letter-spacing: 0.05em;
}
.mv .point-block .point02 .price-text .option{
    right: 0;
    top: 3.8em;
    font-weight: 400;
    font-size: 7.2cqw;
    line-height: 1.2;
    text-indent: -1em;
}
.mv .mv-wrapper{
    width: 100%;
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    z-index: -1;
    top: 0;
    left: 0;
}
.mv .mv-wrapper picture,
.mv .mv-wrapper img{
    width: 100%;
    height: 100%;
}
.mv .mv-wrapper img{
    max-width: unset;
    object-fit: cover;
}

@media(max-width:767px){
    .mv {
        --fv-h: calc(100vh * 640 / 700);
        height: var(--fv-h);
        transition: .3s;
    }
    .mv .point-block,
    .mv .mv-wrapper{
        height: 100%;
        max-height: unset;
        align-items: self-start;
    }
    .mv .mv-wrapper{
        bottom: 0;
        top: unset;
    }
    .mv .point-block{
        width: 100%;
    }
    .mv .point-block .point-img{
        transform: translate(-50%,0);
        height: unset;
        left: 50%;
    }
    .mv .point-block .point01{
        aspect-ratio: 312 / 395;
    }
    .mv .point-block .point01 .normal-text{
        font-size: 6.4cqw;
        line-height: 1.9;
        letter-spacing: 0em;
        width: 96%;
    }
    .mv .point-block .point01 .catch-text{
        font-size: 11.1cqw;
        letter-spacing: 0.39em;
        height: 100%;
    }
    .mv .point-block .point02{
        width: min(calc(100vw * 238 / 390),238px);
        aspect-ratio: 238 / 135;
        right: unset;
    }
    .mv .point-block .point02 .price-text{
        top: 0.5em;
        height: 6em;
    }
    .mv .point-block .point02 .price-text .num{
        font-size: 56cqw;
        letter-spacing: 0;
    }
    .mv .point-block .point02 .price-text .yen{
        top: 4.3em;
    }
    .mv .point-block .point02 .price-text .option {
        right: 0.1em;
        top: 3.8em;
        font-size: 6.9cqw;
        text-indent: -1em;
    }
}
@supports (-webkit-touch-callout: none) {
    .mv{
        --fv-h: calc(100svh * 640 / 700);
        height: var(--fv-h);
    }
}

.features{
    padding-block: 0 40px;
}
.features .inner{
    width:min(100% - 32px, 880px);
}
.features .list-wrapper{
    margin-top: -40px;

}
.features .text-list{
    padding-bottom: 15px;
}
.features .sub-text{
    text-align: center;
    font-size: var(--font14);
}
.features .img-text-block{
    align-items: center;
    padding-inline: 15px 10px;
    gap: 1%;
}
.features .img-text-block figure{
    width: calc(100% * 143 / 880);
    max-width: 143px;
}
.features .img-text-block .features-ttl{
    color: var(--main-color);
    font-size: var(--font24);
}
.features .img-text-block p{
    font-size: var(--font12);
}
@media(max-width:767px){
    .features{
        padding-bottom: 110px;
    }
    .features .list-wrapper {
        margin-top: 0;
    }
    .features .text-list{
        margin-inline: calc(50% - 50vw);
        gap: 0;
        background-color: var(--text_list);
        position: relative;
        padding-block: 18px 15px;
        flex-flow: nowrap;
    }
    .features .text-list::before,
    .features .text-list::after{
        position: absolute;
        content: "";
        width: calc(100% - 8px);
        height: 1px;
        background-color: var(--main-color-border-white);
        left: 4px;
    }
    .features .text-list::before{
        top: 8px;
    }
    .features .text-list::after{
        bottom: 8px;
    }
    .features .text-list li{
        height: 100%;
        line-height: 1.25;
        background-color: unset;
    }
    .features .text-list li::before,
    .features .text-list li::after{
        display: none;
    }
    .features .text-list li span,
    .features .text-list li strong{
        padding-block: 0;
    }
    .features .text-list li span {
        font-size: var(--font16);
        font-weight: 500;
    }
    .features .text-list li strong {
        font-size: var(--font18);
        font-weight: 600;
    }
    .features .text-list li:first-child{
        position: relative;
    }
    .features .text-list li:nth-child(2)::before,
    .features .text-list li:nth-child(2)::after{
        display: block;
        width: 1px;
        height: 100%;
        transform: translateY(-50%);
        top: 50%;
    }
    .features .text-list li:nth-child(2)::before{
        left: 0;
    }
    .features .text-list li:nth-child(2)::after{
        right: 0;
        left: unset;
        bottom: unset;
    }
    .features .text-list li:last-child strong{
        font-size: var(--font23);
        padding-top: 0.5em;
    }
    .features .sub-text{
        padding-block: 2em 1.5em;
        text-align: left;
        line-height: 1.8;
    }
    .features .img-text-block {
        gap: 1.5em;
    }
    .features .img-text-block figure{
        width: 100%;
    }
    .features .img-text-block .features-ttl{
        text-align: center;
        line-height: 1.5;
    }
    .features .img-text-block p{
        line-height: 2;
        width: calc(100% * 311 / 390);
        margin-inline: auto;
        padding-top: 1.5em;
    }
}

.price .card-block{
    gap: 3%;
    padding-bottom: 30px;
}
.price .card-block .col{
    width: calc(100% * 520 / 1080);
    max-width: 520px;
}
.price .card-block figcaption{
    height: 117px;
    top: -15px;
    left: 15px;
}
.price .card-block .text-block{
    padding: 10px;
}
.price .card-block .price-ttl{
    color: var(--main-color);
    line-height: 1.25;
    padding-bottom: 8px;
}
.price .card-block .price-ttl span{
    display: inline-block;
}
.price .card-block .price-ttl .num{
    font-size: var(--font32);
    font-weight: 400;
}
.price .card-block .price-ttl .yen{
    font-size: var(--font24);
    margin-right: -0.2em;
    font-weight: 600;
}
.price .card-block .price-ttl .other{
    font-size: var(--font16);
    font-weight: 600;
}
.price .fan-list{
    padding-bottom: 30px;
}

@media(max-width:767px){
    .price .header-block{
        padding-bottom: 50px;
    }
    .price .card-block .col{
        width: 100%;
        max-width: unset;
    }
    .price .card-block .text-block{
        padding: 10px 20px 20px;
    }
    .price .card-block .price-ttl{
        line-height: 1.4;
    }
    .price .card-block .price-ttl .num{
        font-size: var(--font40);
    }
    .price .card-block .price-ttl .yen{
        margin-right: 0;
    }
    .price .fan-list{
        padding-bottom: 60px;
    }
}

.video .video-area{
    width: calc(100% * 575 /1080);
    max-width: 575px;
    margin-inline: auto;
    align-items: center;
}
.video .video-ttl{
    writing-mode: vertical-rl;
    font-size: var(--font28);
    letter-spacing: 1em;
    width: 102px;
    height: fit-content;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    white-space: nowrap;
}
.video .video-ttl::before,
.video .video-ttl::after{
    position: absolute;
    content: "";
    width: 1px;
    height: calc(100% - 1em);
    background-color: #000;
    top: 0;
}
.video .video-ttl::before{
    left: 0;
}
.video .video-ttl::after{
    right: 0;
}
.video .video-block{
    width: calc(100% * 377 /575);
    max-width: 377px;
    aspect-ratio: 467/830;
}
.video .video-block iframe{
    width: 100%;
    height: 100%;
}

@media(max-width:767px){
    .video .video-area{
        width: 100%;
        gap: 2em;
    }
    .video .video-block {
        width: 100%;
        max-width: unset;
    }
}

.inquiry01{
    background-color: #fff;
}
.inquiry01 figure{
    width: calc(100% * 532 / 1080);
    max-width: 532px;
}
.inquiry01 .text-block{
    width: calc(100% * 513 / 1080);
    max-width: 513px;
}
.inquiry01 p{
    padding-bottom: 1.0em;
}
.inquiry01 .btn-block{
    width: calc(100% * 400 / 513);
    max-width: 400px;
}
.inquiry01 .btn-block .btn{
    margin: 0 0 0.5em;
    width: 100%;
    max-width: unset;
}
.inquiry01 .btn-block .free-dial{
    padding-top: 15px;
}
.inquiry01 .btn-block .free-dial .text .open{
    font-size: var(--font16);
}
@media(max-width:767px){
    .inquiry01 .flex-block{
        flex-direction: column-reverse;
        gap: 2.5em;
    }
    .inquiry01 figure,
    .inquiry01 .text-block{
        max-width: unset;
    }
    .inquiry01 .text-block{
        width: 100%;
    }
    .inquiry01 figure{
        width: 113%;
        margin-inline: calc(50% - 50vw);
    }
    .inquiry01 .btn-block{
        width: 310px;
        max-width: unset;
        margin-inline: auto;
    }
    .inquiry01 .btn-block .btn{
        font-size: var(--font20);
    }
}

.thinking .header-block{
    padding-bottom: 40px;
}
.thinking .fan-list li .fan-ttl{
    font-size: var(--font18);
    line-height: 1.8;
}
.thinking .fan-list li p{
    font-size: var(--font18);
}
.thinking .fan-list + .header-block{
    padding-top: 60px;
}
@media(max-width:767px){
    .thinking .header-block {
        padding-bottom: 60px;
    }
    .thinking .fan-list li .fan-ttl{
        line-height: 1.6;
    }
}

.tsunagu .img-text-block{
    align-items: center;
    gap: 3%;
    padding-bottom: 60px;
}
.tsunagu .img-text-block figure{
    width: calc(100% * 551 / 1080);
    max-width: 551px;
}
.tsunagu .fan-list {
    column-gap: 3.3%;
}
.tsunagu .fan-list li{
    width: 31.1%;
}
.tsunagu .fan-list li p{
    font-size: var(--font18);
    padding-bottom: 1em;
}
.tsunagu .note-block{
    margin-top: 50px;
}
@media(max-width:959px){
    .tsunagu .fan-list{
        column-gap: 1.5%;
    }
    .tsunagu .fan-list li{
        width: 32.1%;
    }
}
@media(max-width:767px){
    .tsunagu .img-text-block{
        gap: 1.5em;
        flex-direction: column;
    }
    .tsunagu .img-text-block figure,
    .tsunagu .img-text-block .text-block{
        width: 100%;
        max-width: unset;
    }
    .tsunagu .fan-list li{
        width: 100%;
    }
    .tsunagu .fan-list li .text-block{
        padding: 30px 20px 20px;
    }
}

.access .header-block{
    padding-bottom: 50px;
}
.access .img-text-block .map-block{
    width: calc(100% * 485 / 1080);
    max-width: 485px;
}
.access .img-text-block .text-block{
    width: calc(100% * 550 / 1080);
    max-width: 550px;
    padding-top: 2em;
    padding-right: 7em;
}
.access .img-text-block .text-block p{
    text-indent: -1em;
    padding-left: 1em;
}
.access .img-text-block .access-line dt{
    padding-bottom: 0.3em;
}
.access .img-text-block .access-line dd{
    font-size: var(--font18);
    margin: 0;
    padding-bottom: 0.5em;
}
.access .img-text-block .access-line .line{
    color: #fff;
    display: inline-block;
    width: 5.358em;
    text-align: center;
    font-size: var(--font14);
    margin-right: 0.5em;
}
.access .img-text-block .access-line .line-marunouchi{
    background-color: var(--marunouchi);
}
.access .img-text-block .access-line .line-ginza{
    background-color: var(--ginza);
}
.access .img-text-block .access-line .line-chiyoda{
    background-color: var(--chiyoda);
}
.access .img-text-block .access-line .line-hanzomon{
    background-color: var(--hanzomon);
}
.access .img-text-block .access-line .line-nanboku{
    background-color: var(--nanboku);
}
.access .img-text-block .access-line .line-yuraku{
    background-color: var(--yuraku);
}

@media(max-width:1079px){
    .access .img-text-block .text-block{
        padding-top: 0;
        padding-right: 0;
    }
}
@media(max-width:767px){
    .access .img-text-block {
        gap: 3em;
    }
    .access .img-text-block .map-block{
        width: 109%;
        margin-inline: calc(50% - 50vw);
    }
    .access .img-text-block .address-text {
        padding-top: 0.5em;
        text-align: center;
    }
    .access .img-text-block .text-block {
        width: 100%;
        max-width: unset;
        padding-top: 0;
        padding-inline: 1.5em;
    }
    .access .img-text-block .access-ttl{
        text-align: center;
    }
    .access .img-text-block .text-block p{
        text-indent: unset;
        padding-left: unset;
    }
    .access .img-text-block .access-line{
        padding-top: 1em;
    }
}

.about .inquiry02{
    padding-inline: 40px;
}
.about .inquiry02 .flex-block{
    max-width: 897px;
    margin-inline: auto;
}
.about .inquiry02 figure{
    width: calc(100% * 257 / 897);
    max-width: 257px;
}
.about .inquiry02 .text-block{
    width: calc(100% * 594 / 897);
    max-width: 594px;
}
.about .card-block{
    gap: 2.45%;
}
.about .card-block figure{
    padding-bottom: 1em;
}
.about .card-block figcaption{
    height: 172px;
    font-size: var(--font24);
    letter-spacing: 0.25em;
}
.about .card-block .about-list-ttl{
    text-align: center;
    color: var(--main-color);
    font-size: var(--font22);
}
.about .card-block p{
    padding-top: 1.5em;
}
.about .card-block p::before{
    top: 0.35em;
}
.about .card-block .col01 figcaption{
    height: 200px;
}
@media(max-width:959px){
    .about .card-block {
        flex-flow: column;
        row-gap: 3.5em;
    }
    .about .card-block .col{
        flex: unset;
        width: 100%;
    }
    .about .inquiry02 .btn-block{
        align-items: center;
    }
}
@media(max-width:767px){
    .about .inquiry02 .flex-block{
        max-width: unset;
        gap: 1.5em;
    }
    .about .inquiry02 figure,
    .about .inquiry02 .text-block{
        width: 100%;
        max-width: unset;
    }
    .about .inquiry02 .free-dial{
        width: 100%;
    }
    .about .card-block {
        gap: 3em;
    }
    .about .card-block p::before {
        top: 0;
    }
}

.message {
    gap: 3%;
}
.message figure{
    width: calc(100% * 360 / 1080);
    max-width: 360px;
}
.message .text-block{
    width: calc(100% * 660 / 1080);
    max-width: 659px;

}
.message .text-block .header-block{
    text-align: left;
}
.message .text-block p{
    padding-bottom: 1.5em;
    letter-spacing: 0.1em;
}
.message .text-block p:last-child{
    padding: 0;
}
@media(max-width:767px){
    .message .img-text-block{
        flex-direction: column;
        gap: 3em;
    }
    .message figure,
    .message .text-block{
        width: 100%;
        max-width: unset;

    }
    .message .text-block{
        padding-inline: 15px;
    }
    .message .text-block .section-ttl .jp{
        line-height: 2;
    }
}

.grave{
    border-top: 1px solid var(--main-color);
    background-color: var(--bg-area2);
}
.grave .why-block{
    outline: 1px solid var(--main-color);
    outline-offset: -10px;
    padding: 40px 40px 45px;
    background-color: #fff;
    position: relative;

}
.grave .why-block::before{
    position: absolute;
    content: "";
    width: 50px;
    height: 40px;
    background: url(../images/iconn-fan.webp) no-repeat top center / 100% auto;
    transform: translateX(-50%);
    top: -15px;
    left: 50%;
}
.grave .text-text-block{
    max-width: 930px;
    margin-inline: auto;
    gap: 3%;
}
.grave .text-text-block .col01{
    width: calc(100% * 467 / 855);
    max-width: 467px;
}
.grave .text-text-block .why-ttl{
    color:  var(--main-color);
    font-size: var(--font22);
}
.grave .text-text-block p{
    padding-top: 1.5em;
}
.grave .text-text-block p::before{
    transform: unset;
    left: 1.5em;
    top: 0.45em;
}
.grave .text-text-block .col02{
    width: calc(100% * 435 / 855);
    max-width: 435px;
    display: flex;
    justify-content: center;
    flex-flow: column;
}
.grave .text-text-block .worries-ttl{
    background-color: var(--bg-area);
    font-size: var(--font22);
    height: 79px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.grave .text-text-block .dot-list{
    background-color: var(--bg-area2);
    padding: 10px 30px;
    width: 100%;
}
.grave .text-text-block .dot-list li{
    font-size: var(--font18);
    padding: 16px 15px 16px 30px;
}
.grave .text-text-block .dot-list li:not(:last-child){
    border-bottom: 1px solid var(--main-color-border);
}

@media(max-width:959px){
    .grave .why-block{
        padding-inline: 35px;
    }
    .grave .text-text-block,
    .grave .text-text-block .col01,
    .grave .text-text-block .col02{
        width: 100%;
        max-width: unset;
    }
    .grave .text-text-block{
        gap: 1.5em;
        flex-flow: column;
    }
    .grave .text-text-block .why-ttl{
        text-align: center;
    }
    .grave .text-text-block p::before{
        transform: translateX(-50%);
        top: 0.2em;
        left: 50%;
    }
    .grave .text-text-block .worries-ttl{
        height: unset;
        padding: 20px 10px 15px;
        line-height: 1.5;
        text-align: center;
    }
    .grave .text-text-block .dot-list{
        padding: 0 25px;
    }
    .grave .text-text-block .dot-list li{
        padding: 15px 10px 15px 30px;
    }
}

.offering .why{
    text-align: center;
}
.offering .why .offering-lead-ttl{
    font-size: var(--font20);
    padding-bottom: 1.5em;
}
.offering .why .offering-text{
    padding-bottom: 1.5em;
}
.offering .why .offering-logo{
    max-width: 220px;
    margin-inline: auto;
    padding-top: 30px;
    gap: 2%;
}
.offering .why .offering-logo .logo{
    display: flex;
    justify-content: center;
    align-items: center;
}
.offering .why .offering-logo .logo02{
    width: 100%;
    max-width: 220px;
}
.offering .example .fan-list{
    padding-top: 40px;
}
.offering .example .fan-list li{
    min-height: 154px;
}
.offering .example .fan-list li .text-block{
    display: flex;
    flex-flow: column;
    justify-content: center;
}
.offering .example .fan-list li .fan-ttl{
    font-size: var(--font20);
    color: #000;
    line-height: 1.5;
    padding-bottom: 0;
}
.offering .inquiry{
    text-align: center;
}
.offering .inquiry .btn-block{
    max-width: 600px;
    margin-inline: auto;
}
@media(max-width:767px){
    .offering .why .offering-logo{
        max-width: 203px;
        gap: 1em;
        align-items: center;
    }
    .offering .why .offering-logo .logo{
        width: 100%;
    }
    .offering .inquiry{
        text-align: left;
    }
}

.voice .fan-list li,
.voice .fan-list li .text-block{
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}
.voice .fan-list li {
    min-height: 290px;
}
.voice .fan-list li .text-block{
    padding-bottom: 10px;
}
.voice .fan-list li p{
    flex-grow: 1;
    font-size: var(--font18);
}
.voice .fan-list li span{
    display: block;
    text-align: right;
    color: var(--point-color);
}
@media(max-width:767px){
    .voice .fan-list li p{
        display: flex;
        align-items: center;
        font-size: var(--font20);
        font-weight: 500;
    }
}

.faq{
    padding-top: 0;
}
.faq .faq-block{
    flex-flow: wrap;
}
.faq .faq-block .col{
    width: calc(100% * 520 / 1080);
    max-width: 520px;
}
.faq .faq-block .faq-title{
    position: relative;
    background-color: #fff;
}
.faq .faq-block .faq-title::before,
.faq .faq-block .faq-title::after{
    content: "";
    position: absolute;
    width: 100%;
    height: 1px;
    background-color: var(--main-color);
    left: 0;
}
.faq .faq-block .faq-title::before{
    top: 5px;
}
.faq .faq-block .faq-title::after{
    bottom: 5px;
}
.faq .faq-block .faq-icon{
    position: relative;
    padding:15px 15px 15px  2.25em;
}
.faq .faq-block .faq-icon::before{
    font-size: var(--font22);
    position: absolute;
    top: 0.3em;
    left: 0.5em;
}
.faq .faq-block .faq-q::before{
    content: "Q";
}
.faq .faq-block .faq-ttl{
    font-size: var(--font20);
    color: var(--point-color);
}
.faq .faq-block .faq-ttl.font-small{
    font-size: var(--font17);
}
.faq .faq-block .faq-a::before{
    content: "A";
    color: var(--main-color);
}
.faq .faq-block .faq-contents p{
    font-size: var(--font18);
}
@media(max-width:767px){
    .faq .inner{
        width: 100%;
    }
    .faq .faq-block{
        gap: 1.5em;
    }
    .faq .faq-block .col{
        width: 100%;
        max-width: unset;
    }
}

.contact .form-block{
    width: calc(100% * 960 / 1080);
    max-width: 960px;
    margin-inline: auto;
}

.caution{
    padding-top: 30px;
}
.caution .inner{
    width:min(100% - 32px, 880px);
}
.caution .noto-ttl{
    text-align: center;
    font-size: var(--font22);
    padding: 15px 10px;
    background-color: #fff;
}
.caution .dot-list{
    padding-top: 1.5em;
    padding-inline: 0.5em;
}
.caution .dot-list li{
    font-size: var(--font18);
}
@media(max-width:767px){
    .caution .noto-ttl{
        margin-inline: calc(50% - 47vw);
    }
}

footer{
    text-align: center;
    padding-bottom: 160px;
}
footer .privacy-link{
    padding-bottom: 1em;
}
footer .privacy-link a{
    color: var(--link-color);
    font-size: var(--font18);
}
footer .privacy-link a:hover{
    font-size: var(--font18);
    text-decoration: none;
}
footer .company-logo {
    width: calc(100% * 220 / 1080);
    max-width: 220px;
    margin-inline: auto;
    padding-bottom: 1.5em;
}
footer .daiko-note{
    font-size: var(--font14);
    padding-bottom: 1.5em;
}
footer .copyright{
    font-size: var(--font10);
}
@media(max-width:767px){
    footer{
        padding-bottom: 110px;
    }
    footer .company-logo{
        width: 100%;
        max-width: 203px;
    }
}

.fix-cta{
    background-color: var(--main-color);
    position: fixed;
    width: 100%;
    bottom: 0;
    left: 0;
    padding-block: 10px 15px;
    transform: translateY(100%);
    transition: transform .3s ease;
    z-index: 999;
}
.fix-cta .inner{
    width:min(100% - 32px, 722px);
    margin-inline: auto;
}
.fix-cta .inner > p{
    text-align: center;
    color: #fff;
    padding-bottom: 5px;
}
.fix-cta .cta-block{
    background-color: #fff;
    padding: 12px 15px;
}
.fix-cta .cta-block-inner{
    justify-content: center;
    align-items: center;
    max-width: 600px;
    margin-inline: auto;
    gap: 4%;
}
.fix-cta .cta-btn{
    width: 288px;
    flex: 1;
    text-align: center;
    text-decoration: none;
}
.fix-cta .cta-btn > .flex-block{
    align-items: center;
    gap: 9px;
}
.fix-cta .cta-btn .catch{
    width: 56px;
    height: 56px;
    border: 4px solid;
    background-color: #fff;
    line-height: 1.25;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 600;
}
.fix-cta .cta-btn .text{
    font-size: var(--font18);
    flex: 1;
    width: 100%;
    font-weight: 600;
}
.fix-cta .cta-btn01{
    background-color: var(--point-color);
}
.fix-cta .cta-btn01 .catch{
    color: var(--point-color);
    border-color:  var(--point-color);
}
.fix-cta .cta-btn01:hover .catch:hover{
    color: var(--point-color);
}
.fix-cta .cta-btn01 .text,
.fix-cta .cta-btn01:hover .text{
    color: #fff;
}
.fix-cta .cta-btn02 .catch{
    color: var(--free-dial);
    border-color: var(--free-dial);
}
.fix-cta .cta-btn02 .text .num img{
    width: 33px;
}
.fix-cta .cta-btn02 .text .num .tel{
    font-size: calc( var(--font28) - 0.19em);
}
.fix-cta .cta-btn02 .text{
    text-align: left;
}
.fix-cta .cta-btn02 .text .open{
    font-size: calc( var(--font16) - 0.111em);
}

.fix-cta.is-show{
    transform: translateY(0);
}

@media(max-width:767px){
    .fix-cta{
        background-color: unset;
        padding: 0;
    }
    .fix-cta .inner{
        width: 100%;
    }
    .fix-cta .cta-block{
        padding: 0;
    }
    .fix-cta .cta-block-inner{
        gap: unset;
        flex-flow: nowrap;
        max-width: unset;
    }
    .fix-cta .cta-btn{
        width: 50%;
        padding: 10px 9px;
    }
    .fix-cta .cta-btn .catch{
        width: 100%;
        border: none;
        height: auto;
        padding: 5px 10px;
        font-size: var(--font16);
    }
    .fix-cta .cta-btn01 .text{
        font-size: var(--font16);
    }
    .fix-cta .cta-btn02 .text{
        text-align: center;
    }
    .fix-cta .cta-btn02 .text .num {
        padding-block: 0.5em 0;
    }
    .fix-cta .cta-btn02 .text .num .tel{
        font-size: calc(var(--font22) - 0.15333em);
    }
    .fix-cta .cta-btn02 .catch{
        background-color: var(--free-dial);
        color: #fff;
    }
    .fix-cta .cta-btn02 .text .num img{
        width: 21px;
        vertical-align: 0.1em;
        margin-right: -0.2em;
    }
    .fix-cta .cta-btn02 .text .open{
        display: none;
    }
}
@media(max-width:389px){
    .fix-cta .cta-btn01 .text {
        font-size: var(--font14);
    }
    .fix-cta .cta-btn02 .text .num .tel{
        font-size: calc(var(--font20) - 0.15333em);
    }
}

.lp-back-overlay { position: fixed; inset: 0; z-index: 10000; background: rgba(0,0,0,.35); }
.lp-back-popup { display: none; position: fixed; z-index: 10001; top: 50%; left: 50%; transform: translate(-50%,-50%); width: min(460px,88vw); box-sizing: border-box; padding: 32px 28px 28px; background: #fff; border-radius: 8px; box-shadow: 0 0 4px 4px rgba(0,0,0,.25); text-align: center; font-family: var(--default-font_family); color: var(--link-color); }
.lp-back-popup__icon { display: block; width: 40px; height: 40px; margin: 0 auto 16px; color: var(--main-color); font-size: 32px; line-height: 40px; }
.lp-back-popup__text { font-size: 18px; line-height: 1.75; margin: 0 0 20px; }
a.lp-back-popup__tel { display: inline-block; margin: 8px 0 4px; font-size: 28px; font-weight: 700; color: var(--free-dial); text-decoration: none; }
.lp-back-popup__tel-sub { font-size: 13px; color: #888; margin: 0 0 20px; }
.lp-back-popup__close { display: inline-block; margin-top: 8px; padding: 10px 32px; background: var(--main-color); color: #fff; border: none; border-radius: 4px; font-family: var(--default-font_family); font-size: 16px; font-weight: 700; cursor: pointer; }


.mv .point-block{
    --p01top: 4%;
}
.mv .point-block .point01{
    top: var(--p01top);
    transform: none;
}

@media(min-width:768px){
    .mv .point-block,
    .mv .mv-wrapper{
        height: calc(100vh * 864 / 1080);
        max-height: 800px;
    }
}
.mv .point-block .mv-cp-wrap{
    position: absolute;
    left: max(0px, calc((100% - 880px) / 2));
    top: calc(100% - 180px);
    z-index: 3;
}
.mv .point-block .mv-cp{
    position: relative;
    display: block;
    max-width: none;
    background-color: var(--point-color);
    color: #fff;
    text-decoration: none;
    text-align: center;
    line-height: 1.5;
    box-shadow: 0 6px 18px rgba(0,0,0,.28);
    transition: .3s;
}
.mv .point-block .mv-cp::after{
    content: "";
    position: absolute;
    inset: 4px;
    border: 1px solid rgba(255,255,255,.45);
    pointer-events: none;
}
.mv .point-block .mv-cp:hover{
    background-color: #4b2156;
}
.mv-cp-lead{
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%,-78%);
    background-color: #fff;
    color: var(--point-color);
    border: 1px solid var(--main-color);
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
    padding: 3px 16px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: .2em;
    white-space: nowrap;
    z-index: 1;
}
.mv-cp-program{
    display: block;
    letter-spacing: .02em;
}
.mv-cp-sub{
    display: block;
    padding-top: 0;
}
.mv-cp-icon{
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    background-color: #fff;
    border-radius: 50%;
    z-index: 1;
    transition: .3s;
}
.mv-cp-icon::before{
    content: "";
    position: absolute;
    left: 50%;
    top: 45%;
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--point-color);
    border-bottom: 2px solid var(--point-color);
    transform: translate(-50%,-50%) rotate(45deg);
    transition: .3s;
}
.mv .point-block .mv-cp:hover .mv-cp-icon{
    background-color: var(--bg-area2);
}
.mv .point-block .mv-cp:hover .mv-cp-icon::before{
    border-color: #fff;
}

@media(min-width:768px) and (max-height:740px){
    .mv .point-block{
        --p01top: 0%;
    }
    .mv .point-block .point01{
        max-width: 235px;
    }
    .mv .point-block .mv-cp-wrap{
        top: calc(100% - 162px);
    }
}
.campaign{
    position: relative;
    background-color: var(--bg-area2);
    padding-block: 70px;
}
.campaign > .inner > * + *{
    margin-top: 48px;
}
.campaign > .inner > .cp-note{
    text-align: center;
    margin-top: 22px;
}
.campaign-closing{
    text-align: center;
    line-height: 2;
}

@media(max-width:767px){
    .mv .point-block .point01{
        transform: translate(-50%,0);
    }
    .mv .point-block .mv-cp-wrap{
        left: 50%;
        transform: translateX(-50%);
        min-width: 0;
    }
    .mv .point-block .mv-cp{
        max-width: none;
        width: 100%;
        line-height: 1.35;
        box-shadow: 0 4px 12px rgba(0,0,0,.25);
    }
    .mv .point-block .mv-cp::after{
        inset: 3px;
    }
    .mv-cp-sub{
        padding-top: 0;
    }
    .mv-cp-icon{
        width: 22px;
        height: 22px;
    }
    .mv-cp-icon::before{
        width: 6px;
        height: 6px;
        border-width: 2px;
    }
    .campaign{
        padding-block: 50px;
    }
    .campaign > .inner > * + *{
        margin-top: 36px;
    }
}

@media(max-width:340px){
    .mv .point-block .point01{
        width: min(calc(100vw * 226 / 390), 226px);
    }
}
.campaign .inner{
    width: min(100% - 32px, 880px);
    text-align: center;
}
.cp-eyebrow{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.2em;
    color: var(--main-color);
    letter-spacing: .16em;
}
.cp-eyebrow::before,
.cp-eyebrow::after{
    content: "";
    width: 48px;
    height: 1px;
    background-color: var(--main-color);
}
.cp-ttl{
    font-size: var(--font40);
    line-height: 1.5;
    letter-spacing: .04em;
    padding-top: .25em;
}
.cp-date{
    color: var(--main-color);
    letter-spacing: .06em;
    padding-top: .3em;
}
.cp-visual{
    max-width: 640px;
    margin: 26px auto 0;
}
.cp-visual-ph{
    aspect-ratio: 16 / 9;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--main-color-border);
    background-color: #fff;
    color: #777;
    font-size: var(--font16);
}
.cp-lead{
    line-height: 2;
    padding-top: 1.2em;
}
.cp-gifts{
    justify-content: center;
    gap: 24px;
    margin-top: 26px;
}
.cp-gifts li{
    flex: 1 1 0;
    max-width: 420px;
    border: 1px solid var(--main-color);
    background-color: #fff;
}
.cp-gift-label{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .9em;
    color: #333;
    letter-spacing: .1em;
}
.cp-gift-label::before,
.cp-gift-label::after{
    content: "";
    flex: 1 1 auto;
    max-width: 56px;
    height: 1px;
    background-color: var(--main-color-border);
}
.cp-gift-body{
    justify-content: center;
    align-items: center;
    gap: 18px;
}
.cp-gift-icon{
    width: 52px;
    height: 52px;
    color: var(--main-color);
    flex-shrink: 0;
}
.cp-gift-name{
    line-height: 1.5;
    text-align: left;
}
.campaign .campaign-closing{
    padding-top: 38px;
    line-height: 2;
}
.campaign .btn-block.cp-btns{
    justify-content: center;
    padding-top: 34px;
}
.cp-btns .btn02{
    color: #fff;
}
.cp-btns .btn01{
    border-color: var(--point-color);
    color: var(--point-color);
}
.cp-btns .btn01::before,
.cp-btns .btn01::after{
    background-color: var(--point-color);
}
.cp-btns .btn{
    display: flex;
    align-items: center;
    justify-content: center;
}

@media(max-width:767px){
    .cp-gifts{
        gap: 20px;
    }
    .cp-gifts li{
        max-width: none;
        width: 100%;
    }
    .cp-btns .btn{
        height: 62px;
    }
}
.cp-gift-covers{
    gap: 8px;
    flex-shrink: 0;
}
.cp-gift-covers img{
    width: 66px;
    height: auto;
    box-shadow: 0 2px 8px rgba(0,0,0,.14);
}
.cp-gifts li{
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 24px 22px 26px;
}
.cp-gift-body{
    flex: 1 1 auto;
    padding-top: 16px;
}
.cp-campaign-ttl{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.1em;
    font-size: var(--font32);
    line-height: 1.4;
    letter-spacing: .12em;
}
.cp-campaign-ttl::before,
.cp-campaign-ttl::after{
    content: "";
    width: 58px;
    height: 1px;
    background-color: var(--main-color);
}
.campaign .btn-block.cp-btns{
    gap: 12px;
}

@media(max-width:767px){
    .cp-campaign-ttl{
        gap: .7em;
    }
    .cp-campaign-ttl::before,
    .cp-campaign-ttl::after{
        width: 30px;
    }
    .campaign .btn-block.cp-btns{
        gap: 14px;
    }
}
.cp-btns .btn{
    flex: 0 0 auto;
    margin-inline: 0;
    width: 320px;
    max-width: none;
    height: 64px;
}
.cp-date-band{
    display: inline-block;
    line-height: 1.5;
    letter-spacing: .08em;
    padding: 10px 40px;
    border-bottom: none;
    background-color: rgba(140, 111, 22, .10);
    margin-top: .7em;
}

@media(max-width:767px){
    .cp-gift-body{
        flex-flow: column;
        align-items: center;
        gap: 14px;
        padding-top: 18px;
    }
    .cp-gift-covers{
        flex-flow: row;
        gap: 10px;
    }
    .cp-gift-covers img{
        width: 84px;
    }
    .cp-gift-icon{
        width: 56px;
        height: 56px;
    }
    .cp-gift-name{
        text-align: center;
    }
    .campaign .btn-block.cp-btns{
        align-items: center;
    }
    .cp-btns .btn{
        margin-inline: auto;
    }
}
.cp-en{
    color: var(--main-color);
    font-size: var(--font12);
    letter-spacing: .18em;
    margin-top: 52px;
}
.cp-campaign-ttl{
    margin-top: 15px;
}

@media(max-width:767px){
    .cp-en{
        margin-top: 40px;
    }
    .cp-campaign-ttl{
        margin-top: 15px;
    }
}
.cp-en-first{
    margin-top: 0;
}
.cp-en-first + .cp-eyebrow{
    margin-top: 14px;
}

@media(max-width:767px){
    .cp-en-first{
        margin-top: 0;
    }
    .mv-cp-program{
        display: block;
    }
    .mv-cp-sub{
        display: block;
    }
}

@media(max-width:767px){
    .mv .point-block .point01 .catch-text{
        top: 2.5em;
        line-height: 2.5em;
        width: 7.5em;
    }
}

@media(max-width:767px) and (max-height:700px){
    .mv .point-block .point01 .catch-text{
        top: 2.2em;
    }
}
@media(max-width:400px){
    .cp-campaign-ttl{
        gap: .5em;
    }
    .cp-campaign-ttl::before,
    .cp-campaign-ttl::after{
        width: 22px;
    }
}

.campaign,
.mv .point-block .mv-cp{
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

@media(min-width:768px){
    .mv .point-block .mv-cp-wrap{
        width: 56%;
    }
    .mv-cp-lead{
        font-size: var(--font17);
        padding: 6px 24px;
        letter-spacing: .16em;
    }
    .mv-cp-program{
        font-size: var(--font17);
        line-height: 1.5;
    }
    .mv-cp-sub{
        font-size: var(--font15);
        line-height: 1.5;
        margin-top: 4px;
    }
    .cp-eyebrow{
        font-size: var(--font17);
    }
    .cp-date{
        font-size: var(--font20);
    }
    .cp-date-band{
        font-size: var(--font26);
    }
    .cp-lead{
        font-size: var(--font19);
    }
    .cp-gift-label{
        font-size: var(--font18);
    }
    .cp-gift-name{
        font-size: var(--font26);
    }
    .campaign .campaign-closing{
        font-size: var(--font18);
    }
    .campaign > .inner > .cp-note{
        font-size: var(--font15);
    }
    .cp-btns .btn{
        font-size: var(--font19);
    }
    .mv .point-block .mv-cp{
        padding: 24px 46px 16px;
    }
}

@media(min-width:768px) and (max-width:959px){
    .cp-gift-body{
        flex-flow: column;
        align-items: center;
        gap: 14px;
    }
    .cp-gift-covers{
        flex-flow: row;
        gap: 8px;
    }
    .cp-gift-covers img{
        width: 76px;
    }
    .cp-gift-name{
        text-align: center;
    }
}

@media(min-width:860px){
    .mv .point-block .mv-cp-wrap{
        top: min(max(calc(100% - 180px), calc(68% + 58px)), calc(100% - 130px));
    }
}
@media(min-width:960px){
    .mv-cp-program{
        white-space: nowrap;
    }
    .cp-gifts li{
        max-width: 428px;
        padding: 24px 16px 26px;
    }
    .cp-gift-body{
        gap: 14px;
    }
    .cp-gift-covers{
        gap: 6px;
    }
    .cp-gift-covers img{
        width: 62px;
    }
}
@media(min-width:860px) and (max-height:800px){
    .mv .point-block .mv-cp{
        padding: 18px 46px 12px;
    }
}
@media(min-width:860px) and (max-height:740px){
    .mv .point-block .mv-cp-wrap{
        top: min(max(calc(100% - 162px), calc(66% + 58px)), calc(100% - 130px));
    }
}

@media(max-width:767px){
    .mv .point-block .mv-cp-wrap{
        top: auto;
        bottom: 5%;
    }
    .campaign .inner{
        width: min(100% - 20px, 880px);
    }
    .cp-en{
        font-size: var(--font14);
    }
    .cp-eyebrow{
        font-size: min(calc((100vw - 52px) / 17.4), 16px);
        letter-spacing: .06em;
        gap: .5em;
        white-space: nowrap;
    }
    .cp-eyebrow::before,
    .cp-eyebrow::after{
        width: 16px;
    }
    .cp-ttl{
        font-size: min(calc((100vw - 22px) / 16.1), 26px);
        white-space: nowrap;
        line-height: 1.6;
    }
    .cp-campaign-ttl{
        font-size: min(calc((100vw - 66px) / 12.7), 26px);
        white-space: nowrap;
    }
    .cp-date-band{
        font-size: var(--font22);
        padding: 10px 28px;
    }
    .cp-visual-ph{
        font-size: var(--font14);
    }
    .campaign > .inner > .cp-note{
        margin-top: 16px;
    }
    .cp-btns .btn{
        width: min(310px, 100%);
    }
    .mv .point-block .mv-cp-wrap{
        width: min(100% - 16px, 372px);
    }
    .mv .point-block .mv-cp{
        padding: 22px 40px 10px 18px;
    }
    .mv-cp-lead{
        padding: 4px 14px;
        font-size: var(--font15);
        letter-spacing: .1em;
        box-shadow: 0 2px 6px rgba(0,0,0,.18);
    }
    .mv-cp-program,
    .mv-cp-sub{
        line-height: 1.45;
        font-size: min(calc((100vw - 76px) / 13.9), 17px);
    }
    .mv-cp-icon{
        right: 8px;
    }
    .cp-date{
        font-size: var(--font18);
    }
    .cp-lead{
        font-size: var(--font17);
    }
    .cp-gift-label{
        font-size: var(--font17);
    }
    .cp-gift-name{
        font-size: var(--font23);
    }
    .campaign .campaign-closing{
        font-size: var(--font17);
    }
    .campaign > .inner > .cp-note{
        font-size: var(--font15);
    }
    .cp-btns .btn{
        font-size: var(--font18);
    }
}

@media(max-width:767px) and (max-height:700px){
    .mv .point-block .mv-cp-wrap{
        bottom: 3%;
    }
    .mv-cp-program,
    .mv-cp-sub{
        line-height: 1.35;
    }
    .mv .point-block .mv-cp{
        padding: 20px 38px 8px 16px;
    }
    .mv .point-block .point02{
        bottom: calc(3% + 116px);
    }
    .mv-cp-lead{
        font-size: var(--font14);
    }
    .mv-cp-program,
    .mv-cp-sub{
        font-size: min(calc((100vw - 76px) / 13.9), 15px);
    }
}

@media(max-width:767px){
    .mv .point-block{
        --p02-h: min(calc(100vw * 135 / 390), 135px);
    }
    .mv .point-block .point01{
        top: max(5%, 20px);
        width: min(calc(100vw * 312 / 390), 312px,
                   max(150px, calc((var(--fv-h) * 0.9 - 152px - var(--p02-h)) / 1.3575)));
    }
    .mv .point-block .point02{
        bottom: calc(5% + max(108px, min(136px, calc(var(--fv-h) * 0.2125))));
    }
}

.seminar{
    padding-block: 26px;
    background-color: var(--bg-area2);
    border-block: 1px solid var(--main-color-border);
}
.seminar .inner{
    width: min(100% - 32px, 880px);
    justify-content: space-between;
    align-items: center;
    gap: 20px 32px;
}
.seminar-head{
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
.seminar-free{
    flex-shrink: 0;
    padding: 4px 12px;
    border: 1px solid var(--main-color);
    color: var(--main-color);
    font-size: var(--font14);
    line-height: 1.4;
    letter-spacing: .08em;
    white-space: nowrap;
}
.seminar-ttl{
    color: var(--main-color);
    font-size: var(--font20);
    line-height: 1.5;
    letter-spacing: .04em;
}
.seminar-list{
    display: flex;
    flex-flow: column;
    gap: 6px;
    font-size: var(--font15);
    line-height: 1.6;
}
.seminar-row{
    display: flex;
    align-items: baseline;
    gap: 8px;
}
.seminar-row dd{
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 1em;
}
.seminar-row dt{
    flex-shrink: 0;
    width: 4.5em;
    padding: 1px 0;
    background-color: var(--main-color);
    color: #fff;
    font-size: var(--font13);
    letter-spacing: .1em;
    text-align: center;
}
a.seminar-tel{
    color: var(--free-dial);
    font-size: var(--font19);
    font-weight: 700;
    letter-spacing: .02em;
    text-decoration: none;
    white-space: nowrap;
}
@media(max-width:767px){
    .seminar{
        padding-block: 22px;
    }
    .seminar .inner{
        flex-flow: column;
        align-items: stretch;
        gap: 14px;
    }
    .seminar-head{
        flex-flow: column;
        align-items: center;
        gap: 8px;
        text-align: center;
    }
    .seminar-ttl{
        font-size: var(--font18);
    }
    .seminar-list{
        font-size: var(--font14);
        gap: 8px;
    }
    .seminar-row{
        gap: 8px;
    }
    .seminar-list{
        width: fit-content;
        max-width: 100%;
        margin-inline: auto;
    }
    a.seminar-tel{
        font-size: var(--font18);
    }
}
