/* ===== Header CTA buttons (LP) ===== */
.l-header {
    align-items: flex-start;
}

/* 電話ボタン（青） */
.l-header__txt {
    margin-right: 14px;
    text-align: left;
}
.l-header__txt > a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    height: 59px;
    padding: 0 24px;
    background: #30388B;
    border-radius: 9999px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-transition: .4s;
    transition: .4s;
    text-decoration: none;
}
.l-header__txt > a:hover {
    opacity: .7;
    text-decoration: none;
}
.l-header__txt > a img {
    width: 16px;
    height: auto;
    margin-right: 10px;
    -ms-flex-negative: 0;
    flex-shrink: 0;
}
.l-header__txt > a .tel {
    margin: 0;
    color: #fff;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1;
}
.l-header__txt > a .tel span {
    display: none;
}

/* お問い合わせボタン（黄） */
.l-header__btn a {
    width: auto;
    min-width: 251px;
    padding: 0 24px;
    background: #feff05;
    color: #000;
}
.l-header__btn a img {
    -webkit-filter: brightness(0);
    filter: brightness(0);
}
.l-header__btn .campaign {
    margin: 8px 0 0;
    color: #EB523E;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.3;
    text-align: center;
}

@media (max-width: 768px) {
    .l-header__txt > a {
        display: none;
    }
    .l-header__nav .l-header__btn a {
        width: 72.5581395349vw;
        min-width: 0;
        height: 16.976744186vw;
        border-radius: 9.7674418605vw;
        font-size: 4.1860465116vw;
        padding: 0 4vw;
    }
    .l-header__nav .l-header__btn .campaign {
        font-size: 3.2558139535vw;
        margin-top: 2.3255813953vw;
    }
}

/* ===== Hero slide campaign overlay ===== */
.p-hero__slide {
    position: relative;
    overflow: hidden;
}
.p-hero__filter {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.45); /* #000 */
    z-index: 1;
    pointer-events: none;
}
.p-hero__campaign {
    position: absolute;
    left: 0;
    right: 0;
    bottom: auto;
    /* 画面上部に配置 */
    top: 4.1666666667vw; /* 60px / 1440 */
    z-index: 2;
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    text-align: center;
    justify-content: space-between;
    /* 基準幅1440px: 左右 24px / 170px */
    padding: 5vw 1.6666666667vw 0 11.8055555556vw;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    pointer-events: none;
    min-height: 41.6666666667vw; /* 600px / 1440 */
}
.p-hero__campaign .date {
    color: #fff;
    font-size: 1.9444444444vw; /* 28px / 1440 */
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.4;
    white-space: nowrap;
}
.p-hero__campaign .intro {
    margin: auto 0 .6944444444vw; /* 10px / 1440 */
    color: #fff;
    font-size: 2.5vw; /* 36px / 1440 */
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.4;
    white-space: nowrap;
}
.p-hero__campaign .highlight {
    margin: 0 0 1.3888888889vw; /* 20px / 1440 */
    line-height: 1;
}
.p-hero__campaign .highlight span {
    display: inline-block;
    padding: .5555555556vw 1.3888888889vw; /* 8px 20px */
    background: #FF4131;
    border-radius: .5555555556vw; /* 8px */
    color: #feff05;
    font-size: 4.4444444444vw; /* 64px / 1440 */
    font-weight: 700;
    /* letter-spacing: .06em; */
    line-height: 1.2;
    white-space: nowrap;
}
.p-hero__campaign .sub {
    /* margin: 0 0 .5555555556vw; 8px */
    color: #feff05;
    font-size: 3.3333333333vw; /* 48px / 1440 */
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.25;
    white-space: nowrap;
}
.p-hero__campaign .catch {
    margin: 0;
    line-height: 0;
    width: 25.6944444444vw; /* 370px / 1440 */
    max-width: 100%;
}
.p-hero__campaign .catch img {
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
    -o-object-fit: contain;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .p-hero__campaign {
        /* 画面上部 */
        top: 6.976744186vw; /* 30px / 430 */
        bottom: auto;
        padding: 4.6511627907vw 4.6511627907vw 0;
        height:60%;
    }
    .p-hero__campaign .date {
        margin-bottom: 4.6511627907vw; /* 20px */
        font-size: 3.7209302326vw; /* 16px / 430 */
        white-space: normal;
    }
    .p-hero__campaign .intro {
        margin-bottom: 2.3255813953vw; /* 10px */
        font-size: 5.5813953488vw; /* 24px / 430 */
        white-space: normal;
    }
    .p-hero__campaign .highlight {
        margin-bottom: 2.3255813953vw;
    }
    .p-hero__campaign .highlight span {
        padding: 1.3953488372vw 3.7209302326vw; /* 6px 16px */
        border-radius: 1.3953488372vw;
        font-size: 7.4418604651vw; /* 32px / 430 */
        white-space: normal;
    }
    .p-hero__campaign .sub {
        margin-bottom: 1.8604651163vw;
        font-size: 8.3720930233vw; /* 36px / 430 */
        white-space: normal;
    }
    .p-hero__campaign .catch {
        width: 86vw;
        max-width: 86vw;
        margin-left: auto;
    }
}

/* ===== Language switcher: hide ===== */
.m-lang-switcher {
    display: none !important;
}

/* ===== Floating campaign banner ===== */
.m-float-campaign {
    position: fixed;
    right: 40px;
    bottom: 40px;
    z-index: 9;
    width: 280px;
    padding: 18px 20px 14px;
    background: #2F378A;
    border-radius: 16px;
    text-align: center;
    text-decoration: none;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: opacity .4s;
    transition: opacity .4s;
}
.m-float-campaign:hover {
    text-decoration: none;
}
.m-float-campaign .date {
    margin: 0 0 16px;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.4;
}
.m-float-campaign .intro {
    margin: 0 0 4px;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.4;
}
.m-float-campaign .highlight {
    margin: 0 0 8px;
    line-height: 1;
}
.m-float-campaign .highlight span {
    display: inline-block;
    padding: 4px 10px;
    background: #FF4131;
    border-radius: 4px;
    color: #feff05;
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.2;
}
.m-float-campaign .sub {
    /* margin: 0 0 4px; */
    color: #feff05;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.3;
}
.m-float-campaign .catch {
    margin: 0;
    line-height: 0;
    margin-left: 10px;
}
.m-float-campaign .catch img {
    width: 160px;
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .m-float-campaign {
        right: 16px;
        bottom: 16px;
        width: 200px;
        padding: 12px 12px 10px;
        border-radius: 12px;
    }
    .m-float-campaign .date {
        margin-bottom: 8px;
        font-size: 1rem;
    }
    .m-float-campaign .intro {
        margin-bottom: 2px;
        font-size: 1rem;
    }
    .m-float-campaign .highlight {
        margin-bottom: 6px;
    }
    .m-float-campaign .highlight span {
        padding: 3px 8px;
        font-size: 1.8rem;
    }
    .m-float-campaign .sub {
        margin-bottom: 2px;
        font-size: 1.2rem;
    }
    .m-float-campaign .catch img {
        width: 100px;
    }
}
