body {
    color: #494949;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    position: relative;
}

a {
    color: black;
    text-decoration: none;
    display: block;
}

p {
    margin: 0;
    padding: 0;
}

li {
    list-style: none;
}

button {
    cursor: pointer;
    color: black;
    border: none;
    background-color: white;
}

img {
    max-width: 100%;
    vertical-align: bottom;
    object-fit: cover;
}

.img > img, .img > iframe {
    width: 100%;
    height: 100%;
}

input {
    padding: 0;
}

dl {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
}

.sp {
    display: none !important;
}
@media (max-width: 768px) {
    .sp {
        display: block !important;
    }
}
@media (max-width: 768px) {
    .pc {
        display: none;
    }
}

/* フレックス */
.flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}
.flex-align {
    display: flex;
    align-items: center;
}
.flex-shrink {
    flex-shrink: 0;
}

/* ポジション */
.posi-re {
    position: relative;
}
.posi-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* テキスト */
.txt-center {
    text-align: center;
}
.txt-left {
    text-align: left;
}
.txt-center-left {
    text-align: center;
}
@media (max-width: 768px) {
    .txt-center-left {
        text-align: left;
    }
}

/* その他 */
.block {
    display: block;
}
.ma-auto {
    margin: 0 auto;
}
.bgc-white {
    background-color: white;
}
.lh-15 {
    line-height: 1.5;
}
.lh-2 {
    line-height: 2;
}

/* フォント */
.noto-re  { font-family: "Noto Sans JP", sans-serif; font-weight: 400; }
.noto-me  { font-family: "Noto Sans JP", sans-serif; font-weight: 500; }
.noto-semi{ font-family: "Noto Sans JP", sans-serif; font-weight: 600; }
.noto-bo  { font-family: "Noto Sans JP", sans-serif; font-weight: 700; }
.noto-ex  { font-family: "Noto Sans JP", sans-serif; font-weight: 800; }
.noto-bl  { font-family: "Noto Sans JP", sans-serif; font-weight: 900; }

.f-10 { font-size: calc(10 / 1440 * 100vw); }
.f-12 { font-size: calc(12 / 1440 * 100vw); }
.f-14 { font-size: calc(14 / 1440 * 100vw); }
.f-16 { font-size: calc(16 / 1440 * 100vw); }
.f-18 { font-size: calc(18 / 1440 * 100vw); }
.f-20 { font-size: calc(20 / 1440 * 100vw); }
.f-22 { font-size: calc(22 / 1440 * 100vw); }
.f-24 { font-size: calc(24 / 1440 * 100vw); }
.f-26 { font-size: calc(26 / 1440 * 100vw); }
.f-28 { font-size: calc(28 / 1440 * 100vw); }
.f-30 { font-size: calc(30 / 1440 * 100vw); }
.f-32 { font-size: calc(32 / 1440 * 100vw); }
.f-36 { font-size: calc(36 / 1440 * 100vw); }
.f-40 { font-size: calc(40 / 1440 * 100vw); }
.f-45 { font-size: calc(45 / 1440 * 100vw); }
.f-50 { font-size: calc(50 / 1440 * 100vw); }
.f-60 { font-size: calc(60 / 1440 * 100vw); }

@media (max-width: 768px) {
    .f-10 { font-size: 10px; }
    .f-12 { font-size: 12px; }
    .f-14 { font-size: 12px; }
    .f-16 { font-size: 13px; }
    .f-18 { font-size: 13px; }
    .f-20 { font-size: 14px; }
    .f-22 { font-size: 16px; }
    .f-24 { font-size: 16px; }
    .f-26 { font-size: 18px; }
    .f-28 { font-size: 20px; }
    .f-30 { font-size: 20px; }
    .f-32 { font-size: 18px; }
    .f-36 { font-size: 22px; }
    .f-40 { font-size: 20px; }
    .f-45 { font-size: clamp(10px, 12vw, 55px); }
    .f-50 { font-size: 25px; }
    .f-60 { font-size: 30px; }
}

/* マージン */
.mb-10  { margin-bottom: calc(10  / 1440 * 100vw); }
.mb-20  { margin-bottom: calc(20  / 1440 * 100vw); }
.mb-30  { margin-bottom: calc(30  / 1440 * 100vw); }
.mb-40  { margin-bottom: calc(40  / 1440 * 100vw); }
.mb-50  { margin-bottom: calc(50  / 1440 * 100vw); }
.mb-60  { margin-bottom: calc(60  / 1440 * 100vw); }
.mb-70  { margin-bottom: calc(70  / 1440 * 100vw); }
.mb-80  { margin-bottom: calc(80  / 1440 * 100vw); }
.mb-100 { margin-bottom: calc(100 / 1440 * 100vw); }
.mb-180 { margin-bottom: calc(180 / 1440 * 100vw); }
.mt-20  { margin-top: calc(20 / 1440 * 100vw); }

@media (max-width: 768px) {
    .mb-10  { margin-bottom: 12px; }
    .mb-20  { margin-bottom: 15px; }
    .mb-30  { margin-bottom: 15px; }
    .mb-40  { margin-bottom: 30px; }
    .mb-50  { margin-bottom: 35px; }
    .mb-60  { margin-bottom: 35px; }
    .mb-70  { margin-bottom: 45px; }
    .mb-80  { margin-bottom: 50px; }
    .mb-100 { margin-bottom: 50px; }
    .mt-20  { margin-top: 15px; }
}

/* カラー */
.c-white { color: white; }

/* レイアウト */

.contents-width {
    width: calc(100% - (400 / 1440 * 100vw));
    margin: 0 auto;
}
.contents-width-s {
    width: calc(100% - (680 / 1440 * 100vw));
    margin: 0 auto;
}
.se-pd {
    padding: calc(150 / 1440 * 100vw) 0;
}

@media (max-width: 768px) {
    .contents-width,
    .contents-width-s {
        width: calc(100% - 40px);
    }
    .se-pd {
        padding: 50px 0;
    }
}


/* ========================================
   ヘッダー
======================================== */
.header {
    position: fixed;
    width: 100%;
    z-index: 9999;
    padding: calc(20 / 1440 * 100vw) 0;
    background-color: white;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header__logo {
    width: calc(160 / 1440 * 100vw);
}

.header__ul {
    display: flex;
    align-items: center;
}

.header__li > a {
    margin: 0 calc(10 / 1440 * 100vw);
    color: #64748b;
    transition: color 0.3s;
}
.header__li > a:hover {
    color: #00b59c;
}

.btn-cta {
    height: calc(50 / 1440 * 100vw);
    background: #ff9b42;
    text-decoration: none;
    border-radius: calc(50 / 1440 * 100vw);
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
    margin-left: calc(30 / 1440 * 100vw);
    padding: 0 calc(24 / 1440 * 100vw);
    transition: opacity 0.3s;
    gap: calc(10 / 1440 * 100vw);
}
.btn-cta span {
    white-space: nowrap;
}
.btn-cta:hover {
    opacity: 0.9;
}

/* ハンバーガー */
.mobileBtn {
    transition: all 0.8s ease;
    position: relative;
    z-index: 101;
    background-color: unset;
    width: 30px;
    height: 30px;
    display: none;
}
.mobileBtn__bar {
    width: 100%;
    height: 2px;
    position: absolute;
    transform: translateY(-50%);
    transition: all 0.8s ease;
    background-color: #494949;
    left: 0;
}
.mobileBtn__bar:nth-child(1) { top: 25%; }
.mobileBtn__bar:nth-child(2) { top: 50%; }
.mobileBtn__bar:nth-child(3) { top: 75%; }
.mobileBtn__bar.rotate:nth-child(1),
.mobileBtn__bar.rotate:nth-child(3) { top: 50%; }
.mobileBtn__bar.rotate:nth-child(1) { transform: rotate(-225deg); }
.mobileBtn__bar.rotate:nth-child(2) { transform: translate(0%, -50%) scale(0); }
.mobileBtn__bar.rotate:nth-child(3) { transform: rotate(225deg); }

/* SPメニュー */
.mobile {
    overflow: scroll;
    width: 100vw;
    height: 100vh;
    background-color: white;
    position: fixed;
    top: -200vh;
    right: 0;
    z-index: 98;
    transition: all 0.5s ease;
}
.mobile.down {
    top: 0;
}
.mobile__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    position: relative;
    margin: 80px auto 0;
}
.mobile__ul {
    width: 90%;
    margin: 0 auto;
}
.mobile__li > a {
    border-bottom: 1px solid #e5e7eb;
    padding: 15px;
    color: #494949;
}

@media (max-width: 768px) {
    .mobileBtn {
        display: block;
    }
    .header {
        padding: 12px 0;
    }
    .header__logo {
        width: 110px;
    }
    .header__ul {
        display: none;
    }
    .btn-cta {
        width: 200px;
        height: 46px;
        border-radius: 50px;
        margin: 20px auto 0;
        padding: 0 16px;
        justify-content: center;
    }
    .btn-cta-img {
        width: 18px;
        margin-right: 8px;
    }
}


/* ========================================
   フッター
======================================== */
.footer {
    height: calc(60 / 1440 * 100vw);
    background: white;
    border-top: 1px solid #e5e7eb;
}
@media (max-width: 768px) {
    .footer {
        height: 50px;
    }
}


/* MV */
.mv-img > img {
    object-fit: contain;
}

/* CTAバナー */
.cta-banner {
    background: #f5f0c0;
    padding: calc(40 / 1440 * 100vw) 0;
}

.cta-banner-inner {
    text-align: center;
}

.cta-banner-sub {
    margin-bottom: calc(10 / 1440 * 100vw);
}

.cta-banner-main {
    margin-bottom: calc(10 / 1440 * 100vw);
}

.btn-line {
    width: calc(600 / 1440 * 100vw);
    height: calc(70 / 1440 * 100vw);
    background: #06C755;
    border-radius: calc(50 / 1440 * 100vw);
    margin-right: auto;
    margin-left: auto;
    gap: calc(10 / 1440 * 100vw);
    transition: opacity 0.2s;
    border: calc(3 / 1440 * 100vw) solid white;
}

.btn-line:hover {
    opacity: 0.85;
}

.btn-line-icon {
    width: calc(40 / 1440 * 100vw);
}
.btn-line-icon > img {
    object-fit: contain;
}

/* お悩みセクション */
.worries {
    background: #f8f8f8;
}

.worries-inner {
    gap: calc(60 / 1440 * 100vw);
    align-items: center;
}

.worries-list {
    display: flex;
    flex-direction: column;
    gap: calc(24 / 1440 * 100vw);
    flex: 1;
}

.worries-item {
    background: white;
    border-radius: calc(8 / 1440 * 100vw);
    padding: calc(18 / 1440 * 100vw) calc(24 / 1440 * 100vw);
    gap: calc(12 / 1440 * 100vw);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}

.worries-dot {
    width: calc(10 / 1440 * 100vw);
    height: calc(10 / 1440 * 100vw);
    border-radius: 50%;
    background: #4CAF50;
}

.worries-img {
    width: calc(310 / 1440 * 100vw);
}

.c-green {
    color: #3dae4f;
}

@media (max-width: 768px) {
    .cta-banner {
        padding: 30px 20px;
    }

    .cta-banner-sub {
        margin-bottom: 10px;
    }

    .cta-banner-main {
        margin-bottom: 10px;
        font-size: 12px;
    }

    .btn-line {
        width: 100%;
        max-width: 320px;
        height: 54px;
        border-radius: 50px;
        gap: 8px;
    }

    .btn-line-icon {
        width: 22px;
        height: 22px;
    }

    .worries-inner {
        flex-direction: column;
        gap: 30px;
    }

    .worries-list {
        gap: 16px;
        width: 100%;
    }

    .worries-item {
        border-radius: 8px;
        padding: 14px 16px;
        gap: 10px;
    }

    .worries-dot {
        width: 8px;
        height: 8px;
    }

    .worries-img {
        width: 240px;
    }
}

/* 選ばれる3つの理由セクション */
.reasons-highlight {
    background: linear-gradient(transparent 60%, #FFF281 60%);
}

.reasons-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: calc(30 / 1440 * 100vw);
}

.reasons-card {
    background: #FCFFF7;
    border-radius: calc(16 / 1440 * 100vw);
    padding: calc(50 / 1440 * 100vw) calc(30 / 1440 * 100vw) calc(40 / 1440 * 100vw);
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
}

.reasons-card-num {
    width: calc(55 / 1440 * 100vw);
    height: calc(55 / 1440 * 100vw);
    border-radius: 50%;
    background: #8DC031;
    position: absolute;
    top: calc(-26 / 1440 * 100vw);
    left: calc(13 / 1440 * 100vw);
}

.reasons-card-icon {
    width: calc(120 / 1440 * 100vw);
    height: calc(120 / 1440 * 100vw);
    margin: 0 auto calc(24 / 1440 * 100vw);
}

.reasons-card-icon > img {
    object-fit: contain;
}

@media (max-width: 768px) {
    .reasons-grid {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .reasons-card {
        border-radius: 12px;
        padding: 50px 20px 30px;
    }

    .reasons-card-num {
        width: 40px;
        height: 40px;
        top: -16px;
        left: 11px;
    }

    .reasons-card-icon {
        width: 90px;
        height: 90px;
        margin-bottom: 20px;
    }
}


/* LINE限定の充実機能セクション */
.features {
    background: #FCFFF7;
}

.features .c-green,
.features h2 .c-green,
.reasons h2 .c-green {
    color: #8DC031;
}

.features-list {
    display: flex;
    flex-direction: column;
    gap: calc(70 / 1440 * 100vw);
}

.features-item {
    background: white;
    border-radius: calc(12 / 1440 * 100vw);
    padding: calc(40 / 1440 * 100vw) calc(50 / 1440 * 100vw);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    position: relative;
    padding-top: calc(60 / 1440 * 100vw);
}

.features-item-tag {
    position: absolute;
    top: calc(-18 / 1440 * 100vw);
    left: calc(50 / 1440 * 100vw);
    border-radius: calc(50 / 1440 * 100vw);
    padding: calc(6 / 1440 * 100vw) calc(20 / 1440 * 100vw);
    white-space: nowrap;
}

.features-item-tag--orange {
    background: #ff9b42;
}

.features-item-tag--blue {
    background: #3C74CD;
}

.features-item-inner {
    gap: calc(50 / 1440 * 100vw);
    align-items: center;
}

.features-item-img {
    width: calc(180 / 1440 * 100vw);
    height: calc(180 / 1440 * 100vw);
}

.features-item-img > img {
    object-fit: contain;
}

.features-item-body {
    flex: 1;
}

.features-item-note {
    gap: calc(10 / 1440 * 100vw);
    align-items: flex-start;
}

.features-item-note-icon {
    width: calc(28 / 1440 * 100vw);
    height: calc(28 / 1440 * 100vw);
}

@media (max-width: 768px) {
    .features-list {
        gap: 50px;
    }

    .features-item {
        border-radius: 10px;
        padding: 50px 20px 30px;
    }

    .features-item-tag {
        top: -14px;
        left: 16px;
        border-radius: 50px;
        padding: 5px 14px;
    }

    .features-item-inner {
        flex-direction: column;
        gap: 20px;
        align-items: flex-start;
    }

    .features-item-img {
        width: 120px;
        height: 120px;
        margin: 0 auto;
    }

    .features-item-note {
        gap: 8px;
    }

    .features-item-note-icon {
        width: 22px;
        height: 22px;
    }
}


/* 運営からのメッセージ＆STEPセクション */
.message-inner {
    gap: calc(60 / 1440 * 100vw);
    align-items: flex-start;
}

.message-body {
    flex: 1;
}

.message-line {
width: calc(247 / 1440 * 100vw);
    height: 2px;
    border-bottom: 3px dashed #8DC031;
    margin-bottom: calc(30 / 1440 * 100vw);
}

.message-img {
    width: calc(320 / 1440 * 100vw);
}

.message-img > img {
    object-fit: contain;
}

.message-catchcopy {
    position: relative;
}

.message-underline {
    width: calc(500 / 1440 * 100vw);
    margin: 0 auto;
    position: relative;
    top: calc(-15 / 1440 * 100vw);
    z-index: -1;
}

.message-underline > img {
    object-fit: contain;
}

.message-arrow {
    width: calc(40 / 1440 * 100vw);
    margin: 0 auto calc(60 / 1440 * 100vw);
}

.message-arrow > img {
    object-fit: contain;
}

/* STEPセクション */
.steps-grid {
    gap: 0;
    justify-content: center;
}

.steps-card {
    flex: 1;
    border: 1px solid #e5e7eb;
    border-radius: calc(6 / 1440 * 100vw);
    overflow: hidden;
}

.steps-card-head {
    background: #8DC031;
    height: calc(50 / 1440 * 100vw);
    padding: 0 calc(20 / 1440 * 100vw);
}

.steps-card-body {
    padding: calc(24 / 1440 * 100vw) calc(20 / 1440 * 100vw);
    background: white;
}

.steps-arrow {
    width: calc(20 / 1440 * 100vw);
    height: calc(20 / 1440 * 100vw);
    margin: 0 calc(20 / 1440 * 100vw);
}

.steps-arrow > img {
    object-fit: contain;
}

/* 最終CTAセクション */
.final-cta {
    padding: calc(60 / 1440 * 100vw) 0;
}

@media (max-width: 768px) {
    .message-inner {
        flex-direction: column;
        gap: 30px;
    }

    .message-line {
         width: 164px;
        margin-bottom: 20px;
    }

    .message-img {
        width: 220px;
        margin: 0 auto;
    }

    .message-underline {
        width: 90%;
        top: -15px;
    }

    .message-arrow {
        width: 30px;
        margin-bottom: 40px;
    }

    .steps-grid {
        flex-direction: column;
        gap: 16px;
    }

    .steps-card {
        width: 100%;
        border-radius: 6px;
    }

    .steps-card-head {
        height: 44px;
    }

    .steps-card-body {
        padding: 16px;
    }

    .steps-arrow {
        width: 16px;
        height: 16px;
        margin: 0 auto;
        transform: rotate(90deg);
    }

    .final-cta {
        padding: 40px 20px;
    }
}

/* 微修正 */
header, #fix_header {
    top: 0 !important;
    margin-top: 0 !important;
}

#content {
    max-width: unset !important;
    padding: 0 !important;
}

#breadcrumb.p-breadcrumb {
    display: none !important;
}